nestjs-openapi 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.CU_zMKfF.mjs';
4
+ import { ay as generateEffect, al as generatorServicesLayer, aA as runtimeLayerFor, ax as formatValidationResult } from './shared/nestjs-openapi.zDlSJGHz.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,7 +1,7 @@
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, g as SchemaService, h as OutputService, C as ConfigService, i as ModuleTraversalService, j as MethodExtractionService, V as ValidationService, P as ProjectService } from './shared/nestjs-openapi.CDtSgIYg.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.CDtSgIYg.mjs';
1
+ import { O as OpenApiSpec, S as SpecFileNotFoundError, a as SpecFileReadError, b as SpecFileParseError, c as OpenApiPaths, G as GeneratedSchemas, d as OpenApiSchema, C as ConfigService, P as ProjectService, M as ModuleTraversalService, e as MethodExtractionService, f as SchemaService, T as TransformerService, V as ValidationMapperService, g as OutputService } from './shared/nestjs-openapi.-SW6E7E-.mjs';
2
+ export { a3 as AnalysisError, aM as BrokenRef, aN as BrokenRefCategories, aC as ClassValidationInfo, k as Config, a2 as ConfigError, W as ConfigLoadError, U as ConfigNotFoundError, X as ConfigValidationError, l as ContactConfig, Y as DtoGlobResolutionError, Q as EntryNotFoundError, B as GenerateOptions, q as GenerateOverrides, i as GenerateResult, a4 as GeneratorError, H as HttpMethod, I as InfoConfig, Z as InvalidMethodError, ap as JsonSchema, L as LicenseConfig, F as MethodInfo, _ as MissingGenericSchemaTempFileCleanupError, $ as MissingGenericSchemaTempFileWriteError, ab as ModuleWithControllers, J as OpenApiGeneratorConfig, r as OpenApiOperation, s as OpenApiParameter, t as OpenApiRequestBody, u as OpenApiResponse, o as OutputFormat, D as ParameterLocation, a7 as ProjectContext, a1 as ProjectError, N as ProjectInitError, a8 as ProjectOptions, a5 as ProjectServiceLive, aB as PropertyValidationInfo, a0 as PublicApiError, K as ResolvedConfig, R as ResolvedParameter, E as ReturnTypeInfo, an as SchemaError, am as SchemaGenerationError, ao as SchemaGeneratorOptions, m as ServerConfig, n as TagConfig, p as TelemetryConfig, aA as ValidationConstraints, aL as ValidationResult, ax as applyConstraintsToSchema, aJ as categorizeBrokenRefs, j as defineConfig, av as extractClassConstraints, at as extractClassValidationInfo, au as extractClassValidationInfoEffect, aq as extractPropertyConstraints, as as extractPropertyValidationInfo, aD as findConfigFile, aK as formatValidationResult, h as generate, w as generateAsync, v as generateEffect, A as generateFromConfigAsync, z as generateFromConfigEffect, y as generatePathsAsync, x as generatePathsEffect, ak as generateSchemas, al as generateSchemasFromFiles, aa as getAllControllers, ae as getControllerMethodInfos, af as getControllerMethodInfosEffect, ac as getMethodInfo, ad as getMethodInfoEffect, a9 as getModules, aw as getRequiredProperties, ar as isPropertyOptional, aH as loadAndResolveConfig, aF as loadConfig, aE as loadConfigFromFile, a6 as makeProjectContext, ay as mergeValidationConstraints, az as mergeValidationConstraintsEffect, aG as resolveConfig, ag as transformMethod, ah as transformMethodEffect, ai as transformMethods, aj as transformMethodsEffect, aI as validateSpec } from './shared/nestjs-openapi.-SW6E7E-.mjs';
3
3
  import { DynamicModule } from '@nestjs/common';
