Update dependency lint-staged to v17.5.1 #2

Open
Renovate-Bot wants to merge 1 commits from renovate/lint-staged-17.x-lockfile into master
Member

This PR contains the following updates:

Package Type Update Change
lint-staged devDependencies minor 17.0.717.5.1

Release Notes

lint-staged/lint-staged (lint-staged)

v17.5.1

Compare Source

Patch Changes
  • #​1852 bfcca94 - Fix TypeScript issue TS1254 from defineConfig() by changing the signature from const to a function:

    A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

v17.5.0

Compare Source

Minor Changes
  • #​1847 f9063b7 - Lint-staged now refuses to run when files were staged with --intent-to-add, because Git stash doesn't support them. Previously this was an unhandled error.
Patch Changes
  • #​1848 d718ccc - Lint-staged now handles color support better in non-TTY streams, and honors the FORCE_COLOR environment variable.

  • #​1845 7e5ece8 - Update tinyexec@1.3.1 so that local binaries from node_modules/.bin are resolved starting from the directory of each lint-staged configuration file (in monorepo setups). This behavior was broken in lint-staged@16.3.0 where they were only resolved from the current working directory and up.

  • #​1845 eb8a4e3 - Do not try to restore untracked files when using --hide-all and there is no initial commit yet.

v17.4.1

Compare Source

Patch Changes
  • #​1840 efe5b63 - This is a version-bump-only release because the previous version 17.4.0 was not published to npmjs.com due to problems with GitHub Actions and Changesets.

v17.3.0

Compare Source

Minor Changes
  • #​1825 16b3f74 - It is now possible to run multiple tasks in parallel for a single glob by configuring it with an array of tasks (which run sequentially), and then placing another array inside it (where the tasks will run in parallel). The following demonstrates the order tasks will start in:

    {
      "*.ts": ["first", "second", ["third", "third"], "fourth"]
    }
    

    As a concrete example, lint-staged's own configuration is:

    /** @​type {import('./lib/index.js').Configuration} */
    export default {
      '*': [
        ['oxfmt --check --no-error-on-unmatched-pattern', 'oxlint --no-error-on-unmatched-pattern'],
      ],
      '*.ts': () => 'tsc',
    }
    

    which means:

    1. for all staged files, run the two commands in parallel with staged filenames appended, for example:
      • oxfmt --check --no-error-on-unmatched-pattern lib/index.js
      • oxlint --no-error-on-unmatched-pattern lib/index.js
    2. additionally, if any *.ts files are staged, run tsc without appending any arguments
    3. The two sets of commands also run in parallel
Patch Changes
  • #​1829 15f7e53 - During an in-progress merge, files that are unchanged from the branch being merged are now skipped. Technically, files are only included if there are staged changes against both HEAD and MERGE_HEAD.

v17.2.0

Compare Source

Minor Changes
  • #​1823 ee156cc - The chunking of tasks based on maximum command line argument length has been re-implemented to be more precise. Now the chunking happens based on the final generated command string, instead of just the list of staged files like previously. This benefits mainly Windows platforms and function commands like:

    /** @​type {import('lint-staged').Configuration} */
    export default {
      '*.ts': () => 'tsc', // Run "tsc" when any TS file is changed (for entire project)
    }
    

    Where the spawned command is literally "tsc" without any extra arguments. Previously, this was still chunked when a lot of files were staged. Now, it probably won't be chunked because the length of the command is just three letters.

    Also, native JavaScript/Node.js function tasks won't be chunked at all, when previously they were run multiple times when chunked:

    /** @​type {import('lint-staged').Configuration} */
    export default {
      '*.js': {
        title: 'Log staged JS files to console',
        task: async (files) => {
          console.log('Staged JS files:', files)
        },
      },
    }
    

v17.1.1

Compare Source

Patch Changes
  • #​1820 a626a9f - It's now possible to set --max-arg-length=Infinity to effectively disable chunking of tasks based on the number of staged files. The parsing and validation of the numeric CLI options --max-arg-length and --concurrency has been improved.

