diff --git a/.release-please/config.json b/.release-please/config.json index 8a88eb54..de1989c4 100644 --- a/.release-please/config.json +++ b/.release-please/config.json @@ -2,6 +2,7 @@ "packages": { "packages/js-utils": {}, "packages/browser-utils": {}, + "packages/nest-auth": {}, "packages/nest-utils": {}, "packages/nest-testing": {}, "packages/solid": {} diff --git a/README.md b/README.md index bb0bbc31..1bf7edc9 100644 --- a/README.md +++ b/README.md @@ -22,12 +22,14 @@ ## Description -A monorepo containing various libraries for JavaScript, TypeScript, Nest.js and Solid.js applications. Find out more about each package here: +A monorepo containing various libraries for JavaScript, TypeScript, NestJS and SolidJS applications. Find out more about each package here: - [@spuxx/js-utils](https://github.com/spuxx-dev/jslibs/tree/main/packages/js-utils) - [@spuxx/browser-utils](https://github.com/spuxx-dev/jslibs/tree/main/packages/browser-utils) - [@spuxx/nest-utils](https://github.com/spuxx-dev/jslibs/tree/main/packages/nest-utils) +- [@spuxx/nest-auth](https://github.com/spuxx-dev/jslibs/tree/main/packages/nest-auth) - [@spuxx/nest-testing](https://github.com/spuxx-dev/jslibs/tree/main/packages/nest-testing) +- [@spuxx/solid](https://github.com/spuxx-dev/jslibs/tree/main/packages/solid) ## Documentation diff --git a/apps/nest/package.json b/apps/nest/package.json index d6019a96..85aa84dd 100644 --- a/apps/nest/package.json +++ b/apps/nest/package.json @@ -13,12 +13,13 @@ "test:vitest": "vitest run --coverage" }, "dependencies": { - "@nanogiants/nestjs-swagger-api-exception-decorator": "1.7.0", + "@nanogiants/nestjs-swagger-api-exception-decorator": "1.7.2", "@nestjs/common": "11.0.11", "@nestjs/core": "11.0.11", "@nestjs/platform-express": "11.0.11", "@nestjs/swagger": "11.0.6", "@spuxx/js-utils": "workspace:@spuxx/js-utils@*", + "@spuxx/nest-auth": "workspace:@spuxx/nest-auth@*", "@spuxx/nest-utils": "workspace:@spuxx/nest-utils@*", "class-transformer": "0.5.1", "class-validator": "0.14.1", diff --git a/apps/nest/src/app.controller.test.ts b/apps/nest/src/app.controller.test.ts index f8bdb4d9..f769b8fd 100644 --- a/apps/nest/src/app.controller.test.ts +++ b/apps/nest/src/app.controller.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it } from 'vitest'; import { AppController } from './app.controller'; import { TestContainer, Supertest } from '@spuxx/nest-testing'; -import { AuthModule } from '@spuxx/nest-utils'; +import { AuthModule } from '@spuxx/nest-auth'; import { authConfig, AuthRole } from './auth/auth.config'; describe('AppController', () => { diff --git a/apps/nest/src/app.controller.ts b/apps/nest/src/app.controller.ts index 20fa1730..9cb73d1c 100644 --- a/apps/nest/src/app.controller.ts +++ b/apps/nest/src/app.controller.ts @@ -9,15 +9,10 @@ import { } from '@nestjs/common'; import { EnvModule } from './env/env.module'; import type { Request } from 'express'; -import { - AuthGuard, - getSession, - HttpLoggingInterceptor, - isAuthenticated, - Roles, -} from '@spuxx/nest-utils'; +import { HttpLoggingInterceptor } from '@spuxx/nest-utils'; import { AuthRole } from './auth/auth.config'; import { ApiException } from '@nanogiants/nestjs-swagger-api-exception-decorator'; +import { AuthGuard, getSession, isAuthenticated, Roles } from '@spuxx/nest-auth'; @Controller() @UseInterceptors(HttpLoggingInterceptor) diff --git a/apps/nest/src/app.module.ts b/apps/nest/src/app.module.ts index 57458420..44b90ba0 100644 --- a/apps/nest/src/app.module.ts +++ b/apps/nest/src/app.module.ts @@ -1,9 +1,10 @@ import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; -import { AuthModule, MappingModule } from '@spuxx/nest-utils'; +import { MappingModule } from '@spuxx/nest-utils'; import { EnvModule } from './env/env.module'; import { authConfig } from './auth/auth.config'; import { CatsModule } from './cats/cats.module'; +import { AuthModule } from '@spuxx/nest-auth'; @Module({ imports: [EnvModule.register(), AuthModule.forRoot(authConfig), MappingModule, CatsModule], diff --git a/apps/nest/src/auth/auth.config.ts b/apps/nest/src/auth/auth.config.ts index 84002d9f..c6e499c6 100644 --- a/apps/nest/src/auth/auth.config.ts +++ b/apps/nest/src/auth/auth.config.ts @@ -1,4 +1,4 @@ -import { AuthOptions } from '@spuxx/nest-utils'; +import { AuthOptions } from '@spuxx/nest-auth'; import { EnvModule } from '../env/env.module'; export const AuthRole = { diff --git a/apps/nest/src/main.ts b/apps/nest/src/main.ts index 53b0433d..51854ac9 100644 --- a/apps/nest/src/main.ts +++ b/apps/nest/src/main.ts @@ -1,11 +1,12 @@ import { Logger } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; -import { CustomLogger, AuthModule } from '@spuxx/nest-utils'; +import { CustomLogger } from '@spuxx/nest-utils'; import { auth } from 'express-openid-connect'; import { AppModule } from './app.module'; import { authConfig } from './auth/auth.config'; import { EnvModule } from './env/env.module'; +import { AuthModule } from '@spuxx/nest-auth'; async function bootstrap() { const logger = new CustomLogger({ diff --git a/packages/nest-auth/.npmignore b/packages/nest-auth/.npmignore new file mode 100644 index 00000000..e0b6c08e --- /dev/null +++ b/packages/nest-auth/.npmignore @@ -0,0 +1,5 @@ +/* +!/dist +!package.json +!LICENSE.md +!README.md \ No newline at end of file diff --git a/packages/nest-auth/CHANGELOG.md b/packages/nest-auth/CHANGELOG.md new file mode 100644 index 00000000..825c32f0 --- /dev/null +++ b/packages/nest-auth/CHANGELOG.md @@ -0,0 +1 @@ +# Changelog diff --git a/packages/nest-auth/LICENSE.md b/packages/nest-auth/LICENSE.md new file mode 100644 index 00000000..d5404b2b --- /dev/null +++ b/packages/nest-auth/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) [2024] [spuxx] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/nest-auth/README.md b/packages/nest-auth/README.md new file mode 100644 index 00000000..1898d2a1 --- /dev/null +++ b/packages/nest-auth/README.md @@ -0,0 +1,26 @@ +# @spuxx/nest-auth + +![Main pipeline](https://github.com/spuxx-dev/jslibs/actions/workflows/main.yml/badge.svg) +![Release pipeline](https://github.com/spuxx-dev/jslibs/actions/workflows/release_nest_auth.yml/badge.svg) +![npm version](https://img.shields.io/npm/v/%40spuxx%2Fnest-auth) +![npm bundle size](https://img.shields.io/bundlephobia/min/%40spuxx%2Fnest-auth) +![License](https://img.shields.io/github/license/spuxx-dev/jslibs) + + + +- [Description](#Description) +- [Links](#Links) + + + + +## Description + +`@spuxx/nest-auth` contains a selection of auth-related utilities that I keep reusing in my NestJS applications. + +## Links + +- [Source](https://github.com/spuxx-dev/jslibs) diff --git a/packages/nest-auth/package.json b/packages/nest-auth/package.json new file mode 100644 index 00000000..90873df0 --- /dev/null +++ b/packages/nest-auth/package.json @@ -0,0 +1,71 @@ +{ + "name": "@spuxx/nest-auth", + "version": "0.0.0", + "description": "A package containing auth-related functionalities for my NestJS applications.", + "license": "MIT", + "author": { + "name": "spuxx", + "email": "hi@spuxx.dev", + "url": "https://spuxx.dev" + }, + "keywords": [ + "spuxx" + ], + "repository": { + "type": "git", + "url": "https://github.com/spuxx-dev/jslibs" + }, + "homepage": "https://github.com/spuxx-dev/jslibs/blob/main/packages/nest-auth/README.md", + "bugs": { + "url": "https://github.com/spuxx-dev/jslibs/issues" + }, + "type": "module", + "main": "dist/main.js", + "module": "dist/main.js", + "types": "dist/main.d.ts", + "exports": { + ".": { + "types": "./dist/main.d.ts", + "import": "./dist/main.js", + "default": "./dist/main.js" + } + }, + "files": [ + "dist", + "README.md", + "LICENSE", + "package.json" + ], + "scripts": { + "dev": "vite build --watch", + "build": "vite build", + "types": "tsc --noEmit", + "test": "pnpm run test:vitest", + "test:vitest": "vitest run --coverage" + }, + "peerDependencies": { + "@nanogiants/nestjs-swagger-api-exception-decorator": "^1.7.2", + "@nestjs/common": "^11.0.0", + "@nestjs/core": "^11.0.0", + "@nestjs/swagger": "^11.0.0", + "@spuxx/js-utils": "^1.3.0", + "class-transformer": "^0.5.0", + "class-validator": "^0.14.0", + "express-openid-connect": "^2.17.0", + "reflect-metadata": "^0.2.2", + "rxjs": "^7.8.0" + }, + "devDependencies": { + "@rollup/plugin-node-resolve": "16.0.0", + "@spuxx/js-utils": "1.3.0", + "@spuxx/nest-testing": "workspace:@spuxx/nest-testing@*", + "@types/express": "5.0.0", + "@vitest/coverage-v8": "3.0.5", + "typescript": "5.7.3", + "unplugin-swc": "1.5.1", + "vite": "6.1.0", + "vite-plugin-dts": "4.5.0", + "vite-tsconfig-paths": "5.1.4", + "vitest": "3.0.7" + } +} diff --git a/packages/nest-utils/src/auth/auth.module.test.ts b/packages/nest-auth/src/auth/auth.module.test.ts similarity index 100% rename from packages/nest-utils/src/auth/auth.module.test.ts rename to packages/nest-auth/src/auth/auth.module.test.ts diff --git a/packages/nest-utils/src/auth/auth.module.ts b/packages/nest-auth/src/auth/auth.module.ts similarity index 100% rename from packages/nest-utils/src/auth/auth.module.ts rename to packages/nest-auth/src/auth/auth.module.ts diff --git a/packages/nest-utils/src/auth/config/auth.exceptions.ts b/packages/nest-auth/src/auth/config/auth.exceptions.ts similarity index 100% rename from packages/nest-utils/src/auth/config/auth.exceptions.ts rename to packages/nest-auth/src/auth/config/auth.exceptions.ts diff --git a/packages/nest-utils/src/auth/config/auth.options.ts b/packages/nest-auth/src/auth/config/auth.options.ts similarity index 100% rename from packages/nest-utils/src/auth/config/auth.options.ts rename to packages/nest-auth/src/auth/config/auth.options.ts diff --git a/packages/nest-utils/src/auth/controllers/auth.controller.test.ts b/packages/nest-auth/src/auth/controllers/auth.controller.test.ts similarity index 100% rename from packages/nest-utils/src/auth/controllers/auth.controller.test.ts rename to packages/nest-auth/src/auth/controllers/auth.controller.test.ts diff --git a/packages/nest-utils/src/auth/controllers/auth.controller.ts b/packages/nest-auth/src/auth/controllers/auth.controller.ts similarity index 100% rename from packages/nest-utils/src/auth/controllers/auth.controller.ts rename to packages/nest-auth/src/auth/controllers/auth.controller.ts diff --git a/packages/nest-utils/src/auth/controllers/queries/login-logout.query.ts b/packages/nest-auth/src/auth/controllers/queries/login-logout.query.ts similarity index 100% rename from packages/nest-utils/src/auth/controllers/queries/login-logout.query.ts rename to packages/nest-auth/src/auth/controllers/queries/login-logout.query.ts diff --git a/packages/nest-utils/src/auth/decorators/roles.decorator.test.ts b/packages/nest-auth/src/auth/decorators/roles.decorator.test.ts similarity index 100% rename from packages/nest-utils/src/auth/decorators/roles.decorator.test.ts rename to packages/nest-auth/src/auth/decorators/roles.decorator.test.ts diff --git a/packages/nest-utils/src/auth/decorators/roles.decorator.ts b/packages/nest-auth/src/auth/decorators/roles.decorator.ts similarity index 100% rename from packages/nest-utils/src/auth/decorators/roles.decorator.ts rename to packages/nest-auth/src/auth/decorators/roles.decorator.ts diff --git a/packages/nest-utils/src/auth/guards/auth.guard.test.ts b/packages/nest-auth/src/auth/guards/auth.guard.test.ts similarity index 100% rename from packages/nest-utils/src/auth/guards/auth.guard.test.ts rename to packages/nest-auth/src/auth/guards/auth.guard.test.ts diff --git a/packages/nest-utils/src/auth/guards/auth.guard.ts b/packages/nest-auth/src/auth/guards/auth.guard.ts similarity index 100% rename from packages/nest-utils/src/auth/guards/auth.guard.ts rename to packages/nest-auth/src/auth/guards/auth.guard.ts diff --git a/packages/nest-utils/src/auth/index.ts b/packages/nest-auth/src/auth/index.ts similarity index 100% rename from packages/nest-utils/src/auth/index.ts rename to packages/nest-auth/src/auth/index.ts diff --git a/packages/nest-utils/src/auth/providers/auth.service.ts b/packages/nest-auth/src/auth/providers/auth.service.ts similarity index 100% rename from packages/nest-utils/src/auth/providers/auth.service.ts rename to packages/nest-auth/src/auth/providers/auth.service.ts diff --git a/packages/nest-utils/src/auth/resources/session.resource.ts b/packages/nest-auth/src/auth/resources/session.resource.ts similarity index 100% rename from packages/nest-utils/src/auth/resources/session.resource.ts rename to packages/nest-auth/src/auth/resources/session.resource.ts diff --git a/packages/nest-utils/src/auth/utils/auth.utils.test.ts b/packages/nest-auth/src/auth/utils/auth.utils.test.ts similarity index 100% rename from packages/nest-utils/src/auth/utils/auth.utils.test.ts rename to packages/nest-auth/src/auth/utils/auth.utils.test.ts diff --git a/packages/nest-utils/src/auth/utils/auth.utils.ts b/packages/nest-auth/src/auth/utils/auth.utils.ts similarity index 100% rename from packages/nest-utils/src/auth/utils/auth.utils.ts rename to packages/nest-auth/src/auth/utils/auth.utils.ts diff --git a/packages/nest-utils/src/constants.ts b/packages/nest-auth/src/constants.ts similarity index 100% rename from packages/nest-utils/src/constants.ts rename to packages/nest-auth/src/constants.ts diff --git a/packages/nest-auth/src/main.ts b/packages/nest-auth/src/main.ts new file mode 100644 index 00000000..1c506bfe --- /dev/null +++ b/packages/nest-auth/src/main.ts @@ -0,0 +1,6 @@ +// +++ IMPORTANT ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// Make sure to re-export all components, functions and services from this file. +// Otherwise, they will not be included into the bundle. +// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +export * from './auth'; +export * from './constants'; diff --git a/packages/nest-auth/tests/vitest.setup.ts b/packages/nest-auth/tests/vitest.setup.ts new file mode 100644 index 00000000..e017a580 --- /dev/null +++ b/packages/nest-auth/tests/vitest.setup.ts @@ -0,0 +1,6 @@ +import { vi, afterEach } from 'vitest'; + +afterEach(() => { + vi.unstubAllEnvs(); + vi.unstubAllGlobals(); +}); diff --git a/packages/nest-auth/tsconfig.json b/packages/nest-auth/tsconfig.json new file mode 100644 index 00000000..9fdc1e9b --- /dev/null +++ b/packages/nest-auth/tsconfig.json @@ -0,0 +1,13 @@ +{ + "include": ["./src"], + "compilerOptions": { + "module": "ESNext", + "moduleResolution": "node", + "skipLibCheck": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "declaration": true, + "allowSyntheticDefaultImports": true, + "baseUrl": "." + } +} diff --git a/packages/nest-auth/vite.config.ts b/packages/nest-auth/vite.config.ts new file mode 100644 index 00000000..bdf518c4 --- /dev/null +++ b/packages/nest-auth/vite.config.ts @@ -0,0 +1,69 @@ +/// +import { defineConfig } from 'vite'; +import { resolve } from 'path'; +import { peerDependencies } from './package.json'; +import dts from 'vite-plugin-dts'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +import swc from 'unplugin-swc'; + +export default defineConfig({ + plugins: [ + dts({ + include: ['src/**/*'], + exclude: ['*.{test,spec}.*'], + tsconfigPath: './tsconfig.json', + rollupTypes: true, + }), + tsconfigPaths(), + // esbuild doesn't support a couple of features that nestjs requires, so instead + // we use swc. For example, see: https://github.com/nestjs/nest/issues/9228 + swc.vite({ + module: { type: 'es6' }, + jsc: { + target: 'esnext', + parser: { + syntax: 'typescript', + decorators: true, + }, + transform: { + legacyDecorator: true, + decoratorMetadata: true, + }, + keepClassNames: true, + preserveAllComments: true, + }, + }), + ], + ssr: { + target: 'node', + }, + build: { + ssr: true, + minify: false, + lib: { + entry: { + main: resolve(__dirname, 'src/main.ts'), + }, + name: '@spuxx/nest-testing', + formats: ['es'], + }, + rollupOptions: { + external: [...Object.keys(peerDependencies)], + }, + }, + test: { + environment: 'node', + silent: true, + setupFiles: './tests/vitest.setup.ts', + reporters: ['default', 'junit'], + outputFile: 'reports/junit/junit.xml', + coverage: { + provider: 'v8', + all: true, + include: ['**/*.ts'], + reportsDirectory: 'reports/vitest/coverage', + reporter: ['text', 'json'], + }, + }, +}); diff --git a/packages/nest-utils/package.json b/packages/nest-utils/package.json index ecc5af42..f0217f85 100644 --- a/packages/nest-utils/package.json +++ b/packages/nest-utils/package.json @@ -44,24 +44,16 @@ "test:vitest": "vitest run --coverage" }, "peerDependencies": { - "@nanogiants/nestjs-swagger-api-exception-decorator": "^1.6.0", "@nestjs/common": "^11.0.0", - "@nestjs/config": "^3.0.0", "@nestjs/core": "^11.0.0", "@nestjs/swagger": "^11.0.0", "@spuxx/js-utils": "^1.3.0", "class-transformer": "^0.5.0", "class-validator": "^0.14.0", "dotenv": "^16.0.0", - "express-openid-connect": "^2.17.0", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.0" }, - "peerDependenciesMeta": { - "express-openid-connect": { - "optional": true - } - }, "devDependencies": { "@rollup/plugin-node-resolve": "16.0.0", "@spuxx/js-utils": "1.3.0", diff --git a/packages/nest-utils/src/main.ts b/packages/nest-utils/src/main.ts index 660710ad..34ca6643 100644 --- a/packages/nest-utils/src/main.ts +++ b/packages/nest-utils/src/main.ts @@ -3,9 +3,7 @@ // Otherwise, they will not be included into the bundle. // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ export * from './env'; -export * from './auth'; export * from './logging'; export * from './transformers'; export * from './http'; export * from './mapping'; -export * from './constants'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8e931a96..f0d8988c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,8 +45,8 @@ importers: apps/nest: dependencies: '@nanogiants/nestjs-swagger-api-exception-decorator': - specifier: 1.7.0 - version: 1.7.0(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)) + specifier: 1.7.2 + version: 1.7.2(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)) '@nestjs/common': specifier: 11.0.11 version: 11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -62,6 +62,9 @@ importers: '@spuxx/js-utils': specifier: workspace:@spuxx/js-utils@* version: link:../../packages/js-utils + '@spuxx/nest-auth': + specifier: workspace:@spuxx/nest-auth@* + version: link:../../packages/nest-auth '@spuxx/nest-utils': specifier: workspace:@spuxx/nest-utils@* version: link:../../packages/nest-utils @@ -283,6 +286,70 @@ importers: specifier: 3.0.7 version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(@vitest/browser@3.0.7(@types/node@22.13.8)(typescript@5.7.3)(vitest@3.0.7))(happy-dom@8.9.0(encoding@0.1.13))(jiti@1.21.7)(jsdom@26.0.0)(msw@2.6.0(@types/node@22.13.8)(typescript@5.7.3))(terser@5.39.0)(yaml@2.7.0) + packages/nest-auth: + dependencies: + '@nanogiants/nestjs-swagger-api-exception-decorator': + specifier: ^1.7.2 + version: 1.7.2(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)) + '@nestjs/common': + specifier: ^11.0.0 + version: 11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': + specifier: ^11.0.0 + version: 11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/swagger': + specifier: ^11.0.0 + version: 11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) + class-transformer: + specifier: ^0.5.0 + version: 0.5.1 + class-validator: + specifier: ^0.14.0 + version: 0.14.1 + express-openid-connect: + specifier: ^2.17.0 + version: 2.17.1(express@5.0.1) + reflect-metadata: + specifier: ^0.2.2 + version: 0.2.2 + rxjs: + specifier: ^7.8.0 + version: 7.8.1 + devDependencies: + '@rollup/plugin-node-resolve': + specifier: 16.0.0 + version: 16.0.0(rollup@4.34.9) + '@spuxx/js-utils': + specifier: 1.3.0 + version: 1.3.0(@modyfi/vite-plugin-yaml@1.1.0(rollup@4.34.9)(vite@6.1.0(@types/node@22.13.8)(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0))) + '@spuxx/nest-testing': + specifier: workspace:@spuxx/nest-testing@* + version: link:../nest-testing + '@types/express': + specifier: 5.0.0 + version: 5.0.0 + '@vitest/coverage-v8': + specifier: 3.0.5 + version: 3.0.5(@vitest/browser@3.0.7(@types/node@22.13.8)(typescript@5.7.3)(vitest@3.0.7))(vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(@vitest/browser@3.0.7(@types/node@22.13.8)(typescript@5.7.3)(vitest@3.0.7))(happy-dom@8.9.0(encoding@0.1.13))(jiti@1.21.7)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.8)(typescript@5.7.3))(terser@5.39.0)(yaml@2.7.0)) + typescript: + specifier: 5.7.3 + version: 5.7.3 + unplugin-swc: + specifier: 1.5.1 + version: 1.5.1(@swc/core@1.7.22)(rollup@4.34.9) + vite: + specifier: 6.1.0 + version: 6.1.0(@types/node@22.13.8)(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0) + vite-plugin-dts: + specifier: 4.5.0 + version: 4.5.0(@types/node@22.13.8)(rollup@4.34.9)(typescript@5.7.3)(vite@6.1.0(@types/node@22.13.8)(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)) + vite-tsconfig-paths: + specifier: 5.1.4 + version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.13.8)(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)) + vitest: + specifier: 3.0.7 + version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(@vitest/browser@3.0.7)(happy-dom@8.9.0(encoding@0.1.13))(jiti@1.21.7)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.8)(typescript@5.7.3))(terser@5.39.0)(yaml@2.7.0) + packages/nest-testing: dependencies: '@nestjs/common': @@ -300,7 +367,7 @@ importers: devDependencies: '@spuxx/nest-utils': specifier: 3.1.0 - version: 3.1.0(adevaggzotsrczduqjguzrddze) + version: 3.1.0(mfioj27seoqegxsmqlfw6athbe) '@types/express': specifier: 5.0.0 version: 5.0.0 @@ -328,15 +395,9 @@ importers: packages/nest-utils: dependencies: - '@nanogiants/nestjs-swagger-api-exception-decorator': - specifier: ^1.6.0 - version: 1.6.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)) '@nestjs/common': specifier: ^11.0.0 version: 11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/config': - specifier: ^3.0.0 - version: 3.0.0(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2) '@nestjs/core': specifier: ^11.0.0 version: 11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -349,9 +410,6 @@ importers: class-validator: specifier: ^0.14.0 version: 0.14.1 - express-openid-connect: - specifier: ^2.17.0 - version: 2.17.1(express@5.0.1) reflect-metadata: specifier: ^0.2.2 version: 0.2.2 @@ -1563,17 +1621,11 @@ packages: resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} engines: {node: '>=18'} - '@nanogiants/nestjs-swagger-api-exception-decorator@1.6.11': - resolution: {integrity: sha512-F2Jvj52BDFvKo0I5LFj+kSjwLQecqrs+ibDWokq6Xkod/wrT6gxGia1H/z7ENGk9XwwXfQL9rZt4W/+Vwp0ZhQ==} - peerDependencies: - '@nestjs/common': ^7.6.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - '@nestjs/swagger': ^4.8.1 || ^5.0.0 || ^6.0.0 || ^7.0.0 - - '@nanogiants/nestjs-swagger-api-exception-decorator@1.7.0': - resolution: {integrity: sha512-9rsOtlVCbxSE/IpGGy5CCEHe5vDnlBvVjyQabOZJB1GQ3+9x8q0HXADhvmlho6Fgk1NQmP3FFNMdasvZ7h+yoA==} + '@nanogiants/nestjs-swagger-api-exception-decorator@1.7.2': + resolution: {integrity: sha512-oXHmVf7/xqC/eeYEs9dbkXaSOWBpH+zmeEU7IqgpnVwb9DyZlIKvAsubiJ0weqBoiqm4lg3NecftzZDUxAV/nw==} peerDependencies: - '@nestjs/common': ^7.6.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - '@nestjs/swagger': ^4.8.1 || ^5.0.0 || ^6.0.0 || ^7.0.0 + '@nestjs/common': "^7.6.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 ||\_^11.0.0" + '@nestjs/swagger': "^4.8.1 || ^5.0.0 || ^6.0.0 || ^7.0.0 ||\_^8.0.0 ||\_^11.0.0" '@napi-rs/nice-android-arm-eabi@1.0.1': resolution: {integrity: sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==} @@ -1943,191 +1995,96 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.34.6': - resolution: {integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.34.9': resolution: {integrity: sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.34.6': - resolution: {integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.34.9': resolution: {integrity: sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.6': - resolution: {integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.34.9': resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.6': - resolution: {integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.34.9': resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.34.6': - resolution: {integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.34.9': resolution: {integrity: sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.6': - resolution: {integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.9': resolution: {integrity: sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.34.6': - resolution: {integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.34.9': resolution: {integrity: sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.34.6': - resolution: {integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.34.9': resolution: {integrity: sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.34.6': - resolution: {integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.34.9': resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.34.6': - resolution: {integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.34.9': resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.34.6': - resolution: {integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==} - cpu: [loong64] - os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.34.9': resolution: {integrity: sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': - resolution: {integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.34.9': resolution: {integrity: sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.34.6': - resolution: {integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.34.9': resolution: {integrity: sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.34.6': - resolution: {integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.34.9': resolution: {integrity: sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.34.6': - resolution: {integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.34.9': resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.34.6': - resolution: {integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.34.9': resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.34.6': - resolution: {integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.34.9': resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.6': - resolution: {integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.9': resolution: {integrity: sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.6': - resolution: {integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.9': resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==} cpu: [x64] @@ -2494,9 +2451,6 @@ packages: '@types/node@22.13.8': resolution: {integrity: sha512-G3EfaZS+iOGYWLLRCEAXdWK9my08oHNZ+FHluRiggIYJPOXzhOiDgpVCUHaUvyIC5/fj7C/p637jdzC666AOKQ==} - '@types/node@22.5.2': - resolution: {integrity: sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==} - '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -5612,9 +5566,6 @@ packages: resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} engines: {node: '>=8'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -6144,11 +6095,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.34.6: - resolution: {integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.34.9: resolution: {integrity: sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -6818,9 +6764,6 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tslib@2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -6942,9 +6885,6 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} @@ -7678,7 +7618,7 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 '@angular-devkit/core@19.1.7(chokidar@4.0.3)': @@ -7989,7 +7929,7 @@ snapshots: '@babel/generator@7.25.0': dependencies: '@babel/types': 7.26.9 - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -8090,7 +8030,7 @@ snapshots: '@babel/parser@7.26.8': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.26.9 '@babel/parser@7.26.9': dependencies: @@ -8437,8 +8377,8 @@ snapshots: hast-util-to-html: 9.0.5 hast-util-to-text: 4.0.2 hastscript: 9.0.1 - postcss: 8.5.3 - postcss-nested: 6.2.0(postcss@8.5.3) + postcss: 8.5.1 + postcss-nested: 6.2.0(postcss@8.5.1) unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.1 @@ -8860,7 +8800,7 @@ snapshots: '@rushstack/ts-command-line': 4.22.6(@types/node@22.13.8) lodash: 4.17.21 minimatch: 3.0.8 - resolve: 1.22.8 + resolve: 1.22.10 semver: 7.5.4 source-map: 0.6.1 typescript: 5.4.2 @@ -8878,7 +8818,7 @@ snapshots: '@rushstack/ts-command-line': 4.23.3(@types/node@22.13.8) lodash: 4.17.21 minimatch: 3.0.8 - resolve: 1.22.8 + resolve: 1.22.10 semver: 7.5.4 source-map: 0.6.1 typescript: 5.7.2 @@ -8933,12 +8873,7 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@nanogiants/nestjs-swagger-api-exception-decorator@1.6.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2))': - dependencies: - '@nestjs/common': 11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/swagger': 11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) - - '@nanogiants/nestjs-swagger-api-exception-decorator@1.7.0(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2))': + '@nanogiants/nestjs-swagger-api-exception-decorator@1.7.2(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2))': dependencies: '@nestjs/common': 11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/swagger': 11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2) @@ -9301,117 +9236,60 @@ snapshots: optionalDependencies: rollup: 4.34.9 - '@rollup/rollup-android-arm-eabi@4.34.6': - optional: true - '@rollup/rollup-android-arm-eabi@4.34.9': optional: true - '@rollup/rollup-android-arm64@4.34.6': - optional: true - '@rollup/rollup-android-arm64@4.34.9': optional: true - '@rollup/rollup-darwin-arm64@4.34.6': - optional: true - '@rollup/rollup-darwin-arm64@4.34.9': optional: true - '@rollup/rollup-darwin-x64@4.34.6': - optional: true - '@rollup/rollup-darwin-x64@4.34.9': optional: true - '@rollup/rollup-freebsd-arm64@4.34.6': - optional: true - '@rollup/rollup-freebsd-arm64@4.34.9': optional: true - '@rollup/rollup-freebsd-x64@4.34.6': - optional: true - '@rollup/rollup-freebsd-x64@4.34.9': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.6': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.9': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.6': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.9': optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.6': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.9': optional: true - '@rollup/rollup-linux-arm64-musl@4.34.6': - optional: true - '@rollup/rollup-linux-arm64-musl@4.34.9': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.6': - optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.9': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': - optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.9': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.6': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.9': optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.6': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.9': optional: true - '@rollup/rollup-linux-x64-gnu@4.34.6': - optional: true - '@rollup/rollup-linux-x64-gnu@4.34.9': optional: true - '@rollup/rollup-linux-x64-musl@4.34.6': - optional: true - '@rollup/rollup-linux-x64-musl@4.34.9': optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.6': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.9': optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.6': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.9': optional: true - '@rollup/rollup-win32-x64-msvc@4.34.6': - optional: true - '@rollup/rollup-win32-x64-msvc@4.34.9': optional: true @@ -9553,9 +9431,9 @@ snapshots: optionalDependencies: '@modyfi/vite-plugin-yaml': 1.1.0(rollup@4.34.9)(vite@6.1.0(@types/node@22.13.8)(jiti@1.21.7)(terser@5.39.0)(yaml@2.7.0)) - '@spuxx/nest-utils@3.1.0(adevaggzotsrczduqjguzrddze)': + '@spuxx/nest-utils@3.1.0(mfioj27seoqegxsmqlfw6athbe)': dependencies: - '@nanogiants/nestjs-swagger-api-exception-decorator': 1.7.0(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)) + '@nanogiants/nestjs-swagger-api-exception-decorator': 1.7.2(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/swagger@11.0.6(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)) '@nestjs/common': 11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/config': 3.0.0(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2) '@nestjs/core': 11.0.11(@nestjs/common@11.0.11(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@11.0.11)(reflect-metadata@0.2.2)(rxjs@7.8.1) @@ -9719,18 +9597,18 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/responselike': 1.0.3 '@types/connect@3.4.38': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/cookie@0.6.0': {} @@ -9760,7 +9638,7 @@ snapshots: '@types/express-serve-static-core@5.0.6': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -9786,7 +9664,7 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/mdast@4.0.4': dependencies: @@ -9810,10 +9688,6 @@ snapshots: dependencies: undici-types: 6.20.0 - '@types/node@22.5.2': - dependencies: - undici-types: 6.19.8 - '@types/normalize-package-data@2.4.4': {} '@types/npm-package-arg@6.1.4': {} @@ -9837,21 +9711,21 @@ snapshots: '@types/responselike@1.0.3': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/sax@1.2.7': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.5.2 + '@types/node': 22.13.8 '@types/send': 0.17.4 '@types/statuses@2.0.5': {} @@ -10016,7 +9890,7 @@ snapshots: istanbul-reports: 3.1.7 magic-string: 0.30.17 magicast: 0.3.5 - std-env: 3.8.0 + std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(@vitest/browser@3.0.7(@types/node@22.13.8)(typescript@5.7.3)(vitest@3.0.7))(happy-dom@8.9.0(encoding@0.1.13))(jiti@1.21.7)(jsdom@26.0.0)(msw@2.6.0(@types/node@22.13.8)(typescript@5.7.3))(terser@5.39.0)(yaml@2.7.0) @@ -10036,7 +9910,7 @@ snapshots: istanbul-reports: 3.1.7 magic-string: 0.30.17 magicast: 0.3.5 - std-env: 3.8.0 + std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.8)(@vitest/browser@3.0.7)(happy-dom@8.9.0(encoding@0.1.13))(jiti@1.21.7)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.8)(typescript@5.7.3))(terser@5.39.0)(yaml@2.7.0) @@ -11853,12 +11727,12 @@ snapshots: foreground-child@2.0.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 3.0.7 foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 foreground-child@3.3.1: @@ -12009,11 +11883,11 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.0 + foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 glob@11.0.1: @@ -12588,7 +12462,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.26.9 - '@babel/parser': 7.26.8 + '@babel/parser': 7.26.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.1 @@ -12598,7 +12472,7 @@ snapshots: istanbul-lib-processinfo@2.0.3: dependencies: archy: 1.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 istanbul-lib-coverage: 3.2.2 p-map: 3.0.0 rimraf: 3.0.2 @@ -12852,8 +12726,8 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 source-map-js: 1.2.1 make-dir@3.1.0: @@ -13906,8 +13780,6 @@ snapshots: lodash.flattendeep: 4.4.0 release-zalgo: 1.0.0 - package-json-from-dist@1.0.0: {} - package-json-from-dist@1.0.1: {} pagefind@1.3.0: @@ -14038,7 +13910,7 @@ snapshots: postcss: 8.5.1 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.10 postcss-js@4.0.1(postcss@8.5.1): dependencies: @@ -14058,11 +13930,6 @@ snapshots: postcss: 8.5.1 postcss-selector-parser: 6.1.2 - postcss-nested@6.2.0(postcss@8.5.3): - dependencies: - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 - postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 @@ -14543,31 +14410,6 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.34.6: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.6 - '@rollup/rollup-android-arm64': 4.34.6 - '@rollup/rollup-darwin-arm64': 4.34.6 - '@rollup/rollup-darwin-x64': 4.34.6 - '@rollup/rollup-freebsd-arm64': 4.34.6 - '@rollup/rollup-freebsd-x64': 4.34.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.6 - '@rollup/rollup-linux-arm-musleabihf': 4.34.6 - '@rollup/rollup-linux-arm64-gnu': 4.34.6 - '@rollup/rollup-linux-arm64-musl': 4.34.6 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.6 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6 - '@rollup/rollup-linux-riscv64-gnu': 4.34.6 - '@rollup/rollup-linux-s390x-gnu': 4.34.6 - '@rollup/rollup-linux-x64-gnu': 4.34.6 - '@rollup/rollup-linux-x64-musl': 4.34.6 - '@rollup/rollup-win32-arm64-msvc': 4.34.6 - '@rollup/rollup-win32-ia32-msvc': 4.34.6 - '@rollup/rollup-win32-x64-msvc': 4.34.6 - fsevents: 2.3.3 - rollup@4.34.9: dependencies: '@types/estree': 1.0.6 @@ -14608,7 +14450,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.7.0 + tslib: 2.8.1 safe-buffer@5.1.2: {} @@ -15371,8 +15213,6 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@2.7.0: {} - tslib@2.8.1: {} tunnel-agent@0.6.0: @@ -15470,8 +15310,6 @@ snapshots: uncrypto@0.1.3: {} - undici-types@6.19.8: {} - undici-types@6.20.0: {} unified@11.0.5: @@ -15783,7 +15621,7 @@ snapshots: dependencies: esbuild: 0.24.2 postcss: 8.5.1 - rollup: 4.34.6 + rollup: 4.34.9 optionalDependencies: '@types/node': 22.13.8 fsevents: 2.3.3 @@ -16168,7 +16006,7 @@ snapshots: wkx@0.5.0: dependencies: - '@types/node': 22.5.2 + '@types/node': 22.13.8 word-wrap@1.2.5: {}