nestjs-openapi 0.3.2 → 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.
@@ -810,6 +810,8 @@ interface ParameterConstraints {
810
810
  readonly maxItems?: number;
811
811
  readonly enum?: readonly unknown[];
812
812
  readonly type?: string;
813
+ readonly description?: string;
814
+ readonly isArray?: boolean;
813
815
  }
814
816
  declare const ResolvedParameter: Schema.Struct<{
815
817
  name: typeof Schema.String;
@@ -1145,8 +1147,8 @@ declare const getMethodInfoEffect: (controller: ClassDeclaration, method: Method
1145
1147
  readonly scopes: readonly string[];
1146
1148
  readonly schemeName: string;
1147
1149
  }[];
1148
- readonly path: string;
1149
1150
  readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
1151
+ readonly path: string;
1150
1152
  readonly methodName: string;
1151
1153
  readonly controllerName: string;
1152
1154
  readonly controllerTags: readonly string[];
@@ -1157,8 +1159,8 @@ declare const getMethodInfoEffect: (controller: ClassDeclaration, method: Method
1157
1159
  readonly filePath: Option.Option<string>;
1158
1160
  };
1159
1161
  readonly parameters: readonly {
1160
- readonly description: Option.Option<string>;
1161
1162
  readonly name: string;
1163
+ readonly description: Option.Option<string>;
1162
1164
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1163
1165
  readonly tsType: string;
1164
1166
  readonly required: boolean;
@@ -1186,8 +1188,8 @@ declare const getControllerMethodInfosEffect: (controller: ClassDeclaration, opt
1186
1188
  readonly scopes: readonly string[];
1187
1189
  readonly schemeName: string;
1188
1190
  }[];
1189
- readonly path: string;
1190
1191
  readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
1192
+ readonly path: string;
1191
1193
  readonly methodName: string;
1192
1194
  readonly controllerName: string;
1193
1195
  readonly controllerTags: readonly string[];
@@ -1198,8 +1200,8 @@ declare const getControllerMethodInfosEffect: (controller: ClassDeclaration, opt
1198
1200
  readonly filePath: Option.Option<string>;
1199
1201
  };
1200
1202
  readonly parameters: readonly {
1201
- readonly description: Option.Option<string>;
1202
1203
  readonly name: string;
1204
+ readonly description: Option.Option<string>;
1203
1205
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1204
1206
  readonly tsType: string;
1205
1207
  readonly required: boolean;
@@ -1229,8 +1231,8 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1229
1231
  readonly scopes: readonly string[];
1230
1232
  readonly schemeName: string;
1231
1233
  }[];
1232
- readonly path: string;
1233
1234
  readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
1235
+ readonly path: string;
1234
1236
  readonly methodName: string;
1235
1237
  readonly controllerName: string;
1236
1238
  readonly controllerTags: readonly string[];
@@ -1241,8 +1243,8 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1241
1243
  readonly filePath: Option.Option<string>;
1242
1244
  };
1243
1245
  readonly parameters: readonly {
1244
- readonly description: Option.Option<string>;
1245
1246
  readonly name: string;
1247
+ readonly description: Option.Option<string>;
1246
1248
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1247
1249
  readonly tsType: string;
1248
1250
  readonly required: boolean;
@@ -1269,8 +1271,8 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1269
1271
  readonly scopes: readonly string[];
1270
1272
  readonly schemeName: string;
1271
1273
  }[];
1272
- readonly path: string;
1273
1274
  readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
1275
+ readonly path: string;
1274
1276
  readonly methodName: string;
1275
1277
  readonly controllerName: string;
1276
1278
  readonly controllerTags: readonly string[];
@@ -1281,8 +1283,8 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1281
1283
  readonly filePath: Option.Option<string>;
1282
1284
  };
