@deepkit/http 1.0.1-alpha.100

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 (121) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/dist/.gitkeep +0 -0
  4. package/dist/cjs/index.d.ts +14 -0
  5. package/dist/cjs/index.js +31 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/src/controllers.d.ts +13 -0
  8. package/dist/cjs/src/controllers.js +17 -0
  9. package/dist/cjs/src/controllers.js.map +1 -0
  10. package/dist/cjs/src/decorator.d.ts +241 -0
  11. package/dist/cjs/src/decorator.js +422 -0
  12. package/dist/cjs/src/decorator.js.map +1 -0
  13. package/dist/cjs/src/filter.d.ts +49 -0
  14. package/dist/cjs/src/filter.js +215 -0
  15. package/dist/cjs/src/filter.js.map +1 -0
  16. package/dist/cjs/src/http-app.d.ts +8 -0
  17. package/dist/cjs/src/http-app.js +16 -0
  18. package/dist/cjs/src/http-app.js.map +1 -0
  19. package/dist/cjs/src/http.d.ts +278 -0
  20. package/dist/cjs/src/http.js +878 -0
  21. package/dist/cjs/src/http.js.map +1 -0
  22. package/dist/cjs/src/kernel.d.ts +16 -0
  23. package/dist/cjs/src/kernel.js +79 -0
  24. package/dist/cjs/src/kernel.js.map +1 -0
  25. package/dist/cjs/src/logger.d.ts +7 -0
  26. package/dist/cjs/src/logger.js +34 -0
  27. package/dist/cjs/src/logger.js.map +1 -0
  28. package/dist/cjs/src/middleware.d.ts +61 -0
  29. package/dist/cjs/src/middleware.js +95 -0
  30. package/dist/cjs/src/middleware.js.map +1 -0
  31. package/dist/cjs/src/model.d.ts +165 -0
  32. package/dist/cjs/src/model.js +398 -0
  33. package/dist/cjs/src/model.js.map +1 -0
  34. package/dist/cjs/src/module.config.d.ts +84 -0
  35. package/dist/cjs/src/module.config.js +14 -0
  36. package/dist/cjs/src/module.config.js.map +1 -0
  37. package/dist/cjs/src/module.d.ts +14 -0
  38. package/dist/cjs/src/module.js +124 -0
  39. package/dist/cjs/src/module.js.map +1 -0
  40. package/dist/cjs/src/request-parser.d.ts +36 -0
  41. package/dist/cjs/src/request-parser.js +305 -0
  42. package/dist/cjs/src/request-parser.js.map +1 -0
  43. package/dist/cjs/src/router.d.ts +230 -0
  44. package/dist/cjs/src/router.js +617 -0
  45. package/dist/cjs/src/router.js.map +1 -0
  46. package/dist/cjs/src/static-serving.d.ts +32 -0
  47. package/dist/cjs/src/static-serving.js +157 -0
  48. package/dist/cjs/src/static-serving.js.map +1 -0
  49. package/dist/cjs/src/utils.d.ts +1 -0
  50. package/dist/cjs/src/utils.js +13 -0
  51. package/dist/cjs/src/utils.js.map +1 -0
  52. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  53. package/dist/esm/index.d.ts +14 -0
  54. package/dist/esm/index.js +15 -0
  55. package/dist/esm/index.js.map +1 -0
  56. package/dist/esm/package.json +1 -0
  57. package/dist/esm/src/controllers.d.ts +13 -0
  58. package/dist/esm/src/controllers.js +13 -0
  59. package/dist/esm/src/controllers.js.map +1 -0
  60. package/dist/esm/src/decorator.d.ts +241 -0
  61. package/dist/esm/src/decorator.js +414 -0
  62. package/dist/esm/src/decorator.js.map +1 -0
  63. package/dist/esm/src/filter.d.ts +49 -0
  64. package/dist/esm/src/filter.js +209 -0
  65. package/dist/esm/src/filter.js.map +1 -0
  66. package/dist/esm/src/http-app.d.ts +8 -0
  67. package/dist/esm/src/http-app.js +12 -0
  68. package/dist/esm/src/http-app.js.map +1 -0
  69. package/dist/esm/src/http.d.ts +278 -0
  70. package/dist/esm/src/http.js +841 -0
  71. package/dist/esm/src/http.js.map +1 -0
  72. package/dist/esm/src/kernel.d.ts +16 -0
  73. package/dist/esm/src/kernel.js +75 -0
  74. package/dist/esm/src/kernel.js.map +1 -0
  75. package/dist/esm/src/logger.d.ts +7 -0
  76. package/dist/esm/src/logger.js +30 -0
  77. package/dist/esm/src/logger.js.map +1 -0
  78. package/dist/esm/src/middleware.d.ts +61 -0
  79. package/dist/esm/src/middleware.js +90 -0
  80. package/dist/esm/src/middleware.js.map +1 -0
  81. package/dist/esm/src/model.d.ts +165 -0
  82. package/dist/esm/src/model.js +363 -0
  83. package/dist/esm/src/model.js.map +1 -0
  84. package/dist/esm/src/module.config.d.ts +84 -0
  85. package/dist/esm/src/module.config.js +10 -0
  86. package/dist/esm/src/module.config.js.map +1 -0
  87. package/dist/esm/src/module.d.ts +14 -0
  88. package/dist/esm/src/module.js +120 -0
  89. package/dist/esm/src/module.js.map +1 -0
  90. package/dist/esm/src/request-parser.d.ts +36 -0
  91. package/dist/esm/src/request-parser.js +295 -0
  92. package/dist/esm/src/request-parser.js.map +1 -0
  93. package/dist/esm/src/router.d.ts +230 -0
  94. package/dist/esm/src/router.js +605 -0
  95. package/dist/esm/src/router.js.map +1 -0
  96. package/dist/esm/src/static-serving.d.ts +32 -0
  97. package/dist/esm/src/static-serving.js +149 -0
  98. package/dist/esm/src/static-serving.js.map +1 -0
  99. package/dist/esm/src/utils.d.ts +1 -0
  100. package/dist/esm/src/utils.js +9 -0
  101. package/dist/esm/src/utils.js.map +1 -0
  102. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  103. package/index.ts +14 -0
  104. package/package.json +67 -0
  105. package/src/controllers.ts +11 -0
  106. package/src/decorator.ts +411 -0
  107. package/src/filter.ts +224 -0
  108. package/src/http-app.ts +11 -0
  109. package/src/http.ts +828 -0
  110. package/src/kernel.ts +79 -0
  111. package/src/logger.ts +20 -0
  112. package/src/middleware.ts +116 -0
  113. package/src/model.ts +392 -0
  114. package/src/module.config.ts +95 -0
  115. package/src/module.ts +116 -0
  116. package/src/request-parser.ts +346 -0
  117. package/src/router.ts +747 -0
  118. package/src/static-serving.ts +153 -0
  119. package/src/utils.ts +5 -0
  120. package/tsconfig.esm.json +36 -0
  121. package/tsconfig.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { InjectorContext } from '@deepkit/injector';
