@nestia/sdk 7.1.0 → 7.1.1-dev.20250714

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 (113) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +93 -93
  3. package/assets/bundle/api/HttpError.ts +1 -1
  4. package/assets/bundle/api/IConnection.ts +1 -1
  5. package/assets/bundle/api/Primitive.ts +1 -1
  6. package/assets/bundle/api/Resolved.ts +1 -1
  7. package/assets/bundle/api/index.ts +4 -4
  8. package/assets/bundle/api/module.ts +6 -6
  9. package/assets/bundle/distribute/README.md +37 -37
  10. package/assets/bundle/distribute/package.json +28 -28
  11. package/assets/bundle/distribute/tsconfig.json +109 -109
  12. package/assets/bundle/e2e/index.ts +42 -42
  13. package/assets/config/nestia.config.ts +97 -97
  14. package/lib/executable/internal/NestiaConfigLoader.js +4 -4
  15. package/lib/executable/sdk.js +12 -12
  16. package/lib/generates/internal/SdkHttpSimulationProgrammer.js +5 -4
  17. package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
  18. package/package.json +4 -4
  19. package/src/INestiaConfig.ts +269 -269
  20. package/src/NestiaSdkApplication.ts +307 -307
  21. package/src/NestiaSwaggerComposer.ts +138 -138
  22. package/src/analyses/AccessorAnalyzer.ts +67 -67
  23. package/src/analyses/ConfigAnalyzer.ts +155 -155
  24. package/src/analyses/ExceptionAnalyzer.ts +154 -154
  25. package/src/analyses/GenericAnalyzer.ts +49 -49
  26. package/src/analyses/ImportAnalyzer.ts +171 -171
  27. package/src/analyses/PathAnalyzer.ts +69 -69
  28. package/src/analyses/ReflectControllerAnalyzer.ts +105 -105
  29. package/src/analyses/ReflectHttpOperationAnalyzer.ts +183 -183
  30. package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +71 -71
  31. package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +348 -348
  32. package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +127 -127
  33. package/src/analyses/ReflectMetadataAnalyzer.ts +44 -44
  34. package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +172 -172
  35. package/src/analyses/SecurityAnalyzer.ts +25 -25
  36. package/src/analyses/TypedHttpRouteAnalyzer.ts +204 -204
  37. package/src/analyses/TypedWebSocketRouteAnalyzer.ts +33 -33
  38. package/src/decorators/OperationMetadata.ts +15 -15
  39. package/src/executable/internal/CommandParser.ts +15 -15
  40. package/src/executable/internal/NestiaConfigLoader.ts +78 -78
  41. package/src/executable/internal/NestiaSdkCommand.ts +103 -103
  42. package/src/executable/sdk.ts +75 -75
  43. package/src/generates/CloneGenerator.ts +66 -66
  44. package/src/generates/E2eGenerator.ts +32 -32
  45. package/src/generates/SdkGenerator.ts +160 -160
  46. package/src/generates/SwaggerGenerator.ts +284 -284
  47. package/src/generates/internal/E2eFileProgrammer.ts +205 -205
  48. package/src/generates/internal/FilePrinter.ts +53 -53
  49. package/src/generates/internal/ImportDictionary.ts +163 -163
  50. package/src/generates/internal/SdkAliasCollection.ts +255 -255
  51. package/src/generates/internal/SdkDistributionComposer.ts +103 -103
  52. package/src/generates/internal/SdkFileProgrammer.ts +116 -116
  53. package/src/generates/internal/SdkHttpCloneProgrammer.ts +124 -124
  54. package/src/generates/internal/SdkHttpCloneReferencer.ts +75 -75
  55. package/src/generates/internal/SdkHttpFunctionProgrammer.ts +279 -279
  56. package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +500 -500
  57. package/src/generates/internal/SdkHttpParameterProgrammer.ts +178 -178
  58. package/src/generates/internal/SdkHttpRouteProgrammer.ts +107 -107
  59. package/src/generates/internal/SdkHttpSimulationProgrammer.ts +309 -311
  60. package/src/generates/internal/SdkImportWizard.ts +55 -55
  61. package/src/generates/internal/SdkRouteDirectory.ts +18 -18
  62. package/src/generates/internal/SdkTypeProgrammer.ts +384 -384
  63. package/src/generates/internal/SdkTypeTagProgrammer.ts +102 -102
  64. package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +366 -366
  65. package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +87 -87
  66. package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +279 -279
  67. package/src/generates/internal/SwaggerDescriptionComposer.ts +64 -64
  68. package/src/generates/internal/SwaggerOperationComposer.ts +119 -119
  69. package/src/generates/internal/SwaggerOperationParameterComposer.ts +177 -177
  70. package/src/generates/internal/SwaggerOperationResponseComposer.ts +110 -110
  71. package/src/index.ts +4 -4
  72. package/src/module.ts +3 -3
  73. package/src/structures/INestiaProject.ts +13 -13
  74. package/src/structures/INestiaSdkInput.ts +20 -20
  75. package/src/structures/IReflectApplication.ts +8 -8
  76. package/src/structures/IReflectController.ts +15 -15
  77. package/src/structures/IReflectHttpOperation.ts +26 -26
  78. package/src/structures/IReflectHttpOperationException.ts +19 -19
  79. package/src/structures/IReflectHttpOperationParameter.ts +81 -81
  80. package/src/structures/IReflectHttpOperationSuccess.ts +22 -22
  81. package/src/structures/IReflectOperationError.ts +26 -26
  82. package/src/structures/IReflectType.ts +4 -4
  83. package/src/structures/IReflectTypeImport.ts +4 -4
  84. package/src/structures/IReflectWebSocketOperation.ts +17 -17
  85. package/src/structures/IReflectWebSocketOperationParameter.ts +38 -38
  86. package/src/structures/ITypedApplication.ts +11 -11
  87. package/src/structures/ITypedHttpRoute.ts +41 -41
  88. package/src/structures/ITypedHttpRouteException.ts +15 -15
  89. package/src/structures/ITypedHttpRouteParameter.ts +41 -41
  90. package/src/structures/ITypedHttpRouteSuccess.ts +22 -22
  91. package/src/structures/ITypedWebSocketRoute.ts +24 -24
  92. package/src/structures/ITypedWebSocketRouteParameter.ts +3 -3
  93. package/src/structures/MethodType.ts +5 -5
  94. package/src/structures/ParamCategory.ts +1 -1
  95. package/src/structures/TypeEntry.ts +22 -22
  96. package/src/transform.ts +9 -9
  97. package/src/transformers/IOperationMetadata.ts +44 -44
  98. package/src/transformers/ISdkOperationTransformerContext.ts +8 -8
  99. package/src/transformers/SdkOperationProgrammer.ts +209 -209
  100. package/src/transformers/SdkOperationTransformer.ts +253 -253
  101. package/src/transformers/TextPlainValidator.ts +17 -17
  102. package/src/typings/get-function-location.d.ts +7 -7
  103. package/src/utils/ArrayUtil.ts +26 -26
  104. package/src/utils/FileRetriever.ts +22 -22
  105. package/src/utils/MapUtil.ts +14 -14
  106. package/src/utils/MetadataUtil.ts +26 -26
  107. package/src/utils/PathUtil.ts +10 -10
  108. package/src/utils/SourceFinder.ts +66 -66
  109. package/src/utils/StringUtil.ts +17 -17
  110. package/src/utils/StripEnums.ts +5 -5
  111. package/src/utils/VersioningStrategy.ts +28 -28
  112. package/src/validators/HttpHeadersValidator.ts +34 -34
  113. package/src/validators/HttpQueryValidator.ts +34 -34
