@origins-digital/nestjs-swagger 1.2.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/openapi/patch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAYtH,wBAAgB,kBAAkB,CAChC,mBAAmB,iCAA2B,QA2B/C"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/openapi/patch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAYtH,wBAAgB,kBAAkB,CAChC,mBAAmB,iCAA2B,QA2B/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/openapi/patch.ts"],"names":[],"mappings":";;AAcA,gDA4BC;AAvCD,0EAA4E;AAE5E,yDAAyD;AACzD,iCAAiC;AACjC,sCAAsC;AAEtC,SAAS,sBAAsB;IAC7B,OAAO,OAAO,CAAC,qDAAqD,CAAC;SAClE,mBAAmB,CAAC;AACzB,CAAC;AAED,SAAgB,kBAAkB,CAChC,mBAAmB,GAAG,sBAAsB,EAAE;IAE9C,IAAI,mBAAmB,CAAC,SAAS,CAAC,yBAAyB;QAAE,OAAO;IACpE,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,CAAC;IAExE,MAAM,eAAe,GACnB,SAAS,kBAAkB,CAEzB,IAAI,EACJ,OAAO,EACP,eAAe;QAEf,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAA2B,CAAC;YAC5C,IAAI,GAAG,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,IAAA,4BAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAA,gCAAY,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC,CAAC;IAEJ,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,GAAG,eAAe,CAAC;IACnE,mBAAmB,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/openapi/patch.ts"],"names":[],"mappings":";;AAkBA,gDA4BC;AAvCD,0EAA4E;AAE5E,yDAAyD;AACzD,iCAAiC;AACjC,sCAAsC;AAEtC,SAAS,sBAAsB;IAC7B,OAAO,OAAO,CAAC,qDAAqD,CAAC;SAClE,mBAAmB,CAAC;AACzB,CAAC;AAED,SAAgB,kBAAkB,CAChC,mBAAmB,GAAG,sBAAsB,EAAE;IAE9C,IAAI,mBAAmB,CAAC,SAAS,CAAC,yBAAyB;QAAE,OAAO;IACpE,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,CAAC;IAExE,MAAM,eAAe,GACnB,SAAS,kBAAkB,CAEzB,IAAI,EACJ,OAAuD,EACvD,eAAe;QAEf,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAA2B,CAAC;YAC5C,IAAI,GAAG,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,IAAA,4BAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAA,gCAAY,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC,CAAC;IAEJ,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,GAAG,eAAe,CAAC;IACnE,mBAAmB,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACjE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=patch.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.spec.d.ts","sourceRoot":"","sources":["../../src/openapi/patch.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const zod_1 = require("zod");
4
+ const zod_openapi_utils_1 = require("@origins-digital/zod-openapi-utils");
5
+ const patch_1 = require("./patch");
6
+ // Minimal fake SchemaObjectFactory to test patching behavior
7
+ class FakeSchemaObjectFactory {
8
+ constructor() {
9
+ this.exploreModelSchema = jest.fn();
10
+ this.isLazyTypeFunc = (_type) => false;
11
+ }
12
+ }
13
+ describe('patchNestJsSwagger', () => {
14
+ beforeAll(() => {
15
+ // ensure zod .openapi is registered for DTOs that rely on it
16
+ // (safe to call multiple times)
17
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
18
+ const zod = require('zod');
19
+ (0, zod_openapi_utils_1.extendZodWithOpenApi)(zod, true);
20
+ });
21
+ it('should patch SchemaObjectFactory to use zodToOpenAPI for Zod DTOs', () => {
22
+ const SchemaObjectFactoryClass = FakeSchemaObjectFactory;
23
+ (0, patch_1.patchNestJsSwagger)(SchemaObjectFactoryClass);
24
+ const factory = new FakeSchemaObjectFactory();
25
+ factory.exploreModelSchema = SchemaObjectFactoryClass.prototype.exploreModelSchema;
26
+ const schemas = {};
27
+ const UserSchema = zod_1.z
28
+ .object({
29
+ id: zod_1.z.uuid(),
30
+ email: zod_1.z.email(),
31
+ })
32
+ .openapi({ title: 'User' });
33
+ class UserDto extends (0, zod_openapi_utils_1.createZodDto)(UserSchema) {
34
+ }
35
+ const resultName = factory.exploreModelSchema(UserDto, schemas, []);
36
+ expect(resultName).toBe('UserDto');
37
+ expect(schemas.UserDto).toBeDefined();
38
+ const expected = (0, zod_openapi_utils_1.zodToOpenAPI)(UserSchema);
39
+ expect(schemas.UserDto).toEqual(expected);
40
+ });
41
+ it('should delegate to original exploreModelSchema for non-Zod DTOs', () => {
42
+ class NonZodDto {
43
+ }
44
+ const SchemaObjectFactoryClass = FakeSchemaObjectFactory;
45
+ const factory = new FakeSchemaObjectFactory();
46
+ const originalExplore = jest.fn().mockReturnValue('NonZodDto');
47
+ // Simulate Nest's default exploreModelSchema implementation
48
+ SchemaObjectFactoryClass.prototype.exploreModelSchema =
49
+ originalExplore;
50
+ // Patch should wrap the existing implementation
51
+ (0, patch_1.patchNestJsSwagger)(SchemaObjectFactoryClass);
52
+ factory.exploreModelSchema = SchemaObjectFactoryClass.prototype.exploreModelSchema;
53
+ const schemas = {};
54
+ const resultName = factory.exploreModelSchema(NonZodDto, schemas, []);
55
+ expect(resultName).toBe('NonZodDto');
56
+ expect(originalExplore).toHaveBeenCalled();
57
+ });
58
+ });
59
+ //# sourceMappingURL=patch.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.spec.js","sourceRoot":"","sources":["../../src/openapi/patch.spec.ts"],"names":[],"mappings":";;AAAA,6BAAwB;AACxB,0EAI4C;AAC5C,mCAA6C;AAE7C,6DAA6D;AAC7D,MAAM,uBAAuB;IAA7B;QACS,uBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/B,mBAAc,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC;IAGhD,CAAC;CAAA;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,6DAA6D;QAC7D,gCAAgC;QAChC,8DAA8D;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAa,CAAC;QACvC,IAAA,wCAAoB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,wBAAwB,GAAG,uBAA8B,CAAC;QAChE,IAAA,0BAAkB,EAAC,wBAAwB,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAQ,IAAI,uBAAuB,EAAE,CAAC;QACnD,OAAO,CAAC,kBAAkB,GACxB,wBACD,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAE/B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,MAAM,UAAU,GAAG,OAAC;aACjB,MAAM,CAAC;YACN,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;YACZ,KAAK,EAAE,OAAC,CAAC,KAAK,EAAE;SACjB,CAAC;aACD,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9B,MAAM,OAAQ,SAAQ,IAAA,gCAAY,EAAC,UAAU,CAAC;SAAG;QAEjD,MAAM,UAAU,GAAI,OAAe,CAAC,kBAAkB,CACpD,OAAO,EACP,OAAO,EACP,EAAE,CACH,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAA,gCAAY,EAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,SAAS;SAAG;QAElB,MAAM,wBAAwB,GAAG,uBAA8B,CAAC;QAChE,MAAM,OAAO,GAAQ,IAAI,uBAAuB,EAAE,CAAC;QACnD,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC/D,4DAA4D;QAC3D,wBAAgC,CAAC,SAAS,CAAC,kBAAkB;YAC5D,eAAe,CAAC;QAClB,gDAAgD;QAChD,IAAA,0BAAkB,EAAC,wBAAwB,CAAC,CAAC;QAC7C,OAAO,CAAC,kBAAkB,GACxB,wBACD,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,MAAM,UAAU,GAAI,OAAe,CAAC,kBAAkB,CACpD,SAAS,EACT,OAAO,EACP,EAAE,CACH,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@origins-digital/nestjs-swagger",
3
- "version": "1.2.0",
3
+ "version": "2.1.0",
4
4
  "description": "Origins Digital NestJS Swagger package",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.d.ts",
@@ -29,12 +29,12 @@
29
29
  "prepublish": "yarn build"
30
30
  },
