Skip to content

chore(deps): bump the nestjs group with 10 updates - #22

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/nestjs-7828c53395
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/nestjs-7828c53395

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 12, 2026

Copy link
Copy Markdown
Contributor

Bumps the nestjs group with 10 updates:

Package From To
@nestjs/common 11.2.3 12.0.1
@nestjs/core 11.2.3 12.0.1
@nestjs/event-emitter 3.1.0 12.0.0
@nestjs/platform-express 11.2.3 12.0.1
@nestjs/schedule 6.1.3 12.0.1
@nestjs/serve-static 5.0.5 12.0.0
@nestjs/swagger 11.4.7 12.0.1
@nestjs/cli 11.0.24 12.0.0
@nestjs/schematics 11.1.0 12.0.0
@nestjs/testing 11.2.3 12.0.1

Updates @nestjs/common from 11.2.3 to 12.0.1

Release notes

Sourced from @​nestjs/common's releases.

v12.0.0

NestJS v12.0.0

NestJS 12 is centered around ESM-ready packages, first-class Standard Schema support for validation and serialization, a rebuilt CLI, and native observability through the new @nestjs/observe SDK.

Existing CommonJS applications keep working — migrating your own code to ESM is entirely optional.

📖 Full migration guide


Upgrading

Upgrade the CLI first, since the upgrade command ships with it:

npm i -g @nestjs/cli@latest

Then, from the root of your project:

nest upgrade