4
- import { Effect, Option, Layer } from 'effect';
4
+ import { Effect, Layer, Option } from 'effect';
5
5
  import { ClassDeclaration, MethodDeclaration, Decorator, Symbol, ObjectLiteralExpression, Expression } from 'ts-morph';
6
6
 
7
7
  /**
@@ -225,94 +225,6 @@ declare const getControllerTags: (controller: ClassDeclaration) => readonly stri
225
225
  declare const isHttpDecorator: (decorator: Decorator) => boolean;
226
226
  declare const getHttpDecorator: (method: MethodDeclaration) => Decorator | undefined;
227
227
 
228
- declare const transformMethod: (methodInfo: MethodInfo) => OpenApiPaths;
229
- declare const transformMethodEffect: (methodInfo: {
230
- readonly path: string;
231
- readonly controllerName: string;
232
- readonly methodName: string;
233
- readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
234
- readonly controllerTags: readonly string[];
235
- readonly returnType: {
236
- readonly filePath: Option.Option<string>;
237
- readonly type: Option.Option<string>;
238
- readonly inline: Option.Option<string>;
239
- readonly container: Option.Option<"array">;
240
- };
241
- readonly parameters: readonly {
242
- readonly name: string;
243
- readonly location: "path" | "query" | "header" | "cookie" | "body";
244
- readonly tsType: string;
245
- readonly required: boolean;
246
- readonly description: Option.Option<string>;
247
- }[];
248
- readonly decorators: readonly string[];
249
- readonly operation: {
250
- readonly description: Option.Option<string>;
251
- readonly summary: Option.Option<string>;
252
- readonly operationId: Option.Option<string>;
253
- readonly deprecated: Option.Option<boolean>;
254
- };
255
- readonly responses: readonly {
256
- readonly description: Option.Option<string>;
257
- readonly type: Option.Option<string>;
258
- readonly statusCode: number;
259
- readonly isArray: boolean;
260
- }[];
261
- readonly httpCode: Option.Option<number>;
262
- readonly consumes: readonly string[];
263
- readonly produces: readonly string[];
264
- readonly security: readonly {
265
- readonly schemeName: string;
266
- readonly scopes: readonly string[];
267
- }[];
268
- }) => Effect.Effect<OpenApiPaths, never, never>;
269
- type MutableOpenApiPaths = {
270
- [path: string]: {
271
- [method: string]: OpenApiOperation;
272
- };
273
- };
274
- declare const transformMethods: (methodInfos: readonly MethodInfo[]) => OpenApiPaths;
275
- declare const transformMethodsEffect: (methodInfos: readonly {
276
- readonly path: string;
277
- readonly controllerName: string;
278
- readonly methodName: string;
279
- readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
280
- readonly controllerTags: readonly string[];
281
- readonly returnType: {
282
- readonly filePath: Option.Option<string>;
283
- readonly type: Option.Option<string>;
284
- readonly inline: Option.Option<string>;
285
- readonly container: Option.Option<"array">;
286
- };
287
- readonly parameters: readonly {
288
- readonly name: string;
289
- readonly location: "path" | "query" | "header" | "cookie" | "body";
290
- readonly tsType: string;
291
- readonly required: boolean;
292
- readonly description: Option.Option<string>;
293
- }[];
294
- readonly decorators: readonly string[];
295
- readonly operation: {
296
- readonly description: Option.Option<string>;
297
- readonly summary: Option.Option<string>;
298
- readonly operationId: Option.Option<string>;
299
- readonly deprecated: Option.Option<boolean>;
300
- };
301
- readonly responses: readonly {
302
- readonly description: Option.Option<string>;
303
- readonly type: Option.Option<string>;
304
- readonly statusCode: number;
305
- readonly isArray: boolean;
306
- }[];
307
- readonly httpCode: Option.Option<number>;
308
- readonly consumes: readonly string[];
309
- readonly produces: readonly string[];
310
- readonly security: readonly {
311
- readonly schemeName: string;
312
- readonly scopes: readonly string[];
313
- }[];
314
- }[]) => Effect.Effect<MutableOpenApiPaths, never, never>;
315
-
316
228
  /**
317
229
  * Schema Merger - Combines DTO schemas with path-referenced schemas
318
230
  *
@@ -325,12 +237,12 @@ declare const transformMethodsEffect: (methodInfos: readonly {
325
237
  */
