pp-command-bus 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -8
- package/dist/command-bus/command-bus.spec.js +4 -0
- package/dist/command-bus/command-bus.spec.js.map +1 -1
- package/dist/command-bus/index.d.ts +10 -0
- package/dist/command-bus/index.js +53 -11
- package/dist/command-bus/index.js.map +1 -1
- package/dist/command-bus/job/job-processor.d.ts +3 -1
- package/dist/command-bus/job/job-processor.js +17 -1
- package/dist/command-bus/job/job-processor.js.map +1 -1
- package/dist/command-bus/job/job-processor.spec.js +142 -1
- package/dist/command-bus/job/job-processor.spec.js.map +1 -1
- package/dist/command-bus/rpc/index.d.ts +3 -0
- package/dist/command-bus/rpc/index.js +4 -1
- package/dist/command-bus/rpc/index.js.map +1 -1
- package/dist/command-bus/rpc/rpc-coordinator.d.ts +27 -1
- package/dist/command-bus/rpc/rpc-coordinator.js +131 -3
- package/dist/command-bus/rpc/rpc-coordinator.js.map +1 -1
- package/dist/command-bus/rpc/rpc-coordinator.spec.js +228 -21
- package/dist/command-bus/rpc/rpc-coordinator.spec.js.map +1 -1
- package/dist/command-bus/rpc/rpc-job-cancellation.service.d.ts +82 -0
- package/dist/command-bus/rpc/rpc-job-cancellation.service.js +180 -0
- package/dist/command-bus/rpc/rpc-job-cancellation.service.js.map +1 -0
- package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.d.ts +1 -0
- package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js +286 -0
- package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js.map +1 -0
- package/dist/command-bus/types/index.d.ts +4 -0
- package/dist/command-bus/worker/worker-orchestrator.js +3 -1
- package/dist/command-bus/worker/worker-orchestrator.js.map +1 -1
- package/dist/examples/rpc-resilience.demo.d.ts +11 -0
- package/dist/examples/rpc-resilience.demo.js +235 -0
- package/dist/examples/rpc-resilience.demo.js.map +1 -0
- package/dist/pp-command-bus-1.4.0.tgz +0 -0
- package/dist/shared/config/base-config.d.ts +11 -0
- package/dist/shared/config/base-config.js +14 -0
- package/dist/shared/config/base-config.js.map +1 -1
- package/dist/shared/config/base-config.spec.js +102 -16
- package/dist/shared/config/base-config.spec.js.map +1 -1
- package/dist/shared/redis/index.d.ts +6 -0
- package/dist/shared/redis/index.js +15 -0
- package/dist/shared/redis/index.js.map +1 -0
- package/dist/shared/redis/redis-connection-factory.d.ts +66 -0
- package/dist/shared/redis/redis-connection-factory.js +113 -0
- package/dist/shared/redis/redis-connection-factory.js.map +1 -0
- package/dist/shared/redis/redis-error-formatter.d.ts +30 -0
- package/dist/shared/redis/redis-error-formatter.js +56 -0
- package/dist/shared/redis/redis-error-formatter.js.map +1 -0
- package/package.json +1 -1
- package/dist/pp-command-bus-1.3.1.tgz +0 -0
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ Distributed Command Bus library supporting RPC and job queuing with BullMQ for R
|
|
|
18
18
|
- ✅ **TypeScript** - pełne wsparcie typów i strict mode
|
|
19
19
|
- ✅ **Memory leak protection** - zaawansowana diagnostyka i cleanup
|
|
20
20
|
- ✅ **Command logging** - opcjonalne logowanie komend do plików JSONL
|
|
21
|
+
- ✅ **RPC Job Cancellation** - automatyczne usuwanie niepodjętych jobów RPC przy timeout
|
|
21
22
|
- ✅ **Modularna architektura** - komponenty zgodne z zasadami SOLID, DDD i SRP
|
|
22
23
|
|
|
23
24
|
## Architektura Systemu
|
|
@@ -67,6 +68,7 @@ Distributed Command Bus library supporting RPC and job queuing with BullMQ for R
|
|
|
67
68
|
- **Shared Subscriber** - jeden subscriber dla wszystkich RPC calls (pattern matching)
|
|
68
69
|
- **Process Isolation** - UUID procesu Node.js dla izolacji odpowiedzi między procesami
|
|
69
70
|
- **Timeout Management** - automatyczne cleanup po timeout
|
|
71
|
+
- **Job Cancellation** - usuwanie niepodjętych jobów przy timeout (optymalizacja zasobów)
|
|
70
72
|
- **Multiplexing** - routing odpowiedzi do odpowiednich promises
|
|
71
73
|
- **Kanały**: `rpc:response:{processId}:{correlationId}`
|
|
72
74
|
|
|
@@ -83,11 +85,13 @@ Distributed Command Bus library supporting RPC and job queuing with BullMQ for R
|
|
|
83
85
|
- **Odpowiedzialność**: Wykonywanie handlerów komend i obsługa odpowiedzi RPC
|
|
84
86
|
- **Flow przetwarzania**:
|
|
85
87
|
1. Dekompresja payloadu (jeśli skompresowany)
|
|
86
|
-
2.
|
|
87
|
-
3.
|
|
88
|
-
4.
|
|
89
|
-
5.
|
|
88
|
+
2. Sprawdzenie flagi cancellation (pomijanie anulowanych RPC)
|
|
89
|
+
3. Rekonstrukcja obiektów Date
|
|
90
|
+
4. Opcjonalne logowanie komendy
|
|
91
|
+
5. Wykonanie handlera
|
|
92
|
+
6. Wysłanie odpowiedzi RPC przez Pub/Sub (jeśli RPC)
|
|
90
93
|
- **Kompresja odpowiedzi**: automatyczna kompresja przez PayloadCompressionService
|
|
94
|
+
- **RPC Cancellation**: pomijanie jobów oznaczonych jako anulowane (timeout)
|
|
91
95
|
|
|
92
96
|
#### 5. **QueueManager** (zarządzanie kolejkami)
|
|
93
97
|
- **Odpowiedzialność**: Cache kolejek BullMQ dla optymalizacji pamięci
|
|
@@ -106,13 +110,24 @@ Distributed Command Bus library supporting RPC and job queuing with BullMQ for R
|
|
|
106
110
|
- `decompress(data, compressed)` - generyczna dekompresja
|
|
107
111
|
- **Współdzielony serwis**: jedna instancja dla całego CommandBus
|
|
108
112
|
|
|
109
|
-
#### 7. **
|
|
113
|
+
#### 7. **RpcJobCancellationService** (anulowanie jobów RPC)
|
|
114
|
+
- **Odpowiedzialność**: Zarządzanie anulowaniem niepodjętych jobów RPC przy timeout
|
|
115
|
+
- **Kluczowe funkcje**:
|
|
116
|
+
- **markAsCancelled(correlationId)** - oznacza job jako anulowany w Redis
|
|
117
|
+
- **isCancelled(correlationId)** - sprawdza flagę cancellation
|
|
118
|
+
- **clearCancellation(correlationId)** - usuwa flagę po przetworzeniu/usunięciu
|
|
119
|
+
- **tryRemoveJob(jobId, queueName, callback)** - próba usunięcia joba z kolejki
|
|
120
|
+
- **TTL kluczy Redis**: 24 godziny (automatyczne wygaśnięcie)
|
|
121
|
+
- **Graceful degradation**: błędy Redis nie blokują przetwarzania (zwraca false)
|
|
122
|
+
- **Klucze Redis**: `rpc:cancelled:{correlationId}`
|
|
123
|
+
|
|
124
|
+
#### 8. **CommandLogger** (opcjonalne logowanie)
|
|
110
125
|
- **Odpowiedzialność**: Persystencja komend do plików JSONL
|
|
111
126
|
- **Format**: `{timestamp}.jsonl` - rotacja co godzinę
|
|
112
127
|
- **Zawartość**: pełny payload komendy z metadanymi
|
|
113
128
|
- **Aktywacja**: przez ENV `COMMAND_BUS_LOG=./command-logs`
|
|
114
129
|
|
|
115
|
-
####
|
|
130
|
+
#### 9. **AutoConfigOptimizer** (auto-optymalizacja)
|
|
116
131
|
- **Odpowiedzialność**: Obliczanie optymalnego concurrency na podstawie zasobów systemowych
|
|
117
132
|
- **Heurystyka**:
|
|
118
133
|
- I/O-heavy workload (Redis/BullMQ)
|
|
@@ -120,6 +135,20 @@ Distributed Command Bus library supporting RPC and job queuing with BullMQ for R
|
|
|
120
135
|
- Zakładane 512MB RAM per worker
|
|
121
136
|
- **Aktywacja**: domyślnie włączone (ENV `COMMAND_BUS_AUTO_OPTIMIZE=false` wyłącza)
|
|
122
137
|
|
|
138
|
+
#### 10. **RedisConnectionFactory** (fabryka połączeń Redis)
|
|
139
|
+
- **Odpowiedzialność**: Tworzenie połączeń Redis z wbudowaną obsługą błędów i eventów
|
|
140
|
+
- **Zgodność z SRP**: CommandBus nie zarządza bezpośrednio połączeniami
|
|
141
|
+
- **Kluczowe funkcje**:
|
|
142
|
+
- `create(options, name)` - tworzy połączenie z pełną obsługą eventów
|
|
143
|
+
- `createForWorker(options, name)` - dodaje `maxRetriesPerRequest: null` dla BullMQ
|
|
144
|
+
- Obsługa eventów: `error`, `close`, `reconnecting`, `connect`, `ready`
|
|
145
|
+
- Formatowanie błędów `AggregateError` (Node.js dual-stack IPv4/IPv6)
|
|
146
|
+
- **Event Handlers**:
|
|
147
|
+
- `on('error')` - logowanie błędów połączenia (zapobiega `Unhandled error event`)
|
|
148
|
+
- `on('close')` - informacja o zamknięciu połączenia
|
|
149
|
+
- `on('reconnecting')` - informacja o ponownym łączeniu
|
|
150
|
+
- `on('connect')` / `on('ready')` - potwierdzenie nawiązania połączenia
|
|
151
|
+
|
|
123
152
|
### Flow Przepływu Danych
|
|
124
153
|
|
|
125
154
|
#### Flow 1: dispatch() - Fire-and-forget
|
|
@@ -293,6 +322,8 @@ Biblioteka wspiera konfigurację poprzez zmienne środowiskowe z prefiksem `COMM
|
|
|
293
322
|
| Zmienna | Typ | Wartość Domyślna | Opis |
|
|
294
323
|
|---------|-----|------------------|------|
|
|
295
324
|
| `REDIS_URL` | string | `redis://localhost:6379` | URL połączenia Redis/DragonflyDB (wspiera username, password, db) |
|
|
325
|
+
| `REDIS_RETRY_DELAY` | number | `5000` | Opóźnienie między próbami reconnect do Redis w milisekundach |
|
|
326
|
+
| `REDIS_MAX_RETRIES` | number | `0` | Maksymalna liczba prób reconnect (0 = nieskończoność) |
|
|
296
327
|
| `LOG_LEVEL` | enum | `log` | Poziom logowania: `debug`, `log`, `warn`, `error` |
|
|
297
328
|
| `COMMAND_BUS_CONCURRENCY` | number | `1` (lub auto) | Liczba równoległych workerów do przetwarzania komend |
|
|
298
329
|
| `COMMAND_BUS_MAX_ATTEMPTS` | number | `1` | Maksymalna liczba prób przetworzenia zadania |
|
|
@@ -318,6 +349,10 @@ Dla kompatybilności wstecznej obsługiwane są również prefiksy `EVENT_BUS_*`
|
|
|
318
349
|
# Połączenie Redis
|
|
319
350
|
REDIS_URL=redis://username:password@localhost:6379/0
|
|
320
351
|
|
|
352
|
+
# Strategia reconnect Redis (stałe opóźnienie)
|
|
353
|
+
REDIS_RETRY_DELAY=5000 # 5 sekund między próbami (domyślnie)
|
|
354
|
+
REDIS_MAX_RETRIES=0 # 0 = nieskończoność (domyślnie)
|
|
355
|
+
|
|
321
356
|
# Poziom logowania
|
|
322
357
|
LOG_LEVEL=log # debug | log | warn | error
|
|
323
358
|
|
|
@@ -795,6 +830,45 @@ const config = new CommandBusConfig({
|
|
|
795
830
|
- Debugging produkcyjnych problemów
|
|
796
831
|
- Analiza przepływu komend
|
|
797
832
|
|
|
833
|
+
### 6. RPC Job Cancellation
|
|
834
|
+
|
|
835
|
+
Automatyczne usuwanie niepodjętych jobów RPC przy timeout:
|
|
836
|
+
|
|
837
|
+
```
|
|
838
|
+
RPC Timeout Flow:
|
|
839
|
+
|
|
840
|
+
User Code RpcCoordinator Redis JobProcessor
|
|
841
|
+
│ │ │ │
|
|
842
|
+
│── call(cmd) ─────▶│ │ │
|
|
843
|
+
│ │── registerCall ──▶│ │
|
|
844
|
+
│ │── queue.add ─────▶│ │
|
|
845
|
+
│ │ │ │
|
|
846
|
+
│ [timeout] │ │ │
|
|
847
|
+
│ │ │ │
|
|
848
|
+
│ │── markCancelled ─▶│ SET rpc:cancelled:xxx
|
|
849
|
+
│ │── tryRemoveJob ──▶│ (próba usunięcia)
|
|
850
|
+
│◀── Error ─────────│ │ │
|
|
851
|
+
│ │ │ │
|
|
852
|
+
│ │ │ [job picked up] │
|
|
853
|
+
│ │ │──────────────────▶│
|
|
854
|
+
│ │ │ │── isCancelled?
|
|
855
|
+
│ │ │◀──────────────────│ → true
|
|
856
|
+
│ │ │ │── SKIP handler
|
|
857
|
+
│ │ │ │── clearCancellation
|
|
858
|
+
```
|
|
859
|
+
|
|
860
|
+
**Kluczowe cechy**:
|
|
861
|
+
- **Dwufazowe anulowanie**: Flaga Redis + próba usunięcia joba z kolejki
|
|
862
|
+
- **Graceful degradation**: Błędy Redis nie blokują przetwarzania
|
|
863
|
+
- **TTL 24h**: Automatyczne wygaśnięcie kluczy cancellation
|
|
864
|
+
- **Aktywne czyszczenie**: Klucze usuwane po przetworzeniu lub usunięciu joba
|
|
865
|
+
- **Kompatybilność wsteczna**: Funkcjonalność jest opcjonalna
|
|
866
|
+
|
|
867
|
+
**Korzyści**:
|
|
868
|
+
- Oszczędność zasobów - nieprzetworzone joby nie obciążają workerów
|
|
869
|
+
- Brak efektów ubocznych - handler nie wykonuje się dla timeout'owanych RPC
|
|
870
|
+
- Lepsza diagnostyka - logi pokazują pominięte joby
|
|
871
|
+
|
|
798
872
|
## Best Practices
|
|
799
873
|
|
|
800
874
|
### 1. Używaj TypeScript
|
|
@@ -1023,7 +1097,8 @@ src/
|
|
|
1023
1097
|
│ │ └── queue-manager.ts
|
|
1024
1098
|
│ ├── rpc/ # RPC coordination
|
|
1025
1099
|
│ │ ├── rpc-coordinator.ts
|
|
1026
|
-
│ │
|
|
1100
|
+
│ │ ├── payload-compression.service.ts
|
|
1101
|
+
│ │ └── rpc-job-cancellation.service.ts # Anulowanie jobów RPC przy timeout
|
|
1027
1102
|
│ ├── worker/ # Worker orchestration
|
|
1028
1103
|
│ │ ├── worker-orchestrator.ts
|
|
1029
1104
|
│ │ ├── worker-benchmark.ts
|
|
@@ -1038,11 +1113,16 @@ src/
|
|
|
1038
1113
|
│ ├── logging/ # Logger wrapper z poziomami
|
|
1039
1114
|
│ │ ├── logger.ts
|
|
1040
1115
|
│ │ └── log-level.ts
|
|
1116
|
+
│ ├── redis/ # Fabryka połączeń Redis (SRP)
|
|
1117
|
+
│ │ ├── redis-connection-factory.ts # Tworzenie połączeń z event handlers
|
|
1118
|
+
│ │ ├── redis-error-formatter.ts # Formatowanie błędów (AggregateError)
|
|
1119
|
+
│ │ └── index.ts # Eksporty modułu
|
|
1041
1120
|
│ └── types.ts # Współdzielone typy
|
|
1042
1121
|
├── examples/ # Przykłady użycia
|
|
1043
1122
|
│ ├── rpc.demo.ts # Demo RPC calls
|
|
1044
1123
|
│ ├── rpc-throughput.demo.ts # Demo wydajności RPC
|
|
1045
|
-
│
|
|
1124
|
+
│ ├── rpc-compression.demo.ts # Demo kompresji
|
|
1125
|
+
│ └── rpc-resilience.demo.ts # Demo reconnect/failover (5 min test)
|
|
1046
1126
|
└── index.ts # Główny export pakietu
|
|
1047
1127
|
```
|
|
1048
1128
|
|
|
@@ -1120,6 +1200,7 @@ Szczegółowa dokumentacja architektury systemu, wzorców projektowych i zasad S
|
|
|
1120
1200
|
- **WorkerOrchestrator** - orkiestracja workerów, dynamiczne concurrency, benchmark
|
|
1121
1201
|
- **JobProcessor** - przetwarzanie jobów i wykonanie handlerów
|
|
1122
1202
|
- **RpcCoordinator** - zarządzanie wywołaniami RPC przez Redis Pub/Sub
|
|
1203
|
+
- **RpcJobCancellationService** - anulowanie niepodjętych jobów RPC przy timeout
|
|
1123
1204
|
- **JobOptionsBuilder** - konfiguracja opcji dla jobów BullMQ
|
|
1124
1205
|
- **CommandLogger** - persystencja komend do plików JSONL
|
|
1125
1206
|
- **PayloadCompressionService** - automatyczna kompresja gzip
|
|
@@ -54,6 +54,10 @@ jest.mock('ioredis', () => {
|
|
|
54
54
|
del: jest.fn().mockResolvedValue(1),
|
|
55
55
|
duplicate: jest.fn().mockReturnValue(mockSubscriber),
|
|
56
56
|
publish: jest.fn().mockResolvedValue(1),
|
|
57
|
+
on: jest.fn().mockReturnThis(),
|
|
58
|
+
once: jest.fn().mockReturnThis(),
|
|
59
|
+
off: jest.fn().mockReturnThis(),
|
|
60
|
+
removeAllListeners: jest.fn().mockReturnThis(),
|
|
57
61
|
})),
|
|
58
62
|
};
|
|
59
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-bus.spec.js","sourceRoot":"","sources":["../../src/command-bus/command-bus.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-bus.spec.js","sourceRoot":"","sources":["../../src/command-bus/command-bus.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,mCAAuC;AAEvC,oDAAiC;AACjC,qFAA2D;AAC3D,wDAAgC;AAEhC,cAAc;AACd,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEpB,eAAe;AACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;IACxB,MAAM,cAAc,GAAG;QACrB,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACjD,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACnD,UAAU,EAAE,IAAI;aACb,EAAE,EAAE;aACJ,kBAAkB,CACjB,CAAC,QAAgB,EAAE,QAAqD,EAAE,EAAE;YAC1E,uDAAuD;YACvD,IAAI,QAAQ,EAAE,CAAC;gBACb,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CACF;QACH,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACpD,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QAC9B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,KAAa,EAAE,OAAqC,EAAE,EAAE;YAC1F,oDAAoD;YACpD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACtB,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC;QACF,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QAC/B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QAC9C,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;KAC7C,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC5C,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACzC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACtC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC;YAC9C,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC;YACpD,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;YAC9B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;YAChC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;YAC/B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;SAC/C,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,WAAY,SAAQ,iBAAO;IAC/B,YAAmC,IAAY;QAC7C,KAAK,EAAE,CAAC;QADyB,SAAI,GAAJ,IAAI,CAAQ;IAE/C,CAAC;CACF;AAED,6BAA6B;AAC7B,MAAM,kBAAmB,SAAQ,iBAAO;IACtC,YAAmC,KAAa;QAC9C,KAAK,EAAE,CAAC;QADyB,UAAK,GAAL,KAAK,CAAQ;IAEhD,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,gBAAiB,SAAQ,iBAAO;IACpC,YACkB,CAAS,EACT,CAAS,EACT,SAAiB;QAEjC,KAAK,EAAE,CAAC;QAJQ,MAAC,GAAD,CAAC,CAAQ;QACT,MAAC,GAAD,CAAC,CAAQ;QACT,cAAS,GAAT,SAAS,CAAQ;IAGnC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,yBAAyB,GAAG,GAAkB,EAAE,CACpD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAErD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,UAAsB,CAAC;IAC3B,IAAI,MAAwB,CAAC;IAC7B,IAAI,SAA6B,CAAC;IAClC,IAAI,UAA+B,CAAC;IAEpC,UAAU,CAAC,GAAG,EAAE;QACd,0BAA0B;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,uBAAuB;QACvB,MAAM,GAAG,IAAI,4BAAgB,CAAC;YAC5B,QAAQ,EAAE,wBAAwB;YAClC,WAAW,EAAE,CAAC;SACf,CAAC,CAAC;QAEH,aAAa;QACb,SAAS,GAAG;YACV,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;YACvD,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC7C,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SAClB,CAAC;QAEnC,cAAc;QACd,UAAU,GAAG;YACX,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC7C,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;YAC9B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;SACb,CAAC;QAEpC,qBAAqB;QACpB,cAAwC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7E,eAA0C,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;QAEjF,UAAU,GAAG,IAAI,eAAU,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAS,EAAE;QACnB,qDAAqD;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,iEAAiE;QACjE,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,iEAAiE;YACjE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yDAAyD;YACzD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAClF,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAA,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,kCAAkC,EAAE,GAAS,EAAE;YAChD,QAAQ;YACR,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;YAE7C,OAAO;YACP,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEnC,8DAA8D;YAC9D,MAAM,CAAC,cAAK,CAAC,CAAC,oBAAoB,CAChC,eAAe,EACf,MAAM,CAAC,gBAAgB,CAAC;gBACtB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;aAC/B,CAAC,CACH,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,oBAAoB,CACxC,aAAa,EACb,MAAM,CAAC,gBAAgB,CAAC;gBACtB,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,KAAK,EAAE,6CAA6C;gBAClE,IAAI,EAAE,WAAW;aAClB,CAAC,EACF,MAAM,CAAC,gBAAgB,CAAC;gBACtB,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC;oBAC/B,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,IAAI;iBACZ,CAAC;aACH,CAAC,CACH,CAAC;QACJ,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAS,EAAE;YAC7E,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE3C,OAAO;YACP,MAAM,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEpC,OAAO;YACP,0DAA0D;YAC1D,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAC3C,CAAC,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,QAAQ;aACf,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAC3C,CAAC,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,QAAQ;aACf,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACJ,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAS,EAAE;YACvE,QAAQ;YACR,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAElD,OAAO;YACP,MAAM,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACvC,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE1C,OAAO;YACP,+DAA+D;YAC/D,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAC3C,CAAC,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,MAAM;aACb,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAC3C,CAAC,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,MAAM,EAAE,oBAAoB;gBAC5B,KAAK,EAAE,EAAE;aACV,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACJ,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,sCAAsC,EAAE,GAAS,EAAE;YACpD,QAAQ;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAE1B,OAAO;YACP,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,yBAAyB,EAAE,CAAC;YAElC,OAAO;YACP,MAAM,CAAC,eAAM,CAAC,CAAC,oBAAoB,CACjC,eAAe,EACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC9B,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,mCAAmC;aACrE,CAAC,CACH,CAAC;QACJ,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAS,EAAE;YACzD,QAAQ;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,eAAiE,CAAC;YAErE,eAA0C,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;gBAClF,eAAe,GAAG,SAA+C,CAAC;gBAClE,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,OAAO;YACP,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,yBAAyB,EAAE,CAAC;YAElC,kCAAkC;YAClC,MAAM,eAAgB,CAAC;gBACrB,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;YAEH,OAAO;YACP,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAE3B,OAAO;YACP,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAEzC,4CAA4C;YAC5C,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAC5D,8CAA8C,CAC/C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAS,EAAE;YACnE,QAAQ;YACR,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,eAAiE,CAAC;YAErE,eAA0C,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;gBAClF,eAAe,GAAG,SAA+C,CAAC;gBAClE,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,gCAAgC;YAChC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,yBAAyB,EAAE,CAAC;YAElC,gFAAgF;YAChF,MAAM,eAAe,GACnB,UACD,CAAC,eAAe,CAAC;YAClB,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC;YAEtC,cAAc;YACd,MAAM,MAAM,CACV,eAAgB,CAAC;gBACf,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,aAAa;aACpB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,6CAA6C,EAAE,GAAS,EAAE;YAC3D,QAAQ;YACR,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,yBAAyB,EAAE,CAAC;YAElC,OAAO;YACP,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YAEzB,OAAO;YACP,sEAAsE;YACtE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC9C,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,kCAAkC,EAAE,GAAS,EAAE;YAChD,QAAQ;YACR,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAExC,cAAc;YACd,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAClF,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;YACnD,QAAQ;YACR,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;YACrE,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC5E,IAAI,eAAe,GAAgD,IAAI,CAAC;YAEvE,eAA0C,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;gBAClF,eAAe,GAAG,SAA+C,CAAC;gBAClE,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,OAAO;YACP,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,yBAAyB,EAAE,CAAC;YAElC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAExC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,eAAgB,CAAC;YACnC,MAAM,MAAM,CACV,SAAS,CAAC;gBACR,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,aAAa;aACpB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAEvC,OAAO;YACP,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAE9C,UAAU;YACV,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,eAAe;YACf,MAAM,WAAW,GAAG,IAAI,eAAU,CAAC,MAAM,CAAC,CAAC;YAE3C,6DAA6D;YAC7D,MAAM,cAAc,GAAI,WAAkD;iBACvE,cAAyC,CAAC;YAC7C,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;YAEnD,uCAAuC;YACvC,MAAM,CAAE,WAAkD,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE,CAAC;YAE3F,UAAU;YACV,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,GAAS,EAAE;YAC1F,QAAQ;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAElD,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC9B,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,EAAE;aACS,CAAC,CAAC;YAErB,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,yBAAyB,EAAE,CAAC;YAElC,OAAO;YACP,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAElD,+DAA+D;YAC/D,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAExB,iGAAiG;YACjG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,oBAAoB,CACxC,kBAAkB,EAClB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC;oBACrC,aAAa,EAAE,OAAO,CAAC,IAAI;oBAC3B,2DAA2D;oBAC3D,eAAe,EAAE,MAAM,CAAC,cAAc,CACpC,IAAI,MAAM,CAAC,+BAA+B,OAAO,CAAC,IAAI,GAAG,CAAC,CAC3D;oBACD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;iBAC9B,CAAC;aACH,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;YAEF,8BAA8B;YAC9B,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,UAAU,CAAC,GAAG,EAAE;YACd,wBAAwB;YACxB,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC9B,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,EAAE;aACS,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAS,EAAE;YAC5C,QAAQ;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAElD,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,yBAAyB,EAAE,CAAC;YAElC,cAAc;YACd,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB;iBACzD,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACjE,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,QAAQ;YACR,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAElD,8CAA8C;YAC9C,MAAM,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhD,2DAA2D;YAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAEvC,6CAA6C;YAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;YAC/D,mCAAmC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,+BAA+B;YAC/B,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,SAAS,EAAE,CAAC;YACpB,QAAQ,CAAC,SAAS,EAAE,CAAC;YAErB,IAAI,CAAC;gBACH,gDAAgD;gBAChD,MAAM,gBAAgB,GAAG,IAAI,4BAAgB,CAAC;oBAC5C,QAAQ,EAAE,wBAAwB;oBAClC,WAAW,EAAE,CAAC;oBACd,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;gBAEH,MAAM,iBAAiB,GAAG,IAAI,eAAU,CAAC,gBAAgB,CAAC,CAAC;gBAE3D,yDAAyD;gBACzD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAExC,UAAU;gBACV,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACT,eAAe;gBACf,MAAM,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO,CAAC,WAAW,EAAE,CAAC;gBACtB,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAS,EAAE;YACrE,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,+BAA+B;YAC/B,QAAQ,CAAC,SAAS,EAAE,CAAC;YAErB,IAAI,CAAC;gBACH,gDAAgD;gBAChD,MAAM,gBAAgB,GAAG,IAAI,4BAAgB,CAAC;oBAC5C,QAAQ,EAAE,wBAAwB;oBAClC,WAAW,EAAE,CAAC;oBACd,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;gBAEH,MAAM,iBAAiB,GAAG,IAAI,eAAU,CAAC,gBAAgB,CAAC,CAAC;gBAE3D,iEAAiE;gBACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;gBAEpC,UAAU;gBACV,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACT,eAAe;gBACf,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,gCAAgC;YAChC,MAAM,UAAU,GAAG,IAAI,4BAAgB,CAAC;gBACtC,QAAQ,EAAE,wBAAwB;gBAClC,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YAEH,2BAA2B;YAC3B,MAAM,OAAO,GAAG,IAAI,eAAU,CAAC,UAAU,CAAC,CAAC;YAE3C,gEAAgE;YAChE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAElD,2CAA2C;YAC3C,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -54,6 +54,10 @@ export default class CommandBus {
|
|
|
54
54
|
* PayloadCompressionService - współdzielony serwis kompresji
|
|
55
55
|
*/
|
|
56
56
|
private compressionService;
|
|
57
|
+
/**
|
|
58
|
+
* RpcJobCancellationService - serwis zarządzający anulowaniem jobów RPC
|
|
59
|
+
*/
|
|
60
|
+
private cancellationService;
|
|
57
61
|
constructor(config: CommandBusConfig);
|
|
58
62
|
/**
|
|
59
63
|
* Wysyła komendę do kolejki
|
|
@@ -84,6 +88,12 @@ export default class CommandBus {
|
|
|
84
88
|
* @param timeout - Timeout w milisekundach (domyślnie 30s)
|
|
85
89
|
*/
|
|
86
90
|
call<T = unknown>(command: Command, timeout?: number): Promise<T>;
|
|
91
|
+
/**
|
|
92
|
+
* Tworzy callback do usuwania jobów z kolejki
|
|
93
|
+
* Callback jest przekazywany do RpcCoordinator dla możliwości usunięcia joba przy timeout
|
|
94
|
+
* Nie rzuca wyjątków - zwraca boolean sukcesu
|
|
95
|
+
*/
|
|
96
|
+
private createRemoveJobCallback;
|
|
87
97
|
/**
|
|
88
98
|
* Zamyka wszystkie połączenia
|
|
89
99
|
* Czyści cache kolejek dla optymalizacji pamięci
|
|
@@ -9,12 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const ioredis_1 = require("ioredis");
|
|
13
12
|
const queue_1 = require("./queue");
|
|
14
13
|
const worker_1 = require("./worker");
|
|
15
14
|
const job_1 = require("./job");
|
|
16
15
|
const rpc_1 = require("./rpc");
|
|
17
16
|
const logging_1 = require("./logging");
|
|
17
|
+
const redis_1 = require("../shared/redis");
|
|
18
18
|
/**
|
|
19
19
|
* Command Bus wykorzystujący BullMQ
|
|
20
20
|
* Obsługuje komendy w relacji 1:1 (jedna komenda = jeden handler)
|
|
@@ -33,27 +33,33 @@ class CommandBus {
|
|
|
33
33
|
config: this.config,
|
|
34
34
|
timestamp: new Date().toISOString(),
|
|
35
35
|
});
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
// Fabryka połączeń Redis z obsługą błędów i eventów
|
|
37
|
+
const redisFactory = new redis_1.RedisConnectionFactory(this.logger);
|
|
38
|
+
// Utwórz Redis connections przez fabrykę
|
|
39
|
+
// getRedisOptions() zwraca ConnectionOptions z BullMQ, które są kompatybilne z RedisConnectionOptions
|
|
40
|
+
const redisOptions = this.config.getRedisOptions();
|
|
41
|
+
// QueueManager - standardowe opcje Redis
|
|
42
|
+
this.queueRedisConnection = redisFactory.create(redisOptions, 'QueueManager');
|
|
39
43
|
// WorkerOrchestrator - opcje z maxRetriesPerRequest: null dla Worker compatibility
|
|
40
|
-
this.workerRedisConnection =
|
|
44
|
+
this.workerRedisConnection = redisFactory.createForWorker(redisOptions, 'WorkerOrchestrator');
|
|
41
45
|
// RpcCoordinator - opcje z maxRetriesPerRequest: null dla Worker compatibility
|
|
42
|
-
this.rpcRedisConnection =
|
|
46
|
+
this.rpcRedisConnection = redisFactory.createForWorker(redisOptions, 'RpcCoordinator');
|
|
43
47
|
// Utwórz QueueManager z własnym Redis connection
|
|
44
48
|
this.queueManager = new queue_1.QueueManager(this.queueRedisConnection, this.logger);
|
|
45
49
|
// Utwórz PayloadCompressionService z threshold z konfiguracji (współdzielony serwis)
|
|
46
50
|
this.compressionService = new rpc_1.PayloadCompressionService(this.config.compressionThreshold, this.logger);
|
|
47
|
-
// Utwórz
|
|
48
|
-
this.
|
|
51
|
+
// Utwórz RpcJobCancellationService do zarządzania anulowaniem jobów RPC
|
|
52
|
+
this.cancellationService = new rpc_1.RpcJobCancellationService(this.rpcRedisConnection, this.logger);
|
|
53
|
+
// Utwórz RpcCoordinator z PayloadCompressionService i CancellationService (używa Pub/Sub)
|
|
54
|
+
this.rpcCoordinator = new rpc_1.RpcCoordinator(this.logger, this.rpcRedisConnection, this.compressionService, this.cancellationService, this.createRemoveJobCallback());
|
|
49
55
|
// Utwórz JobOptionsBuilder
|
|
50
56
|
this.jobOptionsBuilder = new job_1.JobOptionsBuilder(this.config);
|
|
51
57
|
// Utwórz CommandLogger jeśli commandLog jest skonfigurowane
|
|
52
58
|
if (this.config.commandLog) {
|
|
53
59
|
this.commandLogger = new logging_1.CommandLogger(this.config.commandLog, this.logger);
|
|
54
60
|
}
|
|
55
|
-
// Utwórz JobProcessor z Redis connection dla Pub/Sub i
|
|
56
|
-
this.jobProcessor = new job_1.JobProcessor(this.commandHandlers, this.rpcRedisConnection, this.logger, this.jobOptionsBuilder, this.compressionService, this.commandLogger);
|
|
61
|
+
// Utwórz JobProcessor z Redis connection dla Pub/Sub, compressionService i cancellationService
|
|
62
|
+
this.jobProcessor = new job_1.JobProcessor(this.commandHandlers, this.rpcRedisConnection, this.logger, this.jobOptionsBuilder, this.compressionService, this.commandLogger, this.cancellationService);
|
|
57
63
|
// Utwórz WorkerOrchestrator z własnym Redis connection
|
|
58
64
|
this.workerOrchestrator = new worker_1.WorkerOrchestrator(this.workerRedisConnection, this.jobProcessor, this.config.concurrency, this.config.maxAttempts, this.logger);
|
|
59
65
|
this.logger.debug('CommandBus gotowy do użycia', {
|
|
@@ -153,10 +159,46 @@ class CommandBus {
|
|
|
153
159
|
queuePosition: ((_b = job.opts) === null || _b === void 0 ? void 0 : _b.delay) ? 'delayed' : 'active',
|
|
154
160
|
timestamp,
|
|
155
161
|
});
|
|
156
|
-
// Krok 4:
|
|
162
|
+
// Krok 4: Przekaż jobId do RpcCoordinator dla możliwości usunięcia przy timeout
|
|
163
|
+
if (job.id) {
|
|
164
|
+
this.rpcCoordinator.setJobId(correlationId, job.id, commandName);
|
|
165
|
+
}
|
|
166
|
+
// Krok 5: Zwróć responsePromise - zostanie resolved gdy worker wyśle odpowiedź przez Pub/Sub
|
|
157
167
|
return promise;
|
|
158
168
|
});
|
|
159
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Tworzy callback do usuwania jobów z kolejki
|
|
172
|
+
* Callback jest przekazywany do RpcCoordinator dla możliwości usunięcia joba przy timeout
|
|
173
|
+
* Nie rzuca wyjątków - zwraca boolean sukcesu
|
|
174
|
+
*/
|
|
175
|
+
createRemoveJobCallback() {
|
|
176
|
+
return (queueName, jobId) => __awaiter(this, void 0, void 0, function* () {
|
|
177
|
+
try {
|
|
178
|
+
const queue = this.queueManager.getOrCreateQueue(queueName);
|
|
179
|
+
const job = yield queue.getJob(jobId);
|
|
180
|
+
if (job) {
|
|
181
|
+
yield job.remove();
|
|
182
|
+
this.logger.debug('Job usunięty z kolejki (RPC timeout)', {
|
|
183
|
+
queueName,
|
|
184
|
+
jobId,
|
|
185
|
+
timestamp: new Date().toISOString(),
|
|
186
|
+
});
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
this.logger.debug('Nie udało się usunąć joba z kolejki (prawdopodobnie już przetwarzany)', {
|
|
193
|
+
queueName,
|
|
194
|
+
jobId,
|
|
195
|
+
error: error instanceof Error ? error.message : String(error),
|
|
196
|
+
timestamp: new Date().toISOString(),
|
|
197
|
+
});
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
160
202
|
/**
|
|
161
203
|
* Zamyka wszystkie połączenia
|
|
162
204
|
* Czyści cache kolejek dla optymalizacji pamięci
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/command-bus/index.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/command-bus/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { TDict, ILogger } from '../../shared/types';
|
|
|
4
4
|
import type JobOptionsBuilder from './job-options-builder';
|
|
5
5
|
import type CommandLogger from '../logging/command-logger';
|
|
6
6
|
import type PayloadCompressionService from '../rpc/payload-compression.service';
|
|
7
|
+
import type RpcJobCancellationService from '../rpc/rpc-job-cancellation.service';
|
|
7
8
|
/**
|
|
8
9
|
* Przetwarza joby z kolejek BullMQ
|
|
9
10
|
* Odpowiada za wykonanie handlerów komend i obsługę odpowiedzi RPC przez Redis Pub/Sub
|
|
@@ -15,7 +16,8 @@ export default class JobProcessor {
|
|
|
15
16
|
private readonly jobOptionsBuilder;
|
|
16
17
|
private readonly compressionService;
|
|
17
18
|
private readonly commandLogger?;
|
|
18
|
-
|
|
19
|
+
private readonly cancellationService?;
|
|
20
|
+
constructor(commandHandlers: TDict<(command: any) => unknown | Promise<unknown>>, redisConnection: Redis, logger: ILogger, jobOptionsBuilder: JobOptionsBuilder, compressionService: PayloadCompressionService, commandLogger?: CommandLogger | undefined, cancellationService?: RpcJobCancellationService | undefined);
|
|
19
21
|
/**
|
|
20
22
|
* Przetwarza job z kolejki
|
|
21
23
|
* Automatycznie dekompresuje dane jeśli są skompresowane
|
|
@@ -20,13 +20,14 @@ const command_1 = __importDefault(require("../command"));
|
|
|
20
20
|
class JobProcessor {
|
|
21
21
|
constructor(
|
|
22
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
-
commandHandlers, redisConnection, logger, jobOptionsBuilder, compressionService, commandLogger) {
|
|
23
|
+
commandHandlers, redisConnection, logger, jobOptionsBuilder, compressionService, commandLogger, cancellationService) {
|
|
24
24
|
this.commandHandlers = commandHandlers;
|
|
25
25
|
this.redisConnection = redisConnection;
|
|
26
26
|
this.logger = logger;
|
|
27
27
|
this.jobOptionsBuilder = jobOptionsBuilder;
|
|
28
28
|
this.compressionService = compressionService;
|
|
29
29
|
this.commandLogger = commandLogger;
|
|
30
|
+
this.cancellationService = cancellationService;
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
33
|
* Przetwarza job z kolejki
|
|
@@ -64,6 +65,21 @@ class JobProcessor {
|
|
|
64
65
|
timestamp: new Date().toISOString(),
|
|
65
66
|
});
|
|
66
67
|
}
|
|
68
|
+
// Sprawdź czy RPC zostało anulowane (tylko dla RPC jobs)
|
|
69
|
+
if ((rpcMetadata === null || rpcMetadata === void 0 ? void 0 : rpcMetadata.correlationId) && this.cancellationService) {
|
|
70
|
+
const isCancelled = yield this.cancellationService.isCancelled(rpcMetadata.correlationId);
|
|
71
|
+
if (isCancelled) {
|
|
72
|
+
this.logger.warn('Pomijam przetwarzanie - RPC zostało anulowane (timeout)', {
|
|
73
|
+
commandName,
|
|
74
|
+
correlationId: rpcMetadata.correlationId,
|
|
75
|
+
jobId: job.id,
|
|
76
|
+
timestamp: new Date().toISOString(),
|
|
77
|
+
});
|
|
78
|
+
// Wyczyść flagę cancellation (optymalizacja - nie jest konieczne, TTL i tak wygaśnie)
|
|
79
|
+
yield this.cancellationService.clearCancellation(rpcMetadata.correlationId);
|
|
80
|
+
return; // Nie wykonuj handlera, nie wysyłaj odpowiedzi
|
|
81
|
+
}
|
|
82
|
+
}
|
|
67
83
|
// Przywróć obiekty Date z serializowanych danych
|
|
68
84
|
command = command_1.default.reconstructDates(command);
|
|
69
85
|
// Opcjonalne logowanie komendy
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-processor.js","sourceRoot":"","sources":["../../../src/command-bus/job/job-processor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,yDAAiC;
|
|
1
|
+
{"version":3,"file":"job-processor.js","sourceRoot":"","sources":["../../../src/command-bus/job/job-processor.ts"],"names":[],"mappings":"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"}
|