bootifyjs 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +1 -1
  2. package/dist/api.d.ts +2 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +20 -4
  5. package/dist/api.js.map +1 -1
  6. package/dist/auth/examples/basic-usage.d.ts +2 -1
  7. package/dist/auth/examples/basic-usage.d.ts.map +1 -1
  8. package/dist/auth/examples/basic-usage.js +3 -2
  9. package/dist/auth/examples/basic-usage.js.map +1 -1
  10. package/dist/auth/index.d.ts +6 -8
  11. package/dist/auth/index.d.ts.map +1 -1
  12. package/dist/auth/index.js +11 -11
  13. package/dist/auth/index.js.map +1 -1
  14. package/dist/auth/middleware/AuthMiddleware.js.map +1 -1
  15. package/dist/cache/bootstrap.js +1 -1
  16. package/dist/cache/bootstrap.js.map +1 -1
  17. package/dist/cache/index.d.ts +2 -1
  18. package/dist/cache/index.d.ts.map +1 -1
  19. package/dist/cache/index.js +4 -1
  20. package/dist/cache/index.js.map +1 -1
  21. package/dist/cache/{in-memory-cache.store.d.ts → stores/in-memory-cache.store.d.ts} +1 -1
  22. package/dist/cache/stores/in-memory-cache.store.d.ts.map +1 -0
  23. package/dist/cache/{in-memory-cache.store.js → stores/in-memory-cache.store.js} +1 -1
  24. package/dist/cache/stores/in-memory-cache.store.js.map +1 -0
  25. package/dist/cache/stores/index.d.ts +3 -0
  26. package/dist/cache/stores/index.d.ts.map +1 -0
  27. package/dist/cache/stores/index.js +20 -0
  28. package/dist/cache/stores/index.js.map +1 -0
  29. package/dist/cache/stores/redis-cache.store.d.ts +8 -0
  30. package/dist/cache/stores/redis-cache.store.d.ts.map +1 -0
  31. package/dist/cache/stores/redis-cache.store.js +39 -0
  32. package/dist/cache/stores/redis-cache.store.js.map +1 -0
  33. package/dist/core/router.d.ts.map +1 -1
  34. package/dist/core/router.js +3 -3
  35. package/dist/core/router.js.map +1 -1
  36. package/dist/events/bootstrap.d.ts +13 -1
  37. package/dist/events/bootstrap.d.ts.map +1 -1
  38. package/dist/events/bootstrap.js +30 -2
  39. package/dist/events/bootstrap.js.map +1 -1
  40. package/dist/events/buffered-event-bus.service.d.ts +135 -0
  41. package/dist/events/buffered-event-bus.service.d.ts.map +1 -0
  42. package/dist/events/buffered-event-bus.service.js +420 -0
  43. package/dist/events/buffered-event-bus.service.js.map +1 -0
  44. package/dist/events/config/buffered-event-config.d.ts +153 -0
  45. package/dist/events/config/buffered-event-config.d.ts.map +1 -0
  46. package/dist/events/config/buffered-event-config.js +181 -0
  47. package/dist/events/config/buffered-event-config.js.map +1 -0
  48. package/dist/events/index.d.ts +3 -0
  49. package/dist/events/index.d.ts.map +1 -1
  50. package/dist/events/index.js +3 -0
  51. package/dist/events/index.js.map +1 -1
  52. package/dist/events/metrics/event-metrics.d.ts +175 -0
  53. package/dist/events/metrics/event-metrics.d.ts.map +1 -0
  54. package/dist/events/metrics/event-metrics.js +235 -0
  55. package/dist/events/metrics/event-metrics.js.map +1 -0
  56. package/dist/events/monitoring/health-monitor.d.ts +142 -0
  57. package/dist/events/monitoring/health-monitor.d.ts.map +1 -0
  58. package/dist/events/monitoring/health-monitor.js +492 -0
  59. package/dist/events/monitoring/health-monitor.js.map +1 -0
  60. package/dist/events/retry/retry-handler.d.ts +112 -0
  61. package/dist/events/retry/retry-handler.d.ts.map +1 -0
  62. package/dist/events/retry/retry-handler.js +218 -0
  63. package/dist/events/retry/retry-handler.js.map +1 -0
  64. package/dist/events/shared-buffer.d.ts +92 -0
  65. package/dist/events/shared-buffer.d.ts.map +1 -0
  66. package/dist/events/shared-buffer.js +179 -0
  67. package/dist/events/shared-buffer.js.map +1 -0
  68. package/dist/events/worker/event-processor.worker.d.ts +75 -0
  69. package/dist/events/worker/event-processor.worker.d.ts.map +1 -0
  70. package/dist/events/worker/event-processor.worker.js +293 -0
  71. package/dist/events/worker/event-processor.worker.js.map +1 -0
  72. package/dist/events/worker/worker-manager.d.ts +132 -0
  73. package/dist/events/worker/worker-manager.d.ts.map +1 -0
  74. package/dist/events/worker/worker-manager.js +436 -0
  75. package/dist/events/worker/worker-manager.js.map +1 -0
  76. package/dist/examples/auth/auth.middleware.d.ts +0 -26
  77. package/dist/examples/auth/auth.middleware.d.ts.map +1 -1
  78. package/dist/examples/auth/auth.middleware.js +0 -185
  79. package/dist/examples/auth/auth.middleware.js.map +1 -1
  80. package/dist/examples/controllers/auth.controller.d.ts +0 -63
  81. package/dist/examples/controllers/auth.controller.d.ts.map +1 -1
  82. package/dist/examples/controllers/auth.controller.js +247 -282
  83. package/dist/examples/controllers/auth.controller.js.map +1 -1
  84. package/dist/examples/events/buffered-event-example.d.ts +71 -0
  85. package/dist/examples/events/buffered-event-example.d.ts.map +1 -0
  86. package/dist/examples/events/buffered-event-example.js +182 -0
  87. package/dist/examples/events/buffered-event-example.js.map +1 -0
  88. package/dist/examples/events/integration-test.d.ts +10 -0
  89. package/dist/examples/events/integration-test.d.ts.map +1 -0
  90. package/dist/examples/events/integration-test.js +147 -0
  91. package/dist/examples/events/integration-test.js.map +1 -0
  92. package/dist/examples/index.d.ts +1 -0
  93. package/dist/examples/index.d.ts.map +1 -1
  94. package/dist/examples/index.js +11 -7
  95. package/dist/examples/index.js.map +1 -1
  96. package/dist/examples/todos/schema.d.ts +4 -4
  97. package/package.json +2 -1
  98. package/dist/cache/in-memory-cache.store.d.ts.map +0 -1
  99. package/dist/cache/in-memory-cache.store.js.map +0 -1
  100. package/dist/examples/authorization-examples.d.ts +0 -67
  101. package/dist/examples/authorization-examples.d.ts.map +0 -1
  102. package/dist/examples/authorization-examples.js +0 -202
  103. package/dist/examples/authorization-examples.js.map +0 -1
  104. package/dist/examples/controllers/todo-updated.controller.d.ts +0 -103
  105. package/dist/examples/controllers/todo-updated.controller.d.ts.map +0 -1
  106. package/dist/examples/controllers/todo-updated.controller.js +0 -328
  107. package/dist/examples/controllers/todo-updated.controller.js.map +0 -1
  108. package/dist/examples/controllers/todo-with-jwt-auth.controller.d.ts +0 -114
  109. package/dist/examples/controllers/todo-with-jwt-auth.controller.d.ts.map +0 -1
  110. package/dist/examples/controllers/todo-with-jwt-auth.controller.js +0 -329
  111. package/dist/examples/controllers/todo-with-jwt-auth.controller.js.map +0 -1
  112. package/dist/examples/jwt-auth-example.d.ts +0 -47
  113. package/dist/examples/jwt-auth-example.d.ts.map +0 -1
  114. package/dist/examples/jwt-auth-example.js +0 -316
  115. package/dist/examples/jwt-auth-example.js.map +0 -1
  116. package/dist/examples/services/user.service.d.ts +0 -99
  117. package/dist/examples/services/user.service.d.ts.map +0 -1
  118. package/dist/examples/services/user.service.js +0 -281
  119. package/dist/examples/services/user.service.js.map +0 -1
  120. package/dist/examples/test-auth-flow.d.ts +0 -56
  121. package/dist/examples/test-auth-flow.d.ts.map +0 -1
  122. package/dist/examples/test-auth-flow.js +0 -449
  123. package/dist/examples/test-auth-flow.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../src/examples/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../src/examples/controllers/auth.controller.ts"],"names":[],"mappings":";AAAA,2BAA2B;AAC3B,0DAA0D;AAC1D,WAAW;AACX,UAAU;AACV,gBAAgB;AAChB,SAAS;AACT,UAAU;AACV,WAAW;AACX,kCAAkC;AAClC,wDAAwD;AACxD,mEAAmE;AACnE,4EAA4E;AAC5E,wDAAwD;AAExD,iCAAiC;AACjC,yDAAyD;AACzD,wDAAwD;AACxD,MAAM;AAEN,wCAAwC;AACxC,iEAAiE;AACjE,MAAM;AAEN,4BAA4B;AAC5B,+BAA+B;AAC/B,MAAM;AACN,eAAe;AACf,yBAAyB;AACzB,kCAAkC;AAClC,2CAA2C;AAC3C,yDAAyD;AACzD,0CAA0C;AAC1C,6BAA6B;AAC7B,8BAA8B;AAC9B,OAAO;AACP,MAAM;AACN,eAAe;AACf,2BAA2B;AAC3B,oCAAoC;AACpC,kCAAkC;AAClC,sCAAsC;AACtC,4CAA4C;AAC5C,6BAA6B;AAC7B,8BAA8B;AAC9B,OAAO;AACP,MAAM;AACN,eAAe;AACf,wBAAwB;AACxB,iCAAiC;AACjC,uBAAuB;AACvB,6BAA6B;AAC7B,yCAAyC;AACzC,6BAA6B;AAC7B,8BAA8B;AAC9B,MAAM;AACN,KAAK;AAEL,gCAAgC;AAChC,4BAA4B;AAC5B,oEAAoE;AACpE,sCAAsC;AACtC,mCAAmC;AACnC,qCAAqC;AACrC,KAAK;AAEL,4BAA4B;AAC5B,sEAAsE;AACtE,yCAAyC;AAEzC,wCAAwC;AACxC,4BAA4B;AAC5B,iBAAiB;AACjB,MAAM;AAEN,4BAA4B;AAC5B,+BAA+B;AAC/B,oCAAoC;AACpC,4BAA4B;AAC5B,wDAAwD;AACxD,yBAAyB;AACzB,mBAAmB;AACnB,+DAA+D;AAC/D,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,qCAAqC;AACrC,0BAA0B;AAC1B,UAAU;AACV,UAAU;AACV,8BAA8B;AAC9B,MAAM;AACN,IAAI;AAEJ,uBAAuB;AACvB,gCAAgC;AAEhC,oBAAoB;AACpB,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,wBAAwB;AACxB,6BAA6B;AAC7B,2BAA2B;AAC3B,4BAA4B;AAC5B,kCAAkC;AAClC,+BAA+B;AAC/B,uCAAuC;AACvC,aAAa;AACb,YAAY;AACZ,wBAAwB;AACxB,6BAA6B;AAC7B,8BAA8B;AAC9B,WAAW;AACX,QAAQ;AACR,OAAO;AACP,6DAA6D;AAC7D,2CAA2C;AAE3C,mBAAmB;AACnB,uGAAuG;AAEvG,mBAAmB;AACnB,gDAAgD;AAChD,QAAQ;AAER,6BAA6B;AAC7B,qCAAqC;AACrC,uBAAuB;AACvB,yBAAyB;AACzB,4BAA4B;AAC5B,qBAAqB;AACrB,sCAAsC;AACtC,kBAAkB;AAClB,SAAS;AAET,yCAAyC;AACzC,yEAAyE;AAEzE,uDAAuD;AACvD,kDAAkD;AAClD,QAAQ;AAER,2BAA2B;AAC3B,qCAAqC;AAErC,eAAe;AACf,oDAAoD;AACpD,sDAAsD;AACtD,gDAAgD;AAChD,gDAAgD;AAChD,gBAAgB;AAChB,uBAAuB;AACvB,mCAAmC;AACnC,6BAA6B;AAC7B,4BAA4B;AAC5B,UAAU;AACV,SAAS;AACT,MAAM;AAEN,sBAAsB;AACtB,cAAc;AACd,gCAAgC;AAChC,mBAAmB;AACnB,wBAAwB;AACxB,mCAAmC;AACnC,oCAAoC;AACpC,iCAAiC;AACjC,gCAAgC;AAChC,YAAY;AACZ,wBAAwB;AACxB,6BAA6B;AAC7B,8BAA8B;AAC9B,WAAW;AACX,QAAQ;AACR,OAAO;AACP,2EAA2E;AAC3E,qCAAqC;AAErC,qCAAqC;AACrC,yBAAyB;AACzB,yBAAyB;AACzB,4BAA4B;AAC5B,qBAAqB;AACrB,gCAAgC;AAChC,kBAAkB;AAClB,SAAS;AAET,qFAAqF;AAErF,6DAA6D;AAC7D,iDAAiD;AACjD,QAAQ;AAER,eAAe;AACf,uDAAuD;AACvD,yDAAyD;AACzD,mDAAmD;AACnD,kDAAkD;AAClD,SAAS;AACT,MAAM;AAEN,qBAAqB;AACrB,cAAc;AACd,gCAAgC;AAChC,mBAAmB;AACnB,wBAAwB;AACxB,8BAA8B;AAC9B,YAAY;AACZ,wBAAwB;AACxB,6BAA6B;AAC7B,8BAA8B;AAC9B,WAAW;AACX,QAAQ;AACR,OAAO;AACP,qEAAqE;AACrE,qCAAqC;AAErC,qCAAqC;AACrC,wBAAwB;AACxB,yBAAyB;AACzB,4BAA4B;AAC5B,qBAAqB;AACrB,gCAAgC;AAChC,kBAAkB;AAClB,SAAS;AAET,mFAAmF;AAEnF,2BAA2B;AAC3B,0CAA0C;AAC1C,QAAQ;AAER,eAAe;AACf,2CAA2C;AAC3C,SAAS;AACT,MAAM;AAEN,kBAAkB;AAClB,cAAc;AACd,mBAAmB;AACnB,wBAAwB;AACxB,sCAAsC;AACtC,0CAA0C;AAC1C,mCAAmC;AACnC,+BAA+B;AAC/B,iDAAiD;AACjD,oCAAoC;AACpC,mCAAmC;AACnC,gBAAgB;AAChB,yBAAyB;AACzB,2BAA2B;AAC3B,4BAA4B;AAC5B,6CAA6C;AAC7C,0CAA0C;AAC1C,uCAAuC;AACvC,wBAAwB;AACxB,WAAW;AACX,QAAQ;AACR,OAAO;AACP,0BAA0B;AAC1B,eAAe;AACf,8BAA8B;AAC9B,iGAAiG;AACjG,wBAAwB;AACxB,gEAAgE;AAChE,6BAA6B;AAC7B,gEAAgE;AAChE,sEAAsE;AACtE,4DAA4D;AAC5D,YAAY;AACZ,UAAU;AACV,SAAS;AACT,MAAM;AACN,IAAI"}