326
238
  interface MergedResult {
327
239
  /** The paths with updated $ref values */
328
- readonly paths: OpenApiPaths$1;
240
+ readonly paths: OpenApiPaths;
329
241
  /** All schemas to include in components/schemas */
330
242
  readonly schemas: Record<string, OpenApiSchema>;
331
243
  }
332
- declare const mergeSchemas: (paths: OpenApiPaths$1, generatedSchemas: GeneratedSchemas) => MergedResult;
333
- declare const mergeSchemasEffect: (paths: OpenApiPaths$1, generatedSchemas: GeneratedSchemas) => Effect.Effect<MergedResult, never, never>;
244
+ declare const mergeSchemas: (paths: OpenApiPaths, generatedSchemas: GeneratedSchemas) => MergedResult;
245
+ declare const mergeSchemasEffect: (paths: OpenApiPaths, generatedSchemas: GeneratedSchemas) => Effect.Effect<MergedResult, never, never>;
334
246
  declare const mergeGeneratedSchemas: (...schemas: GeneratedSchemas[]) => GeneratedSchemas;
335
247
  declare const mergeGeneratedSchemasEffect: (...args: GeneratedSchemas[]) => Effect.Effect<GeneratedSchemas, never, never>;
336
248
  declare const filterSchemas: (schemas: GeneratedSchemas, include?: readonly string[], exclude?: readonly string[]) => GeneratedSchemas;
@@ -377,7 +289,7 @@ declare const normalizeStructureRefsEffect: (schemas: GeneratedSchemas) => Effec
377
289
  /**
378
290
  * Shared service dependency graph for generation pipelines.
379
291
  */
380
- declare const generatorServicesLayer: Layer.Layer<SchemaService | OutputService | ConfigService | ModuleTraversalService | MethodExtractionService | ValidationService | ProjectService, never, never>;
292
+ declare const generatorServicesLayer: Layer.Layer<ConfigService | ProjectService | ModuleTraversalService | MethodExtractionService | SchemaService | TransformerService | ValidationMapperService | OutputService, never, never>;
381
293
 
382
294
  /** Handles aliased symbols (re-exports) */
383
295
  declare const resolveClassFromSymbol: (sym: Symbol) => Option.Option<ClassDeclaration>;
@@ -396,5 +308,5 @@ interface ModuleMetadata {
396
308
  }
397
309
  declare const getModuleMetadata: (mod: ClassDeclaration) => ModuleMetadata;
398
310
 
