@digitaldefiance/node-express-suite 3.11.32 → 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.
- package/README.md +858 -0
- package/package.json +1 -1
- package/src/controllers/openapi.d.ts +67 -0
- package/src/controllers/openapi.d.ts.map +1 -0
- package/src/controllers/openapi.js +89 -0
- package/src/controllers/openapi.js.map +1 -0
- package/src/decorators/auth.d.ts +128 -0
- package/src/decorators/auth.d.ts.map +1 -0
- package/src/decorators/auth.js +230 -0
- package/src/decorators/auth.js.map +1 -0
- package/src/decorators/base-controller.d.ts +144 -6
- package/src/decorators/base-controller.d.ts.map +1 -1
- package/src/decorators/base-controller.js +487 -31
- package/src/decorators/base-controller.js.map +1 -1
- package/src/decorators/controller.d.ts +63 -7
- package/src/decorators/controller.d.ts.map +1 -1
- package/src/decorators/controller.js +70 -39
- package/src/decorators/controller.js.map +1 -1
- package/src/decorators/handler-args.d.ts +68 -0
- package/src/decorators/handler-args.d.ts.map +1 -0
- package/src/decorators/handler-args.js +83 -0
- package/src/decorators/handler-args.js.map +1 -0
- package/src/decorators/http-methods.d.ts +143 -0
- package/src/decorators/http-methods.d.ts.map +1 -0
- package/src/decorators/http-methods.js +265 -0
- package/src/decorators/http-methods.js.map +1 -0
- package/src/decorators/index.d.ts +22 -0
- package/src/decorators/index.d.ts.map +1 -1
- package/src/decorators/index.js +56 -0
- package/src/decorators/index.js.map +1 -1
- package/src/decorators/lifecycle.d.ts +248 -0
- package/src/decorators/lifecycle.d.ts.map +1 -0
- package/src/decorators/lifecycle.js +301 -0
- package/src/decorators/lifecycle.js.map +1 -0
- package/src/decorators/metadata-collector.d.ts +175 -0
- package/src/decorators/metadata-collector.d.ts.map +1 -0
- package/src/decorators/metadata-collector.js +272 -0
- package/src/decorators/metadata-collector.js.map +1 -0
- package/src/decorators/metadata-keys.d.ts +121 -0
- package/src/decorators/metadata-keys.d.ts.map +1 -0
- package/src/decorators/metadata-keys.js +116 -0
- package/src/decorators/metadata-keys.js.map +1 -0
- package/src/decorators/middleware.d.ts +181 -0
- package/src/decorators/middleware.d.ts.map +1 -0
- package/src/decorators/middleware.js +400 -0
- package/src/decorators/middleware.js.map +1 -0
- package/src/decorators/openapi-params.d.ts +192 -0
- package/src/decorators/openapi-params.d.ts.map +1 -0
- package/src/decorators/openapi-params.js +332 -0
- package/src/decorators/openapi-params.js.map +1 -0
- package/src/decorators/openapi.d.ts +201 -0
- package/src/decorators/openapi.d.ts.map +1 -0
- package/src/decorators/openapi.js +334 -0
- package/src/decorators/openapi.js.map +1 -0
- package/src/decorators/params.d.ts +217 -0
- package/src/decorators/params.d.ts.map +1 -0
- package/src/decorators/params.js +323 -0
- package/src/decorators/params.js.map +1 -0
- package/src/decorators/response.d.ts +200 -0
- package/src/decorators/response.d.ts.map +1 -0
- package/src/decorators/response.js +315 -0
- package/src/decorators/response.js.map +1 -0
- package/src/decorators/schema.d.ts +99 -0
- package/src/decorators/schema.d.ts.map +1 -0
- package/src/decorators/schema.js +329 -0
- package/src/decorators/schema.js.map +1 -0
- package/src/decorators/transaction.d.ts +69 -0
- package/src/decorators/transaction.d.ts.map +1 -0
- package/src/decorators/transaction.js +80 -0
- package/src/decorators/transaction.js.map +1 -0
- package/src/decorators/validation.d.ts +188 -0
- package/src/decorators/validation.d.ts.map +1 -0
- package/src/decorators/validation.js +269 -0
- package/src/decorators/validation.js.map +1 -0
- package/src/decorators/zod-validation.d.ts +164 -4
- package/src/decorators/zod-validation.d.ts.map +1 -1
- package/src/decorators/zod-validation.js +692 -13
- package/src/decorators/zod-validation.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/interfaces/openApi/decoratorOptions.d.ts +760 -0
- package/src/interfaces/openApi/decoratorOptions.d.ts.map +1 -0
- package/src/interfaces/openApi/decoratorOptions.js +734 -0
- package/src/interfaces/openApi/decoratorOptions.js.map +1 -0
- package/src/interfaces/openApi/index.d.ts +1 -0
- package/src/interfaces/openApi/index.d.ts.map +1 -1
- package/src/interfaces/openApi/index.js +23 -0
- package/src/interfaces/openApi/index.js.map +1 -1
- package/src/interfaces/openApi/parameter.d.ts +2 -0
- package/src/interfaces/openApi/parameter.d.ts.map +1 -1
- package/src/interfaces/openApi/parameter.js +3 -1
- package/src/interfaces/openApi/parameter.js.map +1 -1
- package/src/interfaces/openApi/parameterSchema.d.ts +2 -0
- package/src/interfaces/openApi/parameterSchema.d.ts.map +1 -1
- package/src/interfaces/openApi/parameterSchema.js +3 -0
- package/src/interfaces/openApi/parameterSchema.js.map +1 -1
- package/src/openapi/builder.d.ts +249 -0
- package/src/openapi/builder.d.ts.map +1 -0
- package/src/openapi/builder.js +352 -0
- package/src/openapi/builder.js.map +1 -0
- package/src/openapi/controller.d.ts +153 -0
- package/src/openapi/controller.d.ts.map +1 -0
- package/src/openapi/controller.js +331 -0
- package/src/openapi/controller.js.map +1 -0
- package/src/openapi/index.d.ts +12 -0
- package/src/openapi/index.d.ts.map +1 -0
- package/src/openapi/index.js +20 -0
- package/src/openapi/index.js.map +1 -0
- package/src/openapi/markdown-generator.d.ts +52 -0
- package/src/openapi/markdown-generator.d.ts.map +1 -0
- package/src/openapi/markdown-generator.js +569 -0
- package/src/openapi/markdown-generator.js.map +1 -0
- package/src/openapi/middleware/index.d.ts +9 -0
- package/src/openapi/middleware/index.d.ts.map +1 -0
- package/src/openapi/middleware/index.js +15 -0
- package/src/openapi/middleware/index.js.map +1 -0
- package/src/openapi/middleware/redoc.d.ts +314 -0
- package/src/openapi/middleware/redoc.d.ts.map +1 -0
- package/src/openapi/middleware/redoc.js +181 -0
- package/src/openapi/middleware/redoc.js.map +1 -0
- package/src/openapi/middleware/swagger-ui.d.ts +123 -0
- package/src/openapi/middleware/swagger-ui.d.ts.map +1 -0
- package/src/openapi/middleware/swagger-ui.js +227 -0
- package/src/openapi/middleware/swagger-ui.js.map +1 -0
- package/src/openapi/schemas.d.ts +170 -0
- package/src/openapi/schemas.d.ts.map +1 -0
- package/src/openapi/schemas.js +340 -0
- package/src/openapi/schemas.js.map +1 -0
- package/src/registry/controller-registry.d.ts +78 -0
- package/src/registry/controller-registry.d.ts.map +1 -0
- package/src/registry/controller-registry.js +86 -0
- package/src/registry/controller-registry.js.map +1 -0
- package/src/registry/index.d.ts +2 -0
- package/src/registry/index.d.ts.map +1 -1
- package/src/registry/index.js +3 -1
- package/src/registry/index.js.map +1 -1
- package/src/routers/api.d.ts +2 -1
- package/src/routers/api.d.ts.map +1 -1
- package/src/routers/api.js +7 -1
- package/src/routers/api.js.map +1 -1
- package/src/types.d.ts +1 -0
- package/src/types.d.ts.map +1 -1
- package/src/types.js +1 -0
- package/src/types.js.map +1 -1
|
@@ -9,8 +9,9 @@ import { ValidationChain } from 'express-validator';
|
|
|
9
9
|
import 'reflect-metadata';
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
import { IConstants } from '../interfaces';
|
|
12
|
-
|
|
13
|
-
export
|
|
12
|
+
import { ApiControllerOptions } from '../interfaces/openApi/decoratorOptions';
|
|
13
|
+
export { CONTROLLER_METADATA, OPENAPI_CONTROLLER_METADATA, ROUTES_METADATA, } from './metadata-keys';
|
|
14
|
+
export type { ApiControllerOptions } from '../interfaces/openApi/decoratorOptions';
|
|
14
15
|
export type ValidationContext<TConstants extends IConstants = IConstants> = {
|
|
15
16
|
constants: TConstants;
|
|
16
17
|
};
|
|
@@ -30,14 +31,69 @@ export interface RouteMetadata<TLanguage extends CoreLanguageCode = CoreLanguage
|
|
|
30
31
|
handlerName: string;
|
|
31
32
|
options: RouteOptions<TLanguage>;
|
|
32
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Controller metadata structure stored by @Controller and @ApiController decorators.
|
|
36
|
+
*/
|
|
37
|
+
export interface ControllerMetadata {
|
|
38
|
+
/** Base path for all routes in this controller */
|
|
39
|
+
basePath: string;
|
|
40
|
+
/** Optional controller name (defaults to class name) */
|
|
41
|
+
name?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* OpenAPI controller metadata structure stored by @ApiController decorator.
|
|
45
|
+
*/
|
|
46
|
+
export interface OpenApiControllerMetadata {
|
|
47
|
+
/** Tags to apply to all routes in this controller */
|
|
48
|
+
tags?: string[];
|
|
49
|
+
/** Description of the controller for OpenAPI documentation */
|
|
50
|
+
description?: string;
|
|
51
|
+
/** Whether all routes in this controller are deprecated */
|
|
52
|
+
deprecated?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Basic controller decorator for defining route base path.
|
|
56
|
+
* Use @ApiController for OpenAPI-enabled controllers.
|
|
57
|
+
*
|
|
58
|
+
* @param basePath - Base path for all routes in this controller
|
|
59
|
+
* @returns Class decorator function
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* @Controller('/api/users')
|
|
64
|
+
* class UserController {
|
|
65
|
+
* @Get('/:id')
|
|
66
|
+
* getUser() {}
|
|
67
|
+
* }
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
33
70
|
export declare function Controller(basePath?: string): <T extends {
|
|
34
71
|
new (...args: any[]): {};
|
|
35
72
|
}>(constructor: T) => T;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Enhanced controller decorator with OpenAPI support.
|
|
75
|
+
* Registers the controller with both base path and OpenAPI metadata.
|
|
76
|
+
*
|
|
77
|
+
* @param basePath - Base path for all routes in this controller
|
|
78
|
+
* @param options - Optional OpenAPI configuration (tags, description, deprecated, name)
|
|
79
|
+
* @returns Class decorator function
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* @ApiController('/api/users', {
|
|
84
|
+
* tags: ['Users'],
|
|
85
|
+
* description: 'User management endpoints',
|
|
86
|
+
* })
|
|
87
|
+
* class UserController {
|
|
88
|
+
* @Get('/:id')
|
|
89
|
+
* getUser() {}
|
|
90
|
+
* }
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare function ApiController(basePath?: string, options?: ApiControllerOptions): <T extends {
|
|
94
|
+
new (...args: any[]): {};
|
|
95
|
+
}>(constructor: T) => T;
|
|
96
|
+
export { Delete, Get, Patch, Post, Put } from './http-methods';
|
|
41
97
|
export declare function Auth(_cryptoAuth?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
42
98
|
export declare function Validate<TLanguage extends CoreLanguageCode = CoreLanguageCode>(_validation: ValidationChain[] | ((lang: TLanguage) => ValidationChain[])): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
43
99
|
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/decorators/controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/decorators/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,58 +5,89 @@
|
|
|
5
5
|
* @module decorators/controller
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.ROUTES_METADATA = exports.CONTROLLER_METADATA = void 0;
|
|
8
|
+
exports.Put = exports.Post = exports.Patch = exports.Get = exports.Delete = exports.ROUTES_METADATA = exports.OPENAPI_CONTROLLER_METADATA = exports.CONTROLLER_METADATA = void 0;
|
|
9
9
|
exports.Controller = Controller;
|
|
10
|
-
exports.
|
|
11
|
-
exports.Post = Post;
|
|
12
|
-
exports.Put = Put;
|
|
13
|
-
exports.Delete = Delete;
|
|
14
|
-
exports.Patch = Patch;
|
|
10
|
+
exports.ApiController = ApiController;
|
|
15
11
|
exports.Auth = Auth;
|
|
16
12
|
exports.Validate = Validate;
|
|
17
13
|
require("reflect-metadata");
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
const metadata_keys_1 = require("./metadata-keys");
|
|
15
|
+
// Re-export metadata keys for backward compatibility
|
|
16
|
+
var metadata_keys_2 = require("./metadata-keys");
|
|
17
|
+
Object.defineProperty(exports, "CONTROLLER_METADATA", { enumerable: true, get: function () { return metadata_keys_2.CONTROLLER_METADATA; } });
|
|
18
|
+
Object.defineProperty(exports, "OPENAPI_CONTROLLER_METADATA", { enumerable: true, get: function () { return metadata_keys_2.OPENAPI_CONTROLLER_METADATA; } });
|
|
19
|
+
Object.defineProperty(exports, "ROUTES_METADATA", { enumerable: true, get: function () { return metadata_keys_2.ROUTES_METADATA; } });
|
|
20
|
+
/**
|
|
21
|
+
* Basic controller decorator for defining route base path.
|
|
22
|
+
* Use @ApiController for OpenAPI-enabled controllers.
|
|
23
|
+
*
|
|
24
|
+
* @param basePath - Base path for all routes in this controller
|
|
25
|
+
* @returns Class decorator function
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* @Controller('/api/users')
|
|
30
|
+
* class UserController {
|
|
31
|
+
* @Get('/:id')
|
|
32
|
+
* getUser() {}
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
22
36
|
function Controller(basePath = '') {
|
|
23
37
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
24
38
|
return function (constructor) {
|
|
25
|
-
|
|
39
|
+
const metadata = { basePath };
|
|
40
|
+
Reflect.defineMetadata(metadata_keys_1.CONTROLLER_METADATA, metadata, constructor);
|
|
26
41
|
return constructor;
|
|
27
42
|
};
|
|
28
43
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Enhanced controller decorator with OpenAPI support.
|
|
46
|
+
* Registers the controller with both base path and OpenAPI metadata.
|
|
47
|
+
*
|
|
48
|
+
* @param basePath - Base path for all routes in this controller
|
|
49
|
+
* @param options - Optional OpenAPI configuration (tags, description, deprecated, name)
|
|
50
|
+
* @returns Class decorator function
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* @ApiController('/api/users', {
|
|
55
|
+
* tags: ['Users'],
|
|
56
|
+
* description: 'User management endpoints',
|
|
57
|
+
* })
|
|
58
|
+
* class UserController {
|
|
59
|
+
* @Get('/:id')
|
|
60
|
+
* getUser() {}
|
|
61
|
+
* }
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
function ApiController(basePath = '', options = {}) {
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
66
|
+
return function (constructor) {
|
|
67
|
+
// Store base controller metadata (basePath and optional name)
|
|
68
|
+
const controllerMetadata = {
|
|
69
|
+
basePath,
|
|
70
|
+
name: options.name ?? constructor.name,
|
|
54
71
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
72
|
+
Reflect.defineMetadata(metadata_keys_1.CONTROLLER_METADATA, controllerMetadata, constructor);
|
|
73
|
+
// Store OpenAPI-specific controller metadata
|
|
74
|
+
const openApiMetadata = {
|
|
75
|
+
tags: options.tags,
|
|
76
|
+
description: options.description,
|
|
77
|
+
deprecated: options.deprecated,
|
|
78
|
+
};
|
|
79
|
+
Reflect.defineMetadata(metadata_keys_1.OPENAPI_CONTROLLER_METADATA, openApiMetadata, constructor);
|
|
80
|
+
return constructor;
|
|
58
81
|
};
|
|
59
82
|
}
|
|
83
|
+
// Re-export enhanced HTTP method decorators from http-methods.ts
|
|
84
|
+
// These provide OpenAPI metadata support while maintaining backward compatibility
|
|
85
|
+
var http_methods_1 = require("./http-methods");
|
|
86
|
+
Object.defineProperty(exports, "Delete", { enumerable: true, get: function () { return http_methods_1.Delete; } });
|
|
87
|
+
Object.defineProperty(exports, "Get", { enumerable: true, get: function () { return http_methods_1.Get; } });
|
|
88
|
+
Object.defineProperty(exports, "Patch", { enumerable: true, get: function () { return http_methods_1.Patch; } });
|
|
89
|
+
Object.defineProperty(exports, "Post", { enumerable: true, get: function () { return http_methods_1.Post; } });
|
|
90
|
+
Object.defineProperty(exports, "Put", { enumerable: true, get: function () { return http_methods_1.Put; } });
|
|
60
91
|
// Convenience decorators
|
|
61
92
|
function Auth(_cryptoAuth = false) {
|
|
62
93
|
return function (target, propertyKey, descriptor) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/decorators/controller.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/decorators/controller.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAkGH,gCAOC;AAsBD,sCA+BC;AAOD,oBASC;AAED,4BAWC;AAtLD,4BAA0B;AAI1B,mDAGyB;AAEzB,qDAAqD;AACrD,iDAIyB;AAHvB,oHAAA,mBAAmB,OAAA;AACnB,4HAAA,2BAA2B,OAAA;AAC3B,gHAAA,eAAe,OAAA;AAgEjB;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,UAAU,CAAC,WAAmB,EAAE;IAC9C,mEAAmE;IACnE,OAAO,UAAkD,WAAc;QACrE,MAAM,QAAQ,GAAuB,EAAE,QAAQ,EAAE,CAAC;QAClD,OAAO,CAAC,cAAc,CAAC,mCAAmB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,aAAa,CAC3B,WAAmB,EAAE,EACrB,UAAgC,EAAE;IAElC,mEAAmE;IACnE,OAAO,UAAkD,WAAc;QACrE,8DAA8D;QAC9D,MAAM,kBAAkB,GAAuB;YAC7C,QAAQ;YACR,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI;SACvC,CAAC;QACF,OAAO,CAAC,cAAc,CACpB,mCAAmB,EACnB,kBAAkB,EAClB,WAAW,CACZ,CAAC;QAEF,6CAA6C;QAC7C,MAAM,eAAe,GAA8B;YACjD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QACF,OAAO,CAAC,cAAc,CACpB,2CAA2B,EAC3B,eAAe,EACf,WAAW,CACZ,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,kFAAkF;AAClF,+CAA+D;AAAtD,sGAAA,MAAM,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,qGAAA,KAAK,OAAA;AAAE,oGAAA,IAAI,OAAA;AAAE,mGAAA,GAAG,OAAA;AAEtC,yBAAyB;AACzB,SAAgB,IAAI,CAAC,cAAuB,KAAK;IAC/C,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B;QAE9B,+CAA+C;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CACtB,WAAyE;IAEzE,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B;QAE9B,+CAA+C;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Handler arguments decorator for Express Suite.
|
|
3
|
+
* Provides @HandlerArgs decorator for passing additional arguments to handler methods.
|
|
4
|
+
* @module decorators/handler-args
|
|
5
|
+
*/
|
|
6
|
+
import 'reflect-metadata';
|
|
7
|
+
/**
|
|
8
|
+
* Metadata stored for handler arguments.
|
|
9
|
+
*/
|
|
10
|
+
export interface HandlerArgsMetadata {
|
|
11
|
+
/**
|
|
12
|
+
* Additional arguments to pass to the handler method.
|
|
13
|
+
*/
|
|
14
|
+
args: unknown[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Decorator that specifies additional arguments to pass to a route handler method.
|
|
18
|
+
* These arguments are passed to the handler after the standard request parameter.
|
|
19
|
+
*
|
|
20
|
+
* @param args - Additional arguments to pass to the handler
|
|
21
|
+
* @returns Method decorator
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* @ApiController('/api/items')
|
|
26
|
+
* class ItemController {
|
|
27
|
+
* // Pass a configuration object to the handler
|
|
28
|
+
* @HandlerArgs({ maxItems: 100 })
|
|
29
|
+
* @Get('/')
|
|
30
|
+
* listItems(req: Request, config: { maxItems: number }) {
|
|
31
|
+
* // config.maxItems === 100
|
|
32
|
+
* }
|
|
33
|
+
*
|
|
34
|
+
* // Pass multiple arguments
|
|
35
|
+
* @HandlerArgs('prefix', 42, { option: true })
|
|
36
|
+
* @Post('/')
|
|
37
|
+
* createItem(req: Request, prefix: string, count: number, options: { option: boolean }) {
|
|
38
|
+
* // prefix === 'prefix', count === 42, options.option === true
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function HandlerArgs(...args: unknown[]): MethodDecorator;
|
|
44
|
+
/**
|
|
45
|
+
* Gets handler args metadata for a method.
|
|
46
|
+
*
|
|
47
|
+
* @param target - The class constructor
|
|
48
|
+
* @param propertyKey - The method name
|
|
49
|
+
* @returns Handler args metadata or undefined if not set
|
|
50
|
+
*/
|
|
51
|
+
export declare function getHandlerArgsMetadata(target: object, propertyKey: string | symbol): HandlerArgsMetadata | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* Gets the handler arguments array for a method.
|
|
54
|
+
*
|
|
55
|
+
* @param target - The class constructor
|
|
56
|
+
* @param propertyKey - The method name
|
|
57
|
+
* @returns Array of handler arguments or empty array if not set
|
|
58
|
+
*/
|
|
59
|
+
export declare function getHandlerArgs(target: object, propertyKey: string | symbol): unknown[];
|
|
60
|
+
/**
|
|
61
|
+
* Checks if a method has handler args defined.
|
|
62
|
+
*
|
|
63
|
+
* @param target - The class constructor
|
|
64
|
+
* @param propertyKey - The method name
|
|
65
|
+
* @returns True if the method has handler args
|
|
66
|
+
*/
|
|
67
|
+
export declare function hasHandlerArgs(target: object, propertyKey: string | symbol): boolean;
|
|
68
|
+
//# sourceMappingURL=handler-args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-args.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/decorators/handler-args.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kBAAkB,CAAC;AAI1B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAmB/D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,mBAAmB,GAAG,SAAS,CAMjC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,OAAO,EAAE,CAGX;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,OAAO,CAGT"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Handler arguments decorator for Express Suite.
|
|
4
|
+
* Provides @HandlerArgs decorator for passing additional arguments to handler methods.
|
|
5
|
+
* @module decorators/handler-args
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.HandlerArgs = HandlerArgs;
|
|
9
|
+
exports.getHandlerArgsMetadata = getHandlerArgsMetadata;
|
|
10
|
+
exports.getHandlerArgs = getHandlerArgs;
|
|
11
|
+
exports.hasHandlerArgs = hasHandlerArgs;
|
|
12
|
+
require("reflect-metadata");
|
|
13
|
+
const metadata_keys_1 = require("./metadata-keys");
|
|
14
|
+
const metadata_collector_1 = require("./metadata-collector");
|
|
15
|
+
/**
|
|
16
|
+
* Decorator that specifies additional arguments to pass to a route handler method.
|
|
17
|
+
* These arguments are passed to the handler after the standard request parameter.
|
|
18
|
+
*
|
|
19
|
+
* @param args - Additional arguments to pass to the handler
|
|
20
|
+
* @returns Method decorator
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* @ApiController('/api/items')
|
|
25
|
+
* class ItemController {
|
|
26
|
+
* // Pass a configuration object to the handler
|
|
27
|
+
* @HandlerArgs({ maxItems: 100 })
|
|
28
|
+
* @Get('/')
|
|
29
|
+
* listItems(req: Request, config: { maxItems: number }) {
|
|
30
|
+
* // config.maxItems === 100
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* // Pass multiple arguments
|
|
34
|
+
* @HandlerArgs('prefix', 42, { option: true })
|
|
35
|
+
* @Post('/')
|
|
36
|
+
* createItem(req: Request, prefix: string, count: number, options: { option: boolean }) {
|
|
37
|
+
* // prefix === 'prefix', count === 42, options.option === true
|
|
38
|
+
* }
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
function HandlerArgs(...args) {
|
|
43
|
+
return function (target, propertyKey, descriptor) {
|
|
44
|
+
const metadata = {
|
|
45
|
+
args,
|
|
46
|
+
};
|
|
47
|
+
(0, metadata_collector_1.setMetadata)(metadata_keys_1.HANDLER_ARGS_METADATA, metadata, target.constructor, propertyKey);
|
|
48
|
+
return descriptor;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Gets handler args metadata for a method.
|
|
53
|
+
*
|
|
54
|
+
* @param target - The class constructor
|
|
55
|
+
* @param propertyKey - The method name
|
|
56
|
+
* @returns Handler args metadata or undefined if not set
|
|
57
|
+
*/
|
|
58
|
+
function getHandlerArgsMetadata(target, propertyKey) {
|
|
59
|
+
return (0, metadata_collector_1.getMetadata)(metadata_keys_1.HANDLER_ARGS_METADATA, target, propertyKey);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Gets the handler arguments array for a method.
|
|
63
|
+
*
|
|
64
|
+
* @param target - The class constructor
|
|
65
|
+
* @param propertyKey - The method name
|
|
66
|
+
* @returns Array of handler arguments or empty array if not set
|
|
67
|
+
*/
|
|
68
|
+
function getHandlerArgs(target, propertyKey) {
|
|
69
|
+
const metadata = getHandlerArgsMetadata(target, propertyKey);
|
|
70
|
+
return metadata?.args ?? [];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Checks if a method has handler args defined.
|
|
74
|
+
*
|
|
75
|
+
* @param target - The class constructor
|
|
76
|
+
* @param propertyKey - The method name
|
|
77
|
+
* @returns True if the method has handler args
|
|
78
|
+
*/
|
|
79
|
+
function hasHandlerArgs(target, propertyKey) {
|
|
80
|
+
const metadata = getHandlerArgsMetadata(target, propertyKey);
|
|
81
|
+
return metadata !== undefined && metadata.args.length > 0;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=handler-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler-args.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/decorators/handler-args.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA2CH,kCAmBC;AASD,wDASC;AASD,wCAMC;AASD,wCAMC;AA5GD,4BAA0B;AAC1B,mDAAwD;AACxD,6DAAgE;AAYhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,WAAW,CAAC,GAAG,IAAe;IAC5C,OAAO,UACL,MAAc,EACd,WAA4B,EAC5B,UAA8B;QAE9B,MAAM,QAAQ,GAAwB;YACpC,IAAI;SACL,CAAC;QAEF,IAAA,gCAAW,EACT,qCAAqB,EACrB,QAAQ,EACR,MAAM,CAAC,WAAW,EAClB,WAAW,CACZ,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,MAAc,EACd,WAA4B;IAE5B,OAAO,IAAA,gCAAW,EAChB,qCAAqB,EACrB,MAAM,EACN,WAAW,CACZ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,MAAc,EACd,WAA4B;IAE5B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,OAAO,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,MAAc,EACd,WAA4B;IAE5B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Enhanced HTTP method decorators with OpenAPI support.
|
|
3
|
+
* Provides @Get, @Post, @Put, @Delete, @Patch decorators with inline OpenAPI metadata.
|
|
4
|
+
* @module decorators/http-methods
|
|
5
|
+
*/
|
|
6
|
+
import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
|
|
7
|
+
import 'reflect-metadata';
|
|
8
|
+
import { RouteDecoratorOptions } from '../interfaces/openApi/decoratorOptions';
|
|
9
|
+
/**
|
|
10
|
+
* Route metadata structure stored by HTTP method decorators.
|
|
11
|
+
*/
|
|
12
|
+
export interface EnhancedRouteMetadata<TLanguage extends CoreLanguageCode = CoreLanguageCode> {
|
|
13
|
+
/** HTTP method */
|
|
14
|
+
method: 'get' | 'post' | 'put' | 'delete' | 'patch';
|
|
15
|
+
/** Route path */
|
|
16
|
+
path: string;
|
|
17
|
+
/** Handler method name */
|
|
18
|
+
handlerName: string;
|
|
19
|
+
/** Route options including validation, middleware, auth, etc. */
|
|
20
|
+
options: RouteDecoratorOptions<TLanguage>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* GET method decorator with OpenAPI support.
|
|
24
|
+
* Registers a GET route handler with optional OpenAPI metadata.
|
|
25
|
+
*
|
|
26
|
+
* @param path - Route path (e.g., '/users/:id')
|
|
27
|
+
* @param options - Route options including validation, auth, and OpenAPI metadata
|
|
28
|
+
* @returns Method decorator
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* @ApiController('/api/users')
|
|
33
|
+
* class UserController {
|
|
34
|
+
* @Get('/:id', {
|
|
35
|
+
* summary: 'Get user by ID',
|
|
36
|
+
* tags: ['Users'],
|
|
37
|
+
* auth: true,
|
|
38
|
+
* })
|
|
39
|
+
* async getUser(@Param('id') id: string) {
|
|
40
|
+
* return this.userService.findById(id);
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function Get<TLanguage extends CoreLanguageCode = CoreLanguageCode>(path: string, options?: RouteDecoratorOptions<TLanguage>): MethodDecorator;
|
|
46
|
+
/**
|
|
47
|
+
* POST method decorator with OpenAPI support.
|
|
48
|
+
* Registers a POST route handler with optional OpenAPI metadata.
|
|
49
|
+
*
|
|
50
|
+
* @param path - Route path (e.g., '/users')
|
|
51
|
+
* @param options - Route options including validation, auth, and OpenAPI metadata
|
|
52
|
+
* @returns Method decorator
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* @ApiController('/api/users')
|
|
57
|
+
* class UserController {
|
|
58
|
+
* @Post('/', {
|
|
59
|
+
* summary: 'Create a new user',
|
|
60
|
+
* tags: ['Users'],
|
|
61
|
+
* schema: createUserSchema,
|
|
62
|
+
* })
|
|
63
|
+
* async createUser(@Body() data: CreateUserDto) {
|
|
64
|
+
* return this.userService.create(data);
|
|
65
|
+
* }
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function Post<TLanguage extends CoreLanguageCode = CoreLanguageCode>(path: string, options?: RouteDecoratorOptions<TLanguage>): MethodDecorator;
|
|
70
|
+
/**
|
|
71
|
+
* PUT method decorator with OpenAPI support.
|
|
72
|
+
* Registers a PUT route handler with optional OpenAPI metadata.
|
|
73
|
+
*
|
|
74
|
+
* @param path - Route path (e.g., '/users/:id')
|
|
75
|
+
* @param options - Route options including validation, auth, and OpenAPI metadata
|
|
76
|
+
* @returns Method decorator
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* @ApiController('/api/users')
|
|
81
|
+
* class UserController {
|
|
82
|
+
* @Put('/:id', {
|
|
83
|
+
* summary: 'Update user',
|
|
84
|
+
* tags: ['Users'],
|
|
85
|
+
* auth: true,
|
|
86
|
+
* })
|
|
87
|
+
* async updateUser(@Param('id') id: string, @Body() data: UpdateUserDto) {
|
|
88
|
+
* return this.userService.update(id, data);
|
|
89
|
+
* }
|
|
90
|
+
* }
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare function Put<TLanguage extends CoreLanguageCode = CoreLanguageCode>(path: string, options?: RouteDecoratorOptions<TLanguage>): MethodDecorator;
|
|
94
|
+
/**
|
|
95
|
+
* DELETE method decorator with OpenAPI support.
|
|
96
|
+
* Registers a DELETE route handler with optional OpenAPI metadata.
|
|
97
|
+
*
|
|
98
|
+
* @param path - Route path (e.g., '/users/:id')
|
|
99
|
+
* @param options - Route options including validation, auth, and OpenAPI metadata
|
|
100
|
+
* @returns Method decorator
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* @ApiController('/api/users')
|
|
105
|
+
* class UserController {
|
|
106
|
+
* @Delete('/:id', {
|
|
107
|
+
* summary: 'Delete user',
|
|
108
|
+
* tags: ['Users'],
|
|
109
|
+
* auth: true,
|
|
110
|
+
* })
|
|
111
|
+
* async deleteUser(@Param('id') id: string) {
|
|
112
|
+
* return this.userService.delete(id);
|
|
113
|
+
* }
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export declare function Delete<TLanguage extends CoreLanguageCode = CoreLanguageCode>(path: string, options?: RouteDecoratorOptions<TLanguage>): MethodDecorator;
|
|
118
|
+
/**
|
|
119
|
+
* PATCH method decorator with OpenAPI support.
|
|
120
|
+
* Registers a PATCH route handler with optional OpenAPI metadata.
|
|
121
|
+
*
|
|
122
|
+
* @param path - Route path (e.g., '/users/:id')
|
|
123
|
+
* @param options - Route options including validation, auth, and OpenAPI metadata
|
|
124
|
+
* @returns Method decorator
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* @ApiController('/api/users')
|
|
129
|
+
* class UserController {
|
|
130
|
+
* @Patch('/:id', {
|
|
131
|
+
* summary: 'Partially update user',
|
|
132
|
+
* tags: ['Users'],
|
|
133
|
+
* auth: true,
|
|
134
|
+
* })
|
|
135
|
+
* async patchUser(@Param('id') id: string, @Body() data: PatchUserDto) {
|
|
136
|
+
* return this.userService.patch(id, data);
|
|
137
|
+
* }
|
|
138
|
+
* }
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export declare function Patch<TLanguage extends CoreLanguageCode = CoreLanguageCode>(path: string, options?: RouteDecoratorOptions<TLanguage>): MethodDecorator;
|
|
142
|
+
export type { RouteDecoratorOptions } from '../interfaces/openApi/decoratorOptions';
|
|
143
|
+
//# sourceMappingURL=http-methods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-methods.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/decorators/http-methods.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAK/E;;GAEG;AACH,MAAM,WAAW,qBAAqB,CACpC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB;IAErD,kBAAkB;IAClB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;CAC3C;AA8JD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,GAAG,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACvE,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,CAAC,SAAS,CAAM,GAC7C,eAAe,CAEjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,IAAI,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACxE,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,CAAC,SAAS,CAAM,GAC7C,eAAe,CAEjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,GAAG,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACvE,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,CAAC,SAAS,CAAM,GAC7C,eAAe,CAEjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EAC1E,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,CAAC,SAAS,CAAM,GAC7C,eAAe,CAEjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,KAAK,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACzE,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,CAAC,SAAS,CAAM,GAC7C,eAAe,CAEjB;AAGD,YAAY,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC"}
|