31
31
  "dependencies": {
32
- "@origins-digital/zod-openapi-utils": "1.2.0",
32
+ "@origins-digital/zod-openapi-utils": "2.2.0",
33
33
  "webpack": "^5.88.1"
34
34
  },
35
35
  "peerDependencies": {
36
- "@nestjs/common": ">=10.0.0",
37
- "@nestjs/swagger": ">=7.3.0"
36
+ "@nestjs/common": ">=11.0.0",
37
+ "@nestjs/swagger": ">=11.2.6"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@commitlint/cli": "^17.6.6",
@@ -42,15 +42,15 @@
42
42
  "@faker-js/faker": "^8.3.1",
43
43
  "@types/node": "^20.3.1",
44
44
  "commitizen": "^4.3.0",
45
- "conventional-recommended-bump": "^7.0.1",
45
+ "conventional-recommended-bump": "^11.2.0",
46
46
  "cz-conventional-changelog": "^3.3.0",
47
- "eslint": "^8.42.0",
47
+ "eslint": "^9.0.0",
48
48
  "eslint-config-prettier": "^9.0.0",
49
49
  "eslint-plugin-prettier": "^5.0.0",
50
50
  "jest": "^29.5.0",
51
51
  "prettier": "^3.0.0",
52
52
  "rimraf": "^5.0.5",
53
- "supertest": "^6.3.3",
53
+ "supertest": "^7.1.3",
54
54
  "ts-jest": "^29.1.0",
55
55
  "ts-loader": "^9.4.3",
56
56
  "ts-node": "^10.9.1",