@origins-digital/nestjs-swagger 1.1.0 → 2.0.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;
|
|
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":";;
|
|
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 @@
|
|
|
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": "
|
|
3
|
+
"version": "2.0.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": "
|
|
32
|
+
"@origins-digital/zod-openapi-utils": "2.0.0",
|
|
33
33
|
"webpack": "^5.88.1"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@nestjs/common": ">=
|
|
37
|
-
"@nestjs/swagger": ">=
|
|
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": "^
|
|
45
|
+
"conventional-recommended-bump": "^11.2.0",
|
|
46
46
|
"cz-conventional-changelog": "^3.3.0",
|
|
47
|
-
"eslint": "^
|
|
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": "^
|
|
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",
|