nest upgrade moves every @nestjs/* package to its v12-compatible major at once and applies the mechanical parts of the migration for you — nest-cli.json webpack options, the GraphQL playgroundgraphiql rename and subscriptions transport swap, the NATS package replacement, @nestjs/config validation options, Jest and Joi bumps — then prints a report of everything it changed and everything you still need to review by hand. Run it with --dry-run first to see that report without touching your files.

It deliberately does not migrate your project to ESM, Vitest, or oxlint. Those are the defaults for newly generated projects; existing projects adopt them on their own schedule.

Node.js: v12 requires Node.js v20.19+ or v22.12+. Both require(esm) and the ESM packages depend on it; the upgrade command refuses to run on older releases (including the 21.x line). The latest active LTS is recommended.


Highlights

ESM packages

All core Nest packages now ship as ESM. Thanks to require(esm) in modern Node.js, most existing CommonJS applications continue to work without a rewrite. Review custom bootstrapping scripts, build tooling, and test runners if they assume CommonJS-only packages.

nest new now asks whether to scaffold a CommonJS or an ESM project.

Standard Schema validation

Route parameter decorators — @Body(), @Query(), @Param(), @RawBody() — accept a new schema option, designed for Standard Schema compatible libraries such as Zod, Valibot, and ArkType:

@Post()
create(@Body({ schema: createUserSchema }) body: CreateUserDto) {
  return this.usersService.create(body);
}
</tr></table> 

... (truncated)

Commits
  • 4c751c5 chore(release): publish v12.0.1 release
  • 6494a6c chore(release): publish v12.0.0 release
  • e306724 fix(deps): update dependency file-type to v22
  • edb0034 Merge branch 'master' into v12.0.0
  • e255755 chore: resolve conflicts, minor fixes
  • 5d1b19b Merge branch 'master' into v12.0.0
  • a2c25c2 Merge pull request #17028 from OlegStrokan/feat/get-transport-server
  • 5f2618a fix(common): Reject hex and non-numeric strings in parse-float pipe
  • See full diff in compare view

Updates @nestjs/core from 11.2.3 to 12.0.1

Release notes

Sourced from @​nestjs/core's releases.

v12.0.0

NestJS v12.0.0

NestJS 12 is centered around ESM-ready packages, first-class Standard Schema support for validation and serialization, a rebuilt CLI, and native observability through the new @nestjs/observe SDK.

Existing CommonJS applications keep working — migrating your own code to ESM is entirely optional.

📖 Full migration guide


Upgrading

Upgrade the CLI first, since the upgrade command ships with it:

npm i -g @nestjs/cli@latest

Then, from the root of your project:

nest upgrade

nest upgrade moves every @nestjs/* package to its v12-compatible major at once and applies the mechanical parts of the migration for you — nest-cli.json webpack options, the GraphQL playgroundgraphiql rename and subscriptions transport swap, the NATS package replacement, @nestjs/config validation options, Jest and Joi bumps — then prints a report of everything it changed and everything you still need to review by hand. Run it with --dry-run first to see that report without touching your files.

It deliberately does not migrate your project to ESM, Vitest, or oxlint. Those are the defaults for newly generated projects; existing projects adopt them on their own schedule.

Node.js: v12 requires Node.js v20.19+ or v22.12+. Both require(esm) and the ESM packages depend on it; the upgrade command refuses to run on older releases (including the 21.x line). The latest active LTS is recommended.


Highlights

ESM packages

All core Nest packages now ship as ESM. Thanks to require(esm) in modern Node.js, most existing CommonJS applications continue to work without a rewrite. Review custom bootstrapping scripts, build tooling, and test runners if they assume CommonJS-only packages.

nest new now asks whether to scaffold a CommonJS or an ESM project.

Standard Schema validation

Route parameter decorators — @Body(), @Query(), @Param(), @RawBody() — accept a new schema option, designed for Standard Schema compatible libraries such as Zod, Valibot, and ArkType:

@Post()
create(@Body({ schema: createUserSchema }) body: CreateUserDto) {
  return this.usersService.create(body);
}
</tr></table> 

... (truncated)

Commits
  • 4c751c5 chore(release): publish v12.0.1 release
  • 3c25112 chore: update peer deps
  • 6494a6c chore(release): publish v12.0.0 release
  • c9d59f2 chore: expose missing internals
  • 45485b5 fix(core): circular durable providers issue #17562
  • f94e9eb fix(core): preserve middleware arity and harden instance decorator
  • 1dcbc25 fix(core): instrument midldeware issue #17554
  • f5bf4dd docs(core): update Mercure SSE header comment to current path
  • edb0034 Merge branch 'master' into v12.0.0
  • e255755 chore: resolve conflicts, minor fixes
  • Additional commits viewable in compare view

Updates @nestjs/event-emitter from 3.1.0 to 12.0.0

Release notes

Sourced from @​nestjs/event-emitter's releases.

Release 12.0.0

What's Changed

@nestjs/event-emitter is now a native ES module, and the major version is aligned with the Nest 12 release line (there is no 4.x — 3.1.0 goes straight to 12.0.0).

ESM migration

The package is published as pure ESM ("type": "module", compiled with NodeNext) behind a proper exports map. Deep imports into build internals (@nestjs/event-emitter/dist/...) are no longer resolvable — import from the package root.

// still the only supported entry point
import { EventEmitterModule, OnEvent } from '@nestjs/event-emitter';

require(esm) — CommonJS still works

You do not need to convert your app to ESM. Thanks to Node's require(esm) support, a plain CommonJS Nest app can keep doing:

const { EventEmitterModule, OnEvent } = require('@nestjs/event-emitter');

Both load paths are covered by a smoke test that runs against the built package in CI, so an interop regression fails the build rather than reaching npm.

Node.js requirement

engines.node is now >=20.19.0. That is the first Node 20 release with unflagged require(esm) (Node 22.12+ on the 22 line). On older runtimes a CommonJS app cannot require() this package at all.

Importing EventEmitter2

eventemitter2 is a CommonJS package, so under ESM Node cannot statically detect its named exports and import { EventEmitter2 } from 'eventemitter2' throws at load time. This package re-exports the class off the default export for you — import it from here instead:

import { EventEmitter2 } from '@nestjs/event-emitter';

It is still exported as both a value and a type, so existing type annotations keep working.

Newly exported from the package root

  • EVENT_LISTENER_METADATA — the metadata key @OnEvent writes, so custom decorators can produce listener metadata the loader understands
  • the public interfaces (EventEmitterModuleOptions, OnEventOptions, EventPayloadHost), which previously had to be reached through a deep import
Commits
  • e37ba08 chore(): release v12.0.0
  • f203a1b chore: upgrade to v12
  • 906133a chore(deps): update nest monorepo to v11.2.3 (#1806)
  • 71948fd chore(deps): update dependency oxlint to v1.80.0 (#1805)
  • 2d43ede chore(deps): update dependency vite to v8.2.2 (#1804)
  • 3803013 chore(deps): update dependency oxlint to v1.79.0 (#1803)
  • c5d49a5 chore(deps): update dependency vitest to v4.1.11 (#1802)
  • c4b5e86 Merge pull request #1740 from nestjs/renovate/cimg-node-24.x
  • 227d204 Merge pull request #1718 from nestjs/chore/esm-migration
  • 83a3b36 fix: make esm build loadable and guard it in ci
  • Additional commits viewable in compare view

Updates @nestjs/platform-express from 11.2.3 to 12.0.1

Release notes

Sourced from @​nestjs/platform-express's releases.

v12.0.0

NestJS v12.0.0

NestJS 12 is centered around ESM-ready packages, first-class Standard Schema support for validation and serialization, a rebuilt CLI, and native observability through the new @nestjs/observe SDK.

Existing CommonJS applications keep working — migrating your own code to ESM is entirely optional.

📖 Full migration guide


Upgrading

Upgrade the CLI first, since the upgrade command ships with it:

npm i -g @nestjs/cli@latest

Then, from the root of your project:

nest upgrade

nest upgrade moves every @nestjs/* package to its v12-compatible major at once and applies the mechanical parts of the migration for you — nest-cli.json webpack options, the GraphQL playgroundgraphiql rename and subscriptions transport swap, the NATS package replacement, @nestjs/config validation options, Jest and Joi bumps — then prints a report of everything it changed and everything you still need to review by hand. Run it with --dry-run first to see that report without touching your files.

It deliberately does not migrate your project to ESM, Vitest, or oxlint. Those are the defaults for newly generated projects; existing projects adopt them on their own schedule.

Node.js: v12 requires Node.js v20.19+ or v22.12+. Both require(esm) and the ESM packages depend on it; the upgrade command refuses to run on older releases (including the 21.x line). The latest active LTS is recommended.


Highlights

ESM packages

All core Nest packages now ship as ESM. Thanks to require(esm) in modern Node.js, most existing CommonJS applications continue to work without a rewrite. Review custom bootstrapping scripts, build tooling, and test runners if they assume CommonJS-only packages.

nest new now asks whether to scaffold a CommonJS or an ESM project.

Standard Schema validation

Route parameter decorators — @Body(), @Query(), @Param(), @RawBody() — accept a new schema option, designed for Standard Schema compatible libraries such as Zod, Valibot, and ArkType:

@Post()
create(@Body({ schema: createUserSchema }) body: CreateUserDto) {
  return this.usersService.create(body);
}
</tr></table> 

... (truncated)

Commits
  • 4c751c5 chore(release): publish v12.0.1 release
  • 3c25112 chore: update peer deps
  • 6494a6c chore(release): publish v12.0.0 release
  • e03cf5c fix(express,fastify): apply falsy status codes in reply()
  • edb0034 Merge branch 'master' into v12.0.0
  • e255755 chore: resolve conflicts, minor fixes
  • 5d1b19b Merge branch 'master' into v12.0.0
  • 043e951 fix(platform-express): address body parser review comments
  • 361ce5f feat: narrow body parser options to the selected parser
  • 68dfc23 Merge branch 'master' into v12.0.0
  • Additional commits viewable in compare view

Updates @nestjs/schedule from 6.1.3 to 12.0.1

Release notes

Sourced from @​nestjs/schedule's releases.

Release 12.0.1

What's Changed

Full Changelog: nestjs/schedule@12.0.0...12.0.1

Release 12.0.0

What's Changed

@nestjs/schedule is now a native ES module, and the major version is aligned with the Nest 12 release line (there is no 7.x — 6.1.3 goes straight to 12.0.0).

ESM migration

The package is published as pure ESM ("type": "module", compiled with NodeNext) behind a proper exports map. The legacy root index.js / index.d.ts / index.ts shims are gone, and deep imports into build internals are no longer resolvable — import from the package root.

// ✅
import { ScheduleModule, Cron, CronExpression } from '@nestjs/schedule';
// ❌ no longer resolvable
import { CronExpression } from '@​nestjs/schedule/dist/enums/cron-expression.enum';

Only . and ./package.json are exported.

require(esm) — CommonJS still works

You do not need to convert your app to ESM. Thanks to Node's require(esm) support, a CommonJS app can keep doing:

const { ScheduleModule } = require('@nestjs/schedule');

This is why the package now declares "engines": { "node": ">=20.19.0" }require(esm) is unflagged from Node 20.19 / 22.12 onward. On older Node versions the require will throw ERR_REQUIRE_ESM.

Fixes

  • Duplicate scheduler names are now rejected at startup. Two @Cron, @Interval, or @Timeout declarations sharing an explicit name previously slipped past decorator collection and only conflicted later; the DUPLICATE_SCHEDULER error is now thrown during initialization, where you can actually see it.

Upgrading

npm i @nestjs/schedule@12
  • Node 20.19+ (or 22.12+) is required.
  • Replace any deep imports with root imports.
  • If you were importing from the removed root index.js shim path explicitly, drop the path — @nestjs/schedule resolves on its own.
Commits
  • 1df146c chore(): release v12.0.1
  • 7c241a5 Merge pull request #2349 from nestjs/feat/export-schedule-explorer
  • 00d3db8 feat: export ScheduleExplorer from the package entry point
  • 55e94dd Merge pull request #2347 from nestjs/renovate/cimg-node-24.x
  • 7e5d551 Merge pull request #2348 from nestjs/renovate/nest-monorepo
  • 5237ab0 chore(deps): update nest monorepo to v12.0.1
  • 6bd6e14 chore(): release v12.0.0
  • 6719285 feat: support nestjs v12
  • 3bcca07 chore(deps): update node.js to v24.20.0
  • 1b24bb7 chore(deps): update nest monorepo to v11.2.3 (#2346)
  • Additional commits viewable in compare view

Updates @nestjs/serve-static from 5.0.5 to 12.0.0

Release notes

Sourced from @​nestjs/serve-static's releases.

Release 12.0.0

What's Changed

@nestjs/serve-static is now a native ES module, and the major version is aligned with the Nest 12 release line (there is no 6.x–11.x — 5.0.5 goes straight to 12.0.0).

ESM migration

The package is published as pure ESM ("type": "module", compiled with NodeNext) behind a proper exports map. The legacy root index.js / index.d.ts shims are gone, and deep imports into build internals are no longer resolvable — import from the package root.

The runtime was migrated too, not just the build output: the optional express and @fastify/static loads now go through createRequire(import.meta.url) instead of a bare require(). Under a native ESM loader the old code threw ReferenceError, which loadPackage swallowed before calling process.exit(1) — taking the host application down at startup.

If you pass rootPath: join(__dirname, '..', 'client') from an ESM app, switch to import.meta.dirname:

ServeStaticModule.forRoot({
  rootPath: join(import.meta.dirname, '..', 'client')
})

require(esm) — CommonJS still works

You do not need to convert your app to ESM. Thanks to Node's require(esm) support, CommonJS applications can keep using require('@nestjs/serve-static') unchanged.

TypeScript projects that compile to CommonJS need "module": "nodenext" in their tsconfig.json. The older "node16" setting predates require(esm) and will report TS1479.

Node.js requirement

An engines floor is now declared so npm blocks installs on versions without require(esm):

^20.19.0 || ^22.12.0 || >=23.0.0

Peer dependencies

  • @nestjs/common and @nestjs/core^12.0.0
  • @fastify/static^10.0.0 (the ^8 || ^9 range is dropped; v10 carries a security fix)
  • express ^5.0.1 and fastify ^5.2.1 are unchanged

Features

  • exclude now accepts a RegExp in addition to an array of path strings, for cases where a single pattern is clearer than enumerating routes (#1983):

    ServeStaticModule.forRoot({
      rootPath: join(import.meta.dirname, '..', 'client'),
      exclude: /^\/api(\/.*)?$/
    })

... (truncated)

Commits

Updates @nestjs/swagger from 11.4.7 to 12.0.1

Release notes

Sourced from @​nestjs/swagger's releases.

Release 12.0.1

12.0.1 (2026-08-28)

Bug fixes

Dependencies

Committers: 1

Release 12.0.0

What's Changed

@nestjs/swagger is now a native ES module, requires Nest 12, and changes how nullable schemas are spelled in the generated document.

ESM migration

The package is published as pure ESM ("type": "module", compiled with NodeNext) behind a proper exports map. The legacy root index.ts / plugin.js / plugin.ts shims are gone, and deep imports into build internals are no longer resolvable — import from the package root (@nestjs/swagger) or from @nestjs/swagger/plugin.

require(esm) — CommonJS still works

You do not need to convert your app to ESM. Thanks to Node's require(esm) support, a CommonJS app can keep doing const { SwaggerModule } = require('@nestjs/swagger'). The CLI plugin entry (@nestjs/swagger/plugin) also keeps a require condition so nest-cli.json setups load it unchanged.

This is why the package now declares "engines": { "node": "^20.19.0 || >=22.12.0" } — those are the Node versions where require(esm) is available without a flag.

Nest 12 peer dependencies

@nestjs/common and @nestjs/core peers are now ^12.0.0. @nestjs/mapped-types moves to 12.0.0 (itself ESM, with its major aligned to the Nest 12 line), so PartialType, PickType, OmitType and IntersectionType come from an ESM build too.

Standard Schema support

Schemas passed to Nest 12's route decorators (for example @Body({ schema: z.object({ ... }) })) can now be reflected into the OpenAPI document. Supply an adapter via the new standardSchemaConverter document option:

import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import type { SwaggerDocumentOptions } from '@nestjs/swagger';
import { createSchema } from 'zod-openapi';
import type { ZodType } from 'zod';
// Standard Schema exposes the producing library under ~standard.vendor,
// which is how you narrow the raw value to a library-specific type.
function isZodSchema(schema: unknown): schema is ZodType {
return (
!!schema &&
typeof schema === 'object' &&
(schema as { '~standard'?: { vendor?: string } })['~standard']?.vendor ===
'zod'
);
</tr></table>

... (truncated)

Commits
  • 4274e7c chore(): release v12.0.1
  • 325d009 Merge pull request #4082 from nestjs/fix/esm-hoist-static-imports
  • 8980a54 fix: esm hoist static imports
  • 31b0bf4 chore(deps): update dependency lint-staged to v17.4.1 (#4078)
  • b71a812 Merge pull request #4077 from nestjs/renovate/swagger-ui-dist-5.x-lockfile
  • ec18a13 chore(deps): update dependency swagger-ui-dist to v5.32.14
  • 0f85b4c Merge pull request #4072 from nestjs/renovate/js-yaml-5.x
  • 7d8b38e Merge pull request #4076 from nestjs/renovate/vite-8.x-lockfile
  • ebc4cb8 Merge pull request #4069 from nestjs/renovate/zod-openapi-6.x
  • 71e1769 Merge pull request #4068 from nestjs/renovate/swagger-ui-dist-5.x
  • Additional commits viewable in compare view

Updates @nestjs/cli from 11.0.24 to 12.0.0

Release notes

Sourced from @​nestjs/cli's releases.

Release 12.0.0

What's Changed

@nestjs/cli is now a native ES module, and the major version is aligned with the Nest 12 release line. Alongside the ESM move, the CLI no longer bundles webpack: every bundler-related package is an optional peer dependency now, so a default install is substantially smaller and you pull in only the builder you actually use. There are also two new commands — nest upgrade and nest deploy.

ESM migration

The package is published as pure ESM ("type": "module", compiled with NodeNext). All internal imports carry explicit .js extensions and the build output is ESM-only.

For the common case this is invisible — nest is a binary, and it keeps running your CJS and ESM projects alike. It matters if you import the CLI's internals programmatically (custom builders, plugin harnesses, scripts that drive @nestjs/cli/lib/...): those imports now resolve to ESM.

webpack is no longer a dependency

webpack, fork-ts-checker-webpack-plugin, tsconfig-paths-webpack-plugin, and webpack-node-externals moved from dependencies to optional peer dependencies, joining @swc/cli and @swc/core.

If you build with tsc (the default) or with SWC, nothing changes. If you use --builder webpack (or "webpack": true in nest-cli.json), install the bundler yourself:

npm i -D webpack webpack-node-externals fork-ts-checker-webpack-plugin tsconfig-paths-webpack-plugin

When a builder's peer dependency is missing, the CLI now reports the actual missing package name instead of surfacing the raw resolution error.

Rspack support

@rspack/core is supported as an optional peer dependency (^1.7.7 || ^2.1.10) and is the builder that nest new scaffolds into nest-cli.json for new projects.

  • --builder rspack on nest build and nest start
  • --rspackPath [path] to point at a custom Rspack config, mirroring --webpackPath
  • Source maps are enabled in the Rspack defaults

New: nest upgrade

A new command (aliased nest update) that runs the upgrade schematic to migrate a Nest v11 project to v12 — dependency bumps, tsconfig and nest-cli.json migrations, and codemods for @nestjs/config, GraphQL, and NATS. See the @nestjs/schematics release notes for what the migration itself does.

nest upgrade

Options: -d, --dry-run, -s, --skip-install, -t, --tag [tag] (use a dist-tag such as next instead of the default version ranges), -c, --collection [name], and --observe / --no-observe to answer the @nestjs/observe prompt up front.

New: nest deploy

Deploy an application to the cloud, powered by Mau. Every option is forwarded verbatim to mau deploy, so the command claims no flags of its own.

nest deploy

Path confinement for build output

... (truncated)

Commits
  • f4bcf48 chore(): release v12.0.0
  • 6a24117 chore: resolve conflicts
  • a05c24c chore: upgrade to v12
  • a3ee7ba Merge pull request #3527 from nestjs/renovate/cimg-node-24.x
  • 4f4f81f Merge pull request #3528 from nestjs/renovate/inquirer-prompts-8.x
  • 1a07a85 fix(deps): update dependency @​inquirer/prompts to v8.7.0
  • ede1547 chore(deps): update node.js to v24.20.0
  • 82d99b3 chore(deps): update dependency @​rspack/core to v2.2.0 (#3525)
  • 71859d0 chore(deps): update dependency oxlint to v1.80.0 (#3524)
  • 3707956 test: fix flaky test in ci attempt nan +1
  • Additional commits viewable in compare view
Install script changes

This version modifies prepare script that runs during installation. Review the package contents before updating.


Updates @nestjs/schematics from 11.1.0 to 12.0.0

Release notes

Sourced from @​nestjs/schematics's releases.

Release 12.0.0

What's Changed

@nestjs/schematics is now a native ES module, and the major version is aligned with the Nest 12 release line. Beyond the package itself going ESM, the bigger change is what it generates: nest new now scaffolds ESM applications by default, and a brand-new nest upgrade schematic migrates existing v11 projects to v12.

ESM migration

The package is published as pure ESM ("type": "module", compiled with NodeNext). All internal imports carry explicit .js extensions and the build output is ESM-only.

The package now requires Node.js >= 22.12.0 and declares a typescript >= 6.0.0 peer dependency. prettier ^3 remains an optional peer, used only when --format is passed.

require(esm) — CommonJS still works

You do not need to convert your tooling to ESM. Thanks to Node's require(esm) support, CommonJS consumers can still require('@nestjs/schematics') on the supported Node versions, so custom collections and CJS scripts that drive the schematics programmatically keep working unchanged.

nest new generates ESM by default

The application schematic gained a type option (esm | cjs) that defaults to esm:

Which module system would you like to use?
> ESM (ES Modules)         [ with vitest ]
  CJS (CommonJS)           [ with jest ]
  • ESM projects get "type": "module", Vitest as the test runner (vitest.config.ts / vitest.config.e2e.ts), and "types": ["vitest/globals", "node"].
  • CJS projects keep Jest, but the Jest configuration has moved out of package.json into a dedicated jest.config.ts.

Pass --type cjs (or answer the prompt) to keep the classic CommonJS layout.

Generated project defaults

  • TypeScript 6, with module/moduleResolution set to nodenext, resolvePackageJsonExports: true, isolatedModules: true, and target: ES2023.
  • oxlint replaces ESLint. New projects ship an oxlint.json and a "lint": "oxlint src/ test/" script instead of the ESLint config and its plugin chain.
  • Rspack replaces webpack as the default builder in nest-cli.json.
  • Nest dependencies are pinned to the v12 line (@nestjs/common, @nestjs/core, @nestjs/platform-express, @nestjs/testing).

ESM-aware generators

Every element generator (module, controller, service, resource, middleware, pipe, …) now detects whether the target project is ESM and appends .js to generated relative imports accordingly — including the imports it injects into an existing @Module() when wiring up a newly generated element. CJS projects are unaffected.

New: nest upgrade

A new schematic (aliased nest update) migrates a Nest v11 project to v12. It refuses to run on anything that isn't v11, then applies the migration in steps and prints a report of every change, every follow-up action, and every warning.

Dependencies — bumps all known @nestjs/* packages to ^12.0.0 (GraphQL packages to ^14.0.0), raises typescript to ^6.0.0 and engines.node to >=20.19.0, and reports any @nestjs/* package whose v12-compatible release it doesn't know about.

tsconfig — flags module: commonjs with legacy module resolution and any moduleResolution that TypeScript 6 dropped, and points out a missing rootDir in tsconfig.build.json (TS6 error TS5011).

@nestjs/config — moves library-specific validationOptions (Joi's allowUnknown, abortEarly, …) under validationOptions.libraryOptions, and raises joi to ^18 for its Standard Schema support.

... (truncated)

Commits

Updates @nestjs/testing from 11.2.3 to 12.0.1

Release notes

Sourced from @​nestjs/testing's releases.

v12.0.0

NestJS v12.0.0

NestJS 12 is centered around ESM-ready packages, first-class Standard Schema support for validation and serialization, a rebuilt CLI, and native observability through the new @nestjs/observe SDK.

Existing CommonJS applications keep working — migrating your own code to ESM is entirely optional.

📖 Full migration guide


Upgrading

Upgrade the CLI first, since the upgrade command ships with it:

npm i -g @nestjs/cli@latest

Then, from the root of your project:

nest upgrade

nest upgrade moves every @nestjs/* package to its v12-compatible major at once and applies the mechanical parts of the migration for you — nest-cli.json webpack options, the GraphQL playgroundgraphiql rename and subscriptions transport swap, the NATS package replacement, @nestjs/config validation options, Jest and Joi bumps — then prints a report of everything it changed and everything you still need to review by hand. Run it with --dry-run first to see that report without touching your files.

It deliberately does not migrate your project to ESM, Vitest, or oxlint. Those are the defaults for newly generated projects; existing projects adopt them on their own schedule.

Node.js: v12 requires Node.js v20.19+ or v22.12+. Both require(esm) and the ESM packages depend on it; the upgrade command refuses to run on older releases (including the 21.x line). The latest active LTS is recommended.


Highlights

ESM packages

All core Nest packages now ship as ESM. Thanks to require(esm) in modern Node.js, most existing CommonJS applications continue to work without a rewrite. Review custom bootstrapping scripts, build tooling, and test runners if they assume CommonJS-only packages.

nest new now asks whether to scaffold a CommonJS or an ESM project.

Standard Schema validation

Route parameter decorators — @Body(), @Query(), @Param(), @RawBody() — accept a new schema option, designed for Standard Schema compatible libraries such as Zod, Valibot, and ArkType:

@Post()
create(@Body({ schema: createUserSchema }) body: CreateUserDto) {
  return this.usersService.create(body);
}
</tr></table> 

... (truncated)

Commits
  • 4c751c5 chore(release): publish v12.0.1 release
  • 3c25112 chore: update peer deps
  • 6494a6c chore(release): publish v12.0.0 release
  • edb0034 Merge branch 'master' into v12.0.0
  • e255755 chore: resolve conflicts, minor fixes
  • 5d1b19b Merge branch 'master' into v12.0.0
  • eb49dd1 test(testing): Add unit tests for @​nestjs/testing package
  • 68dfc23 Merge branch 'master' into v12.0.0
  • c470ddf Merge branch 'master' into v12.0.0
  • 415e4d3 fix(testing): use try load package insted (dummy load)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the nestjs group with 10 updates:

| Package | From | To |
| --- | --- | --- |
| [@nestjs/common](https://github.com/nestjs/nest/tree/HEAD/packages/common) | `11.2.3` | `12.0.1` |
| [@nestjs/core](https://github.com/nestjs/nest/tree/HEAD/packages/core) | `11.2.3` | `12.0.1` |
| [@nestjs/event-emitter](https://github.com/nestjs/event-emitter) | `3.1.0` | `12.0.0` |
| [@nestjs/platform-express](https://github.com/nestjs/nest/tree/HEAD/packages/platform-express) | `11.2.3` | `12.0.1` |
| [@nestjs/schedule](https://github.com/nestjs/schedule) | `6.1.3` | `12.0.1` |
| [@nestjs/serve-static](https://github.com/nestjs/serve-static) | `5.0.5` | `12.0.0` |
| [@nestjs/swagger](https://github.com/nestjs/swagger) | `11.4.7` | `12.0.1` |
| [@nestjs/cli](https://github.com/nestjs/nest-cli) | `11.0.24` | `12.0.0` |
| [@nestjs/schematics](https://github.com/nestjs/schematics) | `11.1.0` | `12.0.0` |
| [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) | `11.2.3` | `12.0.1` |


Updates `@nestjs/common` from 11.2.3 to 12.0.1
- [Release notes](https://github.com/nestjs/nest/releases)
- [Commits](https://github.com/nestjs/nest/commits/v12.0.1/packages/common)

Updates `@nestjs/core` from 11.2.3 to 12.0.1
- [Release notes](https://github.com/nestjs/nest/releases)
- [Commits](https://github.com/nestjs/nest/commits/v12.0.1/packages/core)

Updates `@nestjs/event-emitter` from 3.1.0 to 12.0.0
- [Release notes](https://github.com/nestjs/event-emitter/releases)
- [Commits](nestjs/event-emitter@3.1.0...12.0.0)

Updates `@nestjs/platform-express` from 11.2.3 to 12.0.1
- [Release notes](https://github.com/nestjs/nest/releases)
- [Commits](https://github.com/nestjs/nest/commits/v12.0.1/packages/platform-express)

Updates `@nestjs/schedule` from 6.1.3 to 12.0.1
- [Release notes](https://github.com/nestjs/schedule/releases)
- [Commits](nestjs/schedule@6.1.3...12.0.1)

Updates `@nestjs/serve-static` from 5.0.5 to 12.0.0
- [Release notes](https://github.com/nestjs/serve-static/releases)
- [Commits](nestjs/serve-static@5.0.5...12.0.0)

Updates `@nestjs/swagger` from 11.4.7 to 12.0.1
- [Release notes](https://github.com/nestjs/swagger/releases)
- [Commits](nestjs/swagger@11.4.7...12.0.1)

Updates `@nestjs/cli` from 11.0.24 to 12.0.0
- [Release notes](https://github.com/nestjs/nest-cli/releases)
- [Commits](nestjs/nest-cli@11.0.24...12.0.0)

Updates `@nestjs/schematics` from 11.1.0 to 12.0.0
- [Release notes](https://github.com/nestjs/schematics/releases)
- [Commits](nestjs/schematics@11.1.0...12.0.0)

Updates `@nestjs/testing` from 11.2.3 to 12.0.1
- [Release notes](https://github.com/nestjs/nest/releases)
- [Commits](https://github.com/nestjs/nest/commits/v12.0.1/packages/testing)

---
updated-dependencies:
- dependency-name: "@nestjs/common"
  dependency-version: 12.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/core"
  dependency-version: 12.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/event-emitter"
  dependency-version: 12.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/platform-express"
  dependency-version: 12.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/schedule"
  dependency-version: 12.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/serve-static"
  dependency-version: 12.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/swagger"
  dependency-version: 12.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/cli"
  dependency-version: 12.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/schematics"
  dependency-version: 12.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: nestjs
- dependency-name: "@nestjs/testing"
  dependency-version: 12.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: nestjs
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Sep 12, 2026
@dependabot
dependabot Bot requested a review from ydkmlt84 as a code owner September 12, 2026 09:08
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants