@rsdk/cli.cmd.autodoc 6.0.0-next.2 → 6.0.0-next.4

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.
@@ -3,5 +3,6 @@ export declare class OpenApiCommand implements IRunnable {
3
3
  private readonly logger;
4
4
  private readonly loader;
5
5
  constructor();
6
- run(verbose: boolean, ifPresent: boolean, outPath: string, appPath: string, includeZones?: string[], excludeZones?: string[], title?: string, version?: string, description?: string): Promise<void>;
6
+ run(verbose: boolean, ifPresent: boolean, outPath?: string, appPath?: string, configPath?: string, includeZones?: string[], excludeZones?: string[], title?: string, version?: string, description?: string): Promise<void>;
7
+ private readConfig;
7
8
  }
@@ -18,8 +18,10 @@ const cli_common_1 = require("@rsdk/cli.common");
18
18
  const common_1 = require("@rsdk/common");
19
19
  const common_node_1 = require("@rsdk/common.node");
20
20
  const logging_1 = require("@rsdk/logging");
21
+ const value_1 = require("@sinclair/typebox/value");
21
22
  const app_loader_1 = require("../base/app.loader");
22
23
  const document_file_1 = require("../base/document.file");
24
+ const generators_1 = require("../generators");
23
25
  const openapi_json_generator_1 = require("../generators/openapi-json/openapi-json.generator");