1283
1285
  readonly parameters: readonly {
1284
- readonly description: Option.Option<string>;
1285
1286
  readonly name: string;
1287
+ readonly description: Option.Option<string>;
1286
1288
  readonly location: "query" | "header" | "cookie" | "path" | "body";
1287
1289
  readonly tsType: string;
1288
1290
  readonly required: boolean;
@@ -1309,6 +1311,175 @@ declare const MethodExtractionService_base: Effect.Service.Class<MethodExtractio
1309
1311
  declare class MethodExtractionService extends MethodExtractionService_base {
1310
1312
  }
1311
1313
 
1314
+ declare const transformMethod: (methodInfo: MethodInfo) => OpenApiPaths;
1315
+ declare const transformMethods: (methodInfos: readonly MethodInfo[]) => OpenApiPaths;
1316
+ declare const TransformerService_base: Effect.Service.Class<TransformerService, "TransformerService", {
1317
+ readonly effect: Effect.Effect<{
1318
+ transformMethod: (methodInfo: {
1319
+ readonly security: readonly {
1320
+ readonly scopes: readonly string[];
1321
+ readonly schemeName: string;
1322
+ }[];
1323
+ readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
1324
+ readonly path: string;
1325
+ readonly methodName: string;
1326
+ readonly controllerName: string;
1327
+ readonly controllerTags: readonly string[];
1328
+ readonly returnType: {
1329
+ readonly type: Option.Option<string>;
1330
+ readonly inline: Option.Option<string>;
1331
+ readonly container: Option.Option<"array">;
1332
+ readonly filePath: Option.Option<string>;
1333
+ };
1334
+ readonly parameters: readonly {
1335
+ readonly name: string;
1336
+ readonly description: Option.Option<string>;
1337
+ readonly location: "query" | "header" | "cookie" | "path" | "body";
1338
+ readonly tsType: string;
1339
+ readonly required: boolean;
1340
+ }[];
1341
+ readonly decorators: readonly string[];
1342
+ readonly operation: {
1343
+ readonly description: Option.Option<string>;
1344
+ readonly summary: Option.Option<string>;
1345
+ readonly operationId: Option.Option<string>;
1346
+ readonly deprecated: Option.Option<boolean>;
1347
+ };
1348
+ readonly responses: readonly {
1349
+ readonly description: Option.Option<string>;
1350
+ readonly type: Option.Option<string>;
1351
+ readonly statusCode: number;
1352
+ readonly isArray: boolean;
1353
+ }[];
1354
+ readonly httpCode: Option.Option<number>;
1355
+ readonly consumes: readonly string[];
1356
+ readonly produces: readonly string[];
1357
+ }) => Effect.Effect<OpenApiPaths, never, never>;
1358
+ transformMethods: (methodInfos: readonly {
1359
+ readonly security: readonly {
1360
+ readonly scopes: readonly string[];
1361
+ readonly schemeName: string;
1362
+ }[];
1363
+ readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
1364
+ readonly path: string;
1365
+ readonly methodName: string;
1366
+ readonly controllerName: string;
1367
+ readonly controllerTags: readonly string[];
1368
+ readonly returnType: {
1369
+ readonly type: Option.Option<string>;
1370
+ readonly inline: Option.Option<string>;
1371
+ readonly container: Option.Option<"array">;
1372
+ readonly filePath: Option.Option<string>;
1373
+ };
1374
+ readonly parameters: readonly {
1375
+ readonly name: string;
1376
+ readonly description: Option.Option<string>;
1377
+ readonly location: "query" | "header" | "cookie" | "path" | "body";
1378
+ readonly tsType: string;
1379
+ readonly required: boolean;
1380
+ }[];
1381
+ readonly decorators: readonly string[];
1382
+ readonly operation: {
1383
+ readonly description: Option.Option<string>;
1384
+ readonly summary: Option.Option<string>;
1385
+ readonly operationId: Option.Option<string>;
1386
+ readonly deprecated: Option.Option<boolean>;
1387
+ };
1388
+ readonly responses: readonly {
1389
+ readonly description: Option.Option<string>;
1390
+ readonly type: Option.Option<string>;
1391
+ readonly statusCode: number;
1392
+ readonly isArray: boolean;
1393
+ }[];
1394
+ readonly httpCode: Option.Option<number>;
1395
+ readonly consumes: readonly string[];
1396
+ readonly produces: readonly string[];
1397
+ }[]) => Effect.Effect<OpenApiPaths, never, never>;
1398
+ }, never, never>;
1399
+ }>;
1400
+ declare class TransformerService extends TransformerService_base {
1401
+ }
1402
+ declare const transformMethodEffect: (methodInfo: {
1403
+ readonly security: readonly {
1404
+ readonly scopes: readonly string[];
1405
+ readonly schemeName: string;
1406
+ }[];
1407
+ readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
1408
+ readonly path: string;
1409
+ readonly methodName: string;
1410
+ readonly controllerName: string;
1411
+ readonly controllerTags: readonly string[];
1412
+ readonly returnType: {
1413
+ readonly type: Option.Option<string>;
1414
+ readonly inline: Option.Option<string>;
1415
+ readonly container: Option.Option<"array">;
1416
+ readonly filePath: Option.Option<string>;
1417
+ };
1418
+ readonly parameters: readonly {
1419
+ readonly name: string;
1420
+ readonly description: Option.Option<string>;
1421
+ readonly location: "query" | "header" | "cookie" | "path" | "body";
1422
+ readonly tsType: string;
1423
+ readonly required: boolean;
1424
+ }[];
1425
+ readonly decorators: readonly string[];
1426
+ readonly operation: {
1427
+ readonly description: Option.Option<string>;
1428
+ readonly summary: Option.Option<string>;
1429
+ readonly operationId: Option.Option<string>;
1430
+ readonly deprecated: Option.Option<boolean>;
1431
+ };
1432
+ readonly responses: readonly {
1433
+ readonly description: Option.Option<string>;
1434
+ readonly type: Option.Option<string>;
1435
+ readonly statusCode: number;
1436
+ readonly isArray: boolean;
1437
+ }[];
1438
+ readonly httpCode: Option.Option<number>;
1439
+ readonly consumes: readonly string[];
1440
+ readonly produces: readonly string[];
1441
+ }) => Effect.Effect<OpenApiPaths, never, never>;
1442
+ declare const transformMethodsEffect: (methodInfos: readonly {
1443
+ readonly security: readonly {
1444
+ readonly scopes: readonly string[];
1445
+ readonly schemeName: string;
1446
+ }[];
1447
+ readonly httpMethod: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD" | "ALL";
1448
+ readonly path: string;
1449
+ readonly methodName: string;
1450
+ readonly controllerName: string;
1451
+ readonly controllerTags: readonly string[];
1452
+ readonly returnType: {
1453
+ readonly type: Option.Option<string>;
1454
+ readonly inline: Option.Option<string>;
1455
+ readonly container: Option.Option<"array">;
1456
+ readonly filePath: Option.Option<string>;
1457
+ };
1458
+ readonly parameters: readonly {
1459
+ readonly name: string;
1460
+ readonly description: Option.Option<string>;
1461
+ readonly location: "query" | "header" | "cookie" | "path" | "body";
1462
+ readonly tsType: string;
1463
+ readonly required: boolean;
1464
+ }[];
1465
+ readonly decorators: readonly string[];
1466
+ readonly operation: {
1467
+ readonly description: Option.Option<string>;
1468
+ readonly summary: Option.Option<string>;
1469
+ readonly operationId: Option.Option<string>;
1470
+ readonly deprecated: Option.Option<boolean>;
1471
+ };
1472
+ readonly responses: readonly {
1473
+ readonly description: Option.Option<string>;
1474
+ readonly type: Option.Option<string>;
1475
+ readonly statusCode: number;
1476
+ readonly isArray: boolean;
1477
+ }[];
1478
+ readonly httpCode: Option.Option<number>;
1479
+ readonly consumes: readonly string[];
1480
+ readonly produces: readonly string[];
1481
+ }[]) => Effect.Effect<OpenApiPaths, never, never>;
1482
+
1312
1483
  /**
1313
1484
  * Define configuration for OpenAPI generation.
1314
1485
  *
@@ -1363,25 +1534,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1363
1534
  readonly url: string;
1364
1535
  }[] | undefined;
1365
1536
  readonly tags?: readonly {
1366
- readonly description?: string | undefined;
1367
1537
  readonly name: string;
1538
+ readonly description?: string | undefined;
1368
1539
  }[] | undefined;
1369
1540
  readonly security?: {
1370
1541
  readonly schemes?: readonly ({
1371
- readonly description?: string | undefined;
1372
1542
  readonly name: string;
1543
+ readonly description?: string | undefined;
1373
1544
  readonly type: "http";
1374
1545
  readonly scheme: string;
1375
1546
  readonly bearerFormat?: string | undefined;
1376
1547
  } | {
1377
- readonly description?: string | undefined;
1378
1548
  readonly name: string;
1549
+ readonly description?: string | undefined;
1379
1550
  readonly type: "apiKey";
1380
1551
  readonly in: "query" | "header" | "cookie";
1381
1552
  readonly parameterName: string;
1382
1553
  } | {
1383
- readonly description?: string | undefined;
1384
1554
  readonly name: string;
1555
+ readonly description?: string | undefined;
1385
1556
  readonly type: "oauth2";
1386
1557
  readonly flows: {
1387
1558
  readonly implicit?: {
@@ -1418,8 +1589,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1418
1589
  } | undefined;
1419
1590
  };
1420
1591
  } | {
1421
- readonly description?: string | undefined;
1422
1592
  readonly name: string;
1593
+ readonly description?: string | undefined;
1423
1594
  readonly type: "openIdConnect";
1424
1595
  readonly openIdConnectUrl: string;
1425
1596
  })[] | undefined;
@@ -1473,25 +1644,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1473
1644
  readonly url: string;
1474
1645
  }[] | undefined;
1475
1646
  readonly tags?: readonly {
1476
- readonly description?: string | undefined;
1477
1647
  readonly name: string;
1648
+ readonly description?: string | undefined;
1478
1649
  }[] | undefined;
1479
1650
  readonly security?: {
1480
1651
  readonly schemes?: readonly ({
1481
- readonly description?: string | undefined;
1482
1652
  readonly name: string;
1653
+ readonly description?: string | undefined;
1483
1654
  readonly type: "http";
1484
1655
  readonly scheme: string;
1485
1656
  readonly bearerFormat?: string | undefined;
1486
1657
  } | {
1487
- readonly description?: string | undefined;
1488
1658
  readonly name: string;
1659
+ readonly description?: string | undefined;
1489
1660
  readonly type: "apiKey";
1490
1661
  readonly in: "query" | "header" | "cookie";
1491
1662
  readonly parameterName: string;
1492
1663
  } | {
1493
- readonly description?: string | undefined;
1494
1664
  readonly name: string;
1665
+ readonly description?: string | undefined;
1495
1666
  readonly type: "oauth2";
1496
1667
  readonly flows: {
1497
1668
  readonly implicit?: {
@@ -1528,8 +1699,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1528
1699
  } | undefined;
1529
1700
  };
1530
1701
  } | {
1531
- readonly description?: string | undefined;
1532
1702
  readonly name: string;
1703
+ readonly description?: string | undefined;
1533
1704
  readonly type: "openIdConnect";
1534
1705
  readonly openIdConnectUrl: string;
1535
1706
  })[] | undefined;
@@ -1583,25 +1754,25 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1583
1754
  readonly url: string;
1584
1755
  }[] | undefined;
1585
1756
  readonly tags?: readonly {
1586
- readonly description?: string | undefined;
1587
1757
  readonly name: string;
1758
+ readonly description?: string | undefined;
1588
1759
  }[] | undefined;
1589
1760
  readonly security?: {
1590
1761
  readonly schemes?: readonly ({
1591
- readonly description?: string | undefined;
1592
1762
  readonly name: string;
1763
+ readonly description?: string | undefined;
1593
1764
  readonly type: "http";
1594
1765
  readonly scheme: string;
1595
1766
  readonly bearerFormat?: string | undefined;
1596
1767
  } | {
1597
- readonly description?: string | undefined;
1598
1768
  readonly name: string;
1769
+ readonly description?: string | undefined;
1599
1770
  readonly type: "apiKey";
1600
1771
  readonly in: "query" | "header" | "cookie";
1601
1772
  readonly parameterName: string;
1602
1773
  } | {
1603
- readonly description?: string | undefined;
1604
1774
  readonly name: string;
1775
+ readonly description?: string | undefined;
1605
1776
  readonly type: "oauth2";
1606
1777
  readonly flows: {
1607
1778
  readonly implicit?: {
@@ -1638,8 +1809,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1638
1809
  } | undefined;
1639
1810
  };
1640
1811
  } | {
1641
- readonly description?: string | undefined;
1642
1812
  readonly name: string;
1813
+ readonly description?: string | undefined;
1643
1814
  readonly type: "openIdConnect";
1644
1815
  readonly openIdConnectUrl: string;
1645
1816
  })[] | undefined;
@@ -1688,8 +1859,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1688
1859
  readonly url: string;
1689
1860
  }[];
1690
1861
  readonly tags: readonly {
1691
- readonly description?: string | undefined;
1692
1862
  readonly name: string;
1863
+ readonly description?: string | undefined;
1693
1864
  }[];
1694
1865
  readonly basePath?: string | undefined;
1695
1866
  readonly extractValidation: boolean;
@@ -1697,20 +1868,20 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1697
1868
  readonly aliasRefs: "collapse" | "preserve";
1698
1869
  readonly pathFilter?: RegExp | ((path: string) => boolean) | undefined;
1699
1870
  readonly securitySchemes: readonly ({
1700
- readonly description?: string | undefined;
1701
1871
  readonly name: string;
1872
+ readonly description?: string | undefined;
1702
1873
  readonly type: "http";
1703
1874
  readonly scheme: string;
1704
1875
  readonly bearerFormat?: string | undefined;
1705
1876
  } | {
1706
- readonly description?: string | undefined;
1707
1877
  readonly name: string;
1878
+ readonly description?: string | undefined;
1708
1879
  readonly type: "apiKey";
1709
1880
  readonly in: "query" | "header" | "cookie";
1710
1881
  readonly parameterName: string;
1711
1882
  } | {
1712
- readonly description?: string | undefined;
1713
1883
  readonly name: string;
1884
+ readonly description?: string | undefined;
1714
1885
  readonly type: "oauth2";
1715
1886
  readonly flows: {
1716
1887
  readonly implicit?: {
@@ -1747,8 +1918,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1747
1918
  } | undefined;
1748
1919
  };
1749
1920
  } | {
1750
- readonly description?: string | undefined;
1751
1921
  readonly name: string;
1922
+ readonly description?: string | undefined;
1752
1923
  readonly type: "openIdConnect";
1753
1924
  readonly openIdConnectUrl: string;
1754
1925
  })[];
@@ -1784,8 +1955,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1784
1955
  readonly url: string;
1785
1956
  }[];
1786
1957
  readonly tags: readonly {
1787
- readonly description?: string | undefined;
1788
1958
  readonly name: string;
1959
+ readonly description?: string | undefined;
1789
1960
  }[];
1790
1961
  readonly basePath?: string | undefined;
1791
1962
  readonly extractValidation: boolean;
@@ -1793,20 +1964,20 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1793
1964
  readonly aliasRefs: "collapse" | "preserve";
1794
1965
  readonly pathFilter?: RegExp | ((path: string) => boolean) | undefined;
1795
1966
  readonly securitySchemes: readonly ({
1796
- readonly description?: string | undefined;
1797
1967
  readonly name: string;
1968
+ readonly description?: string | undefined;
1798
1969
  readonly type: "http";
1799
1970
  readonly scheme: string;
1800
1971
  readonly bearerFormat?: string | undefined;
1801
1972
  } | {
1802
- readonly description?: string | undefined;
1803
1973
  readonly name: string;
1974
+ readonly description?: string | undefined;
1804
1975
  readonly type: "apiKey";
1805
1976
  readonly in: "query" | "header" | "cookie";
1806
1977
  readonly parameterName: string;
1807
1978
  } | {
1808
- readonly description?: string | undefined;
1809
1979
  readonly name: string;
1980
+ readonly description?: string | undefined;
1810
1981
  readonly type: "oauth2";
1811
1982
  readonly flows: {
1812
1983
  readonly implicit?: {
@@ -1843,8 +2014,8 @@ declare const ConfigService_base: Effect.Service.Class<ConfigService, "ConfigSer
1843
2014
  } | undefined;
1844
2015
  };
1845
2016
  } | {
1846
- readonly description?: string | undefined;
1847
2017
  readonly name: string;
2018
+ readonly description?: string | undefined;
1848
2019
  readonly type: "openIdConnect";
1849
2020
  readonly openIdConnectUrl: string;
1850
2021
  })[];
@@ -1995,16 +2166,6 @@ declare const generateSchemas: (options: SchemaGeneratorOptions) => Effect.Effec
1995
2166
  */
1996
2167
  declare const generateSchemasFromFiles: (filePaths: readonly string[], tsconfig: string) => Effect.Effect<GeneratedSchemas, never, never>;
1997
2168
 
1998
- declare const SchemaService_base: Effect.Service.Class<SchemaService, "SchemaService", {
1999
- readonly accessors: true;
2000
- readonly effect: Effect.Effect<{
2001
- generateSchemas: (options: SchemaGeneratorOptions) => Effect.Effect<GeneratedSchemas, SchemaGenerationError, never>;
2002
- generateSchemasFromFiles: (filePaths: readonly string[], tsconfig: string) => Effect.Effect<GeneratedSchemas, never, never>;
2003
- }, never, never>;
2004
- }>;
2005
- declare class SchemaService extends SchemaService_base {
2006
- }
2007
-
2008
2169
  /**
2009
2170
  * Validation Mapper - Maps class-validator decorators to OpenAPI constraints
2010
2171
  *
@@ -2086,6 +2247,14 @@ declare const applyConstraintsToSchema: (schema: JsonSchema, propertyConstraints
2086
2247
  * Merge validation constraints into generated schemas
2087
2248
  */
2088
2249
  declare const mergeValidationConstraints: (schemas: GeneratedSchemas, classConstraints: Map<string, Record<string, ValidationConstraints>>, classRequired: Map<string, readonly string[]>) => GeneratedSchemas;
2250
+ declare const ValidationMapperService_base: Effect.Service.Class<ValidationMapperService, "ValidationMapperService", {
2251
+ readonly effect: Effect.Effect<{
2252
+ extractClassValidationInfo: (classDecl: ClassDeclaration) => Effect.Effect<ClassValidationInfo, ValidationMappingError, never>;
2253
+ mergeValidationConstraints: (schemas: GeneratedSchemas, classConstraints: Map<string, Record<string, ValidationConstraints>>, classRequired: Map<string, readonly string[]>) => Effect.Effect<GeneratedSchemas, never, never>;
2254
+ }, never, never>;
2255
+ }>;
2256
+ declare class ValidationMapperService extends ValidationMapperService_base {
2257
+ }
2089
2258
  /**
2090
2259
  * Effect-native wrapper with trace annotations for class validation extraction.
2091
2260
  */
@@ -2095,14 +2264,14 @@ declare const extractClassValidationInfoEffect: (classDecl: ClassDeclaration) =>
2095
2264
  */
2096
2265
  declare const mergeValidationConstraintsEffect: (schemas: GeneratedSchemas, classConstraints: Map<string, Record<string, ValidationConstraints>>, classRequired: Map<string, readonly string[]>) => Effect.Effect<GeneratedSchemas, never, never>;
2097
2266
 
2098
- declare const ValidationService_base: Effect.Service.Class<ValidationService, "ValidationService", {
2267
+ declare const SchemaService_base: Effect.Service.Class<SchemaService, "SchemaService", {
2099
2268
  readonly accessors: true;
2100
2269
  readonly effect: Effect.Effect<{
2101
- extractClassValidationInfo: (classDecl: ClassDeclaration) => Effect.Effect<ClassValidationInfo, ValidationMappingError, never>;
2102
- mergeValidationConstraints: (schemas: GeneratedSchemas, classConstraints: Map<string, Record<string, ValidationConstraints>>, classRequired: Map<string, readonly string[]>) => Effect.Effect<GeneratedSchemas, never, never>;
2270
+ generateSchemas: (options: SchemaGeneratorOptions) => Effect.Effect<GeneratedSchemas, SchemaGenerationError, never>;
2271
+ generateSchemasFromFiles: (filePaths: readonly string[], tsconfig: string) => Effect.Effect<GeneratedSchemas, never, never>;
2103
2272
  }, never, never>;
2104
2273
  }>;
2105
- declare class ValidationService extends ValidationService_base {
2274
+ declare class SchemaService extends SchemaService_base {
2106
2275
  }
2107
2276
 
2108
2277
  declare const OutputService_base: Effect.Service.Class<OutputService, "OutputService", {
@@ -2168,46 +2337,7 @@ interface GenerateOptions {
2168
2337
  /**
2169
2338
  * Low-level path-only Effect API from entry + tsconfig.
2170
2339
  */
2171
- declare const generatePathsEffect: (options: GenerateOptions) => Effect.Effect<{
2172
- [path: string]: {
2173
- [method: string]: {
2174
- readonly parameters?: readonly {
2175
- readonly name: string;
2176
- readonly required: boolean;
2177
- readonly description?: string | undefined;
2178
- readonly in: "path" | "query" | "header" | "cookie";
2179
- readonly schema: OpenApiSchema;
2180
- }[] | undefined;
2181
- readonly description?: string | undefined;
2182
- readonly summary?: string | undefined;
2183
- readonly operationId: string;
2184
- readonly deprecated?: boolean | undefined;
2185
- readonly responses: {
2186
- readonly [x: string]: {
2187
- readonly description: string;
2188
- readonly content?: {
2189
- readonly [x: string]: {
2190
- readonly schema: unknown;
2191
- };
2192
- } | undefined;
2193
- };
2194
- };
2195
- readonly security?: readonly {
2196
- readonly [x: string]: readonly string[];
2197
- }[] | undefined;
2198
- readonly requestBody?: {
2199
- readonly required?: boolean | undefined;
2200
- readonly description?: string | undefined;
2201
- readonly content: {
2202
- readonly [x: string]: {
2203
- readonly schema: unknown;
2204
- };
2205
- };
2206
- } | undefined;
2207
- readonly tags?: readonly string[] | undefined;
2208
- };
2209
- };
2210
- }, ProjectInitError | EntryNotFoundError, ModuleTraversalService | ProjectService | MethodExtractionService>;
2340
+ declare const generatePathsEffect: (options: GenerateOptions) => Effect.Effect<OpenApiPaths, ProjectInitError | EntryNotFoundError, TransformerService | ModuleTraversalService | ProjectService | MethodExtractionService>;
2211
2341
  /**
2212
2342
  * Canonical config-file based Effect API.
2213
2343
  */
@@ -2217,7 +2347,7 @@ declare const generateFromConfigEffect: (configPath: string, overrides?: Generat
2217
2347
  operationCount: number;
2218
2348
  schemaCount: number;
2219
2349
  validation: ValidationResult;
2220
- }, EntryNotFoundError | ConfigError | SchemaGenerationError | ValidationMappingError | DtoGlobResolutionError | MissingGenericSchemaTempFileWriteError | OutputDirectoryCreationError | OutputSerializationError | OutputWriteError, ModuleTraversalService | MethodExtractionService | ConfigService | SchemaService | ValidationService | OutputService>;
2350
+ }, EntryNotFoundError | ConfigError | SchemaGenerationError | ValidationMappingError | DtoGlobResolutionError | MissingGenericSchemaTempFileWriteError | OutputDirectoryCreationError | OutputSerializationError | OutputWriteError, TransformerService | ModuleTraversalService | MethodExtractionService | ConfigService | SchemaService | ValidationMapperService | OutputService>;
2221
2351
  /**
2222
2352
  * Promise wrapper for path-only API.
2223
2353
  */
@@ -2229,47 +2359,8 @@ declare const generateFromConfigAsync: (configPath: string, overrides?: Generate
2229
2359
  /**
2230
2360
  * Backward-compatible aliases.
2231
2361
  */
2232
- declare const generate: (options: GenerateOptions) => Effect.Effect<{
2233
- [path: string]: {
2234
- [method: string]: {
2235
- readonly parameters?: readonly {
2236
- readonly name: string;
2237
- readonly required: boolean;
2238
- readonly description?: string | undefined;
2239
- readonly in: "path" | "query" | "header" | "cookie";
2240
- readonly schema: OpenApiSchema;
2241
- }[] | undefined;
2242
- readonly description?: string | undefined;
2243
- readonly summary?: string | undefined;
2244
- readonly operationId: string;
2245
- readonly deprecated?: boolean | undefined;
2246
- readonly responses: {
2247
- readonly [x: string]: {
2248
- readonly description: string;
2249
- readonly content?: {
2250
- readonly [x: string]: {
2251
- readonly schema: unknown;
2252
- };
2253
- } | undefined;
2254
- };
2255
- };
2256
- readonly security?: readonly {
2257
- readonly [x: string]: readonly string[];
2258
- }[] | undefined;
2259
- readonly requestBody?: {
2260
- readonly required?: boolean | undefined;
2261
- readonly description?: string | undefined;
2262
- readonly content: {
2263
- readonly [x: string]: {
2264
- readonly schema: unknown;
2265
- };
2266
- };
2267
- } | undefined;
2268
- readonly tags?: readonly string[] | undefined;
2269
- };
2270
- };
2271
- }, ProjectInitError | EntryNotFoundError, ModuleTraversalService | ProjectService | MethodExtractionService>;
2362
+ declare const generate: (options: GenerateOptions) => Effect.Effect<OpenApiPaths, ProjectInitError | EntryNotFoundError, TransformerService | ModuleTraversalService | ProjectService | MethodExtractionService>;
2272
2363
  declare const generateAsync: (options: GenerateOptions) => Promise<OpenApiPaths>;
2273
2364
 
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
- 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 };
2365
+ export { MissingGenericSchemaTempFileWriteError as $, generateFromConfigAsync as A, ConfigService as C, ParameterLocation as D, ReturnTypeInfo as E, MethodInfo as F, HttpMethod as H, OpenApiGeneratorConfig as J, ResolvedConfig as K, ModuleTraversalService as M, ProjectInitError as N, ProjectService as P, EntryNotFoundError as Q, ResolvedParameter as R, SpecFileNotFoundError as S, TransformerService as T, ConfigNotFoundError as U, ValidationMapperService as V, ConfigLoadError as W, ConfigValidationError as X, DtoGlobResolutionError as Y, InvalidMethodError as Z, MissingGenericSchemaTempFileCleanupError as _, SpecFileReadError as a, PublicApiError as a0, ProjectServiceLive as a5, makeProjectContext as a6, getModules as a9, findConfigFile as aD, loadConfigFromFile as aE, loadConfig as aF, resolveConfig as aG, loadAndResolveConfig as aH, validateSpec as aI, categorizeBrokenRefs as aJ, formatValidationResult as aK, getAllControllers as aa, getMethodInfo as ac, getMethodInfoEffect as ad, getControllerMethodInfos as ae, getControllerMethodInfosEffect as af, transformMethod as ag, transformMethodEffect as ah, transformMethods as ai, transformMethodsEffect as aj, generateSchemas as ak, generateSchemasFromFiles as al, SchemaGenerationError as am, extractPropertyConstraints as aq, isPropertyOptional as ar, extractPropertyValidationInfo as as, extractClassValidationInfo as at, extractClassValidationInfoEffect as au, extractClassConstraints as av, getRequiredProperties as aw, applyConstraintsToSchema as ax, mergeValidationConstraints as ay, mergeValidationConstraintsEffect as az, SpecFileParseError as b, MethodExtractionService as e, SchemaService as f, OutputService as g, generate$1 as h, defineConfig as j, generate as v, generateAsync as w, generatePathsEffect as x, generatePathsAsync as y, generateFromConfigEffect as z };
2366
+ export type { GenerateOptions as B, GeneratedSchemas as G, InfoConfig as I, LicenseConfig as L, OpenApiSpec as O, ProjectError as a1, ConfigError as a2, AnalysisError as a3, GeneratorError as a4, ProjectContext as a7, ProjectOptions as a8, ValidationConstraints as aA, PropertyValidationInfo as aB, ClassValidationInfo as aC, ValidationResult as aL, BrokenRef as aM, BrokenRefCategories as aN, ModuleWithControllers as ab, SchemaError as an, SchemaGeneratorOptions as ao, JsonSchema as ap, OpenApiPaths$1 as c, OpenApiSchema$1 as d, GenerateResult as i, Config as k, ContactConfig as l, ServerConfig as m, TagConfig as n, OutputFormat as o, TelemetryConfig as p, GenerateOverrides as q, OpenApiOperation$1 as r, OpenApiParameter as s, OpenApiRequestBody as t, OpenApiResponse as u };