Releases

Versions & changes

Every release of the @nest-extended scope, what it changed, and which docs go with it. All six packages are published together, so one version number covers the whole ecosystem.

Current release

v1.5.0

Service lifecycle events · released 18 Sept 2026

Install
$npm i -g @nest-extended/cli@1.5.0
Package matrix

What v1.5.0 publishes

PackageVersionnpm
@nest-extended/core1.5.0
@nest-extended/decorators1.5.0
@nest-extended/mongoose1.5.0
@nest-extended/prisma1.5.0
@nest-extended/typeorm1.5.0
@nest-extended/cli1.5.0
Packages are released in lockstep from the Nx workspace, so the release version is every package’s version.
Changelog

Release history

v1.5.0

Latest
No breaking changes

18 September 2026

Service lifecycle events

Every service gains a companion events class, so the work that surrounds a CRUD operation — profiles to create, mail to send, audit rows to write — lives next to the service instead of in the controller, and runs for every caller. Alongside it: controller-level @UseBefore / @UseAfter hooks, a codemod to switch existing controllers over, NestJS 12, and a Prisma 7 pin.

Service events

A {name}.events.ts class with beforeCreate / onCreate style hooks, wired at boot by NestExtendedModule.forRoot().

Two method families

_find / _get / _create / _patch / _remove stay event-free for service-to-service calls; find / get / create / patch / remove dispatch events.

One codemod to adopt it

nest-cli m events rewrites existing controllers from the underscore methods to the event-firing ones, with a dry run first.

Added
  • Service events: NestServiceEvents, @ServiceEvents(TheService), ServiceEventsRegistry, NestServiceHooks and EventContext in @nest-extended/core.
  • Ten lifecycle hooks — beforeFind/onFind, beforeGet/onGet, beforeCreate/onCreate, beforePatch/onPatch, beforeRemove/onRemove — plus onError. before* runs inline and its return value replaces the input; on* runs detached, after the response.
  • Event-firing find / get / create / patch / remove on every NestService, alongside the existing underscore methods.
  • NestServiceBase<D, E> — the shared dispatcher every ORM adapter now extends, so the event logic exists once rather than three times.
  • service.emit(name, payload) for custom events, type-checked against the events class, and service.whenSettled() to await detached hooks in tests.
  • Optional global broadcasting through @nestjs/event-emitter: super(model, { broadcast: "company" }) emits company.create, company.patch, company.remove.
  • @UseBefore() / @UseAfter() controller decorators in @nest-extended/decorators, run by the new UseHooksInterceptor that forRoot() registers globally.
  • nest-cli migration events (m events) — a codemod that switches controllers from _find/_get/… to the event-firing methods, with --dry-run, -y and --path.
  • nest-cli g service flags --events / --skip-events and --broadcast / --skip-broadcast; the generator emits {name}.events.ts and registers it in the module providers.
  • events option on NestExtendedModule.forRoot(), and events / broadcast on the NestService constructor options.
  • A published security policy (SECURITY.md) with supported-version and disclosure details.
Changed
  • Generated controllers call the event-firing find / get / create / patch / remove instead of the underscore versions. Same arguments, same responses.
  • Scaffolded apps are emitted as CommonJS, with template relative imports updated to match.
  • NestJS 12 and TypeScript 6 across the workspace; CI now builds on Node 24.
  • Prisma is pinned to v7 — @prisma/client@^7, the driver adapters at ^7, and dev prisma@^7. Prisma 8 ("Prisma Next") drops prisma generate / db push and moves the ORM commands under prisma orm, which the generated code does not target.
  • @nest-extended/core now depends on @nest-extended/decorators, because the interceptor reads the decorators’ metadata keys.
  • ServiceOptions<T> gained optional event-firing members, and NestServiceOptions gained events and broadcast.
Removed
  • The unused webpack-cli dependency.

Requires
NestJS 12.x
TypeScript 6.x
Node.js 20+ (CI on 24)
Prisma 7.x (pinned)
Mongoose 9.x
TypeORM 0.3.x

v1.0.0

Maintenance
No breaking changes

3 July 2026

First stable release

The first production release of the whole scope: a generic CRUD controller and service, one query language across three ORMs, soft delete and auditing, JWT auth scaffolding, and a CLI that generates all of it. Graduated from the 0.0.x beta line, MIT-licensed, with an end-to-end suite that boots a generated app and exercises its HTTP API.

Three ORMs, one API

Mongoose, Prisma and TypeORM adapters sharing FeathersJS-style operators and the same NestService surface.

Scaffolding CLI

nest-cli g app, g service and g auth generate wired modules, DTOs, schemas and specs.

Soft delete & auditing

Non-destructive deletes with createdBy / updatedBy / deletedBy tracked from the request user.

Added
  • NestController<T> and NestService — find, get, create, patch and remove with pagination, for Mongoose, Prisma and TypeORM.
  • A unified query language: $limit, $skip, $sort, $select, $in, $gte, $or, $iLike and friends, behaving identically on all three adapters.
  • The @nest-extended/typeorm adapter, completing PostgreSQL / MySQL / SQLite / MongoDB coverage.
  • Soft delete and audit fields, configurable through NestExtendedModule.forRoot({ softDelete }).
  • @User(), @Public(), @ModifyBody() and setCreatedBy() in @nest-extended/decorators.
  • Database-aware exception filters (e.g. Prisma P2002 → 409) and a NullResponseInterceptor that turns a null GET into a 404.
  • nest-cli g app / g service / g auth, plus m run for import-rewrite codemods, and non-interactive flags for every prompt.
  • An end-to-end suite that generates an app, boots it, and exercises the HTTP API.
  • MIT license distributed to every workspace package.
Changed
  • Controller id parameters are mandatory.
  • Prisma 7 compatibility for the generated boilerplate: prisma-client generator, driver adapters, and the ../generated/prisma/client import path.
  • Decorators moved out of @nest-extended/core into @nest-extended/decorators (nest-cli m run rewrites the imports).

Requires
NestJS 11.x
TypeScript 5.8+
Node.js 20+
Prisma 7.x
Mongoose 9.x
TypeORM 0.3.x
Looking for the pre-1.0 betas?

The 0.0.x beta tags are still on GitHub, but they predate the stable API and have no documentation here. Start from v1.0.0 and follow the migration guide to reach v1.5.0.

Browse all tags