399
- export { ConfigService, GeneratedSchemas, MethodExtractionService, MethodInfo, ModuleTraversalService, OPENAPI_MODULE_OPTIONS, OPENAPI_SPEC, OpenApiModule, OpenApiPaths$1 as OpenApiPaths, OpenApiSchema, OpenApiSpec, OutputService, ProjectService, SchemaService, SpecFileNotFoundError, SpecFileParseError, SpecFileReadError, ValidationService, filterInternalSchemas, filterInternalSchemasEffect, filterSchemas, filterSchemasEffect, generateSwaggerUiHtml, generatorServicesLayer, getArrayInitializer, getControllerName, getControllerPrefix, getControllerTags, getDecoratorName, getHttpDecorator, getHttpMethods, getModuleDecoratorArg, getModuleMetadata, getStringLiteralValue, getSymbolFromIdentifier, isHttpDecorator, isHttpMethod, isModuleClass, loadSpecFile, loadSpecFileEffect, mergeGeneratedSchemas, mergeGeneratedSchemasEffect, mergeSchemas, mergeSchemasEffect, normalizePath, normalizeSchemas, normalizeSchemasEffect, normalizeStructureRefs, normalizeStructureRefsEffect, resolveArrayOfClasses, resolveClassFromExpression, resolveClassFromSymbol, resolveOptions, toPascalCase, transformMethod, transformMethodEffect, transformMethods, transformMethodsEffect };
311
+ export { ConfigService, GeneratedSchemas, MethodExtractionService, ModuleTraversalService, OPENAPI_MODULE_OPTIONS, OPENAPI_SPEC, OpenApiModule, OpenApiPaths, OpenApiSchema, OpenApiSpec, OutputService, ProjectService, SchemaService, SpecFileNotFoundError, SpecFileParseError, SpecFileReadError, TransformerService, ValidationMapperService, ValidationMapperService as ValidationService, filterInternalSchemas, filterInternalSchemasEffect, filterSchemas, filterSchemasEffect, generateSwaggerUiHtml, generatorServicesLayer, getArrayInitializer, getControllerName, getControllerPrefix, getControllerTags, getDecoratorName, getHttpDecorator, getHttpMethods, getModuleDecoratorArg, getModuleMetadata, getStringLiteralValue, getSymbolFromIdentifier, isHttpDecorator, isHttpMethod, isModuleClass, loadSpecFile, loadSpecFileEffect, mergeGeneratedSchemas, mergeGeneratedSchemasEffect, mergeSchemas, mergeSchemasEffect, normalizePath, normalizeSchemas, normalizeSchemasEffect, normalizeStructureRefs, normalizeStructureRefsEffect, resolveArrayOfClasses, resolveClassFromExpression, resolveClassFromSymbol, resolveOptions, toPascalCase };
400
312
  export type { LoadSpecFileOptions, MergedResult, ModuleMetadata, NormalizerOptions, OpenApiDocumentFileSource, OpenApiDocumentSource, OpenApiHttpApplication, OpenApiModuleOptions, OpenApiSetupOptions, ResolvedOpenApiModuleOptions, SwaggerOptions };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
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, g as SchemaService, h as OutputService, C as ConfigService, i as ModuleTraversalService, j as MethodExtractionService, V as ValidationService, P as ProjectService } from './shared/nestjs-openapi.CDtSgIYg.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.CDtSgIYg.js';
1
+ import { O as OpenApiSpec, S as SpecFileNotFoundError, a as SpecFileReadError, b as SpecFileParseError, c as OpenApiPaths, G as GeneratedSchemas, d as OpenApiSchema, C as ConfigService, P as ProjectService, M as ModuleTraversalService, e as MethodExtractionService, f as SchemaService, T as TransformerService, V as ValidationMapperService, g as OutputService } from './shared/nestjs-openapi.-SW6E7E-.js';
2
+ export { a3 as AnalysisError, aM as BrokenRef, aN as BrokenRefCategories, aC as ClassValidationInfo, k as Config, a2 as ConfigError, W as ConfigLoadError, U as ConfigNotFoundError, X as ConfigValidationError, l as ContactConfig, Y as DtoGlobResolutionError, Q as EntryNotFoundError, B as GenerateOptions, q as GenerateOverrides, i as GenerateResult, a4 as GeneratorError, H as HttpMethod, I as InfoConfig, Z as InvalidMethodError, ap as JsonSchema, L as LicenseConfig, F as MethodInfo, _ as MissingGenericSchemaTempFileCleanupError, $ as MissingGenericSchemaTempFileWriteError, ab as ModuleWithControllers, J as OpenApiGeneratorConfig, r as OpenApiOperation, s as OpenApiParameter, t as OpenApiRequestBody, u as OpenApiResponse, o as OutputFormat, D as ParameterLocation, a7 as ProjectContext, a1 as ProjectError, N as ProjectInitError, a8 as ProjectOptions, a5 as ProjectServiceLive, aB as PropertyValidationInfo, a0 as PublicApiError, K as ResolvedConfig, R as ResolvedParameter, E as ReturnTypeInfo, an as SchemaError, am as SchemaGenerationError, ao as SchemaGeneratorOptions, m as ServerConfig, n as TagConfig, p as TelemetryConfig, aA as ValidationConstraints, aL as ValidationResult, ax as applyConstraintsToSchema, aJ as categorizeBrokenRefs, j as defineConfig, av as extractClassConstraints, at as extractClassValidationInfo, au as extractClassValidationInfoEffect, aq as extractPropertyConstraints, as as extractPropertyValidationInfo, aD as findConfigFile, aK as formatValidationResult, h as generate, w as generateAsync, v as generateEffect, A as generateFromConfigAsync, z as generateFromConfigEffect, y as generatePathsAsync, x as generatePathsEffect, ak as generateSchemas, al as generateSchemasFromFiles, aa as getAllControllers, ae as getControllerMethodInfos, af as getControllerMethodInfosEffect, ac as getMethodInfo, ad as getMethodInfoEffect, a9 as getModules, aw as getRequiredProperties, ar as isPropertyOptional, aH as loadAndResolveConfig, aF as loadConfig, aE as loadConfigFromFile, a6 as makeProjectContext, ay as mergeValidationConstraints, az as mergeValidationConstraintsEffect, aG as resolveConfig, ag as transformMethod, ah as transformMethodEffect, ai as transformMethods, aj as transformMethodsEffect, aI as validateSpec } from './shared/nestjs-openapi.-SW6E7E-.js';
3
3
  import { DynamicModule } from '@nestjs/common';
