@furystack/rest-service 12.2.0 → 12.3.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.
Files changed (74) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/esm/api-manager.d.ts +1 -1
  3. package/esm/api-manager.d.ts.map +1 -1
  4. package/esm/api-manager.js +3 -2
  5. package/esm/api-manager.js.map +1 -1
  6. package/esm/endpoint-generators/create-get-openapi-document-action.d.ts +29 -0
  7. package/esm/endpoint-generators/create-get-openapi-document-action.d.ts.map +1 -0
  8. package/esm/endpoint-generators/create-get-openapi-document-action.js +61 -0
  9. package/esm/endpoint-generators/create-get-openapi-document-action.js.map +1 -0
  10. package/esm/endpoint-generators/index.d.ts +2 -0
  11. package/esm/endpoint-generators/index.d.ts.map +1 -1
  12. package/esm/endpoint-generators/index.js +2 -0
  13. package/esm/endpoint-generators/index.js.map +1 -1
  14. package/esm/endpoint-generators/with-schema-and-openapi-action.d.ts +23 -0
  15. package/esm/endpoint-generators/with-schema-and-openapi-action.d.ts.map +1 -0
  16. package/esm/endpoint-generators/with-schema-and-openapi-action.js +2 -0
  17. package/esm/endpoint-generators/with-schema-and-openapi-action.js.map +1 -0
  18. package/esm/openapi/auth-provider-to-security-scheme.d.ts +14 -0
  19. package/esm/openapi/auth-provider-to-security-scheme.d.ts.map +1 -0
  20. package/esm/openapi/auth-provider-to-security-scheme.js +35 -0
  21. package/esm/openapi/auth-provider-to-security-scheme.js.map +1 -0
  22. package/esm/openapi/auth-provider-to-security-scheme.spec.d.ts +2 -0
  23. package/esm/openapi/auth-provider-to-security-scheme.spec.d.ts.map +1 -0
  24. package/esm/openapi/auth-provider-to-security-scheme.spec.js +42 -0
  25. package/esm/openapi/auth-provider-to-security-scheme.spec.js.map +1 -0
  26. package/esm/openapi/generate-openapi-document.d.ts +21 -0
  27. package/esm/openapi/generate-openapi-document.d.ts.map +1 -0
  28. package/esm/openapi/generate-openapi-document.js +144 -0
  29. package/esm/openapi/generate-openapi-document.js.map +1 -0
  30. package/esm/openapi/generate-openapi-document.spec.d.ts +2 -0
  31. package/esm/openapi/generate-openapi-document.spec.d.ts.map +1 -0
  32. package/esm/openapi/generate-openapi-document.spec.js +643 -0
  33. package/esm/openapi/generate-openapi-document.spec.js.map +1 -0
  34. package/esm/openapi/openapi-round-trip.advanced-api.json +363 -0
  35. package/esm/openapi/openapi-round-trip.crud-api.json +115 -0
  36. package/esm/openapi/openapi-round-trip.example-api.json +71 -0
  37. package/esm/openapi/openapi-round-trip.spec.d.ts +2 -0
  38. package/esm/openapi/openapi-round-trip.spec.d.ts.map +1 -0
  39. package/esm/openapi/openapi-round-trip.spec.js +525 -0
  40. package/esm/openapi/openapi-round-trip.spec.js.map +1 -0
  41. package/esm/swagger/generate-swagger-json.spec.js +1 -1
  42. package/esm/swagger/generate-swagger-json.spec.js.map +1 -1
  43. package/esm/validate.integration.spec.js +153 -32
  44. package/esm/validate.integration.spec.js.map +1 -1
  45. package/package.json +9 -9
  46. package/src/api-manager.ts +7 -3
  47. package/src/endpoint-generators/create-get-openapi-document-action.ts +96 -0
  48. package/src/endpoint-generators/index.ts +2 -0
  49. package/src/endpoint-generators/with-schema-and-openapi-action.ts +14 -0
  50. package/src/openapi/auth-provider-to-security-scheme.spec.ts +50 -0
  51. package/src/openapi/auth-provider-to-security-scheme.ts +41 -0
  52. package/src/openapi/generate-openapi-document.spec.ts +733 -0
  53. package/src/openapi/generate-openapi-document.ts +198 -0
  54. package/src/openapi/openapi-round-trip.advanced-api.json +363 -0
  55. package/src/openapi/openapi-round-trip.crud-api.json +115 -0
  56. package/src/openapi/openapi-round-trip.example-api.json +71 -0
  57. package/src/openapi/openapi-round-trip.spec.ts +621 -0
  58. package/src/swagger/generate-swagger-json.spec.ts +1 -1
  59. package/src/validate.integration.spec.ts +184 -33
  60. package/esm/endpoint-generators/create-get-swagger-json-action.d.ts +0 -14
  61. package/esm/endpoint-generators/create-get-swagger-json-action.d.ts.map +0 -1
  62. package/esm/endpoint-generators/create-get-swagger-json-action.js +0 -18
  63. package/esm/endpoint-generators/create-get-swagger-json-action.js.map +0 -1
  64. package/esm/endpoint-generators/with-schema-and-swagger-action.d.ts +0 -21
  65. package/esm/endpoint-generators/with-schema-and-swagger-action.d.ts.map +0 -1
  66. package/esm/endpoint-generators/with-schema-and-swagger-action.js +0 -2
  67. package/esm/endpoint-generators/with-schema-and-swagger-action.js.map +0 -1
  68. package/esm/swagger/generate-swagger-json.d.ts +0 -14
  69. package/esm/swagger/generate-swagger-json.d.ts.map +0 -1
  70. package/esm/swagger/generate-swagger-json.js +0 -108
  71. package/esm/swagger/generate-swagger-json.js.map +0 -1
  72. package/src/endpoint-generators/create-get-swagger-json-action.ts +0 -26
  73. package/src/endpoint-generators/with-schema-and-swagger-action.ts +0 -11
  74. package/src/swagger/generate-swagger-json.ts +0 -132
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## [12.3.0] - 2026-03-07
4
+
5
+ ### ⬆️ Dependencies
6
+
7
+ - Updated `@types/node` from `^25.3.1` to `^25.3.5`
8
+
9
+ ### 🗑️ Deprecated
10
+
11
+ - `generateSwaggerJsonFromApiSchema` - Use `generateOpenApiDocument` instead
12
+ - `CreateGetSwaggerJsonAction` - Use `CreateGetOpenApiDocumentAction` instead
13
+ - `WithSchemaAndSwaggerAction` - Use `WithSchemaAndOpenApiAction` instead
14
+
15
+ ### ✨ Features
16
+
17
+ ### OpenAPI Document Generation with Metadata
18
+
19
+ - Added `generateOpenApiDocument()` - Replaces `generateSwaggerJsonFromApiSchema` with enhanced output. Now extracts request body, query parameter, and header parameter schemas from `Validate()` wrappers. Accepts a `metadata` parameter to emit document-level metadata (servers, tags, contact, license, externalDocs, securitySchemes) and operation-level metadata (tags, deprecated, summary, description).
20
+
21
+ - Added `CreateGetOpenApiDocumentAction` - Replaces `CreateGetSwaggerJsonAction`, serves the generated OpenAPI document at `/openapi.json`
22
+
23
+ - Added `WithSchemaAndOpenApiAction<T>` - Replaces `WithSchemaAndSwaggerAction<T>`, extending a `RestApi` with `/schema` and `/openapi.json` endpoints
24
+
25
+ ### Metadata Round-Trip
26
+
27
+ Operation-level `tags`, `deprecated`, `summary`, and `description` from the `ApiEndpointDefinition` are now emitted into the generated OpenAPI document. When combined with `openApiToSchema()` from `@furystack/rest`, these fields survive the full round-trip.
28
+
29
+ ### ♻️ Refactoring
30
+
31
+ - Renamed `swagger/generate-swagger-json.ts` to `openapi/generate-openapi-document.ts` with backward-compatible re-exports
32
+ - Changed the auto-registered schema endpoint from `/swagger.json` to `/openapi.json` in `ApiManager`
33
+
34
+ ### 🧪 Tests
35
+
36
+ - Unit tests for `generateOpenApiDocument()` covering all HTTP methods (including HEAD, OPTIONS, TRACE, CONNECT), path/query/header parameter extraction, request body extraction, security, and operation metadata emission
37
+ - Round-trip integration tests importing OpenAPI JSON fixtures (basic example API, CRUD API, and advanced Pet Store API) and verifying structural fidelity through the `openApiToSchema() -> generateOpenApiDocument()` pipeline
38
+ - Type-level tests for `OpenApiToRestApi` with the advanced fixture covering `$ref` resolution, `allOf` composition, path parameters, request body extraction, and metadata
39
+ - Updated `validate.integration.spec.ts` to use the new `/openapi.json` endpoint
40
+
41
+ ## [12.2.1] - 2026-03-06
42
+
43
+ ### ⬆️ Dependencies
44
+
45
+ - Updated internal FuryStack dependencies
46
+
3
47
  ## [12.2.0] - 2026-03-03
