@decaf-ts/for-nest 0.3.12 → 0.3.14

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.
Files changed (31) hide show
  1. package/dist/for-nest.cjs +1 -1
  2. package/dist/for-nest.cjs.map +1 -1
  3. package/dist/for-nest.js +1 -1
  4. package/dist/for-nest.js.map +1 -1
  5. package/lib/esm/factory/NestBootstraper.d.ts +11 -0
  6. package/lib/esm/factory/NestBootstraper.js +2 -0
  7. package/lib/esm/factory/NestBootstraper.js.map +1 -1
  8. package/lib/esm/factory/openapi/SwaggerBuilder.d.ts +1 -0
  9. package/lib/esm/factory/openapi/SwaggerBuilder.js +22 -2
  10. package/lib/esm/factory/openapi/SwaggerBuilder.js.map +1 -1
  11. package/lib/esm/factory/openapi/SwaggerCustomUI.d.ts +0 -2
  12. package/lib/esm/factory/openapi/SwaggerCustomUI.js +0 -6
  13. package/lib/esm/factory/openapi/SwaggerCustomUI.js.map +1 -1
  14. package/lib/esm/factory/openapi/constants.d.ts +11 -0
  15. package/lib/esm/factory/openapi/constants.js.map +1 -1
  16. package/lib/esm/index.d.ts +1 -1
  17. package/lib/esm/index.js +1 -1
  18. package/lib/factory/NestBootstraper.cjs +2 -0
  19. package/lib/factory/NestBootstraper.d.ts +11 -0
  20. package/lib/factory/NestBootstraper.js.map +1 -1
  21. package/lib/factory/openapi/SwaggerBuilder.cjs +25 -2
  22. package/lib/factory/openapi/SwaggerBuilder.d.ts +1 -0
  23. package/lib/factory/openapi/SwaggerBuilder.js.map +1 -1
  24. package/lib/factory/openapi/SwaggerCustomUI.cjs +0 -6
  25. package/lib/factory/openapi/SwaggerCustomUI.d.ts +0 -2
  26. package/lib/factory/openapi/SwaggerCustomUI.js.map +1 -1
  27. package/lib/factory/openapi/constants.d.ts +11 -0
  28. package/lib/factory/openapi/constants.js.map +1 -1
  29. package/lib/index.cjs +1 -1
  30. package/lib/index.d.ts +1 -1
  31. package/package.json +5 -4
@@ -1,6 +1,7 @@
1
1
  import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger";
2
2
  import { SwaggerCustomUI } from "./SwaggerCustomUI.js";
3
3
  import { SWAGGER_UI_CONSTANTS } from "./constants.js";