v17.1.0

Compare Source

Minor Changes
  • #​1816 7568d4f - The console output of lint-staged has been simplified so that there's less interactive spinners and more explicit messages like "Started…" -> "Done!". The primary purpose of this was to remove Listr2, a very large dependency.

    Before:

    Size of node_modules/ after installing: 1561.7 kB with 29 packages.

    Fancy interactive spinners, but output dynamically changes:

    ✔ Backed up original state in git stash (0b191303)
    ✔ Running tasks for staged files...
    ✔ Staging changes from tasks...
    ✔ Cleaning up temporary files...
    

    After:

    Size of node_modules/ after installing: 974.0 kB with 5 packages (37.6 % smaller, 82.7 % less transitive dependencies).

    Simpler but more explicit output:

    ⋯ Backing up original state…
    ✔ Done backing up original state (35b38ed1)!
    ⋯ Running tasks for staged files…
        *.js — 1 file
          ⋯ oxlint --fix
        *.{json,md}1 file
          ⋯ oxfmt --write
    
    ✔ oxfmt --write
    ✔ oxlint --fix
    
    ✔ Done running tasks for staged files!
    ⋯ Staging changes from tasks…
    ✔ Done staging changes from tasks!
    ⋯ Cleaning up temporary files…
    ✔ Done cleaning up temporary files!
    
Patch Changes
  • #​1816 c19079d - Try to restore hidden unstaged changes when using --no-revert.

  • #​1818 efb23a2 - Console output colors are enabled/disabled more consistently.

  • #​1818 26112a1 - Failed JS function tasks now properly kill other tasks, unless --continue-on-error is used. Previously their failure didn't affect other tasks.

v17.0.8

Compare Source

Patch Changes
  • #​1809 179b437 - Fix lint-staged discarding the ongoing merge conflict status (.git/MERGE_HEAD) when using the --hide-unstaged or --hide-all options.

  • #​1811 3d0b2c0 - Fix issues with Git commands that are successful but also emit warnings to stderr, by ignoring the stderr output completely when the process exits with code 0. This was the behavior when using nano-spawn and execa, but when switching to tinyexec in 16.3.0 both stdout and stderr were used as interleaved output.


Configuration

📅 Schedule: (UTC)

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

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

