Skip to content

chore(deps): update devdependencies (non-major) - #341

Merged
ReenigneArcher merged 1 commit into
masterfrom
renovate/devdependencies-non-major
Aug 28, 2026
Merged

chore(deps): update devdependencies (non-major)#341
ReenigneArcher merged 1 commit into
masterfrom
renovate/devdependencies-non-major

Conversation

@renovate

@renovaterenovateBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@jest/globals (source)30.4.130.5.0ageconfidence
clean-jsdoc-theme (source)5.1.15.2.0ageconfidence
eslint-plugin-jest29.16.229.16.5ageconfidence
jest (source)30.4.230.5.0ageconfidence
jest-environment-jsdom (source)30.4.130.5.0ageconfidence
webpack5.109.25.110.1ageconfidence

Release Notes

jestjs/jest (@​jest/globals)

v30.5.0

Compare Source

Features
  • [@jest/expect-utils, jest-mock] Add mockFn.whenCalledWith(...args) for configuring return values per argument list, with first-class asymmetric-matcher support (#​16053)
  • [@jest/expect-utils] Export AsymmetricMatcher and FunctionParameters types (previously private to expect) (#​16053)
  • [jest-circus, jest-core, jest-jasmine2, jest-test-result, jest-types]--collectTests now expands test.each/describe.each cases and reports per-status counts (skipped/todo via the new wouldRun flag for selected tests) plus a summary line that match a real run, including under --testNamePattern and .only/fdescribe focus on both the circus and jasmine2 runners (#​16259)
  • [jest-circus, jest-environment, jest-runtime, jest-types] Add describe-level retries via jest.retryTimes(..., {entireDescribe: true}) (#​16322)
  • [jest-circus, jest-message-util, jest-reporters, jest-types] Add retryMessages to AssertionResult and export formatErrorStack, so the retry log renders nested cause and AggregateError sections with code frames instead of serialized [cause]:/[errors]: markers (#​16316)
  • [jest-circus, jest-types] Add unhandledErrorsDetailed to Circus.RunResult, so an unhandled rejection reports its cause chain and AggregateError entries with code frames instead of a pre-serialized stack (#​16316)
  • [jest-haste-map] Replace NodeWatcher and FSEventsWatcher with @parcel/watcher for the non-watchman watch path (#​16188)
  • [jest-resolve] Bump unrs-resolver to 1.12.1, remove jest-pnp-resolver and unnecessary checks (#​15721)
  • [jest-resolve] Honor Node's --preserve-symlinks / NODE_PRESERVE_SYMLINKS in the default resolver by passing symlinks: false to unrs-resolver (#​16260)
  • [jest-runtime] Apply automocking and manual __mocks__ files to synchronously evaluable ESM graphs on Node 24.9+ - static imports, dynamic import() and require() of an ESM file now generate an automock from the real module's namespace instead of failing with "Attempting to import a mock without a factory". Graphs that need async evaluation (top-level await) or an async-only resolver or transformer still throw (#​16391)
  • [jest-runtime] Route process.getBuiltinModule through the sandbox, so it returns the sandbox process and the hooked node:module instead of the host's (#​16391)
  • [jest-runtime] Throw an actionable error from module.register() and module.registerHooks() inside a test - the hooks attached to the loader running Jest itself, never saw the sandboxed requires they were meant for, and stayed registered for every later test file in the worker (#​16391)
  • [jest-runtime] Surface resolution and import-attribute errors in an ESM graph before executing any of its CJS dependencies on Node 24.9+, matching Node's run-nothing-on-a-broken-graph behavior; the legacy loader on older versions keeps its linking-time execution order (#​16391)
  • [jest-runtime] Throw ERR_SOURCE_PHASE_NOT_DEFINED with an actionable message for import source and import.source(), instead of failing at instantiation with V8's bare "Source phase import object is not defined" (#​16391)
  • [jest-runtime] Emit the JSON-without-import-attribute deprecation warning once per test file instead of once per worker, so it is no longer silently swallowed for every file after the first (#​16391)
  • [jest-runtime] Set import.meta.main to true in the test file and false in every module it loads, matching Node 24+ (#​16367)
  • [jest-runtime] Resolve the module-sync export condition, so a package that exposes its ESM entry point for require() loads the same file Node would (#​16336)
  • [jest-snapshot] Add external snapshot paths to custom reporter failure details (#​16374)
Fixes
  • [jest-console, jest-reporters]CustomConsole now buffers console output so TestResult.console is populated for reporters when verbose is enabled, while GitHubActionsReporter avoids replaying buffered output in verbose mode (#​16155)
  • [expect, jest-message-util, jest-pattern, jest-regex-util, jest-util] Revert node: protocol imports to restore webpack/browser-bundle compatibility (#​16167)
  • [expect] Widen toMatchObject and objectContaining parameter type from Record<string, unknown> to object so class instances are accepted (#​16196)
  • [jest-circus] Call a generator test body with the shared test context, so this matches what a regular test function receives (#​16347)
  • [jest-circus] Capture the error listeners of the parent process instead of the in-sandbox process, so listeners registered before the test file survive teardown and sandbox listeners no longer leak onto the parent (#​16347)
  • [jest-circus] Clear currentlyRunningTest after skipped and todo tests (#​16342)
  • [jest-circus] Prevent late done() callbacks from affecting later test or hook invocations (#​16343)
  • [jest-circus, jest-jasmine2] Honor --expand when formatting node:assert failures, instead of always collapsing the diff (#​16347)
  • [jest-circus, jest-jasmine2, jest-message-util] Serialize the inner errors of an AggregateError into failureMessages, retryReasons and unhandledErrors, so --json output and reporter annotations include them (#​16316)
  • [jest-circus, jest-snapshot] Keep snapshot state and counts correct when a test retries (#​16344)
  • [@jest/create-cache-key-function] Include the caller support flags in the generated key, so a transformer that emits ESM or CJS based on them no longer shares one cache entry between the two (#​16331)
  • [@jest/create-cache-key-function] Include the stringified project config in the generated key, so editing a transformer's own settings invalidates what it cached (#​16331)
  • [@jest/transform] Include the caller support flags in a transform's cache key, so a file transformed both as ESM and as CJS no longer serves one shape's output for the other (#​16331)
  • [jest-config] Add missing findRelatedTests, outputFile, and replname entries to ValidConfig so they no longer trigger spurious "Unknown option" warnings (#​16224)
  • [jest-config] Use --config for the global config when multiple --projects are specified (#​16273)
  • [jest-core] Serialize bigint values in --json and --outputFile output as their literal form (4n), instead of failing the run with TypeError: Do not know how to serialize a BigInt (#​16338)
  • [jest-core] Do not report a CustomGC async resource (used by N-API addons such as napi-rs for per-isolate GC bookkeeping) as an open handle, since it is napi_unref'd by the addon and can never keep the event loop alive (#​16379)
  • [jest-each] Keep a $&, $`, $' or $$ inside a %p param value out of the replacement, so the title shows the value instead of the text around it (#​16338)
  • [jest-each] Interpolate a bigint into a %j title as its literal form ("4n") at any depth, instead of throwing TypeError: Do not know how to serialize a BigInt while collecting the tests (#​16338)
  • [jest-environment, jest-runtime] Bind sandboxInjectedGlobals to the right values when injectGlobals is false, instead of shifting every one of them by a position (#​16377)
  • [jest-environment-node, jest-util] Only warn about a conflicting globalsCleanup mode when one was explicitly configured, and follow the mode that is actually in effect (#​16323)
  • [jest-environment-node, jest-util] Stop resolving lazy globals when setting up an environment, so Node 26's builtin module globals are no longer loaded (and no longer emit their deprecation warnings) for every test file (#​16324)
  • [jest-haste-map] Keep watch mode alive when an outside process briefly makes a file unreadable on Windows, instead of tearing the watcher down on EPERM (#​16295)
  • [jest-haste-map] Keep indexing when an outside process holds a file open on Windows, instead of failing the whole crawl on EPERM (#​16358)
  • [jest-haste-map] Keep a duplicated manual mock resolving when the file it pointed at is deleted in watch mode (#​16360)
  • [jest-haste-map] Shut the worker farm down when a duplicate manual mock aborts the build under throwOnModuleCollision (#​16354)
  • [jest-haste-map] Attach the watchman client's error listener before the first command, so a watchman failure falls back to the node crawler instead of crashing on an unhandled error event, and always end the client (#​16355)
  • [jest-haste-map] Stop delivering watch events after WatchmanWatcher is closed, and route its warnings through the configured console (#​16355)
  • [jest-haste-map] Restore the nested duplicates index correctly in ModuleMap.fromJSON, so a haste collision reported inside a test worker raises DuplicateHasteCandidatesError instead of a TypeError (#​16353)
  • [jest-haste-map] Match watched files on a full extension, so moduleFileExtensions: ['js'] no longer accepts foo.mjs (#​16352)
  • [jest-haste-map] Delimit the fields that make up the haste map cache key, so two different option sets cannot hash to the same cache file (#​16352)
  • [jest-message-util] Print the inner errors of an AggregateError thrown inside a test (#​16316)
  • [jest-message-util] Indent nested cause and AggregateError sections of a test failure by one level per depth, so the nesting is legible instead of rendering flat (#​16316)
  • [jest-message-util] Color stack traces line by line so blank lines stay blank (#​16316)
  • [jest-message-util] Detect Jest's own frames without assuming the checkout directory's name, and cover @jest/* packages, so stack traces and code frames point at user code (#​16326)
  • [jest-mock]mockResolvedValue / mockRejectedValue now see all overload return types, so a Promise-returning overload survives even when a later overload returns a non-Promise (e.g. pg.Client['end']) (#​16237)
  • [@jest-environment/jsdom-abstract] Make @types/jsdom a peer dependency (#​16166)
  • [jest-mock] Remove the leftover own accessor descriptor when restoring a spyOn of an inherited getter or setter, so the instance keeps reflecting the prototype (#​16226)
  • [jest-resolve] Include extensionsToTreatAsEsm in the shouldLoadAsEsm cache key, so projects with different extension lists don't read each other's answers (#​16369)
  • [jest-resolve] Make getModuleIDAsync build and cache data: URI module IDs the same way as getModuleID (#​16370)
  • [jest-resolve] Keep the node: prefix when resolving a core module asynchronously, so a builtin that only exists prefixed (node:sea, node:sqlite, node:test, node:test/reporters) resolves instead of failing as a missing bare package (#​16388)
  • [jest-resolve] Look up manual mocks for node: protocol specifiers under the unprefixed name they are stored as (#​16388)
  • [jest-resolve] Apply moduleNameMapper consistently to both spellings of core module specifiers (fs vs node:fs) (#​16390)
  • [jest-resolve] Keep virtual and ordinary mock module IDs isolated across test files (#​16296)
  • [jest-resolve] Guard missing require.resolve.paths (#​16052)
  • [jest-resolve, jest-config, jest-runner] Support a user resolver written as an ES module (#​16332)
  • [jest-resolve, jest-runtime] Throw the CJS parse error for ESM syntax in a "type": "commonjs" package or a .cjs file instead of loading it as ESM, matching Node (#​16368)
  • [@jest/source-map] Keep source map sources that name a scheme, such as webpack:///, instead of resolving them into a path that does not exist (#​16327)
  • [@jest/source-map] Look up --testLocationInResults positions at the right column, and keep a mapping to the first column instead of discarding it (#​16327)
  • [@jest/source-map] Warn when a source map cannot be parsed, instead of silently leaving its frames untranslated (#​16327)
  • [jest-runner, @jest/source-map] Keep a source-mapped stack for an error thrown after the test environment was torn down (#​16327)
  • [jest-runtime, @jest/source-map] Keep source maps past teardown and past the next test file's install, so a stack from a file no earlier stack mentioned still points at the original source (#​16330)
  • [jest-runtime] Report that no coverage was collected when getAllV8CoverageInfoCopy is called after teardown, instead of returning an empty result (#​16385)
  • [jest-runtime] Cache a CJS module's parsed exports before walking its re-exports, so two modules that re-export each other no longer overflow the stack when imported from ESM (#​16363)
  • [jest-runtime] Keep a re-exported ES module's parse failure from marking the re-exporting CommonJS file as ESM, so module.exports = require('./dep.mjs') loads instead of failing with module is not defined (#​16363)
  • [jest-runtime] Scope module mocks instantiated inside jest.isolateModules/isolateModulesAsync to that block, so a mock first imported there no longer outlives it - matching how CommonJS mocks already behave (#​16365)
  • [jest-runtime] Suspend module isolation while generating an automock, so loading the real module to read its shape no longer populates the isolated registry (#​16365)
  • [jest-runtime] Check a cached ES module's status before require() returns it, so a module whose evaluation threw rethrows that error and one left linked by a failed sibling is evaluated instead of returning uninitialized bindings (#​16364)
  • [jest-runtime] Report the original ERR_REQUIRE_ASYNC_MODULE when a require() of a top-level-await graph is retried, instead of a spurious "concurrent import()" error (#​16364)
  • [jest-runtime] Throw the evaluation error when another caller's import() of the same module failed while we awaited it, instead of resolving with the errored module (#​16364)
  • [jest-runtime] Mark the result of require()ing an ES module that has a default export with __esModule: true through a live-binding facade, and serve the same object from require.cache, matching Node (#​16367)
  • [jest-runtime] Provide a CommonJS module's exports under the 'module.exports' named export when imported from ESM, matching Node 23+ (#​16367)
  • [jest-runtime] Give the test file itself a non-null require.main (#​16367)
  • [jest-runtime] Populate module.children with the modules a file loads, matching Node (#​16368)
  • [jest-runtime] Provide import.meta.resolve and import.meta.jest in data: URI modules, accept any-case mediatype parameters, and use Node's error codes for invalid data: URIs (#​16368)
  • [jest-runtime] Key ES modules by full URL, so query and fragment suffixes create the same module instances as Node and show up in import.meta.url (#​16375)
  • [jest-runtime] Share modules between overlapping graphs when a CommonJS module require()s an ES module mid-load, instead of evaluating shared dependencies twice (#​16375)
  • [jest-runtime] Throw ERR_REQUIRE_CYCLE_MODULE like Node when a CommonJS module require()s an ES module that is still being loaded, instead of evaluating the module a second time (#​16366)
  • [jest-runtime] Key builtin modules in the ESM registry by one canonical specifier (#​16341)
  • [jest-runtime]import.meta.resolve() for a builtin uses its node: specifier (#​16341)
  • [jest-runtime] Fall back to native ESM when a .js file contains ESM syntax but has no "type":"module" marker (#​16152)
  • [jest-runtime] Allow require() of ESM-marked files on Node < 24.9 via transform fallback (#​16244)
  • [jest-runtime, @jest/transform] Surface actionable ERR_REQUIRE_ESM error for files with untransformed ESM syntax instead of the generic "unexpected token" message (#​16244)
  • [jest-runtime] Support older test environments whose moduleMocker does not implement clearMocksOnScope (#​16169)
  • [jest-runtime] Apply jest.unstable_mockModule when the mocked file itself is require()d, not only when it is imported as a dependency (#​16389)
  • [jest-runtime] Apply jest.unstable_mockModule to statically imported data: URIs on Node 24.9+, matching dynamic import() (#​16389)
  • [jest-runtime] Run an async jest.unstable_mockModule factory once per module instead of twice, and fail the import instead of crashing the worker when the factory rejects (#​16389)
  • [jest-runtime] Hide a require(esm) module that failed to evaluate from require.cache, as Node does, instead of exposing a namespace with uninitialized bindings (#​16389)
  • [jest-runtime] Strip the byte-order mark when importing a JSON module, matching require() and Node (#​16389)
  • [jest-runtime] Throw ERR_REQUIRE_ASYNC_MODULE when require(esm) runs under an async-only custom resolver, instead of silently resolving with the default resolver (#​16389)
  • [jest-runtime] Parse imported JSON modules with the test realm's JSON, so their objects pass instanceof Object inside the test like require()d JSON does (#​16389)
  • [jest-runtime] Accept every file: URL string in the sandboxed module.createRequire, including one with a localhost authority, as Node does (#​16389)
  • [jest-runtime] Point at {virtual: true} when jest.mock or jest.unstable_mockModule is given a module that cannot be resolved (#​16389)
  • [jest-reporters] Fix coverage report table formatting in CI/GitHub Actions environments where process.stdout.columns is undefined by falling back to the COLUMNS env var or 80 columns in CI, preserving existing behaviour in other non-TTY environments (#​16227)
  • [jest-runtime] Support CJS-in-ESM exports via "module.exports" named exports (#​16277)
  • [jest-snapshot] Keep a skipped or failed test's hinted snapshots, instead of reporting them obsolete (#​16348)
  • [jest-util] Stop globsToMatcher reusing a cached matcher compiled with different picomatch options, and keep its dot: true default when dot is passed as undefined (#​16381)
  • [pretty-format] Move the react-is aliases into the @jest scope, so they cannot be shadowed by unrelated packages published under the alias names (#​16333)
Chore & Maintenance
  • [docs] Document the intentional divergences from Node's module system in the ECMAScript Modules page (#​16368)
  • [docs] Note deprecation of react-test-renderer in React Native tutorial and pretty-format README (#​16294)
  • [docs] Use @testing-library/react-native in the React Native tutorial instead of the deprecated react-test-renderer (#​16318)
  • [babel-jest, @jest/transform] Update babel-plugin-istanbul to v8 (#​16049)
  • [jest-config, @jest/reporters, jest-runtime] Update glob to v13 (#​16397)
  • [jest-haste-map] Refactor massive class into multiple files (#​16180)
  • [jest-haste-map] Drop walker dependency; replace hand-rolled directory recursion in the JS crawler and watcher startup with fdir (#​16187)
  • [jest-haste-map] Reuse cached metadata for files whose haste name is a known duplicate, instead of re-reading and re-parsing them on every startup (#​16351)
  • [jest-haste-map] Cache the watchman socket path and replace the watchman --version probe with get-sockname, so warm runs spawn no watchman processes (#​16386)
  • [jest-resolve] Store the per-directory package-type lookup in the cache it reads, so it actually memoizes (#​16369)
  • [jest-resolve, jest-runtime] Cut repeated work on the resolution hot path: hoist the platform-extension list to construction, memoize isCoreModule and the options cache-key serialization, skip mapper preparation when no moduleNameMapper is configured, run each mapper regex once, and stop re-parsing NODE_OPTIONS on every default-resolver call (#​16371)
  • [jest-resolve] Cut warm resolution cost to about a third: reuse one unrs-resolver factory per options shape instead of cloning per resolution, compose the factory cache key from per-array cached strings instead of serializing options, and stop constructing an Error for misses that findNodeModule swallows; add a __benchmarks__ suite for the default resolver (#​16373)
  • [jest-runner, @jest/source-map] Replace source-map-support with an implementation in @jest/source-map (#​16327)
  • [jest-snapshot] Load babel, semver and synckit lazily, so requiring the package (which every test process does through @jest/expect) no longer loads ~200 modules that only writing inline snapshots needs (#​16387)
  • [jest-runtime] Reduce per-require overhead: skip module ID resolution when no mock can apply, answer core modules before probing for a manual mock, share one require.cache proxy across modules, and cache empty files (#​16376)
  • [@jest/source-map] Deprecate getCallsite in favour of SourceMapSupport#getCallsite (#​16327)
  • [jest-runtime] Avoid magical null value in ESM loader (#​16160)
ankitskvmdam/clean-jsdoc-theme (clean-jsdoc-theme)

v5.2.0

Compare Source

Highlights

llms.txt for your docs — llmsTxt

Generate an llmstxt.org index of your documentation at build time, so LLMs and AI crawlers can discover and read it. Every entry links a page's companion Markdown (<page>/index.md) rather than its HTML, so a model fetches clean prose instead of parsing your layout.

// jsdoc.json
opts: {siteUrl: "https://example.com",llmsTxt: true}// typedoc.json
cleanJsdocTheme: {siteUrl: "https://example.com",llmsTxt: {api: "index"}}
  • /llms.txt — one h1, a summary, then one section per sidebar group.
  • /llms-full.txt — every page concatenated, for one-shot ingestion.

true is shorthand for { full: true, api: true }:

KeyDefaultMeaning
fulltrueAlso emit llms-full.txt. Set false on a large API site — it concatenates every page.
apitruetrue lists API pages with descriptions and includes their bodies in llms-full.txt; 'index' lists them as a bare index and omits their bodies; false omits API pages entirely.

siteUrl is required — the file is fetched standalone, so its links must be absolute. Without it the build warns and generates nothing (with strict, it fails). Source-file viewer pages are never listed, and each locale of a localized build gets its own file. See Configuration → llmsTxt.

🔗 TypeDoc: hostedBaseUrl is now honored

If you already set TypeDoc's own hostedBaseUrl, sitemap.xml and llms.txt now work without repeating the URL in cleanJsdocTheme.siteUrl. When both are set the theme-specific key wins and the build warns, so it's always clear which one applied.

🔎 siteUrl is validated up front

A malformed siteUrl used to silently produce no sitemap.xml. It now reports a warning. A siteUrl that carries a path while basePath is unset also warns, because that path is dropped from emitted URLs — a common way to get plausible-looking but wrong links.

Option warnings are additionally re-printed after the build report. They were previously emitted before any render work, so on a large site they scrolled far out of view behind the build log.

Minor Changes

  • Add llmsTxtllms.txt + llms-full.txt generation for both the JSDoc template and the TypeDoc plugin (see Highlights).
  • TypeDoc: fall back to hostedBaseUrl when cleanJsdocTheme.siteUrl is unset.
  • Validate siteUrl and surface option warnings again at the end of the build.

Patch Changes

  • Mobile TOC: on a page with more headings than fit the popover's height cap, every row collapsed to 12px, clipping and overlapping the heading text instead of scrolling. Rows now keep their natural height and the list scrolls.
  • Build: the packages are now bundled with tsdown (Rolldown) instead of tsup. No API, entry-point, or output-filename changes — a site built with the new toolchain is byte-identical to one built with the old, down to every emitted HTML/Markdown file, the stylesheet, and all hydration bundles.

For contributors

  • Building this repo now requires Node >=22.18 (tsdown's own requirement; Node 20 reached end of life in April 2026). Consuming the published packages still only needs Node >=20 — the emitted code targets ES2022 and no published package declares engines.
  • pnpm run dev in docs-site / examples/* is now a Vite dev server: edit any package and the site regenerates and the browser live-reloads itself. This replaces a nodemon + serve pair that had no reload channel at all.

Security

  • No security-relevant changes in this release.
jest-community/eslint-plugin-jest (eslint-plugin-jest)

v29.16.5

Compare Source

Bug Fixes

v29.16.4

Compare Source

Bug Fixes

v29.16.3

Compare Source

Bug Fixes
webpack/webpack (webpack)

v5.110.1

Compare Source

Patch Changes

v5.110.0

Compare Source

Minor Changes
  • Wrap concatenated modules in lazy __webpack_require__.cw accessors and inline require(), keeping a wrapped body's names and side effects intact. (by @​hai-x in #​21519)

  • Add performance hints reporting what a build costs: duplicate packages and modules, circular dependencies, broad contexts, large modules and chunks, hotspots, eval, missing PURE annotations, polyfills, redundant dynamic imports, OS-dependent rules, cache effectiveness, how chunks load, what splitting refused, why an optimization was skipped, and rules, defines, externals, aliases and barrel reexports nothing uses. An oversized asset names its largest modules, and an entrypoint carrying the runtime recommends optimization.runtimeChunk. Enable every check not set individually with performance.all, report hints in stats only with performance.hints: "stats", and get them in a stable order that leaves the build hashes unchanged. (by @​alexander-akait in #​21841)

  • Add the descriptionRelativePath module rule condition. (by @​alexander-akait in #​21705)

  • Add OS-independent glob matching to module rules. (by @​alexander-akait in #​21771)

  • Report inner-graph, AMD and bare module bailouts in optimizationBailout. (by @​alexander-akait in #​21740)

  • Allow marking externals as side-effect-free with a sideEffects flag. (by @​alexander-akait in #​21712)

  • Give externals the original request of a context module element. (by @​alexander-akait in #​21780)

  • Add the externalsPresets.nodeModules preset with an allowlist option to externalize installed packages, replacing the webpack-node-externals plugin. (by @​alexander-akait in #​21569)

  • Add output.library.umdAmdContainer for an AMD-style loader branch in UMD. (by @​hai-x in #​21770)

  • Resolve @custom-media values that are true / false or name another custom media. (by @​alexander-akait in #​21624)

  • Add the __webpack_css_server_styles__ module variable to read the CSS collected while rendering without a DOM, and keep that CSS in the order the styles were applied. (by @​alexander-akait in #​21576)

  • Patch the HTML <head> in place on hot update instead of forcing a full reload, including when a <script> that never executed is removed. (by @​alexander-akait in #​21624)

  • Scope counter names in CSS modules; fix the counter() counter-style and animation timeline keywords. (by @​alexander-akait in #​21600)

  • Derive import defer / import source from the target and fix the source phase. (by @​alexander-akait in #​21810)

  • Emit analyzable ESM urls for chunks, assets, styles, workers and wasm. (by @​alexander-akait in #​21788)

  • Tree shake CommonJS: module.exports object literals, exports destructured from a require() binding, unused method requires, and unused side-effect-free require() calls and reexports. (by @​alexander-akait in #​21841)

  • Resolve relative entry baseUri values and bake one side of a hash cycle. (by @​alexander-akait in #​21750)

  • Minify CSS further, only where the document is unchanged: shorthands and box longhands, font-weight, <position> and font-stretch keywords, colors (polar, Lab and hsl() converted to hex), numbers, times, zero units, calc() and every math function the spec names folded over constants, selector lists, An+B, keyframe selectors, media-feature ranges, unicode-range, transition layers, display, transforms, gradients, font families, identical repeated declarations, and rules an identical later one makes dead. Abilities are read off the target browsers, vendorPrefixes adds and drops vendor prefixes for them, and rewriteCustomProperties shortens custom property values. Minification never changes whether a declaration parses, and beautifying keeps every rule. (by @​alexander-akait in #​21841)

  • Safely minify CSS (with source maps) and HTML assets when optimization.minimize is enabled, unless a minimizer is already configured for them, making only transformations an engine cannot tell apart. Every rewrite is named as an option, so it can be switched off. (by @​alexander-akait in #​21841)

  • Minify HTML further where the parsed document is unchanged: drop redundant quotes, whitespace nothing renders, escapes text does not need, implied tags, optional end tags nothing prints behind, empty attributes and nested empty elements; fold enumerated values and casing; normalize each attribute against the element it is on; and rewrite style, token lists, srcset, sizes, URL, integer and boolean attributes, viewport content, inline <style> and a JSON <script> body through their own grammars. Adds the optimization.minimize.html options collapseWhitespace, mergeStyles, minifyConditionalComments, minifySrcdoc, preserveComments, removeEmptyAttributes, removeEmptyElements, removeImpliedTags, removeRedundantAttributes, sortAttributes and sortTokenLists, and keeps an end tag the parent, the next element or the adoption agency would otherwise restructure the tree over. (by @​alexander-akait in #​21841)

  • Suggest the closest name or a casing fix anywhere in a failed request. (by @​alexander-akait in #​21727)

  • Add aggregated shutdown hook to MultiCompiler. (by @​bjohansebas in #​21578)

  • Report which compilers changed on the MultiCompiler done hook. (by @​bjohansebas in #​21580)

  • Add [containedpath]/[containedfile] placeholders, used for [path]/[file] of asset and html modules with experiments.futureDefaults. (by @​alexander-akait in #​21592)

  • Support an object for an entry's html that overrides output.html per option. (by @​alexander-akait in #​21574)

  • Configure or exclude each asset type's minifier via optimization.minimize. (by @​alexander-akait in #​21663)

  • Support printing CSS and HTML beautified as well as minified. (by @​alexander-akait in #​21660)

  • Add renderEmbeddedSource, and minify what it offers out of the box. (by @​alexander-akait in #​21830)

  • Report bindings named eval, arguments or reserved words in ES module output. (by @​alexander-akait in #​21567)

  • Emit no development source map for module libraries, or any with futureDefaults. (by @​alexander-akait in #​21839)

  • Speed up builds and cut memory: faster CSS, HTML and JavaScript parsing and minification, a built-in scope analyzer replacing eslint-scope, faster dependency hot paths, module diagnostics, CommonJS export scanning and concatenated module renaming, runtime modules, parsers, generators and dependencies loaded only when used, one file watcher pool shared between MultiCompiler children, and lower parser, graph and startup memory. (by @​alexander-akait in #​21841)

  • Improve tree-shaking for a namespace reexported as default, and fix import d from "./mod"; d.member reading undefined in that case. (by @​alexander-akait in #​21841)

  • Warn on cross-kind CSS module export conflicts and let the class win. (by @​alexander-akait in #​21538)

  • Add output.resourceHints.dedupe to skip prefetch links for already preloaded/prefetched chunks. (by @​alexander-akait in #​21386)

Patch Changes
  • Let a memory-cache etag mismatch fall through to the file cache instead of reporting a miss. (by @​alexander-akait in #​21624)

  • Determine provided exports in dependency order, so a build's module hashes no longer depend on what the persistent cache held. (by @​alexander-akait in #​21630)

  • Emit no dead module and no failing require for an asset-url external. (by @​alexander-akait in #​21713)

  • Fix names, hidden devtools and cache reuse for CSS maps inlined into JS. (by @​alexander-akait in #​21558)

  • Follow the HTML spec more closely when parsing and printing: frameset content, quirks paragraphs and selects, <![CDATA[ outside foreign content as a bogus comment, <?target data?> as a processing instruction, </> dropped, comment data and DOCTYPE identifiers read from the tokenizer states, attributes merged from a repeated <html>/<body> tag, legacy JavaScript script types, void keygen and font format detection — and hand back the tree a parsed document was built from when printing it. (by @​alexander-akait in #​21841)

  • Clear a Watching's blocked flag when its build starts, so it reports only a child actually waiting for its MultiCompiler parent. (by @​bjohansebas in #​21639)

  • Fix AMD define() output using the wrong module and exports argument names. (by @​hai-x in #​21814)

  • Fix ReferenceError from import.meta.main using the wrong module argument. (by @​hai-x in #​21620)

  • Leave a @namespace URI alone instead of resolving and rewriting it as an asset. (by @​alexander-akait in #​21658)

  • Resolve escaped CSS names, and scope a grid area cell name as one name. (by @​alexander-akait in #​21665)

  • Track exports usage of side-effect-free modules an active import() evaluates. (by @​hai-x in #​21623)

  • Resolve absolute symlink targets and treat an unreadable context as missing. (by @​alexander-akait in #​21647)

  • Fix corrupted icon URLs in a .webmanifest with a BOM or non-ASCII text. (by @​alexander-akait in #​21655)

  • Respect strictThisContextOnImports for require() member calls. (by @​hai-x in #​21601)

  • Fix import.meta, [object Object] asset urls and crashes in build-time executed modules. (by @​alexander-akait in #​21841)

  • Inherit sideEffects past a type-only nested package.json for files under node_modules. (by @​xiaoxiaojx in #​21686)

  • Do not fail directory creation when the file system reports it already exists. (by @​alexander-akait in #​21698)

  • Fix top-level using and await using declarations in modules. (by @​alexander-akait in #​21557)

  • Fix DefinePlugin optional chains reading an undefined object member. (by @​lazerg in #​21823)

  • Fix MultiCompiler: compute the common outputPath by whole path segments, run again after a dependency validation failure, and recover watch mode from a fatal child error without leaking watchings. (by @​alexander-akait in #​21841)

  • Keep a nested bundle's runtime tables separate when bundling webpack output. (by @​alexander-akait in #​21568)

  • Keep the runtime out of strict mode when output.globalObject reads this. (by @​alexander-akait in #​21715)

  • Run an even-priority __webpack_require__.O handler without waiting. (by @​alexander-akait in #​21803)

  • Treat top-level this in a classic worker entry as its global scope. (by @​alexander-akait in #​21720)

  • Rehash runtime modules whose code changes under a content-named filename. (by @​alexander-akait in #​21828)

  • Fix namespace object reexports and string export names in module library output and emit a CommonJS entry's default as export default. (by @​alexander-akait in #​21589)

  • Keep tree-shaken JSON arrays as arrays when a prototype property is read. (by @​hai-x in #​21599)

  • Generate every CSS and HTML lookup table into lib/{css,html}/data.js from mdn-data, color-name and the spec IDL — including the value-type facts read out of the CSS value-definition grammars — leaving both syntax.js files algorithm only. (by @​alexander-akait in #​21841)

  • Support UNC paths in module and context replacement plugins. (by @​avivkeller in #​21645)

  • Emit less runtime code: sho

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • "after 1am and before 8am"
  • Automerge
    • At any time (no schedule defined)

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

Rebasing: Never, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

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

@renovaterenovateBot added dependencies Pull requests that update a dependency file js labels Aug 28, 2026
@sonarqubecloud

Copy link
Copy Markdown

@codecov

codecovBot commented Aug 28, 2026

Copy link
Copy Markdown

Bundle Report

Bundle size has no change ✅

@codecov

codecovBot commented Aug 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (4344e28) to head (ca58f6a).
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@ Coverage Diff @@## master #341 +/- ##
=========================================
Coverage 100.00% 100.00% =========================================
Files 6 6 Lines 191 191 Branches 50 50 =========================================
Hits 191 191 

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4344e28...ca58f6a. Read the comment docs.

@ReenigneArcher
ReenigneArcher merged commit c382e38 into masterAug 28, 2026
16 checks passed
@ReenigneArcher
ReenigneArcher deleted the renovate/devdependencies-non-major branch August 28, 2026 14:32
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency filejs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ReenigneArcher