@@ -0,0 +1,71 @@
1
+ import { BufferedEventBusService, EventBusService } from '../../events';
2
+ import { IEvent } from '../../events/event.types';
3
+ /**
4
+ * Example events for demonstrating buffered processing
5
+ */
6
+ export declare class UserRegisteredEvent implements IEvent {
7
+ readonly userId: string;
8
+ readonly email: string;
9
+ readonly timestamp: number;
10
+ correlationId?: string | undefined;
11
+ readonly type = "user.registered";
12
+ constructor(userId: string, email: string, timestamp?: number, correlationId?: string | undefined);
13
+ get payload(): {
14
+ userId: string;
15
+ email: string;
16
+ timestamp: number;
17
+ };
18
+ }
19
+ export declare class OrderProcessedEvent implements IEvent {
20
+ readonly orderId: string;
21
+ readonly userId: string;
22
+ readonly amount: number;
23
+ readonly timestamp: number;
24
+ correlationId?: string | undefined;
25
+ readonly type = "order.processed";
26
+ constructor(orderId: string, userId: string, amount: number, timestamp?: number, correlationId?: string | undefined);
27
+ get payload(): {
28
+ orderId: string;
29
+ userId: string;
30
+ amount: number;
31
+ timestamp: number;
32
+ };
33
+ }
34
+ /**
35
+ * Service demonstrating both regular and buffered event processing
36
+ */
37
+ export declare class EventProcessingDemoService {
38
+ private readonly eventBus;
39
+ private readonly bufferedEventBus?;
40
+ constructor(eventBus: EventBusService, bufferedEventBus?: BufferedEventBusService | undefined);
41
+ /**
42
+ * Emit events using regular event bus (synchronous processing)
43
+ */
44
+ emitRegularEvents(): Promise<void>;
45
+ /**
46
+ * Emit events using buffered event bus (asynchronous worker processing)
47
+ */
48
+ emitBufferedEvents(): Promise<void>;
49
+ /**
50
+ * Get metrics from buffered event processing
51
+ */
52
+ getBufferedEventMetrics(): any;
53
+ /**
54
+ * Get health status of buffered event processing
55
+ */
56
+ getBufferedEventHealth(): Promise<any>;
57
+ }
58
+ /**
59
+ * Event handlers that will process both regular and buffered events
60
+ */
61
+ export declare class UserEventHandler {
62
+ handleUserRegistered(event: UserRegisteredEvent): Promise<void>;
63
+ }
64
+ export declare class OrderEventHandler {
65
+ handleOrderProcessed(event: OrderProcessedEvent): Promise<void>;
66
+ }
67
+ /**
68
+ * Example usage function
69
+ */
70
+ export declare function runBufferedEventExample(): Promise<void>;
71
+ //# sourceMappingURL=buffered-event-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffered-event-example.d.ts","sourceRoot":"","sources":["../../../src/examples/events/buffered-event-example.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD;;GAEG;AACH,qBAAa,mBAAoB,YAAW,MAAM;aAI9B,MAAM,EAAE,MAAM;aACd,KAAK,EAAE,MAAM;aACb,SAAS,EAAE,MAAM;IAC1B,aAAa,CAAC,EAAE,MAAM;IAN/B,QAAQ,CAAC,IAAI,qBAAqB;gBAGhB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAAmB,EACvC,aAAa,CAAC,EAAE,MAAM,YAAA;IAG/B,IAAI,OAAO;;;;MAMV;CACF;AAED,qBAAa,mBAAoB,YAAW,MAAM;aAI9B,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,MAAM;aACd,SAAS,EAAE,MAAM;IAC1B,aAAa,CAAC,EAAE,MAAM;IAP/B,QAAQ,CAAC,IAAI,qBAAqB;gBAGhB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAmB,EACvC,aAAa,CAAC,EAAE,MAAM,YAAA;IAG/B,IAAI,OAAO;;;;;MAOV;CACF;AAED;;GAEG;AACH,qBACa,0BAA0B;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBADjB,QAAQ,EAAE,eAAe,EACzB,gBAAgB,CAAC,EAAE,uBAAuB,YAAA;IAG1E;;OAEG;IACG,iBAAiB;IAUvB;;OAEG;IACG,kBAAkB;IAwBxB;;OAEG;IACH,uBAAuB;IAQvB;;OAEG;IACG,sBAAsB;CAO7B;AAED;;GAEG;AACH,qBACa,gBAAgB;IAErB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB;CAQtD;AAED,qBACa,iBAAiB;IAEtB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB;CAQtD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,kBA+B5C"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.OrderEventHandler = exports.UserEventHandler = exports.EventProcessingDemoService = exports.OrderProcessedEvent = exports.UserRegisteredEvent = void 0;
16
+ exports.runBufferedEventExample = runBufferedEventExample;
17
+ const decorators_1 = require("../../core/decorators");
18
+ const decorators_2 = require("../../events/decorators");
19
+ const events_1 = require("../../events");
20
+ /**
21
+ * Example events for demonstrating buffered processing
22
+ */
23
+ class UserRegisteredEvent {
24
+ constructor(userId, email, timestamp = Date.now(), correlationId) {
25
+ this.userId = userId;
26
+ this.email = email;
27
+ this.timestamp = timestamp;
28
+ this.correlationId = correlationId;
29
+ this.type = 'user.registered';
30
+ }
31
+ get payload() {
32
+ return {
33
+ userId: this.userId,
34
+ email: this.email,
35
+ timestamp: this.timestamp
36
+ };
37
+ }
38
+ }
39
+ exports.UserRegisteredEvent = UserRegisteredEvent;
40
+ class OrderProcessedEvent {
41
+ constructor(orderId, userId, amount, timestamp = Date.now(), correlationId) {
42
+ this.orderId = orderId;
43
+ this.userId = userId;
44
+ this.amount = amount;
45
+ this.timestamp = timestamp;
46
+ this.correlationId = correlationId;
47
+ this.type = 'order.processed';
48
+ }
49
+ get payload() {
50
+ return {
51
+ orderId: this.orderId,
52
+ userId: this.userId,
53
+ amount: this.amount,
54
+ timestamp: this.timestamp
55
+ };
56
+ }
57
+ }
58
+ exports.OrderProcessedEvent = OrderProcessedEvent;
59
+ /**
60
+ * Service demonstrating both regular and buffered event processing
61
+ */
62
+ let EventProcessingDemoService = class EventProcessingDemoService {
63
+ constructor(eventBus, bufferedEventBus) {
64
+ this.eventBus = eventBus;
65
+ this.bufferedEventBus = bufferedEventBus;
66
+ }
67
+ /**
68
+ * Emit events using regular event bus (synchronous processing)
69
+ */
70
+ async emitRegularEvents() {
71
+ console.log('🔄 Emitting events via regular EventBus...');
72
+ // These will be processed synchronously on the main thread
73
+ this.eventBus.emit(new UserRegisteredEvent('user-123', 'user@example.com'));
74
+ this.eventBus.emit(new OrderProcessedEvent('order-456', 'user-123', 99.99));
75
+ console.log('✅ Regular events emitted');
76
+ }
77
+ /**
78
+ * Emit events using buffered event bus (asynchronous worker processing)
79
+ */
80
+ async emitBufferedEvents() {
81
+ if (!this.bufferedEventBus) {
82
+ console.log('⚠️ Buffered event bus not available');
83
+ return;
84
+ }
85
+ console.log('🔄 Emitting events via BufferedEventBus...');
86
+ // These will be processed asynchronously by worker threads
87
+ const result1 = await this.bufferedEventBus.emitEvent('user.registered', { userId: 'user-789', email: 'buffered@example.com' }, { priority: 'normal' });
88
+ const result2 = await this.bufferedEventBus.emitEvent('order.processed', { orderId: 'order-101', userId: 'user-789', amount: 149.99 }, { priority: 'critical' });
89
+ console.log('✅ Buffered events emitted:', { result1, result2 });
90
+ }
91
+ /**
92
+ * Get metrics from buffered event processing
93
+ */
94
+ getBufferedEventMetrics() {
95
+ if (!this.bufferedEventBus) {
96
+ return null;
97
+ }
98
+ return this.bufferedEventBus.getMetrics();
99
+ }
100
+ /**
101
+ * Get health status of buffered event processing
102
+ */
103
+ async getBufferedEventHealth() {
104
+ if (!this.bufferedEventBus) {
105
+ return null;
106
+ }
107
+ return await this.bufferedEventBus.getHealthStatus();
108
+ }
109
+ };
110
+ exports.EventProcessingDemoService = EventProcessingDemoService;
111
+ exports.EventProcessingDemoService = EventProcessingDemoService = __decorate([
112
+ (0, decorators_1.Service)(),
113
+ __param(0, (0, decorators_1.Autowired)()),
114
+ __param(1, (0, decorators_1.Autowired)()),
115
+ __metadata("design:paramtypes", [events_1.EventBusService,
116
+ events_1.BufferedEventBusService])
117
+ ], EventProcessingDemoService);
118
+ /**
119
+ * Event handlers that will process both regular and buffered events
120
+ */
121
+ let UserEventHandler = class UserEventHandler {
122
+ async handleUserRegistered(event) {
123
+ console.log(`📧 Processing user registration for ${event.email} (ID: ${event.userId})`);
124
+ // Simulate some processing time
125
+ await new Promise(resolve => setTimeout(resolve, 100));
126
+ console.log(`✅ Welcome email sent to ${event.email}`);
127
+ }
128
+ };
129
+ exports.UserEventHandler = UserEventHandler;
130
+ __decorate([
131
+ (0, decorators_2.OnEvent)('user.registered'),
132
+ __metadata("design:type", Function),
133
+ __metadata("design:paramtypes", [UserRegisteredEvent]),
134
+ __metadata("design:returntype", Promise)
135
+ ], UserEventHandler.prototype, "handleUserRegistered", null);
136
+ exports.UserEventHandler = UserEventHandler = __decorate([
137
+ (0, decorators_2.EventListener)()
138
+ ], UserEventHandler);
139
+ let OrderEventHandler = class OrderEventHandler {
140
+ async handleOrderProcessed(event) {
141
+ console.log(`📦 Processing order ${event.orderId} for user ${event.userId} ($${event.amount})`);
142
+ // Simulate some processing time
143
+ await new Promise(resolve => setTimeout(resolve, 200));
144
+ console.log(`✅ Order ${event.orderId} processed successfully`);
145
+ }
146
+ };
147
+ exports.OrderEventHandler = OrderEventHandler;
148
+ __decorate([
149
+ (0, decorators_2.OnEvent)('order.processed'),
150
+ __metadata("design:type", Function),
151
+ __metadata("design:paramtypes", [OrderProcessedEvent]),
152
+ __metadata("design:returntype", Promise)
153
+ ], OrderEventHandler.prototype, "handleOrderProcessed", null);
154
+ exports.OrderEventHandler = OrderEventHandler = __decorate([
155
+ (0, decorators_2.EventListener)()
156
+ ], OrderEventHandler);
157
+ /**
158
+ * Example usage function
159
+ */
160
+ async function runBufferedEventExample() {
161
+ console.log('\n🚀 Buffered Event Processing Example\n');
162
+ // This would typically be injected via DI
163
+ const demoService = new EventProcessingDemoService(new events_1.EventBusService());
164
+ // Emit regular events
165
+ await demoService.emitRegularEvents();
166
+ // Wait a bit
167
+ await new Promise(resolve => setTimeout(resolve, 500));
168
+ // Emit buffered events (if available)
169
+ await demoService.emitBufferedEvents();
170
+ // Show metrics (if available)
171
+ const metrics = demoService.getBufferedEventMetrics();
172
+ if (metrics) {
173
+ console.log('📊 Buffered Event Metrics:', metrics);
174
+ }
175
+ // Show health status (if available)
176
+ const health = await demoService.getBufferedEventHealth();
177
+ if (health) {
178
+ console.log('🏥 Buffered Event Health:', health);
179
+ }
180
+ console.log('\n✅ Example completed\n');
181
+ }
182
+ //# sourceMappingURL=buffered-event-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffered-event-example.js","sourceRoot":"","sources":["../../../src/examples/events/buffered-event-example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Integration test demonstrating buffered event processing
3
+ */
4
+ export declare function runIntegrationTest(): Promise<void>;
5
+ /**
6
+ * Performance test for buffered vs regular event processing
7
+ */
8
+ export declare function runPerformanceComparison(): Promise<void>;
9
+ export declare function runAllTests(): Promise<void>;
10
+ //# sourceMappingURL=integration-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-test.d.ts","sourceRoot":"","sources":["../../../src/examples/events/integration-test.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAsB,kBAAkB,kBAwEvC;AAED;;GAEG;AACH,wBAAsB,wBAAwB,kBAqE7C;AAGD,wBAAsB,WAAW,kBAShC"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runIntegrationTest = runIntegrationTest;
4
+ exports.runPerformanceComparison = runPerformanceComparison;
5
+ exports.runAllTests = runAllTests;
6
+ const bootstrap_1 = require("../../events/bootstrap");
7
+ const buffered_event_config_1 = require("../../events/config/buffered-event-config");
8
+ const buffered_event_example_1 = require("./buffered-event-example");
9
+ /**
10
+ * Integration test demonstrating buffered event processing
11
+ */
12
+ async function runIntegrationTest() {
13
+ console.log('🧪 Starting Buffered Event Processing Integration Test\n');
14
+ try {
15
+ // Bootstrap the event system with buffered processing enabled
16
+ console.log('🔧 Bootstrapping event system with buffered processing...');
17
+ const eventSystem = (0, bootstrap_1.bootstrapEventSystem)([], {
18
+ useBufferedProcessing: true,
19
+ bufferedEventConfig: {
20
+ ...buffered_event_config_1.defaultBufferedEventConfig,
21
+ enabled: true,
22
+ workerCount: 2, // Use fewer workers for testing
23
+ maxQueueSize: 1000,
24
+ maxMemoryMB: 10,
25
+ monitoring: {
26
+ ...buffered_event_config_1.defaultBufferedEventConfig.monitoring,
27
+ enabled: true,
28
+ metricsInterval: 2000 // Check metrics every 2 seconds
29
+ }
30
+ }
31
+ });
32
+ console.log('✅ Event system bootstrapped successfully');
33
+ console.log(`📊 Regular EventBus: ${eventSystem.eventBus ? 'Available' : 'Not Available'}`);
34
+ console.log(`🔄 Buffered EventBus: ${eventSystem.bufferedEventBus ? 'Available' : 'Not Available'}`);
35
+ // Wait a moment for workers to initialize
36
+ console.log('⏳ Waiting for worker threads to initialize...');
37
+ await new Promise(resolve => setTimeout(resolve, 1000));
38
+ // Run the example
39
+ await (0, buffered_event_example_1.runBufferedEventExample)();
40
+ // Show final metrics if buffered processing is available
41
+ if (eventSystem.bufferedEventBus) {
42
+ console.log('\n📈 Final System Metrics:');
43
+ const metrics = eventSystem.bufferedEventBus.getMetrics();
44
+ console.log('Queue Metrics:', {
45
+ size: metrics.queueMetrics.size,
46
+ utilization: `${(metrics.queueMetrics.utilization * 100).toFixed(1)}%`,
47
+ totalProcessed: metrics.queueMetrics.totalProcessed
48
+ });
49
+ const health = await eventSystem.bufferedEventBus.getHealthStatus();
50
+ console.log('Health Status:', {
51
+ status: health.status,
52
+ activeWorkers: health.activeWorkers,
53
+ queueDepth: health.queueDepth
54
+ });
55
+ const workerStats = eventSystem.bufferedEventBus.getWorkerStatistics();
56
+ console.log('Worker Statistics:', {
57
+ totalWorkers: workerStats.totalWorkers,
58
+ activeWorkers: workerStats.activeWorkers,
59
+ averageProcessingTime: `${workerStats.averageProcessingTime.toFixed(2)}ms`
60
+ });
61
+ }
62
+ // Graceful shutdown
63
+ console.log('\n🔄 Shutting down event system...');
64
+ if (eventSystem.bufferedEventBus) {
65
+ await eventSystem.bufferedEventBus.shutdown();
66
+ }
67
+ console.log('✅ Integration test completed successfully!\n');
68
+ }
69
+ catch (error) {
70
+ console.error('❌ Integration test failed:', error);
71
+ throw error;
72
+ }
73
+ }
74
+ /**
75
+ * Performance test for buffered vs regular event processing
76
+ */
77
+ async function runPerformanceComparison() {
78
+ console.log('⚡ Performance Comparison: Regular vs Buffered Event Processing\n');
79
+ const eventCount = 1000;
80
+ const testEvents = Array.from({ length: eventCount }, (_, i) => ({
81
+ type: 'test.event',
82
+ payload: { id: i, data: `test-data-${i}` },
83
+ timestamp: Date.now()
84
+ }));
85
+ // Test regular event processing
86
+ console.log(`🔄 Testing regular event processing (${eventCount} events)...`);
87
+ const regularStart = Date.now();
88
+ const regularEventSystem = (0, bootstrap_1.bootstrapEventSystem)([], {
89
+ useBufferedProcessing: false
90
+ });
91
+ for (const event of testEvents) {
92
+ regularEventSystem.eventBus.emit(event);
93
+ }
94
+ const regularEnd = Date.now();
95
+ const regularTime = regularEnd - regularStart;
96
+ console.log(`✅ Regular processing completed in ${regularTime}ms`);
97
+ console.log(`📊 Regular throughput: ${(eventCount / regularTime * 1000).toFixed(0)} events/sec\n`);
98
+ // Test buffered event processing
99
+ console.log(`🔄 Testing buffered event processing (${eventCount} events)...`);
100
+ const bufferedStart = Date.now();
101
+ const bufferedEventSystem = (0, bootstrap_1.bootstrapEventSystem)([], {
102
+ useBufferedProcessing: true,
103
+ bufferedEventConfig: {
104
+ ...buffered_event_config_1.defaultBufferedEventConfig,
105
+ enabled: true,
106
+ workerCount: 4,
107
+ maxQueueSize: eventCount + 100
108
+ }
109
+ });
110
+ // Wait for workers to initialize
111
+ await new Promise(resolve => setTimeout(resolve, 500));
112
+ const emitPromises = testEvents.map(event => bufferedEventSystem.bufferedEventBus.emitEvent(event.type, event.payload, { priority: 'normal' }));
113
+ await Promise.all(emitPromises);
114
+ const bufferedEnd = Date.now();
115
+ const bufferedTime = bufferedEnd - bufferedStart;
116
+ console.log(`✅ Buffered processing completed in ${bufferedTime}ms`);
117
+ console.log(`📊 Buffered throughput: ${(eventCount / bufferedTime * 1000).toFixed(0)} events/sec`);
118
+ // Show comparison
119
+ const improvement = ((regularTime - bufferedTime) / regularTime * 100);
120
+ console.log(`\n📈 Performance improvement: ${improvement > 0 ? '+' : ''}${improvement.toFixed(1)}%`);
121
+ // Cleanup
122
+ await bufferedEventSystem.bufferedEventBus.shutdown();
123
+ console.log('\n✅ Performance comparison completed!\n');
124
+ }
125
+ // Export a function to run all tests
126
+ async function runAllTests() {
127
+ try {
128
+ await runIntegrationTest();
129
+ await new Promise(resolve => setTimeout(resolve, 1000)); // Brief pause
130
+ await runPerformanceComparison();
131
+ }
132
+ catch (error) {
133
+ console.error('❌ Test suite failed:', error);
134
+ process.exit(1);
135
+ }
136
+ }
137
+ // If this file is run directly, execute all tests
138
+ if (require.main === module) {
139
+ runAllTests().then(() => {
140
+ console.log('🎉 All tests completed successfully!');
141
+ process.exit(0);
142
+ }).catch((error) => {
143
+ console.error('💥 Test suite failed:', error);
144
+ process.exit(1);
145
+ });
146
+ }
147
+ //# sourceMappingURL=integration-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-test.js","sourceRoot":"","sources":["../../../src/examples/events/integration-test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import 'reflect-metadata';
2
+ import '../cache/stores/redis-cache.store';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAA;AAazB,OAAO,mCAAmC,CAAA"}
@@ -14,6 +14,9 @@ dotenv_1.default.config();
14
14
  // import { bootstrapCache } from '../cache/bootstrap'
