Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
18.19.112->22.18.1210.0.20->17.0.4v3->v5v3->v65.3.1->6.4.19.1.3->10.0.07.0.3->10.1.06.10.0->7.1.28.0.3->9.1.726.1.0->27.0.114.0.1->16.2.65.0.2->8.0.45.0.5->6.0.13.3.4->4.0.05.1.4->6.0.1Release Notes
actions/checkout (actions/checkout)
v5Compare Source
v4Compare Source
url-helper.tsnow leverages well-known environment variables by @jww3 in #1941isGhesby @jww3 in #1946actions/setup-node (actions/setup-node)
v6Compare Source
v5Compare Source
v4Compare Source
avajs/ava (ava)
v6.4.1Compare Source
What's Changed
New Contributors
Full Changelog: avajs/ava@v6.4.0...v6.4.1
v6.4.0Compare Source
What's Changed
Interactive watch mode filters
@mmulet did fantastic work to spearhead interactive watch mode filters. You can now filter test files by glob patterns, and tests by matching their titles. It's just like you already could from the CLI itself, but now without exiting AVA 🚀 #3372
As part of this work we've removed the "sticky"
.only()behavior #3381Examples
We've been remiss in merging #3335 which updates the examples to use AVA 6. It's done now, examples are up to date and it's all due to @tommy-mitchell 👏
New Contributors
Full Changelog: avajs/ava@v6.3.0...v6.4.0
v6.3.0Compare Source
What's Changed
npm auditwarnings by @novemberborn in #3377New Contributors
Full Changelog: avajs/ava@v6.2.0...v6.3.0
v6.2.0Compare Source
What's Changed
filterNodeArgumentsForWorkerThreadsoption in #3336New Contributors
Full Changelog: avajs/ava@v6.1.3...v6.2.0
v6.1.3Compare Source
What's Changed
serialconfiguration option by @turadg in #3321New Contributors
Full Changelog: avajs/ava@v6.1.2...v6.1.3
v6.1.2Compare Source
What's Changed
any: trueby @gibson042 in #3313Full Changelog: avajs/ava@v6.1.1...v6.1.2
v6.1.1Compare Source
What's Changed
Full Changelog: avajs/ava@v6.1.0...v6.1.1
v6.1.0Compare Source
What's Changed
Implement
registerCompletionHandler()by @novemberborn in #3283AVA 6 expects test code to clean up gracefully when the tests are complete, allowing the test environment (worker thread or child process) to exit. If this does not happen, AVA will report a timeout. You can use
registerCompletionHandler()to perform any other clean up (or indeed exit the process) after AVA has completed the test execution. See the description here.Fix potential bug with watch mode when no failed test files are written by @novemberborn in #3287
Fix
ava/internalESM type module by @codetheweb in #3292Full Changelog: avajs/ava@v6.0.1...v6.1.0
v6.0.1Compare Source
What's Changed
Full Changelog: avajs/ava@v6.0.0...v6.0.1
v6.0.0Compare Source
Breaking Changes
AVA now requires Node.js versions 18.18, 20.8 or 21. Versions 14 and 16 are no longer supported. #3251 #3216
When tests finish, worker threads or child processes are no longer exited through
proces.exit(). If your test file does not exit on its own, the test run will time out. #3260Changes to watch mode #3218:
ava.config.*orpackage.jsonconfiguration.ignoredByWatcherconfiguration has moved to thewatchModeobject, under theignoreChangeskey.fs.watch()in recursive mode. This is supported on Linux in Node.js 20 or newer, and MacOS and Windows in Node.js 18 as well. There are caveats to keep in mind.Failed assertions now throw, meaning that any subsequent code is not executed. This also impacts the type definitions. #3246
Only native errors are now considered errors by the
t.throws()andt.throwsAsync()assertions.Object.create(Error.prototype)is not a native error. #3229Changes to modules loaded through the
requireconfiguration #3184:@ava/typescriptif necessary.Improvements
Rewritten watcher
The watcher has been rewritten. It’s now built on
fs.watch()in recursive mode.@vercel/nftis used to perform static dependency analysis, supporting ESM and CJS imports for JavaScript & TypeScript source files. This is a huge improvement over the previous runtime tracking of CJS imports, which did not support ESM.Integration with
@ava/typescripthas been improved. The watcher can now detect a change to a TypeScript source file, then wait for the corresponding build output to change before re-running tests.The ignoredByWatcher configuration has moved to the watchMode object, under the ignoreChanges key.
See #3218 and #3257.
Failed assertions now throw
Assertions now throw a
TestFailureerror when they fail. This error is not exported or documented and should not be used or thrown manually. You cannot catch this error in order to recover from a failure, uset.try()instead.All assertions except for
t.throws()andt.throwsAsync()now returntruewhen they pass. This is useful for some of the assertions in TypeScript where they can be used as a type guard.Committing a failed
t.try()result now also throws.See #3246.
t.throws()andt.throwsAsync()can now expect any errorBy default, the thrown error (or rejection reason) must be a native error. You can change the assertion to expect any kind of error by setting
any: truein the expectation object:See #3245 by @adiSuper94.
The
requireconfiguration is now more powerfulIt now loads ES modules.
Local files are loaded through
@ava/typescriptif necessary, so you can also write these in TypeScript.If there is a default export function, it is invoked after loading. The function is awaited so it can do asynchronous setup before further modules are loaded. Arguments from the configuration can be passed to the function (as a [structured clone](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone)).
See #3184 by @sculpt0r.
Other changes worth noting
t.timeout.clear()to restore a previoust.timeout(). #3221New Contributors
Full Changelog: avajs/ava@v5.3.1...v6.0.0
babel/babel-loader (babel-loader)
v10.0.0Compare Source
What's Changed
Breaking Changes
^18.20.0 || ^20.10.0 || >=22.0.0and webpack requirement to>= 5.61.0by @JLHwung in #1026New Features
Bug Fixes
Docs
cacheIdentifieris computed from the merged options by @JLHwung in #1000Dependencies
find-cache-dirbyfind-upby @JLHwung in #1031Internal
New Contributors
Full Changelog: babel/babel-loader@v9.1.3...v10.0.0
v9.2.1Compare Source
What's Changed
Full Changelog: babel/babel-loader@v9.2.0...v9.2.1
v9.2.0Compare Source
What's Changed
cacheIdentifieris computed from the merged options by @JLHwung in #1000Full Changelog: babel/babel-loader@v9.1.3...v9.2.0
kentcdodds/cross-env (cross-env)
v10.1.0Compare Source
Features
For example:
If
PORTis already set, use that value, otherwise fallback to8787.Learn more about Shell Parameter Expansion
v10.0.0Compare Source
TL;DR: You should probably not have to change anything if:
In this release (which should have been v8 except I had some issues with automated releases 🙈), I've updated all the things and modernized the package. This happened in #261
Was this needed? Not really, but I just thought it'd be fun to modernize this package.
Here's the highlights of what was done.
The tool maintains its original functionality while being completely modernized with the latest tooling and best practices
BREAKING CHANGES
webpack-contrib/css-loader (css-loader)
v7.1.2Compare Source
v7.1.1Compare Source
v7.1.0Compare Source
Features
getJSONoption to output CSS modules mapping (#1577) (af834b4)v7.0.0Compare Source
⚠ BREAKING CHANGES
modules.namedExportoption istrueby default if you enable theesModuleoptionMigration guide:
Before:
After:
To restore 6.x behavior, please use:
Typescript migration:
Before:
After:
modules.exportLocalsConventionhas the valueas-iswhen themodules.namedExportoption istrueand you don't specify a value5.27.018.12.0Features
modules.namedExportsoption works fine with anymodules.exportLocalsConventionvalues (f96a110)modules.exportLocalsConventionoptions (40e1668)v6.11.0Compare Source
Features
Bug Fixes
@scopeat-rule without params (#1581) (e022e3b)typicode/husky (husky)
v9.1.7Compare Source
What's Changed
New Contributors
Full Changelog: typicode/husky@v9.1.6...v9.1.7
v9.1.6Compare Source
What's Changed
New Contributors
Full Changelog: typicode/husky@v9.1.5...v9.1.6
v9.1.5Compare Source
What's Changed
pre-merge-commithook by @RainMeoCat in #1497New Contributors
Full Changelog: typicode/husky@v9.1.4...v9.1.5
v9.1.4Compare Source
v9.1.3Compare Source
PATHv9.1.2Compare Source
Show a message instead of automatically removing deprecated code.
This only concerns projects that still have the following code in their hooks:
Hooks with these lines will fail in
v10.0.0v9.1.1Compare Source
Super saiyan
goddog! It's over 9.0.0!What's new
You can now run package commands directly, no need for
npxor equivalents.It makes writing hooks more intuitive and is also slightly faster 🐺⚡️
A new recipe has been added to the docs. Lint staged files without external dependencies (inspired by Prettier docs). Feel free to modify it.
For more advanced use cases, see lint-staged.
Fixes
bunx husky initcommandDeprecations
#!/usr/bin/env shand. "$(dirname -- "$0")/_/husky.sh"are deprecated.huskycommand will automatically remove them, no action required.~/.huskyrcplease move it to.config/husky/init.shSupport for these will be removed in v10.
Friendly reminder
If Git hooks don't fit your workflow, you can disable Husky globally. Just add
export HUSKY=0to.config/husky/init.sh.I've seen some confusion about this on X, so just a heads-up!
Sponsoring
Husky is downloaded over 45M times per month and used by ~1.5M projects. If your company wants to sponsor, you can do so here: GitHub Sponsors.
Have a nice summer ☀️ I'm open to new opportunities/consulting so feel free to drop me a message 😉
v9.1.0Compare Source
v9.0.11Compare Source
package-lock.jsonby @btea in #1383export HUSKY=0in init (fixes #1393) by @typicode in #1395v9.0.10Compare Source
v9.0.9Compare Source
v9.0.8Compare Source
v9.0.7Compare Source
~/.huskyrccorrectly (compatibility with v8)v9.0.6Compare Source
v9.0.5Compare Source
v9.0.4Compare Source
v9.0.3Compare Source
v9.0.2Compare Source
v9.0.1Compare Source
Kicking off the year with an exciting update!
Note: install using
husky@latestto get the bug fixes that were released after.Introducing
husky initv8
v9
Adding husky to a project is now easier than ever. It's just a single line that does the same as above. No need to read the docs to get started anymore.
Adding a New Hook
v8
v9
Adding a hook is as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic
echocommand. For example, on Linux/macOS:Further Size Reduction
v8was already the most compact Git hooks manager at approximately6kB.v9takes this a step further, reducing the size to just3kB, likely making it the smallest devDependency in your toolkit.To give you an idea of how small it is, the biggest file in the project is the MIT license 😄
More to Come
Additional features are in the pipeline for
v9. Stay tuned 🙌Other Changes
--provenancefor safer publishing.$XDG_CONFIG_HOMEsupport. Move~/.huskyrcto~/.config/husky/init.shfor centralized configuration.husky install. Usehuskyorhusky some/dirfor the same functionality (deprecation notice to be added)..gitis missing; it now triggers a warning instead of failure.HUSKY_DEBUG=1withHUSKY=2for debugging.ESMfor module usage.How to Migrate
v9is backward compatible withv8, allowing you to freely upgrade and migrate your hooks later.Here are the steps to migrate:
package.json{ "scripts": { - "prepare": "husky install" + "prepare": "husky" } }.husky/pre-commitNote:
shwill be used to run hooks, even if a shebang is set.If you were using
huskyas a module:jsdom/jsdom (jsdom)
v27.0.1Compare Source
class=""attribute changes is only possible with a new version of jsdom. (asamuzaK)v27.0.0Compare Source
Changes since 26.1.0
BeforeUnloadEvent,BlobEvent,DeviceMotionEvent(omittingrequestPermission()),DeviceOrientationEvent(omittingrequestPermission()),PointerEvent,PromiseRejectionEvent, andTransitionEvent.movementXandmovementYtoMouseEvent. (These are from the Pointer Lock specification, the rest of which is not implemented.)customElements.getName(). (mash-graz)"jsdomError"events are now documented, with specifictypeproperties and other properties that depend on the type.sendTo()was renamed toforwardTo().jsdomErrorsoption toforwardTo()can be used to control which errors are sent to the Node.js console. This replaces the previousomitJSDOMErrorsboolean option."jsdomError"s for failedXMLHttpRequestfetches are no longer emitted."jsdomError"s to the Node.js console are streamlined.nwsapito@asamuzakjp/dom-selector, closing over 20 selector-related bugs.tough-cookie, which now considers URLs likehttp://localhost/to be secure contexts (per the spec), and thus will returnSecure-flagged cookies for such URLs. (colincasey)cssstyle, which brings along many improvements and fixes to theCSSStyleDeclarationobject and its properties.element.click()to fire aPointerEventinstead of aMouseEvent.<input>element'spattern=""attribute to use thevregular expression flag, instead ofu.Windowobject, including named properties and changing various data properties to accessor properties.document.createEvent()to accept a more correct set of event names.ElementInternalsaccessibility getters and setters. (They were introduced in v23.1.0, but due to inadequate test coverage never actually worked.)Object.defineProperty()on certain objects, such asHTMLSelectElementinstances.jsdom.reconfigure({ url })not updatingdocument.baseURIor properties derived from it. (This regressed in v26.1.0.)initial,inherit, andunsetkeywords, to resolve correctly. (asamuzaK)displaystyle resolution. (asamuzaK)Changes since 27.0.0-beta.3
cssstyle, which brings along various CSS parsing fixes.lint-staged/lint-staged (lint-staged)
v16.2.6Compare Source
Patch Changes
33d4502Thanks @Adrian-Baran-GY! - Fix problems with--continue-on-erroroption, where tasks might have still been killed (SIGINT) when one of them failed.v16.2.5Compare Source
Patch Changes
9e02d9dThanks @iiroj! - Fix unhandled promise rejection when spawning tasks (instead of the tasks themselves failing). Previously when a task failed to spawn, lint-staged also failed and the backup stash might not have been automatically restored.v16.2.4Compare Source
Patch Changes
#1682
0176038Thanks @iiroj! - Update dependencies, including[email protected]with bug fixes.#1671
581a54eThanks @iiroj! - Speed up execution by only importing theyamldepedency if using YAML configuration files.v16.2.3Compare Source
Patch Changes
27cd541Thanks @iiroj! - When using--fail-on-changes, automatically hidden (partially) unstaged changes are no longer counted to make lint-staged fail.v16.2.2Compare Source
Patch Changes
#1667
699f95dThanks @iiroj! - The backup stash will not be dropped when using--fail-on-changesand there are errors. When reverting to original state is disabled (via--no-revertor--fail-on-changes), hidden (partially) unstaged changes are still restored automatically so that it's easier to resolve the situation manually.Additionally, the example for using the backup stash manually now uses the correct backup hash, if available:
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.