4
- import { Effect, Option, Layer } from 'effect';
4
+ import { Effect, Layer, Option } from 'effect';
5
5
  import { ClassDeclaration, MethodDeclaration, Decorator, Symbol, ObjectLiteralExpression, Expression } from 'ts-morph';
6
6
 
7
7
  /**
@@ -225,94 +225,6 @@ declare const getControllerTags: (controller: ClassDeclaration) => readonly stri
225
225
  declare const isHttpDecorator: (decorator: Decorator) => boolean;
226
226
  declare const getHttpDecorator: (method: MethodDeclaration) => Decorator | undefined;
227
227
 
228
- declare const transformMethod: (methodInfo: MethodInfo) => OpenApiPaths;
229
- declare const transformMethodEffect: (methodInfo: {
230
- readonly path: string;
231
- readonly controllerName: string;
232
- readonly methodName: string;
233
- readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
234
- readonly controllerTags: readonly string[];
235
- readonly returnType: {
236
- readonly filePath: Option.Option<string>;
237
- readonly type: Option.Option<string>;
238
- readonly inline: Option.Option<string>;
239
- readonly container: Option.Option<"array">;
240
- };
241
- readonly parameters: readonly {
242
- readonly name: string;
243
- readonly location: "path" | "query" | "header" | "cookie" | "body";
244
- readonly tsType: string;
245
- readonly required: boolean;
246
- readonly description: Option.Option<string>;
247
- }[];
248
- readonly decorators: readonly string[];
249
- readonly operation: {
250
- readonly description: Option.Option<string>;
251
- readonly summary: Option.Option<string>;
252
- readonly operationId: Option.Option<string>;
253
- readonly deprecated: Option.Option<boolean>;
254
- };
255
- readonly responses: readonly {
256
- readonly description: Option.Option<string>;
257
- readonly type: Option.Option<string>;
258
- readonly statusCode: number;
259
- readonly isArray: boolean;
260
- }[];
261
- readonly httpCode: Option.Option<number>;
262
- readonly consumes: readonly string[];
263
- readonly produces: readonly string[];
264
- readonly security: readonly {
265
- readonly schemeName: string;
266
- readonly scopes: readonly string[];
267
- }[];
268
- }) => Effect.Effect<OpenApiPaths, never, never>;
269
- type MutableOpenApiPaths = {
270
- [path: string]: {
271
- [method: string]: OpenApiOperation;
272
- };
273
- };
274
- declare const transformMethods: (methodInfos: readonly MethodInfo[]) => OpenApiPaths;
275
- declare const transformMethodsEffect: (methodInfos: readonly {
276
- readonly path: string;
277
- readonly controllerName: string;
278
- readonly methodName: string;
279
- readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
280
- readonly controllerTags: readonly string[];
281
- readonly returnType: {
282
- readonly filePath: Option.Option<string>;
283
- readonly type: Option.Option<string>;
284
- readonly inline: Option.Option<string>;
285
- readonly container: Option.Option<"array">;
286
- };
287
- readonly parameters: readonly {
288
- readonly name: string;
289
- readonly location: "path" | "query" | "header" | "cookie" | "body";
290
- readonly tsType: string;
291
- readonly required: boolean;
292
- readonly description: Option.Option<string>;
293
- }[];
294
- readonly decorators: readonly string[];
295
- readonly operation: {
296
- readonly description: Option.Option<string>;
297
- readonly summary: Option.Option<string>;
298
- readonly operationId: Option.Option<string>;
299
- readonly deprecated: Option.Option<boolean>;
300
- };
301
- readonly responses: readonly {
302
- readonly description: Option.Option<string>;
303
- readonly type: Option.Option<string>;
304
- readonly statusCode: number;
305
- readonly isArray: boolean;
306
- }[];
307
- readonly httpCode: Option.Option<number>;
308
- readonly consumes: readonly string[];
309
- readonly produces: readonly string[];
310
- readonly security: readonly {
311
- readonly schemeName: string;
312
- readonly scopes: readonly string[];
313
- }[];
314
- }[]) => Effect.Effect<MutableOpenApiPaths, never, never>;
315
-
316
228
  /**
317
229
  * Schema Merger - Combines DTO schemas with path-referenced schemas
318
230
  *
@@ -325,12 +237,12 @@ declare const transformMethodsEffect: (methodInfos: readonly {
325
237
  */
