nestjs-openapi 0.2.0 → 0.2.1

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.
package/dist/cli.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import 'tsx';
3
3
  import { Effect, Exit, Cause, Option } from 'effect';
4
- import { ax as generateEffect, ak as generatorServicesLayer, az as runtimeLayerFor, aw as formatValidationResult } from './shared/nestjs-openapi.P9V98nna.mjs';
4
+ import { ax as generateEffect, ak as generatorServicesLayer, az as runtimeLayerFor, aw as formatValidationResult } from './shared/nestjs-openapi.0ft_UaiO.mjs';
5
5
  import minimist from 'minimist';
6
6
  import { relative } from 'node:path';
7
7
  import { createRequire } from 'node:module';
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { O as OpenApiSpec, S as SpecFileNotFoundError, a as SpecFileReadError, b as SpecFileParseError, M as MethodInfo, c as OpenApiPaths, d as OpenApiOperation, e as OpenApiPaths$1, G as GeneratedSchemas, f as OpenApiSchema, V as ValidationService, C as ConfigService, g as ModuleTraversalService, h as MethodExtractionService, i as SchemaService, j as OutputService, P as ProjectService } from './shared/nestjs-openapi.D0Osp4GW.mjs';
2
- export { a4 as AnalysisError, aJ as BrokenRef, aK as BrokenRefCategories, az as ClassValidationInfo, n as Config, a3 as ConfigError, X as ConfigLoadError, W as ConfigNotFoundError, Y as ConfigValidationError, o as ContactConfig, Z as DtoGlobResolutionError, U as EntryNotFoundError, E as GenerateOptions, s as GenerateOverrides, l as GenerateResult, a5 as GeneratorError, J as HttpMethod, I as InfoConfig, _ as InvalidMethodError, am as JsonSchema, L as LicenseConfig, $ as MissingGenericSchemaTempFileCleanupError, a0 as MissingGenericSchemaTempFileWriteError, ac as ModuleWithControllers, K as OpenApiGeneratorConfig, t as OpenApiOperation, u as OpenApiParameter, v as OpenApiRequestBody, w as OpenApiResponse, q as OutputFormat, F as ParameterLocation, a8 as ProjectContext, a2 as ProjectError, Q as ProjectInitError, a9 as ProjectOptions, a6 as ProjectServiceLive, ay as PropertyValidationInfo, a1 as PublicApiError, N as ResolvedConfig, R as ResolvedParameter, H as ReturnTypeInfo, ak as SchemaError, aj as SchemaGenerationError, al as SchemaGeneratorOptions, p as ServerConfig, T as TagConfig, r as TelemetryConfig, ax as ValidationConstraints, aI as ValidationResult, au as applyConstraintsToSchema, aG as categorizeBrokenRefs, m as defineConfig, as as extractClassConstraints, aq as extractClassValidationInfo, ar as extractClassValidationInfoEffect, an as extractPropertyConstraints, ap as extractPropertyValidationInfo, aA as findConfigFile, aH as formatValidationResult, k as generate, y as generateAsync, x as generateEffect, D as generateFromConfigAsync, B as generateFromConfigEffect, A as generatePathsAsync, z as generatePathsEffect, ah as generateSchemas, ai as generateSchemasFromFiles, ab as getAllControllers, af as getControllerMethodInfos, ag as getControllerMethodInfosEffect, ad as getMethodInfo, ae as getMethodInfoEffect, aa as getModules, at as getRequiredProperties, ao as isPropertyOptional, aE as loadAndResolveConfig, aC as loadConfig, aB as loadConfigFromFile, a7 as makeProjectContext, av as mergeValidationConstraints, aw as mergeValidationConstraintsEffect, aD as resolveConfig, aF as validateSpec } from './shared/nestjs-openapi.D0Osp4GW.mjs';
1
+ import { O as OpenApiSpec, S as SpecFileNotFoundError, a as SpecFileReadError, b as SpecFileParseError, M as MethodInfo, c as OpenApiPaths, d as OpenApiOperation, e as OpenApiPaths$1, G as GeneratedSchemas, f as OpenApiSchema, C as ConfigService, P as ProjectService, g as ModuleTraversalService, h as MethodExtractionService, i as SchemaService, V as ValidationService, j as OutputService } from './shared/nestjs-openapi.C1csrdEX.mjs';
2
+ export { a4 as AnalysisError, aJ as BrokenRef, aK as BrokenRefCategories, az as ClassValidationInfo, n as Config, a3 as ConfigError, X as ConfigLoadError, W as ConfigNotFoundError, Y as ConfigValidationError, o as ContactConfig, Z as DtoGlobResolutionError, U as EntryNotFoundError, E as GenerateOptions, s as GenerateOverrides, l as GenerateResult, a5 as GeneratorError, J as HttpMethod, I as InfoConfig, _ as InvalidMethodError, am as JsonSchema, L as LicenseConfig, $ as MissingGenericSchemaTempFileCleanupError, a0 as MissingGenericSchemaTempFileWriteError, ac as ModuleWithControllers, K as OpenApiGeneratorConfig, t as OpenApiOperation, u as OpenApiParameter, v as OpenApiRequestBody, w as OpenApiResponse, q as OutputFormat, F as ParameterLocation, a8 as ProjectContext, a2 as ProjectError, Q as ProjectInitError, a9 as ProjectOptions, a6 as ProjectServiceLive, ay as PropertyValidationInfo, a1 as PublicApiError, N as ResolvedConfig, R as ResolvedParameter, H as ReturnTypeInfo, ak as SchemaError, aj as SchemaGenerationError, al as SchemaGeneratorOptions, p as ServerConfig, T as TagConfig, r as TelemetryConfig, ax as ValidationConstraints, aI as ValidationResult, au as applyConstraintsToSchema, aG as categorizeBrokenRefs, m as defineConfig, as as extractClassConstraints, aq as extractClassValidationInfo, ar as extractClassValidationInfoEffect, an as extractPropertyConstraints, ap as extractPropertyValidationInfo, aA as findConfigFile, aH as formatValidationResult, k as generate, y as generateAsync, x as generateEffect, D as generateFromConfigAsync, B as generateFromConfigEffect, A as generatePathsAsync, z as generatePathsEffect, ah as generateSchemas, ai as generateSchemasFromFiles, ab as getAllControllers, af as getControllerMethodInfos, ag as getControllerMethodInfosEffect, ad as getMethodInfo, ae as getMethodInfoEffect, aa as getModules, at as getRequiredProperties, ao as isPropertyOptional, aE as loadAndResolveConfig, aC as loadConfig, aB as loadConfigFromFile, a7 as makeProjectContext, av as mergeValidationConstraints, aw as mergeValidationConstraintsEffect, aD as resolveConfig, aF as validateSpec } from './shared/nestjs-openapi.C1csrdEX.mjs';
3
3
  import { DynamicModule } from '@nestjs/common';