@@ -1 +1 @@
1
- {"version":3,"file":"SdkHttpSimulationProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkHttpSimulationProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdkHttpSimulationProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkHttpSimulationProgrammer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/sdk",
3
- "version": "7.1.0",
3
+ "version": "7.1.1-dev.20250714",
4
4
  "description": "Nestia SDK and Swagger generator",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -32,8 +32,8 @@
32
32
  },
33
33
  "homepage": "https://nestia.io",
34
34
  "dependencies": {
35
- "@nestia/core": "^7.1.0",
36
- "@nestia/fetcher": "^7.1.0",
35
+ "@nestia/core": "^7.1.1-dev.20250714",
36
+ "@nestia/fetcher": "^7.1.1-dev.20250714",
37
37
  "@samchon/openapi": "^4.5.0",
38
38
  "cli": "^1.0.1",
39
39
  "get-function-location": "^2.0.0",
@@ -47,7 +47,7 @@
47
47
  "typia": "^9.5.0"
48
48
  },
49
49
  "peerDependencies": {
50
- "@nestia/core": ">=7.1.0"
50
+ "@nestia/core": ">=7.1.1-dev.20250714"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@nestjs/common": "^11.0.13",
@@ -1,269 +1,269 @@
1
- import type { INestApplication } from "@nestjs/common";
2
- import type { OpenApi } from "@samchon/openapi";
3
-
4
- /**
5
- * Definition for the `nestia.config.ts` file.
6
- *
7
- * @author Jeongho Nam - https://github.com/samchon
8
- */
9
- export interface INestiaConfig {
10
- /**
11
- * Accessor of controller classes.
12
- *
13
- * You can specify target controller classes within two ways.
14
- *
15
- * - Asynchronous function returning `INestApplication` instance
16
- * - Specify the path or directory of controller class files
17
- */
18
- input:
19
- | (() => Promise<INestApplication>)
20
- | INestiaConfig.IInput
21
- | string[]
22
- | string;
23
-
24
- /**
25
- * Building `swagger.json` is also possible.
26
- *
27
- * If not specified, you can't build the `swagger.json`.
28
- */
29
- swagger?: INestiaConfig.ISwaggerConfig;
30
-
31
- /**
32
- * Response directory that SDK would be placed in.
33
- *
34
- * If not configured, you can't build the SDK library.
35
- */
36
- output?: string;
37
-
38
- /**
39
- * Target directory that SDK distribution files would be placed in.
40
- *
41
- * If you configure this property and runs `npx nestia sdk` command,
42
- * distribution environments for the SDK library would be generated.
43
- *
44
- * After the SDK library generation, move to the `distribute` directory, and
45
- * runs `npm publish` command, then you can share SDK library with other
46
- * client (frontend) developers.
47
- *
48
- * Recommend to use `"packages/api"` value.
49
- */
50
- distribute?: string;
51
-
52
- /**
53
- * @default false
54
- */
55
- keyword?: boolean;
56
-
57
- /**
58
- * Allow simulation mode.
59
- *
60
- * If you configure this property to be `true`, the SDK library would be
61
- * contain simulation mode. In the simulation mode, the SDK library would not
62
- * communicate with the real backend server, but just returns random mock-up
63
- * data with requestion data validation.
64
- *
65
- * For reference, random mock-up data would be generated by
66
- * `typia.random<T>()` function.
67
- *
68
- * @default false
69
- */
70
- simulate?: boolean;
71
-
72
- /**
73
- * Target directory that e2e test functions would be placed in.
74
- *
75
- * If you configure this property and runs `npx nestia e2e` command,
76
- * `@nestia/sdk` will analyze your NestJS backend server code, and generates
77
- * e2e test functions for every API endpoints.
78
- *
79
- * If not configured, you can't run `npx nestia e2e` command.
80
- */
81
- e2e?: string;
82
-
83
- /**
84
- * Whether to use propagation mode or not.
85
- *
86
- * If being configured, interaction functions of the SDK library would perform
87
- * the propagation mode. The propagation mode means that never throwing
88
- * exception even when status code is not 200 (or 201), but just returning the
89
- * {@link IPropagation} typed instance, which can specify its body type through
90
- * discriminated union determined by status code.
91
- *
92
- * @default false
93
- */
94
- propagate?: boolean;
95
-
96
- /**
97
- * Whether to clone DTO structures or not.
98
- *
99
- * If being configured, all of DTOs used in the backend server would be cloned
100
- * into the `structures` directory, and the SDK library would be refer to the
101
- * cloned DTOs instead of the original.
102
- *
103
- * @default false
104
- */
105
- clone?: boolean;
106
-
107
- /**
108
- * Whether to wrap DTO by primitive type.
109
- *
110
- * If you don't configure this property as `false`, all of DTOs in the SDK
111
- * library would be automatically wrapped by {@link Primitive} type.
112
- *
113
- * For refenrece, if a DTO type be capsuled by the {@link Primitive} type, all
114
- * of methods in the DTO type would be automatically erased. Also, if the DTO
115
- * has a `toJSON()` method, the DTO type would be automatically converted to
116
- * return type of the `toJSON()` method.
117
- *
118
- * @default true
119
- */
120
- primitive?: boolean;
121
-
122
- /**
123
- * Whether to assert parameter types or not.
124
- *
125
- * If you configure this property to be `true`, all of the function parameters
126
- * of SDK library would be checked through [`typia.assert<T>()`
127
- * function](https://typia.io/docs/validators/assert/).
128
- *
129
- * This option would make your SDK library compilation time a little bit
130
- * slower, but would enahcne the type safety even in the runtime level.
131
- *
132
- * @default false
133
- */
134
- assert?: boolean;
135
-
136
- /**
137
- * Whether to optimize JSON string conversion 10x faster or not.
138
- *
139
- * If you configure this property to be `true`, the SDK library would utilize
140
- * the [`typia.assertStringify<T>()
141
- * function`](https://github.com/samchon/typia#enhanced-json) to boost up JSON
142
- * serialization speed and ensure type safety.
143
- *
144
- * This option would make your SDK library compilation time a little bit
145
- * slower, but would enhance JSON serialization speed 10x faster. Also, it can
146
- * ensure type safety even in the runtime level.
147
- *
148
- * @default false
149
- */
150
- json?: boolean;
151
- }
152
- export namespace INestiaConfig {
153
- /**
154
- * List of files or directories to include or exclude to specifying the NestJS
155
- * controllers.
156
- */
157
- export interface IInput {
158
- /** List of files or directories containing the NestJS controller classes. */
159
- include: string[];
160
-
161
- /** List of files or directories to be excluded. */
162
- exclude?: string[];
163
- }
164
-
165
- /** Building `swagger.json` is also possible. */
166
- export interface ISwaggerConfig {
167
- /**
168
- * Response path of the `swagger.json`.
169
- *
170
- * If you've configured only directory, the file name would be the
171
- * `swagger.json`. Otherwise you've configured the full path with file name
172
- * and extension, the `swagger.json` file would be renamed to it.
173
- */
174
- output: string;
175
-
176
- /**
177
- * OpenAPI version.
178
- *
179
- * If you configure this property to be `2.0` or `3.0`, the newly generated
180
- * `swagger.json` file would follow the specified OpenAPI version. The newly
181
- * generated `swagger.json` file would be downgraded from the OpenAPI v3.1
182
- * specification by {@link OpenApi.downgrade} method.
183
- *
184
- * @default 3.1
185
- */
186
- openapi?: "2.0" | "3.0" | "3.1";
187
-
188
- /**
189
- * Whether to beautify JSON content or not.
190
- *
191
- * If you configure this property to be `true`, the `swagger.json` file
192
- * would be beautified with indentation (2 spaces) and line breaks. If you
193
- * configure numeric value instead, the indentation would be specified by
194
- * the number.
195
- *
196
- * @default false
197
- */
198
- beautify?: boolean | number;
199
-
200
- /**
201
- * Whether to include additional information or not.
202
- *
203
- * If configured to be `true`, those properties would be added into each API
204
- * endpoinnt.
205
- *
206
- * - `x-nestia-method`
207
- * - `x-nestia-namespace` ` `x-nestia-jsDocTags`
208
- *
209
- * @default false
210
- */
211
- additional?: boolean;
212
-
213
- /**
214
- * API information.
215
- *
216
- * If omitted, `package.json` content would be used instead.
217
- */
218
- info?: Partial<OpenApi.IDocument.IInfo>;
219
-
220
- /** List of server addresses. */
221
- servers?: OpenApi.IServer[];
222
-
223
- /**
224
- * Security schemes.
225
- *
226
- * When generating `swagger.json` file through `nestia`, if your controllers
227
- * or theirs methods have a security key which is not enrolled in here
228
- * property, it would be an error.
229
- */
230
- security?: Record<string, OpenApi.ISecurityScheme>;
231
-
232
- /**
233
- * List of tag names with description.
234
- *
235
- * It is possible to omit this property or skip some tag name even if the
236
- * tag name is used in the API routes. In that case, the tag name would be
237
- * used without description.
238
- *
239
- * Of course, if you've written a comment like `@tag {name} {description}`,
240
- * you can entirely replace this property specification.
241
- */
242
- tags?: OpenApi.IDocument.ITag[];
243
-
244
- /**
245
- * Decompose query DTO.
246
- *
247
- * If you configure this property to be `true`, the query DTO would be
248
- * decomposed into individual query parameters per each property. Otherwise
249
- * you set it to be `false`, the query DTO would be one object type which
250
- * contains all of query parameters.
251
- *
252
- * @default true
253
- */
254
- decompose?: boolean;
255
-
256
- /**
257
- * Operation ID generator.
258
- *
259
- * @param props Properties of the API endpoint.
260
- * @returns Operation ID.
261
- */
262
- operationId?(props: {
263
- class: string;
264
- function: string;
265
- method: "HEAD" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
266
- path: string;
267
- }): string;
268
- }
269
- }
1
+ import type { INestApplication } from "@nestjs/common";
2
+ import type { OpenApi } from "@samchon/openapi";
3
+
4
+ /**
5
+ * Definition for the `nestia.config.ts` file.
6
+ *
7
+ * @author Jeongho Nam - https://github.com/samchon
8
+ */
9
+ export interface INestiaConfig {
10
+ /**
11
+ * Accessor of controller classes.
12
+ *
13
+ * You can specify target controller classes within two ways.
14
+ *
15
+ * - Asynchronous function returning `INestApplication` instance
16
+ * - Specify the path or directory of controller class files
17
+ */
18
+ input:
19
+ | (() => Promise<INestApplication>)
20
+ | INestiaConfig.IInput
21
+ | string[]
22
+ | string;
23
+
24
+ /**
25
+ * Building `swagger.json` is also possible.
26
+ *
27
+ * If not specified, you can't build the `swagger.json`.
28
+ */
29
+ swagger?: INestiaConfig.ISwaggerConfig;
30
+
31
+ /**
32
+ * Response directory that SDK would be placed in.
33
+ *
34
+ * If not configured, you can't build the SDK library.
35
+ */
36
+ output?: string;
37
+
38
+ /**
39
+ * Target directory that SDK distribution files would be placed in.
40
+ *
41
+ * If you configure this property and runs `npx nestia sdk` command,
42
+ * distribution environments for the SDK library would be generated.
43
+ *
44
+ * After the SDK library generation, move to the `distribute` directory, and
45
+ * runs `npm publish` command, then you can share SDK library with other
46
+ * client (frontend) developers.
47
+ *
48
+ * Recommend to use `"packages/api"` value.
49
+ */
50
+ distribute?: string;
51
+
52
+ /**
53
+ * @default false
54
+ */
55
+ keyword?: boolean;
56
+
57
+ /**
58
+ * Allow simulation mode.
59
+ *
60
+ * If you configure this property to be `true`, the SDK library would be
61
+ * contain simulation mode. In the simulation mode, the SDK library would not
62
+ * communicate with the real backend server, but just returns random mock-up
63
+ * data with requestion data validation.
64
+ *
65
+ * For reference, random mock-up data would be generated by
66
+ * `typia.random<T>()` function.
67
+ *
68
+ * @default false
69
+ */
70
+ simulate?: boolean;
71
+
72
+ /**
73
+ * Target directory that e2e test functions would be placed in.
74
+ *
75
+ * If you configure this property and runs `npx nestia e2e` command,
76
+ * `@nestia/sdk` will analyze your NestJS backend server code, and generates
77
+ * e2e test functions for every API endpoints.
78
+ *
79
+ * If not configured, you can't run `npx nestia e2e` command.
80
+ */
81
+ e2e?: string;
82
+
83
+ /**
84
+ * Whether to use propagation mode or not.
85
+ *
86
+ * If being configured, interaction functions of the SDK library would perform
87
+ * the propagation mode. The propagation mode means that never throwing
88
+ * exception even when status code is not 200 (or 201), but just returning the
89
+ * {@link IPropagation} typed instance, which can specify its body type through
90
+ * discriminated union determined by status code.
91
+ *
92
+ * @default false
93
+ */
94
+ propagate?: boolean;
95
+
96
+ /**
97
+ * Whether to clone DTO structures or not.
98
+ *
99
+ * If being configured, all of DTOs used in the backend server would be cloned
100
+ * into the `structures` directory, and the SDK library would be refer to the
101
+ * cloned DTOs instead of the original.
102
+ *
103
+ * @default false
104
+ */
105
+ clone?: boolean;
106
+
107
+ /**
108
+ * Whether to wrap DTO by primitive type.
109
+ *
110
+ * If you don't configure this property as `false`, all of DTOs in the SDK
111
+ * library would be automatically wrapped by {@link Primitive} type.
112
+ *
113
+ * For refenrece, if a DTO type be capsuled by the {@link Primitive} type, all
114
+ * of methods in the DTO type would be automatically erased. Also, if the DTO
115
+ * has a `toJSON()` method, the DTO type would be automatically converted to
116
+ * return type of the `toJSON()` method.
117
+ *
118
+ * @default true
119
+ */
120
+ primitive?: boolean;
121
+
122
+ /**
123
+ * Whether to assert parameter types or not.
124
+ *
125
+ * If you configure this property to be `true`, all of the function parameters
126
+ * of SDK library would be checked through [`typia.assert<T>()`
127
+ * function](https://typia.io/docs/validators/assert/).
128
+ *
129
+ * This option would make your SDK library compilation time a little bit
130
+ * slower, but would enahcne the type safety even in the runtime level.
131
+ *
132
+ * @default false
133
+ */
134
+ assert?: boolean;
135
+
136
+ /**
137
+ * Whether to optimize JSON string conversion 10x faster or not.
138
+ *
139
+ * If you configure this property to be `true`, the SDK library would utilize
140
+ * the [`typia.assertStringify<T>()
141
+ * function`](https://github.com/samchon/typia#enhanced-json) to boost up JSON
142
+ * serialization speed and ensure type safety.
143
+ *
144
+ * This option would make your SDK library compilation time a little bit
145
+ * slower, but would enhance JSON serialization speed 10x faster. Also, it can
146
+ * ensure type safety even in the runtime level.
147
+ *
148
+ * @default false
149
+ */
150
+ json?: boolean;
151
+ }
152
+ export namespace INestiaConfig {
153
+ /**
154
+ * List of files or directories to include or exclude to specifying the NestJS
155
+ * controllers.
156
+ */
157
+ export interface IInput {
158
+ /** List of files or directories containing the NestJS controller classes. */
159
+ include: string[];
160
+
161
+ /** List of files or directories to be excluded. */
162
+ exclude?: string[];
163
+ }
164
+
165
+ /** Building `swagger.json` is also possible. */
166
+ export interface ISwaggerConfig {
167
+ /**
168
+ * Response path of the `swagger.json`.
169
+ *
170
+ * If you've configured only directory, the file name would be the
171
+ * `swagger.json`. Otherwise you've configured the full path with file name
172
+ * and extension, the `swagger.json` file would be renamed to it.
173
+ */
174
+ output: string;
175
+
176
+ /**
177
+ * OpenAPI version.
178
+ *
179
+ * If you configure this property to be `2.0` or `3.0`, the newly generated
180
+ * `swagger.json` file would follow the specified OpenAPI version. The newly
181
+ * generated `swagger.json` file would be downgraded from the OpenAPI v3.1
182
+ * specification by {@link OpenApi.downgrade} method.
183
+ *
184
+ * @default 3.1
185
+ */
186
+ openapi?: "2.0" | "3.0" | "3.1";
187
+
188
+ /**
189
+ * Whether to beautify JSON content or not.
190
+ *
191
+ * If you configure this property to be `true`, the `swagger.json` file
192
+ * would be beautified with indentation (2 spaces) and line breaks. If you
193
+ * configure numeric value instead, the indentation would be specified by
194
+ * the number.
195
+ *
196
+ * @default false
197
+ */
198
+ beautify?: boolean | number;
199
+
200
+ /**
201
+ * Whether to include additional information or not.
202
+ *
203
+ * If configured to be `true`, those properties would be added into each API
204
+ * endpoinnt.
205
+ *
206
+ * - `x-nestia-method`
207
+ * - `x-nestia-namespace` ` `x-nestia-jsDocTags`
208
+ *
209
+ * @default false
210
+ */
211
+ additional?: boolean;
212
+
213
+ /**
214
+ * API information.
215
+ *
216
+ * If omitted, `package.json` content would be used instead.
217
+ */
218
+ info?: Partial<OpenApi.IDocument.IInfo>;
219
+
220
+ /** List of server addresses. */
221
+ servers?: OpenApi.IServer[];
222
+
223
+ /**
224
+ * Security schemes.
225
+ *
226
+ * When generating `swagger.json` file through `nestia`, if your controllers
227
+ * or theirs methods have a security key which is not enrolled in here
228
+ * property, it would be an error.
229
+ */
230
+ security?: Record<string, OpenApi.ISecurityScheme>;
231
+
232
+ /**
233
+ * List of tag names with description.
234
+ *
235
+ * It is possible to omit this property or skip some tag name even if the
236
+ * tag name is used in the API routes. In that case, the tag name would be
237
+ * used without description.
238
+ *
239
+ * Of course, if you've written a comment like `@tag {name} {description}`,
240
+ * you can entirely replace this property specification.
241
+ */
242
+ tags?: OpenApi.IDocument.ITag[];
243
+
244
+ /**
245
+ * Decompose query DTO.
246
+ *
247
+ * If you configure this property to be `true`, the query DTO would be
248
+ * decomposed into individual query parameters per each property. Otherwise
249
+ * you set it to be `false`, the query DTO would be one object type which
250
+ * contains all of query parameters.
251
+ *
252
+ * @default true
253
+ */
254
+ decompose?: boolean;
255
+
256
+ /**
257
+ * Operation ID generator.
258
+ *
259
+ * @param props Properties of the API endpoint.
260
+ * @returns Operation ID.
261
+ */
262
+ operationId?(props: {
263
+ class: string;
264
+ function: string;
265
+ method: "HEAD" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
266
+ path: string;
267
+ }): string;
268
+ }
269
+ }