2
+ import { HttpRouter } from './router.js';
3
+ import { EventDispatcher } from '@deepkit/event';
4
+ import { LoggerInterface } from '@deepkit/logger';
5
+ import { HttpRequest, HttpResponse, MemoryHttpResponse, RequestBuilder } from './model.js';
6
+ import { Stopwatch } from '@deepkit/stopwatch';
7
+ export declare class HttpKernel {
8
+ protected router: HttpRouter;
9
+ protected eventDispatcher: EventDispatcher;
10
+ protected injectorContext: InjectorContext;
11
+ protected logger: LoggerInterface;
12
+ protected stopwatch?: Stopwatch | undefined;
13
+ constructor(router: HttpRouter, eventDispatcher: EventDispatcher, injectorContext: InjectorContext, logger: LoggerInterface, stopwatch?: Stopwatch | undefined);
14
+ request(requestBuilder: RequestBuilder): Promise<MemoryHttpResponse>;
15
+ handleRequest(req: HttpRequest, res: HttpResponse): Promise<void>;
16
+ }
@@ -0,0 +1,75 @@
1
+ /*@ts-ignore*/
2
+ import { __ΩLoggerInterface as __ΩLoggerInterface } from '@deepkit/logger';
3
+ import { InjectorContext } from '@deepkit/injector';
4
+ import { HttpRouter } from './router.js';
5
+ import { EventDispatcher } from '@deepkit/event';
6
+ import { HttpRequest, HttpResponse, MemoryHttpResponse, RequestBuilder } from './model.js';
7
+ import { HttpError, HttpRequestEvent, HttpResultFormatter, httpWorkflow, JSONResponse } from './http.js';
8
+ import { FrameCategory, Stopwatch } from '@deepkit/stopwatch';
9
+ import { unlink } from 'fs';
10
+ import { ValidationError } from '@deepkit/type';
11
+ export class HttpKernel {
12
+ constructor(router, eventDispatcher, injectorContext, logger, stopwatch) {
13
+ this.router = router;
14
+ this.eventDispatcher = eventDispatcher;
15
+ this.injectorContext = injectorContext;
16
+ this.logger = logger;
17
+ this.stopwatch = stopwatch;
18
+ }
19
+ async request(requestBuilder) {
20
+ const request = requestBuilder.build();
21
+ const response = new MemoryHttpResponse(request);
22
+ response.assignSocket(request.socket);
23
+ await this.handleRequest(request, response);
24
+ return response;
25
+ }
26
+ async handleRequest(req, res) {
27
+ const httpInjectorContext = this.injectorContext.createChildScope('http');
28
+ httpInjectorContext.set(HttpRequest, req);
29
+ httpInjectorContext.set(HttpResponse, res);
30
+ httpInjectorContext.set(InjectorContext, httpInjectorContext);
31
+ const frame = this.stopwatch ? this.stopwatch.start(req.method + ' ' + req.getUrl(), FrameCategory.http, true) : undefined;
32
+ const workflow = httpWorkflow.create('start', this.eventDispatcher, httpInjectorContext, this.stopwatch);
33
+ try {
34
+ if (frame) {
35
+ frame.data({ url: req.getUrl(), method: req.getMethod(), clientIp: req.getRemoteAddress() });
36
+ await frame.run({}, () => workflow.apply('request', new HttpRequestEvent(httpInjectorContext, req, res)));
37
+ }
38
+ else {
39
+ await workflow.apply('request', new HttpRequestEvent(httpInjectorContext, req, res));
40
+ }
41
+ }
42
+ catch (error) {
43
+ if (!res.headersSent) {
44
+ const resultFormatter = httpInjectorContext.get(HttpResultFormatter);
45
+ if (error instanceof ValidationError) {
46
+ resultFormatter.handle(new JSONResponse({
47
+ message: error.message,
48
+ errors: error.errors
49
+ }, 400).disableAutoSerializing(), { request: req, response: res });
50
+ return;
51
+ }
52
+ else if (error instanceof HttpError) {
53
+ resultFormatter.handle(new JSONResponse({
54
+ message: error.message
55
+ }, error.httpCode).disableAutoSerializing(), { request: req, response: res });
56
+ return;
57
+ }
58
+ res.status(500);
59
+ }
60
+ this.logger.error('HTTP kernel request failed', error);
61
+ }
62
+ finally {
63
+ for (const file of Object.values(req.uploadedFiles)) {
64
+ unlink(file.path, () => {
65
+ });
66
+ }
67
+ if (frame) {
68
+ frame.data({ responseStatus: res.statusCode });
69
+ frame.end();
70
+ }
71
+ }
72
+ }
73
+ }
74
+ HttpKernel.__type = [() => HttpRouter, 'router', () => EventDispatcher, 'eventDispatcher', () => InjectorContext, 'injectorContext', () => __ΩLoggerInterface, 'logger', () => Stopwatch, 'stopwatch', 'constructor', () => RequestBuilder, 'requestBuilder', () => MemoryHttpResponse, 'request', () => HttpRequest, 'req', () => HttpResponse, 'res', 'handleRequest', 'PP7!2"<P7#2$<P7%2&<n\'2(<P7)2*8<"0+PP7,2-P7.`0/PP7021P7223"045'];
75
+ //# sourceMappingURL=kernel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../src/kernel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { LoggerInterface } from '@deepkit/logger';
2
+ import { httpWorkflow } from './http.js';
3
+ export declare class HttpLogger {
4
+ private logger;
5
+ constructor(logger: LoggerInterface);
6
+ onHttpRequest(event: typeof httpWorkflow.onResponse.event): void;
7
+ }
@@ -0,0 +1,30 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /*@ts-ignore*/
11
+ import { __ΩLoggerInterface as __ΩLoggerInterface } from '@deepkit/logger';
12
+ import { eventDispatcher } from '@deepkit/event';
13
+ import { httpWorkflow } from './http.js';
14
+ export class HttpLogger {
15
+ constructor(logger) {
16
+ this.logger = logger;
17
+ }
18
+ onHttpRequest(event) {
19
+ this.logger.log(event.request.connection.remoteAddress || '0.0.0.0', '-', event.request.method, `"${event.request.url}"`, event.response.statusCode, `"${event.request.headers.referer || ''}"`);
20
+ }
21
+ }
22
+ HttpLogger.__type = [() => __ΩLoggerInterface, 'logger', 'constructor', () => httpWorkflow.onResponse.event, 'event', 'onHttpRequest', 'Pn!2";"0#Pi$2%"0&5'];
23
+ __decorate([
24
+ eventDispatcher.listen(httpWorkflow.onResponse, 101) //101 is right after 100 default listener
25
+ ,
26
+ __metadata("design:type", Function),
27
+ __metadata("design:paramtypes", [Object]),
28
+ __metadata("design:returntype", void 0)
29
+ ], HttpLogger.prototype, "onHttpRequest", null);
30
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/logger.ts"],"names":[],"mappings":";;;;;;;;;;yDAAgC,iBAAiB;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,OAAO,UAAU;IACnB,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAC3C,CAAC;IAGD,aAAa,CAAC,KAA2C;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,IAAI,SAAS,EAAE,GAAG,EACxD,KAAK,CAAC,OAAO,CAAC,MAAM,EACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,EACxB,KAAK,CAAC,QAAQ,CAAC,UAAU,EACzB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,GAAG,CAE7C,CAAC;IACN,CAAC;;2FATwC,UAAU,CAAC,KAAK;AADzD;IAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,yCAAyC;;;;;+CAU9F"}
@@ -0,0 +1,61 @@
1
+ import { ClassType } from '@deepkit/core';
2
+ import { AppModule } from '@deepkit/app';
3
+ import { HttpRequest, HttpResponse } from './model.js';
4
+ import { InjectorModule } from '@deepkit/injector';
5
+ export declare type HttpMiddlewareFn = (req: HttpRequest, res: HttpResponse, next: (err?: any) => void) => void | Promise<void>;
6
+ export interface HttpMiddleware {
7
+ execute: HttpMiddlewareFn;
8
+ }
9
+ export interface HttpMiddlewareRoute {
10
+ path?: string;
11
+ pathRegExp?: RegExp;
12
+ httpMethod?: 'GET' | 'HEAD' | 'POST' | 'PATCH' | 'PUT' | 'DELETE' | 'OPTIONS' | 'TRACE';
13
+ category?: string;
14
+ excludeCategory?: string;
15
+ group?: string;
16
+ excludeGroup?: string;
17
+ }
18
+ export declare class HttpMiddlewareConfig {
19
+ name?: string;
20
+ middlewares: (HttpMiddlewareFn | ClassType<HttpMiddleware>)[];
21
+ routes: HttpMiddlewareRoute[];
22
+ excludeRoutes: HttpMiddlewareRoute[];
23
+ order: number;
24
+ controllers: ClassType[];
25
+ excludeControllers: ClassType[];
26
+ routeNames: string[];
27
+ excludeRouteNames: string[];
28
+ timeout?: number;
29
+ modules: InjectorModule<any>[];
30
+ selfModule: boolean;
31
+ getClassTypes(): ClassType[];
32
+ }
33
+ export declare class HttpMiddlewareApi {
34
+ t: HttpMiddlewareConfig;
35
+ name(name: string): void;
36
+ for(...middlewares: (HttpMiddlewareFn | ClassType<HttpMiddleware>)[]): void;
37
+ forRoutes(...routes: HttpMiddlewareRoute[]): void;
38
+ excludeRoutes(...routes: HttpMiddlewareRoute[]): void;
39
+ forRouteNames(...names: string[]): void;
40
+ excludeRouteNames(...names: string[]): void;
41
+ /**
42
+ * When the middleware does not respond (either calling next() or sending headers) withing <timeout> milliseconds,
43
+ * automatically the next is executed and warning printed.
44
+ */
45
+ timeout(timeout: number): void;
46
+ forControllers(...controllers: ClassType[]): void;
47
+ excludeControllers(...controllers: ClassType[]): void;
48
+ /**
49
+ * Per default middlewares are executed in the order they were registered. The default order is 0. A lower order means the middleware is executed earlier.
50
+ */
51
+ order(order: number): void;
52
+ forModules(...modules: AppModule<any>[]): void;
53
+ /**
54
+ * Limit the middleware to the module where this middleware is defined.
55
+ */
56
+ forSelfModules(): void;
57
+ }
58
+ export declare const httpMiddleware: import("@deepkit/type").FreeDecoratorResult<typeof HttpMiddlewareApi>;
59
+ export declare type __ΩHttpMiddlewareFn = any[];
60
+ export declare type __ΩHttpMiddleware = any[];
61
+ export declare type __ΩHttpMiddlewareRoute = any[];
@@ -0,0 +1,90 @@
1
+ /*@ts-ignore*/
2
+ import { __ΩClassType as __ΩClassType } from '@deepkit/core';
3
+ import { isClass } from '@deepkit/core';
4
+ import { AppModule } from '@deepkit/app';
5
+ import { createFreeDecoratorContext } from '@deepkit/type';
6
+ import { HttpRequest, HttpResponse } from './model.js';
7
+ import { InjectorModule } from '@deepkit/injector';
8
+ const __ΩHttpMiddlewareFn = [() => HttpRequest, 'req', () => HttpResponse, 'res', 'err', '', 'next', 'PP7!2"P7#2$P"2%8$/&2\'P$$`J/&'];
9
+ export { __ΩHttpMiddlewareFn as __ΩHttpMiddlewareFn };
10
+ const __ΩHttpMiddleware = [() => __ΩHttpMiddlewareFn, 'execute', 'Pn!4"M'];
11
+ export { __ΩHttpMiddleware as __ΩHttpMiddleware };
12
+ const __ΩHttpMiddlewareRoute = ['path', 'pathRegExp', "GET", "HEAD", "POST", "PATCH", "PUT", "DELETE", "OPTIONS", "TRACE", 'httpMethod', 'category', 'excludeCategory', 'group', 'excludeGroup', 'P&4!8A4"8P.#.$.%.&.\'.(.).*J4+8&4,8&4-8&4.8&4/8M'];
13
+ export { __ΩHttpMiddlewareRoute as __ΩHttpMiddlewareRoute };
14
+ export class HttpMiddlewareConfig {
15
+ constructor() {
16
+ this.middlewares = [];
17
+ this.routes = [];
18
+ this.excludeRoutes = [];
19
+ this.order = 0;
20
+ this.controllers = [];
21
+ this.excludeControllers = [];
22
+ this.routeNames = [];
23
+ this.excludeRouteNames = [];
24
+ this.modules = [];
25
+ this.selfModule = false;
26
+ }
27
+ getClassTypes() {
28
+ const classTypes = [];
29
+ for (const middleware of this.middlewares) {
30
+ if (isClass(middleware))
31
+ classTypes.push(middleware);
32
+ }
33
+ return classTypes;
34
+ }
35
+ }
36
+ HttpMiddlewareConfig.__type = ['name', () => __ΩHttpMiddlewareFn, () => __ΩClassType, () => __ΩHttpMiddleware, 'middlewares', function () { return []; }, () => __ΩHttpMiddlewareRoute, 'routes', function () { return []; }, () => __ΩHttpMiddlewareRoute, 'excludeRoutes', function () { return []; }, 'order', function () { return 0; }, () => __ΩClassType, 'controllers', function () { return []; }, () => __ΩClassType, 'excludeControllers', function () { return []; }, 'routeNames', function () { return []; }, 'excludeRouteNames', function () { return []; }, 'timeout', () => InjectorModule, 'modules', function () { return []; }, 'selfModule', function () { return false; }, () => __ΩClassType, 'getClassTypes', '&3!8Pn"n$o#"JF3%>&n\'F3(>)n*F3+>,\'3->.n/F30>1n2F33>4&F35>6&F37>8\'398P"7:F3;><)3=>>Pn?F0@5'];
37
+ export class HttpMiddlewareApi {
38
+ constructor() {
39
+ this.t = new HttpMiddlewareConfig;
40
+ }
41
+ name(name) {
42
+ this.t.name = name;
43
+ }
44
+ for(...middlewares) {
45
+ this.t.middlewares = middlewares;
46
+ }
47
+ forRoutes(...routes) {
48
+ this.t.routes = routes;
49
+ }
50
+ excludeRoutes(...routes) {
51
+ this.t.excludeRoutes = routes;
52
+ }
53
+ forRouteNames(...names) {
54
+ this.t.routeNames = names;
55
+ }
56
+ excludeRouteNames(...names) {
57
+ this.t.excludeRouteNames = names;
58
+ }
59
+ /**
60
+ * When the middleware does not respond (either calling next() or sending headers) withing <timeout> milliseconds,
61
+ * automatically the next is executed and warning printed.
62
+ */
63
+ timeout(timeout) {
64
+ this.t.timeout = timeout;
65
+ }
66
+ forControllers(...controllers) {
67
+ this.t.controllers = controllers;
68
+ }
69
+ excludeControllers(...controllers) {
70
+ this.t.excludeControllers = controllers;
71
+ }
72
+ /**
73
+ * Per default middlewares are executed in the order they were registered. The default order is 0. A lower order means the middleware is executed earlier.
74
+ */
75
+ order(order) {
76
+ this.t.order = order;
77
+ }
78
+ forModules(...modules) {
79
+ this.t.modules = modules;
80
+ }
81
+ /**
82
+ * Limit the middleware to the module where this middleware is defined.
83
+ */
84
+ forSelfModules() {
85
+ this.t.selfModule = true;
86
+ }
87
+ }
88
+ HttpMiddlewareApi.__type = ['name', () => __ΩHttpMiddlewareFn, () => __ΩClassType, () => __ΩHttpMiddleware, 'middlewares', 'for', () => __ΩHttpMiddlewareRoute, 'routes', 'forRoutes', () => __ΩHttpMiddlewareRoute, 'excludeRoutes', 'names', 'forRouteNames', 'excludeRouteNames', 'timeout', () => __ΩClassType, 'controllers', 'forControllers', () => __ΩClassType, 'excludeControllers', 'order', () => AppModule, 'modules', 'forModules', 'forSelfModules', 'P&2!"0!PPn"n$o#"J@2%"0&Pn\'@2("0)Pn*@2("0+P&@2,"0-P&@2,"0.P\'2/"0/Pn0@21"02Pn3@21"04P\'25"05PP"76@27"08P"095'];
89
+ export const httpMiddleware = createFreeDecoratorContext(HttpMiddlewareApi);
90
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/middleware.ts"],"names":[],"mappings":";6CAAmC,eAAe;AAAlD,OAAO,EAAa,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;;;;;;;AAkBnD,MAAM,OAAO,oBAAoB;IAAjC;QAEI,gBAAW,GAAqD,EAAE,CAAC;QAEnE,WAAM,GAA0B,EAAE,CAAC;QACnC,kBAAa,GAA0B,EAAE,CAAC;QAE1C,UAAK,GAAW,CAAC,CAAC;QAElB,gBAAW,GAAgB,EAAE,CAAC;QAC9B,uBAAkB,GAAgB,EAAE,CAAC;QAErC,eAAU,GAAa,EAAE,CAAC;QAC1B,sBAAiB,GAAa,EAAE,CAAC;QAIjC,YAAO,GAA0B,EAAE,CAAC;QAEpC,eAAU,GAAY,KAAK,CAAC;KAU/B;IARG,aAAa;QACT,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACvC,IAAI,OAAO,CAAC,UAAU,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACxD;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;;mJA1B+D,EAAE,kEAElC,EAAE,yEACK,EAAE,mCAEzB,CAAC,6DAEU,EAAE,oEACK,EAAE,wCAEb,EAAE,+CACK,EAAE,sEAIC,EAAE,wCAEb,KAAK;AAY/B,MAAM,OAAO,iBAAiB;IAA9B;QACI,MAAC,GAAG,IAAI,oBAAoB,CAAC;KA2DhC;IAzDG,IAAI,CAAC,IAAY;QACb,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAG,WAA6D;QAChE,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,GAAG,MAA6B;QACtC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,GAAG,MAA6B;QAC1C,IAAI,CAAC,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,GAAG,KAAe;QAC5B,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAC,GAAG,KAAe;QAChC,IAAI,CAAC,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,OAAe;QACnB,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,GAAG,WAAwB;QACtC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,GAAG,WAAwB;QAC1C,IAAI,CAAC,CAAC,CAAC,kBAAkB,GAAG,WAAW,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAa;QACf,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,GAAG,OAAyB;QACnC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,cAAc;QACV,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;IAC7B,CAAC;;;AAGL,MAAM,CAAC,MAAM,cAAc,GAAG,0BAA0B,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,165 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, ServerResponse } from 'http';
4
+ import { UploadedFile } from './router.js';
5
+ import { Type, ValidationErrorItem } from '@deepkit/type';
6
+ export declare class HttpResponse extends ServerResponse {
7
+ status(code: number): void;
8
+ }
9
+ /**
10
+ * Reads the body of the request and returns it as a Buffer.
11
+ * The result will be cached in the request object as `request.body`.
12
+ *
13
+ * Deepkit's router will automatically use `request.body` if available.
14
+ */
15
+ export declare function readBody(request: IncomingMessage): Promise<Buffer>;
16
+ export declare function createRequestWithCachedBody(request: Partial<IncomingMessage>, body: Buffer): HttpRequest;
17
+ export declare type HttpRequestQuery = {
18
+ [name: string]: string;
19
+ };
20
+ export declare type HttpRequestResolvedParameters = {
21
+ [name: string]: any;
22
+ };
23
+ export declare type HttpRequestPositionedParameters = {
24
+ arguments: any[];
25
+ parameters: HttpRequestResolvedParameters;
26
+ };
27
+ export declare class BodyValidationError {
28
+ readonly errors: ValidationErrorItem[];
29
+ constructor(errors?: ValidationErrorItem[]);
30
+ hasErrors(prefix?: string): boolean;
31
+ getErrors(prefix?: string): ValidationErrorItem[];
32
+ getErrorsForPath(path: string): ValidationErrorItem[];
33
+ getErrorMessageForPath(path: string): string;
34
+ }
35
+ export declare class ValidatedBody<T> {
36
+ error: BodyValidationError;
37
+ value?: T | undefined;
38
+ constructor(error: BodyValidationError, value?: T | undefined);
39
+ valid(): this is {
40
+ value: T;
41
+ };
42
+ }
43
+ export declare type HttpBody<T> = T & {
44
+ __meta?: ['httpBody'];
45
+ };
46
+ export declare type HttpBodyValidation<T> = ValidatedBody<T> & {
47
+ __meta?: ['httpBodyValidation'];
48
+ };
49
+ export declare type HttpPath<T, Options extends {
50
+ name?: string;
51
+ } = {}> = T & {
52
+ __meta?: ['httpPath', Options];
53
+ };
54
+ export declare type HttpHeader<T, Options extends {
55
+ name?: string;
56
+ } = {}> = T & {
57
+ __meta?: ['httpHeader', Options];
58
+ };
59
+ export declare type HttpQuery<T, Options extends {
60
+ name?: string;
61
+ } = {}> = T & {
62
+ __meta?: ['httpQuery', Options];
63
+ };
64
+ export declare type HttpQueries<T, Options extends {
65
+ name?: string;
66
+ } = {}> = T & {
67
+ __meta?: ['httpQueries', Options];
68
+ };
69
+ /**
70
+ * For all parameters used in the URL path, a regular expression of /[^/]+/ is used. To change that, use getRegExp.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ *
75
+ * class Controller {
76
+ * @http.GET('/user/:username')
77
+ * route(username: HttpRegExp<string, '.*'>) {
78
+ * //username is string
79
+ * }
80
+ * }
81
+ * ```
82
+ */
83
+ export declare type HttpRegExp<T, Pattern extends string | RegExp> = T & {
84
+ __meta?: ['httpRegExp', Pattern];
85
+ };
86
+ export declare function getRegExp(type: Type): string | RegExp | undefined;
87
+ export declare class RequestBuilder {
88
+ protected path: string;
89
+ protected method: string;
90
+ protected contentBuffer: Buffer;
91
+ protected _headers: {
92
+ [name: string]: string;
93
+ };
94
+ protected queryPath?: string;
95
+ constructor(path: string, method?: string);
96
+ getUrl(): string;
97
+ build(): HttpRequest;
98
+ headers(headers: {
99
+ [name: string]: string;
100
+ }): this;
101
+ header(name: string, value: string | number): this;
102
+ json(body: object): this;
103
+ multiPart(items: {
104
+ name: string;
105
+ file?: Uint8Array;
106
+ fileName?: string;
107
+ json?: any;
108
+ }[]): this;
109
+ body(body: string | Buffer): this;
110
+ query(query: any): this;
111
+ }
112
+ export declare class HttpRequest extends IncomingMessage {
113
+ /**
114
+ * A store that can be used to transport data from guards/listeners to ParameterResolvers/controllers.
115
+ */
116
+ store: {
117
+ [name: string]: any;
118
+ };
119
+ uploadedFiles: {
120
+ [name: string]: UploadedFile;
121
+ };
122
+ /**
123
+ * The router sets the body when it was read.
124
+ */
125
+ body?: Buffer;
126
+ readBody(): Promise<Buffer>;
127
+ readBodyText(): Promise<string>;
128
+ static GET(path: string): RequestBuilder;
129
+ static POST(path: string): RequestBuilder;
130
+ static OPTIONS(path: string): RequestBuilder;
131
+ static TRACE(path: string): RequestBuilder;
132
+ static HEAD(path: string): RequestBuilder;
133
+ static PATCH(path: string): RequestBuilder;
134
+ static PUT(path: string): RequestBuilder;
135
+ static DELETE(path: string): RequestBuilder;
136
+ getUrl(): string;
137
+ getMethod(): string;
138
+ getRemoteAddress(): string;
139
+ }
140
+ export declare class MemoryHttpResponse extends HttpResponse {
141
+ body: Buffer;
142
+ headers: {
143
+ [name: string]: number | string | string[] | undefined;
144
+ };
145
+ setHeader(name: string, value: number | string | ReadonlyArray<string>): this;
146
+ removeHeader(name: string): void;
147
+ getHeader(name: string): string | number | string[] | undefined;
148
+ getHeaders(): OutgoingHttpHeaders;
149
+ writeHead(statusCode: number, headersOrReasonPhrase?: string | OutgoingHttpHeaders | OutgoingHttpHeader[], headers?: OutgoingHttpHeaders | OutgoingHttpHeader[]): this;
150
+ get json(): any;
151
+ get text(): string;
152
+ get bodyString(): string;
153
+ write(chunk: any, encoding: any, callback?: any): any;
154
+ end(chunk: any, encoding?: any, callback?: any): any;
155
+ }
156
+ export declare type __ΩHttpRequestQuery = any[];
157
+ export declare type __ΩHttpRequestResolvedParameters = any[];
158
+ export declare type __ΩHttpRequestPositionedParameters = any[];
159
+ export declare type __ΩHttpBody = any[];
160
+ export declare type __ΩHttpBodyValidation = any[];
161
+ export declare type __ΩHttpPath = any[];
162
+ export declare type __ΩHttpHeader = any[];
163
+ export declare type __ΩHttpQuery = any[];
164
+ export declare type __ΩHttpQueries = any[];
165
+ export declare type __ΩHttpRegExp = any[];