326
238
  interface MergedResult {
327
239
  /** The paths with updated $ref values */
328
- readonly paths: OpenApiPaths$1;
240
+ readonly paths: OpenApiPaths;
329
241
  /** All schemas to include in components/schemas */
330
242
  readonly schemas: Record<string, OpenApiSchema>;
331
243
  }
332
- declare const mergeSchemas: (paths: OpenApiPaths$1, generatedSchemas: GeneratedSchemas) => MergedResult;
333
- declare const mergeSchemasEffect: (paths: OpenApiPaths$1, generatedSchemas: GeneratedSchemas) => Effect.Effect<MergedResult, never, never>;
244
+ declare const mergeSchemas: (paths: OpenApiPaths, generatedSchemas: GeneratedSchemas) => MergedResult;
245
+ declare const mergeSchemasEffect: (paths: OpenApiPaths, generatedSchemas: GeneratedSchemas) => Effect.Effect<MergedResult, never, never>;
334
246
  declare const mergeGeneratedSchemas: (...schemas: GeneratedSchemas[]) => GeneratedSchemas;
335
247
  declare const mergeGeneratedSchemasEffect: (...args: GeneratedSchemas[]) => Effect.Effect<GeneratedSchemas, never, never>;
336
248
  declare const filterSchemas: (schemas: GeneratedSchemas, include?: readonly string[], exclude?: readonly string[]) => GeneratedSchemas;
@@ -377,7 +289,7 @@ declare const normalizeStructureRefsEffect: (schemas: GeneratedSchemas) => Effec
377
289
  /**
378
290
  * Shared service dependency graph for generation pipelines.
379
291
  */
380
- declare const generatorServicesLayer: Layer.Layer<SchemaService | OutputService | ConfigService | ModuleTraversalService | MethodExtractionService | ValidationService | ProjectService, never, never>;
292
+ declare const generatorServicesLayer: Layer.Layer<ConfigService | ProjectService | ModuleTraversalService | MethodExtractionService | SchemaService | TransformerService | ValidationMapperService | OutputService, never, never>;
381
293
 
