pp-command-bus 1.5.0 → 2.0.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 (205) hide show
  1. package/README.md +400 -1219
  2. package/dist/command-bus/command-bus.spec.js +138 -359
  3. package/dist/command-bus/command-bus.spec.js.map +1 -1
  4. package/dist/command-bus/command.d.ts +3 -4
  5. package/dist/command-bus/command.js +3 -32
  6. package/dist/command-bus/command.js.map +1 -1
  7. package/dist/command-bus/config/command-bus-config.d.ts +80 -21
  8. package/dist/command-bus/config/command-bus-config.js +104 -58
  9. package/dist/command-bus/config/command-bus-config.js.map +1 -1
  10. package/dist/command-bus/config/command-bus-config.spec.js +174 -100
  11. package/dist/command-bus/config/command-bus-config.spec.js.map +1 -1
  12. package/dist/command-bus/index.d.ts +41 -50
  13. package/dist/command-bus/index.js +143 -127
  14. package/dist/command-bus/index.js.map +1 -1
  15. package/dist/command-bus/interceptors/index.d.ts +5 -0
  16. package/dist/command-bus/interceptors/index.js +22 -0
  17. package/dist/command-bus/interceptors/index.js.map +1 -0
  18. package/dist/command-bus/interceptors/interceptor.interface.d.ts +35 -0
  19. package/dist/command-bus/interceptors/interceptor.interface.js +3 -0
  20. package/dist/command-bus/interceptors/interceptor.interface.js.map +1 -0
  21. package/dist/command-bus/interceptors/performance-interceptor.d.ts +24 -0
  22. package/dist/command-bus/interceptors/performance-interceptor.js +86 -0
  23. package/dist/command-bus/interceptors/performance-interceptor.js.map +1 -0
  24. package/dist/command-bus/interceptors/performance-interceptor.spec.js +124 -0
  25. package/dist/command-bus/interceptors/performance-interceptor.spec.js.map +1 -0
  26. package/dist/command-bus/logging/command-logger.d.ts +2 -0
  27. package/dist/command-bus/logging/command-logger.js +7 -0
  28. package/dist/command-bus/logging/command-logger.js.map +1 -1
  29. package/dist/command-bus/logging/command-logger.spec.js +36 -0
  30. package/dist/command-bus/logging/command-logger.spec.js.map +1 -1
  31. package/dist/command-bus/serialization/index.d.ts +6 -0
  32. package/dist/command-bus/serialization/index.js +9 -0
  33. package/dist/command-bus/serialization/index.js.map +1 -0
  34. package/dist/command-bus/serialization/msgpack-serializer.d.ts +26 -0
  35. package/dist/command-bus/serialization/msgpack-serializer.js +70 -0
  36. package/dist/command-bus/serialization/msgpack-serializer.js.map +1 -0
  37. package/dist/command-bus/serialization/msgpack-serializer.spec.js +223 -0
  38. package/dist/command-bus/serialization/msgpack-serializer.spec.js.map +1 -0
  39. package/dist/command-bus/serialization/serializer.interface.d.ts +21 -0
  40. package/dist/command-bus/serialization/serializer.interface.js +3 -0
  41. package/dist/command-bus/serialization/serializer.interface.js.map +1 -0
  42. package/dist/command-bus/transport/consumer-loop.d.ts +45 -0
  43. package/dist/command-bus/transport/consumer-loop.js +90 -0
  44. package/dist/command-bus/transport/consumer-loop.js.map +1 -0
  45. package/dist/command-bus/transport/consumer-loop.spec.js +216 -0
  46. package/dist/command-bus/transport/consumer-loop.spec.js.map +1 -0
  47. package/dist/command-bus/transport/index.d.ts +21 -0
  48. package/dist/command-bus/transport/index.js +23 -0
  49. package/dist/command-bus/transport/index.js.map +1 -0
  50. package/dist/command-bus/transport/message-processor.d.ts +70 -0
  51. package/dist/command-bus/transport/message-processor.js +158 -0
  52. package/dist/command-bus/transport/message-processor.js.map +1 -0
  53. package/dist/command-bus/transport/message-processor.spec.js +185 -0
  54. package/dist/command-bus/transport/message-processor.spec.js.map +1 -0
  55. package/dist/command-bus/transport/pending-recovery.d.ts +54 -0
  56. package/dist/command-bus/transport/pending-recovery.js +139 -0
  57. package/dist/command-bus/transport/pending-recovery.js.map +1 -0
  58. package/dist/command-bus/transport/pending-recovery.spec.js +176 -0
  59. package/dist/command-bus/transport/pending-recovery.spec.js.map +1 -0
  60. package/dist/command-bus/transport/redis-codec.d.ts +24 -0
  61. package/dist/command-bus/transport/redis-codec.js +33 -0
  62. package/dist/command-bus/transport/redis-codec.js.map +1 -0
  63. package/dist/command-bus/transport/redis-codec.spec.js +53 -0
  64. package/dist/command-bus/transport/redis-codec.spec.js.map +1 -0
  65. package/dist/command-bus/transport/redis-streams-transport.d.ts +94 -0
  66. package/dist/command-bus/transport/redis-streams-transport.js +143 -0
  67. package/dist/command-bus/transport/redis-streams-transport.js.map +1 -0
  68. package/dist/command-bus/transport/redis-streams-transport.spec.js +420 -0
  69. package/dist/command-bus/transport/redis-streams-transport.spec.js.map +1 -0
  70. package/dist/command-bus/transport/rpc-handler.d.ts +39 -0
  71. package/dist/command-bus/transport/rpc-handler.js +87 -0
  72. package/dist/command-bus/transport/rpc-handler.js.map +1 -0
  73. package/dist/command-bus/transport/rpc-handler.spec.js +157 -0
  74. package/dist/command-bus/transport/rpc-handler.spec.js.map +1 -0
  75. package/dist/command-bus/transport/stream-consumer.d.ts +91 -0
  76. package/dist/command-bus/transport/stream-consumer.js +182 -0
  77. package/dist/command-bus/transport/stream-consumer.js.map +1 -0
  78. package/dist/command-bus/transport/stream-consumer.spec.js +284 -0
  79. package/dist/command-bus/transport/stream-consumer.spec.js.map +1 -0
  80. package/dist/command-bus/transport/stream-producer.d.ts +23 -0
  81. package/dist/command-bus/transport/stream-producer.js +70 -0
  82. package/dist/command-bus/transport/stream-producer.js.map +1 -0
  83. package/dist/command-bus/transport/stream-producer.spec.js +125 -0
  84. package/dist/command-bus/transport/stream-producer.spec.js.map +1 -0
  85. package/dist/command-bus/transport/transport.interface.d.ts +87 -0
  86. package/dist/command-bus/transport/transport.interface.js +3 -0
  87. package/dist/command-bus/transport/transport.interface.js.map +1 -0
  88. package/dist/command-bus/types/index.d.ts +0 -84
  89. package/dist/examples/rpc.demo.js +1 -1
  90. package/dist/examples/rpc.demo.js.map +1 -1
  91. package/dist/index.d.ts +8 -5
  92. package/dist/index.js +6 -4
  93. package/dist/index.js.map +1 -1
  94. package/dist/pp-command-bus-2.0.1.tgz +0 -0
  95. package/dist/shared/redis/connection-pool.d.ts +54 -0
  96. package/dist/shared/redis/connection-pool.js +123 -0
  97. package/dist/shared/redis/connection-pool.js.map +1 -0
  98. package/dist/shared/redis/connection-pool.spec.d.ts +1 -0
  99. package/dist/shared/redis/connection-pool.spec.js +114 -0
  100. package/dist/shared/redis/connection-pool.spec.js.map +1 -0
  101. package/dist/shared/redis/index.d.ts +5 -3
  102. package/dist/shared/redis/index.js +6 -4
  103. package/dist/shared/redis/index.js.map +1 -1
  104. package/dist/shared/redis/rpc-connection-pool.d.ts +61 -0
  105. package/dist/shared/redis/rpc-connection-pool.js +154 -0
  106. package/dist/shared/redis/rpc-connection-pool.js.map +1 -0
  107. package/dist/shared/redis/rpc-connection-pool.spec.d.ts +1 -0
  108. package/dist/shared/redis/rpc-connection-pool.spec.js +173 -0
  109. package/dist/shared/redis/rpc-connection-pool.spec.js.map +1 -0
  110. package/dist/shared/types.d.ts +0 -4
  111. package/dist/shared/utils/error-utils.d.ts +8 -0
  112. package/dist/shared/utils/error-utils.js +14 -0
  113. package/dist/shared/utils/error-utils.js.map +1 -0
  114. package/package.json +12 -12
  115. package/dist/command-bus/config/auto-config-optimizer.d.ts +0 -35
  116. package/dist/command-bus/config/auto-config-optimizer.js +0 -52
  117. package/dist/command-bus/config/auto-config-optimizer.js.map +0 -1
  118. package/dist/command-bus/config/auto-config-optimizer.spec.js +0 -42
  119. package/dist/command-bus/config/auto-config-optimizer.spec.js.map +0 -1
  120. package/dist/command-bus/job/index.d.ts +0 -6
  121. package/dist/command-bus/job/index.js +0 -15
  122. package/dist/command-bus/job/index.js.map +0 -1
  123. package/dist/command-bus/job/job-options-builder.d.ts +0 -21
  124. package/dist/command-bus/job/job-options-builder.js +0 -58
  125. package/dist/command-bus/job/job-options-builder.js.map +0 -1
  126. package/dist/command-bus/job/job-options-builder.spec.js +0 -156
  127. package/dist/command-bus/job/job-options-builder.spec.js.map +0 -1
  128. package/dist/command-bus/job/job-processor.d.ts +0 -39
  129. package/dist/command-bus/job/job-processor.js +0 -203
  130. package/dist/command-bus/job/job-processor.js.map +0 -1
  131. package/dist/command-bus/job/job-processor.spec.js +0 -436
  132. package/dist/command-bus/job/job-processor.spec.js.map +0 -1
  133. package/dist/command-bus/queue/index.d.ts +0 -5
  134. package/dist/command-bus/queue/index.js +0 -13
  135. package/dist/command-bus/queue/index.js.map +0 -1
  136. package/dist/command-bus/queue/queue-manager.d.ts +0 -56
  137. package/dist/command-bus/queue/queue-manager.js +0 -163
  138. package/dist/command-bus/queue/queue-manager.js.map +0 -1
  139. package/dist/command-bus/queue/queue-manager.spec.js +0 -371
  140. package/dist/command-bus/queue/queue-manager.spec.js.map +0 -1
  141. package/dist/command-bus/rpc/index.d.ts +0 -11
  142. package/dist/command-bus/rpc/index.js +0 -19
  143. package/dist/command-bus/rpc/index.js.map +0 -1
  144. package/dist/command-bus/rpc/payload-compression.service.d.ts +0 -50
  145. package/dist/command-bus/rpc/payload-compression.service.js +0 -215
  146. package/dist/command-bus/rpc/payload-compression.service.js.map +0 -1
  147. package/dist/command-bus/rpc/payload-compression.service.spec.js +0 -376
  148. package/dist/command-bus/rpc/payload-compression.service.spec.js.map +0 -1
  149. package/dist/command-bus/rpc/rpc-coordinator.d.ts +0 -96
  150. package/dist/command-bus/rpc/rpc-coordinator.js +0 -500
  151. package/dist/command-bus/rpc/rpc-coordinator.js.map +0 -1
  152. package/dist/command-bus/rpc/rpc-coordinator.spec.js +0 -621
  153. package/dist/command-bus/rpc/rpc-coordinator.spec.js.map +0 -1
  154. package/dist/command-bus/rpc/rpc-job-cancellation.service.d.ts +0 -82
  155. package/dist/command-bus/rpc/rpc-job-cancellation.service.js +0 -180
  156. package/dist/command-bus/rpc/rpc-job-cancellation.service.js.map +0 -1
  157. package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js +0 -286
  158. package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js.map +0 -1
  159. package/dist/command-bus/worker/index.d.ts +0 -10
  160. package/dist/command-bus/worker/index.js +0 -19
  161. package/dist/command-bus/worker/index.js.map +0 -1
  162. package/dist/command-bus/worker/worker-benchmark.d.ts +0 -71
  163. package/dist/command-bus/worker/worker-benchmark.js +0 -202
  164. package/dist/command-bus/worker/worker-benchmark.js.map +0 -1
  165. package/dist/command-bus/worker/worker-benchmark.spec.js +0 -310
  166. package/dist/command-bus/worker/worker-benchmark.spec.js.map +0 -1
  167. package/dist/command-bus/worker/worker-metrics-collector.d.ts +0 -98
  168. package/dist/command-bus/worker/worker-metrics-collector.js +0 -242
  169. package/dist/command-bus/worker/worker-metrics-collector.js.map +0 -1
  170. package/dist/command-bus/worker/worker-orchestrator.d.ts +0 -70
  171. package/dist/command-bus/worker/worker-orchestrator.js +0 -339
  172. package/dist/command-bus/worker/worker-orchestrator.js.map +0 -1
  173. package/dist/command-bus/worker/worker-orchestrator.spec.js +0 -712
  174. package/dist/command-bus/worker/worker-orchestrator.spec.js.map +0 -1
  175. package/dist/examples/auto-config.demo.d.ts +0 -9
  176. package/dist/examples/auto-config.demo.js +0 -106
  177. package/dist/examples/auto-config.demo.js.map +0 -1
  178. package/dist/examples/rpc-compression.demo.d.ts +0 -5
  179. package/dist/examples/rpc-compression.demo.js +0 -358
  180. package/dist/examples/rpc-compression.demo.js.map +0 -1
  181. package/dist/examples/rpc-resilience.demo.d.ts +0 -15
  182. package/dist/examples/rpc-resilience.demo.js +0 -233
  183. package/dist/examples/rpc-resilience.demo.js.map +0 -1
  184. package/dist/pp-command-bus-1.5.0.tgz +0 -0
  185. package/dist/shared/config/base-config.d.ts +0 -54
  186. package/dist/shared/config/base-config.js +0 -114
  187. package/dist/shared/config/base-config.js.map +0 -1
  188. package/dist/shared/config/base-config.spec.js +0 -204
  189. package/dist/shared/config/base-config.spec.js.map +0 -1
  190. package/dist/shared/config/index.d.ts +0 -1
  191. package/dist/shared/config/index.js +0 -9
  192. package/dist/shared/config/index.js.map +0 -1
  193. package/dist/shared/redis/redis-connection-factory.d.ts +0 -66
  194. package/dist/shared/redis/redis-connection-factory.js +0 -113
  195. package/dist/shared/redis/redis-connection-factory.js.map +0 -1
  196. /package/dist/command-bus/{config/auto-config-optimizer.spec.d.ts → interceptors/performance-interceptor.spec.d.ts} +0 -0
  197. /package/dist/command-bus/{job/job-options-builder.spec.d.ts → serialization/msgpack-serializer.spec.d.ts} +0 -0
  198. /package/dist/command-bus/{job/job-processor.spec.d.ts → transport/consumer-loop.spec.d.ts} +0 -0
  199. /package/dist/command-bus/{queue/queue-manager.spec.d.ts → transport/message-processor.spec.d.ts} +0 -0
  200. /package/dist/command-bus/{rpc/payload-compression.service.spec.d.ts → transport/pending-recovery.spec.d.ts} +0 -0
  201. /package/dist/command-bus/{rpc/rpc-coordinator.spec.d.ts → transport/redis-codec.spec.d.ts} +0 -0
  202. /package/dist/command-bus/{rpc/rpc-job-cancellation.service.spec.d.ts → transport/redis-streams-transport.spec.d.ts} +0 -0
  203. /package/dist/command-bus/{worker/worker-benchmark.spec.d.ts → transport/rpc-handler.spec.d.ts} +0 -0
  204. /package/dist/command-bus/{worker/worker-orchestrator.spec.d.ts → transport/stream-consumer.spec.d.ts} +0 -0
  205. /package/dist/{shared/config/base-config.spec.d.ts → command-bus/transport/stream-producer.spec.d.ts} +0 -0
@@ -1,233 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- var _a, _b, _c;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.ResilienceTestCommand = void 0;
17
- exports.runResilienceDemo = runResilienceDemo;
18
- const command_1 = __importDefault(require("../command-bus/command"));
19
- const command_bus_1 = __importDefault(require("../command-bus"));
20
- const command_bus_config_1 = __importDefault(require("../command-bus/config/command-bus-config"));
21
- /**
22
- * Demo RPC Resilience - test mechanizmów reconnect i failover
23
- *
24
- * Wysyła request co 1 sekundę przez 5 minut, zbiera metryki sukcesu/błędów.
25
- * Użyj do testowania zachowania systemu podczas restartu Redis.
26
- *
27
- * Scenariusze testowe:
28
- * 1. Normalny przepływ - uruchom i obserwuj stabilną pracę
29
- * 2. Restart Redis: docker restart redis
30
- * 3. Stop/Start Redis: docker stop redis, poczekaj 30s, docker start redis
31
- *
32
- * Opcje ENV:
33
- * - DURATION: czas testu w sekundach (domyślnie 300 = 5 minut)
34
- * - INTERVAL: interwał między requestami w ms (domyślnie 1000)
35
- * - TIMEOUT: timeout per request w ms (domyślnie 5000)
36
- */
37
- // ========== KONFIGURACJA ==========
38
- const TEST_DURATION_S = parseInt((_a = process.env.DURATION) !== null && _a !== void 0 ? _a : '300', 10);
39
- const REQUEST_INTERVAL_MS = parseInt((_b = process.env.INTERVAL) !== null && _b !== void 0 ? _b : '1000', 10);
40
- const REQUEST_TIMEOUT_MS = parseInt((_c = process.env.TIMEOUT) !== null && _c !== void 0 ? _c : '5000', 10);
41
- // ========== KOMENDA TESTOWA ==========
42
- /**
43
- * Komenda do testowania resilience RPC
44
- */
45
- class ResilienceTestCommand extends command_1.default {
46
- constructor(payload) {
47
- super(payload);
48
- }
49
- }
50
- exports.ResilienceTestCommand = ResilienceTestCommand;
51
- // ========== FUNKCJE POMOCNICZE ==========
52
- /**
53
- * Funkcja sleep - opóźnienie asynchroniczne
54
- */
55
- function sleep(ms) {
56
- return new Promise((resolve) => setTimeout(resolve, ms));
57
- }
58
- /**
59
- * Oblicza statystyki latency
60
- */
61
- function calculateLatencyStats(latencies) {
62
- if (latencies.length === 0) {
63
- return { avg: 0, min: 0, max: 0 };
64
- }
65
- const sum = latencies.reduce((a, b) => a + b, 0);
66
- return {
67
- avg: Math.round(sum / latencies.length),
68
- min: Math.min(...latencies),
69
- max: Math.max(...latencies),
70
- };
71
- }
72
- /**
73
- * Formatuje czas w sekundach do formatu mm:ss
74
- */
75
- function formatTime(seconds) {
76
- const mins = Math.floor(seconds / 60);
77
- const secs = seconds % 60;
78
- return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
79
- }
80
- /**
81
- * Wyświetla status testu
82
- */
83
- function printStatus(metrics, elapsedSeconds, totalSeconds) {
84
- const latencyStats = calculateLatencyStats(metrics.latencies);
85
- const successRate = metrics.sent > 0 ? ((metrics.success / metrics.sent) * 100).toFixed(1) : '0.0';
86
- console.clear();
87
- console.log(`
88
- ╔═══════════════════════════════════════════════════════════════╗
89
- ║ RPC RESILIENCE TEST ║
90
- ╠═══════════════════════════════════════════════════════════════╣
91
- ║ Czas: ${formatTime(elapsedSeconds)} / ${formatTime(totalSeconds)} ║
92
- ║ Postęp: ${Math.round((elapsedSeconds / totalSeconds) * 100)}% ║
93
- ╠═══════════════════════════════════════════════════════════════╣
94
- ║ Wysłane: ${metrics.sent.toString().padStart(5)} ║
95
- ║ Sukces: ${metrics.success.toString().padStart(5)} (${successRate.padStart(5)}%) ║
96
- ║ Błędy: ${metrics.failed.toString().padStart(5)} ║
97
- ║ Timeout: ${metrics.timeouts.toString().padStart(5)} ║
98
- ╠═══════════════════════════════════════════════════════════════╣
99
- ║ Latency: avg=${latencyStats.avg.toString().padStart(4)}ms min=${latencyStats.min.toString().padStart(4)}ms max=${latencyStats.max.toString().padStart(4)}ms ║
100
- ╚═══════════════════════════════════════════════════════════════╝
101
- ${metrics.lastError ? `\nOstatni błąd: ${metrics.lastError}` : ''}
102
- `);
103
- }
104
- // ========== GŁÓWNA FUNKCJA DEMO ==========
105
- function runResilienceDemo() {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- var _a;
108
- const redisUrl = (_a = process.env.REDIS_URL) !== null && _a !== void 0 ? _a : 'redis://localhost:6379';
109
- console.log('RPC Resilience Demo - inicjalizacja...\n');
110
- console.log(`Konfiguracja:`);
111
- console.log(` - Czas testu: ${TEST_DURATION_S}s (${formatTime(TEST_DURATION_S)})`);
112
- console.log(` - Interwał: ${REQUEST_INTERVAL_MS}ms`);
113
- console.log(` - Timeout: ${REQUEST_TIMEOUT_MS}ms`);
114
- console.log(` - Redis: ${redisUrl}\n`);
115
- // Inicjalizacja CommandBus
116
- const commandBusConfig = new command_bus_config_1.default({
117
- redisUrl,
118
- logger: console,
119
- });
120
- const commandBus = new command_bus_1.default(commandBusConfig);
121
- // Metryki testu
122
- const metrics = {
123
- sent: 0,
124
- success: 0,
125
- failed: 0,
126
- timeouts: 0,
127
- latencies: [],
128
- };
129
- // Flaga do graceful shutdown
130
- let isRunning = true;
131
- // Handler dla Ctrl+C
132
- process.on('SIGINT', () => {
133
- console.log('\n\nOtrzymano SIGINT - zamykanie...');
134
- isRunning = false;
135
- });
136
- process.on('SIGTERM', () => {
137
- console.log('\n\nOtrzymano SIGTERM - zamykanie...');
138
- isRunning = false;
139
- });
140
- // ========== REJESTRACJA HANDLERA ==========
141
- yield commandBus.handle(ResilienceTestCommand, (command) => {
142
- return {
143
- sequenceNumber: command.__payload.sequenceNumber,
144
- processedAt: Date.now(),
145
- };
146
- });
147
- console.log('Handler zarejestrowany\n');
148
- console.log('Start testu za 3 sekundy...\n');
149
- yield sleep(3000);
150
- // ========== PĘTLA TESTOWA ==========
151
- const startTime = Date.now();
152
- const testDurationMs = TEST_DURATION_S * 1000;
153
- let sequenceNumber = 0;
154
- let lastStatusUpdate = 0;
155
- while (isRunning && Date.now() - startTime < testDurationMs) {
156
- sequenceNumber++;
157
- metrics.sent++;
158
- const requestStartTime = Date.now();
159
- try {
160
- const response = yield commandBus.call(new ResilienceTestCommand({ sequenceNumber, timestamp: requestStartTime }), REQUEST_TIMEOUT_MS);
161
- const latency = Date.now() - requestStartTime;
162
- metrics.success++;
163
- metrics.latencies.push(latency);
164
- // Utrzymuj tylko ostatnie 1000 pomiarów latency
165
- if (metrics.latencies.length > 1000) {
166
- metrics.latencies.shift();
167
- }
168
- // Sprawdź sekwencję odpowiedzi
169
- if (response.sequenceNumber !== sequenceNumber) {
170
- console.warn(`Niezgodność sekwencji: wysłano ${sequenceNumber}, otrzymano ${response.sequenceNumber}`);
171
- }
172
- }
173
- catch (error) {
174
- const errorMessage = error instanceof Error ? error.message : String(error);
175
- if (errorMessage.includes('timeout')) {
176
- metrics.timeouts++;
177
- metrics.lastError = `Timeout (seq: ${sequenceNumber})`;
178
- }
179
- else {
180
- metrics.failed++;
181
- metrics.lastError = `${errorMessage} (seq: ${sequenceNumber})`;
182
- }
183
- }
184
- // Aktualizuj status co sekundę
185
- const elapsedSeconds = Math.floor((Date.now() - startTime) / 1000);
186
- if (elapsedSeconds !== lastStatusUpdate) {
187
- lastStatusUpdate = elapsedSeconds;
188
- printStatus(metrics, elapsedSeconds, TEST_DURATION_S);
189
- }
190
- // Czekaj do następnego interwału
191
- const elapsed = Date.now() - requestStartTime;
192
- const waitTime = Math.max(0, REQUEST_INTERVAL_MS - elapsed);
193
- if (waitTime > 0 && isRunning) {
194
- yield sleep(waitTime);
195
- }
196
- }
197
- // ========== PODSUMOWANIE ==========
198
- console.log('\n');
199
- console.log('═══════════════════════════════════════════════════════════════');
200
- console.log(' PODSUMOWANIE TESTU ');
201
- console.log('═══════════════════════════════════════════════════════════════');
202
- const latencyStats = calculateLatencyStats(metrics.latencies);
203
- const totalDurationS = Math.round((Date.now() - startTime) / 1000);
204
- const successRate = metrics.sent > 0 ? ((metrics.success / metrics.sent) * 100).toFixed(2) : '0.00';
205
- console.log(`
206
- Czas trwania: ${formatTime(totalDurationS)}
207
- Wysłane requesty: ${metrics.sent}
208
- Sukces: ${metrics.success} (${successRate}%)
209
- Błędy: ${metrics.failed}
210
- Timeout: ${metrics.timeouts}
211
-
212
- Latency:
213
- - Średnia: ${latencyStats.avg}ms
214
- - Minimum: ${latencyStats.min}ms
215
- - Maksimum: ${latencyStats.max}ms
216
-
217
- ${metrics.lastError ? `Ostatni błąd: ${metrics.lastError}` : 'Brak błędów!'}
218
- `);
219
- // ========== ZAMKNIĘCIE ==========
220
- console.log('Zamykanie połączeń...');
221
- yield commandBus.close();
222
- console.log('Demo zakończone.\n');
223
- process.exit(metrics.failed + metrics.timeouts > 0 ? 1 : 0);
224
- });
225
- }
226
- // ========== URUCHOMIENIE ==========
227
- if (require.main === module) {
228
- runResilienceDemo().catch((error) => {
229
- console.error('Fatal error:', error);
230
- process.exit(1);
231
- });
232
- }
233
- //# sourceMappingURL=rpc-resilience.demo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-resilience.demo.js","sourceRoot":"","sources":["../../src/examples/rpc-resilience.demo.ts"],"names":[],"mappings":"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"}
Binary file
@@ -1,54 +0,0 @@
1
- import type { ConnectionOptions } from 'bullmq';
2
- import type { ILogger } from '../types';
3
- import type { LogLevelType } from '../logging/log-level';
4
- /**
5
- * Bazowa klasa konfiguracji dla EventBus i CommandBus
6
- */
7
- export default class BaseConfig {
8
- /**
9
- * URL połączenia do DragonflyDB/Redis
10
- */
11
- redisUrl: string;
12
- /**
13
- * Poziom logowania (debug, log, warn, error)
14
- * Domyślnie 'log' - loguje log, warn, error (bez debug)
15
- */
16
- logLevel: LogLevelType;
17
- /**
18
- * Logger do użycia (domyślnie wbudowany Logger z console)
19
- */
20
- logger: ILogger;
21
- /**
22
- * Opóźnienie między próbami reconnect do Redis w milisekundach
23
- * Domyślnie 5000ms (5 sekund)
24
- */
25
- redisRetryDelay: number;
26
- /**
27
- * Maksymalna liczba prób reconnect do Redis
28
- * 0 = nieskończoność (domyślnie)
29
- */
30
- redisMaxRetries: number;
31
- constructor(params?: Partial<BaseConfig>);
32
- /**
33
- * Zwraca opcje połączenia Redis na podstawie URL
34
- * Zawiera retryStrategy z konfiguracją reconnect
35
- */
36
- getRedisOptions(): ConnectionOptions;
37
- /**
38
- * Zwraca opcje połączenia Redis dla Worker'ów BullMQ
39
- * Worker'y wymagają maxRetriesPerRequest: null dla poprawnego działania blocking operations
40
- */
41
- getRedisOptionsForWorker(): ConnectionOptions;
42
- /**
43
- * Waliduje konfigurację
44
- */
45
- protected validate(): void;
46
- /**
47
- * Parsuje string na liczbę z wartością domyślną
48
- */
49
- protected parseIntWithDefault(value: string | undefined, defaultValue: number): number;
50
- /**
51
- * Parsuje string na boolean z wartością domyślną
52
- */
53
- protected parseBoolWithDefault(value: string | undefined, defaultValue: boolean): boolean;
54
- }
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const logger_1 = require("../logging/logger");
4
- /**
5
- * Bazowa klasa konfiguracji dla EventBus i CommandBus
6
- */
7
- class BaseConfig {
8
- constructor(params) {
9
- var _a, _b;
10
- /**
11
- * URL połączenia do DragonflyDB/Redis
12
- */
13
- this.redisUrl = (_a = process.env.REDIS_URL) !== null && _a !== void 0 ? _a : 'redis://localhost:6379';
14
- // Ustaw logLevel przed utworzeniem loggera
15
- const initialLogLevel = (_b = process.env.LOG_LEVEL) !== null && _b !== void 0 ? _b : 'log';
16
- this.logLevel = initialLogLevel;
17
- // Utwórz logger z odpowiednim poziomem
18
- this.logger = new logger_1.Logger(console, this.logLevel);
19
- // Ustaw opcje reconnect Redis
20
- this.redisRetryDelay = this.parseIntWithDefault(process.env.REDIS_RETRY_DELAY, 5000);
21
- this.redisMaxRetries = this.parseIntWithDefault(process.env.REDIS_MAX_RETRIES, 0);
22
- if (params) {
23
- // Zapamię tај logLevel przed merge params
24
- const originalLogLevel = this.logLevel;
25
- Object.keys(params).forEach((key) => {
26
- this[key] = params[key];
27
- });
28
- // Jeśli logLevel został nadpisany, utwórz nowy logger
29
- // Porównujemy z oryginalnym logLevel (przed merge)
30
- if (params.logLevel && params.logLevel !== originalLogLevel) {
31
- this.logger = new logger_1.Logger(console, params.logLevel);
32
- }
33
- }
34
- // Walidacja konfiguracji
35
- this.validate();
36
- }
37
- /**
38
- * Zwraca opcje połączenia Redis na podstawie URL
39
- * Zawiera retryStrategy z konfiguracją reconnect
40
- */
41
- getRedisOptions() {
42
- try {
43
- const url = new URL(this.redisUrl);
44
- // Przechwytujemy wartości dla closure w retryStrategy
45
- const retryDelay = this.redisRetryDelay;
46
- const maxRetries = this.redisMaxRetries;
47
- const options = {
48
- host: url.hostname,
49
- port: parseInt(url.port, 10) || 6379,
50
- retryStrategy: (times) => {
51
- // Max retries (0 = nieskończoność)
52
- if (maxRetries > 0 && times > maxRetries) {
53
- return null; // Stop reconnecting
54
- }
55
- return retryDelay;
56
- },
57
- };
58
- if (url.username) {
59
- options.username = url.username;
60
- }
61
- if (url.password) {
62
- options.password = url.password;
63
- }
64
- if (url.pathname && url.pathname.length > 1) {
65
- const db = parseInt(url.pathname.substring(1), 10);
66
- if (!isNaN(db)) {
67
- options.db = db;
68
- }
69
- }
70
- return options;
71
- }
72
- catch (_a) {
73
- throw new Error('Invalid Redis URL');
74
- }
75
- }
76
- /**
77
- * Zwraca opcje połączenia Redis dla Worker'ów BullMQ
78
- * Worker'y wymagają maxRetriesPerRequest: null dla poprawnego działania blocking operations
79
- */
80
- getRedisOptionsForWorker() {
81
- const options = this.getRedisOptions();
82
- return Object.assign(Object.assign({}, options), { maxRetriesPerRequest: null });
83
- }
84
- /**
85
- * Waliduje konfigurację
86
- */
87
- validate() {
88
- try {
89
- new URL(this.redisUrl);
90
- }
91
- catch (_a) {
92
- throw new Error('Invalid Redis URL');
93
- }
94
- }
95
- /**
96
- * Parsuje string na liczbę z wartością domyślną
97
- */
98
- parseIntWithDefault(value, defaultValue) {
99
- if (!value)
100
- return defaultValue;
101
- const parsed = parseInt(value, 10);
102
- return isNaN(parsed) ? defaultValue : parsed;
103
- }
104
- /**
105
- * Parsuje string na boolean z wartością domyślną
106
- */
107
- parseBoolWithDefault(value, defaultValue) {
108
- if (!value)
109
- return defaultValue;
110
- return value.toLowerCase() === 'true' || value === '1';
111
- }
112
- }
113
- exports.default = BaseConfig;
114
- //# sourceMappingURL=base-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-config.js","sourceRoot":"","sources":["../../../src/shared/config/base-config.ts"],"names":[],"mappings":"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"}
@@ -1,204 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const base_config_1 = __importDefault(require("./base-config"));
7
- const logger_1 = require("../logging/logger");
8
- describe('BaseConfig', () => {
9
- const originalEnv = process.env;
10
- beforeEach(() => {
11
- // Reset zmiennych środowiskowych
12
- process.env = Object.assign({}, originalEnv);
13
- });
14
- afterEach(() => {
15
- process.env = originalEnv;
16
- });
17
- describe('konstruktor', () => {
18
- it('powinno używać domyślnych wartości', () => {
19
- // When
20
- const config = new base_config_1.default();
21
- // Then
22
- expect(config.redisUrl).toBe('redis://localhost:6379');
23
- expect(config.logger).toBeInstanceOf(logger_1.Logger);
24
- expect(config.logLevel).toBe('log');
25
- expect(config.redisRetryDelay).toBe(5000);
26
- expect(config.redisMaxRetries).toBe(0);
27
- });
28
- it('powinno wczytać konfigurację ze zmiennych środowiskowych', () => {
29
- // Given
30
- process.env.REDIS_URL = 'redis://dragonfly:6380';
31
- // When
32
- const config = new base_config_1.default();
33
- // Then
34
- expect(config.redisUrl).toBe('redis://dragonfly:6380');
35
- });
36
- it('powinno nadpisać wartości przez parametry konstruktora', () => {
37
- // Given
38
- const customLogger = {
39
- log: jest.fn(),
40
- error: jest.fn(),
41
- warn: jest.fn(),
42
- debug: jest.fn(),
43
- };
44
- // When
45
- const config = new base_config_1.default({
46
- redisUrl: 'redis://custom:6379',
47
- logger: customLogger,
48
- });
49
- // Then
50
- expect(config.redisUrl).toBe('redis://custom:6379');
51
- expect(config.logger).toBe(customLogger);
52
- });
53
- });
54
- describe('getRedisOptions', () => {
55
- it('powinno zwrócić opcje połączenia Redis z URL', () => {
56
- // Given
57
- const config = new base_config_1.default({
58
- redisUrl: 'redis://user:pass@dragonfly.example.com:6380/0',
59
- });
60
- // When
61
- const options = config.getRedisOptions();
62
- // Then
63
- expect(options.host).toBe('dragonfly.example.com');
64
- expect(options.port).toBe(6380);
65
- expect(options.username).toBe('user');
66
- expect(options.password).toBe('pass');
67
- expect(options.db).toBe(0);
68
- expect(options.retryStrategy).toBeInstanceOf(Function);
69
- });
70
- it('powinno obsłużyć URL bez autoryzacji', () => {
71
- // Given
72
- const config = new base_config_1.default({
73
- redisUrl: 'redis://localhost:6379',
74
- });
75
- // When
76
- const options = config.getRedisOptions();
77
- // Then
78
- expect(options.host).toBe('localhost');
79
- expect(options.port).toBe(6379);
80
- expect(options.username).toBeUndefined();
81
- expect(options.password).toBeUndefined();
82
- expect(options.retryStrategy).toBeInstanceOf(Function);
83
- });
84
- it('powinno obsłużyć URL z bazą danych ale bez autoryzacji', () => {
85
- // Given
86
- const config = new base_config_1.default({
87
- redisUrl: 'redis://localhost:6379/2',
88
- });
89
- // When
90
- const options = config.getRedisOptions();
91
- // Then
92
- expect(options.host).toBe('localhost');
93
- expect(options.port).toBe(6379);
94
- expect(options.db).toBe(2);
95
- expect(options.retryStrategy).toBeInstanceOf(Function);
96
- });
97
- it('powinno obsłużyć nieprawidłowy URL podczas tworzenia konfiguracji', () => {
98
- // When & Then
99
- expect(() => new base_config_1.default({
100
- redisUrl: 'invalid-url',
101
- })).toThrow('Invalid Redis URL');
102
- });
103
- });
104
- describe('retryStrategy', () => {
105
- it('powinno używać domyślnego opóźnienia 5000ms', () => {
106
- // Given
107
- const config = new base_config_1.default();
108
- const options = config.getRedisOptions();
109
- const retryStrategy = options.retryStrategy;
110
- // When
111
- const delay = retryStrategy(1);
112
- // Then
113
- expect(delay).toBe(5000);
114
- });
115
- it('powinno używać konfigurowalnego opóźnienia z env', () => {
116
- // Given
117
- process.env.REDIS_RETRY_DELAY = '10000';
118
- const config = new base_config_1.default();
119
- const options = config.getRedisOptions();
120
- const retryStrategy = options.retryStrategy;
121
- // When
122
- const delay = retryStrategy(1);
123
- // Then
124
- expect(delay).toBe(10000);
125
- });
126
- it('powinno używać konfigurowalnego opóźnienia z parametrów', () => {
127
- // Given
128
- const config = new base_config_1.default({
129
- redisRetryDelay: 3000,
130
- });
131
- const options = config.getRedisOptions();
132
- const retryStrategy = options.retryStrategy;
133
- // When
134
- const delay = retryStrategy(1);
135
- // Then
136
- expect(delay).toBe(3000);
137
- });
138
- it('powinno zwracać stałe opóźnienie niezależnie od liczby prób', () => {
139
- // Given
140
- const config = new base_config_1.default({
141
- redisRetryDelay: 5000,
142
- });
143
- const options = config.getRedisOptions();
144
- const retryStrategy = options.retryStrategy;
145
- // When & Then - stałe 5000ms dla wszystkich prób
146
- expect(retryStrategy(1)).toBe(5000);
147
- expect(retryStrategy(5)).toBe(5000);
148
- expect(retryStrategy(10)).toBe(5000);
149
- expect(retryStrategy(100)).toBe(5000);
150
- });
151
- it('powinno zatrzymać reconnect po przekroczeniu max retries', () => {
152
- // Given
153
- const config = new base_config_1.default({
154
- redisRetryDelay: 5000,
155
- redisMaxRetries: 3,
156
- });
157
- const options = config.getRedisOptions();
158
- const retryStrategy = options.retryStrategy;
159
- // When & Then
160
- expect(retryStrategy(1)).toBe(5000);
161
- expect(retryStrategy(2)).toBe(5000);
162
- expect(retryStrategy(3)).toBe(5000);
163
- expect(retryStrategy(4)).toBeNull(); // Przekroczono max
164
- });
165
- it('powinno używać konfigurowalnego max retries z env', () => {
166
- // Given
167
- process.env.REDIS_MAX_RETRIES = '5';
168
- const config = new base_config_1.default();
169
- const options = config.getRedisOptions();
170
- const retryStrategy = options.retryStrategy;
171
- // When & Then
172
- expect(retryStrategy(5)).toBe(5000);
173
- expect(retryStrategy(6)).toBeNull(); // Przekroczono max
174
- });
175
- it('powinno kontynuować reconnect w nieskończoność gdy max retries = 0', () => {
176
- // Given
177
- const config = new base_config_1.default({
178
- redisRetryDelay: 5000,
179
- redisMaxRetries: 0, // 0 = nieskończoność
180
- });
181
- const options = config.getRedisOptions();
182
- const retryStrategy = options.retryStrategy;
183
- // When & Then - nigdy nie zwraca null
184
- expect(retryStrategy(1)).toBe(5000);
185
- expect(retryStrategy(100)).toBe(5000);
186
- expect(retryStrategy(1000)).toBe(5000);
187
- });
188
- });
189
- describe('walidacja', () => {
190
- it('powinno zwalidować konfigurację przy tworzeniu', () => {
191
- // Given
192
- process.env.REDIS_URL = 'redis://valid:6379';
193
- // When & Then
194
- expect(() => new base_config_1.default()).not.toThrow();
195
- });
196
- it('powinno rzucić błąd przy nieprawidłowym URL Redis', () => {
197
- // Given
198
- process.env.REDIS_URL = 'not-a-url';
199
- // When & Then
200
- expect(() => new base_config_1.default()).toThrow('Invalid Redis URL');
201
- });
202
- });
203
- });
204
- //# sourceMappingURL=base-config.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-config.spec.js","sourceRoot":"","sources":["../../../src/shared/config/base-config.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export { default as BaseConfig } from './base-config';
@@ -1,9 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BaseConfig = void 0;
7
- var base_config_1 = require("./base-config");
8
- Object.defineProperty(exports, "BaseConfig", { enumerable: true, get: function () { return __importDefault(base_config_1).default; } });
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/config/index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAsD;AAA7C,0HAAA,OAAO,OAAc"}