Rebasing: Whenever PR becomes conflicted, 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 has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [lint-staged](https://github.com/lint-staged/lint-staged) | devDependencies | minor | [`17.0.7` → `17.5.1`](https://renovatebot.com/diffs/npm/lint-staged/17.0.7/17.5.1) | --- ### Release Notes <details> <summary>lint-staged/lint-staged (lint-staged)</summary> ### [`v17.5.1`](https://github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1751) [Compare Source](https://github.com/lint-staged/lint-staged/compare/v17.5.0...v17.5.1) ##### Patch Changes - [#&#8203;1852](https://github.com/lint-staged/lint-staged/pull/1852) [`bfcca94`](https://github.com/lint-staged/lint-staged/commit/bfcca94e61aef7078a7a0ec8165c0cc2c9baca99) - Fix TypeScript issue `TS1254` from `defineConfig()` by changing the signature from `const` to a `function`: > A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference. ### [`v17.5.0`](https://github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1750) [Compare Source](https://github.com/lint-staged/lint-staged/compare/v17.4.1...v17.5.0) ##### Minor Changes - [#&#8203;1847](https://github.com/lint-staged/lint-staged/pull/1847) [`f9063b7`](https://github.com/lint-staged/lint-staged/commit/f9063b7d71857cb8893ee1bb5b63da05b2819b23) - *Lint-staged* now refuses to run when files were staged with `--intent-to-add`, because Git stash doesn't support them. Previously this was an unhandled error. ##### Patch Changes - [#&#8203;1848](https://github.com/lint-staged/lint-staged/pull/1848) [`d718ccc`](https://github.com/lint-staged/lint-staged/commit/d718ccc59cf73bf7d333135826270b5742fefec1) - *Lint-staged* now handles color support better in non-TTY streams, and honors the `FORCE_COLOR` environment variable. - [#&#8203;1845](https://github.com/lint-staged/lint-staged/pull/1845) [`7e5ece8`](https://github.com/lint-staged/lint-staged/commit/7e5ece8408097994bd1dfcfbf395aa9838782d19) - Update `tinyexec@1.3.1` so that local binaries from `node_modules/.bin` are resolved starting from the directory of each *lint-staged* configuration file (in monorepo setups). This behavior was broken in `lint-staged@16.3.0` where they were only resolved from the current working directory and up. - [#&#8203;1845](https://github.com/lint-staged/lint-staged/pull/1845) [`eb8a4e3`](https://github.com/lint-staged/lint-staged/commit/eb8a4e3ae1bbdf648b647ff3a17a6205870b27be) - Do not try to restore untracked files when using `--hide-all` and there is no initial commit yet. ### [`v17.4.1`](https://github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1741) [Compare Source](https://github.com/lint-staged/lint-staged/compare/v17.3.0...v17.4.1) ##### Patch Changes - [#&#8203;1840](https://github.com/lint-staged/lint-staged/pull/1840) [`efe5b63`](https://github.com/lint-staged/lint-staged/commit/efe5b63cc4961c80b6363fe40bac3c145e3ddbb2) - This is a version-bump-only release because the previous version `17.4.0` was not published to npmjs.com due to problems with GitHub Actions and Changesets. ### [`v17.3.0`](https://github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1730) [Compare Source](https://github.com/lint-staged/lint-staged/compare/v17.2.0...v17.3.0) ##### Minor Changes - [#&#8203;1825](https://github.com/lint-staged/lint-staged/pull/1825) [`16b3f74`](https://github.com/lint-staged/lint-staged/commit/16b3f74850e5d2811b5fbaea6c136733a71ad3e4) - It is now possible to run multiple tasks in parallel for a single glob by configuring it with an array of tasks (which run sequentially), and then placing another array inside it (where the tasks will run in parallel). The following demonstrates the order tasks will start in: ```json { "*.ts": ["first", "second", ["third", "third"], "fourth"] } ``` As a concrete example, *lint-staged*'s own configuration is: ```js /** @&#8203;type {import('./lib/index.js').Configuration} */ export default { '*': [ ['oxfmt --check --no-error-on-unmatched-pattern', 'oxlint --no-error-on-unmatched-pattern'], ], '*.ts': () => 'tsc', } ``` which means: 1. for all staged files, run the two commands in parallel with staged filenames appended, for example: - `oxfmt --check --no-error-on-unmatched-pattern lib/index.js` - `oxlint --no-error-on-unmatched-pattern lib/index.js` 2. additionally, if any `*.ts` files are staged, run `tsc` without appending any arguments 3. The two sets of commands also run in parallel ##### Patch Changes - [#&#8203;1829](https://github.com/lint-staged/lint-staged/pull/1829) [`15f7e53`](https://github.com/lint-staged/lint-staged/commit/15f7e5314b4afe4702808d978758b22d42437f43) - During an in-progress merge, files that are unchanged from the branch being merged are now skipped. Technically, files are only included if there are staged changes against both `HEAD` and `MERGE_HEAD`. ### [`v17.2.0`](https://github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1720) [Compare Source](https://github.com/lint-staged/lint-staged/compare/v17.1.1...v17.2.0) ##### Minor Changes - [#&#8203;1823](https://github.com/lint-staged/lint-staged/pull/1823) [`ee156cc`](https://github.com/lint-staged/lint-staged/commit/ee156cc7039494f1db11f389b1233c78f588238c) - The chunking of tasks based on maximum command line argument length has been re-implemented to be more precise. Now the chunking happens based on the final generated command string, instead of just the list of staged files like previously. This benefits mainly Windows platforms and function commands like: ```js /** @&#8203;type {import('lint-staged').Configuration} */ export default { '*.ts': () => 'tsc', // Run "tsc" when any TS file is changed (for entire project) } ``` Where the spawned command is literally `"tsc"` without any extra arguments. Previously, this was still chunked when a lot of files were staged. Now, it probably won't be chunked because the length of the command is just three letters. Also, native JavaScript/Node.js function tasks won't be chunked at all, when previously they were run multiple times when chunked: ```js /** @&#8203;type {import('lint-staged').Configuration} */ export default { '*.js': { title: 'Log staged JS files to console', task: async (files) => { console.log('Staged JS files:', files) }, }, } ``` ### [`v17.1.1`](https://github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1711) [Compare Source](https://github.com/lint-staged/lint-staged/compare/v17.1.0...v17.1.1) ##### Patch Changes - [#&#8203;1820](https://github.com/lint-staged/lint-staged/pull/1820) [`a626a9f`](https://github.com/lint-staged/lint-staged/commit/a626a9f269d9ff6498a9b8245490e096f90c4bb7) - It's now possible to set `--max-arg-length=Infinity` to effectively disable chunking of tasks based on the number of staged files. The parsing and validation of the numeric CLI options `--max-arg-length` and `--concurrency` has been improved. ### [`v17.1.0`](https://github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1710) [Compare Source](https://github.com/lint-staged/lint-staged/compare/v17.0.8...v17.1.0) ##### Minor Changes - [#&#8203;1816](https://github.com/lint-staged/lint-staged/pull/1816) [`7568d4f`](https://github.com/lint-staged/lint-staged/commit/7568d4fb15ba3c3317a7aec36195461cb2f272d7) - The console output of *lint-staged* has been simplified so that there's less interactive spinners and more explicit messages like *"Started…*" -> "*Done!*". The primary purpose of this was to remove [`Listr2`](https://github.com/listr2/listr2), a very large dependency. **Before:** Size of `node_modules/` after installing: `1561.7 kB` with 29 packages. Fancy interactive spinners, but output dynamically changes: ```shell ✔ Backed up original state in git stash (0b191303) ✔ Running tasks for staged files... ✔ Staging changes from tasks... ✔ Cleaning up temporary files... ``` **After:** Size of `node_modules/` after installing: `974.0 kB` with 5 packages (37.6 % smaller, 82.7 % less transitive dependencies). Simpler but more explicit output: ```shell ⋯ Backing up original state… ✔ Done backing up original state (35b38ed1)! ⋯ Running tasks for staged files… *.js — 1 file ⋯ oxlint --fix *.{json,md} — 1 file ⋯ oxfmt --write ✔ oxfmt --write ✔ oxlint --fix ✔ Done running tasks for staged files! ⋯ Staging changes from tasks… ✔ Done staging changes from tasks! ⋯ Cleaning up temporary files… ✔ Done cleaning up temporary files! ``` ##### Patch Changes - [#&#8203;1816](https://github.com/lint-staged/lint-staged/pull/1816) [`c19079d`](https://github.com/lint-staged/lint-staged/commit/c19079d808d557b538c34fe69381d2ef970c7acc) - Try to restore hidden unstaged changes when using `--no-revert`. - [#&#8203;1818](https://github.com/lint-staged/lint-staged/pull/1818) [`efb23a2`](https://github.com/lint-staged/lint-staged/commit/efb23a25075d980db9edabd2f71e769fc97d48c8) - Console output colors are enabled/disabled more consistently. - [#&#8203;1818](https://github.com/lint-staged/lint-staged/pull/1818) [`26112a1`](https://github.com/lint-staged/lint-staged/commit/26112a19151f9678861d51ea7416e9f9bef24bbb) - Failed JS function tasks now properly kill other tasks, unless `--continue-on-error` is used. Previously their failure didn't affect other tasks. ### [`v17.0.8`](https://github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1708) [Compare Source](https://github.com/lint-staged/lint-staged/compare/v17.0.7...v17.0.8) ##### Patch Changes - [#&#8203;1809](https://github.com/lint-staged/lint-staged/pull/1809) [`179b437`](https://github.com/lint-staged/lint-staged/commit/179b4372b2528f6fa66f927337d238711694d0e0) - Fix *lint-staged* discarding the ongoing merge conflict status (`.git/MERGE_HEAD`) when using the `--hide-unstaged` or `--hide-all` options. - [#&#8203;1811](https://github.com/lint-staged/lint-staged/pull/1811) [`3d0b2c0`](https://github.com/lint-staged/lint-staged/commit/3d0b2c0709a2a39aa7b134e3741fed21250d808e) - Fix issues with Git commands that are successful but also emit warnings to `stderr`, by ignoring the `stderr` output completely when the process exits with code 0. This was the behavior when using `nano-spawn` and `execa`, but when switching to `tinyexec` in 16.3.0 both `stdout` and `stderr` were used as interleaved output. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNjAuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 208eba1636 to 6f50dd350e 2026-06-24 15:39:48 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 6f50dd350e to 0a5930cb43 2026-06-25 10:01:30 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 0a5930cb43 to aa83cd244a 2026-06-26 10:01:34 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from aa83cd244a to a4cad02df8 2026-06-30 10:01:44 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from a4cad02df8 to b4e5491d41 2026-07-08 10:02:28 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from b4e5491d41 to 04e706d04d 2026-07-10 10:01:51 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 04e706d04d to b98671e1c5 2026-07-20 11:11:49 +00:00 Compare
Renovate-Bot changed title from Update dependency lint-staged to v17.0.8 to Update dependency lint-staged to v17.1.0 2026-07-20 11:11:50 +00:00
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from b98671e1c5 to 0d2ab25e8a 2026-07-22 10:02:56 +00:00 Compare
Renovate-Bot changed title from Update dependency lint-staged to v17.1.0 to Update dependency lint-staged to v17.1.1 2026-07-22 10:02:58 +00:00
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 0d2ab25e8a to 5d4c18ff05 2026-07-23 10:02:14 +00:00 Compare
Renovate-Bot changed title from Update dependency lint-staged to v17.1.1 to Update dependency lint-staged to v17.2.0 2026-07-23 10:02:16 +00:00
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 5d4c18ff05 to ce0194e613 2026-07-31 10:02:56 +00:00 Compare
Renovate-Bot changed title from Update dependency lint-staged to v17.2.0 to Update dependency lint-staged to v17.3.0 2026-07-31 10:02:57 +00:00
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from ce0194e613 to 0d406ad972 2026-08-03 10:03:11 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 0d406ad972 to 398f817453 2026-08-26 10:02:27 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 398f817453 to 01082e13d6 2026-08-28 10:02:34 +00:00 Compare
Renovate-Bot changed title from Update dependency lint-staged to v17.3.0 to Update dependency lint-staged to v17.4.1 2026-08-28 10:02:35 +00:00
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 01082e13d6 to 43f7ec2871 2026-09-04 10:02:37 +00:00 Compare
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 43f7ec2871 to 2ba6b03b53 2026-09-05 10:02:20 +00:00 Compare
Renovate-Bot changed title from Update dependency lint-staged to v17.4.1 to Update dependency lint-staged to v17.5.0 2026-09-05 10:02:22 +00:00
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 2ba6b03b53 to 3cf7d82ab0 2026-09-11 10:02:22 +00:00 Compare
Renovate-Bot changed title from Update dependency lint-staged to v17.5.0 to Update dependency lint-staged to v17.5.1 2026-09-11 10:02:24 +00:00
Renovate-Bot added 1 commit 2026-09-13 10:05:17 +00:00
Renovate-Bot force-pushed renovate/lint-staged-17.x-lockfile from 3cf7d82ab0 to 24affd87ef 2026-09-13 10:05:17 +00:00 Compare
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/lint-staged-17.x-lockfile:renovate/lint-staged-17.x-lockfile
git checkout renovate/lint-staged-17.x-lockfile
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Next-Station/Common#2