@koala-ts/framework 2.6.0 → 2.7.1

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 (75) hide show
  1. package/dist/Application/ApplicationFactory.d.ts.map +1 -1
  2. package/dist/Application/ApplicationFactory.js +8 -5
  3. package/dist/Application/ApplicationFactory.js.map +1 -1
  4. package/dist/Application/ApplicationFactory.test.js +4 -173
  5. package/dist/Application/ApplicationFactory.test.js.map +1 -1
  6. package/dist/Application/Response.js.map +1 -1
  7. package/dist/Config/ConfigLoader.js +1 -0
  8. package/dist/Config/ConfigLoader.js.map +1 -1
  9. package/dist/Config/ConfigLoader.test.js +16 -4
  10. package/dist/Config/ConfigLoader.test.js.map +1 -1
  11. package/dist/Config/types.d.ts +1 -1
  12. package/dist/Config/types.d.ts.map +1 -1
  13. package/dist/Http/Error/types.d.ts.map +1 -1
  14. package/dist/Http/Error/types.js.map +1 -1
  15. package/dist/Http/Scope/State/ScopeStoreFactory.test.js.map +1 -1
  16. package/dist/Http/Scope/types.d.ts +3 -1
  17. package/dist/Http/Scope/types.d.ts.map +1 -1
  18. package/dist/Kernel/HttpKernel.d.ts +7 -0
  19. package/dist/Kernel/HttpKernel.d.ts.map +1 -0
  20. package/dist/Kernel/HttpKernel.js +15 -0
  21. package/dist/Kernel/HttpKernel.js.map +1 -0
  22. package/dist/Kernel/HttpKernel.test.d.ts +2 -0
  23. package/dist/Kernel/HttpKernel.test.d.ts.map +1 -0
  24. package/dist/{Event/EventBus.test.js → Kernel/HttpKernel.test.js} +4 -4
  25. package/dist/Kernel/HttpKernel.test.js.map +1 -0
  26. package/dist/Kernel/index.d.ts +3 -0
  27. package/dist/Kernel/index.d.ts.map +1 -0
  28. package/dist/Kernel/index.js +3 -0
  29. package/dist/Kernel/index.js.map +1 -0
  30. package/dist/{Event → Kernel}/types.d.ts +1 -1
  31. package/dist/Kernel/types.d.ts.map +1 -0
  32. package/dist/{Event → Kernel}/types.js.map +1 -1
  33. package/dist/Routing/Router.d.ts +1 -1
  34. package/dist/Routing/Router.d.ts.map +1 -1
  35. package/dist/Routing/Router.js +1 -1
  36. package/dist/Routing/Router.js.map +1 -1
  37. package/dist/Routing/types.d.ts.map +1 -1
  38. package/dist/Security/firewall/firewall-middleware.d.ts +4 -0
  39. package/dist/Security/firewall/firewall-middleware.d.ts.map +1 -0
  40. package/dist/Security/firewall/firewall-middleware.js +23 -0
  41. package/dist/Security/firewall/firewall-middleware.js.map +1 -0
  42. package/dist/Security/firewall/firewall-middleware.test.d.ts +2 -0
  43. package/dist/Security/firewall/firewall-middleware.test.d.ts.map +1 -0
  44. package/dist/Security/firewall/firewall-middleware.test.js +83 -0
  45. package/dist/Security/firewall/firewall-middleware.test.js.map +1 -0
  46. package/dist/Security/index.d.ts +3 -0
  47. package/dist/Security/index.d.ts.map +1 -0
  48. package/dist/Security/index.js +3 -0
  49. package/dist/Security/index.js.map +1 -0
  50. package/dist/Security/types.d.ts +14 -0
  51. package/dist/Security/types.d.ts.map +1 -0
  52. package/dist/Security/types.js +1 -0
  53. package/dist/Security/types.js.map +1 -0
  54. package/dist/Testing/TestAgentFactory.d.ts +4 -1
  55. package/dist/Testing/TestAgentFactory.d.ts.map +1 -1
  56. package/dist/Testing/TestAgentFactory.js +14 -2
  57. package/dist/Testing/TestAgentFactory.js.map +1 -1
  58. package/dist/index.d.ts +2 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +2 -0
  61. package/dist/index.js.map +1 -1
  62. package/package.json +7 -2
  63. package/dist/Event/EventBus.d.ts +0 -7
  64. package/dist/Event/EventBus.d.ts.map +0 -1
  65. package/dist/Event/EventBus.js +0 -15
  66. package/dist/Event/EventBus.js.map +0 -1
  67. package/dist/Event/EventBus.test.d.ts +0 -2
  68. package/dist/Event/EventBus.test.d.ts.map +0 -1
  69. package/dist/Event/EventBus.test.js.map +0 -1
  70. package/dist/Event/index.d.ts +0 -3
  71. package/dist/Event/index.d.ts.map +0 -1
  72. package/dist/Event/index.js +0 -3
  73. package/dist/Event/index.js.map +0 -1
  74. package/dist/Event/types.d.ts.map +0 -1
  75. /package/dist/{Event → Kernel}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationFactory.d.ts","sourceRoot":"","sources":["../../src/Application/ApplicationFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5C,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAiBvD"}