4
4
  import { Effect, Option, Layer } from 'effect';
5
5
  import { ClassDeclaration, MethodDeclaration, Decorator, Symbol, ObjectLiteralExpression, Expression } from 'ts-morph';
@@ -159,23 +159,27 @@ declare const getHttpDecorator: (method: MethodDeclaration) => Decorator | undef
159
159
 
160
160
  declare const transformMethod: (methodInfo: MethodInfo) => OpenApiPaths;
161
161
  declare const transformMethodEffect: (methodInfo: {
162
+ readonly security: readonly {
163
+ readonly scopes: readonly string[];
164
+ readonly schemeName: string;
165
+ }[];
162
166
  readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
163
167
  readonly path: string;
164
168
  readonly methodName: string;
165
169
  readonly controllerName: string;
166
170
  readonly controllerTags: readonly string[];
167
171
  readonly returnType: {
168
- readonly filePath: Option.Option<string>;
169
172
  readonly type: Option.Option<string>;
170
173
  readonly inline: Option.Option<string>;
171
174
  readonly container: Option.Option<"array">;
175
+ readonly filePath: Option.Option<string>;
172
176
  };
173
177
  readonly parameters: readonly {
174
178
  readonly name: string;
175
- readonly location: "path" | "query" | "header" | "cookie" | "body";
179
+ readonly description: Option.Option<string>;
180
+ readonly location: "query" | "header" | "cookie" | "path" | "body";
176
181
  readonly tsType: string;
177
182
  readonly required: boolean;
178
- readonly description: Option.Option<string>;
179
183
  }[];
180
184
  readonly decorators: readonly string[];
181
185
  readonly operation: {
@@ -185,18 +189,14 @@ declare const transformMethodEffect: (methodInfo: {
185
189
  readonly deprecated: Option.Option<boolean>;
186
190
  };
187
191
  readonly responses: readonly {
188
- readonly type: Option.Option<string>;
189
192
  readonly description: Option.Option<string>;
193
+ readonly type: Option.Option<string>;
190
194
  readonly statusCode: number;
191
195
  readonly isArray: boolean;
192
196
  }[];
193
197
  readonly httpCode: Option.Option<number>;
194
198
  readonly consumes: readonly string[];
195
199
  readonly produces: readonly string[];
196
- readonly security: readonly {
197
- readonly schemeName: string;
198
- readonly scopes: readonly string[];
199
- }[];
200
200
  }) => Effect.Effect<OpenApiPaths, never, never>;
201
201
  type MutableOpenApiPaths = {
202
202
  [path: string]: {
@@ -205,23 +205,27 @@ type MutableOpenApiPaths = {
205
205
  };
206
206
  declare const transformMethods: (methodInfos: readonly MethodInfo[]) => OpenApiPaths;
207
207
  declare const transformMethodsEffect: (methodInfos: readonly {
208
+ readonly security: readonly {
209
+ readonly scopes: readonly string[];
210
+ readonly schemeName: string;
211
+ }[];
208
212
  readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
209
213
  readonly path: string;
210
214
  readonly methodName: string;
211
215
  readonly controllerName: string;
212
216
  readonly controllerTags: readonly string[];
213
217
  readonly returnType: {
214
- readonly filePath: Option.Option<string>;
215
218
  readonly type: Option.Option<string>;
216
219
  readonly inline: Option.Option<string>;
217
220
  readonly container: Option.Option<"array">;
221
+ readonly filePath: Option.Option<string>;
218
222
  };
219
223
  readonly parameters: readonly {
220
224
  readonly name: string;
221
- readonly location: "path" | "query" | "header" | "cookie" | "body";
225
+ readonly description: Option.Option<string>;
226
+ readonly location: "query" | "header" | "cookie" | "path" | "body";
222
227
  readonly tsType: string;
223
228
  readonly required: boolean;
224
- readonly description: Option.Option<string>;
225
229
  }[];
226
230
  readonly decorators: readonly string[];
227
231
  readonly operation: {
@@ -231,18 +235,14 @@ declare const transformMethodsEffect: (methodInfos: readonly {
231
235
  readonly deprecated: Option.Option<boolean>;
232
236
  };
233
237
  readonly responses: readonly {
234
- readonly type: Option.Option<string>;
235
238
  readonly description: Option.Option<string>;
239
+ readonly type: Option.Option<string>;
236
240
  readonly statusCode: number;
237
241
  readonly isArray: boolean;
238
242
  }[];
239
243
  readonly httpCode: Option.Option<number>;
240
244
  readonly consumes: readonly string[];
241
245
  readonly produces: readonly string[];
242
- readonly security: readonly {
243
- readonly schemeName: string;
244
- readonly scopes: readonly string[];
245
- }[];
246
246
  }[]) => Effect.Effect<MutableOpenApiPaths, never, never>;
247
247
 
248
248
  /**
@@ -309,7 +309,7 @@ declare const normalizeStructureRefsEffect: (schemas: GeneratedSchemas) => Effec
309
309
  /**
310
310
  * Shared service dependency graph for generation pipelines.
311
311
  */
312
- declare const generatorServicesLayer: Layer.Layer<ValidationService | ConfigService | ModuleTraversalService | MethodExtractionService | SchemaService | OutputService | ProjectService, never, never>;
312
+ declare const generatorServicesLayer: Layer.Layer<ConfigService | ProjectService | ModuleTraversalService | MethodExtractionService | SchemaService | ValidationService | OutputService, never, never>;
313
313
 
314
314
  /** Handles aliased symbols (re-exports) */
315
315
  declare const resolveClassFromSymbol: (sym: Symbol) => Option.Option<ClassDeclaration>;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { O as OpenApiSpec, S as SpecFileNotFoundError, a as SpecFileReadError, b as SpecFileParseError, M as MethodInfo, c as OpenApiPaths, d as OpenApiOperation, e as OpenApiPaths$1, G as GeneratedSchemas, f as OpenApiSchema, V as ValidationService, C as ConfigService, g as ModuleTraversalService, h as MethodExtractionService, i as SchemaService, j as OutputService, P as ProjectService } from './shared/nestjs-openapi.D0Osp4GW.js';
2
- export { a4 as AnalysisError, aJ as BrokenRef, aK as BrokenRefCategories, az as ClassValidationInfo, n as Config, a3 as ConfigError, X as ConfigLoadError, W as ConfigNotFoundError, Y as ConfigValidationError, o as ContactConfig, Z as DtoGlobResolutionError, U as EntryNotFoundError, E as GenerateOptions, s as GenerateOverrides, l as GenerateResult, a5 as GeneratorError, J as HttpMethod, I as InfoConfig, _ as InvalidMethodError, am as JsonSchema, L as LicenseConfig, $ as MissingGenericSchemaTempFileCleanupError, a0 as MissingGenericSchemaTempFileWriteError, ac as ModuleWithControllers, K as OpenApiGeneratorConfig, t as OpenApiOperation, u as OpenApiParameter, v as OpenApiRequestBody, w as OpenApiResponse, q as OutputFormat, F as ParameterLocation, a8 as ProjectContext, a2 as ProjectError, Q as ProjectInitError, a9 as ProjectOptions, a6 as ProjectServiceLive, ay as PropertyValidationInfo, a1 as PublicApiError, N as ResolvedConfig, R as ResolvedParameter, H as ReturnTypeInfo, ak as SchemaError, aj as SchemaGenerationError, al as SchemaGeneratorOptions, p as ServerConfig, T as TagConfig, r as TelemetryConfig, ax as ValidationConstraints, aI as ValidationResult, au as applyConstraintsToSchema, aG as categorizeBrokenRefs, m as defineConfig, as as extractClassConstraints, aq as extractClassValidationInfo, ar as extractClassValidationInfoEffect, an as extractPropertyConstraints, ap as extractPropertyValidationInfo, aA as findConfigFile, aH as formatValidationResult, k as generate, y as generateAsync, x as generateEffect, D as generateFromConfigAsync, B as generateFromConfigEffect, A as generatePathsAsync, z as generatePathsEffect, ah as generateSchemas, ai as generateSchemasFromFiles, ab as getAllControllers, af as getControllerMethodInfos, ag as getControllerMethodInfosEffect, ad as getMethodInfo, ae as getMethodInfoEffect, aa as getModules, at as getRequiredProperties, ao as isPropertyOptional, aE as loadAndResolveConfig, aC as loadConfig, aB as loadConfigFromFile, a7 as makeProjectContext, av as mergeValidationConstraints, aw as mergeValidationConstraintsEffect, aD as resolveConfig, aF as validateSpec } from './shared/nestjs-openapi.D0Osp4GW.js';
1
+ import { O as OpenApiSpec, S as SpecFileNotFoundError, a as SpecFileReadError, b as SpecFileParseError, M as MethodInfo, c as OpenApiPaths, d as OpenApiOperation, e as OpenApiPaths$1, G as GeneratedSchemas, f as OpenApiSchema, C as ConfigService, P as ProjectService, g as ModuleTraversalService, h as MethodExtractionService, i as SchemaService, V as ValidationService, j as OutputService } from './shared/nestjs-openapi.C1csrdEX.js';
2
+ export { a4 as AnalysisError, aJ as BrokenRef, aK as BrokenRefCategories, az as ClassValidationInfo, n as Config, a3 as ConfigError, X as ConfigLoadError, W as ConfigNotFoundError, Y as ConfigValidationError, o as ContactConfig, Z as DtoGlobResolutionError, U as EntryNotFoundError, E as GenerateOptions, s as GenerateOverrides, l as GenerateResult, a5 as GeneratorError, J as HttpMethod, I as InfoConfig, _ as InvalidMethodError, am as JsonSchema, L as LicenseConfig, $ as MissingGenericSchemaTempFileCleanupError, a0 as MissingGenericSchemaTempFileWriteError, ac as ModuleWithControllers, K as OpenApiGeneratorConfig, t as OpenApiOperation, u as OpenApiParameter, v as OpenApiRequestBody, w as OpenApiResponse, q as OutputFormat, F as ParameterLocation, a8 as ProjectContext, a2 as ProjectError, Q as ProjectInitError, a9 as ProjectOptions, a6 as ProjectServiceLive, ay as PropertyValidationInfo, a1 as PublicApiError, N as ResolvedConfig, R as ResolvedParameter, H as ReturnTypeInfo, ak as SchemaError, aj as SchemaGenerationError, al as SchemaGeneratorOptions, p as ServerConfig, T as TagConfig, r as TelemetryConfig, ax as ValidationConstraints, aI as ValidationResult, au as applyConstraintsToSchema, aG as categorizeBrokenRefs, m as defineConfig, as as extractClassConstraints, aq as extractClassValidationInfo, ar as extractClassValidationInfoEffect, an as extractPropertyConstraints, ap as extractPropertyValidationInfo, aA as findConfigFile, aH as formatValidationResult, k as generate, y as generateAsync, x as generateEffect, D as generateFromConfigAsync, B as generateFromConfigEffect, A as generatePathsAsync, z as generatePathsEffect, ah as generateSchemas, ai as generateSchemasFromFiles, ab as getAllControllers, af as getControllerMethodInfos, ag as getControllerMethodInfosEffect, ad as getMethodInfo, ae as getMethodInfoEffect, aa as getModules, at as getRequiredProperties, ao as isPropertyOptional, aE as loadAndResolveConfig, aC as loadConfig, aB as loadConfigFromFile, a7 as makeProjectContext, av as mergeValidationConstraints, aw as mergeValidationConstraintsEffect, aD as resolveConfig, aF as validateSpec } from './shared/nestjs-openapi.C1csrdEX.js';
3
3
  import { DynamicModule } from '@nestjs/common';
4
4
  import { Effect, Option, Layer } from 'effect';
5
5
  import { ClassDeclaration, MethodDeclaration, Decorator, Symbol, ObjectLiteralExpression, Expression } from 'ts-morph';
@@ -159,23 +159,27 @@ declare const getHttpDecorator: (method: MethodDeclaration) => Decorator | undef
159
159
 
160
160
  declare const transformMethod: (methodInfo: MethodInfo) => OpenApiPaths;
161
161
  declare const transformMethodEffect: (methodInfo: {
162
+ readonly security: readonly {
163
+ readonly scopes: readonly string[];
164
+ readonly schemeName: string;
165
+ }[];
162
166
  readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
163
167
  readonly path: string;
164
168
  readonly methodName: string;
165
169
  readonly controllerName: string;
166
170
  readonly controllerTags: readonly string[];
167
171
  readonly returnType: {
168
- readonly filePath: Option.Option<string>;
169
172
  readonly type: Option.Option<string>;
170
173
  readonly inline: Option.Option<string>;
171
174
  readonly container: Option.Option<"array">;
175
+ readonly filePath: Option.Option<string>;
172
176
  };
173
177
  readonly parameters: readonly {
174
178
  readonly name: string;
175
- readonly location: "path" | "query" | "header" | "cookie" | "body";
179
+ readonly description: Option.Option<string>;
180
+ readonly location: "query" | "header" | "cookie" | "path" | "body";
176
181
  readonly tsType: string;
177
182
  readonly required: boolean;
178
- readonly description: Option.Option<string>;
179
183
  }[];
180
184
  readonly decorators: readonly string[];
181
185
  readonly operation: {
@@ -185,18 +189,14 @@ declare const transformMethodEffect: (methodInfo: {
185
189
  readonly deprecated: Option.Option<boolean>;
186
190
  };
187
191
  readonly responses: readonly {
188
- readonly type: Option.Option<string>;
189
192
  readonly description: Option.Option<string>;
193
+ readonly type: Option.Option<string>;
190
194
  readonly statusCode: number;
191
195
  readonly isArray: boolean;
192
196
  }[];
193
197
  readonly httpCode: Option.Option<number>;
194
198
  readonly consumes: readonly string[];
195
199
  readonly produces: readonly string[];
196
- readonly security: readonly {
197
- readonly schemeName: string;
198
- readonly scopes: readonly string[];
199
- }[];
200
200
  }) => Effect.Effect<OpenApiPaths, never, never>;
201
201
  type MutableOpenApiPaths = {
202
202
  [path: string]: {
@@ -205,23 +205,27 @@ type MutableOpenApiPaths = {
205
205
  };
206
206
  declare const transformMethods: (methodInfos: readonly MethodInfo[]) => OpenApiPaths;
207
207
  declare const transformMethodsEffect: (methodInfos: readonly {
208
+ readonly security: readonly {
209
+ readonly scopes: readonly string[];
210
+ readonly schemeName: string;
211
+ }[];
208
212
  readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
209
213
  readonly path: string;
210
214
  readonly methodName: string;
211
215
  readonly controllerName: string;
212
216
  readonly controllerTags: readonly string[];
213
217
  readonly returnType: {
214
- readonly filePath: Option.Option<string>;
215
218
  readonly type: Option.Option<string>;
216
219
  readonly inline: Option.Option<string>;
217
220
  readonly container: Option.Option<"array">;
221
+ readonly filePath: Option.Option<string>;
218
222
  };
219
223
  readonly parameters: readonly {
220
224
  readonly name: string;
221
- readonly location: "path" | "query" | "header" | "cookie" | "body";
225
+ readonly description: Option.Option<string>;
226
+ readonly location: "query" | "header" | "cookie" | "path" | "body";
222
227
  readonly tsType: string;
223
228
  readonly required: boolean;
224
- readonly description: Option.Option<string>;
225
229
  }[];
226
230
  readonly decorators: readonly string[];
227
231
  readonly operation: {
@@ -231,18 +235,14 @@ declare const transformMethodsEffect: (methodInfos: readonly {
231
235
  readonly deprecated: Option.Option<boolean>;
232
236
  };
233
237
  readonly responses: readonly {
234
- readonly type: Option.Option<string>;
235
238
  readonly description: Option.Option<string>;
239
+ readonly type: Option.Option<string>;
236
240
  readonly statusCode: number;
237
241
  readonly isArray: boolean;
238
242
  }[];
239
243
  readonly httpCode: Option.Option<number>;
240
244
  readonly consumes: readonly string[];
241
245
  readonly produces: readonly string[];
242
- readonly security: readonly {
243
- readonly schemeName: string;
244
- readonly scopes: readonly string[];
245
- }[];
246
246
  }[]) => Effect.Effect<MutableOpenApiPaths, never, never>;
247
247
 
248
248
  /**
@@ -309,7 +309,7 @@ declare const normalizeStructureRefsEffect: (schemas: GeneratedSchemas) => Effec
309
309
  /**
310
310
  * Shared service dependency graph for generation pipelines.
311
311
  */
312
- declare const generatorServicesLayer: Layer.Layer<ValidationService | ConfigService | ModuleTraversalService | MethodExtractionService | SchemaService | OutputService | ProjectService, never, never>;
312
+ declare const generatorServicesLayer: Layer.Layer<ConfigService | ProjectService | ModuleTraversalService | MethodExtractionService | SchemaService | ValidationService | OutputService, never, never>;
313
313
 
314
314
  /** Handles aliased symbols (re-exports) */
315
315
  declare const resolveClassFromSymbol: (sym: Symbol) => Option.Option<ClassDeclaration>;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SpecFileNotFoundError, a as SpecFileReadError, b as SpecFileParseError } from './shared/nestjs-openapi.P9V98nna.mjs';
2
- export { c as ConfigLoadError, C as ConfigNotFoundError, ae as ConfigService, e as ConfigValidationError, D as DtoGlobResolutionError, E as EntryNotFoundError, I as InvalidMethodError, B as MethodExtractionService, M as MissingGenericSchemaTempFileCleanupError, f as MissingGenericSchemaTempFileWriteError, n as ModuleTraversalService, ad as OutputService, P as ProjectInitError, i as ProjectService, j as ProjectServiceLive, h as PublicApiError, a0 as SchemaGenerationError, a1 as SchemaService, ac as ValidationService, a9 as applyConstraintsToSchema, av as categorizeBrokenRefs, d as defineConfig, a7 as extractClassConstraints, a5 as extractClassValidationInfo, a6 as extractClassValidationInfoEffect, a2 as extractPropertyConstraints, a4 as extractPropertyValidationInfo, V as filterInternalSchemas, W as filterInternalSchemasEffect, Q as filterSchemas, R as filterSchemasEffect, af as findConfigFile, aw as formatValidationResult, g as generate, _ as generateSchemas, $ as generateSchemasFromFiles, ak as generatorServicesLayer, l as getAllControllers, am as getArrayInitializer, z as getControllerMethodInfos, A as getControllerMethodInfosEffect, p as getControllerName, o as getControllerPrefix, t as getControllerTags, s as getDecoratorName, u as getHttpDecorator, r as getHttpMethods, x as getMethodInfo, y as getMethodInfoEffect, aq as getModuleDecoratorArg, at as getModuleMetadata, k as getModules, a8 as getRequiredProperties, an as getStringLiteralValue, ao as getSymbolFromIdentifier, v as isHttpDecorator, q as isHttpMethod, ap as isModuleClass, a3 as isPropertyOptional, aj as loadAndResolveConfig, ah as loadConfig, ag as loadConfigFromFile, m as makeProjectContext, N as mergeGeneratedSchemas, O as mergeGeneratedSchemasEffect, K as mergeSchemas, L as mergeSchemasEffect, aa as mergeValidationConstraints, ab as mergeValidationConstraintsEffect, w as normalizePath, T as normalizeSchemas, U as normalizeSchemasEffect, X as normalizeStructureRefs, Y as normalizeStructureRefsEffect, as as resolveArrayOfClasses, ar as resolveClassFromExpression, al as resolveClassFromSymbol, ai as resolveConfig, Z as toPascalCase, F as transformMethod, G as transformMethodEffect, H as transformMethods, J as transformMethodsEffect, au as validateSpec } from './shared/nestjs-openapi.P9V98nna.mjs';
1
+ import { S as SpecFileNotFoundError, a as SpecFileReadError, b as SpecFileParseError } from './shared/nestjs-openapi.0ft_UaiO.mjs';
2
+ export { c as ConfigLoadError, C as ConfigNotFoundError, ae as ConfigService, e as ConfigValidationError, D as DtoGlobResolutionError, E as EntryNotFoundError, I as InvalidMethodError, B as MethodExtractionService, M as MissingGenericSchemaTempFileCleanupError, f as MissingGenericSchemaTempFileWriteError, n as ModuleTraversalService, ad as OutputService, P as ProjectInitError, i as ProjectService, j as ProjectServiceLive, h as PublicApiError, a0 as SchemaGenerationError, a1 as SchemaService, ac as ValidationService, a9 as applyConstraintsToSchema, av as categorizeBrokenRefs, d as defineConfig, a7 as extractClassConstraints, a5 as extractClassValidationInfo, a6 as extractClassValidationInfoEffect, a2 as extractPropertyConstraints, a4 as extractPropertyValidationInfo, V as filterInternalSchemas, W as filterInternalSchemasEffect, Q as filterSchemas, R as filterSchemasEffect, af as findConfigFile, aw as formatValidationResult, g as generate, _ as generateSchemas, $ as generateSchemasFromFiles, ak as generatorServicesLayer, l as getAllControllers, am as getArrayInitializer, z as getControllerMethodInfos, A as getControllerMethodInfosEffect, p as getControllerName, o as getControllerPrefix, t as getControllerTags, s as getDecoratorName, u as getHttpDecorator, r as getHttpMethods, x as getMethodInfo, y as getMethodInfoEffect, aq as getModuleDecoratorArg, at as getModuleMetadata, k as getModules, a8 as getRequiredProperties, an as getStringLiteralValue, ao as getSymbolFromIdentifier, v as isHttpDecorator, q as isHttpMethod, ap as isModuleClass, a3 as isPropertyOptional, aj as loadAndResolveConfig, ah as loadConfig, ag as loadConfigFromFile, m as makeProjectContext, N as mergeGeneratedSchemas, O as mergeGeneratedSchemasEffect, K as mergeSchemas, L as mergeSchemasEffect, aa as mergeValidationConstraints, ab as mergeValidationConstraintsEffect, w as normalizePath, T as normalizeSchemas, U as normalizeSchemasEffect, X as normalizeStructureRefs, Y as normalizeStructureRefsEffect, as as resolveArrayOfClasses, ar as resolveClassFromExpression, al as resolveClassFromSymbol, ai as resolveConfig, Z as toPascalCase, F as transformMethod, G as transformMethodEffect, H as transformMethods, J as transformMethodsEffect, au as validateSpec } from './shared/nestjs-openapi.0ft_UaiO.mjs';
3
3
  import { readFileSync } from 'node:fs';
4
4
  import { fail } from 'node:assert';
5
5
  import { resolve } from 'node:path';
@@ -1,3 +1,3 @@
1
- export { E as GenerateOptions, x as generate, y as generateAsync, D as generateFromConfigAsync, B as generateFromConfigEffect, A as generatePathsAsync, z as generatePathsEffect } from './shared/nestjs-openapi.D0Osp4GW.mjs';
1
+ export { E as GenerateOptions, x as generate, y as generateAsync, D as generateFromConfigAsync, B as generateFromConfigEffect, A as generatePathsAsync, z as generatePathsEffect } from './shared/nestjs-openapi.C1csrdEX.mjs';
2
2
  import 'effect';
3
3
  import 'ts-morph';
@@ -1,3 +1,3 @@
1
- export { E as GenerateOptions, x as generate, y as generateAsync, D as generateFromConfigAsync, B as generateFromConfigEffect, A as generatePathsAsync, z as generatePathsEffect } from './shared/nestjs-openapi.D0Osp4GW.js';
1
+ export { E as GenerateOptions, x as generate, y as generateAsync, D as generateFromConfigAsync, B as generateFromConfigEffect, A as generatePathsAsync, z as generatePathsEffect } from './shared/nestjs-openapi.C1csrdEX.js';
2
2
  import 'effect';
3
3
  import 'ts-morph';
package/dist/internal.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Effect } from 'effect';
2
- import { i as ProjectService, n as ModuleTraversalService, B as MethodExtractionService, J as transformMethodsEffect, ax as generateEffect, ay as runProjectApiPromise, ak as generatorServicesLayer, az as runtimeLayerFor, aA as runGeneratorApiPromise } from './shared/nestjs-openapi.P9V98nna.mjs';
2
+ import { i as ProjectService, n as ModuleTraversalService, B as MethodExtractionService, J as transformMethodsEffect, ax as generateEffect, ay as runProjectApiPromise, ak as generatorServicesLayer, az as runtimeLayerFor, aA as runGeneratorApiPromise } from './shared/nestjs-openapi.0ft_UaiO.mjs';
3
3
  import 'node:fs';
4
4
  import 'node:path';
5
5
  import 'node:crypto';
@@ -1651,10 +1651,13 @@ const extractParameters = (method, options = {}) => {
1651
1651
  );
1652
1652
  return result;
1653
1653
  };
1654
- const extractDecoratorNames = (method) => {
1654
+ const extractDecoratorNames = (controller, method) => {
1655
1655
  const cached = decoratorNamesCache.get(method);
1656
1656
  if (cached !== void 0) return cached;
1657
- const result = method.getDecorators().map((d) => getDecoratorName$1(d));
1657
+ const result = [
1658
+ ...controller.getDecorators().map((d) => getDecoratorName$1(d)),
1659
+ ...method.getDecorators().map((d) => getDecoratorName$1(d))
1660
+ ];
1658
1661
  decoratorNamesCache.set(method, result);
1659
1662
  return result;
1660
1663
  };
@@ -1963,7 +1966,7 @@ const getMethodInfoInternal = (controller, method, options = {}) => {
1963
1966
  controllerTags: [...getControllerTags(controller)],
1964
1967
  returnType: getReturnTypeInfo(method),
1965
1968
  parameters: extractParameters(method, options),
1966
- decorators: [...extractDecoratorNames(method)],
1969
+ decorators: [...extractDecoratorNames(controller, method)],
1967
1970
  operation: extractApiOperationMetadata(method),
1968
1971
  responses: [...extractApiResponses(method)],
1969
1972
  httpCode: extractHttpCode(method),
@@ -3275,7 +3278,7 @@ Schema.Struct({
3275
3278
  controllerTags: Schema.Array(Schema.String),
3276
3279
  returnType: ReturnTypeInfo,
3277
3280
  parameters: Schema.Array(ResolvedParameter),
3278
- /** All decorator names on the method (for filtering) */
3281
+ /** All decorator names on the controller and method (for filtering) */
3279
3282
  decorators: Schema.Array(Schema.String),
3280
3283
  /** Metadata from @ApiOperation decorator */
3281
3284
  operation: OperationMetadata,