Skip to content

Feature/nestjs 11#22

Merged
tnramalho merged 44 commits intobtwld:mainfrom
tnramalho:feature/nestjs-11
Feb 16, 2026
Merged

Feature/nestjs 11#22
tnramalho merged 44 commits intobtwld:mainfrom
tnramalho:feature/nestjs-11

Conversation

@tnramalho
Copy link
Collaborator

Upgrade to NestJS 11

Summary

Upgrade the rockets-sdk monorepo to NestJS 11, including packages, examples, and test configuration.

Main Changes

Dependencies

  • All @nestjs/* packages (common, core, platform-express, swagger, typeorm, jwt, passport, config, testing) bumped to ^11.x in root and in packages/rockets-server and packages/rockets-server-auth.
  • Root and example apps (sample-server, sample-server-auth) updated to Nest 11 with matching resolutions.
  • yarn.lock and relevant package.json files updated across workspaces.

Build & Test Config

  • Jest: jest.config.json and jest.config-e2e.json updated (e.g. transform with ts-jest, testPathIgnorePatterns).
  • E2E: examples/sample-server-auth/jest-e2e.config.json adjusted for the new setup.

Code – rockets-server

  • User metadata: Introduced UserMetadataModelServiceInterface and UserMetadataModelUpdatableInterface; user-metadata model service is injectable and follows the shared SDK contract.
  • Me controller: /me now returns the authenticated user plus user metadata via UserMetadataModelService.
  • User DTOs: UserUpdateDto and UserResponseDto updated for user-metadata integration.

Code – rockets-server-auth

  • Role: RocketsAuthRoleUpdatableInterface and role update DTO now have optional (partial) id to support PATCH-style APIs where the id is in the URL (e.g. PATCH /roles/:id). Apps that need id in the body can still declare id!: string on their extended DTO.
  • User metadata: RocketsAuthUserMetadataModelService and related interfaces aligned with the shared contract; user-update and role fixtures updated.

Examples

  • sample-server: package.json and pet.dto.ts updated for Nest 11 and types.
  • sample-server-auth: package.json, role.dto.ts, and dependencies updated; role update DTO can redeclare id!: string if the app requires id in the body.

Docs

  • CHANGELOG: packages/rockets-server/CHANGELOG.md and packages/rockets-server-auth/CHANGELOG.md updated with the latest changes and correct dates from git history.

Breaking Changes / Impact

  • Node.js: Nest 11 requires Node 20+.
  • Express 5: Route wildcards must be named (e.g. *splat instead of *); nested query params may require app.set('query parser', 'extended').
  • Role update: id in the role update DTO is now optional; apps that require it in the body should declare id!: string on their extended DTO.

How to Verify

  • From repo root: yarn install, yarn build, yarn test, yarn test:e2e.
  • Run and smoke-test sample-server and sample-server-auth (build, start, and main flows).

* feature/swagger-edit-usermetadata: (29 commits)
  chore: udpate usermetadata for swagger
  v1.0.0-alpha.4
  chore: update user reponse dto
  v1.0.0-alpha.3
  chore: add type string to array
  chore: bump version to 1.0.0-alpha.2
  chore: update versions
  chore: update yarn
  chore: update invitation acceptance validations
  chore: linting
  chore: improve security on invitation flow
  chore: update for test:ci
  chore: codacy update
  chore: update versions
  chore: lint
  chore: fix tests
  chore: codacy lint
  chore: linting
  chore: update usermetadata
  chore: linting
  ...

Conflicts:
	examples/sample-server-auth/package.json
	examples/sample-server-auth/src/modules/user/dto/user-create.dto.ts
	examples/sample-server-auth/src/modules/user/dto/user-update.dto.ts
	examples/sample-server-auth/src/modules/user/dto/user.dto.ts
	examples/sample-server-auth/yarn.lock
	examples/sample-server/package.json
	examples/sample-server/yarn.lock
	lerna.json
	packages/rockets-server-auth/package.json
	packages/rockets-server-auth/src/domains/invitation/__tests__/invitation-flow.e2e-spec.ts
	packages/rockets-server-auth/src/domains/invitation/controllers/invitation.controller.ts
	packages/rockets-server-auth/src/domains/invitation/dto/rockets-auth-invitation-revoke.dto.ts
	packages/rockets-server-auth/src/domains/invitation/index.ts
	packages/rockets-server-auth/src/domains/invitation/interfaces/invitation-acceptance-data.interface.ts
	packages/rockets-server-auth/src/domains/role/services/rockets-auth-role.service.ts
	packages/rockets-server-auth/src/domains/user/modules/rockets-auth-signup.module.ts
	packages/rockets-server-auth/src/generate-swagger.ts
	packages/rockets-server-auth/src/shared/interfaces/rockets-auth-options-extras.interface.ts
	packages/rockets-server/package.json
	yarn.lock
@docs-page
Copy link

docs-page bot commented Feb 4, 2026

To view this pull requests documentation preview, visit the following URL:

docs.page/btwld/rockets~22

Documentation is deployed and generated using docs.page.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request upgrades the rockets-sdk monorepo from NestJS 10 to NestJS 11, including comprehensive updates to dependencies, test configuration, and API patterns.

Changes:

  • Upgrades all NestJS packages (@nestjs/*) from v10 to v11, Jest from v27 to v29, and related testing tools
  • Updates Jest configuration to use the new ts-jest v29 syntax with array-based transform configuration
  • Changes role and pet update DTOs from IntersectionType pattern to PartialType pattern, making the id field optional in base DTOs
  • Modifies user metadata service to return null instead of throwing exceptions when metadata is not found
  • Updates path-to-regexp from v3.3.0 to v8.3.0 to support Express 5

Reviewed changes

Copilot reviewed 20 out of 23 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
package.json Root package dependencies upgraded to NestJS 11, Jest 29, and updated Concepta packages to alpha.10
packages/rockets-server/package.json Core server package dependencies upgraded to NestJS 11
packages/rockets-server-auth/package.json Auth package dependencies upgraded with all NestJS and Concepta packages updated
jest.config.json Updated Jest transform syntax for ts-jest v29 compatibility
jest.config-e2e.json E2E test configuration updated for ts-jest v29
packages/rockets-server/src/modules/user/user.dto.ts Added additionalProperties: true to userMetadata fields in Swagger decorators
packages/rockets-server/src/modules/user/me.controller.ts Simplified me endpoint implementation, removed error handling logic
packages/rockets-server/src/modules/user-metadata/services/user-metadata.model.service.ts Changed getUserMetadataByUserId to return null instead of throwing NotFoundException
packages/rockets-server/src/modules/user-metadata/interfaces/user-metadata.interface.ts Updated interface signature to allow null return from getUserMetadataByUserId
packages/rockets-server-auth/src/domains/role/dto/rockets-auth-role-update.dto.ts Changed from IntersectionType to PartialType, making id optional
packages/rockets-server-auth/src/domains/role/interfaces/rockets-auth-role-updatable.interface.ts Updated interface to make all fields including id optional
packages/rockets-server-auth/src/domains/user/services/rockets-auth-user-metadata.model.service.ts Added undefined filtering and JSON serialization for entity updates
examples/sample-server/src/dto/pet.dto.ts Updated PetUpdateDto to use PartialType with explicit required id field
examples/sample-server-auth/src/modules/role/role.dto.ts Updated RoleUpdateDto to use PartialType with explicit required id field
packages/rockets-server/CHANGELOG.md Added changelog entries for versions alpha.1 through alpha.5
packages/rockets-server-auth/CHANGELOG.md Added changelog entries documenting role update DTO changes and other updates

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tnramalho tnramalho requested review from kauandotnet and removed request for kauandotnet February 16, 2026 13:32
@tnramalho
Copy link
Collaborator Author

@copilot review

@tnramalho
Copy link
Collaborator Author

Code review

Found 1 issue:

  1. Outdated comment: The JSDoc on RocketsAuthRoleUpdatableInterface says "Combines required id field with optional updatable fields", but the interface no longer includes an id field -- it only extends Partial<Pick<RocketsAuthRoleCreatableInterface, 'name' | 'description'>>. The comment should be updated to reflect the current contract.

/**
* Rockets Server Role Updatable Interface
*
* Combines required id field with optional updatable fields
*/
export interface RocketsAuthRoleUpdatableInterface
extends Partial<
Pick<RocketsAuthRoleCreatableInterface, 'name' | 'description'>
> {}

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

@tnramalho tnramalho merged commit b9c2872 into btwld:main Feb 16, 2026
3 checks passed
tnramalho added a commit that referenced this pull request Feb 17, 2026
* main:
  Feature/nestjs 11 (#22)

Conflicts:
	package.json
	packages/rockets-server/src/modules/user-metadata/services/user-metadata.model.service.spec.ts
	yarn.lock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants