@digitaldefiance/node-express-suite 3.11.31 → 3.12.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 (167) hide show
  1. package/README.md +858 -0
  2. package/package.json +1 -1
  3. package/src/controllers/openapi.d.ts +67 -0
  4. package/src/controllers/openapi.d.ts.map +1 -0
  5. package/src/controllers/openapi.js +89 -0
  6. package/src/controllers/openapi.js.map +1 -0
  7. package/src/decorators/auth.d.ts +128 -0
  8. package/src/decorators/auth.d.ts.map +1 -0
  9. package/src/decorators/auth.js +230 -0
  10. package/src/decorators/auth.js.map +1 -0
  11. package/src/decorators/base-controller.d.ts +144 -6
  12. package/src/decorators/base-controller.d.ts.map +1 -1
  13. package/src/decorators/base-controller.js +487 -31
  14. package/src/decorators/base-controller.js.map +1 -1
  15. package/src/decorators/controller.d.ts +63 -7
  16. package/src/decorators/controller.d.ts.map +1 -1
  17. package/src/decorators/controller.js +70 -39
  18. package/src/decorators/controller.js.map +1 -1
  19. package/src/decorators/handler-args.d.ts +68 -0
  20. package/src/decorators/handler-args.d.ts.map +1 -0
  21. package/src/decorators/handler-args.js +83 -0
  22. package/src/decorators/handler-args.js.map +1 -0
  23. package/src/decorators/http-methods.d.ts +143 -0
  24. package/src/decorators/http-methods.d.ts.map +1 -0
  25. package/src/decorators/http-methods.js +265 -0
  26. package/src/decorators/http-methods.js.map +1 -0
  27. package/src/decorators/index.d.ts +22 -0
  28. package/src/decorators/index.d.ts.map +1 -1
  29. package/src/decorators/index.js +56 -0
  30. package/src/decorators/index.js.map +1 -1
  31. package/src/decorators/lifecycle.d.ts +248 -0
  32. package/src/decorators/lifecycle.d.ts.map +1 -0
  33. package/src/decorators/lifecycle.js +301 -0
  34. package/src/decorators/lifecycle.js.map +1 -0
  35. package/src/decorators/metadata-collector.d.ts +175 -0
  36. package/src/decorators/metadata-collector.d.ts.map +1 -0
  37. package/src/decorators/metadata-collector.js +272 -0
  38. package/src/decorators/metadata-collector.js.map +1 -0
  39. package/src/decorators/metadata-keys.d.ts +121 -0
  40. package/src/decorators/metadata-keys.d.ts.map +1 -0
  41. package/src/decorators/metadata-keys.js +116 -0
  42. package/src/decorators/metadata-keys.js.map +1 -0
  43. package/src/decorators/middleware.d.ts +181 -0
  44. package/src/decorators/middleware.d.ts.map +1 -0
  45. package/src/decorators/middleware.js +400 -0
  46. package/src/decorators/middleware.js.map +1 -0
  47. package/src/decorators/openapi-params.d.ts +192 -0
  48. package/src/decorators/openapi-params.d.ts.map +1 -0
  49. package/src/decorators/openapi-params.js +332 -0
  50. package/src/decorators/openapi-params.js.map +1 -0
  51. package/src/decorators/openapi.d.ts +201 -0
  52. package/src/decorators/openapi.d.ts.map +1 -0
  53. package/src/decorators/openapi.js +334 -0
  54. package/src/decorators/openapi.js.map +1 -0
  55. package/src/decorators/params.d.ts +217 -0
  56. package/src/decorators/params.d.ts.map +1 -0
  57. package/src/decorators/params.js +323 -0
  58. package/src/decorators/params.js.map +1 -0
  59. package/src/decorators/response.d.ts +200 -0
  60. package/src/decorators/response.d.ts.map +1 -0
  61. package/src/decorators/response.js +315 -0
  62. package/src/decorators/response.js.map +1 -0
  63. package/src/decorators/schema.d.ts +99 -0
  64. package/src/decorators/schema.d.ts.map +1 -0
  65. package/src/decorators/schema.js +329 -0
  66. package/src/decorators/schema.js.map +1 -0
  67. package/src/decorators/transaction.d.ts +69 -0
  68. package/src/decorators/transaction.d.ts.map +1 -0
  69. package/src/decorators/transaction.js +80 -0
  70. package/src/decorators/transaction.js.map +1 -0
  71. package/src/decorators/validation.d.ts +188 -0
  72. package/src/decorators/validation.d.ts.map +1 -0
  73. package/src/decorators/validation.js +269 -0
  74. package/src/decorators/validation.js.map +1 -0
  75. package/src/decorators/zod-validation.d.ts +164 -4
  76. package/src/decorators/zod-validation.d.ts.map +1 -1
  77. package/src/decorators/zod-validation.js +692 -13
  78. package/src/decorators/zod-validation.js.map +1 -1
  79. package/src/index.d.ts +2 -1
  80. package/src/index.d.ts.map +1 -1
  81. package/src/index.js +1 -0
  82. package/src/index.js.map +1 -1
  83. package/src/interfaces/api-message-response.d.ts +1 -1
  84. package/src/interfaces/api-message-response.d.ts.map +1 -1
  85. package/src/interfaces/index.d.ts +1 -0
  86. package/src/interfaces/index.d.ts.map +1 -1
  87. package/src/interfaces/index.js +1 -0
  88. package/src/interfaces/index.js.map +1 -1
  89. package/src/interfaces/openApi/decoratorOptions.d.ts +760 -0
  90. package/src/interfaces/openApi/decoratorOptions.d.ts.map +1 -0
  91. package/src/interfaces/openApi/decoratorOptions.js +734 -0
  92. package/src/interfaces/openApi/decoratorOptions.js.map +1 -0
  93. package/src/interfaces/openApi/index.d.ts +8 -0
  94. package/src/interfaces/openApi/index.d.ts.map +1 -0
  95. package/src/interfaces/openApi/index.js +32 -0
  96. package/src/interfaces/openApi/index.js.map +1 -0
  97. package/src/interfaces/openApi/parameter.d.ts +41 -0
  98. package/src/interfaces/openApi/parameter.d.ts.map +1 -0
  99. package/src/interfaces/openApi/parameter.js +60 -0
  100. package/src/interfaces/openApi/parameter.js.map +1 -0
  101. package/src/interfaces/openApi/parameterSchema.d.ts +39 -0
  102. package/src/interfaces/openApi/parameterSchema.d.ts.map +1 -0
  103. package/src/interfaces/openApi/parameterSchema.js +51 -0
  104. package/src/interfaces/openApi/parameterSchema.js.map +1 -0
  105. package/src/interfaces/openApi/requestBody.d.ts +25 -0
  106. package/src/interfaces/openApi/requestBody.d.ts.map +1 -0
  107. package/src/interfaces/openApi/requestBody.js +31 -0
  108. package/src/interfaces/openApi/requestBody.js.map +1 -0
  109. package/src/interfaces/openApi/responseDef.d.ts +23 -0
  110. package/src/interfaces/openApi/responseDef.d.ts.map +1 -0
  111. package/src/interfaces/openApi/responseDef.js +29 -0
  112. package/src/interfaces/openApi/responseDef.js.map +1 -0
  113. package/src/interfaces/openApi/routeMetadata.d.ts +43 -0
  114. package/src/interfaces/openApi/routeMetadata.d.ts.map +1 -0
  115. package/src/interfaces/openApi/routeMetadata.js +85 -0
  116. package/src/interfaces/openApi/routeMetadata.js.map +1 -0
  117. package/src/openapi/builder.d.ts +249 -0
  118. package/src/openapi/builder.d.ts.map +1 -0
  119. package/src/openapi/builder.js +352 -0
  120. package/src/openapi/builder.js.map +1 -0
  121. package/src/openapi/controller.d.ts +153 -0
  122. package/src/openapi/controller.d.ts.map +1 -0
  123. package/src/openapi/controller.js +331 -0
  124. package/src/openapi/controller.js.map +1 -0
  125. package/src/openapi/index.d.ts +12 -0
  126. package/src/openapi/index.d.ts.map +1 -0
  127. package/src/openapi/index.js +20 -0
  128. package/src/openapi/index.js.map +1 -0
  129. package/src/openapi/markdown-generator.d.ts +52 -0
  130. package/src/openapi/markdown-generator.d.ts.map +1 -0
  131. package/src/openapi/markdown-generator.js +569 -0
  132. package/src/openapi/markdown-generator.js.map +1 -0
  133. package/src/openapi/middleware/index.d.ts +9 -0
  134. package/src/openapi/middleware/index.d.ts.map +1 -0
  135. package/src/openapi/middleware/index.js +15 -0
  136. package/src/openapi/middleware/index.js.map +1 -0
  137. package/src/openapi/middleware/redoc.d.ts +314 -0
  138. package/src/openapi/middleware/redoc.d.ts.map +1 -0
  139. package/src/openapi/middleware/redoc.js +181 -0
  140. package/src/openapi/middleware/redoc.js.map +1 -0
  141. package/src/openapi/middleware/swagger-ui.d.ts +123 -0
  142. package/src/openapi/middleware/swagger-ui.d.ts.map +1 -0
  143. package/src/openapi/middleware/swagger-ui.js +227 -0
  144. package/src/openapi/middleware/swagger-ui.js.map +1 -0
  145. package/src/openapi/schemas.d.ts +170 -0
  146. package/src/openapi/schemas.d.ts.map +1 -0
  147. package/src/openapi/schemas.js +340 -0
  148. package/src/openapi/schemas.js.map +1 -0
  149. package/src/registry/controller-registry.d.ts +78 -0
  150. package/src/registry/controller-registry.d.ts.map +1 -0
  151. package/src/registry/controller-registry.js +86 -0
  152. package/src/registry/controller-registry.js.map +1 -0
  153. package/src/registry/index.d.ts +2 -0
  154. package/src/registry/index.d.ts.map +1 -1
  155. package/src/registry/index.js +3 -1
  156. package/src/registry/index.js.map +1 -1
  157. package/src/routers/api.d.ts +2 -1
  158. package/src/routers/api.d.ts.map +1 -1
  159. package/src/routers/api.js +7 -1
  160. package/src/routers/api.js.map +1 -1
  161. package/src/routing/route-builder.d.ts +4 -4
  162. package/src/routing/route-builder.d.ts.map +1 -1
  163. package/src/routing/route-builder.js +1 -1
  164. package/src/types.d.ts +3 -1
  165. package/src/types.d.ts.map +1 -1
  166. package/src/types.js +1 -0
  167. package/src/types.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoratorOptions.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/decoratorOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { type ApiControllerOptions, type RouteDecoratorOptions, type ApiParamDecoratorOptions, type ApiRequestBodyDecoratorOptions, type CacheDecoratorOptions, type RateLimitDecoratorOptions, type TransactionalDecoratorOptions, type ReturnsDecoratorOptions, type PaginatedDecoratorOptions, type ResponseMetadata, type ApiOperationDecoratorOptions, type ApiExampleDecoratorOptions, type ParamDecoratorOptions, type ParamMetadata, type AuthMetadata, type ValidationMetadata, isApiControllerOptions, isRouteDecoratorOptions, isApiParamDecoratorOptions, isApiRequestBodyDecoratorOptions, isCacheDecoratorOptions, isRateLimitDecoratorOptions, isTransactionalDecoratorOptions, isReturnsDecoratorOptions, isPaginatedDecoratorOptions, isResponseMetadata, isApiOperationDecoratorOptions, isApiExampleDecoratorOptions, isParamDecoratorOptions, isParamMetadata, isAuthMetadata, isValidationMetadata, isLifecycleMetadata, isMiddlewareMetadata, isTransactionMetadata, } from './decoratorOptions';
2
+ export * from './parameter';
3
+ export * from './parameterSchema';
4
+ export * from './requestBody';
5
+ export * from './responseDef';
6
+ export * from './routeMetadata';
7
+ export type { OpenAPIResponses } from './routeMetadata';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EAEvB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,EACvB,2BAA2B,EAC3B,+BAA+B,EAC/B,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EAClB,8BAA8B,EAC9B,4BAA4B,EAC5B,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTransactionMetadata = exports.isMiddlewareMetadata = exports.isLifecycleMetadata = exports.isValidationMetadata = exports.isAuthMetadata = exports.isParamMetadata = exports.isParamDecoratorOptions = exports.isApiExampleDecoratorOptions = exports.isApiOperationDecoratorOptions = exports.isResponseMetadata = exports.isPaginatedDecoratorOptions = exports.isReturnsDecoratorOptions = exports.isTransactionalDecoratorOptions = exports.isRateLimitDecoratorOptions = exports.isCacheDecoratorOptions = exports.isApiRequestBodyDecoratorOptions = exports.isApiParamDecoratorOptions = exports.isRouteDecoratorOptions = exports.isApiControllerOptions = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // Export from decoratorOptions but exclude types that are also defined in decorators
6
+ var decoratorOptions_1 = require("./decoratorOptions");
7
+ // Type guards
8
+ Object.defineProperty(exports, "isApiControllerOptions", { enumerable: true, get: function () { return decoratorOptions_1.isApiControllerOptions; } });
9
+ Object.defineProperty(exports, "isRouteDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isRouteDecoratorOptions; } });
10
+ Object.defineProperty(exports, "isApiParamDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isApiParamDecoratorOptions; } });
11
+ Object.defineProperty(exports, "isApiRequestBodyDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isApiRequestBodyDecoratorOptions; } });
12
+ Object.defineProperty(exports, "isCacheDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isCacheDecoratorOptions; } });
13
+ Object.defineProperty(exports, "isRateLimitDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isRateLimitDecoratorOptions; } });
14
+ Object.defineProperty(exports, "isTransactionalDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isTransactionalDecoratorOptions; } });
15
+ Object.defineProperty(exports, "isReturnsDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isReturnsDecoratorOptions; } });
16
+ Object.defineProperty(exports, "isPaginatedDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isPaginatedDecoratorOptions; } });
17
+ Object.defineProperty(exports, "isResponseMetadata", { enumerable: true, get: function () { return decoratorOptions_1.isResponseMetadata; } });
18
+ Object.defineProperty(exports, "isApiOperationDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isApiOperationDecoratorOptions; } });
19
+ Object.defineProperty(exports, "isApiExampleDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isApiExampleDecoratorOptions; } });
20
+ Object.defineProperty(exports, "isParamDecoratorOptions", { enumerable: true, get: function () { return decoratorOptions_1.isParamDecoratorOptions; } });
21
+ Object.defineProperty(exports, "isParamMetadata", { enumerable: true, get: function () { return decoratorOptions_1.isParamMetadata; } });
22
+ Object.defineProperty(exports, "isAuthMetadata", { enumerable: true, get: function () { return decoratorOptions_1.isAuthMetadata; } });
23
+ Object.defineProperty(exports, "isValidationMetadata", { enumerable: true, get: function () { return decoratorOptions_1.isValidationMetadata; } });
24
+ Object.defineProperty(exports, "isLifecycleMetadata", { enumerable: true, get: function () { return decoratorOptions_1.isLifecycleMetadata; } });
25
+ Object.defineProperty(exports, "isMiddlewareMetadata", { enumerable: true, get: function () { return decoratorOptions_1.isMiddlewareMetadata; } });
26
+ Object.defineProperty(exports, "isTransactionMetadata", { enumerable: true, get: function () { return decoratorOptions_1.isTransactionMetadata; } });
27
+ tslib_1.__exportStar(require("./parameter"), exports);
28
+ tslib_1.__exportStar(require("./parameterSchema"), exports);
29
+ tslib_1.__exportStar(require("./requestBody"), exports);
30
+ tslib_1.__exportStar(require("./responseDef"), exports);
31
+ tslib_1.__exportStar(require("./routeMetadata"), exports);
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/index.ts"],"names":[],"mappings":";;;;AAAA,qFAAqF;AACrF,uDAsC4B;AApB1B,cAAc;AACd,0HAAA,sBAAsB,OAAA;AACtB,2HAAA,uBAAuB,OAAA;AACvB,8HAAA,0BAA0B,OAAA;AAC1B,oIAAA,gCAAgC,OAAA;AAChC,2HAAA,uBAAuB,OAAA;AACvB,+HAAA,2BAA2B,OAAA;AAC3B,mIAAA,+BAA+B,OAAA;AAC/B,6HAAA,yBAAyB,OAAA;AACzB,+HAAA,2BAA2B,OAAA;AAC3B,sHAAA,kBAAkB,OAAA;AAClB,kIAAA,8BAA8B,OAAA;AAC9B,gIAAA,4BAA4B,OAAA;AAC5B,2HAAA,uBAAuB,OAAA;AACvB,mHAAA,eAAe,OAAA;AACf,kHAAA,cAAc,OAAA;AACd,wHAAA,oBAAoB,OAAA;AACpB,uHAAA,mBAAmB,OAAA;AACnB,wHAAA,oBAAoB,OAAA;AACpB,yHAAA,qBAAqB,OAAA;AAEvB,sDAA4B;AAC5B,4DAAkC;AAClC,wDAA8B;AAC9B,wDAA8B;AAC9B,0DAAgC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @fileoverview OpenAPI parameter interface.
3
+ * Defines the structure for OpenAPI operation parameters.
4
+ * @module interfaces/openApi/parameter
5
+ */
6
+ import { OpenAPIParameterSchema } from './parameterSchema';
7
+ export type { OpenAPIParameterSchema } from './parameterSchema';
8
+ export { isOpenAPIParameterSchema } from './parameterSchema';
9
+ /**
10
+ * Valid locations for OpenAPI parameters.
11
+ */
12
+ export declare const OPENAPI_PARAMETER_LOCATIONS: readonly ["path", "query", "header", "cookie"];
13
+ export type OpenAPIParameterLocation = (typeof OPENAPI_PARAMETER_LOCATIONS)[number];
14
+ /**
15
+ * OpenAPI parameter definition.
16
+ * @property {string} name - The name of the parameter
17
+ * @property {OpenAPIParameterLocation} in - The location of the parameter
18
+ * @property {boolean} [required] - Whether the parameter is required
19
+ * @property {string} [description] - Description of the parameter
20
+ * @property {OpenAPIParameterSchema} schema - The schema defining the parameter type
21
+ */
22
+ export interface OpenAPIParameter {
23
+ name: string;
24
+ in: OpenAPIParameterLocation;
25
+ required?: boolean;
26
+ description?: string;
27
+ schema: OpenAPIParameterSchema;
28
+ }
29
+ /**
30
+ * Type guard to check if a string is a valid OpenAPI parameter location.
31
+ * @param {unknown} value - Value to validate
32
+ * @returns {boolean} True if value is a valid parameter location
33
+ */
34
+ export declare function isOpenAPIParameterLocation(value: unknown): value is OpenAPIParameterLocation;
35
+ /**
36
+ * Type guard to check if object is a valid OpenAPI parameter.
37
+ * @param {unknown} obj - Object to validate
38
+ * @returns {boolean} True if object matches OpenAPIParameter interface
39
+ */
40
+ export declare function isOpenAPIParameter(obj: unknown): obj is OpenAPIParameter;
41
+ //# sourceMappingURL=parameter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/parameter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,sBAAsB,EAEvB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,2BAA2B,gDAK9B,CAAC;AACX,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,wBAAwB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wBAAwB,CAKnC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,gBAAgB,CAwBxE"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview OpenAPI parameter interface.
4
+ * Defines the structure for OpenAPI operation parameters.
5
+ * @module interfaces/openApi/parameter
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.OPENAPI_PARAMETER_LOCATIONS = exports.isOpenAPIParameterSchema = void 0;
9
+ exports.isOpenAPIParameterLocation = isOpenAPIParameterLocation;
10
+ exports.isOpenAPIParameter = isOpenAPIParameter;
11
+ const parameterSchema_1 = require("./parameterSchema");
12
+ var parameterSchema_2 = require("./parameterSchema");
13
+ Object.defineProperty(exports, "isOpenAPIParameterSchema", { enumerable: true, get: function () { return parameterSchema_2.isOpenAPIParameterSchema; } });
14
+ /**
15
+ * Valid locations for OpenAPI parameters.
16
+ */
17
+ exports.OPENAPI_PARAMETER_LOCATIONS = [
18
+ 'path',
19
+ 'query',
20
+ 'header',
21
+ 'cookie',
22
+ ];
23
+ /**
24
+ * Type guard to check if a string is a valid OpenAPI parameter location.
25
+ * @param {unknown} value - Value to validate
26
+ * @returns {boolean} True if value is a valid parameter location
27
+ */
28
+ function isOpenAPIParameterLocation(value) {
29
+ return (typeof value === 'string' &&
30
+ exports.OPENAPI_PARAMETER_LOCATIONS.includes(value));
31
+ }
32
+ /**
33
+ * Type guard to check if object is a valid OpenAPI parameter.
34
+ * @param {unknown} obj - Object to validate
35
+ * @returns {boolean} True if object matches OpenAPIParameter interface
36
+ */
37
+ function isOpenAPIParameter(obj) {
38
+ if (!obj || typeof obj !== 'object') {
39
+ return false;
40
+ }
41
+ const param = obj;
42
+ if (typeof param.name !== 'string') {
43
+ return false;
44
+ }
45
+ if (!isOpenAPIParameterLocation(param.in)) {
46
+ return false;
47
+ }
48
+ if (param.required !== undefined && typeof param.required !== 'boolean') {
49
+ return false;
50
+ }
51
+ if (param.description !== undefined &&
52
+ typeof param.description !== 'string') {
53
+ return false;
54
+ }
55
+ if (!(0, parameterSchema_1.isOpenAPIParameterSchema)(param.schema)) {
56
+ return false;
57
+ }
58
+ return true;
59
+ }
60
+ //# sourceMappingURL=parameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/parameter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA4CH,gEAOC;AAOD,gDAwBC;AAhFD,uDAG2B;AAI3B,qDAA6D;AAApD,2HAAA,wBAAwB,OAAA;AAEjC;;GAEG;AACU,QAAA,2BAA2B,GAAG;IACzC,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;CACA,CAAC;AAoBX;;;;GAIG;AACH,SAAgB,0BAA0B,CACxC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,mCAA2B,CAAC,QAAQ,CAAC,KAAiC,CAAC,CACxE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,GAAY;IAC7C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,KAAK,CAAC,WAAW,KAAK,SAAS;QAC/B,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,IAAA,0CAAwB,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview OpenAPI parameter schema interface.
3
+ * Defines the schema structure for OpenAPI parameters.
4
+ * @module interfaces/openApi/parameterSchema
5
+ */
6
+ /**
7
+ * OpenAPI parameter schema definition.
8
+ * @property {string} type - The data type (string, number, integer, boolean, array, object)
9
+ * @property {string} [format] - The format hint (date-time, email, uuid, etc.)
10
+ * @property {string[]} [enum] - Allowed values for the parameter
11
+ * @property {unknown} [default] - Default value if not provided
12
+ * @property {number} [minimum] - Minimum value for numeric types
13
+ * @property {number} [maximum] - Maximum value for numeric types
14
+ * @property {number} [minLength] - Minimum length for string types
15
+ * @property {number} [maxLength] - Maximum length for string types
16
+ * @property {string} [pattern] - Regex pattern for string validation
17
+ * @property {OpenAPIParameterSchema} [items] - Schema for array items
18
+ * @property {boolean} [nullable] - Whether the value can be null (OpenAPI 3.0)
19
+ */
20
+ export interface OpenAPIParameterSchema {
21
+ type: string;
22
+ format?: string;
23
+ enum?: string[];
24
+ default?: unknown;
25
+ minimum?: number;
26
+ maximum?: number;
27
+ minLength?: number;
28
+ maxLength?: number;
29
+ pattern?: string;
30
+ items?: OpenAPIParameterSchema;
31
+ nullable?: boolean;
32
+ }
33
+ /**
34
+ * Type guard to check if object is a valid OpenAPI parameter schema.
35
+ * @param {unknown} obj - Object to validate
36
+ * @returns {boolean} True if object matches OpenAPIParameterSchema interface
37
+ */
38
+ export declare function isOpenAPIParameterSchema(obj: unknown): obj is OpenAPIParameterSchema;
39
+ //# sourceMappingURL=parameterSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterSchema.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/parameterSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,sBAAsB,CAoC/B"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview OpenAPI parameter schema interface.
4
+ * Defines the schema structure for OpenAPI parameters.
5
+ * @module interfaces/openApi/parameterSchema
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.isOpenAPIParameterSchema = isOpenAPIParameterSchema;
9
+ /**
10
+ * Type guard to check if object is a valid OpenAPI parameter schema.
11
+ * @param {unknown} obj - Object to validate
12
+ * @returns {boolean} True if object matches OpenAPIParameterSchema interface
13
+ */
14
+ function isOpenAPIParameterSchema(obj) {
15
+ if (!obj || typeof obj !== 'object') {
16
+ return false;
17
+ }
18
+ const schema = obj;
19
+ if (typeof schema.type !== 'string') {
20
+ return false;
21
+ }
22
+ if (schema.format !== undefined && typeof schema.format !== 'string') {
23
+ return false;
24
+ }
25
+ if (schema.enum !== undefined && !Array.isArray(schema.enum)) {
26
+ return false;
27
+ }
28
+ if (schema.minimum !== undefined && typeof schema.minimum !== 'number') {
29
+ return false;
30
+ }
31
+ if (schema.maximum !== undefined && typeof schema.maximum !== 'number') {
32
+ return false;
33
+ }
34
+ if (schema.minLength !== undefined && typeof schema.minLength !== 'number') {
35
+ return false;
36
+ }
37
+ if (schema.maxLength !== undefined && typeof schema.maxLength !== 'number') {
38
+ return false;
39
+ }
40
+ if (schema.pattern !== undefined && typeof schema.pattern !== 'string') {
41
+ return false;
42
+ }
43
+ if (schema.items !== undefined && !isOpenAPIParameterSchema(schema.items)) {
44
+ return false;
45
+ }
46
+ if (schema.nullable !== undefined && typeof schema.nullable !== 'boolean') {
47
+ return false;
48
+ }
49
+ return true;
50
+ }
51
+ //# sourceMappingURL=parameterSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterSchema.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/parameterSchema.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAmCH,4DAsCC;AA3CD;;;;GAIG;AACH,SAAgB,wBAAwB,CACtC,GAAY;IAEZ,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview OpenAPI request body interface.
3
+ * Defines the structure for OpenAPI operation request bodies.
4
+ * @module interfaces/openApi/requestBody
5
+ */
6
+ /**
7
+ * OpenAPI request body definition.
8
+ * @property {string} schema - Reference name like 'StoreBlockRequest'
9
+ * @property {boolean} [required] - Whether the request body is required
10
+ * @property {string} [description] - Description of the request body
11
+ * @property {unknown} [example] - Example value for documentation
12
+ */
13
+ export interface OpenAPIRequestBody {
14
+ schema: string;
15
+ required?: boolean;
16
+ description?: string;
17
+ example?: unknown;
18
+ }
19
+ /**
20
+ * Type guard to check if object is a valid OpenAPI request body.
21
+ * @param {unknown} obj - Object to validate
22
+ * @returns {boolean} True if object matches OpenAPIRequestBody interface
23
+ */
24
+ export declare function isOpenAPIRequestBody(obj: unknown): obj is OpenAPIRequestBody;
25
+ //# sourceMappingURL=requestBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestBody.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/requestBody.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAgB5E"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview OpenAPI request body interface.
4
+ * Defines the structure for OpenAPI operation request bodies.
5
+ * @module interfaces/openApi/requestBody
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.isOpenAPIRequestBody = isOpenAPIRequestBody;
9
+ /**
10
+ * Type guard to check if object is a valid OpenAPI request body.
11
+ * @param {unknown} obj - Object to validate
12
+ * @returns {boolean} True if object matches OpenAPIRequestBody interface
13
+ */
14
+ function isOpenAPIRequestBody(obj) {
15
+ if (!obj || typeof obj !== 'object') {
16
+ return false;
17
+ }
18
+ const body = obj;
19
+ if (typeof body.schema !== 'string') {
20
+ return false;
21
+ }
22
+ if (body.required !== undefined && typeof body.required !== 'boolean') {
23
+ return false;
24
+ }
25
+ if (body.description !== undefined && typeof body.description !== 'string') {
26
+ return false;
27
+ }
28
+ // example can be any type, so no validation needed
29
+ return true;
30
+ }
31
+ //# sourceMappingURL=requestBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestBody.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/requestBody.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAqBH,oDAgBC;AArBD;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,GAAY;IAC/C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,GAA8B,CAAC;IAC5C,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,mDAAmD;IACnD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @fileoverview OpenAPI response definition interface.
3
+ * Defines the structure for OpenAPI operation responses.
4
+ * @module interfaces/openApi/responseDef
5
+ */
6
+ /**
7
+ * OpenAPI response definition.
8
+ * @property {string} [schema] - Reference name for the response schema
9
+ * @property {string} [description] - Description of the response
10
+ * @property {unknown} [example] - Example value for documentation
11
+ */
12
+ export interface OpenAPIResponseDef {
13
+ schema?: string;
14
+ description?: string;
15
+ example?: unknown;
16
+ }
17
+ /**
18
+ * Type guard to check if object is a valid OpenAPI response definition.
19
+ * @param {unknown} obj - Object to validate
20
+ * @returns {boolean} True if object matches OpenAPIResponseDef interface
21
+ */
22
+ export declare function isOpenAPIResponseDef(obj: unknown): obj is OpenAPIResponseDef;
23
+ //# sourceMappingURL=responseDef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseDef.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/responseDef.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAgB5E"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview OpenAPI response definition interface.
4
+ * Defines the structure for OpenAPI operation responses.
5
+ * @module interfaces/openApi/responseDef
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.isOpenAPIResponseDef = isOpenAPIResponseDef;
9
+ /**
10
+ * Type guard to check if object is a valid OpenAPI response definition.
11
+ * @param {unknown} obj - Object to validate
12
+ * @returns {boolean} True if object matches OpenAPIResponseDef interface
13
+ */
14
+ function isOpenAPIResponseDef(obj) {
15
+ if (!obj || typeof obj !== 'object') {
16
+ return false;
17
+ }
18
+ const response = obj;
19
+ if (response.schema !== undefined && typeof response.schema !== 'string') {
20
+ return false;
21
+ }
22
+ if (response.description !== undefined &&
23
+ typeof response.description !== 'string') {
24
+ return false;
25
+ }
26
+ // example can be any type, so no validation needed
27
+ return true;
28
+ }
29
+ //# sourceMappingURL=responseDef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseDef.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/responseDef.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAmBH,oDAgBC;AArBD;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,GAAY;IAC/C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,GAA8B,CAAC;IAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,QAAQ,CAAC,WAAW,KAAK,SAAS;QAClC,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EACxC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,mDAAmD;IACnD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @fileoverview OpenAPI route metadata interface.
3
+ * Defines the structure for OpenAPI operation metadata attached to routes.
4
+ * @module interfaces/openApi/routeMetadata
5
+ */
6
+ import { OpenAPIParameter } from './parameter';
7
+ import { OpenAPIRequestBody } from './requestBody';
8
+ import { OpenAPIResponseDef } from './responseDef';
9
+ /**
10
+ * Type for OpenAPI responses map - allows numeric status codes and 'default'.
11
+ * Uses a mapped type to make all keys optional while preserving the key constraint.
12
+ */
13
+ export type OpenAPIResponses = {
14
+ [K in number | 'default']?: OpenAPIResponseDef;
15
+ };
16
+ /**
17
+ * OpenAPI route metadata definition.
18
+ * @property {string} summary - Short summary of the operation
19
+ * @property {string} [description] - Detailed description of the operation
20
+ * @property {string[]} tags - Tags for grouping operations
21
+ * @property {string} [operationId] - Unique identifier for the operation
22
+ * @property {boolean} [deprecated] - Whether the operation is deprecated
23
+ * @property {OpenAPIRequestBody} [requestBody] - Request body definition
24
+ * @property {OpenAPIResponses} responses - Response definitions by status code
25
+ * @property {OpenAPIParameter[]} [parameters] - Parameter definitions
26
+ */
27
+ export interface OpenAPIRouteMetadata {
28
+ summary: string;
29
+ description?: string;
30
+ tags: string[];
31
+ operationId?: string;
32
+ deprecated?: boolean;
33
+ requestBody?: OpenAPIRequestBody;
34
+ responses: OpenAPIResponses;
35
+ parameters?: OpenAPIParameter[];
36
+ }
37
+ /**
38
+ * Type guard to check if object is valid OpenAPI route metadata.
39
+ * @param {unknown} obj - Object to validate
40
+ * @returns {boolean} True if object matches OpenAPIRouteMetadata interface
41
+ */
42
+ export declare function isOpenAPIRouteMetadata(obj: unknown): obj is OpenAPIRouteMetadata;
43
+ //# sourceMappingURL=routeMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeMetadata.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/routeMetadata.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAwB,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAwB,MAAM,eAAe,CAAC;AAEzE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;KAC5B,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,kBAAkB;CAC/C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAeD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,oBAAoB,CAoE7B"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview OpenAPI route metadata interface.
4
+ * Defines the structure for OpenAPI operation metadata attached to routes.
5
+ * @module interfaces/openApi/routeMetadata
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.isOpenAPIRouteMetadata = isOpenAPIRouteMetadata;
9
+ const parameter_1 = require("./parameter");
10
+ const requestBody_1 = require("./requestBody");
11
+ const responseDef_1 = require("./responseDef");
12
+ /**
13
+ * Validates that a key is a valid response status code (number or 'default').
14
+ * @param {string} key - The key to validate
15
+ * @returns {boolean} True if key is a valid status code
16
+ */
17
+ function isValidResponseKey(key) {
18
+ if (key === 'default') {
19
+ return true;
20
+ }
21
+ const num = parseInt(key, 10);
22
+ return !isNaN(num) && num >= 100 && num < 600;
23
+ }
24
+ /**
25
+ * Type guard to check if object is valid OpenAPI route metadata.
26
+ * @param {unknown} obj - Object to validate
27
+ * @returns {boolean} True if object matches OpenAPIRouteMetadata interface
28
+ */
29
+ function isOpenAPIRouteMetadata(obj) {
30
+ if (!obj || typeof obj !== 'object') {
31
+ return false;
32
+ }
33
+ const metadata = obj;
34
+ // Required fields
35
+ if (typeof metadata.summary !== 'string') {
36
+ return false;
37
+ }
38
+ if (!Array.isArray(metadata.tags)) {
39
+ return false;
40
+ }
41
+ if (!metadata.tags.every((tag) => typeof tag === 'string')) {
42
+ return false;
43
+ }
44
+ if (!metadata.responses || typeof metadata.responses !== 'object') {
45
+ return false;
46
+ }
47
+ // Optional fields
48
+ if (metadata.description !== undefined &&
49
+ typeof metadata.description !== 'string') {
50
+ return false;
51
+ }
52
+ if (metadata.operationId !== undefined &&
53
+ typeof metadata.operationId !== 'string') {
54
+ return false;
55
+ }
56
+ if (metadata.deprecated !== undefined &&
57
+ typeof metadata.deprecated !== 'boolean') {
58
+ return false;
59
+ }
60
+ if (metadata.requestBody !== undefined &&
61
+ !(0, requestBody_1.isOpenAPIRequestBody)(metadata.requestBody)) {
62
+ return false;
63
+ }
64
+ // Validate responses
65
+ const responses = metadata.responses;
66
+ for (const [key, value] of Object.entries(responses)) {
67
+ if (!isValidResponseKey(key)) {
68
+ return false;
69
+ }
70
+ if (!(0, responseDef_1.isOpenAPIResponseDef)(value)) {
71
+ return false;
72
+ }
73
+ }
74
+ // Validate parameters
75
+ if (metadata.parameters !== undefined) {
76
+ if (!Array.isArray(metadata.parameters)) {
77
+ return false;
78
+ }
79
+ if (!metadata.parameters.every((param) => (0, parameter_1.isOpenAPIParameter)(param))) {
80
+ return false;
81
+ }
82
+ }
83
+ return true;
84
+ }
85
+ //# sourceMappingURL=routeMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeMetadata.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/openApi/routeMetadata.ts"],"names":[],"mappings":"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"}