4
+ import YAML from "yaml";
4
5
  export class SwaggerBuilder {
5
6
  constructor(app, options) {
6
7
  this.app = app;
@@ -10,8 +11,8 @@ export class SwaggerBuilder {
10
11
  const description = this.options.path
11
12
  ? this.options.description +
12
13
  "" +
13
- `<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | ` +
14
- `<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`
14
+ `<br><br><a href="${this.options.openApiJsonPath}">OpenAPI JSON Spec</a> | ` +
15
+ `<a href="${this.options.openApiYamlPath}">OpenAPI YAML Spec</a>`
15
16
  : this.options.description;
16
17
  const config = new DocumentBuilder()
17
18
  .setTitle(this.options.title)
@@ -23,6 +24,17 @@ export class SwaggerBuilder {
23
24
  extraModels: this.options.extraModels || [],
24
25
  });
25
26
  }
27
+ registerOpenApiRoute(path, contentType, bodyFactory) {
28
+ if (!path)
29
+ return;
30
+ const httpAdapter = this.app.getHttpAdapter();
31
+ path = path.startsWith("/") ? path : `/${path}`;
32
+ httpAdapter.get(path, (_req, res) => {
33
+ httpAdapter.reply(res, bodyFactory(), 200, {
34
+ "Content-Type": contentType,
35
+ });
36
+ });
37
+ }
26
38
  setupSwagger() {
27
39
  const document = this.createDocument();
28
40
  const swaggerUI = new SwaggerCustomUI({
@@ -36,7 +48,15 @@ export class SwaggerBuilder {
36
48
  });
37
49
  SwaggerModule.setup(this.options.path || SWAGGER_UI_CONSTANTS.path, this.app, document, {
38
50
  ...swaggerUI.getCustomOptions(),
51
+ jsonDocumentUrl: this.options.openApiJsonPath
52
+ ? `${this.options.openApiJsonPath}`
53
+ : undefined,
54
+ yamlDocumentUrl: this.options.openApiYamlPath
55
+ ? `${this.options.openApiYamlPath}`
56
+ : undefined,
39
57
  });
58
+ this.registerOpenApiRoute(this.options.openApiJsonPath, "application/json", () => document);
59
+ this.registerOpenApiRoute(this.options.openApiYamlPath, "application/x-yaml", () => YAML.stringify(document));
40
60
  }
41
61
  }
42
62
  //# sourceMappingURL=SwaggerBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SwaggerBuilder.js","sourceRoot":"","sources":["../../../../src/factory/openapi/SwaggerBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,oBAAoB,EAAkB,uBAAoB;AAEnE,MAAM,OAAO,cAAc;IACzB,YACmB,GAAqB,EACrB,OAAuB;QADvB,QAAG,GAAH,GAAG,CAAkB;QACrB,YAAO,GAAP,OAAO,CAAgB;IACvC,CAAC;IAEI,cAAc;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACnC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;gBACxB,EAAE;gBACF,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,sCAAsC;gBAC3E,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,mCAAmC;YAClE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;aACjC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;aAC5B,cAAc,CAAC,WAAW,CAAC;aAC3B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;aAC3C,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC;aAC7D,KAAK,EAAE,CAAC;QAEX,OAAO,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;YACpD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAEM,YAAY;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,oBAAoB,CAAC,IAAI;YACpD,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI;YAC/D,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;YACzC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAC/C,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;SAC1C,CAAC,CAAC;QACH,aAAa,CAAC,KAAK,CACjB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,oBAAoB,CAAC,IAAI,EAC9C,IAAI,CAAC,GAAG,EACR,QAAQ,EACR;YACE,GAAG,SAAS,CAAC,gBAAgB,EAAE;SAChC,CACF,CAAC;IACJ,CAAC;CAOF"}
1
+ {"version":3,"file":"SwaggerBuilder.js","sourceRoot":"","sources":["../../../../src/factory/openapi/SwaggerBuilder.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,6 @@ export declare class SwaggerCustomUI {
16
16
  swaggerOptions: {
17
17
  persistAuthorization: boolean;
18
18
  };
19
- jsonDocumentUrl: string | undefined;
20
- yamlDocumentUrl: string | undefined;
21
19
  customSiteTitle: string | undefined;
22
20
  };
23
21
  b64(file: string, img?: boolean): string;
@@ -38,12 +38,6 @@ export class SwaggerCustomUI {
38
38
  swaggerOptions: {
39
39
  persistAuthorization: this.options.persistAuthorization,
40
40
  },
41
- jsonDocumentUrl: this.options.path
42
- ? `${this.options.path}/spec.json`
43
- : undefined,
44
- yamlDocumentUrl: this.options.path
45
- ? `${this.options.path}/spec.yaml`
46
- : undefined,
47
41
  };
48
42
  }
49
43
  b64(file, img = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"SwaggerCustomUI.js","sourceRoot":"","sources":["../../../../src/factory/openapi/SwaggerCustomUI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAoB;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAY7B,MAAM,OAAO,eAAe;IAE1B,mDAAmD;IACnD,eAAe;IACf,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,KAAK;IAEL,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAClD,GAAG,IAAI,yDAAyD,GAAG,qCAAqC,CAAC;QAC3G,CAAC;QACD,OAAO,CACL,GAAG;YACH;;kDAE4C,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,oBAAoB,CAAC,aAAa;OAC3G,CACF,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACnC,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAC3B,cAAc,EAAE;gBACd,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB;aACxD;YACD,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBAChC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY;gBAClC,CAAC,CAAC,SAAS;YACb,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBAChC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY;gBAClC,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,MAAe,KAAK;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,CAAC;CACF"}
1
+ {"version":3,"file":"SwaggerCustomUI.js","sourceRoot":"","sources":["../../../../src/factory/openapi/SwaggerCustomUI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAoB;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAY7B,MAAM,OAAO,eAAe;IAE1B,mDAAmD;IACnD,eAAe;IACf,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,KAAK;IAEL,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAClD,GAAG,IAAI,yDAAyD,GAAG,qCAAqC,CAAC;QAC3G,CAAC;QACD,OAAO,CACL,GAAG;YACH;;kDAE4C,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,oBAAoB,CAAC,aAAa;OAC3G,CACF,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACnC,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAC3B,cAAc,EAAE;gBACd,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB;aACxD;SACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,MAAe,KAAK;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,CAAC;CACF"}
@@ -12,5 +12,16 @@ export interface SwaggerOptions {
12
12
  auth?: SecuritySchemeObject;
13
13
  topbarBgColor?: string;
14
14
  extraModels?: Constructor[];
15
+ /**
16
+ * Path to expose the OpenAPI specification in JSON format.
17
+ * Example: /api/openapi.json
18
+ */
19
+ openApiJsonPath?: string;
20
+ /**
21
+ * Path to expose the OpenAPI specification in YAML format.
22
+ * Requires 'yaml' package as peer dependency.
23
+ * Example: /api/openapi.yaml
24
+ */
25
+ openApiYamlPath?: string;
15
26
  }
16
27
  export declare const SWAGGER_UI_CONSTANTS: SwaggerOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/factory/openapi/constants.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,EAAE;IACnB,kBAAkB,EAAE,EAAE;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,iBAAiB;QAC9B,EAAE,EAAE,QAAQ;KACb;IACD,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,SAAS;CACzB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/factory/openapi/constants.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,EAAE;IACnB,kBAAkB,EAAE,EAAE;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,iBAAiB;QAC9B,EAAE,EAAE,QAAQ;KACb;IACD,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,SAAS;CACzB,CAAC"}
@@ -39,5 +39,5 @@ export * from "./events-module";
39
39
  * @constant
40
40
  * @type {string}
41
41
  */
42
- export declare const VERSION = "0.3.12";
42
+ export declare const VERSION = "0.3.14";
43
43
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/esm/index.js CHANGED
@@ -40,7 +40,7 @@ export * from "./events-module/index.js";
40
40
  * @constant
41
41
  * @type {string}
42
42
  */
43
- export const VERSION = "0.3.12";
43
+ export const VERSION = "0.3.14";
44
44
  export const PACKAGE_NAME = "@decaf-ts/for-nest";
45
45
  Metadata.allowReregistration(true);
46
46
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
@@ -185,6 +185,8 @@ class NestBootstraper {
185
185
  faviconFilePath: options.faviconPath,
186
186
  topbarIconFilePath: options.topbarIconPath,
187
187
  topbarBgColor: options.topbarBgColor,
188
+ openApiJsonPath: options.openApiJsonPath,
189
+ openApiYamlPath: options.openApiYamlPath,
188
190
  });
189
191
  swagger.setupSwagger();
190
192
  return this;
@@ -28,6 +28,17 @@ export interface SwaggerSetupOptions {
28
28
  topbarBgColor?: string;
29
29
  topbarIconPath?: string;
30
30
  faviconPath?: string;
31
+ /**
32
+ * Path to expose the OpenAPI specification in JSON format.
33
+ * Example: /api/openapi.json
34
+ */
35
+ openApiJsonPath?: string;
36
+ /**
37
+ * Path to expose the OpenAPI specification in YAML format.
38
+ * Requires 'yaml' package as peer dependency.
39
+ * Example: /api/openapi.yaml
40
+ */
41
+ openApiYamlPath?: string;
31
42
  }
32
43
  /**
33
44
  * @description
@@ -1 +1 @@
1
- {"version":3,"file":"NestBootstraper.js","sourceRoot":"","sources":["../../src/factory/NestBootstraper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestBootstraper.js","sourceRoot":"","sources":["../../src/factory/NestBootstraper.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.SwaggerBuilder = void 0;
4
7
  const swagger_1 = require("@nestjs/swagger");
5
8
  const SwaggerCustomUI_1 = require("./SwaggerCustomUI.cjs");
6
9
  const constants_1 = require("./constants.cjs");
10
+ const yaml_1 = __importDefault(require("yaml"));
7
11
  class SwaggerBuilder {
8
12
  constructor(app, options) {
9
13
  this.app = app;
@@ -13,8 +17,8 @@ class SwaggerBuilder {
13
17
  const description = this.options.path
14
18
  ? this.options.description +
15
19
  "" +
16
- `<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | ` +
17
- `<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`
20
+ `<br><br><a href="${this.options.openApiJsonPath}">OpenAPI JSON Spec</a> | ` +
21
+ `<a href="${this.options.openApiYamlPath}">OpenAPI YAML Spec</a>`
18
22
  : this.options.description;
19
23
  const config = new swagger_1.DocumentBuilder()
20
24
  .setTitle(this.options.title)
@@ -26,6 +30,17 @@ class SwaggerBuilder {
26
30
  extraModels: this.options.extraModels || [],
27
31
  });
28
32
  }
33
+ registerOpenApiRoute(path, contentType, bodyFactory) {
34
+ if (!path)
35
+ return;
36
+ const httpAdapter = this.app.getHttpAdapter();
37
+ path = path.startsWith("/") ? path : `/${path}`;
38
+ httpAdapter.get(path, (_req, res) => {
39
+ httpAdapter.reply(res, bodyFactory(), 200, {
40
+ "Content-Type": contentType,
41
+ });
42
+ });
43
+ }
29
44
  setupSwagger() {
30
45
  const document = this.createDocument();
31
46
  const swaggerUI = new SwaggerCustomUI_1.SwaggerCustomUI({
@@ -39,7 +54,15 @@ class SwaggerBuilder {
39
54
  });
40
55
  swagger_1.SwaggerModule.setup(this.options.path || constants_1.SWAGGER_UI_CONSTANTS.path, this.app, document, {
41
56
  ...swaggerUI.getCustomOptions(),
57
+ jsonDocumentUrl: this.options.openApiJsonPath
58
+ ? `${this.options.openApiJsonPath}`
59
+ : undefined,
60
+ yamlDocumentUrl: this.options.openApiYamlPath
61
+ ? `${this.options.openApiYamlPath}`
62
+ : undefined,
42
63
  });
64
+ this.registerOpenApiRoute(this.options.openApiJsonPath, "application/json", () => document);
65
+ this.registerOpenApiRoute(this.options.openApiYamlPath, "application/x-yaml", () => yaml_1.default.stringify(document));
43
66
  }
44
67
  }
45
68
  exports.SwaggerBuilder = SwaggerBuilder;
@@ -5,5 +5,6 @@ export declare class SwaggerBuilder {
5
5
  private readonly options;
6
6
  constructor(app: INestApplication, options: SwaggerOptions);
7
7
  private createDocument;
8
+ private registerOpenApiRoute;
8
9
  setupSwagger(): void;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SwaggerBuilder.js","sourceRoot":"","sources":["../../../src/factory/openapi/SwaggerBuilder.ts"],"names":[],"mappings":";;;AACA,6CAAiE;AACjE,2DAAoD;AACpD,+CAAmE;AAEnE,MAAa,cAAc;IACzB,YACmB,GAAqB,EACrB,OAAuB;QADvB,QAAG,GAAH,GAAG,CAAkB;QACrB,YAAO,GAAP,OAAO,CAAgB;IACvC,CAAC;IAEI,cAAc;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACnC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;gBACxB,EAAE;gBACF,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,sCAAsC;gBAC3E,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,mCAAmC;YAClE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,yBAAe,EAAE;aACjC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;aAC5B,cAAc,CAAC,WAAW,CAAC;aAC3B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;aAC3C,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,gCAAoB,CAAC,IAAI,CAAC;aAC7D,KAAK,EAAE,CAAC;QAEX,OAAO,uBAAa,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;YACpD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAEM,YAAY;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,iCAAe,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,gCAAoB,CAAC,IAAI;YACpD,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI;YAC/D,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;YACzC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAC/C,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;SAC1C,CAAC,CAAC;QACH,uBAAa,CAAC,KAAK,CACjB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,gCAAoB,CAAC,IAAI,EAC9C,IAAI,CAAC,GAAG,EACR,QAAQ,EACR;YACE,GAAG,SAAS,CAAC,gBAAgB,EAAE;SAChC,CACF,CAAC;IACJ,CAAC;CAOF;AApDD,wCAoDC"}
1
+ {"version":3,"file":"SwaggerBuilder.js","sourceRoot":"","sources":["../../../src/factory/openapi/SwaggerBuilder.ts"],"names":[],"mappings":"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"}
@@ -74,12 +74,6 @@ class SwaggerCustomUI {
74
74
  swaggerOptions: {
75
75
  persistAuthorization: this.options.persistAuthorization,
76
76
  },
77
- jsonDocumentUrl: this.options.path
78
- ? `${this.options.path}/spec.json`
79
- : undefined,
80
- yamlDocumentUrl: this.options.path
81
- ? `${this.options.path}/spec.yaml`
82
- : undefined,
83
77
  };
84
78
  }
85
79
  b64(file, img = false) {
@@ -16,8 +16,6 @@ export declare class SwaggerCustomUI {
16
16
  swaggerOptions: {
17
17
  persistAuthorization: boolean;
18
18
  };
19
- jsonDocumentUrl: string | undefined;
20
- yamlDocumentUrl: string | undefined;
21
19
  customSiteTitle: string | undefined;
22
20
  };
23
21
  b64(file: string, img?: boolean): string;
@@ -1 +1 @@
1
- {"version":3,"file":"SwaggerCustomUI.js","sourceRoot":"","sources":["../../../src/factory/openapi/SwaggerCustomUI.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmD;AACnD,2BAAkC;AAClC,2CAA6B;AAY7B,MAAa,eAAe;IAE1B,mDAAmD;IACnD,eAAe;IACf,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,KAAK;IAEL,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAClD,GAAG,IAAI,yDAAyD,GAAG,qCAAqC,CAAC;QAC3G,CAAC;QACD,OAAO,CACL,GAAG;YACH;;kDAE4C,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,gCAAoB,CAAC,aAAa;OAC3G,CACF,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACnC,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAC3B,cAAc,EAAE;gBACd,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB;aACxD;YACD,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBAChC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY;gBAClC,CAAC,CAAC,SAAS;YACb,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBAChC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY;gBAClC,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,MAAe,KAAK;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,CAAC;CACF;AA1DD,0CA0DC"}
1
+ {"version":3,"file":"SwaggerCustomUI.js","sourceRoot":"","sources":["../../../src/factory/openapi/SwaggerCustomUI.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmD;AACnD,2BAAkC;AAClC,2CAA6B;AAY7B,MAAa,eAAe;IAE1B,mDAAmD;IACnD,eAAe;IACf,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,KAAK;IAEL,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAClD,GAAG,IAAI,yDAAyD,GAAG,qCAAqC,CAAC;QAC3G,CAAC;QACD,OAAO,CACL,GAAG;YACH;;kDAE4C,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,gCAAoB,CAAC,aAAa;OAC3G,CACF,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACnC,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAC3B,cAAc,EAAE;gBACd,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB;aACxD;SACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,MAAe,KAAK;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,CAAC;CACF;AApDD,0CAoDC"}
@@ -12,5 +12,16 @@ export interface SwaggerOptions {
12
12
  auth?: SecuritySchemeObject;
13
13
  topbarBgColor?: string;
14
14
  extraModels?: Constructor[];
15
+ /**
16
+ * Path to expose the OpenAPI specification in JSON format.
17
+ * Example: /api/openapi.json
18
+ */
19
+ openApiJsonPath?: string;
20
+ /**
21
+ * Path to expose the OpenAPI specification in YAML format.
22
+ * Requires 'yaml' package as peer dependency.
23
+ * Example: /api/openapi.yaml
24
+ */
25
+ openApiYamlPath?: string;
15
26
  }
16
27
  export declare const SWAGGER_UI_CONSTANTS: SwaggerOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factory/openapi/constants.ts"],"names":[],"mappings":";;;AAiBa,QAAA,oBAAoB,GAAmB;IAClD,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,EAAE;IACnB,kBAAkB,EAAE,EAAE;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,iBAAiB;QAC9B,EAAE,EAAE,QAAQ;KACb;IACD,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,SAAS;CACzB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factory/openapi/constants.ts"],"names":[],"mappings":";;;AA8Ba,QAAA,oBAAoB,GAAmB;IAClD,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,EAAE;IACnB,kBAAkB,EAAE,EAAE;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,iBAAiB;QAC9B,EAAE,EAAE,QAAQ;KACb;IACD,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,SAAS;CACzB,CAAC"}
package/lib/index.cjs CHANGED
@@ -57,7 +57,7 @@ __exportStar(require("./events-module/index.cjs"), exports);
57
57
  * @constant
58
58
  * @type {string}
59
59
  */
60
- exports.VERSION = "0.3.12";
60
+ exports.VERSION = "0.3.14";
61
61
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
62
62
  decoration_1.Metadata.allowReregistration(true);
63
63
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
package/lib/index.d.ts CHANGED
@@ -39,5 +39,5 @@ export * from "./events-module";
39
39
  * @constant
40
40
  * @type {string}
41
41
  */
42
- export declare const VERSION = "0.3.12";
42
+ export declare const VERSION = "0.3.14";
43
43
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-nest",
3
- "version": "0.3.12",
3
+ "version": "0.3.14",
4
4
  "description": "NestJS decaf integration",
5
5
  "type": "module",
6
6
  "exports": {
@@ -104,8 +104,8 @@
104
104
  "@types/lodash": "^4.17.20",
105
105
  "commander": "^13.1.0",
106
106
  "eventsource": "^4.1.0",
107
- "jest-openapi": "^0.14.2",
108
- "supertest": "^7.1.4"
107
+ "supertest": "^7.1.4",
108
+ "typescript": "^5.9.3"
109
109
  },
110
110
  "dependencies": {
111
111
  "@decaf-ts/core": "latest",
@@ -115,7 +115,8 @@
115
115
  "@decaf-ts/injectable-decorators": "latest",
116
116
  "@decaf-ts/logging": "latest",
117
117
  "@decaf-ts/transactional-decorators": "latest",
118
- "@nestjs/common": "^11.1.14"
118
+ "@nestjs/common": "^11.1.14",
119
+ "yaml": "^2.8.3"
119
120
  },
120
121
  "overrides": {
121
122
  "fabric-common": {