From e48e50bcbdb8fdaf9a53ea1e6c9e12373ccd65a8 Mon Sep 17 00:00:00 2001 From: Leonardo Cartaxo Date: Thu, 10 Nov 2022 10:34:38 -0300 Subject: [PATCH 1/5] feat: added first draft of download api schema --- packages/nestjs-swagger-ui/package.json | 4 +- .../src/config/swagger-ui-default.config.ts | 6 ++ .../swagger-ui-settings.interface.ts | 2 + .../src/schema.controller.ts | 49 ++++++++++++ .../src/swagger-ui.module.spec.ts | 9 ++- .../src/swagger-ui.module.ts | 3 + .../src/swagger-ui.service.spec.ts | 8 +- .../src/swagger-ui.service.ts | 32 +++++++- .../nestjs-swagger-ui/src/utils/file-utils.ts | 15 ++++ yarn.lock | 74 +++++++++++++++++-- 10 files changed, 192 insertions(+), 10 deletions(-) create mode 100644 packages/nestjs-swagger-ui/src/schema.controller.ts create mode 100644 packages/nestjs-swagger-ui/src/utils/file-utils.ts diff --git a/packages/nestjs-swagger-ui/package.json b/packages/nestjs-swagger-ui/package.json index ceb92534d..0620e5349 100644 --- a/packages/nestjs-swagger-ui/package.json +++ b/packages/nestjs-swagger-ui/package.json @@ -15,7 +15,9 @@ "@concepta/nestjs-common": "^4.0.0-alpha.22", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", - "@nestjs/swagger": "^6.0.0" + "@nestjs/swagger": "^6.0.0", + "@openapi-contrib/openapi-schema-to-json-schema": "^3.2.0", + "express": "^4.18.2" }, "devDependencies": { "@nestjs/core": "^9.0.0", diff --git a/packages/nestjs-swagger-ui/src/config/swagger-ui-default.config.ts b/packages/nestjs-swagger-ui/src/config/swagger-ui-default.config.ts index 216c40b3f..f6b5aa069 100644 --- a/packages/nestjs-swagger-ui/src/config/swagger-ui-default.config.ts +++ b/packages/nestjs-swagger-ui/src/config/swagger-ui-default.config.ts @@ -23,5 +23,11 @@ export const swaggerUiDefaultConfig = registerAs( name: process.env.SWAGGER_UI_LICENSE_NAME ?? '', url: process.env.SWAGGER_UI_LICENSE_URL ?? '', }, + jsonSchemaFilePath: + process.env.SWAGGER_JSON_SCHEMA_FILE_PATH ?? + `${__dirname}/../jsonSchema-v4.json`, + openApiFilePath: + process.env.SWAGGER_OPEN_API_FILE_PATH ?? + `${__dirname}/../open-api-v3.json`, }), ); diff --git a/packages/nestjs-swagger-ui/src/interfaces/swagger-ui-settings.interface.ts b/packages/nestjs-swagger-ui/src/interfaces/swagger-ui-settings.interface.ts index 2a87ce5b3..1c76b89f1 100644 --- a/packages/nestjs-swagger-ui/src/interfaces/swagger-ui-settings.interface.ts +++ b/packages/nestjs-swagger-ui/src/interfaces/swagger-ui-settings.interface.ts @@ -13,4 +13,6 @@ export interface SwaggerUiSettingsInterface { contact?: { name: string; url: string; email: string }; license?: { name: string; url: string }; basePath?: string; + jsonSchemaFilePath: string; + openApiFilePath: string; } diff --git a/packages/nestjs-swagger-ui/src/schema.controller.ts b/packages/nestjs-swagger-ui/src/schema.controller.ts new file mode 100644 index 000000000..df2e15858 --- /dev/null +++ b/packages/nestjs-swagger-ui/src/schema.controller.ts @@ -0,0 +1,49 @@ +import { Response } from 'express'; +import { Readable } from 'stream'; +import { Controller, Get, Res } from '@nestjs/common'; +import { ApiOperation, ApiTags } from '@nestjs/swagger'; + +import { SwaggerUiService } from './swagger-ui.service'; + +@Controller('schema') +@ApiTags('schema') +export class SchemaController { + constructor(private readonly swaggerUiService: SwaggerUiService) {} + + private static readonly JSON_V4 = 'json-v4'; + private static readonly OPEN_API_V3 = 'open-api-v3'; + + @ApiOperation({ + summary: 'Download json schema v4', + }) + @Get(SchemaController.JSON_V4) + async downloadJsonSchema(@Res() res: Response) { + const file = await this.swaggerUiService.getJsonSchema(); + this.sendFile(res, file, SchemaController.JSON_V4); + } + + @ApiOperation({ + summary: 'Download open api v3', + }) + @Get(SchemaController.OPEN_API_V3) + async downloadOpenApi(@Res() res: Response) { + const file = await this.swaggerUiService.getOpenApi(); + this.sendFile(res, file, SchemaController.OPEN_API_V3); + } + + private sendFile(res: Response, file: Readable, fileName: string) { + res.set(this.getCsvFileHeaders(fileName)); + + file.pipe(res); + } + + private getCsvFileHeaders(filename: string): { + 'Content-Disposition': string; + 'Content-Type': string; + } { + return { + 'Content-Type': 'text/json', + 'Content-Disposition': `attachment; filename="${filename}.csv"`, + }; + } +} diff --git a/packages/nestjs-swagger-ui/src/swagger-ui.module.spec.ts b/packages/nestjs-swagger-ui/src/swagger-ui.module.spec.ts index 1a9c748d4..cb83bc8e2 100644 --- a/packages/nestjs-swagger-ui/src/swagger-ui.module.spec.ts +++ b/packages/nestjs-swagger-ui/src/swagger-ui.module.spec.ts @@ -10,7 +10,14 @@ describe(SwaggerUiModule, () => { let swaggerUiService: SwaggerUiService; let settings: SwaggerUiSettingsInterface; - const moduleOptions = { settings: { path: 'api', basePath: '/v1' } }; + const moduleOptions = { + settings: { + path: 'api', + basePath: '/v1', + jsonSchemaFilePath: `${__dirname}/../jsonSchema-v4.json`, + openApiFilePath: `${__dirname}/../open-api-v3.json`, + }, + }; describe(SwaggerUiModule.register, () => { beforeAll(async () => { diff --git a/packages/nestjs-swagger-ui/src/swagger-ui.module.ts b/packages/nestjs-swagger-ui/src/swagger-ui.module.ts index 1ce665beb..012b46a93 100644 --- a/packages/nestjs-swagger-ui/src/swagger-ui.module.ts +++ b/packages/nestjs-swagger-ui/src/swagger-ui.module.ts @@ -1,14 +1,17 @@ import { DynamicModule, Module } from '@nestjs/common'; + import { SwaggerUiService } from './swagger-ui.service'; import { SwaggerUiAsyncOptions, SwaggerUiModuleClass, SwaggerUiOptions, } from './swagger-ui.module-definition'; +import { SchemaController } from './schema.controller'; @Module({ providers: [SwaggerUiService], exports: [SwaggerUiService], + controllers: [SchemaController], }) export class SwaggerUiModule extends SwaggerUiModuleClass { static register(options: SwaggerUiOptions): DynamicModule { diff --git a/packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts b/packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts index 891a5d933..1e56c0988 100644 --- a/packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts +++ b/packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts @@ -1,5 +1,6 @@ import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; + import { SwaggerUiModule } from './swagger-ui.module'; import { SwaggerUiService } from './swagger-ui.service'; @@ -11,7 +12,12 @@ describe('SwaggerModule (e2e)', () => { module = await Test.createTestingModule({ imports: [ SwaggerUiModule.register({ - settings: { path: '/api', basePath: '/v1' }, + settings: { + path: 'api', + basePath: '/v1', + jsonSchemaFilePath: `${__dirname}/../jsonSchema-v4.json`, + openApiFilePath: `${__dirname}/../open-api-v3.json`, + }, }), ], }).compile(); diff --git a/packages/nestjs-swagger-ui/src/swagger-ui.service.ts b/packages/nestjs-swagger-ui/src/swagger-ui.service.ts index 68729d7b5..e31032e6e 100644 --- a/packages/nestjs-swagger-ui/src/swagger-ui.service.ts +++ b/packages/nestjs-swagger-ui/src/swagger-ui.service.ts @@ -1,10 +1,15 @@ +import fs from 'fs'; +import { Readable } from 'stream'; import { INestApplication, Inject, Injectable } from '@nestjs/common'; -import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; +import { DocumentBuilder, OpenAPIObject, SwaggerModule } from '@nestjs/swagger'; +import toJsonSchema from '@openapi-contrib/openapi-schema-to-json-schema'; + import { SwaggerUiSettingsInterface } from './interfaces/swagger-ui-settings.interface'; import { SWAGGER_UI_MODULE_SETTINGS_TOKEN, SWAGGER_UI_MODULE_DOCUMENT_BUILDER_TOKEN, } from './swagger-ui.constants'; +import { bufferToStream, writeObjectInAFile } from './utils/file-utils'; @Injectable() export class SwaggerUiService { @@ -12,6 +17,7 @@ export class SwaggerUiService { * Constructor. * * @param settings swagger ui settings + * @param documentBuilder */ constructor( @Inject(SWAGGER_UI_MODULE_SETTINGS_TOKEN) @@ -47,5 +53,29 @@ export class SwaggerUiService { document, this.settings?.customOptions, ); + + this.saveApiAndJsonSchemas(document); + } + + async getJsonSchema(): Promise { + return await this.readFile(this.settings.jsonSchemaFilePath); + } + + async getOpenApi(): Promise { + return await this.readFile(this.settings.openApiFilePath); + } + + async saveApiAndJsonSchemas(document: OpenAPIObject) { + const convertedSchema = toJsonSchema(document); + const { schemas } = convertedSchema?.components ?? {}; + + writeObjectInAFile(this.settings.openApiFilePath, document); + writeObjectInAFile(this.settings.jsonSchemaFilePath, schemas); + } + + private async readFile(filePath: string): Promise { + const buffer = await fs.promises.readFile(filePath); + + return bufferToStream(buffer); } } diff --git a/packages/nestjs-swagger-ui/src/utils/file-utils.ts b/packages/nestjs-swagger-ui/src/utils/file-utils.ts new file mode 100644 index 000000000..33d133089 --- /dev/null +++ b/packages/nestjs-swagger-ui/src/utils/file-utils.ts @@ -0,0 +1,15 @@ +import fs from 'fs'; +import { Readable } from 'stream'; + +export const bufferToStream = (buffer: Buffer): Readable => { + return new Readable({ + read() { + this.push(buffer); + this.push(null); + }, + }); +}; + +export const writeObjectInAFile = async (filePath: string, obj: unknown) => { + await fs.promises.writeFile(filePath, JSON.stringify(obj, null, 2)); +}; diff --git a/yarn.lock b/yarn.lock index dffaeaec5..e9f1a4f3f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2771,6 +2771,13 @@ dependencies: "@octokit/openapi-types" "^12.11.0" +"@openapi-contrib/openapi-schema-to-json-schema@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.2.0.tgz#c4c92edd4478b5ecb3d99c29ecb355118259dccc" + integrity sha512-Gj6C0JwCr8arj0sYuslWXUBSP/KnUlEGnPW4qxlXvAl543oaNQgMgIgkQUA6vs5BCCvwTEiL8m/wdWzfl4UvSw== + dependencies: + fast-deep-equal "^3.1.3" + "@selderee/plugin-htmlparser2@^0.6.0": version "0.6.0" resolved "https://registry.yarnpkg.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.6.0.tgz#27e994afd1c2cb647ceb5406a185a5574188069d" @@ -4193,6 +4200,24 @@ body-parser@1.20.0: type-is "~1.6.18" unpipe "1.0.0" +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -6511,6 +6536,43 @@ express@4.18.1: utils-merge "1.0.1" vary "~1.1.2" +express@^4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + ext@^1.1.2: version "1.6.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" @@ -11703,18 +11765,18 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -qs@6.9.3: - version "6.9.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" - integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== - -qs@^6.10.3, qs@^6.8.0, qs@^6.9.4: +qs@6.11.0, qs@^6.10.3, qs@^6.8.0, qs@^6.9.4: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" +qs@6.9.3: + version "6.9.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" + integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== + qs@~6.5.2: version "6.5.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" From 380ef212a7d8f5055b6864540e24d49e8aa2db95 Mon Sep 17 00:00:00 2001 From: Leonardo Cartaxo Date: Thu, 10 Nov 2022 20:18:13 -0300 Subject: [PATCH 2/5] feat: adding testing --- .gitignore | 3 + package.json | 4 +- packages/nestjs-swagger-ui/package.json | 8 ++- .../src/__fixtures__/user.entity.fixture.ts | 42 ++++++++++++++ .../src/schema.controller.e2e-spec.ts | 55 ++++++++++++++++++ .../src/swagger-ui.service.spec.ts | 2 +- yarn.lock | 56 ++++++++++++++++++- 7 files changed, 165 insertions(+), 5 deletions(-) create mode 100644 packages/nestjs-swagger-ui/src/__fixtures__/user.entity.fixture.ts create mode 100644 packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts diff --git a/.gitignore b/.gitignore index c1215e062..878786bfe 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,6 @@ dist .idea .DS_Store website/.yarn + +packages/nestjs-swagger-ui/jsonSchema-v4.json +packages/nestjs-swagger-ui/open-api-v3.json diff --git a/package.json b/package.json index 72104fae1..43dabf524 100644 --- a/package.json +++ b/package.json @@ -55,14 +55,14 @@ "watch": "yarn build && ./node_modules/.bin/tsc --build --watch", "lint": "eslint \"./*.json\" \"packages/*/src/**/*.{ts,js,json}\" --fix", "test": "jest --testTimeout 30000", - "test:one": "jest --testTimeout 30000 packages/nestjs-invitation/src/services/invitation.service.spec.ts", + "test:one": "jest --testTimeout 30000 packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts", "prepare": "husky install && yarn clean && yarn build", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:ci": "yarn test:cov --ci --reporters=default --reporters=jest-junit", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./jest.config-e2e.json --testTimeout 30000", - "test:e2e:one": "jest --config ./jest.config-e2e.json --testTimeout 30000 packages/nestjs-invitation/src/controllers/invitation.controller.e2e-spec.ts", + "test:e2e:one": "jest --config ./jest.config-e2e.json --testTimeout 30000 packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts", "test:all": "yarn test && yarn test:e2e", "doc": "rimraf ./documentation && compodoc -p ./tsconfig.doc.json --disablePrivate --disableProtected", "doc:serve": "yarn doc -s", diff --git a/packages/nestjs-swagger-ui/package.json b/packages/nestjs-swagger-ui/package.json index 0620e5349..b76f63d8e 100644 --- a/packages/nestjs-swagger-ui/package.json +++ b/packages/nestjs-swagger-ui/package.json @@ -13,6 +13,9 @@ ], "dependencies": { "@concepta/nestjs-common": "^4.0.0-alpha.22", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", + "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/typeorm-common": "^4.0.0-alpha.22", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/swagger": "^6.0.0", @@ -20,7 +23,10 @@ "express": "^4.18.2" }, "devDependencies": { + "@concepta/nestjs-user": "^4.0.0-alpha.22", "@nestjs/core": "^9.0.0", - "@nestjs/testing": "^9.0.0" + "@nestjs/testing": "^9.0.0", + "supertest": "^6.3.1", + "typeorm": "^0.3.10" } } diff --git a/packages/nestjs-swagger-ui/src/__fixtures__/user.entity.fixture.ts b/packages/nestjs-swagger-ui/src/__fixtures__/user.entity.fixture.ts new file mode 100644 index 000000000..2f64f25ad --- /dev/null +++ b/packages/nestjs-swagger-ui/src/__fixtures__/user.entity.fixture.ts @@ -0,0 +1,42 @@ +import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; +import { AuditSqlLiteEmbed } from '@concepta/typeorm-common'; +import { AuditInterface } from '@concepta/ts-core'; + +@Entity() +export class UserEntityFixture { + /** + * Unique Id + */ + @PrimaryGeneratedColumn('uuid') + id!: string; + + /** + * Email + */ + @Column() + email!: string; + + /** + * Username + */ + @Column() + username!: string; + + /** + * Password hash + */ + @Column({ type: 'text', nullable: true, default: null }) + passwordHash: string | null = null; + + /** + * Password salt + */ + @Column({ type: 'text', nullable: true, default: null }) + passwordSalt: string | null = null; + + /** + * Audit embed + */ + @Column(() => AuditSqlLiteEmbed) + audit!: AuditInterface; +} diff --git a/packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts b/packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts new file mode 100644 index 000000000..5d552698a --- /dev/null +++ b/packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts @@ -0,0 +1,55 @@ +import supertest from 'supertest'; +import { Test } from '@nestjs/testing'; +import { UserModule } from '@concepta/nestjs-user'; +import { INestApplication } from '@nestjs/common'; +import { TypeOrmExtModule } from '@concepta/nestjs-typeorm-ext'; + +import { SwaggerUiModule } from './swagger-ui.module'; +import { UserEntityFixture } from './__fixtures__/user.entity.fixture'; +import { SchemaController } from './schema.controller'; + +describe(SwaggerUiModule, () => { + let app: INestApplication; + + const moduleOptions = { + settings: { + path: 'api', + basePath: '/v1', + jsonSchemaFilePath: `${__dirname}/../jsonSchema-v4.json`, + openApiFilePath: `${__dirname}/../open-api-v3.json`, + }, + }; + + describe(SchemaController.name, () => { + beforeAll(async () => { + const moduleFixture = await Test.createTestingModule({ + imports: [ + TypeOrmExtModule.forRoot({ + type: 'sqlite', + database: ':memory:', + synchronize: true, + entities: [UserEntityFixture], + }), + UserModule.forRoot({ + entities: { + user: { + entity: UserEntityFixture, + }, + }, + }), + SwaggerUiModule.register(moduleOptions), + ], + }).compile(); + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('download open api schema', async () => { + const response = await supertest(app.getHttpServer()) + .get('/schema/open-api-v3') + .expect(200); + + expect(response.body).toBeTruthy(); + }); + }); +}); diff --git a/packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts b/packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts index 1e56c0988..84ba6a7dd 100644 --- a/packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts +++ b/packages/nestjs-swagger-ui/src/swagger-ui.service.spec.ts @@ -27,7 +27,7 @@ describe('SwaggerModule (e2e)', () => { jest.clearAllMocks(); }); - it('setup', async () => { + it.only('setup', async () => { app = module.createNestApplication(); const swaggerUiService = app.get(SwaggerUiService); expect(swaggerUiService).toBeInstanceOf(SwaggerUiService); diff --git a/yarn.lock b/yarn.lock index e9f1a4f3f..9b854ad01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11765,7 +11765,7 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -qs@6.11.0, qs@^6.10.3, qs@^6.8.0, qs@^6.9.4: +qs@6.11.0, qs@^6.10.3, qs@^6.11.0, qs@^6.8.0, qs@^6.9.4: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -12446,6 +12446,13 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + send@0.18.0, send@latest: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -13203,6 +13210,22 @@ superagent@^8.0.0: readable-stream "^3.6.0" semver "^7.3.7" +superagent@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-8.0.3.tgz#15c8ec5611a1f01386994cfeeda5aa138bcb7b17" + integrity sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.3" + debug "^4.3.4" + fast-safe-stringify "^2.1.1" + form-data "^4.0.0" + formidable "^2.0.1" + methods "^1.1.2" + mime "2.6.0" + qs "^6.11.0" + semver "^7.3.8" + supertest@^6.1.3, supertest@^6.1.6, supertest@^6.2.3: version "6.2.4" resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.2.4.tgz#3dcebe42f7fd6f28dd7ac74c6cba881f7101b2f0" @@ -13211,6 +13234,14 @@ supertest@^6.1.3, supertest@^6.1.6, supertest@^6.2.3: methods "^1.1.2" superagent "^8.0.0" +supertest@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.3.1.tgz#a8ad362fc6f323c88730ac191ce30427dc869088" + integrity sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ== + dependencies: + methods "^1.1.2" + superagent "^8.0.3" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -13755,6 +13786,29 @@ typeorm@^0.3.0: xml2js "^0.4.23" yargs "^17.3.1" +typeorm@^0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.10.tgz#aa2857fd4b078c912ca693b7eee01b6535704458" + integrity sha512-VMKiM84EpJQ+Mz9xDIPqnfplWhyUy1d8ccaKdMY9obifxJOTFnv8GYVyPsGwG8Lk7Nb8MlttHyHWENGAhBA3WA== + dependencies: + "@sqltools/formatter" "^1.2.2" + app-root-path "^3.0.0" + buffer "^6.0.3" + chalk "^4.1.0" + cli-highlight "^2.1.11" + date-fns "^2.28.0" + debug "^4.3.3" + dotenv "^16.0.0" + glob "^7.2.0" + js-yaml "^4.1.0" + mkdirp "^1.0.4" + reflect-metadata "^0.1.13" + sha.js "^2.4.11" + tslib "^2.3.1" + uuid "^8.3.2" + xml2js "^0.4.23" + yargs "^17.3.1" + typescript@4.7.4, typescript@^4.0.3, typescript@^4.3.5, typescript@^4.4.3: version "4.7.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" From 4239c5fc1fb602af2bc3f3d261b935f3efa71d4e Mon Sep 17 00:00:00 2001 From: Leonardo Cartaxo Date: Mon, 21 Nov 2022 10:46:10 -0300 Subject: [PATCH 3/5] feat: adding download open api and json schemas e2e tests --- packages/nestjs-swagger-ui/package.json | 1 + .../src/schema.controller.e2e-spec.ts | 23 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/nestjs-swagger-ui/package.json b/packages/nestjs-swagger-ui/package.json index b76f63d8e..e216b4dbc 100644 --- a/packages/nestjs-swagger-ui/package.json +++ b/packages/nestjs-swagger-ui/package.json @@ -23,6 +23,7 @@ "express": "^4.18.2" }, "devDependencies": { + "@concepta/nestjs-crud": "^4.0.0-alpha.22", "@concepta/nestjs-user": "^4.0.0-alpha.22", "@nestjs/core": "^9.0.0", "@nestjs/testing": "^9.0.0", diff --git a/packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts b/packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts index 5d552698a..d246042e4 100644 --- a/packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts +++ b/packages/nestjs-swagger-ui/src/schema.controller.e2e-spec.ts @@ -3,10 +3,12 @@ import { Test } from '@nestjs/testing'; import { UserModule } from '@concepta/nestjs-user'; import { INestApplication } from '@nestjs/common'; import { TypeOrmExtModule } from '@concepta/nestjs-typeorm-ext'; +import { CrudModule } from '@concepta/nestjs-crud'; import { SwaggerUiModule } from './swagger-ui.module'; import { UserEntityFixture } from './__fixtures__/user.entity.fixture'; import { SchemaController } from './schema.controller'; +import { SwaggerUiService } from './swagger-ui.service'; describe(SwaggerUiModule, () => { let app: INestApplication; @@ -30,6 +32,7 @@ describe(SwaggerUiModule, () => { synchronize: true, entities: [UserEntityFixture], }), + CrudModule.forRoot({}), UserModule.forRoot({ entities: { user: { @@ -42,6 +45,10 @@ describe(SwaggerUiModule, () => { }).compile(); app = moduleFixture.createNestApplication(); await app.init(); + + const swaggerUiService = app.get(SwaggerUiService); + expect(swaggerUiService).toBeInstanceOf(SwaggerUiService); + swaggerUiService.setup(app); }); it('download open api schema', async () => { @@ -49,7 +56,21 @@ describe(SwaggerUiModule, () => { .get('/schema/open-api-v3') .expect(200); - expect(response.body).toBeTruthy(); + const { text } = response; + + expect(text).toContain('"openapi": "3.0.0"'); + expect(text).toContain('"/user/{id}"'); + }); + + it('download json schema', async () => { + const response = await supertest(app.getHttpServer()) + .get('/schema/json-v4') + .expect(200); + + const { text } = response; + + expect(text).toContain('UserDto'); + expect(text).toContain('UserCreateDto'); }); }); }); From ee1082524a15d6b9adda0384b50590ddee55fd25 Mon Sep 17 00:00:00 2001 From: Marshall Sorenson Date: Tue, 27 Dec 2022 23:06:29 +0000 Subject: [PATCH 4/5] refactor(nestjs-crud): remove opinionated requirement that dtos must have an `id` property --- .../__fixtures__/photo/dto/photo.dto.fixture.ts | 6 +----- .../util/apply-api-response.decorator.ts | 6 ++++-- .../src/dto/crud-invalid-response.dto.ts | 11 +++++++++++ .../src/dto/crud-response-paginated.dto.ts | 9 ++++----- .../nestjs-crud/src/dto/crud-response.dto.ts | 16 ---------------- packages/nestjs-crud/src/index.ts | 3 +-- .../interceptors/crud-serialize.interceptor.ts | 8 ++++---- .../src/interfaces/crud-controller.interface.ts | 3 +-- .../crud-response-paginated.interface.ts | 2 +- .../src/interfaces/crud-response.interface.ts | 6 ------ .../crud-result-paginated.interface.ts | 2 +- packages/nestjs-org/src/dto/org.dto.ts | 6 +----- .../nestjs-role/src/dto/role-assignment.dto.ts | 6 +----- packages/nestjs-role/src/dto/role.dto.ts | 6 +----- 14 files changed, 31 insertions(+), 59 deletions(-) create mode 100644 packages/nestjs-crud/src/dto/crud-invalid-response.dto.ts delete mode 100644 packages/nestjs-crud/src/dto/crud-response.dto.ts delete mode 100644 packages/nestjs-crud/src/interfaces/crud-response.interface.ts diff --git a/packages/nestjs-crud/src/__fixtures__/photo/dto/photo.dto.fixture.ts b/packages/nestjs-crud/src/__fixtures__/photo/dto/photo.dto.fixture.ts index 7f65884f2..3a935fa61 100644 --- a/packages/nestjs-crud/src/__fixtures__/photo/dto/photo.dto.fixture.ts +++ b/packages/nestjs-crud/src/__fixtures__/photo/dto/photo.dto.fixture.ts @@ -2,14 +2,10 @@ import { Exclude, Expose } from 'class-transformer'; import { IsBoolean, IsNumber, IsString, IsUUID } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; import { ReferenceId } from '@concepta/ts-core'; -import { CrudResponseDto } from '../../../dto/crud-response.dto'; import { PhotoEntityInterfaceFixture } from '../interfaces/photo-entity.interface.fixture'; @Exclude() -export class PhotoDtoFixture - extends CrudResponseDto - implements PhotoEntityInterfaceFixture -{ +export class PhotoDtoFixture implements PhotoEntityInterfaceFixture { @ApiProperty() @Expose() @IsUUID() diff --git a/packages/nestjs-crud/src/decorators/util/apply-api-response.decorator.ts b/packages/nestjs-crud/src/decorators/util/apply-api-response.decorator.ts index 2ae424bd6..cb3313294 100644 --- a/packages/nestjs-crud/src/decorators/util/apply-api-response.decorator.ts +++ b/packages/nestjs-crud/src/decorators/util/apply-api-response.decorator.ts @@ -9,8 +9,8 @@ import { } from '@nestjs/swagger'; import { CrudActions } from '@nestjsx/crud'; import { DecoratorTargetObject } from '../../crud.types'; +import { CrudInvalidResponseDto } from '../../dto/crud-invalid-response.dto'; import { CrudResponsePaginatedDto } from '../../dto/crud-response-paginated.dto'; -import { CrudResponseDto } from '../../dto/crud-response.dto'; import { CrudReflectionService } from '../../services/crud-reflection.service'; /** @@ -50,7 +50,9 @@ export function applyApiResponse( // determine the dto type const dto = - serializeOptions?.type ?? requestOptions.model.type ?? CrudResponseDto; + serializeOptions?.type ?? + requestOptions.model.type ?? + CrudInvalidResponseDto; // determine pagination dto const paginatedDto = diff --git a/packages/nestjs-crud/src/dto/crud-invalid-response.dto.ts b/packages/nestjs-crud/src/dto/crud-invalid-response.dto.ts new file mode 100644 index 000000000..f10c05c77 --- /dev/null +++ b/packages/nestjs-crud/src/dto/crud-invalid-response.dto.ts @@ -0,0 +1,11 @@ +import { Exclude } from 'class-transformer'; +import { InternalServerErrorException } from '@nestjs/common'; + +@Exclude() +export class CrudInvalidResponseDto { + constructor() { + throw new InternalServerErrorException( + 'Fell back to default response DTO, this is a security issue.', + ); + } +} diff --git a/packages/nestjs-crud/src/dto/crud-response-paginated.dto.ts b/packages/nestjs-crud/src/dto/crud-response-paginated.dto.ts index 2c93354e5..a24cf2472 100644 --- a/packages/nestjs-crud/src/dto/crud-response-paginated.dto.ts +++ b/packages/nestjs-crud/src/dto/crud-response-paginated.dto.ts @@ -1,19 +1,18 @@ import { Exclude, Expose, Type } from 'class-transformer'; import { ApiProperty } from '@nestjs/swagger'; -import { ReferenceIdInterface } from '@concepta/ts-core'; import { CrudResponsePaginatedInterface } from '../interfaces/crud-response-paginated.interface'; -import { CrudResponseDto } from './crud-response.dto'; +import { CrudInvalidResponseDto } from './crud-invalid-response.dto'; @Exclude() -export class CrudResponsePaginatedDto +export class CrudResponsePaginatedDto implements CrudResponsePaginatedInterface { @Expose() @ApiProperty({ - type: CrudResponseDto, + type: CrudInvalidResponseDto, description: 'The list of records for current page', }) - @Type(() => CrudResponseDto) + @Type(() => CrudInvalidResponseDto) data: T[] = []; @Expose() diff --git a/packages/nestjs-crud/src/dto/crud-response.dto.ts b/packages/nestjs-crud/src/dto/crud-response.dto.ts deleted file mode 100644 index c5388a152..000000000 --- a/packages/nestjs-crud/src/dto/crud-response.dto.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Exclude, Expose } from 'class-transformer'; -import { ApiProperty } from '@nestjs/swagger'; -import { ReferenceIdInterface } from '@concepta/ts-core'; -import { CrudResponseInterface } from '../interfaces/crud-response.interface'; - -@Exclude() -export class CrudResponseDto - implements CrudResponseInterface -{ - @Expose() - @ApiProperty({ - type: 'number', - description: 'Unique identifier', - }) - id: T['id'] = ''; -} diff --git a/packages/nestjs-crud/src/index.ts b/packages/nestjs-crud/src/index.ts index 0934ae97c..a60d90564 100644 --- a/packages/nestjs-crud/src/index.ts +++ b/packages/nestjs-crud/src/index.ts @@ -4,8 +4,8 @@ export { CrudModule } from './crud.module'; // interfaces export { CrudControllerInterface } from './interfaces/crud-controller.interface'; export { CrudRequestInterface } from './interfaces/crud-request.interface'; -export { CrudResponseInterface } from './interfaces/crud-response.interface'; export { CrudResponsePaginatedInterface } from './interfaces/crud-response-paginated.interface'; +export { CrudCreateManyInterface } from './interfaces/crud-create-many.interface'; // controller decorators export { CrudController } from './decorators/controller/crud-controller.decorator'; @@ -47,6 +47,5 @@ export { CrudQueryHelper } from './util/crud-query.helper'; export { TypeOrmCrudService } from './services/typeorm-crud.service'; // dto -export { CrudResponseDto } from './dto/crud-response.dto'; export { CrudResponsePaginatedDto } from './dto/crud-response-paginated.dto'; export { CrudCreateManyDto } from './dto/crud-create-many.dto'; diff --git a/packages/nestjs-crud/src/interceptors/crud-serialize.interceptor.ts b/packages/nestjs-crud/src/interceptors/crud-serialize.interceptor.ts index ba979f1ab..33c8d5f22 100644 --- a/packages/nestjs-crud/src/interceptors/crud-serialize.interceptor.ts +++ b/packages/nestjs-crud/src/interceptors/crud-serialize.interceptor.ts @@ -15,8 +15,8 @@ import { } from 'class-transformer'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; -import { LiteralObject, ReferenceIdInterface } from '@concepta/ts-core'; -import { CrudResponseDto } from '../dto/crud-response.dto'; +import { LiteralObject } from '@concepta/ts-core'; +import { CrudInvalidResponseDto } from '../dto/crud-invalid-response.dto'; import { CrudResponsePaginatedDto } from '../dto/crud-response-paginated.dto'; import { CrudSerializationOptionsInterface } from '../interfaces/crud-serialization-options.interface'; import { CrudResultPaginatedInterface } from '../interfaces/crud-result-paginated.interface'; @@ -25,7 +25,7 @@ import { CrudReflectionService } from '../services/crud-reflection.service'; import { CRUD_MODULE_SETTINGS_TOKEN } from '../crud.constants'; type ResponseType = - | (LiteralObject & CrudResultPaginatedInterface) + | (LiteralObject & CrudResultPaginatedInterface) | Array; export class CrudSerializeInterceptor implements NestInterceptor { @@ -116,7 +116,7 @@ export class CrudSerializeInterceptor implements NestInterceptor { // is the type missing? if (!options?.type) { // yes, set it - options.type = modelOptions.type ?? CrudResponseDto; + options.type = modelOptions.type ?? CrudInvalidResponseDto; } // is the many type missing? diff --git a/packages/nestjs-crud/src/interfaces/crud-controller.interface.ts b/packages/nestjs-crud/src/interfaces/crud-controller.interface.ts index 3462fb97e..cb046a9f7 100644 --- a/packages/nestjs-crud/src/interfaces/crud-controller.interface.ts +++ b/packages/nestjs-crud/src/interfaces/crud-controller.interface.ts @@ -1,12 +1,11 @@ import { DeepPartial } from 'typeorm'; import { CreateManyDto } from '@nestjsx/crud'; -import { ReferenceIdInterface } from '@concepta/ts-core'; import { CrudRequestInterface } from '../interfaces/crud-request.interface'; import { CrudResponsePaginatedInterface } from './crud-response-paginated.interface'; import { AdditionalCrudMethodArgs } from '../crud.types'; export interface CrudControllerInterface< - Entity extends ReferenceIdInterface, + Entity, Creatable extends DeepPartial, Updatable extends DeepPartial, Replaceable extends Creatable = Creatable, diff --git a/packages/nestjs-crud/src/interfaces/crud-response-paginated.interface.ts b/packages/nestjs-crud/src/interfaces/crud-response-paginated.interface.ts index 36bff6167..d65205f73 100644 --- a/packages/nestjs-crud/src/interfaces/crud-response-paginated.interface.ts +++ b/packages/nestjs-crud/src/interfaces/crud-response-paginated.interface.ts @@ -1,4 +1,4 @@ import { GetManyDefaultResponse } from '@nestjsx/crud'; -export interface CrudResponsePaginatedInterface +export interface CrudResponsePaginatedInterface extends GetManyDefaultResponse {} diff --git a/packages/nestjs-crud/src/interfaces/crud-response.interface.ts b/packages/nestjs-crud/src/interfaces/crud-response.interface.ts deleted file mode 100644 index a1903222f..000000000 --- a/packages/nestjs-crud/src/interfaces/crud-response.interface.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { ReferenceIdInterface } from '@concepta/ts-core'; -export interface CrudResponseInterface< - T extends ReferenceIdInterface = ReferenceIdInterface, -> { - id: T['id']; -} diff --git a/packages/nestjs-crud/src/interfaces/crud-result-paginated.interface.ts b/packages/nestjs-crud/src/interfaces/crud-result-paginated.interface.ts index 5ff843c0a..7e26e34b7 100644 --- a/packages/nestjs-crud/src/interfaces/crud-result-paginated.interface.ts +++ b/packages/nestjs-crud/src/interfaces/crud-result-paginated.interface.ts @@ -1,6 +1,6 @@ import { CrudResponsePaginatedInterface } from './crud-response-paginated.interface'; -export interface CrudResultPaginatedInterface +export interface CrudResultPaginatedInterface extends CrudResponsePaginatedInterface { __isPaginated?: boolean; } diff --git a/packages/nestjs-org/src/dto/org.dto.ts b/packages/nestjs-org/src/dto/org.dto.ts index 3c7bd3f59..fd91702bf 100644 --- a/packages/nestjs-org/src/dto/org.dto.ts +++ b/packages/nestjs-org/src/dto/org.dto.ts @@ -8,16 +8,12 @@ import { } from '@concepta/ts-core'; import { OrgInterface } from '@concepta/ts-common'; import { AuditDto, ReferenceIdDto } from '@concepta/nestjs-common'; -import { CrudResponseDto } from '@concepta/nestjs-crud'; /** * Org DTO */ @Exclude() -export class OrgDto - extends CrudResponseDto - implements OrgInterface -{ +export class OrgDto implements OrgInterface { /** * Unique id */ diff --git a/packages/nestjs-role/src/dto/role-assignment.dto.ts b/packages/nestjs-role/src/dto/role-assignment.dto.ts index 95fbe2e29..c90512cc4 100644 --- a/packages/nestjs-role/src/dto/role-assignment.dto.ts +++ b/packages/nestjs-role/src/dto/role-assignment.dto.ts @@ -8,16 +8,12 @@ import { } from '@concepta/ts-core'; import { RoleAssignmentInterface } from '@concepta/ts-common'; import { AuditDto, ReferenceIdDto } from '@concepta/nestjs-common'; -import { CrudResponseDto } from '@concepta/nestjs-crud'; /** * Role assignment DTO */ @Exclude() -export class RoleAssignmentDto - extends CrudResponseDto - implements RoleAssignmentInterface -{ +export class RoleAssignmentDto implements RoleAssignmentInterface { /** * Unique id */ diff --git a/packages/nestjs-role/src/dto/role.dto.ts b/packages/nestjs-role/src/dto/role.dto.ts index 5b171a08f..a1be37d94 100644 --- a/packages/nestjs-role/src/dto/role.dto.ts +++ b/packages/nestjs-role/src/dto/role.dto.ts @@ -8,16 +8,12 @@ import { } from '@concepta/ts-core'; import { RoleInterface } from '@concepta/ts-common'; import { AuditDto, ReferenceIdDto } from '@concepta/nestjs-common'; -import { CrudResponseDto } from '@concepta/nestjs-crud'; /** * Role DTO */ @Exclude() -export class RoleDto - extends CrudResponseDto - implements RoleInterface -{ +export class RoleDto implements RoleInterface { /** * Unique id */ From b211cf9361199d2ae92ae250487033cc602ee14d Mon Sep 17 00:00:00 2001 From: Marshall Sorenson Date: Tue, 27 Dec 2022 23:10:40 +0000 Subject: [PATCH 5/5] v4.0.0-alpha.23 --- lerna.json | 2 +- packages/nestjs-access-control/package.json | 4 +-- packages/nestjs-auth-github/package.json | 22 +++++++-------- packages/nestjs-auth-jwt/package.json | 14 +++++----- packages/nestjs-auth-local/package.json | 16 +++++------ packages/nestjs-auth-recovery/package.json | 20 +++++++------- packages/nestjs-auth-refresh/package.json | 14 +++++----- packages/nestjs-authentication/package.json | 10 +++---- packages/nestjs-common/package.json | 6 ++--- packages/nestjs-core/package.json | 2 +- packages/nestjs-crud/package.json | 10 +++---- packages/nestjs-email/package.json | 8 +++--- packages/nestjs-event/package.json | 6 ++--- packages/nestjs-exception/package.json | 4 +-- packages/nestjs-federated/package.json | 14 +++++----- packages/nestjs-invitation/package.json | 28 +++++++++---------- packages/nestjs-jwt/package.json | 6 ++--- packages/nestjs-logger/package.json | 4 +-- packages/nestjs-org/package.json | 16 +++++------ packages/nestjs-otp/package.json | 14 +++++----- packages/nestjs-password/package.json | 6 ++--- packages/nestjs-role/package.json | 16 +++++------ packages/nestjs-samples/package.json | 30 ++++++++++----------- packages/nestjs-swagger-ui/package.json | 10 +++---- packages/nestjs-typeorm-ext/package.json | 6 ++--- packages/nestjs-user/package.json | 22 +++++++-------- packages/ts-common/package.json | 6 ++--- packages/ts-core/package.json | 2 +- packages/typeorm-common/package.json | 8 +++--- 29 files changed, 163 insertions(+), 163 deletions(-) diff --git a/lerna.json b/lerna.json index f9c432a07..bdcf6c275 100644 --- a/lerna.json +++ b/lerna.json @@ -4,5 +4,5 @@ ], "useWorkspaces": true, "npmClient": "yarn", - "version": "4.0.0-alpha.22" + "version": "4.0.0-alpha.23" } diff --git a/packages/nestjs-access-control/package.json b/packages/nestjs-access-control/package.json index a95b5d15f..25a1dd99f 100644 --- a/packages/nestjs-access-control/package.json +++ b/packages/nestjs-access-control/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-access-control", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Access Control", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,7 +12,7 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", diff --git a/packages/nestjs-auth-github/package.json b/packages/nestjs-auth-github/package.json index 6ff969f28..9bc04d363 100644 --- a/packages/nestjs-auth-github/package.json +++ b/packages/nestjs-auth-github/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-auth-github", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS GitHub Authentication", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,12 +12,12 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-authentication": "^4.0.0-alpha.22", - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-core": "^4.0.0-alpha.22", - "@concepta/nestjs-federated": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-authentication": "^4.0.0-alpha.23", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-core": "^4.0.0-alpha.23", + "@concepta/nestjs-federated": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", @@ -26,10 +26,10 @@ "passport-github": "^1.1.0" }, "devDependencies": { - "@concepta/nestjs-crud": "^4.0.0-alpha.22", - "@concepta/nestjs-jwt": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/nestjs-user": "^4.0.0-alpha.22", + "@concepta/nestjs-crud": "^4.0.0-alpha.23", + "@concepta/nestjs-jwt": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/nestjs-user": "^4.0.0-alpha.23", "@nestjs/testing": "^9.0.0", "@types/passport-github": "^1.1.7", "jest-mock-extended": "^2.0.4" diff --git a/packages/nestjs-auth-jwt/package.json b/packages/nestjs-auth-jwt/package.json index 595dca54b..95bec8bb0 100644 --- a/packages/nestjs-auth-jwt/package.json +++ b/packages/nestjs-auth-jwt/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-auth-jwt", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS JWT Authorization", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,12 +12,12 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-authentication": "^4.0.0-alpha.22", - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-jwt": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-authentication": "^4.0.0-alpha.23", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-jwt": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", diff --git a/packages/nestjs-auth-local/package.json b/packages/nestjs-auth-local/package.json index d25c82361..7b403cbd4 100644 --- a/packages/nestjs-auth-local/package.json +++ b/packages/nestjs-auth-local/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-auth-local", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Local Authentication", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,12 +12,12 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-authentication": "^4.0.0-alpha.22", - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-password": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-authentication": "^4.0.0-alpha.23", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-password": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", @@ -25,7 +25,7 @@ "passport-local": "^1.0.0" }, "devDependencies": { - "@concepta/nestjs-jwt": "^4.0.0-alpha.22", + "@concepta/nestjs-jwt": "^4.0.0-alpha.23", "@nestjs/jwt": "^9.0.0", "@nestjs/testing": "^9.0.0", "@types/passport-local": "^1.0.34", diff --git a/packages/nestjs-auth-recovery/package.json b/packages/nestjs-auth-recovery/package.json index 3ecaae2d9..21752d735 100644 --- a/packages/nestjs-auth-recovery/package.json +++ b/packages/nestjs-auth-recovery/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-auth-recovery", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Auth Recovery", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,21 +12,21 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", "@nestjs/swagger": "^6.0.0" }, "devDependencies": { - "@concepta/nestjs-crud": "^4.0.0-alpha.22", - "@concepta/nestjs-email": "^4.0.0-alpha.22", - "@concepta/nestjs-otp": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/nestjs-user": "^4.0.0-alpha.22", + "@concepta/nestjs-crud": "^4.0.0-alpha.23", + "@concepta/nestjs-email": "^4.0.0-alpha.23", + "@concepta/nestjs-otp": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/nestjs-user": "^4.0.0-alpha.23", "@concepta/typeorm-seeding": "^4.0.0-beta.0", "@faker-js/faker": "6.0.0-alpha.6", "@nestjs/testing": "^9.0.0", diff --git a/packages/nestjs-auth-refresh/package.json b/packages/nestjs-auth-refresh/package.json index 80b54fb92..0cda05633 100644 --- a/packages/nestjs-auth-refresh/package.json +++ b/packages/nestjs-auth-refresh/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-auth-refresh", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Refresh Authentication", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,12 +12,12 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-authentication": "^4.0.0-alpha.22", - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-jwt": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-authentication": "^4.0.0-alpha.23", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-jwt": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", diff --git a/packages/nestjs-authentication/package.json b/packages/nestjs-authentication/package.json index 5c9af3de0..7325e1063 100644 --- a/packages/nestjs-authentication/package.json +++ b/packages/nestjs-authentication/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-authentication", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Authentication", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,10 +12,10 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-jwt": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-jwt": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", diff --git a/packages/nestjs-common/package.json b/packages/nestjs-common/package.json index a38852177..6061c9f62 100644 --- a/packages/nestjs-common/package.json +++ b/packages/nestjs-common/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-common", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Common", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,8 +12,8 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-core": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-core": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/swagger": "^6.0.0" }, diff --git a/packages/nestjs-core/package.json b/packages/nestjs-core/package.json index 62a19edb5..fc2fee60b 100644 --- a/packages/nestjs-core/package.json +++ b/packages/nestjs-core/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-core", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Core", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/nestjs-crud/package.json b/packages/nestjs-crud/package.json index 0532dfa64..717a2dc8f 100644 --- a/packages/nestjs-crud/package.json +++ b/packages/nestjs-crud/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-crud", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS CRUD", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,9 +12,9 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", @@ -24,7 +24,7 @@ "@nestjsx/crud-typeorm": "^5.0.0-alpha.3" }, "devDependencies": { - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", "@concepta/typeorm-seeding": "^4.0.0-beta.0", "@faker-js/faker": "^6.0.0-alpha.7", "@nestjs/testing": "^9.0.0", diff --git a/packages/nestjs-email/package.json b/packages/nestjs-email/package.json index ccb3d9f48..796e5870c 100644 --- a/packages/nestjs-email/package.json +++ b/packages/nestjs-email/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-email", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NodeJS Email", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,9 +12,9 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0" diff --git a/packages/nestjs-event/package.json b/packages/nestjs-event/package.json index 412baef56..056c2b979 100644 --- a/packages/nestjs-event/package.json +++ b/packages/nestjs-event/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-event", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Events", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,8 +12,8 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", diff --git a/packages/nestjs-exception/package.json b/packages/nestjs-exception/package.json index be16f6937..7c0d18644 100644 --- a/packages/nestjs-exception/package.json +++ b/packages/nestjs-exception/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-exception", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Exceptions", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,7 +12,7 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/swagger": "^6.0.0" }, diff --git a/packages/nestjs-federated/package.json b/packages/nestjs-federated/package.json index 7c6c1997c..d238bc6bb 100644 --- a/packages/nestjs-federated/package.json +++ b/packages/nestjs-federated/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-federated", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "main": "dist/index.js", "types": "dist/index.d.ts", "license": "BSD-3-Clause", @@ -11,17 +11,17 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/swagger": "^6.0.0" }, "devDependencies": { - "@concepta/nestjs-user": "^4.0.0-alpha.22", + "@concepta/nestjs-user": "^4.0.0-alpha.23", "@nestjs/testing": "^9.0.0", "jest-mock-extended": "^2.0.4" }, diff --git a/packages/nestjs-invitation/package.json b/packages/nestjs-invitation/package.json index dce8a4759..860ccbe05 100644 --- a/packages/nestjs-invitation/package.json +++ b/packages/nestjs-invitation/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-invitation", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Invitation", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,25 +12,25 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-access-control": "^4.0.0-alpha.22", - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-core": "^4.0.0-alpha.22", - "@concepta/nestjs-crud": "^4.0.0-alpha.22", - "@concepta/nestjs-event": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-access-control": "^4.0.0-alpha.23", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-core": "^4.0.0-alpha.23", + "@concepta/nestjs-crud": "^4.0.0-alpha.23", + "@concepta/nestjs-event": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", "@nestjs/swagger": "^6.0.0" }, "devDependencies": { - "@concepta/nestjs-email": "^4.0.0-alpha.22", - "@concepta/nestjs-otp": "^4.0.0-alpha.22", - "@concepta/nestjs-password": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/nestjs-user": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-email": "^4.0.0-alpha.23", + "@concepta/nestjs-otp": "^4.0.0-alpha.23", + "@concepta/nestjs-password": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/nestjs-user": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@concepta/typeorm-seeding": "^4.0.0-alpha.3", "@faker-js/faker": "6.0.0-alpha.6", "@nestjs-modules/mailer": "^1.6.1", diff --git a/packages/nestjs-jwt/package.json b/packages/nestjs-jwt/package.json index 726d0c595..f63e4f981 100644 --- a/packages/nestjs-jwt/package.json +++ b/packages/nestjs-jwt/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-jwt", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS JWT Utility", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,8 +12,8 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/jwt": "^9.0.0", diff --git a/packages/nestjs-logger/package.json b/packages/nestjs-logger/package.json index d71e11ab1..ebc58de9c 100644 --- a/packages/nestjs-logger/package.json +++ b/packages/nestjs-logger/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-logger", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Logger", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,7 +12,7 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", diff --git a/packages/nestjs-org/package.json b/packages/nestjs-org/package.json index 8c9c8bdcb..0e9899d29 100644 --- a/packages/nestjs-org/package.json +++ b/packages/nestjs-org/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-org", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS User", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,13 +12,13 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-access-control": "^4.0.0-alpha.22", - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-crud": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-access-control": "^4.0.0-alpha.23", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-crud": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/swagger": "^6.0.0" diff --git a/packages/nestjs-otp/package.json b/packages/nestjs-otp/package.json index d6df82edf..5689d1398 100644 --- a/packages/nestjs-otp/package.json +++ b/packages/nestjs-otp/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-otp", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS User", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,12 +12,12 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-core": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-core": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "ms": "^2.1.3" diff --git a/packages/nestjs-password/package.json b/packages/nestjs-password/package.json index 0673365d5..86e79f069 100644 --- a/packages/nestjs-password/package.json +++ b/packages/nestjs-password/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-password", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Password", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,8 +12,8 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/core": "^9.0.0", diff --git a/packages/nestjs-role/package.json b/packages/nestjs-role/package.json index f2f365d99..db050a046 100644 --- a/packages/nestjs-role/package.json +++ b/packages/nestjs-role/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-role", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS User", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,13 +12,13 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-access-control": "^4.0.0-alpha.22", - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-crud": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-access-control": "^4.0.0-alpha.23", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-crud": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/swagger": "^6.0.0" diff --git a/packages/nestjs-samples/package.json b/packages/nestjs-samples/package.json index c49301b8e..7c2d0f853 100644 --- a/packages/nestjs-samples/package.json +++ b/packages/nestjs-samples/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-samples", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "main": "dist/index.js", "types": "dist/index.d.ts", "license": "BSD-3-Clause", @@ -12,20 +12,20 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-auth-jwt": "^4.0.0-alpha.22", - "@concepta/nestjs-auth-local": "^4.0.0-alpha.22", - "@concepta/nestjs-auth-refresh": "^4.0.0-alpha.22", - "@concepta/nestjs-authentication": "^4.0.0-alpha.22", - "@concepta/nestjs-crud": "^4.0.0-alpha.22", - "@concepta/nestjs-email": "^4.0.0-alpha.22", - "@concepta/nestjs-event": "^4.0.0-alpha.22", - "@concepta/nestjs-jwt": "^4.0.0-alpha.22", - "@concepta/nestjs-logger": "^4.0.0-alpha.22", - "@concepta/nestjs-password": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/nestjs-user": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-auth-jwt": "^4.0.0-alpha.23", + "@concepta/nestjs-auth-local": "^4.0.0-alpha.23", + "@concepta/nestjs-auth-refresh": "^4.0.0-alpha.23", + "@concepta/nestjs-authentication": "^4.0.0-alpha.23", + "@concepta/nestjs-crud": "^4.0.0-alpha.23", + "@concepta/nestjs-email": "^4.0.0-alpha.23", + "@concepta/nestjs-event": "^4.0.0-alpha.23", + "@concepta/nestjs-jwt": "^4.0.0-alpha.23", + "@concepta/nestjs-logger": "^4.0.0-alpha.23", + "@concepta/nestjs-password": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/nestjs-user": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/core": "^9.0.0", "@nestjs/platform-express": "^9.0.0", diff --git a/packages/nestjs-swagger-ui/package.json b/packages/nestjs-swagger-ui/package.json index e216b4dbc..69c52647c 100644 --- a/packages/nestjs-swagger-ui/package.json +++ b/packages/nestjs-swagger-ui/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-swagger-ui", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS Swagger UI", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,10 +12,10 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/swagger": "^6.0.0", diff --git a/packages/nestjs-typeorm-ext/package.json b/packages/nestjs-typeorm-ext/package.json index 0dfb6fe9a..9cd855a0a 100644 --- a/packages/nestjs-typeorm-ext/package.json +++ b/packages/nestjs-typeorm-ext/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-typeorm-ext", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS TypeORM Extended", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,8 +12,8 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-core": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/nestjs-core": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/typeorm": "^9.0.0" }, diff --git a/packages/nestjs-user/package.json b/packages/nestjs-user/package.json index 3d34f997c..c61f20f00 100644 --- a/packages/nestjs-user/package.json +++ b/packages/nestjs-user/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/nestjs-user", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets NestJS User", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,16 +12,16 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-access-control": "^4.0.0-alpha.22", - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-core": "^4.0.0-alpha.22", - "@concepta/nestjs-crud": "^4.0.0-alpha.22", - "@concepta/nestjs-event": "^4.0.0-alpha.22", - "@concepta/nestjs-password": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", - "@concepta/ts-common": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22", - "@concepta/typeorm-common": "^4.0.0-alpha.22", + "@concepta/nestjs-access-control": "^4.0.0-alpha.23", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-core": "^4.0.0-alpha.23", + "@concepta/nestjs-crud": "^4.0.0-alpha.23", + "@concepta/nestjs-event": "^4.0.0-alpha.23", + "@concepta/nestjs-password": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", + "@concepta/ts-common": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23", + "@concepta/typeorm-common": "^4.0.0-alpha.23", "@nestjs/common": "^9.0.0", "@nestjs/config": "^2.2.0", "@nestjs/swagger": "^6.0.0" diff --git a/packages/ts-common/package.json b/packages/ts-common/package.json index 439188a05..cc8f3fc80 100644 --- a/packages/ts-common/package.json +++ b/packages/ts-common/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/ts-common", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets Typescript Common", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,7 +12,7 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/nestjs-event": "^4.0.0-alpha.22", - "@concepta/ts-core": "^4.0.0-alpha.22" + "@concepta/nestjs-event": "^4.0.0-alpha.23", + "@concepta/ts-core": "^4.0.0-alpha.23" } } diff --git a/packages/ts-core/package.json b/packages/ts-core/package.json index d3e4c3d99..8d2784562 100644 --- a/packages/ts-core/package.json +++ b/packages/ts-core/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/ts-core", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets Typescript Core", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/typeorm-common/package.json b/packages/typeorm-common/package.json index ab3da3c28..857d03b69 100644 --- a/packages/typeorm-common/package.json +++ b/packages/typeorm-common/package.json @@ -1,6 +1,6 @@ { "name": "@concepta/typeorm-common", - "version": "4.0.0-alpha.22", + "version": "4.0.0-alpha.23", "description": "Rockets TypeORM Common", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,13 +12,13 @@ "dist/**/!(*.spec|*.e2e-spec|*.fixture).{js,d.ts}" ], "dependencies": { - "@concepta/ts-core": "^4.0.0-alpha.22", + "@concepta/ts-core": "^4.0.0-alpha.23", "@faker-js/faker": "^6.0.0-alpha.6", "@nestjs/common": "^9.0.0" }, "devDependencies": { - "@concepta/nestjs-common": "^4.0.0-alpha.22", - "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.22", + "@concepta/nestjs-common": "^4.0.0-alpha.23", + "@concepta/nestjs-typeorm-ext": "^4.0.0-alpha.23", "@concepta/typeorm-seeding": "^4.0.0-beta.0", "@faker-js/faker": "6.0.0-alpha.6", "@nestjs/typeorm": "^9.0.0"