4
48
 
5
49
  ### ✨ Features
@@ -45,7 +45,7 @@ export interface ImplementApiOptions<T extends RestApi> {
45
45
  deserializeQueryParams?: (param: string) => any;
46
46
  /**
47
47
  * Adds an additional 'GET /schema' endpoint that returns the schema definitions of the API.
48
- * Also adds a 'GET /swagger.json' endpoint that returns the API schema in OpenAPI 3.0 (Swagger) format.
48
+ * Also adds a 'GET /openapi.json' endpoint that returns the API schema in OpenAPI 3.1 format.
49
49
  */
50
50
  enableGetSchema?: boolean;
51
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"api-manager.d.ts","sourceRoot":"","sources":["../src/api-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-manager.d.ts","sourceRoot":"","sources":["../src/api-manager.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ import { ErrorAction } from './actions/error-action.js';
16
16
  import { NotFoundAction } from './actions/not-found-action.js';
17
17
  import { addCorsHeaders } from './add-cors-header.js';
18
18
  import { CreateGetSchemaAction } from './endpoint-generators/create-get-schema-action.js';
19
- import { CreateGetSwaggerJsonAction } from './endpoint-generators/create-get-swagger-json-action.js';
19
+ import { CreateGetOpenApiDocumentAction, CreateDeprecatedSwaggerRedirect, } from './endpoint-generators/create-get-openapi-document-action.js';
20
20
  import { HttpUserContext } from './http-user-context.js';
21
21
  import { readPostBody } from './read-post-body.js';
22
22
  import { ServerManager } from './server-manager.js';
@@ -46,7 +46,8 @@ let ApiManager = class ApiManager {
46
46
  GET: {
47
47
  ...api.GET,
48
48
  '/schema': CreateGetSchemaAction(api, name, description, version),
49
- '/swagger.json': CreateGetSwaggerJsonAction(api, name, description, version),
49
+ '/openapi.json': CreateGetOpenApiDocumentAction(api, name, description, version),
50
+ '/swagger.json': CreateDeprecatedSwaggerRedirect(api, name, description, version),
50
51
  },
51
52
  }
52
53
  : api;
@@ -1 +1 @@
1
- {"version":3,"file":"api-manager.js","sourceRoot":"","sources":["../src/api-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-manager.js","sourceRoot":"","sources":["../src/api-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { OpenApiDocument, RestApi } from '@furystack/rest';
2
+ import type { RestApiImplementation } from '../api-manager.js';
3
+ import { type RequestAction } from '../request-action-implementation.js';
4
+ /**
5
+ * Generates a RequestAction that retrieves the OpenAPI document from a FuryStack API implementation.
6
+ * When authentication providers are configured (via `useHttpAuthentication` / `useJwtAuthentication`),
7
+ * the generated document will include matching OpenAPI security schemes automatically.
8
+ *
9
+ * @param api - The API implementation from which to extract the schema.
10
+ * @returns A RequestAction that handles the GET request for the OpenAPI document.
11
+ */
12
+ export declare const CreateGetOpenApiDocumentAction: <T extends RestApiImplementation<RestApi>>(api: T, name?: string, description?: string, version?: string) => RequestAction<{
13
+ result: OpenApiDocument;
14
+ }>;
15
+ /**
16
+ * Generates a backward-compatible `/swagger.json` endpoint that serves the same OpenAPI document
17
+ * as `CreateGetOpenApiDocumentAction` but includes `Deprecation` and `Link` headers
18
+ * directing clients to use `/openapi.json` instead.
19
+ *
20
+ * @deprecated Use CreateGetOpenApiDocumentAction and `/openapi.json` instead.
21
+ */
22
+ export declare const CreateDeprecatedSwaggerRedirect: <T extends RestApiImplementation<RestApi>>(api: T, name?: string, description?: string, version?: string) => RequestAction<{
23
+ result: OpenApiDocument;
24
+ }>;
25
+ /** @deprecated Use CreateGetOpenApiDocumentAction instead */
26
+ export declare const CreateGetSwaggerJsonAction: <T extends RestApiImplementation<RestApi>>(api: T, name?: string, description?: string, version?: string) => RequestAction<{
27
+ result: OpenApiDocument;
28
+ }>;
29
+ //# sourceMappingURL=create-get-openapi-document-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-get-openapi-document-action.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/create-get-openapi-document-action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,eAAe,EAAE,OAAO,EAAwB,MAAM,iBAAiB,CAAA;AAE1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAK9D,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAsBpF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,qBAAqB,CAAC,OAAO,CAAC,EACrF,KAAK,CAAC,EACN,aAAsB,EACtB,oBAAqE,EACrE,gBAAiB,KAChB,aAAa,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAgB3C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,GAAI,CAAC,SAAS,qBAAqB,CAAC,OAAO,CAAC,EACtF,KAAK,CAAC,EACN,aAAsB,EACtB,oBAAqE,EACrE,gBAAiB,KAChB,aAAa,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAmB3C,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B,GAzDQ,CAAC,SAAS,qBAAqB,CAAC,OAAO,CAAC,OAChF,CAAC,4DAIL,aAAa,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAoD4B,CAAA"}
@@ -0,0 +1,61 @@
1
+ import { getSchemaFromApi } from '../get-schema-from-api.js';
2
+ import { HttpAuthenticationSettings } from '../http-authentication-settings.js';
3
+ import { mapProvidersToSecuritySchemes } from '../openapi/auth-provider-to-security-scheme.js';
4
+ import { generateOpenApiDocument } from '../openapi/generate-openapi-document.js';
5
+ import { JsonResult } from '../request-action-implementation.js';
6
+ const getSecuritySchemesFromInjector = (injector) => {
7
+ try {
8
+ const settings = injector.getInstance(HttpAuthenticationSettings);
9
+ if (settings.authenticationProviders.length > 0) {
10
+ return mapProvidersToSecuritySchemes(settings.authenticationProviders);
11
+ }
12
+ }
13
+ catch {
14
+ /* auth not configured */
15
+ }
16
+ return undefined;
17
+ };
18
+ const buildOpenApiDoc = (endpoints, name, description, version, metadata) => generateOpenApiDocument({ api: endpoints, title: name, description, version, metadata });
19
+ /**
20
+ * Generates a RequestAction that retrieves the OpenAPI document from a FuryStack API implementation.
21
+ * When authentication providers are configured (via `useHttpAuthentication` / `useJwtAuthentication`),
22
+ * the generated document will include matching OpenAPI security schemes automatically.
23
+ *
24
+ * @param api - The API implementation from which to extract the schema.
25
+ * @returns A RequestAction that handles the GET request for the OpenAPI document.
26
+ */
27
+ export const CreateGetOpenApiDocumentAction = (api, name = 'FuryStack API', description = 'API documentation generated from FuryStack API schema', version = '1.0.0') => {
28
+ const { endpoints } = getSchemaFromApi({ api, name, description, version });
29
+ let cachedDoc;
30
+ return async ({ injector }) => {
31
+ if (!cachedDoc) {
32
+ const securitySchemes = getSecuritySchemesFromInjector(injector);
33
+ cachedDoc = buildOpenApiDoc(endpoints, name, description, version, securitySchemes ? { securitySchemes } : undefined);
34
+ }
35
+ return JsonResult(cachedDoc, 200);
36
+ };
37
+ };
38
+ /**
39
+ * Generates a backward-compatible `/swagger.json` endpoint that serves the same OpenAPI document
40
+ * as `CreateGetOpenApiDocumentAction` but includes `Deprecation` and `Link` headers
41
+ * directing clients to use `/openapi.json` instead.
42
+ *
43
+ * @deprecated Use CreateGetOpenApiDocumentAction and `/openapi.json` instead.
44
+ */
45
+ export const CreateDeprecatedSwaggerRedirect = (api, name = 'FuryStack API', description = 'API documentation generated from FuryStack API schema', version = '1.0.0') => {
46
+ const { endpoints } = getSchemaFromApi({ api, name, description, version });
47
+ let cachedDoc;
48
+ return async ({ injector }) => {
49
+ if (!cachedDoc) {
50
+ const securitySchemes = getSecuritySchemesFromInjector(injector);
51
+ cachedDoc = buildOpenApiDoc(endpoints, name, description, version, securitySchemes ? { securitySchemes } : undefined);
52
+ }
53
+ return JsonResult(cachedDoc, 200, {
54
+ Deprecation: 'true',
55
+ Link: '</openapi.json>; rel="successor-version"',
56
+ });
57
+ };
58
+ };
59
+ /** @deprecated Use CreateGetOpenApiDocumentAction instead */
60
+ export const CreateGetSwaggerJsonAction = CreateGetOpenApiDocumentAction;
61
+ //# sourceMappingURL=create-get-openapi-document-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-get-openapi-document-action.js","sourceRoot":"","sources":["../../src/endpoint-generators/create-get-openapi-document-action.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  export * from './create-delete-endpoint.js';
2
2
  export * from './create-get-collection-endpoint.js';
3
3
  export * from './create-get-entity-endpoint.js';
4
+ export * from './create-get-openapi-document-action.js';
4
5
  export * from './create-get-schema-action.js';
5
6
  export * from './create-patch-endpoint.js';
6
7
  export * from './create-post-endpoint.js';
8
+ export * from './with-schema-and-openapi-action.js';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qCAAqC,CAAA;AACnD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qCAAqC,CAAA;AACnD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA"}
@@ -1,7 +1,9 @@
1
1
  export * from './create-delete-endpoint.js';
2
2
  export * from './create-get-collection-endpoint.js';
3
3
  export * from './create-get-entity-endpoint.js';
4
+ export * from './create-get-openapi-document-action.js';
4
5
  export * from './create-get-schema-action.js';
5
6
  export * from './create-patch-endpoint.js';
6
7
  export * from './create-post-endpoint.js';
8
+ export * from './with-schema-and-openapi-action.js';
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/endpoint-generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qCAAqC,CAAA;AACnD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/endpoint-generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qCAAqC,CAAA;AACnD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA"}
@@ -0,0 +1,23 @@
1
+ import type { ApiEndpointSchema, OpenApiDocument, RestApi } from '@furystack/rest';
2
+ /**
3
+ * Extends a RestApi with endpoints for both schema.json and openapi.json
4
+ */
5
+ export type WithSchemaAndOpenApiAction<T extends RestApi> = T & {
6
+ GET: {
7
+ '/schema': {
8
+ result: ApiEndpointSchema<T>;
9
+ headers: {
10
+ accept: 'application/schema+json';
11
+ };
12
+ };
13
+ '/openapi.json': {
14
+ result: OpenApiDocument;
15
+ headers: {
16
+ accept: 'application/json';
17
+ };
18
+ };
19
+ };
20
+ };
21
+ /** @deprecated Use WithSchemaAndOpenApiAction instead */
22
+ export type WithSchemaAndSwaggerAction<T extends RestApi> = WithSchemaAndOpenApiAction<T>;
23
+ //# sourceMappingURL=with-schema-and-openapi-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-schema-and-openapi-action.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/with-schema-and-openapi-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAElF;;GAEG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,GAAG;IAC9D,GAAG,EAAE;QACH,SAAS,EAAE;YAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE;gBAAE,MAAM,EAAE,yBAAyB,CAAA;aAAE,CAAA;SAAE,CAAA;QAC3F,eAAe,EAAE;YAAE,MAAM,EAAE,eAAe,CAAC;YAAC,OAAO,EAAE;gBAAE,MAAM,EAAE,kBAAkB,CAAA;aAAE,CAAA;SAAE,CAAA;KACtF,CAAA;CACF,CAAA;AAED,yDAAyD;AACzD,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,OAAO,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=with-schema-and-openapi-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-schema-and-openapi-action.js","sourceRoot":"","sources":["../../src/endpoint-generators/with-schema-and-openapi-action.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { SecuritySchemeObject } from '@furystack/rest';
2
+ import type { AuthenticationProvider } from '../authentication-providers/authentication-provider.js';
3
+ /**
4
+ * Maps FuryStack authentication providers to their corresponding OpenAPI security scheme objects.
5
+ * Known provider names (`basic-auth`, `cookie-auth`, `jwt-bearer`) are mapped to standard OpenAPI
6
+ * security schemes. Unknown provider names are silently ignored.
7
+ *
8
+ * Falls back to a default `cookieAuth` scheme if no known providers are found.
9
+ *
10
+ * @param providers - The list of active authentication providers
11
+ * @returns A record of OpenAPI security scheme name to SecuritySchemeObject
12
+ */
13
+ export declare const mapProvidersToSecuritySchemes: (providers: AuthenticationProvider[]) => Record<string, SecuritySchemeObject>;
14
+ //# sourceMappingURL=auth-provider-to-security-scheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider-to-security-scheme.d.ts","sourceRoot":"","sources":["../../src/openapi/auth-provider-to-security-scheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAA;AAiBpG;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,GACxC,WAAW,sBAAsB,EAAE,KAClC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CASrC,CAAA"}
@@ -0,0 +1,35 @@
1
+ const PROVIDER_SCHEME_MAP = {
2
+ 'basic-auth': {
3
+ schemeName: 'basicAuth',
4
+ scheme: { type: 'http', scheme: 'basic' },
5
+ },
6
+ 'cookie-auth': {
7
+ schemeName: 'cookieAuth',
8
+ scheme: { type: 'apiKey', in: 'cookie', name: 'session' },
9
+ },
10
+ 'jwt-bearer': {
11
+ schemeName: 'bearerAuth',
12
+ scheme: { type: 'http', scheme: 'bearer', bearerFormat: 'JWT' },
13
+ },
14
+ };
15
+ /**
16
+ * Maps FuryStack authentication providers to their corresponding OpenAPI security scheme objects.
17
+ * Known provider names (`basic-auth`, `cookie-auth`, `jwt-bearer`) are mapped to standard OpenAPI
18
+ * security schemes. Unknown provider names are silently ignored.
19
+ *
20
+ * Falls back to a default `cookieAuth` scheme if no known providers are found.
21
+ *
22
+ * @param providers - The list of active authentication providers
23
+ * @returns A record of OpenAPI security scheme name to SecuritySchemeObject
24
+ */
25
+ export const mapProvidersToSecuritySchemes = (providers) => {
26
+ const schemes = {};
27
+ for (const provider of providers) {
28
+ const mapping = PROVIDER_SCHEME_MAP[provider.name];
29
+ if (mapping) {
30
+ schemes[mapping.schemeName] = mapping.scheme;
31
+ }
32
+ }
33
+ return Object.keys(schemes).length > 0 ? schemes : { cookieAuth: PROVIDER_SCHEME_MAP['cookie-auth'].scheme };
34
+ };
35
+ //# sourceMappingURL=auth-provider-to-security-scheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider-to-security-scheme.js","sourceRoot":"","sources":["../../src/openapi/auth-provider-to-security-scheme.ts"],"names":[],"mappings":"AAIA,MAAM,mBAAmB,GAAyE;IAChG,YAAY,EAAE;QACZ,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;KAC1C;IACD,aAAa,EAAE;QACb,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;KAC1D;IACD,YAAY,EAAE;QACZ,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE;KAChE;CACF,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,SAAmC,EACG,EAAE;IACxC,MAAM,OAAO,GAAyC,EAAE,CAAA;IACxD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAA;AAC9G,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auth-provider-to-security-scheme.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider-to-security-scheme.spec.d.ts","sourceRoot":"","sources":["../../src/openapi/auth-provider-to-security-scheme.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { mapProvidersToSecuritySchemes } from './auth-provider-to-security-scheme.js';
3
+ const createProvider = (name) => ({
4
+ name,
5
+ authenticate: async () => null,
6
+ });
7
+ describe('mapProvidersToSecuritySchemes', () => {
8
+ it('Should map basic-auth to HTTP Basic scheme', () => {
9
+ const result = mapProvidersToSecuritySchemes([createProvider('basic-auth')]);
10
+ expect(result.basicAuth).toEqual({ type: 'http', scheme: 'basic' });
11
+ });
12
+ it('Should map cookie-auth to apiKey cookie scheme', () => {
13
+ const result = mapProvidersToSecuritySchemes([createProvider('cookie-auth')]);
14
+ expect(result.cookieAuth).toEqual({ type: 'apiKey', in: 'cookie', name: 'session' });
15
+ });
16
+ it('Should map jwt-bearer to HTTP Bearer scheme', () => {
17
+ const result = mapProvidersToSecuritySchemes([createProvider('jwt-bearer')]);
18
+ expect(result.bearerAuth).toEqual({ type: 'http', scheme: 'bearer', bearerFormat: 'JWT' });
19
+ });
20
+ it('Should map multiple providers', () => {
21
+ const result = mapProvidersToSecuritySchemes([
22
+ createProvider('basic-auth'),
23
+ createProvider('cookie-auth'),
24
+ createProvider('jwt-bearer'),
25
+ ]);
26
+ expect(Object.keys(result).sort()).toEqual(['basicAuth', 'bearerAuth', 'cookieAuth']);
27
+ });
28
+ it('Should ignore unknown provider names', () => {
29
+ const result = mapProvidersToSecuritySchemes([createProvider('jwt-bearer'), createProvider('custom-unknown-auth')]);
30
+ expect(result.bearerAuth).toBeDefined();
31
+ expect(Object.keys(result)).toEqual(['bearerAuth']);
32
+ });
33
+ it('Should fall back to cookieAuth when no known providers are found', () => {
34
+ const result = mapProvidersToSecuritySchemes([createProvider('unknown-provider')]);
35
+ expect(result).toEqual({ cookieAuth: { type: 'apiKey', in: 'cookie', name: 'session' } });
36
+ });
37
+ it('Should fall back to cookieAuth for empty provider list', () => {
38
+ const result = mapProvidersToSecuritySchemes([]);
39
+ expect(result).toEqual({ cookieAuth: { type: 'apiKey', in: 'cookie', name: 'session' } });
40
+ });
41
+ });
42
+ //# sourceMappingURL=auth-provider-to-security-scheme.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider-to-security-scheme.spec.js","sourceRoot":"","sources":["../../src/openapi/auth-provider-to-security-scheme.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ApiDocumentMetadata, ApiEndpointSchema, OpenApiDocument } from '@furystack/rest';
2
+ /**
3
+ * Converts a FuryStack API schema to an OpenAPI 3.1 compatible document.
4
+ * Preserves metadata from ApiEndpointDefinition and ApiDocumentMetadata when available.
5
+ */
6
+ export declare const generateOpenApiDocument: ({ api, title, description, version, metadata, }: {
7
+ api: ApiEndpointSchema["endpoints"];
8
+ title?: string;
9
+ description?: string;
10
+ version?: string;
11
+ metadata?: ApiDocumentMetadata;
12
+ }) => OpenApiDocument;
13
+ /** @deprecated Use generateOpenApiDocument instead */
14
+ export declare const generateSwaggerJsonFromApiSchema: ({ api, title, description, version, metadata, }: {
15
+ api: ApiEndpointSchema["endpoints"];
16
+ title?: string;
17
+ description?: string;
18
+ version?: string;
19
+ metadata?: ApiDocumentMetadata;
20
+ }) => OpenApiDocument;
21
+ //# sourceMappingURL=generate-openapi-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-openapi-document.d.ts","sourceRoot":"","sources":["../../src/openapi/generate-openapi-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAEnB,iBAAiB,EAEjB,eAAe,EAIhB,MAAM,iBAAiB,CAAA;AAoCxB;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,iDAMrC;IACD,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAC/B,KAAG,eAqIH,CAAA;AAED,sDAAsD;AACtD,eAAO,MAAM,gCAAgC,oDA9I1C;IACD,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAC/B,KAAG,eAwImE,CAAA"}
@@ -0,0 +1,144 @@
1
+ const PATH_ITEM_METHODS = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'];
2
+ const isPathItemMethod = (method) => PATH_ITEM_METHODS.includes(method);
3
+ const getSubSchema = (schema, schemaName, property) => {
4
+ const typedSchema = schema;
5
+ if (!typedSchema?.definitions)
6
+ return undefined;
7
+ const definition = typedSchema.definitions[schemaName];
8
+ if (!definition?.properties?.[property])
9
+ return undefined;
10
+ return {
11
+ subSchema: definition.properties[property],
12
+ isRequired: definition.required?.includes(property) ?? false,
13
+ };
14
+ };
15
+ /**
16
+ * Converts a FuryStack API schema to an OpenAPI 3.1 compatible document.
17
+ * Preserves metadata from ApiEndpointDefinition and ApiDocumentMetadata when available.
18
+ */
19
+ export const generateOpenApiDocument = ({ api, title = 'FuryStack API', description = 'API documentation generated from FuryStack API schema', version = '1.0.0', metadata, }) => {
20
+ const doc = {
21
+ openapi: '3.1.0',
22
+ info: {
23
+ title,
24
+ version,
25
+ description,
26
+ ...(metadata?.summary ? { summary: metadata.summary } : {}),
27
+ ...(metadata?.termsOfService ? { termsOfService: metadata.termsOfService } : {}),
28
+ ...(metadata?.contact ? { contact: metadata.contact } : {}),
29
+ ...(metadata?.license ? { license: metadata.license } : {}),
30
+ },
31
+ jsonSchemaDialect: 'https://spec.openapis.org/oas/3.1/dialect/base',
32
+ servers: metadata?.servers ?? [{ url: '/' }],
33
+ tags: metadata?.tags ?? [],
34
+ ...(metadata?.externalDocs ? { externalDocs: metadata.externalDocs } : {}),
35
+ paths: {},
36
+ components: {
37
+ schemas: {},
38
+ securitySchemes: metadata?.securitySchemes ?? {
39
+ cookieAuth: {
40
+ type: 'apiKey',
41
+ in: 'cookie',
42
+ name: 'session',
43
+ },
44
+ },
45
+ },
46
+ };
47
+ const defaultSchemeNames = metadata?.securitySchemes ? Object.keys(metadata.securitySchemes) : ['cookieAuth'];
48
+ for (const [methodKey, paths] of Object.entries(api)) {
49
+ for (const [path, definition] of Object.entries(paths)) {
50
+ const normalizedPath = path.replace(/:([^/]+)/g, '{$1}');
51
+ if (!doc.paths[normalizedPath]) {
52
+ doc.paths[normalizedPath] = {};
53
+ }
54
+ const pathParams = Array.from(path.matchAll(/:([^/]+)/g), (m) => m[1]);
55
+ const parameters = pathParams.map((param) => ({
56
+ name: param,
57
+ in: 'path',
58
+ required: true,
59
+ description: `Path parameter: ${param}`,
60
+ schema: { type: 'string' },
61
+ }));
62
+ const queryInfo = getSubSchema(definition.schema, definition.schemaName, 'query');
63
+ if (queryInfo) {
64
+ const querySchema = queryInfo.subSchema;
65
+ if (querySchema?.properties) {
66
+ for (const [paramName, paramSchema] of Object.entries(querySchema.properties)) {
67
+ parameters.push({
68
+ name: paramName,
69
+ in: 'query',
70
+ required: querySchema.required?.includes(paramName) ?? false,
71
+ schema: paramSchema,
72
+ });
73
+ }
74
+ }
75
+ }
76
+ const headerInfo = getSubSchema(definition.schema, definition.schemaName, 'headers');
77
+ if (headerInfo) {
78
+ const headerSchema = headerInfo.subSchema;
79
+ if (headerSchema?.properties) {
80
+ for (const [headerName, headerParamSchema] of Object.entries(headerSchema.properties)) {
81
+ parameters.push({
82
+ name: headerName,
83
+ in: 'header',
84
+ required: headerSchema.required?.includes(headerName) ?? false,
85
+ schema: headerParamSchema,
86
+ });
87
+ }
88
+ }
89
+ }
90
+ const operationSecurity = definition.securitySchemes
91
+ ? definition.securitySchemes.map((name) => ({ [name]: [] }))
92
+ : definition.isAuthenticated
93
+ ? defaultSchemeNames.map((name) => ({ [name]: [] }))
94
+ : [];
95
+ const method = methodKey.toLowerCase();
96
+ const operation = {
97
+ summary: definition.summary ?? `${methodKey} ${path}`,
98
+ description: definition.description ?? `Endpoint for ${path}`,
99
+ operationId: `${method}${path.replace(/\//g, '_').replace(/:/g, '').replace(/-/g, '_')}`,
100
+ security: operationSecurity,
101
+ parameters,
102
+ ...(definition.tags?.length ? { tags: definition.tags } : {}),
103
+ ...(definition.deprecated ? { deprecated: true } : {}),
104
+ responses: {
105
+ '200': {
106
+ description: 'Successful operation',
107
+ content: {
108
+ 'application/json': {
109
+ schema: definition.schemaName
110
+ ? { $ref: `#/components/schemas/${definition.schemaName}` }
111
+ : { type: 'object' },
112
+ },
113
+ },
114
+ },
115
+ '401': { description: 'Unauthorized' },
116
+ '500': { description: 'Internal server error' },
117
+ },
118
+ };
119
+ const bodyInfo = getSubSchema(definition.schema, definition.schemaName, 'body');
120
+ if (bodyInfo) {
121
+ const requestBody = {
122
+ required: bodyInfo.isRequired,
123
+ content: {
124
+ 'application/json': {
125
+ schema: bodyInfo.subSchema,
126
+ },
127
+ },
128
+ };
129
+ operation.requestBody = requestBody;
130
+ }
131
+ if (definition.schema && definition.schemaName) {
132
+ doc.components.schemas[definition.schemaName] = definition.schema;
133
+ }
134
+ const pathItem = doc.paths[normalizedPath];
135
+ if (isPathItemMethod(method)) {
136
+ pathItem[method] = operation;
137
+ }
138
+ }
139
+ }
140
+ return doc;
141
+ };
142
+ /** @deprecated Use generateOpenApiDocument instead */
143
+ export const generateSwaggerJsonFromApiSchema = generateOpenApiDocument;
144
+ //# sourceMappingURL=generate-openapi-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-openapi-document.js","sourceRoot":"","sources":["../../src/openapi/generate-openapi-document.ts"],"names":[],"mappings":"AAWA,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AAGxG,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAA4B,EAAE,CACpE,iBAAiB,CAAC,QAAQ,CAAC,MAAwB,CAAC,CAAA;AAatD,MAAM,YAAY,GAAG,CACnB,MAAe,EACf,UAAkB,EAClB,QAAgB,EACyC,EAAE;IAC3D,MAAM,WAAW,GAAG,MAA2C,CAAA;IAC/D,IAAI,CAAC,WAAW,EAAE,WAAW;QAAE,OAAO,SAAS,CAAA;IAE/C,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IACtD,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAA;IAEzD,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC1C,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK;KAC7D,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,GAAG,EACH,KAAK,GAAG,eAAe,EACvB,WAAW,GAAG,uDAAuD,EACrE,OAAO,GAAG,OAAO,EACjB,QAAQ,GAOT,EAAmB,EAAE;IACpB,MAAM,GAAG,GAAoB;QAC3B,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,KAAK;YACL,OAAO;YACP,WAAW;YACX,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;QACD,iBAAiB,EAAE,gDAAgD;QACnE,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC5C,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE;QAC1B,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,KAAK,EAAE,EAAE;QACT,UAAU,EAAE;YACV,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,QAAQ,EAAE,eAAe,IAAI;gBAC5C,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,SAAS;iBAChB;aACF;SACF;KACF,CAAA;IAED,MAAM,kBAAkB,GAAG,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAE7G,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAA2D,EAAE,CAAC;QAC/G,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YACxD,IAAI,CAAC,GAAG,CAAC,KAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChC,GAAG,CAAC,KAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAA;YACjC,CAAC;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,UAAU,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/D,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,MAAM;gBACV,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,mBAAmB,KAAK,EAAE;gBACvC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B,CAAC,CAAC,CAAA;YAEH,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YACjF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,WAAW,GAAG,SAAS,CAAC,SAA0E,CAAA;gBACxG,IAAI,WAAW,EAAE,UAAU,EAAE,CAAC;oBAC5B,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC9E,UAAU,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,SAAS;4BACf,EAAE,EAAE,OAAO;4BACX,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK;4BAC5D,MAAM,EAAE,WAAqB;yBAC9B,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;YACpF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,UAAU,CAAC,SAA0E,CAAA;gBAC1G,IAAI,YAAY,EAAE,UAAU,EAAE,CAAC;oBAC7B,KAAK,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;wBACtF,UAAU,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,UAAU;4BAChB,EAAE,EAAE,QAAQ;4BACZ,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK;4BAC9D,MAAM,EAAE,iBAA2B;yBACpC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,eAAe;gBAClD,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5D,CAAC,CAAC,UAAU,CAAC,eAAe;oBAC1B,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACpD,CAAC,CAAC,EAAE,CAAA;YAER,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;YACtC,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,GAAG,SAAS,IAAI,IAAI,EAAE;gBACrD,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,gBAAgB,IAAI,EAAE;gBAC7D,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;gBACxF,QAAQ,EAAE,iBAAiB;gBAC3B,UAAU;gBACV,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,sBAAsB;wBACnC,OAAO,EAAE;4BACP,kBAAkB,EAAE;gCAClB,MAAM,EAAE,UAAU,CAAC,UAAU;oCAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,wBAAwB,UAAU,CAAC,UAAU,EAAE,EAAE;oCAC3D,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;6BACvB;yBACF;qBACF;oBACD,KAAK,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE;oBACtC,KAAK,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE;iBAChD;aACF,CAAA;YAED,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAC/E,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,WAAW,GAAsB;oBACrC,QAAQ,EAAE,QAAQ,CAAC,UAAU;oBAC7B,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,MAAM,EAAE,QAAQ,CAAC,SAAmB;yBACrC;qBACF;iBACF,CAAA;gBACD,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;YACrC,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC/C,GAAG,CAAC,UAAW,CAAC,OAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,CAAA;YACrE,CAAC;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAM,CAAC,cAAc,CAAC,CAAA;YAC3C,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,sDAAsD;AACtD,MAAM,CAAC,MAAM,gCAAgC,GAAG,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-openapi-document.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-openapi-document.spec.d.ts","sourceRoot":"","sources":["../../src/openapi/generate-openapi-document.spec.ts"],"names":[],"mappings":""}