24
26
  let OpenApiCommand = OpenApiCommand_1 = class OpenApiCommand {
25
27
  logger;
@@ -28,30 +30,55 @@ let OpenApiCommand = OpenApiCommand_1 = class OpenApiCommand {
28
30
  this.logger = logging_1.LoggerFactory.create(OpenApiCommand_1);
29
31
  this.loader = new app_loader_1.AppLoader(this.logger);
30
32
  }
31
- async run(verbose, ifPresent, outPath, appPath, includeZones, excludeZones, title, version, description) {
33
+ async run(verbose, ifPresent, outPath, appPath, configPath, includeZones, excludeZones, title, version, description) {
32
34
  if (verbose) {
33
35
  this.logger.info(`app path: ${appPath}`);
34
36
  this.logger.info(`output file: ${outPath}`);
35
37
  this.logger.info(`--if-present: ${ifPresent}`);
36
38
  }
37
- const app = await this.loader.loadApp(appPath, !ifPresent);
39
+ const config = await this.readConfig(configPath);
40
+ // Command line options take precedence over config file
41
+ const effectiveOutPath = outPath ?? config.out ?? 'openapi.json';
42
+ const effectiveAppPath = appPath ?? config.app ?? './dist/app.js';
43
+ if (verbose) {
44
+ this.logger.info(`effective out path: ${effectiveOutPath}`);
45
+ this.logger.info(`effective app path: ${effectiveAppPath}`);
46
+ }
47
+ const app = await this.loader.loadApp(effectiveAppPath, !ifPresent);
38
48
  if (!app) {
39
49
  return;
40
50
  }
41
- const [absolutePath] = common_node_1.Path.absolutize(outPath);
51
+ const [absolutePath] = common_node_1.Path.absolutize(effectiveOutPath);
42
52
  const [dirname, filename] = common_node_1.Path.split(absolutePath);
43
53
  const options = {
54
+ ...config,
44
55
  ...(includeZones && { includeZones }),
45
56
  ...(excludeZones && { excludeZones }),
57
+ ...(title && { title }),
46
58
  ...(description && { description }),
47
59
  ...(version && { version }),
48
- ...(title && { title }),
49
60
  };
61
+ if (verbose) {
62
+ this.logger.info('override options', options);
63
+ }
50
64
  const generator = new openapi_json_generator_1.OpenapiGenerator(app, options);
51
65
  const writer = new document_file_1.DocumentWriter(this.logger, dirname);
52
66
  const document = await generator.createFile(filename);
53
67
  await writer.write(document);
54
68
  }
69
+ async readConfig(configPath) {
70
+ if (!configPath) {
71
+ return {};
72
+ }
73
+ this.logger.info(`reading config file: ${configPath}`);
74
+ const [absolutePath] = common_node_1.Path.absolutize(configPath);
75
+ const config = await (0, common_node_1.readObj)(absolutePath);
76
+ if (!value_1.Value.Check(generators_1.OpenApiConfigSchema, config)) {
77
+ const errors = [...value_1.Value.Errors(generators_1.OpenApiConfigSchema, config)];
78
+ throw new Error(`Invalid config file: ${configPath}\n${JSON.stringify(errors, null, 2)}`);
79
+ }
80
+ return config;
81
+ }
55
82
  };
56
83
  exports.OpenApiCommand = OpenApiCommand;
57
84
  __decorate([
@@ -62,51 +89,47 @@ __decorate([
62
89
  })),
63
90
  __param(2, (0, cli_common_1.ValueOption)('out', new common_node_1.FsPathParser('file', { check: 'dirname' }), {
64
91
  description: 'output file',
65
- defaultValue: 'openapi.json',
66
92
  alias: 'o',
67
93
  })),
68
94
  __param(3, (0, cli_common_1.ValueOption)('app', new common_node_1.FsPathParser('file'), {
69
95
  description: 'path to app.js file',
70
- defaultValue: './dist/app.js',
71
96
  alias: 'a',
72
97
  })),
73
- __param(4, (0, cli_common_1.ValueOption)('include-zones', new common_1.ArrayParser(new common_1.StringParser()), {
98
+ __param(4, (0, cli_common_1.ValueOption)('conf', new common_node_1.FsPathParser('file'), {
99
+ description: (0, common_1.text) `
100
+ Path to configuration file (YAML or JSON) containing any of the command options.
101
+ Command line options take precedence over config file values.
102
+ `,
103
+ })),
104
+ __param(5, (0, cli_common_1.ValueOption)('include-zones', new common_1.ArrayParser(new common_1.StringParser()), {
74
105
  description: (0, common_1.text) `
75
106
  API zones to include. Only controllers with these zones will be included in the output.
76
107
  Zones are specified as a comma-separated list.
77
108
  `,
78
- defaultValue: undefined,
79
109
  })),
80
- __param(5, (0, cli_common_1.ValueOption)('exclude-zones', new common_1.ArrayParser(new common_1.StringParser()), {
110
+ __param(6, (0, cli_common_1.ValueOption)('exclude-zones', new common_1.ArrayParser(new common_1.StringParser()), {
81
111
  description: (0, common_1.text) `
82
112
  API zones to exclude. Only controllers without these zones will be included in the output.
83
113
  Zones are specified as a comma-separated list.
84
114
  `,
85
- defaultValue: undefined,
86
115
  })),
87
- __param(6, (0, cli_common_1.ValueOption)('title', new common_1.StringParser(), {
116
+ __param(7, (0, cli_common_1.ValueOption)('title', new common_1.StringParser(), {
88
117
  description: (0, common_1.text) `
89
- The title of OpenAPI document. Overrides the title from
90
- the app metadata which is used by default.
118
+ The title of OpenAPI document. Takes precedence over config file and app metadata.
91
119
  `,
92
- defaultValue: undefined,
93
120
  })),
94
- __param(7, (0, cli_common_1.ValueOption)('version', new common_1.StringParser(), {
121
+ __param(8, (0, cli_common_1.ValueOption)('version', new common_1.StringParser(), {
95
122
  description: (0, common_1.text) `
96
- The version of OpenAPI document. Overrides the version from
97
- the app metadata which is used by default.
123
+ The version of OpenAPI document. Takes precedence over config file and app metadata.
98
124
  `,
99
- defaultValue: undefined,
100
125
  })),
101
- __param(8, (0, cli_common_1.ValueOption)('description', new common_1.StringParser(), {
126
+ __param(9, (0, cli_common_1.ValueOption)('description', new common_1.StringParser(), {
102
127
  description: (0, common_1.text) `
103
- The description of OpenAPI document. Overrides the description from
104
- the app metadata which is used by default.
128
+ The description of OpenAPI document. Takes precedence over config file and app metadata.
105
129
  `,
106
- defaultValue: undefined,
107
130
  })),
108
131
  __metadata("design:type", Function),
109
- __metadata("design:paramtypes", [Boolean, Boolean, String, String, Array, Array, String, String, String]),
132
+ __metadata("design:paramtypes", [Boolean, Boolean, String, String, String, Array, Array, String, String, String]),
110
133
  __metadata("design:returntype", Promise)
111
134
  ], OpenApiCommand.prototype, "run", null);
112
135
  exports.OpenApiCommand = OpenApiCommand = OpenApiCommand_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.variation.js","sourceRoot":"","sources":["../../src/commands/openapi.variation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi.variation.js","sourceRoot":"","sources":["../../src/commands/openapi.variation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import type { Static } from '@sinclair/typebox';
2
+ /**
3
+ * Configuration schema for OpenAPI document generation.
4
+ * @example
5
+ * {
6
+ * "out": "openapi.json",
7
+ * "app": "./dist/app.js",
8
+ * "title": "My API",
9
+ * "version": "1.0.0",
10
+ * "description": "API Description",
11
+ * "includeZones": ["public"],
12
+ * "excludeZones": ["internal"],
13
+ * "security": [{
14
+ * "type": "http",
15
+ * "scheme": "bearer",
16
+ * "bearerFormat": "JWT",
17
+ * "name": "JWT Auth"
18
+ * }]
19
+ * }
20
+ */
21
+ export declare const OpenApiConfigSchema: import("@sinclair/typebox").TObject<{
22
+ /** Output file path for the generated OpenAPI document (includes dirname) */
23
+ out: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
+ /** Path to the application file (usually `dist/app.js`) */
25
+ app: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
+ /** API title */
27
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
28
+ /** API version */
29
+ version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
30
+ /** API description */
31
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
32
+ /** List of zones to include in the documentation */
33
+ includeZones: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
34
+ /** List of zones to exclude from the documentation */
35
+ excludeZones: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
36
+ /** Security schemes configuration */
37
+ security: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
38
+ type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"http">, import("@sinclair/typebox").TLiteral<"apiKey">, import("@sinclair/typebox").TLiteral<"oauth2">, import("@sinclair/typebox").TLiteral<"mutualTLS">]>;
39
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
40
+ name: import("@sinclair/typebox").TString;
41
+ }>, import("@sinclair/typebox").TObject<{
42
+ type: import("@sinclair/typebox").TLiteral<"http">;
43
+ scheme: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"basic">, import("@sinclair/typebox").TLiteral<"bearer">]>;
44
+ bearerFormat: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
45
+ }>]>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
46
+ type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"http">, import("@sinclair/typebox").TLiteral<"apiKey">, import("@sinclair/typebox").TLiteral<"oauth2">, import("@sinclair/typebox").TLiteral<"mutualTLS">]>;
47
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
48
+ name: import("@sinclair/typebox").TString;
49
+ }>, import("@sinclair/typebox").TObject<{
50
+ type: import("@sinclair/typebox").TLiteral<"apiKey">;
51
+ in: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"query">, import("@sinclair/typebox").TLiteral<"header">, import("@sinclair/typebox").TLiteral<"cookie">]>;
52
+ }>]>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
53
+ type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"http">, import("@sinclair/typebox").TLiteral<"apiKey">, import("@sinclair/typebox").TLiteral<"oauth2">, import("@sinclair/typebox").TLiteral<"mutualTLS">]>;
54
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
55
+ name: import("@sinclair/typebox").TString;
56
+ }>, import("@sinclair/typebox").TObject<{
57
+ type: import("@sinclair/typebox").TLiteral<"oauth2">;
58
+ flows: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
59
+ authorizationUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
60
+ tokenUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
61
+ refreshUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
62
+ scopes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
63
+ }>>;
64
+ }>]>, import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TObject<{
65
+ type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"http">, import("@sinclair/typebox").TLiteral<"apiKey">, import("@sinclair/typebox").TLiteral<"oauth2">, import("@sinclair/typebox").TLiteral<"mutualTLS">]>;
66
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
67
+ name: import("@sinclair/typebox").TString;
68
+ }>, import("@sinclair/typebox").TObject<{
69
+ type: import("@sinclair/typebox").TLiteral<"mutualTLS">;
70
+ }>]>]>>>;
71
+ }>;
72
+ export type OpenApiConfigSchema = Static<typeof OpenApiConfigSchema>;
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenApiConfigSchema = void 0;
4
+ const typebox_1 = require("@sinclair/typebox");
5
+ /**
6
+ * Base schema for all security schemes.
7
+ * Contains common fields that are present in all security scheme types.
8
+ */
9
+ const SecuritySchemeBase = typebox_1.Type.Object({
10
+ type: typebox_1.Type.Union([
11
+ typebox_1.Type.Literal('http'),
12
+ typebox_1.Type.Literal('apiKey'),
13
+ typebox_1.Type.Literal('oauth2'),
14
+ typebox_1.Type.Literal('mutualTLS'),
15
+ ]),
16
+ description: typebox_1.Type.Optional(typebox_1.Type.String()),
17
+ name: typebox_1.Type.String(),
18
+ }, { additionalProperties: false });
19
+ /**
20
+ * HTTP Authentication scheme (Basic or Bearer).
21
+ * @example
22
+ * {
23
+ * "type": "http",
24
+ * "scheme": "bearer",
25
+ * "bearerFormat": "JWT",
26
+ * "name": "JWT Auth"
27
+ * }
28
+ */
29
+ const HttpSecurityScheme = typebox_1.Type.Intersect([
30
+ SecuritySchemeBase,
31
+ typebox_1.Type.Object({
32
+ type: typebox_1.Type.Literal('http'),
33
+ scheme: typebox_1.Type.Union([typebox_1.Type.Literal('basic'), typebox_1.Type.Literal('bearer')]),
34
+ bearerFormat: typebox_1.Type.Optional(typebox_1.Type.String()),
35
+ }, { additionalProperties: false }),
36
+ ]);
37
+ /**
38
+ * API Key Authentication scheme.
39
+ * The API key can be passed in a header, query parameter, or cookie.
40
+ * @example
41
+ * {
42
+ * "type": "apiKey",
43
+ * "name": "api_key",
44
+ * "in": "header",
45
+ * "description": "API Key Authentication"
46
+ * }
47
+ */
48
+ const ApiKeySecurityScheme = typebox_1.Type.Intersect([
49
+ SecuritySchemeBase,
50
+ typebox_1.Type.Object({
51
+ type: typebox_1.Type.Literal('apiKey'),
52
+ in: typebox_1.Type.Union([
53
+ typebox_1.Type.Literal('query'),
54
+ typebox_1.Type.Literal('header'),
55
+ typebox_1.Type.Literal('cookie'),
56
+ ]),
57
+ }, { additionalProperties: false }),
58
+ ]);
59
+ /**
60
+ * OAuth2 Authentication scheme.
61
+ * Supports multiple OAuth2 flows (implicit, password, clientCredentials, authorizationCode).
62
+ * @example
63
+ * {
64
+ * "type": "oauth2",
65
+ * "name": "OAuth2",
66
+ * "flows": {
67
+ * "implicit": {
68
+ * "authorizationUrl": "https://example.com/oauth/authorize",
69
+ * "scopes": {
70
+ * "read": "Read access",
71
+ * "write": "Write access"
72
+ * }
73
+ * }
74
+ * }
75
+ * }
76
+ */
77
+ const OAuth2SecurityScheme = typebox_1.Type.Intersect([
78
+ SecuritySchemeBase,
79
+ typebox_1.Type.Object({
80
+ type: typebox_1.Type.Literal('oauth2'),
81
+ flows: typebox_1.Type.Record(typebox_1.Type.String(), typebox_1.Type.Object({
82
+ authorizationUrl: typebox_1.Type.Optional(typebox_1.Type.String({ format: 'uri' })),
83
+ tokenUrl: typebox_1.Type.Optional(typebox_1.Type.String({ format: 'uri' })),
84
+ refreshUrl: typebox_1.Type.Optional(typebox_1.Type.String({ format: 'uri' })),
85
+ scopes: typebox_1.Type.Record(typebox_1.Type.String(), typebox_1.Type.String()),
86
+ }, { additionalProperties: false })),
87
+ }, { additionalProperties: false }),
88
+ ]);
89
+ /**
90
+ * Mutual TLS Authentication scheme.
91
+ * Used when clients must present valid certificates to access the API.
92
+ * @example
93
+ * {
94
+ * "type": "mutualTLS",
95
+ * "name": "mtls",
96
+ * "description": "Client certificate required"
97
+ * }
98
+ */
99
+ const MutualTLSSecurityScheme = typebox_1.Type.Intersect([
100
+ SecuritySchemeBase,
101
+ typebox_1.Type.Object({
102
+ type: typebox_1.Type.Literal('mutualTLS'),
103
+ }, { additionalProperties: false }),
104
+ ]);
105
+ /**
106
+ * Union of all supported security schemes.
107
+ * Can be one of: HTTP (Basic/Bearer), API Key, OAuth2, or Mutual TLS.
108
+ */
109
+ const SecurityScheme = typebox_1.Type.Union([
110
+ HttpSecurityScheme,
111
+ ApiKeySecurityScheme,
112
+ OAuth2SecurityScheme,
113
+ MutualTLSSecurityScheme,
114
+ ]);
115
+ /**
116
+ * Configuration schema for OpenAPI document generation.
117
+ * @example
118
+ * {
119
+ * "out": "openapi.json",
120
+ * "app": "./dist/app.js",
121
+ * "title": "My API",
122
+ * "version": "1.0.0",
123
+ * "description": "API Description",
124
+ * "includeZones": ["public"],
125
+ * "excludeZones": ["internal"],
126
+ * "security": [{
127
+ * "type": "http",
128
+ * "scheme": "bearer",
129
+ * "bearerFormat": "JWT",
130
+ * "name": "JWT Auth"
131
+ * }]
132
+ * }
133
+ */
134
+ exports.OpenApiConfigSchema = typebox_1.Type.Object({
135
+ /** Output file path for the generated OpenAPI document (includes dirname) */
136
+ out: typebox_1.Type.Optional(typebox_1.Type.String()),
137
+ /** Path to the application file (usually `dist/app.js`) */
138
+ app: typebox_1.Type.Optional(typebox_1.Type.String()),
139
+ /** API title */
140
+ title: typebox_1.Type.Optional(typebox_1.Type.String()),
141
+ /** API version */
142
+ version: typebox_1.Type.Optional(typebox_1.Type.String()),
143
+ /** API description */
144
+ description: typebox_1.Type.Optional(typebox_1.Type.String()),
145
+ /** List of zones to include in the documentation */
146
+ includeZones: typebox_1.Type.Optional(typebox_1.Type.Array(typebox_1.Type.String())),
147
+ /** List of zones to exclude from the documentation */
148
+ excludeZones: typebox_1.Type.Optional(typebox_1.Type.Array(typebox_1.Type.String())),
149
+ /** Security schemes configuration */
150
+ security: typebox_1.Type.Optional(typebox_1.Type.Array(SecurityScheme)),
151
+ }, { additionalProperties: false });
152
+ //# sourceMappingURL=config.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../../src/generators/openapi-json/config.schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export * from './openapi-json.generator';
2
+ export * from './config.schema';
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./openapi-json.generator"), exports);
18
+ __exportStar(require("./config.schema"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/openapi-json/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/openapi-json/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,kDAAgC"}
@@ -1,12 +1,11 @@
1
1
  import { PlatformApp } from '@rsdk/core';
2
2
  import { FileGenerator } from '../file-generator.interface';
3
- export type OpenApiGeneratorOptions = {
4
- title: string;
5
- version: string;
6
- description: string;
7
- includeZones?: string[];
8
- excludeZones?: string[];
9
- };
3
+ import { OpenApiConfigSchema } from './config.schema';
4
+ /**
5
+ * Here we don't need `out` and `app`,
6
+ * but `title`, `version` and `description` are required.
7
+ */
8
+ export type OpenApiGeneratorOptions = Omit<OpenApiConfigSchema, 'out' | 'app'> & Required<Pick<OpenApiConfigSchema, 'title' | 'version' | 'description'>>;
10
9
  export declare class OpenapiGenerator extends FileGenerator {
11
10
  private readonly app;
12
11
  private readonly options;
@@ -72,11 +72,29 @@ class OpenapiGenerator extends file_generator_interface_1.FileGenerator {
72
72
  ], OpenApiModule);
73
73
  const createOptions = await this.app.context.getNestFactoryCreateOptions();
74
74
  const app = await core_1.NestFactory.create(OpenApiModule, ...createOptions);
75
- const { title, version, description } = options;
75
+ const { title, version, description, security } = options;
76
76
  const builder = new swagger_1.DocumentBuilder()
77
77
  .setTitle(title)
78
78
  .setVersion(version)
79
79
  .setDescription(description);
80
+ for (const scheme of security || []) {
81
+ switch (scheme.type) {
82
+ case 'http':
83
+ if (scheme.scheme === 'bearer') {
84
+ builder.addBearerAuth(scheme, scheme.name);
85
+ }
86
+ else if (scheme.scheme === 'basic') {
87
+ builder.addBasicAuth(scheme, scheme.name);
88
+ }
89
+ break;
90
+ case 'oauth2':
91
+ builder.addOAuth2(scheme, scheme.name);
92
+ break;
93
+ case 'apiKey':
94
+ builder.addApiKey(scheme, scheme.name);
95
+ break;
96
+ }
97
+ }
80
98
  const openApiConfig = builder.build();
81
99
  const document = swagger_1.SwaggerModule.createDocument(app, openApiConfig);
82
100
  this.logger.info('Generate openapi finished');
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-json.generator.js","sourceRoot":"","sources":["../../../src/generators/openapi-json/openapi-json.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi-json.generator.js","sourceRoot":"","sources":["../../../src/generators/openapi-json/openapi-json.generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/cli.cmd.autodoc",
3
- "version": "6.0.0-next.2",
3
+ "version": "6.0.0-next.4",
4
4
  "description": "autodoc your app!",
5
5
  "homepage": "https://github.com/R-Vision/rsdk",
6
6
  "license": "Apache License 2.0",
@@ -16,11 +16,13 @@
16
16
  "url": "https://github.com/R-Vision/rsdk"
17
17
  },
18
18
  "dependencies": {
19
+ "@sinclair/typebox": "^0.34.9",
19
20
  "commander": "^12.1.0",
20
21
  "lodash": "^4.17.21",
21
22
  "log-update": "4.0.0",
22
23
  "markdown-table": "2.0.0",
23
- "pino-pretty": "^10.3.1"
24
+ "pino-pretty": "^10.3.1",
25
+ "rxjs": "^7.8.1"
24
26
  },
25
27
  "peerDependencies": {
26
28
  "@nestjs/common": "^10.0.0",
@@ -38,5 +40,5 @@
38
40
  "@rsdk/zones": "*",
39
41
  "reflect-metadata": "^0.1.12 || ^0.2.0"
40
42
  },
41
- "gitHead": "d051ee5232602e26554ea95e39df20c8f77a5ac3"
43
+ "gitHead": "f0dec6323cbe016b5efd433484d2f2d044d12fa9"
42
44
  }