15
15
  const zod_1 = __importDefault(require("zod"));
16
16
  const basic_usage_1 = require("../auth/examples/basic-usage");
17
+ const cache_1 = require("../cache");
18
+ // Import the RedisCacheStore to trigger @Service decorator registration
19
+ require("../cache/stores/redis-cache.store");
17
20
  // --- Application Startup ---
18
21
  const envSchema = zod_1.default.object({
19
22
  NODE_ENV: zod_1.default.string().min(1),
@@ -53,23 +56,24 @@ async function main() {
53
56
  // Register authManager in DI container for controller injection
54
57
  di_container_1.container.register('AuthManager', { useFactory: () => authManager });
55
58
  const allComponents = Array.from(di_container_1.container.getRegisteredComponents());
56
- await (0, bootstrap_1.bootstrapEventSystem)(allComponents);
57
- // await bootstrapCache()
59
+ await (0, bootstrap_1.bootstrapEventSystem)(allComponents, { useBufferedProcessing: true });
60
+ await (0, cache_1.bootstrapCache)();
58
61
  const { app, start } = await (0, api_1.createBootifyApp)({
59
62
  controllers: [health_controller_1.HealthController, todo_controller_1.TodoController],
60
63
  enableSwagger: true,
61
64
  port: 8080,
62
65
  configSchema: envSchema,
63
66
  globalMiddlewares: [
64
- jwtAuthMiddleware.authenticate({
65
- strategies: ['jwt', 'api-key'],
66
- skipPaths: ['/auth/login', '/auth/refresh', '/health']
67
- }),
67
+ // jwtAuthMiddleware.authenticate({
68
+ // strategies: ['jwt', 'api-key'],
69
+ // skipPaths: ['/auth/login', '/auth/refresh', '/health']
70
+ // }),
68
71
  corsMiddleware, // 1st: Handle CORS headers
69
72
  securityHeadersMiddleware, // 2nd: Add security headers
70
73
  requestTimingMiddleware, // 3rd: Start request timing
71
74
  requestLoggingMiddleware // 4th: Log request details
72
- ]
75
+ ],
76
+ enableCookie: true
73
77
  });
74
78
  await (0, basic_usage_1.registerJWTAuthRoutes)(app, authManager, jwtAuthMiddleware);
75
79
  // Setup context middleware with authentication
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":";;;;;AAAA,oDAA2B;AAC3B,4BAAyB;AACzB,gCAAyC;AAEzC,uDAAgD;AAChD,mDAA0D;AAC1D,uEAAkE;AAClE,mEAA8D;AAC9D,gBAAM,CAAC,MAAM,EAAE,CAAA;AACf,sDAAsD;AACtD,8CAAmB;AACnB,8DAAkF;AAClF,oCAAyC;AACzC,wEAAwE;AACxE,6CAA0C;AAE1C,8BAA8B;AAG9B,MAAM,SAAS,GAAG,aAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAA;AAEF,oCAAoC;AACpC,MAAM,cAAc,GAAsB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IACjE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;IAC1C,KAAK,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;IAChD,KAAK,CAAC,MAAM,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,CAAA;IAC/E,KAAK,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAA;AAC7E,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAsB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAGjE;IAAE,OAAe,CAAC,SAAS,GAAG,SAAS,CACvC;IAAE,OAAe,CAAC,SAAS,GAAG,GAAG,EAAE;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;QACvC,OAAO,CAAC,GAAG,CAAC,4BAA4B,QAAQ,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACzF,CAAC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAsB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IAC5E,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IACtD,KAAK,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;IACjD,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IACvC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA;IACjD,KAAK,CAAC,MAAM,CAAC,2BAA2B,EAAE,qCAAqC,CAAC,CAAA;AAClF,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAsB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,SAAS,QAAQ,MAAM,SAAS,EAAE,CAAC,CAAA;AAC7F,CAAC,CAAA;AAED,KAAK,UAAU,IAAI;IACjB,+BAA+B;IAG/B,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,0BAAY,GAAE,CAAA;IAE3E,gEAAgE;IAChE,wBAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IAEpE,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAS,CAAC,uBAAuB,EAAE,CAAC,CAAA;IACrE,MAAM,IAAA,gCAAoB,EAAC,aAAa,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1E,MAAM,IAAA,sBAAc,GAAE,CAAA;IAEtB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,sBAAgB,EAAC;QAC5C,WAAW,EAAE,CAAC,oCAAgB,EAAE,gCAAc,CAAC;QAC/C,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,IAAI;QACV,YAAY,EAAE,SAAS;QACvB,iBAAiB,EAAE;YACjB,mCAAmC;YACnC,oCAAoC;YACpC,2DAA2D;YAC3D,MAAM;YACN,cAAc,EAAe,2BAA2B;YACxD,yBAAyB,EAAI,4BAA4B;YACzD,uBAAuB,EAAM,4BAA4B;YACzD,wBAAwB,CAAK,2BAA2B;SACzD;QACD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAA;IAEF,MAAM,IAAA,mCAAqB,EAAC,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;IAEhE,+CAA+C;IAC/C,2EAA2E;IAE3E,sEAAsE;IACtE,qDAAqD;IAErD,2BAA2B;IAC3B,uFAAuF;IACvF,8DAA8D;IAC9D,yCAAyC;IAEzC,0DAA0D;IAC1D,yGAAyG;IACzG,0CAA0C;IAC1C,0EAA0E;IAC1E,8EAA8E;IAC9E,mFAAmF;IACnF,6EAA6E;IAC7E,gFAAgF;IAChF,oDAAoD;IACpD,wDAAwD;IACxD,+CAA+C;IAC/C,8DAA8D;IAC9D,iEAAiE;IACjE,wFAAwF;IACxF,wFAAwF;IACxF,kDAAkD;IAClD,2EAA2E;IAE3E,MAAM,KAAK,EAAE,CAAA;AACf,CAAC;AAED,IAAI,EAAE,CAAA"}
@@ -6,13 +6,13 @@ export declare const TodoBaseSchema: z.ZodObject<{
6
6
  createdAt: z.ZodDate;
7
7
  }, "strip", z.ZodTypeAny, {
8
8
  completed: boolean;
9
- createdAt: Date;
10
9
  id: string;
10
+ createdAt: Date;
11
11
  text: string;
12
12
  }, {
13
13
  completed: boolean;
14
- createdAt: Date;
15
14
  id: string;
15
+ createdAt: Date;
16
16
  text: string;
17
17
  }>;
18
18
  export declare const TodoCreateBodySchema: z.ZodObject<Pick<{
@@ -42,13 +42,13 @@ export declare const TodoResponseSchema: z.ZodObject<{
42
42
  createdAt: z.ZodDate;
43
43
  }, "strip", z.ZodTypeAny, {
44
44
  completed: boolean;
45
- createdAt: Date;
46
45
  id: string;
46
+ createdAt: Date;
47
47
  text: string;
48
48
  }, {
49
49
  completed: boolean;
50
- createdAt: Date;
51
50
  id: string;
51
+ createdAt: Date;
52
52
  text: string;
53
53
  }>;
54
54
  //# sourceMappingURL=schema.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bootifyjs",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "keywords": [],
5
5
  "author": "Piyush Priyadarshi",
6
6
  "license": "ISC",
@@ -50,6 +50,7 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@clickhouse/client": "^1.12.0",
53
+ "@fastify/cookie": "^11.0.2",
53
54
  "@types/jsonwebtoken": "^9.0.10",
54
55
  "fastify": "^5.4.0",
55
56
  "jsonwebtoken": "^9.0.2",
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-cache.store.d.ts","sourceRoot":"","sources":["../../src/cache/in-memory-cache.store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,qBACa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2D;IAE3E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAa3C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-cache.store.js","sourceRoot":"","sources":["../../src/cache/in-memory-cache.store.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mDAA4C;AAG5C,8CAA8C;AAEvC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QACY,UAAK,GAAG,IAAI,GAAG,EAAiD,CAAA;IAuBnF,CAAC;IArBC,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAE5B,uBAAuB;QACvB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,KAAK,CAAC,KAAU,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,YAAqB;QACtD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QACrE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;CACF,CAAA;AAxBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,oBAAO,GAAE;GACG,kBAAkB,CAwB9B"}