1
+ {"version":3,"file":"ApplicationFactory.d.ts","sourceRoot":"","sources":["../../src/Application/ApplicationFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAuBvD"}
@@ -3,25 +3,30 @@ import Koa from 'koa';
3
3
  import { koaBody } from 'koa-body';
4
4
  import { extendResponse } from '../Application/Response.js';
5
5
  import { serveStaticFiles } from '../Http/Files/index.js';
6
+ import { httpKernel } from '../Kernel/index.js';
6
7
  import { getRoutes } from '../Routing/index.js';
7
8
  export function create(config) {
8
9
  const app = new Koa();
9
10
  app.scope = app.context;
10
11
  app.use(extendResponse);
11
- if (undefined !== config.globalMiddleware)
12
+ app.use(httpKernel);
13
+ if (undefined !== config.globalMiddleware) {
12
14
  registerGlobalMiddleware(app, config.globalMiddleware);
15
+ }
13
16
  app.use(serveStaticFiles(config.staticFiles));
14
17
  // Register routes
15
18
  const router = createRouter();
16
19
  app.use(router.routes());
17
20
  app.use(router.allowedMethods());
18
- registerEventSubscribers(app, config.eventSubscribers);
21
+ if (undefined !== config.eventSubscribers) {
22
+ registerEventSubscribers(app, config.eventSubscribers);
23
+ }
19
24
  return app;
20
25
  }
21
26
  function createRouter() {
22
27
  const router = new Router();
23
28
  for (const route of getRoutes()) {
24
- const middlewareStack = [...(route.middleware), route.handler];
29
+ const middlewareStack = [...route.middleware, route.handler];
25
30
  for (const method of route.methods) {
26
31
  const routeMiddleware = route.parseBody ? [koaBody(route.bodyOptions), ...middlewareStack] : middlewareStack;
27
32
  router[method](route.path, ...routeMiddleware);
@@ -35,8 +40,6 @@ function registerGlobalMiddleware(app, middleware) {
35
40
  }
36
41
  }
37
42
  function registerEventSubscribers(app, map) {
38
- if (undefined === map)
39
- return;
40
43
  for (const [event, subscribers] of Object.entries(map)) {
41
44
  if (Array.isArray(subscribers)) {
42
45
  for (const subscriber of subscribers)
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationFactory.js","sourceRoot":"","sources":["../../src/Application/ApplicationFactory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,GAAgE,MAAM,KAAK,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,UAAU,MAAM,CAAC,MAAmB;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;IAExB,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxB,IAAI,SAAS,KAAK,MAAM,CAAC,gBAAgB;QAAE,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAElG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAE9C,kBAAkB;IAClB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAEjC,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEvD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/D,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAC7G,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAI,eAA0E,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAgB,EAAE,UAA4B;IAC9E,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAgB,EAAE,GAAoC;IACtF,IAAI,SAAS,KAAK,GAAG;QAAE,OAAO;IAE9B,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,UAAU,IAAI,WAAW;gBAAE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,UAAqD,CAAC,CAAC;YAC3G,SAAS;QACX,CAAC;QAED,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,WAAsD,CAAC,CAAC;IACxE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ApplicationFactory.js","sourceRoot":"","sources":["../../src/Application/ApplicationFactory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,GAAgE,MAAM,KAAK,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAwB,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,UAAU,MAAM,CAAC,MAAmB;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;IAExB,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEpB,IAAI,SAAS,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC1C,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAE9C,kBAAkB;IAClB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAEjC,IAAI,SAAS,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC1C,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE7D,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAC7G,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAI,eAA0E,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAgB,EAAE,UAA4B;IAC9E,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAgB,EAAE,GAAwD;IAC1G,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,UAAU,IAAI,WAAW;gBAAE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,UAAqD,CAAC,CAAC;YAC3G,SAAS;QACX,CAAC;QAED,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,WAAsD,CAAC,CAAC;IACxE,CAAC;AACH,CAAC"}
@@ -1,177 +1,8 @@
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
- import Koa from 'koa';
11
- import { beforeEach, describe, expect, test, vi } from 'vitest';
1
+ import { expect, test } from 'vitest';
12
2
  import { create } from '../Application/ApplicationFactory.js';
13
3
  import { koalaDefaultConfig } from '../Config/index.js';
14
- import { Route } from '../Routing/index.js';
15
- import { createTestAgent } from '../Testing/index.js';
16
- describe('Application', () => {
17
- let agent;
18
- beforeEach(() => {
19
- agent = createTestAgent(koalaDefaultConfig);
20
- });
21
- const middleware1 = function (_, next) {
22
- return next();
23
- };
24
- const service = vi.fn();
25
- const middleware2 = function (_, next) {
26
- service();
27
- return next();
28
- };
29
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
- class FooController {
31
- bar(scope) {
32
- scope.response.body = {
33
- name: scope.request.body?.name ?? 'Koala',
34
- };
35
- }
36
- qux(scope) {
37
- scope.response.body = scope.request.body;
38
- }
39
- handleMultipleMethods(scope) {
40
- scope.response.body = { method: scope.request.method };
41
- }
42
- accessRouteParams(scope) {
43
- scope.response.body = { id: scope.request.params.id };
44
- }
45
- upload(scope) {
46
- const avatar = scope.request.files?.avatar;
47
- scope.response.body = avatar.originalFilename;
48
- }
49
- setHeader(scope) {
50
- scope.response.setHeader('X-Foo', 'Bar').setHeader('X-Bar', 'Foo').body = 'Header set';
51
- }
52
- withHeaders(scope) {
53
- scope.response.withHeaders({
54
- 'X-Foo': 'Bar',
55
- 'X-Bar': 'Foo',
56
- }).body = 'Headers set';
57
- }
58
- }
59
- __decorate([
60
- Route({ method: 'any', path: '/bar', options: { parseBody: false }, middleware: [middleware1, middleware2] }),
61
- __metadata("design:type", Function),
62
- __metadata("design:paramtypes", [Object]),
63
- __metadata("design:returntype", void 0)
64
- ], FooController.prototype, "bar", null);
65
- __decorate([
66
- Route({ method: 'post', path: '/qux' }),
67
- __metadata("design:type", Function),
68
- __metadata("design:paramtypes", [Object]),
69
- __metadata("design:returntype", void 0)
70
- ], FooController.prototype, "qux", null);
71
- __decorate([
72
- Route({ method: ['get', 'post'], path: '/handle-multiple-methods' }),
73
- __metadata("design:type", Function),
74
- __metadata("design:paramtypes", [Object]),
75
- __metadata("design:returntype", void 0)
76
- ], FooController.prototype, "handleMultipleMethods", null);
77
- __decorate([
78
- Route({ method: 'get', path: '/access-route-params/:id' }),
79
- __metadata("design:type", Function),
80
- __metadata("design:paramtypes", [Object]),
81
- __metadata("design:returntype", void 0)
82
- ], FooController.prototype, "accessRouteParams", null);
83
- __decorate([
84
- Route({ method: 'post', path: '/upload', options: { multipart: true } }),
85
- __metadata("design:type", Function),
86
- __metadata("design:paramtypes", [Object]),
87
- __metadata("design:returntype", void 0)
88
- ], FooController.prototype, "upload", null);
89
- __decorate([
90
- Route({ method: 'get', path: '/set-header' }),
91
- __metadata("design:type", Function),
92
- __metadata("design:paramtypes", [Object]),
93
- __metadata("design:returntype", void 0)
94
- ], FooController.prototype, "setHeader", null);
95
- __decorate([
96
- Route({ method: 'get', path: '/with-headers' }),
97
- __metadata("design:type", Function),
98
- __metadata("design:paramtypes", [Object]),
99
- __metadata("design:returntype", void 0)
100
- ], FooController.prototype, "withHeaders", null);
101
- test('it creates application instance', () => {
102
- const app = create(koalaDefaultConfig);
103
- expect(app).toBeInstanceOf(Koa);
104
- });
105
- test('app provides access to scope', () => {
106
- const app = create(koalaDefaultConfig);
107
- expect(app.scope).toBe(app.context);
108
- });
109
- test('e2e set header', async () => {
110
- const response = await agent.get('/set-header');
111
- expect(response.header['x-foo']).toBe('Bar');
112
- expect(response.header['x-bar']).toBe('Foo');
113
- });
114
- test('e2e with headers', async () => {
115
- const response = await agent.get('/with-headers');
116
- expect(response.header['x-foo']).toBe('Bar');
117
- expect(response.header['x-bar']).toBe('Foo');
118
- });
119
- test('e2e with body', async () => {
120
- const response = await agent.post('/qux').send({ name: 'Koala' });
121
- expect(response.status).toBe(200);
122
- expect(response.body).toEqual({ name: 'Koala' });
123
- });
124
- test('e2e without body', async () => {
125
- const response = await agent.get('/bar').send({ name: 'Not Koala' });
126
- expect(response.status).toBe(200);
127
- expect(response.body).toEqual({ name: 'Koala' });
128
- });
129
- test('it should call middleware', async () => {
130
- await agent.get('/bar');
131
- expect(service).toHaveBeenCalled();
132
- });
133
- test('it should handle multiple methods', async () => {
134
- const response1 = await agent.get('/handle-multiple-methods');
135
- const response2 = await agent.post('/handle-multiple-methods');
136
- expect(response1.status).toBe(200);
137
- expect(response2.status).toBe(200);
138
- expect(response1.body).toEqual({ method: 'GET' });
139
- expect(response2.body).toEqual({ method: 'POST' });
140
- });
141
- test('it should access route params', async () => {
142
- const id = '123';
143
- const response = await agent.get(`/access-route-params/${id}`);
144
- expect(response.status).toBe(200);
145
- expect(response.body).toEqual({ id });
146
- });
147
- test('upload file', async () => {
148
- const response = await agent.post('/upload').attach('avatar', 'tests/fixtures/avatar.png');
149
- expect(response.text).toBe('avatar.png');
150
- });
151
- });
152
- describe('Global Middleware', () => {
153
- test('it should register configured global middleware', async () => {
154
- const middlewareFn = vi.fn();
155
- const config = {
156
- controllers: [],
157
- globalMiddleware: [middlewareFn],
158
- };
159
- const testAgent = createTestAgent(config);
160
- await testAgent.get('/');
161
- expect(middlewareFn).toHaveBeenCalled();
162
- });
163
- });
164
- describe('Serving Static Files', () => {
165
- test('it should serve public static files', async () => {
166
- const config = {
167
- staticFiles: {
168
- root: 'tests/fixtures',
169
- },
170
- };
171
- const testAgent = createTestAgent(config);
172
- const response = await testAgent.get('/sample.txt');
173
- expect(response.status).toBe(200);
174
- expect(response.text).toBe('Howdy!\n');
175
- });
4
+ test('create app with default config', () => {
5
+ const app = create(koalaDefaultConfig);
6
+ expect(app).toBeDefined();
176
7
  });
177
8
  //# sourceMappingURL=ApplicationFactory.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationFactory.test.js","sourceRoot":"","sources":["../../src/Application/ApplicationFactory.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApplicationFactory.test.js","sourceRoot":"","sources":["../../src/Application/ApplicationFactory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEvC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../src/Application/Response.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAgB,EAAE,IAAU;IAC/D,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,UAAS,IAAY,EAAE,KAAwB;QACxE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,UAAS,OAA0C;QAC9E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,IAAI,EAAE,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../src/Application/Response.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAgB,EAAE,IAAU;IAC/D,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,UAAU,IAAY,EAAE,KAAwB;QACzE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,UAAU,OAA0C;QAC/E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,IAAI,EAAE,CAAC;AACf,CAAC"}
@@ -13,6 +13,7 @@ function loadEnvFile(fileName) {
13
13
  const expandedOptions = dotenv.config({
14
14
  path: path.resolve(rootDir, fileName),
15
15
  override: true,
16
+ quiet: true,
16
17
  });
17
18
  dotenvExpand.expand(expandedOptions);
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/Config/ConfigLoader.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEpB,IAAI,GAAG,KAAK,MAAM;QAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAE9C,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC3B,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;QACrC,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/Config/ConfigLoader.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEpB,IAAI,GAAG,KAAK,MAAM;QAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAE9C,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC3B,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;QACrC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC"}
@@ -7,12 +7,16 @@ describe('Load env config', () => {
7
7
  const expandSpy = vi.spyOn(dotenvExpand, 'expand');
8
8
  test('it should load .env file', () => {
9
9
  loadEnvConfig('development');
10
- expect(configSpy).toHaveBeenCalledWith({ path: expect.stringContaining('.env'), override: true });
10
+ expect(configSpy).toHaveBeenCalledWith({ path: expect.stringContaining('.env'), override: true, quiet: true });
11
11
  expect(expandSpy).toHaveBeenCalled();
12
12
  });
13
13
  test('it should load .env.local file', () => {
14
14
  loadEnvConfig('development');
15
- expect(configSpy).toHaveBeenCalledWith({ path: expect.stringContaining('.env.local'), override: true });
15
+ expect(configSpy).toHaveBeenCalledWith({
16
+ path: expect.stringContaining('.env.local'),
17
+ override: true,
18
+ quiet: true,
19
+ });
16
20
  expect(expandSpy).toHaveBeenCalled();
17
21
  });
18
22
  test('it should not load .env.local file in test environment', () => {
@@ -21,12 +25,20 @@ describe('Load env config', () => {
21
25
  });
22
26
  test('it should load .env.<env> file', () => {
23
27
  loadEnvConfig('development');
24
- expect(configSpy).toHaveBeenCalledWith({ path: expect.stringContaining('.env.development'), override: true });
28
+ expect(configSpy).toHaveBeenCalledWith({
29
+ path: expect.stringContaining('.env.development'),
30
+ override: true,
31
+ quiet: true,
32
+ });
25
33
  expect(expandSpy).toHaveBeenCalled();
26
34
  });
27
35
  test('it should load .env.<env>.local file', () => {
28
36
  loadEnvConfig('test');
29
- expect(configSpy).toHaveBeenCalledWith({ path: expect.stringContaining('.env.test.local'), override: true });
37
+ expect(configSpy).toHaveBeenCalledWith({
38
+ path: expect.stringContaining('.env.test.local'),
39
+ override: true,
40
+ quiet: true,
41
+ });
30
42
  expect(expandSpy).toHaveBeenCalled();
31
43
  });
32
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigLoader.test.js","sourceRoot":"","sources":["../../src/Config/ConfigLoader.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,aAAa,CAAC,aAAa,CAAC,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClG,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,aAAa,CAAC,aAAa,CAAC,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAClE,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,aAAa,CAAC,aAAa,CAAC,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9G,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7G,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ConfigLoader.test.js","sourceRoot":"","sources":["../../src/Config/ConfigLoader.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,aAAa,CAAC,aAAa,CAAC,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,aAAa,CAAC,aAAa,CAAC,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;YACrC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAC3C,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAClE,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,aAAa,CAAC,aAAa,CAAC,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;YACrC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;YACjD,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;YACrC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;YAChD,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
- import { type EventSubscriber } from '../Event/index.js';
2
1
  import { type HttpMiddleware } from '../Http/index.js';
3
2
  import { type StaticFilesOptions } from '../Http/Files/index.js';
3
+ import { type EventSubscriber } from '../Kernel/index.js';
4
4
  export type Controller = new (...args: unknown[]) => unknown;
5
5
  export interface KoalaConfig {
6
6
  controllers: Controller[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,KAAI,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC,CAAC;CACxE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC,CAAC;CACxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Http/Error/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAEhD,qBAAa,SAAU,SAAQ,YAAY;CAC1C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Http/Error/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAEhD,qBAAa,SAAU,SAAQ,YAAY;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/Http/Error/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAEhD,MAAM,OAAO,SAAU,SAAQ,YAAY;CAC1C"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/Http/Error/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAEhD,MAAM,OAAO,SAAU,SAAQ,YAAY;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeStoreFactory.test.js","sourceRoot":"","sources":["../../../../src/Http/Scope/State/ScopeStoreFactory.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScopeStoreFactory.test.js","sourceRoot":"","sources":["../../../../src/Http/Scope/State/ScopeStoreFactory.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import type { Context, DefaultState, Next, Request } from 'koa';
2
2
  import { type HttpRequest } from '../Request/index.js';
3
3
  import { type HttpResponse } from '../Response/index.js';
4
- export interface HttpScope<TRequest extends Request = HttpRequest> extends Context {
4
+ import { type User } from '../../Security/types.js';
5
+ export interface HttpScope<TRequest extends Request = HttpRequest, TUser extends User = User> extends Context {
5
6
  request: TRequest;
6
7
  response: HttpResponse;
8
+ user?: TUser;
7
9
  }
8
10
  export type NextMiddleware = Next;
9
11
  export type HttpMiddleware<TRequest extends Request = HttpRequest> = (scope: HttpScope<TRequest>, next: NextMiddleware) => Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Http/Scope/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,SAAS,CAAC,QAAQ,SAAS,OAAO,GAAG,WAAW,CAAE,SAAQ,OAAO;IAChF,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC;AAElC,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,OAAO,GAAG,WAAW,IAAI,CACnE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC1B,IAAI,EAAE,cAAc,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Http/Scope/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,WAAW,SAAS,CAAC,QAAQ,SAAS,OAAO,GAAG,WAAW,EAAE,KAAK,SAAS,IAAI,GAAG,IAAI,CAAE,SAAQ,OAAO;IAC3G,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC;AAElC,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,OAAO,GAAG,WAAW,IAAI,CACnE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC1B,IAAI,EAAE,cAAc,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type HttpRequest, type HttpResponse, type HttpScope, type NextMiddleware, type ScopeStore } from '../Http/index.js';
2
+ import { type EventEmitter, type KernelStorage } from '../Kernel/types.js';
3
+ export declare function httpKernel(scope: HttpScope, next: NextMiddleware, storage?: ScopeStore<KernelStorage>): Promise<void>;
4
+ export declare function useEmit(storage?: ScopeStore<KernelStorage>): EventEmitter;
5
+ export declare function useRequest(storage?: ScopeStore<KernelStorage>): HttpRequest;
6
+ export declare function useResponse(storage?: ScopeStore<KernelStorage>): HttpResponse;
7
+ //# sourceMappingURL=HttpKernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpKernel.d.ts","sourceRoot":"","sources":["../../src/Kernel/HttpKernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIvE,wBAAsB,UAAU,CAC9B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,UAAU,CAAC,aAAa,CAAiB,GACjD,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,OAAO,CAAC,OAAO,GAAE,UAAU,CAAC,aAAa,CAAiB,GAAG,YAAY,CAExF;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,UAAU,CAAC,aAAa,CAAiB,GAAG,WAAW,CAE1F;AAED,wBAAgB,WAAW,CAAC,OAAO,GAAE,UAAU,CAAC,aAAa,CAAiB,GAAG,YAAY,CAE5F"}
@@ -0,0 +1,15 @@
1
+ import { createStore, } from '../Http/index.js';
2
+ const kernelStorage = createStore();
3
+ export async function httpKernel(scope, next, storage = kernelStorage) {
4
+ await storage.run({ eventEmitter: scope.app, scope }, next);
5
+ }
6
+ export function useEmit(storage = kernelStorage) {
7
+ return storage.get('eventEmitter');
8
+ }
9
+ export function useRequest(storage = kernelStorage) {
10
+ return storage.get('scope').request;
11
+ }
12
+ export function useResponse(storage = kernelStorage) {
13
+ return storage.get('scope').response;
14
+ }
15
+ //# sourceMappingURL=HttpKernel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpKernel.js","sourceRoot":"","sources":["../../src/Kernel/HttpKernel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAMZ,MAAM,QAAQ,CAAC;AAGhB,MAAM,aAAa,GAAG,WAAW,EAAiB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAgB,EAChB,IAAoB,EACpB,UAAqC,aAAa;IAElD,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,UAAqC,aAAa;IACxE,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAqC,aAAa;IAC3E,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAqC,aAAa;IAC5E,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;AACvC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=HttpKernel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpKernel.test.d.ts","sourceRoot":"","sources":["../../src/Kernel/HttpKernel.test.ts"],"names":[],"mappings":""}
@@ -1,11 +1,11 @@
1
1
  import { describe, expect, test, vi } from 'vitest';
2
- import { eventBusMiddleware, useEmit, useRequest, useResponse } from '../Event/EventBus.js';
3
- describe('Event bus', () => {
2
+ import { httpKernel, useEmit, useRequest, useResponse } from '../Kernel/HttpKernel.js';
3
+ describe('Http Kernel', () => {
4
4
  test('middleware should init storage', async () => {
5
5
  const scope = { app: vi.fn() };
6
6
  const next = vi.fn();
7
7
  const storage = { run: vi.fn() };
8
- await eventBusMiddleware(scope, next, storage);
8
+ await httpKernel(scope, next, storage);
9
9
  expect(storage.run).toHaveBeenCalledWith({ eventEmitter: scope.app, scope }, next);
10
10
  });
11
11
  test('useEmit should return emitter from storage', () => {
@@ -29,4 +29,4 @@ describe('Event bus', () => {
29
29
  expect(res).toBe(response);
30
30
  });
31
31
  });
32
- //# sourceMappingURL=EventBus.test.js.map
32
+ //# sourceMappingURL=HttpKernel.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpKernel.test.js","sourceRoot":"","sources":["../../src/Kernel/HttpKernel.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGnF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAEjC,MAAM,UAAU,CAAC,KAA6B,EAAE,IAAI,EAAE,OAA+C,CAAC,CAAC;QAEvG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;QAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAA+C,CAAC,CAAC;QAEzE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAE9D,MAAM,GAAG,GAAG,UAAU,CAAC,OAA+C,CAAC,CAAC;QAExE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAE/D,MAAM,GAAG,GAAG,WAAW,CAAC,OAA+C,CAAC,CAAC;QAEzE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export * from './HttpKernel.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Kernel/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export * from './HttpKernel.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Kernel/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
@@ -2,7 +2,7 @@ import { type HttpScope } from '../Http/index.js';
2
2
  export interface EventEmitter {
3
3
  emit(event: string, ...args: unknown[]): void;
4
4
  }
5
- export interface EventBusStorage {
5
+ export interface KernelStorage {
6
6
  eventEmitter: EventEmitter;
7
7
  scope: HttpScope;
8
8
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Kernel/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;CAClB;AAGD,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Event/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Kernel/types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
2
  import type { Route, RouteMetadata } from './types.js';
3
- export declare function Route({ method, path, middleware, options, }: Route): MethodDecorator;
3
+ export declare function Route({ method, path, middleware, options }: Route): MethodDecorator;
4
4
  export declare function getRoutes(): RouteMetadata[];
5
5
  //# sourceMappingURL=Router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/Routing/Router.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAc,KAAK,EAAE,aAAa,EAA8B,MAAM,SAAS,CAAC;AAK5F,wBAAgB,KAAK,CAAC,EACpB,MAAM,EACN,IAAI,EACJ,UAAe,EACf,OAAY,GACb,EAAE,KAAK,GAAG,eAAe,CAezB;AAED,wBAAgB,SAAS,IAAI,aAAa,EAAE,CAE3C"}
1
+ {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/Routing/Router.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAc,KAAK,EAAE,aAAa,EAA8B,MAAM,SAAS,CAAC;AAK5F,wBAAgB,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAe,EAAE,OAAY,EAAE,EAAE,KAAK,GAAG,eAAe,CAe7F;AAED,wBAAgB,SAAS,IAAI,aAAa,EAAE,CAE3C"}
@@ -1,6 +1,6 @@
1
1
  import 'reflect-metadata';
2
2
  const key = Symbol('Route');
3
- export function Route({ method, path, middleware = [], options = {}, }) {
3
+ export function Route({ method, path, middleware = [], options = {} }) {
4
4
  return function (target, propertyKey) {
5
5
  const routes = getRoutes();
6
6
  routes.push({
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/Routing/Router.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAE5B,MAAM,UAAU,KAAK,CAAC,EACpB,MAAM,EACN,IAAI,EACJ,UAAU,GAAG,EAAE,EACf,OAAO,GAAG,EAAE,GACN;IACN,OAAO,UAAS,MAAc,EAAE,WAA4B;QAC1D,MAAM,MAAM,GAAoB,SAAS,EAAE,CAAC;QAE5C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;YAC9B,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;YAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,UAAU;YACV,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC;SACzC,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAoB,CAAC;AACtE,CAAC;AAED,SAAS,aAAa,CAAC,MAAiC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAkB,CAAC;QACnD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAAe,EAAE,WAA4B;IACnE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,MAAwB,CAAC;IAClC,CAAC;IAED,OAAQ,MAAgB,CAAC,WAAW,CAAmB,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAqB;IAC/C,MAAM,EACJ,SAAS,EAAE,UAAU,EACrB,GAAG,WAAW,EACf,GAAG,OAAO,CAAC;IACZ,OAAO,WAA2C,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/Routing/Router.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAE5B,MAAM,UAAU,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAS;IAC1E,OAAO,UAAU,MAAc,EAAE,WAA4B;QAC3D,MAAM,MAAM,GAAoB,SAAS,EAAE,CAAC;QAE5C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;YAC9B,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;YAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,UAAU;YACV,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC;SACzC,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAoB,CAAC;AACtE,CAAC;AAED,SAAS,aAAa,CAAC,MAAiC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAkB,CAAC;QACnD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAAe,EAAE,WAA4B;IACnE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,MAAwB,CAAC;IAClC,CAAC;IAED,OAAQ,MAAgB,CAAC,WAAW,CAAmB,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAqB;IAC/C,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAC1D,OAAO,WAA2C,CAAC;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Routing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,MAAM,UAAU,GAClB,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAC3C,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAClC,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAChC,QAAQ,GAAG,SAAS,GAAG,MAAM,GAC7B,KAAK,GAAG,KAAK,CAAC;AAElB,MAAM,MAAM,YAAY,GACpB,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAChC,QAAQ,GAAG,SAAS,GAAG,MAAM,GAC7B,KAAK,CAAC;AAEV,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,wBAAwB,GAAG;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Routing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,MAAM,UAAU,GAClB,KAAK,GACL,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAChC,wBAAwB,GAAG;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CACF,CAAC;AAEF,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB"}
@@ -0,0 +1,4 @@
1
+ import { type HttpMiddleware } from '../../Http/index.js';
2
+ import { type SecurityConfig } from '../../Security/types.js';
3
+ export declare function firewall(config: SecurityConfig): HttpMiddleware;
4
+ //# sourceMappingURL=firewall-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firewall-middleware.d.ts","sourceRoot":"","sources":["../../../src/Security/firewall/firewall-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAuC,MAAM,QAAQ,CAAC;AAClF,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEtE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAa/D"}
@@ -0,0 +1,23 @@
1
+ export function firewall(config) {
2
+ return async function firewallMiddleware(scope, next) {
3
+ const firewall = config.firewalls.find(fw => {
4
+ const regex = new RegExp(fw.pattern);
5
+ return regex.test(scope.request.path);
6
+ });
7
+ if (undefined !== firewall) {
8
+ await runFirewall(firewall, scope);
9
+ }
10
+ await next();
11
+ };
12
+ }
13
+ async function runFirewall(firewall, scope) {
14
+ if (!firewall.security)
15
+ return;
16
+ if (undefined !== scope.user)
17
+ return;
18
+ const user = await firewall.provider?.(scope.request);
19
+ if (undefined === user)
20
+ scope.throw(401, 'Authentication required');
21
+ scope.user = user;
22
+ }
23
+ //# sourceMappingURL=firewall-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firewall-middleware.js","sourceRoot":"","sources":["../../../src/Security/firewall/firewall-middleware.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,QAAQ,CAAC,MAAsB;IAC7C,OAAO,KAAK,UAAU,kBAAkB,CAAC,KAAgB,EAAE,IAAoB;QAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAkB,EAAE,KAAgB;IAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO;IAC/B,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO;IAErC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,SAAS,KAAK,IAAI;QAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IAEpE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=firewall-middleware.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firewall-middleware.test.d.ts","sourceRoot":"","sources":["../../../src/Security/firewall/firewall-middleware.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ import { describe, expect, test, vi } from 'vitest';
2
+ import { firewall } from '../../Security/firewall/firewall-middleware.js';
3
+ describe('Firewall Middleware', () => {
4
+ test('it should skip unmatched firewalls', async () => {
5
+ const userProvider = vi.fn();
6
+ const config = {
7
+ firewalls: [
8
+ {
9
+ pattern: '^/admin',
10
+ security: true,
11
+ provider: userProvider,
12
+ },
13
+ ],
14
+ };
15
+ const middleware = firewall(config);
16
+ const next = vi.fn();
17
+ const request = { path: '/public' };
18
+ await middleware({ request }, next);
19
+ expect(userProvider).not.toHaveBeenCalled();
20
+ expect(next).toHaveBeenCalled();
21
+ });
22
+ test('it should skip unsecured firewall', async () => {
23
+ const userProvider = vi.fn();
24
+ const config = {
25
+ firewalls: [
26
+ {
27
+ pattern: '^/public',
28
+ security: false,
29
+ provider: userProvider,
30
+ },
31
+ ],
32
+ };
33
+ const middleware = firewall(config);
34
+ const next = vi.fn();
35
+ const request = { path: '/public' };
36
+ await middleware({ request }, next);
37
+ expect(userProvider).not.toHaveBeenCalled();
38
+ expect(next).toHaveBeenCalled();
39
+ });
40
+ test('it should pass if user is already authenticated', async () => {
41
+ const userProvider = vi.fn();
42
+ const config = {
43
+ firewalls: [
44
+ {
45
+ pattern: '^/admin',
46
+ security: true,
47
+ provider: userProvider,
48
+ },
49
+ ],
50
+ };
51
+ const middleware = firewall(config);
52
+ const next = vi.fn();
53
+ const request = { path: '/admin' };
54
+ const scope = { request, user: { identifier: 'user-1' } };
55
+ await middleware(scope, next);
56
+ expect(userProvider).not.toHaveBeenCalled();
57
+ expect(next).toHaveBeenCalled();
58
+ });
59
+ test('it should stop execution if authentication fails', async () => {
60
+ const userProvider = vi.fn().mockResolvedValue(undefined);
61
+ const config = {
62
+ firewalls: [
63
+ {
64
+ pattern: '^/admin',
65
+ security: true,
66
+ provider: userProvider,
67
+ },
68
+ ],
69
+ };
70
+ const middleware = firewall(config);
71
+ const next = vi.fn();
72
+ const request = { path: '/admin' };
73
+ const internalThrow = vi.fn();
74
+ const scope = {
75
+ request,
76
+ throw: internalThrow,
77
+ };
78
+ await middleware(scope, next);
79
+ expect(userProvider).toHaveBeenCalled();
80
+ expect(internalThrow).toHaveBeenCalledWith(401, 'Authentication required');
81
+ });
82
+ });
83
+ //# sourceMappingURL=firewall-middleware.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firewall-middleware.test.js","sourceRoot":"","sources":["../../../src/Security/firewall/firewall-middleware.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export * from './firewall/firewall-middleware.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Security/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export * from './firewall/firewall-middleware.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Security/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type HttpRequest } from '../Http/index.js';
2
+ export interface User {
3
+ roles?: string[];
4
+ }
5
+ export type UserProvider = (request: HttpRequest) => Promise<User | undefined>;
6
+ export interface Firewall {
7
+ pattern: string;
8
+ security: boolean;
9
+ provider?: UserProvider;
10
+ }
11
+ export interface SecurityConfig {
12
+ firewalls: Firewall[];
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Security/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,WAAW,IAAI;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;AAE/E,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Security/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,7 @@
1
1
  import { type TestAgent } from './types.js';
2
2
  import { type KoalaConfig } from '../Config/index.js';
3
- export declare function createTestAgent(config: KoalaConfig): TestAgent;
3
+ import { type User } from '../Security/types.js';
4
+ export declare function createTestAgent(config: KoalaConfig, agentConfig?: {
5
+ actAs?: User;
6
+ }): TestAgent;
4
7
  //# sourceMappingURL=TestAgentFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestAgentFactory.d.ts","sourceRoot":"","sources":["../../src/Testing/TestAgentFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAE9D"}
1
+ {"version":3,"file":"TestAgentFactory.d.ts","sourceRoot":"","sources":["../../src/Testing/TestAgentFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG,SAAS,CAW9F"}
@@ -1,6 +1,18 @@
1
1
  import supertest from 'supertest';
2
2
  import { create } from '../Application/index.js';
3
- export function createTestAgent(config) {
4
- return supertest(create(config).callback());
3
+ export function createTestAgent(config, agentConfig) {
4
+ const globalMiddleware = config.globalMiddleware ?? [];
5
+ const testConfig = { ...config };
6
+ const { actAs } = agentConfig ?? {};
7
+ if (undefined !== actAs) {
8
+ testConfig.globalMiddleware = [actAsUser(actAs), ...globalMiddleware];
9
+ }
10
+ return supertest(create(testConfig).callback());
11
+ }
12
+ function actAsUser(user) {
13
+ return async function actAsUserMiddleware(scope, next) {
14
+ scope.user = user;
15
+ await next();
16
+ };
5
17
  }
6
18
  //# sourceMappingURL=TestAgentFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestAgentFactory.js","sourceRoot":"","sources":["../../src/Testing/TestAgentFactory.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"TestAgentFactory.js","sourceRoot":"","sources":["../../src/Testing/TestAgentFactory.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvC,MAAM,UAAU,eAAe,CAAC,MAAmB,EAAE,WAA8B;IACjF,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAEjC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;IAEpC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,UAAU,CAAC,gBAAgB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,SAAS,CAAC,IAAU;IAC3B,OAAO,KAAK,UAAU,mBAAmB,CAAC,KAAgB,EAAE,IAAoB;QAC9E,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './Application/index.js';
2
2
  export * from './Config/index.js';
3
3
  export * from './Http/index.js';
4
+ export * from './Kernel/index.js';
4
5
  export * from './Routing/index.js';
6
+ export * from './Security/index.js';
5
7
  export * from './Testing/index.js';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './Application/index.js';
2
2
  export * from './Config/index.js';
3
3
  export * from './Http/index.js';
4
+ export * from './Kernel/index.js';
4
5
  export * from './Routing/index.js';
6
+ export * from './Security/index.js';
5
7
  export * from './Testing/index.js';
6
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@koala-ts/framework",
3
3
  "main": "dist/index.js",
4
4
  "type": "module",
5
- "version": "2.6.0",
5
+ "version": "2.7.1",
6
6
  "description": "A NodeJS framework for lazy developers",
7
7
  "keywords": [
8
8
  "koala",
@@ -37,7 +37,9 @@
37
37
  "start": "tsx watch playground/main.ts",
38
38
  "check-exports": "attw --pack . --ignore-rules=cjs-resolves-to-esm",
39
39
  "lint": "eslint .",
40
- "lint:fix": "eslint . --fix"
40
+ "lint:fix": "eslint . --fix",
41
+ "format": "prettier --write .",
42
+ "format:check": "prettier --check ."
41
43
  },
42
44
  "dependencies": {
43
45
  "@koa/router": "^14.0.0",
@@ -59,11 +61,14 @@
59
61
  "@stylistic/eslint-plugin": "^5.5.0",
60
62
  "@vitest/coverage-v8": "^4.0.12",
61
63
  "eslint": "^9.38.0",
64
+ "eslint-config-prettier": "^10.1.8",
62
65
  "eslint-plugin-import": "^2.32.0",
63
66
  "eslint-plugin-n": "^17.23.1",
67
+ "eslint-plugin-prettier": "^5.5.4",
64
68
  "eslint-plugin-promise": "^7.2.1",
65
69
  "eslint-plugin-sonarjs": "^3.0.5",
66
70
  "globals": "^16.4.0",
71
+ "prettier": "^3.7.4",
67
72
  "tsc-alias": "^1.8.16",
68
73
  "tsx": "^4.20.6",
69
74
  "typescript": "^5.9.3",
@@ -1,7 +0,0 @@
1
- import { type EventBusStorage, type EventEmitter } from '../Event/types.js';
2
- import { type HttpRequest, type HttpResponse, type HttpScope, type NextMiddleware, type ScopeStore } from '../Http/index.js';
3
- export declare function eventBusMiddleware(scope: HttpScope, next: NextMiddleware, storage?: ScopeStore<EventBusStorage>): Promise<void>;
4
- export declare function useEmit(storage?: ScopeStore<EventBusStorage>): EventEmitter;
5
- export declare function useRequest(storage?: ScopeStore<EventBusStorage>): HttpRequest;
6
- export declare function useResponse(storage?: ScopeStore<EventBusStorage>): HttpResponse;
7
- //# sourceMappingURL=EventBus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/Event/EventBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIhI,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,UAAU,CAAC,eAAe,CAAmB,GACrD,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,OAAO,CAAC,OAAO,GAAE,UAAU,CAAC,eAAe,CAAmB,GAAG,YAAY,CAE5F;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,UAAU,CAAC,eAAe,CAAmB,GAAG,WAAW,CAE9F;AAED,wBAAgB,WAAW,CAAC,OAAO,GAAE,UAAU,CAAC,eAAe,CAAmB,GAAG,YAAY,CAEhG"}
@@ -1,15 +0,0 @@
1
- import { createStore } from '../Http/index.js';
2
- const eventBusStorage = createStore();
3
- export async function eventBusMiddleware(scope, next, storage = eventBusStorage) {
4
- await storage.run({ eventEmitter: scope.app, scope }, next);
5
- }
6
- export function useEmit(storage = eventBusStorage) {
7
- return storage.get('eventEmitter');
8
- }
9
- export function useRequest(storage = eventBusStorage) {
10
- return storage.get('scope').request;
11
- }
12
- export function useResponse(storage = eventBusStorage) {
13
- return storage.get('scope').response;
14
- }
15
- //# sourceMappingURL=EventBus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventBus.js","sourceRoot":"","sources":["../../src/Event/EventBus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAA6F,MAAM,QAAQ,CAAC;AAEhI,MAAM,eAAe,GAAG,WAAW,EAAmB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAgB,EAChB,IAAoB,EACpB,UAAuC,eAAe;IAEtD,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,UAAuC,eAAe;IAC5E,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAuC,eAAe;IAC/E,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAuC,eAAe;IAChF,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;AACvC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=EventBus.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventBus.test.d.ts","sourceRoot":"","sources":["../../src/Event/EventBus.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventBus.test.js","sourceRoot":"","sources":["../../src/Event/EventBus.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIxF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAEjC,MAAM,kBAAkB,CAAC,KAA6B,EAAE,IAAI,EAAE,OAAiD,CAAC,CAAC;QAEjH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;QAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAiD,CAAC,CAAC;QAE3E,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAE9D,MAAM,GAAG,GAAG,UAAU,CAAC,OAAiD,CAAC,CAAC;QAE1E,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAE/D,MAAM,GAAG,GAAG,WAAW,CAAC,OAAiD,CAAC,CAAC;QAE3E,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './types.js';
2
- export * from './EventBus.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Event/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './types.js';
2
- export * from './EventBus.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Event/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Event/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;CAClB;AAGD,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
File without changes