nestjs-openapi 0.3.0 → 0.3.2

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.Nd-wGr8A.mjs';
4
+ import { ax as generateEffect, ak as generatorServicesLayer, az as runtimeLayerFor, aw as formatValidationResult } from './shared/nestjs-openapi.9yw4zAwS.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, P as ProjectService, g as ModuleTraversalService, C as ConfigService, h as SchemaService, V as ValidationService, i as MethodExtractionService, j as OutputService } from './shared/nestjs-openapi.CAanamW0.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.CAanamW0.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, g as OutputService, h as SchemaService, i as MethodExtractionService, V as ValidationService, P as ProjectService, j as ModuleTraversalService } from './shared/nestjs-openapi.C1wj3WtU.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.C1wj3WtU.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';
@@ -237,14 +237,14 @@ declare const transformMethodEffect: (methodInfo: {
237
237
  readonly controllerName: string;
238
238
  readonly controllerTags: readonly string[];
239
239
  readonly returnType: {
240
- readonly filePath: Option.Option<string>;
241
240
  readonly type: Option.Option<string>;
242
241
  readonly inline: Option.Option<string>;
243
242
  readonly container: Option.Option<"array">;
243
+ readonly filePath: Option.Option<string>;
244
244
  };
245
245
  readonly parameters: readonly {
246
- readonly name: string;
247
246
  readonly description: Option.Option<string>;
247
+ readonly name: string;
248
248
  readonly location: "query" | "header" | "cookie" | "path" | "body";
249
249
  readonly tsType: string;
250
250
  readonly required: boolean;
@@ -283,14 +283,14 @@ declare const transformMethodsEffect: (methodInfos: readonly {
283
283
  readonly controllerName: string;
284
284
  readonly controllerTags: readonly string[];
285
285
  readonly returnType: {
286
- readonly filePath: Option.Option<string>;
287
286
  readonly type: Option.Option<string>;
288
287
  readonly inline: Option.Option<string>;
289
288
  readonly container: Option.Option<"array">;
289
+ readonly filePath: Option.Option<string>;
290
290
  };
291
291
  readonly parameters: readonly {
292
- readonly name: string;
293
292
  readonly description: Option.Option<string>;
293
+ readonly name: string;
294
294
  readonly location: "query" | "header" | "cookie" | "path" | "body";
295
295
  readonly tsType: string;
296
296
  readonly required: boolean;
@@ -377,7 +377,7 @@ declare const normalizeStructureRefsEffect: (schemas: GeneratedSchemas) => Effec
377
377
  /**
378
378
  * Shared service dependency graph for generation pipelines.
379
379
  */
380
- declare const generatorServicesLayer: Layer.Layer<ProjectService | ModuleTraversalService | ConfigService | SchemaService | ValidationService | MethodExtractionService | OutputService, never, never>;
380
+ declare const generatorServicesLayer: Layer.Layer<ConfigService | OutputService | SchemaService | MethodExtractionService | ValidationService | ProjectService | ModuleTraversalService, never, never>;
381
381
 
382
382
  /** Handles aliased symbols (re-exports) */
383
383
  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, P as ProjectService, g as ModuleTraversalService, C as ConfigService, h as SchemaService, V as ValidationService, i as MethodExtractionService, j as OutputService } from './shared/nestjs-openapi.CAanamW0.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.CAanamW0.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, g as OutputService, h as SchemaService, i as MethodExtractionService, V as ValidationService, P as ProjectService, j as ModuleTraversalService } from './shared/nestjs-openapi.C1wj3WtU.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.C1wj3WtU.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';
@@ -237,14 +237,14 @@ declare const transformMethodEffect: (methodInfo: {
237
237
  readonly controllerName: string;
238
238
  readonly controllerTags: readonly string[];
239
239
  readonly returnType: {
240
- readonly filePath: Option.Option<string>;
241
240
  readonly type: Option.Option<string>;
242
241
  readonly inline: Option.Option<string>;
243
242
  readonly container: Option.Option<"array">;
243
+ readonly filePath: Option.Option<string>;
244
244
  };
245
245
  readonly parameters: readonly {
246
- readonly name: string;
247
246
  readonly description: Option.Option<string>;
247
+ readonly name: string;
248
248
  readonly location: "query" | "header" | "cookie" | "path" | "body";
249
249
  readonly tsType: string;
250
250
  readonly required: boolean;
@@ -283,14 +283,14 @@ declare const transformMethodsEffect: (methodInfos: readonly {
283
283
  readonly controllerName: string;
284
284
  readonly controllerTags: readonly string[];
285
285
  readonly returnType: {
286
- readonly filePath: Option.Option<string>;
287
286
  readonly type: Option.Option<string>;
288
287
  readonly inline: Option.Option<string>;
289
288
  readonly container: Option.Option<"array">;
289
+ readonly filePath: Option.Option<string>;
290
290
  };
291
291
  readonly parameters: readonly {
292
- readonly name: string;
293
292
  readonly description: Option.Option<string>;
293
+ readonly name: string;
294
294
  readonly location: "query" | "header" | "cookie" | "path" | "body";
295
295
  readonly tsType: string;
296
296
  readonly required: boolean;
@@ -377,7 +377,7 @@ declare const normalizeStructureRefsEffect: (schemas: GeneratedSchemas) => Effec
377
377
  /**
378
378
  * Shared service dependency graph for generation pipelines.
379
379
  */
380
- declare const generatorServicesLayer: Layer.Layer<ProjectService | ModuleTraversalService | ConfigService | SchemaService | ValidationService | MethodExtractionService | OutputService, never, never>;
380
+ declare const generatorServicesLayer: Layer.Layer<ConfigService | OutputService | SchemaService | MethodExtractionService | ValidationService | ProjectService | ModuleTraversalService, never, never>;
381
381
 
382
382
  /** Handles aliased symbols (re-exports) */
383
383
  declare const resolveClassFromSymbol: (sym: Symbol) => Option.Option<ClassDeclaration>;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SpecFileNotFoundError, a as SpecFileParseError, b as SpecFileReadError } from './shared/nestjs-openapi.Nd-wGr8A.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.Nd-wGr8A.mjs';
1
+ import { S as SpecFileNotFoundError, a as SpecFileParseError, b as SpecFileReadError } from './shared/nestjs-openapi.9yw4zAwS.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.9yw4zAwS.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.CAanamW0.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.C1wj3WtU.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.CAanamW0.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.C1wj3WtU.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.Nd-wGr8A.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.9yw4zAwS.mjs';
3
3
  import 'node:fs';
4
4
  import 'node:path';
5
5
  import 'node:crypto';
@@ -954,6 +954,14 @@ const API_BOOLEAN_KEYS = [
954
954
  "isArray"
955
955
  ];
956
956
  const API_PRIMITIVE_KEYS = ["example", "default"];
957
+ const API_TYPE_IDENTIFIERS = {
958
+ String: { type: "string" },
959
+ Number: { type: "number" },
960
+ Boolean: { type: "boolean" },
961
+ Object: { type: "object" },
962
+ Array: { type: "array" },
963
+ Date: { type: "string", format: "date-time" }
964
+ };
957
965
  const buildConstraintsFromKeys = (objectLiteral, keys, read) => Object.fromEntries(
958
966
  keys.flatMap((key) => {
959
967
  const value = read(objectLiteral, key);
@@ -984,12 +992,30 @@ const extractApiPropertyEnum = (objLit) => {
984
992
  }
985
993
  return Node.isIdentifier(initializer) ? resolveEnumFromIdentifier(initializer) : void 0;
986
994
  };
995
+ const extractApiPropertyType = (objLit) => {
996
+ const initializer = getPropertyInitializer(objLit, "type");
997
+ if (!initializer) return void 0;
998
+ if (Node.isIdentifier(initializer)) {
999
+ return API_TYPE_IDENTIFIERS[initializer.getText()];
1000
+ }
1001
+ const arrayLiteral = initializer.asKind?.(
1002
+ ts.SyntaxKind.ArrayLiteralExpression
1003
+ );
1004
+ const firstArrayElement = arrayLiteral?.getElements()[0];
1005
+ if (firstArrayElement && Node.isIdentifier(firstArrayElement)) {
1006
+ const itemType = API_TYPE_IDENTIFIERS[firstArrayElement.getText()];
1007
+ return itemType ? { ...itemType, isArray: true } : void 0;
1008
+ }
1009
+ return void 0;
1010
+ };
987
1011
  const extractApiPropertyConstraints = (decorator) => {
988
1012
  const objectLiteral = decorator.getCallExpression()?.getArguments()[0]?.asKind?.(ts.SyntaxKind.ObjectLiteralExpression);
989
1013
  if (!objectLiteral) return void 0;
990
1014
  const enumValues = extractApiPropertyEnum(objectLiteral);
1015
+ const typeConstraints = extractApiPropertyType(objectLiteral);
991
1016
  const result = {
992
1017
  ...enumValues ? { enum: enumValues } : {},
1018
+ ...typeConstraints ?? {},
993
1019
  ...buildConstraintsFromKeys(
994
1020
  objectLiteral,
995
1021
  API_STRING_KEYS,
@@ -1057,12 +1083,12 @@ const decoratorHandlers = {
1057
1083
  })
1058
1084
  ),
1059
1085
  ApiProperty: apiPropertyDecoratorHandler,
1060
- ApiPropertyOptional: apiPropertyDecoratorHandler
1086
+ ApiPropertyOptional: (state, decorator) => apiPropertyDecoratorHandler({ ...state, isOptional: true }, decorator)
1061
1087
  };
1062
- const INITIAL_PROPERTY_VALIDATION_INFO = {
1063
- isOptional: false,
1088
+ const createInitialPropertyValidationInfo = (property) => ({
1089
+ isOptional: property.hasQuestionToken(),
1064
1090
  constraints: {}
1065
- };
1091
+ });
1066
1092
  const applyDecorator = (state, decorator) => getDecoratorName(decorator).pipe(
1067
1093
  Option.flatMap((name) => Option.fromNullable(decoratorHandlers[name])),
1068
1094
  Option.match({
@@ -1072,7 +1098,7 @@ const applyDecorator = (state, decorator) => getDecoratorName(decorator).pipe(
1072
1098
  );
1073
1099
  const extractPropertyState = (property) => property.getDecorators().reduce(
1074
1100
  applyDecorator,
1075
- INITIAL_PROPERTY_VALIDATION_INFO
1101
+ createInitialPropertyValidationInfo(property)
1076
1102
  );
1077
1103
  const hasConstraints = (constraints) => Object.keys(constraints).length > 0;
1078
1104
  const extractPropertyConstraints = (property) => extractPropertyState(property).constraints;
@@ -1101,18 +1127,32 @@ const collectHiddenProperties = (propertyConstraints) => new Set(
1101
1127
  );
1102
1128
  const applyPropertyConstraintsToSchema = (propertySchema, constraints) => Option.fromNullable(constraints).pipe(
1103
1129
  Option.map((propertyConstraints) => {
1104
- const { hidden: _hidden, ...cleanConstraints } = propertyConstraints;
1105
- if (propertySchema.type === "array" && cleanConstraints.enum) {
1106
- const { enum: enumValues, ...restConstraints } = cleanConstraints;
1130
+ const { hidden: _hidden, isArray: _isArray, ...cleanConstraints } = propertyConstraints;
1131
+ const {
1132
+ type: typeOverride,
1133
+ enum: enumValues,
1134
+ ...restConstraints
1135
+ } = cleanConstraints;
1136
+ const hasItemTypeOverride = propertySchema.type === "array" && typeof typeOverride === "string" && typeOverride !== "array";
1137
+ if (propertySchema.type === "array" && (hasItemTypeOverride || enumValues)) {
1138
+ const itemConstraints = {
1139
+ ...hasItemTypeOverride ? { type: typeOverride } : {},
1140
+ ...enumValues ? { enum: enumValues } : {}
1141
+ };
1107
1142
  return {
1108
1143
  ...propertySchema,
1109
1144
  ...restConstraints,
1110
- items: { ...propertySchema.items, enum: enumValues }
1145
+ items: {
1146
+ ...hasItemTypeOverride ? {} : propertySchema.items,
1147
+ ...itemConstraints
1148
+ }
1111
1149
  };
1112
1150
  }
1113
1151
  return {
1114
1152
  ...propertySchema,
1115
- ...cleanConstraints
1153
+ ...typeOverride === void 0 ? {} : { type: typeOverride },
1154
+ ...restConstraints,
1155
+ ...enumValues === void 0 ? {} : { enum: enumValues }
1116
1156
  };
1117
1157
  }),
1118
1158
  Option.getOrElse(() => propertySchema)
@@ -1151,14 +1151,14 @@ declare const getMethodInfoEffect: (controller: ClassDeclaration, method: Method
1151
1151
  readonly controllerName: string;
1152
1152
  readonly controllerTags: readonly string[];
1153
1153
  readonly returnType: {
1154
- readonly filePath: Option.Option<string>;
1155
1154
  readonly type: Option.Option<string>;
1156
1155
  readonly inline: Option.Option<string>;
1157
1156
  readonly container: Option.Option<"array">;
1157
+ readonly filePath: Option.Option<string>;
1158
1158
  };
1159
1159
  readonly parameters: readonly {
1160
- readonly name: string;
1161
1160
  readonly description: Option.Option<string>;
1161
+ readonly name: string;
1162
1162
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1163
1163
  readonly tsType: string;
1164
1164
  readonly required: boolean;
@@ -1192,14 +1192,14 @@ declare const getControllerMethodInfosEffect: (controller: ClassDeclaration, opt
1192
1192
  readonly controllerName: string;
1193
1193
  readonly controllerTags: readonly string[];
1194
1194
  readonly returnType: {
1195
- readonly filePath: Option.Option<string>;
1196
1195
  readonly type: Option.Option<string>;
1197
1196
  readonly inline: Option.Option<string>;
1198
1197
  readonly container: Option.Option<"array">;
1198
+ readonly filePath: Option.Option<string>;
1199
1199
  };
1200
1200
  readonly parameters: readonly {
1201
- readonly name: string;
1202
1201
  readonly description: Option.Option<string>;
1202
+ readonly name: string;
1203
1203
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1204
1204
  readonly tsType: string;
1205
1205
  readonly required: boolean;
@@ -1235,14 +1235,14 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1235
1235
  readonly controllerName: string;
1236
1236
  readonly controllerTags: readonly string[];
1237
1237
  readonly returnType: {
1238
- readonly filePath: Option.Option<string>;
1239
1238
  readonly type: Option.Option<string>;
1240
1239
  readonly inline: Option.Option<string>;
1241
1240
  readonly container: Option.Option<"array">;
1241
+ readonly filePath: Option.Option<string>;
1242
1242
  };
1243
1243
  readonly parameters: readonly {
1244
- readonly name: string;
1245
1244
  readonly description: Option.Option<string>;
1245
+ readonly name: string;
1246
1246
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1247
1247
  readonly tsType: string;
1248
1248
  readonly required: boolean;
@@ -1275,14 +1275,14 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1275
1275
  readonly controllerName: string;
1276
1276
  readonly controllerTags: readonly string[];
1277
1277
  readonly returnType: {
1278
- readonly filePath: Option.Option<string>;
1279
1278
  readonly type: Option.Option<string>;
1280
1279
  readonly inline: Option.Option<string>;
1281
1280
  readonly container: Option.Option<"array">;
1281
+ readonly filePath: Option.Option<string>;
1282
1282
  };
1283
1283
  readonly parameters: readonly {
1284
- readonly name: string;
1285
1284
  readonly description: Option.Option<string>;
1285
+ readonly name: string;
1286
1286
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1287
1287
  readonly tsType: string;
1288
1288
  readonly required: boolean;
@@ -1332,7 +1332,18 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1332
1332
  readonly effect: Effect.Effect<{
1333
1333
  findConfigFile: (startDir?: string | undefined) => Effect.Effect<string, ConfigNotFoundError, never>;
1334
1334
  loadConfigFromFile: (configPath: string) => Effect.Effect<{
1335
+ readonly extends?: string | undefined;
1336
+ readonly files?: {
1337
+ readonly entry?: string | readonly string[] | undefined;
1338
+ readonly tsconfig?: string | undefined;
1339
+ readonly dtoGlob?: string | readonly string[] | undefined;
1340
+ readonly include?: readonly string[] | undefined;
1341
+ readonly exclude?: readonly string[] | undefined;
1342
+ } | undefined;
1343
+ readonly output: string;
1344
+ readonly format?: "json" | "yaml" | undefined;
1335
1345
  readonly openapi: {
1346
+ readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1336
1347
  readonly info: {
1337
1348
  readonly version: string;
1338
1349
  readonly title: string;
@@ -1352,25 +1363,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1352
1363
  readonly url: string;
1353
1364
  }[] | undefined;
1354
1365
  readonly tags?: readonly {
1355
- readonly name: string;
1356
1366
  readonly description?: string | undefined;
1367
+ readonly name: string;
1357
1368
  }[] | undefined;
1358
1369
  readonly security?: {
1359
1370
  readonly schemes?: readonly ({
1360
- readonly name: string;
1361
1371
  readonly description?: string | undefined;
1372
+ readonly name: string;
1362
1373
  readonly type: "http";
1363
1374
  readonly scheme: string;
1364
1375
  readonly bearerFormat?: string | undefined;
1365
1376
  } | {
1366
- readonly name: string;
1367
1377
  readonly description?: string | undefined;
1378
+ readonly name: string;
1368
1379
  readonly type: "apiKey";
1369
1380
  readonly in: "query" | "header" | "cookie";
1370
1381
  readonly parameterName: string;
1371
1382
  } | {
1372
- readonly name: string;
1373
1383
  readonly description?: string | undefined;
1384
+ readonly name: string;
1374
1385
  readonly type: "oauth2";
1375
1386
  readonly flows: {
1376
1387
  readonly implicit?: {
@@ -1407,8 +1418,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1407
1418
  } | undefined;
1408
1419
  };
1409
1420
  } | {
1410
- readonly name: string;
1411
1421
  readonly description?: string | undefined;
1422
+ readonly name: string;
1412
1423
  readonly type: "openIdConnect";
1413
1424
  readonly openIdConnectUrl: string;
1414
1425
  })[] | undefined;
@@ -1416,18 +1427,7 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1416
1427
  readonly [x: string]: readonly string[];
1417
1428
  }[] | undefined;
1418
1429
  } | undefined;
1419
- readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1420
1430
  };
1421
- readonly extends?: string | undefined;
1422
- readonly files?: {
1423
- readonly tsconfig?: string | undefined;
1424
- readonly entry?: string | readonly string[] | undefined;
1425
- readonly dtoGlob?: string | readonly string[] | undefined;
1426
- readonly include?: readonly string[] | undefined;
1427
- readonly exclude?: readonly string[] | undefined;
1428
- } | undefined;
1429
- readonly output: string;
1430
- readonly format?: "json" | "yaml" | undefined;
1431
1431
  readonly options?: {
1432
1432
  readonly query?: {
1433
1433
  readonly style?: "inline" | "ref" | undefined;
@@ -1442,7 +1442,18 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1442
1442
  } | undefined;
1443
1443
  }, ConfigError, never>;
1444
1444
  loadConfig: (configPath?: string | undefined, cwd?: string | undefined) => Effect.Effect<{
1445
+ readonly extends?: string | undefined;
1446
+ readonly files?: {
1447
+ readonly entry?: string | readonly string[] | undefined;
1448
+ readonly tsconfig?: string | undefined;
1449
+ readonly dtoGlob?: string | readonly string[] | undefined;
1450
+ readonly include?: readonly string[] | undefined;
1451
+ readonly exclude?: readonly string[] | undefined;
1452
+ } | undefined;
1453
+ readonly output: string;
1454
+ readonly format?: "json" | "yaml" | undefined;
1445
1455
  readonly openapi: {
1456
+ readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1446
1457
  readonly info: {
1447
1458
  readonly version: string;
1448
1459
  readonly title: string;
@@ -1462,25 +1473,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1462
1473
  readonly url: string;
1463
1474
  }[] | undefined;
1464
1475
  readonly tags?: readonly {
1465
- readonly name: string;
1466
1476
  readonly description?: string | undefined;
1477
+ readonly name: string;
1467
1478
  }[] | undefined;
1468
1479
  readonly security?: {
1469
1480
  readonly schemes?: readonly ({
1470
- readonly name: string;
1471
1481
  readonly description?: string | undefined;
1482
+ readonly name: string;
1472
1483
  readonly type: "http";
1473
1484
  readonly scheme: string;
1474
1485
  readonly bearerFormat?: string | undefined;
1475
1486
  } | {
1476
- readonly name: string;
1477
1487
  readonly description?: string | undefined;
1488
+ readonly name: string;
1478
1489
  readonly type: "apiKey";
1479
1490
  readonly in: "query" | "header" | "cookie";
1480
1491
  readonly parameterName: string;
1481
1492
  } | {
1482
- readonly name: string;
1483
1493
  readonly description?: string | undefined;
1494
+ readonly name: string;
1484
1495
  readonly type: "oauth2";
1485
1496
  readonly flows: {
1486
1497
  readonly implicit?: {
@@ -1517,8 +1528,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1517
1528
  } | undefined;
1518
1529
  };
1519
1530
  } | {
1520
- readonly name: string;
1521
1531
  readonly description?: string | undefined;
1532
+ readonly name: string;
1522
1533
  readonly type: "openIdConnect";
1523
1534
  readonly openIdConnectUrl: string;
1524
1535
  })[] | undefined;
@@ -1526,18 +1537,7 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1526
1537
  readonly [x: string]: readonly string[];
1527
1538
  }[] | undefined;
1528
1539
  } | undefined;
1529
- readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1530
1540
  };
1531
- readonly extends?: string | undefined;
1532
- readonly files?: {
1533
- readonly tsconfig?: string | undefined;
1534
- readonly entry?: string | readonly string[] | undefined;
1535
- readonly dtoGlob?: string | readonly string[] | undefined;
1536
- readonly include?: readonly string[] | undefined;
1537
- readonly exclude?: readonly string[] | undefined;
1538
- } | undefined;
1539
- readonly output: string;
1540
- readonly format?: "json" | "yaml" | undefined;
1541
1541
  readonly options?: {
1542
1542
  readonly query?: {
1543
1543
  readonly style?: "inline" | "ref" | undefined;
@@ -1552,7 +1552,18 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1552
1552
  } | undefined;
1553
1553
  }, ConfigError, never>;
1554
1554
  resolveConfig: (config: {
1555
+ readonly extends?: string | undefined;
1556
+ readonly files?: {
1557
+ readonly entry?: string | readonly string[] | undefined;
1558
+ readonly tsconfig?: string | undefined;
1559
+ readonly dtoGlob?: string | readonly string[] | undefined;
1560
+ readonly include?: readonly string[] | undefined;
1561
+ readonly exclude?: readonly string[] | undefined;
1562
+ } | undefined;
1563
+ readonly output: string;
1564
+ readonly format?: "json" | "yaml" | undefined;
1555
1565
  readonly openapi: {
1566
+ readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1556
1567
  readonly info: {
1557
1568
  readonly version: string;
1558
1569
  readonly title: string;
@@ -1572,25 +1583,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1572
1583
  readonly url: string;
1573
1584
  }[] | undefined;
1574
1585
  readonly tags?: readonly {
1575
- readonly name: string;
1576
1586
  readonly description?: string | undefined;
1587
+ readonly name: string;
1577
1588
  }[] | undefined;
1578
1589
  readonly security?: {
1579
1590
  readonly schemes?: readonly ({
1580
- readonly name: string;
1581
1591
  readonly description?: string | undefined;
1592
+ readonly name: string;
1582
1593
  readonly type: "http";
1583
1594
  readonly scheme: string;
1584
1595
  readonly bearerFormat?: string | undefined;
1585
1596
  } | {
1586
- readonly name: string;
1587
1597
  readonly description?: string | undefined;
1598
+ readonly name: string;
1588
1599
  readonly type: "apiKey";
1589
1600
  readonly in: "query" | "header" | "cookie";
1590
1601
  readonly parameterName: string;
1591
1602
  } | {
1592
- readonly name: string;
1593
1603
  readonly description?: string | undefined;
1604
+ readonly name: string;
1594
1605
  readonly type: "oauth2";
1595
1606
  readonly flows: {
1596
1607
  readonly implicit?: {
@@ -1627,8 +1638,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1627
1638
  } | undefined;
1628
1639
  };
1629
1640
  } | {
1630
- readonly name: string;
1631
1641
  readonly description?: string | undefined;
1642
+ readonly name: string;
1632
1643
  readonly type: "openIdConnect";
1633
1644
  readonly openIdConnectUrl: string;
1634
1645
  })[] | undefined;
@@ -1636,18 +1647,7 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1636
1647
  readonly [x: string]: readonly string[];
1637
1648
  }[] | undefined;
1638
1649
  } | undefined;
1639
- readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1640
1650
  };
1641
- readonly extends?: string | undefined;
1642
- readonly files?: {
1643
- readonly tsconfig?: string | undefined;
1644
- readonly entry?: string | readonly string[] | undefined;
1645
- readonly dtoGlob?: string | readonly string[] | undefined;
1646
- readonly include?: readonly string[] | undefined;
1647
- readonly exclude?: readonly string[] | undefined;
1648
- } | undefined;
1649
- readonly output: string;
1650
- readonly format?: "json" | "yaml" | undefined;
1651
1651
  readonly options?: {
1652
1652
  readonly query?: {
1653
1653
  readonly style?: "inline" | "ref" | undefined;
@@ -1661,6 +1661,14 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1661
1661
  readonly pathFilter?: RegExp | ((path: string) => boolean) | undefined;
1662
1662
  } | undefined;
1663
1663
  }, configPath?: string | undefined) => Effect.Effect<{
1664
+ readonly entry: readonly string[];
1665
+ readonly tsconfig: string;
1666
+ readonly dtoGlob: readonly string[];
1667
+ readonly include: readonly string[];
1668
+ readonly exclude: readonly string[];
1669
+ readonly output: string;
1670
+ readonly format: "json" | "yaml";
1671
+ readonly version?: string | undefined;
1664
1672
  readonly info: {
1665
1673
  readonly version: string;
1666
1674
  readonly title: string;
@@ -1680,37 +1688,29 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1680
1688
  readonly url: string;
1681
1689
  }[];
1682
1690
  readonly tags: readonly {
1683
- readonly name: string;
1684
1691
  readonly description?: string | undefined;
1692
+ readonly name: string;
1685
1693
  }[];
1686
- readonly tsconfig: string;
1687
- readonly entry: readonly string[];
1688
- readonly dtoGlob: readonly string[];
1689
- readonly include: readonly string[];
1690
- readonly exclude: readonly string[];
1691
- readonly output: string;
1692
- readonly format: "json" | "yaml";
1693
- readonly version?: string | undefined;
1694
1694
  readonly basePath?: string | undefined;
1695
1695
  readonly extractValidation: boolean;
1696
1696
  readonly excludeDecorators: readonly string[];
1697
1697
  readonly aliasRefs: "collapse" | "preserve";
1698
1698
  readonly pathFilter?: RegExp | ((path: string) => boolean) | undefined;
1699
1699
  readonly securitySchemes: readonly ({
1700
- readonly name: string;
1701
1700
  readonly description?: string | undefined;
1701
+ readonly name: string;
1702
1702
  readonly type: "http";
1703
1703
  readonly scheme: string;
1704
1704
  readonly bearerFormat?: string | undefined;
1705
1705
  } | {
1706
- readonly name: string;
1707
1706
  readonly description?: string | undefined;
1707
+ readonly name: string;
1708
1708
  readonly type: "apiKey";
1709
1709
  readonly in: "query" | "header" | "cookie";
1710
1710
  readonly parameterName: string;
1711
1711
  } | {
1712
- readonly name: string;
1713
1712
  readonly description?: string | undefined;
1713
+ readonly name: string;
1714
1714
  readonly type: "oauth2";
1715
1715
  readonly flows: {
1716
1716
  readonly implicit?: {
@@ -1747,8 +1747,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1747
1747
  } | undefined;
1748
1748
  };
1749
1749
  } | {
1750
- readonly name: string;
1751
1750
  readonly description?: string | undefined;
1751
+ readonly name: string;
1752
1752
  readonly type: "openIdConnect";
1753
1753
  readonly openIdConnectUrl: string;
1754
1754
  })[];
@@ -1757,6 +1757,14 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1757
1757
  }[];
1758
1758
  }, ConfigValidationError, never>;
1759
1759
  loadAndResolveConfig: (configPath?: string | undefined, cwd?: string | undefined) => Effect.Effect<{
1760
+ readonly entry: readonly string[];
1761
+ readonly tsconfig: string;
1762
+ readonly dtoGlob: readonly string[];
1763
+ readonly include: readonly string[];
1764
+ readonly exclude: readonly string[];
1765
+ readonly output: string;
1766
+ readonly format: "json" | "yaml";
1767
+ readonly version?: string | undefined;
1760
1768
  readonly info: {
1761
1769
  readonly version: string;
1762
1770
  readonly title: string;
@@ -1776,37 +1784,29 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1776
1784
  readonly url: string;
1777
1785
  }[];
1778
1786
  readonly tags: readonly {
1779
- readonly name: string;
1780
1787
  readonly description?: string | undefined;
1788
+ readonly name: string;
1781
1789
  }[];
1782
- readonly tsconfig: string;
1783
- readonly entry: readonly string[];
1784
- readonly dtoGlob: readonly string[];
1785
- readonly include: readonly string[];
1786
- readonly exclude: readonly string[];
1787
- readonly output: string;
1788
- readonly format: "json" | "yaml";
1789
- readonly version?: string | undefined;
1790
1790
  readonly basePath?: string | undefined;
1791
1791
  readonly extractValidation: boolean;
1792
1792
  readonly excludeDecorators: readonly string[];
1793
1793
  readonly aliasRefs: "collapse" | "preserve";
1794
1794
  readonly pathFilter?: RegExp | ((path: string) => boolean) | undefined;
1795
1795
  readonly securitySchemes: readonly ({
1796
- readonly name: string;
1797
1796
  readonly description?: string | undefined;
1797
+ readonly name: string;
1798
1798
  readonly type: "http";
1799
1799
  readonly scheme: string;
1800
1800
  readonly bearerFormat?: string | undefined;
1801
1801
  } | {
1802
- readonly name: string;
1803
1802
  readonly description?: string | undefined;
1803
+ readonly name: string;
1804
1804
  readonly type: "apiKey";
1805
1805
  readonly in: "query" | "header" | "cookie";
1806
1806
  readonly parameterName: string;
1807
1807
  } | {
1808
- readonly name: string;
1809
1808
  readonly description?: string | undefined;
1809
+ readonly name: string;
1810
1810
  readonly type: "oauth2";
1811
1811
  readonly flows: {
1812
1812
  readonly implicit?: {
@@ -1843,8 +1843,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1843
1843
  } | undefined;
1844
1844
  };
1845
1845
  } | {
1846
- readonly name: string;
1847
1846
  readonly description?: string | undefined;
1847
+ readonly name: string;
1848
1848
  readonly type: "openIdConnect";
1849
1849
  readonly openIdConnectUrl: string;
1850
1850
  })[];
@@ -2058,7 +2058,7 @@ interface ClassValidationInfo {
2058
2058
  */
2059
2059
  declare const extractPropertyConstraints: (property: PropertyDeclaration) => ValidationConstraints;
2060
2060
  /**
2061
- * Check if a property has @IsOptional() decorator
2061
+ * Check if a property is optional.
2062
2062
  */
2063
2063
  declare const isPropertyOptional: (property: PropertyDeclaration) => boolean;
2064
2064
  /**
@@ -2271,5 +2271,5 @@ declare const generate: (options: GenerateOptions) => Effect.Effect<{
2271
2271
  }, ProjectInitError | EntryNotFoundError, ModuleTraversalService | ProjectService | MethodExtractionService>;
2272
2272
  declare const generateAsync: (options: GenerateOptions) => Promise<OpenApiPaths>;
2273
2273
 
2274
- export { MissingGenericSchemaTempFileCleanupError as $, generatePathsAsync as A, generateFromConfigEffect as B, ConfigService as C, generateFromConfigAsync as D, ParameterLocation as F, ReturnTypeInfo as H, HttpMethod as J, OpenApiGeneratorConfig as K, MethodInfo as M, ResolvedConfig as N, ProjectService as P, ProjectInitError as Q, ResolvedParameter as R, SpecFileNotFoundError as S, EntryNotFoundError as U, ValidationService as V, ConfigNotFoundError as W, ConfigLoadError as X, ConfigValidationError as Y, DtoGlobResolutionError as Z, InvalidMethodError as _, SpecFileReadError as a, MissingGenericSchemaTempFileWriteError as a0, PublicApiError as a1, ProjectServiceLive as a6, makeProjectContext as a7, findConfigFile as aA, loadConfigFromFile as aB, loadConfig as aC, resolveConfig as aD, loadAndResolveConfig as aE, validateSpec as aF, categorizeBrokenRefs as aG, formatValidationResult as aH, getModules as aa, getAllControllers as ab, getMethodInfo as ad, getMethodInfoEffect as ae, getControllerMethodInfos as af, getControllerMethodInfosEffect as ag, generateSchemas as ah, generateSchemasFromFiles as ai, SchemaGenerationError as aj, extractPropertyConstraints as an, isPropertyOptional as ao, extractPropertyValidationInfo as ap, extractClassValidationInfo as aq, extractClassValidationInfoEffect as ar, extractClassConstraints as as, getRequiredProperties as at, applyConstraintsToSchema as au, mergeValidationConstraints as av, mergeValidationConstraintsEffect as aw, SpecFileParseError as b, OpenApiOperation as d, ModuleTraversalService as g, SchemaService as h, MethodExtractionService as i, OutputService as j, generate$1 as k, defineConfig as m, generate as x, generateAsync as y, generatePathsEffect as z };
2274
+ export { MissingGenericSchemaTempFileCleanupError as $, generatePathsAsync as A, generateFromConfigEffect as B, ConfigService as C, generateFromConfigAsync as D, ParameterLocation as F, ReturnTypeInfo as H, HttpMethod as J, OpenApiGeneratorConfig as K, MethodInfo as M, ResolvedConfig as N, ProjectService as P, ProjectInitError as Q, ResolvedParameter as R, SpecFileNotFoundError as S, EntryNotFoundError as U, ValidationService as V, ConfigNotFoundError as W, ConfigLoadError as X, ConfigValidationError as Y, DtoGlobResolutionError as Z, InvalidMethodError as _, SpecFileReadError as a, MissingGenericSchemaTempFileWriteError as a0, PublicApiError as a1, ProjectServiceLive as a6, makeProjectContext as a7, findConfigFile as aA, loadConfigFromFile as aB, loadConfig as aC, resolveConfig as aD, loadAndResolveConfig as aE, validateSpec as aF, categorizeBrokenRefs as aG, formatValidationResult as aH, getModules as aa, getAllControllers as ab, getMethodInfo as ad, getMethodInfoEffect as ae, getControllerMethodInfos as af, getControllerMethodInfosEffect as ag, generateSchemas as ah, generateSchemasFromFiles as ai, SchemaGenerationError as aj, extractPropertyConstraints as an, isPropertyOptional as ao, extractPropertyValidationInfo as ap, extractClassValidationInfo as aq, extractClassValidationInfoEffect as ar, extractClassConstraints as as, getRequiredProperties as at, applyConstraintsToSchema as au, mergeValidationConstraints as av, mergeValidationConstraintsEffect as aw, SpecFileParseError as b, OpenApiOperation as d, OutputService as g, SchemaService as h, MethodExtractionService as i, ModuleTraversalService as j, generate$1 as k, defineConfig as m, generate as x, generateAsync as y, generatePathsEffect as z };
2275
2275
  export type { GenerateOptions as E, GeneratedSchemas as G, InfoConfig as I, LicenseConfig as L, OpenApiSpec as O, TagConfig as T, ProjectError as a2, ConfigError as a3, AnalysisError as a4, GeneratorError as a5, ProjectContext as a8, ProjectOptions as a9, ValidationResult as aI, BrokenRef as aJ, BrokenRefCategories as aK, ModuleWithControllers as ac, SchemaError as ak, SchemaGeneratorOptions as al, JsonSchema as am, ValidationConstraints as ax, PropertyValidationInfo as ay, ClassValidationInfo as az, OpenApiPaths as c, OpenApiPaths$1 as e, OpenApiSchema$1 as f, GenerateResult as l, Config as n, ContactConfig as o, ServerConfig as p, OutputFormat as q, TelemetryConfig as r, GenerateOverrides as s, OpenApiOperation$1 as t, OpenApiParameter as u, OpenApiRequestBody as v, OpenApiResponse as w };
@@ -1151,14 +1151,14 @@ declare const getMethodInfoEffect: (controller: ClassDeclaration, method: Method
1151
1151
  readonly controllerName: string;
1152
1152
  readonly controllerTags: readonly string[];
1153
1153
  readonly returnType: {
1154
- readonly filePath: Option.Option<string>;
1155
1154
  readonly type: Option.Option<string>;
1156
1155
  readonly inline: Option.Option<string>;
1157
1156
  readonly container: Option.Option<"array">;
1157
+ readonly filePath: Option.Option<string>;
1158
1158
  };
1159
1159
  readonly parameters: readonly {
1160
- readonly name: string;
1161
1160
  readonly description: Option.Option<string>;
1161
+ readonly name: string;
1162
1162
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1163
1163
  readonly tsType: string;
1164
1164
  readonly required: boolean;
@@ -1192,14 +1192,14 @@ declare const getControllerMethodInfosEffect: (controller: ClassDeclaration, opt
1192
1192
  readonly controllerName: string;
1193
1193
  readonly controllerTags: readonly string[];
1194
1194
  readonly returnType: {
1195
- readonly filePath: Option.Option<string>;
1196
1195
  readonly type: Option.Option<string>;
1197
1196
  readonly inline: Option.Option<string>;
1198
1197
  readonly container: Option.Option<"array">;
1198
+ readonly filePath: Option.Option<string>;
1199
1199
  };
1200
1200
  readonly parameters: readonly {
1201
- readonly name: string;
1202
1201
  readonly description: Option.Option<string>;
1202
+ readonly name: string;
1203
1203
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1204
1204
  readonly tsType: string;
1205
1205
  readonly required: boolean;
@@ -1235,14 +1235,14 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1235
1235
  readonly controllerName: string;
1236
1236
  readonly controllerTags: readonly string[];
1237
1237
  readonly returnType: {
1238
- readonly filePath: Option.Option<string>;
1239
1238
  readonly type: Option.Option<string>;
1240
1239
  readonly inline: Option.Option<string>;
1241
1240
  readonly container: Option.Option<"array">;
1241
+ readonly filePath: Option.Option<string>;
1242
1242
  };
1243
1243
  readonly parameters: readonly {
1244
- readonly name: string;
1245
1244
  readonly description: Option.Option<string>;
1245
+ readonly name: string;
1246
1246
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1247
1247
  readonly tsType: string;
1248
1248
  readonly required: boolean;
@@ -1275,14 +1275,14 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1275
1275
  readonly controllerName: string;
1276
1276
  readonly controllerTags: readonly string[];
1277
1277
  readonly returnType: {
1278
- readonly filePath: Option.Option<string>;
1279
1278
  readonly type: Option.Option<string>;
1280
1279
  readonly inline: Option.Option<string>;
1281
1280
  readonly container: Option.Option<"array">;
1281
+ readonly filePath: Option.Option<string>;
1282
1282
  };
1283
1283
  readonly parameters: readonly {
1284
- readonly name: string;
1285
1284
  readonly description: Option.Option<string>;
1285
+ readonly name: string;
1286
1286
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1287
1287
  readonly tsType: string;
1288
1288
  readonly required: boolean;
@@ -1332,7 +1332,18 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1332
1332
  readonly effect: Effect.Effect<{
1333
1333
  findConfigFile: (startDir?: string | undefined) => Effect.Effect<string, ConfigNotFoundError, never>;
1334
1334
  loadConfigFromFile: (configPath: string) => Effect.Effect<{
1335
+ readonly extends?: string | undefined;
1336
+ readonly files?: {
1337
+ readonly entry?: string | readonly string[] | undefined;
1338
+ readonly tsconfig?: string | undefined;
1339
+ readonly dtoGlob?: string | readonly string[] | undefined;
1340
+ readonly include?: readonly string[] | undefined;
1341
+ readonly exclude?: readonly string[] | undefined;
1342
+ } | undefined;
1343
+ readonly output: string;
1344
+ readonly format?: "json" | "yaml" | undefined;
1335
1345
  readonly openapi: {
1346
+ readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1336
1347
  readonly info: {
1337
1348
  readonly version: string;
1338
1349
  readonly title: string;
@@ -1352,25 +1363,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1352
1363
  readonly url: string;
1353
1364
  }[] | undefined;
1354
1365
  readonly tags?: readonly {
1355
- readonly name: string;
1356
1366
  readonly description?: string | undefined;
1367
+ readonly name: string;
1357
1368
  }[] | undefined;
1358
1369
  readonly security?: {
1359
1370
  readonly schemes?: readonly ({
1360
- readonly name: string;
1361
1371
  readonly description?: string | undefined;
1372
+ readonly name: string;
1362
1373
  readonly type: "http";
1363
1374
  readonly scheme: string;
1364
1375
  readonly bearerFormat?: string | undefined;
1365
1376
  } | {
1366
- readonly name: string;
1367
1377
  readonly description?: string | undefined;
1378
+ readonly name: string;
1368
1379
  readonly type: "apiKey";
1369
1380
  readonly in: "query" | "header" | "cookie";
1370
1381
  readonly parameterName: string;
1371
1382
  } | {
1372
- readonly name: string;
1373
1383
  readonly description?: string | undefined;
1384
+ readonly name: string;
1374
1385
  readonly type: "oauth2";
1375
1386
  readonly flows: {
1376
1387
  readonly implicit?: {
@@ -1407,8 +1418,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1407
1418
  } | undefined;
1408
1419
  };
1409
1420
  } | {
1410
- readonly name: string;
1411
1421
  readonly description?: string | undefined;
1422
+ readonly name: string;
1412
1423
  readonly type: "openIdConnect";
1413
1424
  readonly openIdConnectUrl: string;
1414
1425
  })[] | undefined;
@@ -1416,18 +1427,7 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1416
1427
  readonly [x: string]: readonly string[];
1417
1428
  }[] | undefined;
1418
1429
  } | undefined;
1419
- readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1420
1430
  };
1421
- readonly extends?: string | undefined;
1422
- readonly files?: {
1423
- readonly tsconfig?: string | undefined;
1424
- readonly entry?: string | readonly string[] | undefined;
1425
- readonly dtoGlob?: string | readonly string[] | undefined;
1426
- readonly include?: readonly string[] | undefined;
1427
- readonly exclude?: readonly string[] | undefined;
1428
- } | undefined;
1429
- readonly output: string;
1430
- readonly format?: "json" | "yaml" | undefined;
1431
1431
  readonly options?: {
1432
1432
  readonly query?: {
1433
1433
  readonly style?: "inline" | "ref" | undefined;
@@ -1442,7 +1442,18 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1442
1442
  } | undefined;
1443
1443
  }, ConfigError, never>;
1444
1444
  loadConfig: (configPath?: string | undefined, cwd?: string | undefined) => Effect.Effect<{
1445
+ readonly extends?: string | undefined;
1446
+ readonly files?: {
1447
+ readonly entry?: string | readonly string[] | undefined;
1448
+ readonly tsconfig?: string | undefined;
1449
+ readonly dtoGlob?: string | readonly string[] | undefined;
1450
+ readonly include?: readonly string[] | undefined;
1451
+ readonly exclude?: readonly string[] | undefined;
1452
+ } | undefined;
1453
+ readonly output: string;
1454
+ readonly format?: "json" | "yaml" | undefined;
1445
1455
  readonly openapi: {
1456
+ readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1446
1457
  readonly info: {
1447
1458
  readonly version: string;
1448
1459
  readonly title: string;
@@ -1462,25 +1473,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1462
1473
  readonly url: string;
1463
1474
  }[] | undefined;
1464
1475
  readonly tags?: readonly {
1465
- readonly name: string;
1466
1476
  readonly description?: string | undefined;
1477
+ readonly name: string;
1467
1478
  }[] | undefined;
1468
1479
  readonly security?: {
1469
1480
  readonly schemes?: readonly ({
1470
- readonly name: string;
1471
1481
  readonly description?: string | undefined;
1482
+ readonly name: string;
1472
1483
  readonly type: "http";
1473
1484
  readonly scheme: string;
1474
1485
  readonly bearerFormat?: string | undefined;
1475
1486
  } | {
1476
- readonly name: string;
1477
1487
  readonly description?: string | undefined;
1488
+ readonly name: string;
1478
1489
  readonly type: "apiKey";
1479
1490
  readonly in: "query" | "header" | "cookie";
1480
1491
  readonly parameterName: string;
1481
1492
  } | {
1482
- readonly name: string;
1483
1493
  readonly description?: string | undefined;
1494
+ readonly name: string;
1484
1495
  readonly type: "oauth2";
1485
1496
  readonly flows: {
1486
1497
  readonly implicit?: {
@@ -1517,8 +1528,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1517
1528
  } | undefined;
1518
1529
  };
1519
1530
  } | {
1520
- readonly name: string;
1521
1531
  readonly description?: string | undefined;
1532
+ readonly name: string;
1522
1533
  readonly type: "openIdConnect";
1523
1534
  readonly openIdConnectUrl: string;
1524
1535
  })[] | undefined;
@@ -1526,18 +1537,7 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1526
1537
  readonly [x: string]: readonly string[];
1527
1538
  }[] | undefined;
1528
1539
  } | undefined;
1529
- readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1530
1540
  };
1531
- readonly extends?: string | undefined;
1532
- readonly files?: {
1533
- readonly tsconfig?: string | undefined;
1534
- readonly entry?: string | readonly string[] | undefined;
1535
- readonly dtoGlob?: string | readonly string[] | undefined;
1536
- readonly include?: readonly string[] | undefined;
1537
- readonly exclude?: readonly string[] | undefined;
1538
- } | undefined;
1539
- readonly output: string;
1540
- readonly format?: "json" | "yaml" | undefined;
1541
1541
  readonly options?: {
1542
1542
  readonly query?: {
1543
1543
  readonly style?: "inline" | "ref" | undefined;
@@ -1552,7 +1552,18 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1552
1552
  } | undefined;
1553
1553
  }, ConfigError, never>;
1554
1554
  resolveConfig: (config: {
1555
+ readonly extends?: string | undefined;
1556
+ readonly files?: {
1557
+ readonly entry?: string | readonly string[] | undefined;
1558
+ readonly tsconfig?: string | undefined;
1559
+ readonly dtoGlob?: string | readonly string[] | undefined;
1560
+ readonly include?: readonly string[] | undefined;
1561
+ readonly exclude?: readonly string[] | undefined;
1562
+ } | undefined;
1563
+ readonly output: string;
1564
+ readonly format?: "json" | "yaml" | undefined;
1555
1565
  readonly openapi: {
1566
+ readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1556
1567
  readonly info: {
1557
1568
  readonly version: string;
1558
1569
  readonly title: string;
@@ -1572,25 +1583,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1572
1583
  readonly url: string;
1573
1584
  }[] | undefined;
1574
1585
  readonly tags?: readonly {
1575
- readonly name: string;
1576
1586
  readonly description?: string | undefined;
1587
+ readonly name: string;
1577
1588
  }[] | undefined;
1578
1589
  readonly security?: {
1579
1590
  readonly schemes?: readonly ({
1580
- readonly name: string;
1581
1591
  readonly description?: string | undefined;
1592
+ readonly name: string;
1582
1593
  readonly type: "http";
1583
1594
  readonly scheme: string;
1584
1595
  readonly bearerFormat?: string | undefined;
1585
1596
  } | {
1586
- readonly name: string;
1587
1597
  readonly description?: string | undefined;
1598
+ readonly name: string;
1588
1599
  readonly type: "apiKey";
1589
1600
  readonly in: "query" | "header" | "cookie";
1590
1601
  readonly parameterName: string;
1591
1602
  } | {
1592
- readonly name: string;
1593
1603
  readonly description?: string | undefined;
1604
+ readonly name: string;
1594
1605
  readonly type: "oauth2";
1595
1606
  readonly flows: {
1596
1607
  readonly implicit?: {
@@ -1627,8 +1638,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1627
1638
  } | undefined;
1628
1639
  };
1629
1640
  } | {
1630
- readonly name: string;
1631
1641
  readonly description?: string | undefined;
1642
+ readonly name: string;
1632
1643
  readonly type: "openIdConnect";
1633
1644
  readonly openIdConnectUrl: string;
1634
1645
  })[] | undefined;
@@ -1636,18 +1647,7 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1636
1647
  readonly [x: string]: readonly string[];
1637
1648
  }[] | undefined;
1638
1649
  } | undefined;
1639
- readonly version?: "3.0.3" | "3.1.0" | "3.2.0" | undefined;
1640
1650
  };
1641
- readonly extends?: string | undefined;
1642
- readonly files?: {
1643
- readonly tsconfig?: string | undefined;
1644
- readonly entry?: string | readonly string[] | undefined;
1645
- readonly dtoGlob?: string | readonly string[] | undefined;
1646
- readonly include?: readonly string[] | undefined;
1647
- readonly exclude?: readonly string[] | undefined;
1648
- } | undefined;
1649
- readonly output: string;
1650
- readonly format?: "json" | "yaml" | undefined;
1651
1651
  readonly options?: {
1652
1652
  readonly query?: {
1653
1653
  readonly style?: "inline" | "ref" | undefined;
@@ -1661,6 +1661,14 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1661
1661
  readonly pathFilter?: RegExp | ((path: string) => boolean) | undefined;
1662
1662
  } | undefined;
1663
1663
  }, configPath?: string | undefined) => Effect.Effect<{
1664
+ readonly entry: readonly string[];
1665
+ readonly tsconfig: string;
1666
+ readonly dtoGlob: readonly string[];
1667
+ readonly include: readonly string[];
1668
+ readonly exclude: readonly string[];
1669
+ readonly output: string;
1670
+ readonly format: "json" | "yaml";
1671
+ readonly version?: string | undefined;
1664
1672
  readonly info: {
1665
1673
  readonly version: string;
1666
1674
  readonly title: string;
@@ -1680,37 +1688,29 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1680
1688
  readonly url: string;
1681
1689
  }[];
1682
1690
  readonly tags: readonly {
1683
- readonly name: string;
1684
1691
  readonly description?: string | undefined;
1692
+ readonly name: string;
1685
1693
  }[];
1686
- readonly tsconfig: string;
1687
- readonly entry: readonly string[];
1688
- readonly dtoGlob: readonly string[];
1689
- readonly include: readonly string[];
1690
- readonly exclude: readonly string[];
1691
- readonly output: string;
1692
- readonly format: "json" | "yaml";
1693
- readonly version?: string | undefined;
1694
1694
  readonly basePath?: string | undefined;
1695
1695
  readonly extractValidation: boolean;
1696
1696
  readonly excludeDecorators: readonly string[];
1697
1697
  readonly aliasRefs: "collapse" | "preserve";
1698
1698
  readonly pathFilter?: RegExp | ((path: string) => boolean) | undefined;
1699
1699
  readonly securitySchemes: readonly ({
1700
- readonly name: string;
1701
1700
  readonly description?: string | undefined;
1701
+ readonly name: string;
1702
1702
  readonly type: "http";
1703
1703
  readonly scheme: string;
1704
1704
  readonly bearerFormat?: string | undefined;
1705
1705
  } | {
1706
- readonly name: string;
1707
1706
  readonly description?: string | undefined;
1707
+ readonly name: string;
1708
1708
  readonly type: "apiKey";
1709
1709
  readonly in: "query" | "header" | "cookie";
1710
1710
  readonly parameterName: string;
1711
1711
  } | {
1712
- readonly name: string;
1713
1712
  readonly description?: string | undefined;
1713
+ readonly name: string;
1714
1714
  readonly type: "oauth2";
1715
1715
  readonly flows: {
1716
1716
  readonly implicit?: {
@@ -1747,8 +1747,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1747
1747
  } | undefined;
1748
1748
  };
1749
1749
  } | {
1750
- readonly name: string;
1751
1750
  readonly description?: string | undefined;
1751
+ readonly name: string;
1752
1752
  readonly type: "openIdConnect";
1753
1753
  readonly openIdConnectUrl: string;
1754
1754
  })[];
@@ -1757,6 +1757,14 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1757
1757
  }[];
1758
1758
  }, ConfigValidationError, never>;
1759
1759
  loadAndResolveConfig: (configPath?: string | undefined, cwd?: string | undefined) => Effect.Effect<{
1760
+ readonly entry: readonly string[];
1761
+ readonly tsconfig: string;
1762
+ readonly dtoGlob: readonly string[];
1763
+ readonly include: readonly string[];
1764
+ readonly exclude: readonly string[];
1765
+ readonly output: string;
1766
+ readonly format: "json" | "yaml";
1767
+ readonly version?: string | undefined;
1760
1768
  readonly info: {
1761
1769
  readonly version: string;
1762
1770
  readonly title: string;
@@ -1776,37 +1784,29 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1776
1784
  readonly url: string;
1777
1785
  }[];
1778
1786
  readonly tags: readonly {
1779
- readonly name: string;
1780
1787
  readonly description?: string | undefined;
1788
+ readonly name: string;
1781
1789
  }[];
1782
- readonly tsconfig: string;
1783
- readonly entry: readonly string[];
1784
- readonly dtoGlob: readonly string[];
1785
- readonly include: readonly string[];
1786
- readonly exclude: readonly string[];
1787
- readonly output: string;
1788
- readonly format: "json" | "yaml";
1789
- readonly version?: string | undefined;
1790
1790
  readonly basePath?: string | undefined;
1791
1791
  readonly extractValidation: boolean;
1792
1792
  readonly excludeDecorators: readonly string[];
1793
1793
  readonly aliasRefs: "collapse" | "preserve";
1794
1794
  readonly pathFilter?: RegExp | ((path: string) => boolean) | undefined;
1795
1795
  readonly securitySchemes: readonly ({
1796
- readonly name: string;
1797
1796
  readonly description?: string | undefined;
1797
+ readonly name: string;
1798
1798
  readonly type: "http";
1799
1799
  readonly scheme: string;
1800
1800
  readonly bearerFormat?: string | undefined;
1801
1801
  } | {
1802
- readonly name: string;
1803
1802
  readonly description?: string | undefined;
1803
+ readonly name: string;
1804
1804
  readonly type: "apiKey";
1805
1805
  readonly in: "query" | "header" | "cookie";
1806
1806
  readonly parameterName: string;
1807
1807
  } | {
1808
- readonly name: string;
1809
1808
  readonly description?: string | undefined;
1809
+ readonly name: string;
1810
1810
  readonly type: "oauth2";
1811
1811
  readonly flows: {
1812
1812
  readonly implicit?: {
@@ -1843,8 +1843,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1843
1843
  } | undefined;
1844
1844
  };
1845
1845
  } | {
1846
- readonly name: string;
1847
1846
  readonly description?: string | undefined;
1847
+ readonly name: string;
1848
1848
  readonly type: "openIdConnect";
1849
1849
  readonly openIdConnectUrl: string;
1850
1850
  })[];
@@ -2058,7 +2058,7 @@ interface ClassValidationInfo {
2058
2058
  */
2059
2059
  declare const extractPropertyConstraints: (property: PropertyDeclaration) => ValidationConstraints;
2060
2060
  /**
2061
- * Check if a property has @IsOptional() decorator
2061
+ * Check if a property is optional.
2062
2062
  */
2063
2063
  declare const isPropertyOptional: (property: PropertyDeclaration) => boolean;
2064
2064
  /**
@@ -2271,5 +2271,5 @@ declare const generate: (options: GenerateOptions) => Effect.Effect<{
2271
2271
  }, ProjectInitError | EntryNotFoundError, ModuleTraversalService | ProjectService | MethodExtractionService>;
2272
2272
  declare const generateAsync: (options: GenerateOptions) => Promise<OpenApiPaths>;
2273
2273
 
2274
- export { MissingGenericSchemaTempFileCleanupError as $, generatePathsAsync as A, generateFromConfigEffect as B, ConfigService as C, generateFromConfigAsync as D, ParameterLocation as F, ReturnTypeInfo as H, HttpMethod as J, OpenApiGeneratorConfig as K, MethodInfo as M, ResolvedConfig as N, ProjectService as P, ProjectInitError as Q, ResolvedParameter as R, SpecFileNotFoundError as S, EntryNotFoundError as U, ValidationService as V, ConfigNotFoundError as W, ConfigLoadError as X, ConfigValidationError as Y, DtoGlobResolutionError as Z, InvalidMethodError as _, SpecFileReadError as a, MissingGenericSchemaTempFileWriteError as a0, PublicApiError as a1, ProjectServiceLive as a6, makeProjectContext as a7, findConfigFile as aA, loadConfigFromFile as aB, loadConfig as aC, resolveConfig as aD, loadAndResolveConfig as aE, validateSpec as aF, categorizeBrokenRefs as aG, formatValidationResult as aH, getModules as aa, getAllControllers as ab, getMethodInfo as ad, getMethodInfoEffect as ae, getControllerMethodInfos as af, getControllerMethodInfosEffect as ag, generateSchemas as ah, generateSchemasFromFiles as ai, SchemaGenerationError as aj, extractPropertyConstraints as an, isPropertyOptional as ao, extractPropertyValidationInfo as ap, extractClassValidationInfo as aq, extractClassValidationInfoEffect as ar, extractClassConstraints as as, getRequiredProperties as at, applyConstraintsToSchema as au, mergeValidationConstraints as av, mergeValidationConstraintsEffect as aw, SpecFileParseError as b, OpenApiOperation as d, ModuleTraversalService as g, SchemaService as h, MethodExtractionService as i, OutputService as j, generate$1 as k, defineConfig as m, generate as x, generateAsync as y, generatePathsEffect as z };
2274
+ export { MissingGenericSchemaTempFileCleanupError as $, generatePathsAsync as A, generateFromConfigEffect as B, ConfigService as C, generateFromConfigAsync as D, ParameterLocation as F, ReturnTypeInfo as H, HttpMethod as J, OpenApiGeneratorConfig as K, MethodInfo as M, ResolvedConfig as N, ProjectService as P, ProjectInitError as Q, ResolvedParameter as R, SpecFileNotFoundError as S, EntryNotFoundError as U, ValidationService as V, ConfigNotFoundError as W, ConfigLoadError as X, ConfigValidationError as Y, DtoGlobResolutionError as Z, InvalidMethodError as _, SpecFileReadError as a, MissingGenericSchemaTempFileWriteError as a0, PublicApiError as a1, ProjectServiceLive as a6, makeProjectContext as a7, findConfigFile as aA, loadConfigFromFile as aB, loadConfig as aC, resolveConfig as aD, loadAndResolveConfig as aE, validateSpec as aF, categorizeBrokenRefs as aG, formatValidationResult as aH, getModules as aa, getAllControllers as ab, getMethodInfo as ad, getMethodInfoEffect as ae, getControllerMethodInfos as af, getControllerMethodInfosEffect as ag, generateSchemas as ah, generateSchemasFromFiles as ai, SchemaGenerationError as aj, extractPropertyConstraints as an, isPropertyOptional as ao, extractPropertyValidationInfo as ap, extractClassValidationInfo as aq, extractClassValidationInfoEffect as ar, extractClassConstraints as as, getRequiredProperties as at, applyConstraintsToSchema as au, mergeValidationConstraints as av, mergeValidationConstraintsEffect as aw, SpecFileParseError as b, OpenApiOperation as d, OutputService as g, SchemaService as h, MethodExtractionService as i, ModuleTraversalService as j, generate$1 as k, defineConfig as m, generate as x, generateAsync as y, generatePathsEffect as z };
2275
2275
  export type { GenerateOptions as E, GeneratedSchemas as G, InfoConfig as I, LicenseConfig as L, OpenApiSpec as O, TagConfig as T, ProjectError as a2, ConfigError as a3, AnalysisError as a4, GeneratorError as a5, ProjectContext as a8, ProjectOptions as a9, ValidationResult as aI, BrokenRef as aJ, BrokenRefCategories as aK, ModuleWithControllers as ac, SchemaError as ak, SchemaGeneratorOptions as al, JsonSchema as am, ValidationConstraints as ax, PropertyValidationInfo as ay, ClassValidationInfo as az, OpenApiPaths as c, OpenApiPaths$1 as e, OpenApiSchema$1 as f, GenerateResult as l, Config as n, ContactConfig as o, ServerConfig as p, OutputFormat as q, TelemetryConfig as r, GenerateOverrides as s, OpenApiOperation$1 as t, OpenApiParameter as u, OpenApiRequestBody as v, OpenApiResponse as w };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nestjs-openapi",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Static code analysis tool to generate OpenAPI specifications from NestJS applications",
5
5
  "main": "./dist/index.mjs",
6
6
  "module": "./dist/index.mjs",