382
294
  /** Handles aliased symbols (re-exports) */
383
295
  declare const resolveClassFromSymbol: (sym: Symbol) => Option.Option<ClassDeclaration>;
@@ -396,5 +308,5 @@ interface ModuleMetadata {
396
308
  }
397
309
  declare const getModuleMetadata: (mod: ClassDeclaration) => ModuleMetadata;
398
310
 
399
- export { ConfigService, GeneratedSchemas, MethodExtractionService, MethodInfo, ModuleTraversalService, OPENAPI_MODULE_OPTIONS, OPENAPI_SPEC, OpenApiModule, OpenApiPaths$1 as OpenApiPaths, OpenApiSchema, OpenApiSpec, OutputService, ProjectService, SchemaService, SpecFileNotFoundError, SpecFileParseError, SpecFileReadError, ValidationService, filterInternalSchemas, filterInternalSchemasEffect, filterSchemas, filterSchemasEffect, generateSwaggerUiHtml, generatorServicesLayer, getArrayInitializer, getControllerName, getControllerPrefix, getControllerTags, getDecoratorName, getHttpDecorator, getHttpMethods, getModuleDecoratorArg, getModuleMetadata, getStringLiteralValue, getSymbolFromIdentifier, isHttpDecorator, isHttpMethod, isModuleClass, loadSpecFile, loadSpecFileEffect, mergeGeneratedSchemas, mergeGeneratedSchemasEffect, mergeSchemas, mergeSchemasEffect, normalizePath, normalizeSchemas, normalizeSchemasEffect, normalizeStructureRefs, normalizeStructureRefsEffect, resolveArrayOfClasses, resolveClassFromExpression, resolveClassFromSymbol, resolveOptions, toPascalCase, transformMethod, transformMethodEffect, transformMethods, transformMethodsEffect };
311
+ export { ConfigService, GeneratedSchemas, MethodExtractionService, ModuleTraversalService, OPENAPI_MODULE_OPTIONS, OPENAPI_SPEC, OpenApiModule, OpenApiPaths, OpenApiSchema, OpenApiSpec, OutputService, ProjectService, SchemaService, SpecFileNotFoundError, SpecFileParseError, SpecFileReadError, TransformerService, ValidationMapperService, ValidationMapperService as ValidationService, filterInternalSchemas, filterInternalSchemasEffect, filterSchemas, filterSchemasEffect, generateSwaggerUiHtml, generatorServicesLayer, getArrayInitializer, getControllerName, getControllerPrefix, getControllerTags, getDecoratorName, getHttpDecorator, getHttpMethods, getModuleDecoratorArg, getModuleMetadata, getStringLiteralValue, getSymbolFromIdentifier, isHttpDecorator, isHttpMethod, isModuleClass, loadSpecFile, loadSpecFileEffect, mergeGeneratedSchemas, mergeGeneratedSchemasEffect, mergeSchemas, mergeSchemasEffect, normalizePath, normalizeSchemas, normalizeSchemasEffect, normalizeStructureRefs, normalizeStructureRefsEffect, resolveArrayOfClasses, resolveClassFromExpression, resolveClassFromSymbol, resolveOptions, toPascalCase };
400
312
  export type { LoadSpecFileOptions, MergedResult, ModuleMetadata, NormalizerOptions, OpenApiDocumentFileSource, OpenApiDocumentSource, OpenApiHttpApplication, OpenApiModuleOptions, OpenApiSetupOptions, ResolvedOpenApiModuleOptions, SwaggerOptions };
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SpecFileNotFoundError, a as SpecFileParseError, b as SpecFileReadError } from './shared/nestjs-openapi.CU_zMKfF.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.CU_zMKfF.mjs';
1
+ import { S as SpecFileNotFoundError, a as SpecFileParseError, b as SpecFileReadError } from './shared/nestjs-openapi.zDlSJGHz.mjs';
2
+ export { c as ConfigLoadError, C as ConfigNotFoundError, af 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, ae as OutputService, P as ProjectInitError, i as ProjectService, j as ProjectServiceLive, h as PublicApiError, a1 as SchemaGenerationError, a2 as SchemaService, T as TransformerService, a3 as ValidationMapperService, a3 as ValidationService, ab as applyConstraintsToSchema, aw as categorizeBrokenRefs, d as defineConfig, a9 as extractClassConstraints, a7 as extractClassValidationInfo, a8 as extractClassValidationInfoEffect, a4 as extractPropertyConstraints, a6 as extractPropertyValidationInfo, W as filterInternalSchemas, X as filterInternalSchemasEffect, Q as filterSchemas, R as filterSchemasEffect, ag as findConfigFile, ax as formatValidationResult, g as generate, $ as generateSchemas, a0 as generateSchemasFromFiles, al as generatorServicesLayer, l as getAllControllers, an 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, ar as getModuleDecoratorArg, au as getModuleMetadata, k as getModules, aa as getRequiredProperties, ao as getStringLiteralValue, ap as getSymbolFromIdentifier, v as isHttpDecorator, q as isHttpMethod, aq as isModuleClass, a5 as isPropertyOptional, ak as loadAndResolveConfig, ai as loadConfig, ah as loadConfigFromFile, m as makeProjectContext, N as mergeGeneratedSchemas, O as mergeGeneratedSchemasEffect, K as mergeSchemas, L as mergeSchemasEffect, ac as mergeValidationConstraints, ad as mergeValidationConstraintsEffect, w as normalizePath, U as normalizeSchemas, V as normalizeSchemasEffect, Y as normalizeStructureRefs, Z as normalizeStructureRefsEffect, at as resolveArrayOfClasses, as as resolveClassFromExpression, am as resolveClassFromSymbol, aj as resolveConfig, _ as toPascalCase, F as transformMethod, G as transformMethodEffect, H as transformMethods, J as transformMethodsEffect, av as validateSpec } from './shared/nestjs-openapi.zDlSJGHz.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.CDtSgIYg.mjs';
1
+ export { B as GenerateOptions, v as generate, w as generateAsync, A as generateFromConfigAsync, z as generateFromConfigEffect, y as generatePathsAsync, x as generatePathsEffect } from './shared/nestjs-openapi.-SW6E7E-.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.CDtSgIYg.js';
1
+ export { B as GenerateOptions, v as generate, w as generateAsync, A as generateFromConfigAsync, z as generateFromConfigEffect, y as generatePathsAsync, x as generatePathsEffect } from './shared/nestjs-openapi.-SW6E7E-.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.CU_zMKfF.mjs';
2
+ import { i as ProjectService, n as ModuleTraversalService, B as MethodExtractionService, T as TransformerService, ay as generateEffect, az as runProjectApiPromise, al as generatorServicesLayer, aA as runtimeLayerFor, aB as runGeneratorApiPromise } from './shared/nestjs-openapi.zDlSJGHz.mjs';
3
3
  import 'node:fs';
4
4
  import 'node:path';
5
5
  import 'node:crypto';
@@ -30,7 +30,8 @@ const generatePathsEffect = Effect.fn("Internal.generatePathsEffect")(
30
30
  methods: flatMethodInfos.length
31
31
  })
32
32
  );
33
- const paths = yield* transformMethodsEffect(flatMethodInfos);
33
+ const transformer = yield* TransformerService;
34
+ const paths = yield* transformer.transformMethods(flatMethodInfos);
34
35
  yield* Effect.logInfo("OpenAPI generation complete").pipe(
35
36
  Effect.annotateLogs({ paths: Object.keys(paths).length })
36
37
  );