agentic-qe 1.3.2 → 1.3.4

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 (126) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +20 -0
  2. package/.claude/agents/qe-chaos-engineer.md +20 -0
  3. package/.claude/agents/qe-coverage-analyzer.md +21 -0
  4. package/.claude/agents/qe-deployment-readiness.md +20 -0
  5. package/.claude/agents/qe-flaky-test-hunter.md +20 -0
  6. package/.claude/agents/qe-fleet-commander.md +20 -0
  7. package/.claude/agents/qe-performance-tester.md +21 -0
  8. package/.claude/agents/qe-production-intelligence.md +20 -0
  9. package/.claude/agents/qe-quality-analyzer.md +20 -0
  10. package/.claude/agents/qe-quality-gate.md +20 -0
  11. package/.claude/agents/qe-regression-risk-analyzer.md +20 -0
  12. package/.claude/agents/qe-requirements-validator.md +20 -0
  13. package/.claude/agents/qe-security-scanner.md +21 -0
  14. package/.claude/agents/qe-test-data-architect.md +19 -0
  15. package/.claude/agents/qe-test-executor.md +20 -0
  16. package/.claude/agents/qe-test-generator.md +22 -0
  17. package/.claude/agents/qe-visual-tester.md +22 -0
  18. package/CHANGELOG.md +114 -0
  19. package/README.md +322 -991
  20. package/README.md.backup-20251026 +1366 -0
  21. package/bin/aqe-mcp +65 -0
  22. package/dist/agents/BaseAgent.js +1 -1
  23. package/dist/agents/BaseAgent.js.map +1 -1
  24. package/dist/agents/CoverageAnalyzerAgent.js +16 -16
  25. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  26. package/dist/agents/FlakyTestHunterAgent.js +1 -1
  27. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +71 -37
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/core/memory/EnhancedAgentDBService.d.ts +127 -0
  32. package/dist/core/memory/EnhancedAgentDBService.d.ts.map +1 -0
  33. package/dist/core/memory/EnhancedAgentDBService.js +298 -0
  34. package/dist/core/memory/EnhancedAgentDBService.js.map +1 -0
  35. package/dist/core/neural/NeuralTrainer.js +2 -2
  36. package/dist/core/neural/NeuralTrainer.js.map +1 -1
  37. package/dist/learning/FixRecommendationEngine.d.ts +68 -0
  38. package/dist/learning/FixRecommendationEngine.d.ts.map +1 -0
  39. package/dist/learning/FixRecommendationEngine.js +500 -0
  40. package/dist/learning/FixRecommendationEngine.js.map +1 -0
  41. package/dist/learning/FlakyTestDetector.d.ts +19 -0
  42. package/dist/learning/FlakyTestDetector.d.ts.map +1 -1
  43. package/dist/learning/FlakyTestDetector.js +121 -2
  44. package/dist/learning/FlakyTestDetector.js.map +1 -1
  45. package/dist/learning/index.d.ts +2 -0
  46. package/dist/learning/index.d.ts.map +1 -1
  47. package/dist/learning/index.js +5 -0
  48. package/dist/learning/index.js.map +1 -1
  49. package/dist/learning/types.d.ts +11 -0
  50. package/dist/learning/types.d.ts.map +1 -1
  51. package/dist/reasoning/PatternQualityScorer.d.ts +134 -0
  52. package/dist/reasoning/PatternQualityScorer.d.ts.map +1 -0
  53. package/dist/reasoning/PatternQualityScorer.js +340 -0
  54. package/dist/reasoning/PatternQualityScorer.js.map +1 -0
  55. package/dist/reasoning/QEReasoningBank.d.ts +51 -4
  56. package/dist/reasoning/QEReasoningBank.d.ts.map +1 -1
  57. package/dist/reasoning/QEReasoningBank.js +173 -11
  58. package/dist/reasoning/QEReasoningBank.js.map +1 -1
  59. package/dist/reasoning/VectorSimilarity.d.ts +131 -0
  60. package/dist/reasoning/VectorSimilarity.d.ts.map +1 -0
  61. package/dist/reasoning/VectorSimilarity.js +250 -0
  62. package/dist/reasoning/VectorSimilarity.js.map +1 -0
  63. package/dist/reasoning/index.d.ts +8 -1
  64. package/dist/reasoning/index.d.ts.map +1 -1
  65. package/dist/reasoning/index.js +13 -2
  66. package/dist/reasoning/index.js.map +1 -1
  67. package/dist/streaming/BaseStreamHandler.d.ts +89 -0
  68. package/dist/streaming/BaseStreamHandler.d.ts.map +1 -0
  69. package/dist/streaming/BaseStreamHandler.js +168 -0
  70. package/dist/streaming/BaseStreamHandler.js.map +1 -0
  71. package/dist/streaming/TestGenerateStreamHandler.d.ts +103 -0
  72. package/dist/streaming/TestGenerateStreamHandler.d.ts.map +1 -0
  73. package/dist/streaming/TestGenerateStreamHandler.js +321 -0
  74. package/dist/streaming/TestGenerateStreamHandler.js.map +1 -0
  75. package/dist/streaming/index.d.ts +16 -0
  76. package/dist/streaming/index.d.ts.map +1 -0
  77. package/dist/streaming/index.js +39 -0
  78. package/dist/streaming/index.js.map +1 -0
  79. package/dist/utils/Database.d.ts.map +1 -1
  80. package/dist/utils/Database.js +15 -1
  81. package/dist/utils/Database.js.map +1 -1
  82. package/dist/utils/__mocks__/Logger.d.ts +26 -0
  83. package/dist/utils/__mocks__/Logger.d.ts.map +1 -0
  84. package/dist/utils/__mocks__/Logger.js +42 -0
  85. package/dist/utils/__mocks__/Logger.js.map +1 -0
  86. package/package.json +19 -6
  87. package/dist/agents/mixins/NeuralCapableMixin.d.ts +0 -130
  88. package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +0 -1
  89. package/dist/agents/mixins/NeuralCapableMixin.js +0 -358
  90. package/dist/agents/mixins/NeuralCapableMixin.js.map +0 -1
  91. package/dist/agents/mixins/QUICCapableMixin.d.ts +0 -34
  92. package/dist/agents/mixins/QUICCapableMixin.d.ts.map +0 -1
  93. package/dist/agents/mixins/QUICCapableMixin.js +0 -346
  94. package/dist/agents/mixins/QUICCapableMixin.js.map +0 -1
  95. package/dist/core/security/CertificateValidator.d.ts +0 -130
  96. package/dist/core/security/CertificateValidator.d.ts.map +0 -1
  97. package/dist/core/security/CertificateValidator.js +0 -376
  98. package/dist/core/security/CertificateValidator.js.map +0 -1
  99. package/dist/core/transport/QUICTransport.d.ts +0 -62
  100. package/dist/core/transport/QUICTransport.d.ts.map +0 -1
  101. package/dist/core/transport/QUICTransport.js +0 -381
  102. package/dist/core/transport/QUICTransport.js.map +0 -1
  103. package/dist/core/transport/SecureQUICTransport.d.ts +0 -71
  104. package/dist/core/transport/SecureQUICTransport.d.ts.map +0 -1
  105. package/dist/core/transport/SecureQUICTransport.js +0 -253
  106. package/dist/core/transport/SecureQUICTransport.js.map +0 -1
  107. package/dist/learning/AdvancedFeatureExtractor.d.ts +0 -123
  108. package/dist/learning/AdvancedFeatureExtractor.d.ts.map +0 -1
  109. package/dist/learning/AdvancedFeatureExtractor.js +0 -423
  110. package/dist/learning/AdvancedFeatureExtractor.js.map +0 -1
  111. package/dist/learning/NeuralPatternMatcher.d.ts +0 -184
  112. package/dist/learning/NeuralPatternMatcher.d.ts.map +0 -1
  113. package/dist/learning/NeuralPatternMatcher.js +0 -702
  114. package/dist/learning/NeuralPatternMatcher.js.map +0 -1
  115. package/dist/learning/NeuralTrainer.d.ts +0 -209
  116. package/dist/learning/NeuralTrainer.d.ts.map +0 -1
  117. package/dist/learning/NeuralTrainer.js +0 -478
  118. package/dist/learning/NeuralTrainer.js.map +0 -1
  119. package/dist/transport/QUICTransport.d.ts +0 -340
  120. package/dist/transport/QUICTransport.d.ts.map +0 -1
  121. package/dist/transport/QUICTransport.js +0 -814
  122. package/dist/transport/QUICTransport.js.map +0 -1
  123. package/dist/transport/UDPTransport.d.ts +0 -348
  124. package/dist/transport/UDPTransport.d.ts.map +0 -1
  125. package/dist/transport/UDPTransport.js +0 -820
  126. package/dist/transport/UDPTransport.js.map +0 -1
@@ -1,381 +0,0 @@
1
- "use strict";
2
- /**
3
- * QUIC Transport Implementation
4
- *
5
- * Fallback implementation using EventBus when QUIC library is not available.
6
- * In production, this would be replaced with a real QUIC implementation
7
- * using libraries like @fails-components/webtransport or node-quic.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.QUICTransport = void 0;
11
- const events_1 = require("events");
12
- const quic_1 = require("../../types/quic");
13
- const Logger_1 = require("../../utils/Logger");
14
- /**
15
- * EventBus-based QUIC Transport Fallback
16
- *
17
- * This implementation provides QUIC-like semantics using EventBus.
18
- * It's designed to be replaced with a real QUIC transport in production.
19
- */
20
- class QUICTransport extends events_1.EventEmitter {
21
- constructor() {
22
- super();
23
- this.peers = new Map();
24
- this.streams = new Map();
25
- this.pendingRequests = new Map();
26
- this.isInitialized = false;
27
- this.logger = Logger_1.Logger.getInstance();
28
- // Initialize stats
29
- this.stats = {
30
- bytesSent: 0,
31
- bytesReceived: 0,
32
- messagesSent: 0,
33
- messagesReceived: 0,
34
- currentRTT: 0,
35
- minRTT: Infinity,
36
- maxRTT: 0,
37
- avgRTT: 0,
38
- packetLoss: 0,
39
- congestionWindow: 65536,
40
- activeStreams: 0,
41
- uptime: 0,
42
- lastActivity: new Date()
43
- };
44
- }
45
- async initialize(config) {
46
- if (this.isInitialized) {
47
- throw new Error('QUICTransport already initialized');
48
- }
49
- this.config = config;
50
- // TODO: In production, initialize actual QUIC connection here
51
- // For now, we use EventBus as fallback
52
- this.logger.info('QUICTransport initialized (EventBus fallback mode)', {
53
- host: config.host,
54
- port: config.port,
55
- channels: config.channels.length
56
- });
57
- this.isInitialized = true;
58
- // Start periodic discovery if configured
59
- if (config.channels.some(ch => ch.type === 'broadcast')) {
60
- this.startDiscovery();
61
- }
62
- }
63
- async connect(peer, port) {
64
- this.ensureInitialized();
65
- const peerInfo = {
66
- agentId: peer,
67
- agentType: 'unknown', // Will be updated via discovery
68
- address: this.config.host,
69
- port,
70
- state: 'connected',
71
- rtt: 1, // Simulated RTT
72
- bandwidth: 1000000, // Simulated 1MB/s
73
- capabilities: [],
74
- lastActivity: new Date(),
75
- metadata: {}
76
- };
77
- this.peers.set(peer, peerInfo);
78
- this.emit('connection:established', peerInfo);
79
- this.logger.debug(`Connected to peer: ${peer}`);
80
- return peerInfo;
81
- }
82
- async disconnect(peerId) {
83
- const peer = this.peers.get(peerId);
84
- if (!peer) {
85
- return; // Already disconnected
86
- }
87
- peer.state = 'disconnected';
88
- this.peers.delete(peerId);
89
- this.emit('connection:lost', peer, new Error('Disconnected by user'));
90
- this.logger.debug(`Disconnected from peer: ${peerId}`);
91
- }
92
- async send(to, message) {
93
- this.ensureInitialized();
94
- // Check if peer is connected
95
- const peer = this.peers.get(to);
96
- if (!peer || peer.state !== 'connected') {
97
- throw this.createError(quic_1.QUICErrorCode.PEER_NOT_FOUND, `Peer ${to} not connected`, to);
98
- }
99
- // Update stats
100
- const messageSize = this.estimateMessageSize(message);
101
- this.stats.bytesSent += messageSize;
102
- this.stats.messagesSent++;
103
- this.stats.lastActivity = new Date();
104
- // Simulate network delay
105
- await this.simulateNetworkDelay();
106
- // In production, send via QUIC stream
107
- // For now, emit via EventBus
108
- this.emit('message:sent', { to, message });
109
- this.logger.debug(`Sent message to ${to}`, {
110
- type: message.type,
111
- channel: message.channel
112
- });
113
- }
114
- async broadcast(message, options) {
115
- this.ensureInitialized();
116
- const targets = this.getBroadcastTargets(options);
117
- const promises = targets.map(peerId => this.send(peerId, {
118
- ...message,
119
- to: peerId,
120
- type: quic_1.QUICMessageType.BROADCAST
121
- }));
122
- await Promise.all(promises);
123
- this.logger.debug(`Broadcast message to ${targets.length} peers`, {
124
- channel: options?.channel,
125
- type: message.type
126
- });
127
- }
128
- async request(to, message, options) {
129
- this.ensureInitialized();
130
- const requestId = this.generateRequestId();
131
- message.requestId = requestId;
132
- message.type = quic_1.QUICMessageType.REQUEST;
133
- const timeout = options?.timeout || 5000;
134
- const retries = options?.retries || 0;
135
- return this.sendRequestWithRetry(to, message, timeout, retries);
136
- }
137
- async sendRequestWithRetry(to, message, timeout, retriesLeft) {
138
- try {
139
- return await this.sendRequest(to, message, timeout);
140
- }
141
- catch (error) {
142
- if (retriesLeft > 0) {
143
- this.logger.debug(`Retrying request (${retriesLeft} retries left)`);
144
- await this.delay(100); // Retry delay
145
- return this.sendRequestWithRetry(to, message, timeout, retriesLeft - 1);
146
- }
147
- throw error;
148
- }
149
- }
150
- sendRequest(to, message, timeout) {
151
- return new Promise((resolve, reject) => {
152
- const timer = setTimeout(() => {
153
- this.pendingRequests.delete(message.requestId);
154
- reject(this.createError(quic_1.QUICErrorCode.MESSAGE_TIMEOUT, `Request timeout after ${timeout}ms`, to));
155
- }, timeout);
156
- this.pendingRequests.set(message.requestId, { resolve, reject, timer });
157
- // Send request
158
- this.send(to, message).catch(error => {
159
- clearTimeout(timer);
160
- this.pendingRequests.delete(message.requestId);
161
- reject(error);
162
- });
163
- });
164
- }
165
- async openStream(streamId, options) {
166
- this.ensureInitialized();
167
- if (this.streams.has(streamId)) {
168
- throw this.createError(quic_1.QUICErrorCode.STREAM_ERROR, `Stream ${streamId} already exists`);
169
- }
170
- const stream = {
171
- id: streamId,
172
- options: options || {},
173
- buffer: [],
174
- opened: new Date()
175
- };
176
- this.streams.set(streamId, stream);
177
- this.stats.activeStreams++;
178
- this.emit('stream:opened', streamId, options || {});
179
- this.logger.debug(`Opened stream: ${streamId}`);
180
- }
181
- async writeStream(streamId, data) {
182
- this.ensureInitialized();
183
- const stream = this.streams.get(streamId);
184
- if (!stream) {
185
- throw this.createError(quic_1.QUICErrorCode.STREAM_ERROR, `Stream ${streamId} not found`);
186
- }
187
- stream.buffer.push(data);
188
- const dataSize = typeof data.data === 'string'
189
- ? Buffer.byteLength(data.data)
190
- : data.data.length;
191
- this.stats.bytesSent += dataSize;
192
- this.stats.lastActivity = new Date();
193
- this.logger.debug(`Wrote ${dataSize} bytes to stream: ${streamId}`);
194
- }
195
- async closeStream(streamId) {
196
- const stream = this.streams.get(streamId);
197
- if (!stream) {
198
- return; // Already closed
199
- }
200
- this.streams.delete(streamId);
201
- this.stats.activeStreams--;
202
- this.emit('stream:closed', streamId);
203
- this.logger.debug(`Closed stream: ${streamId}`);
204
- }
205
- async discoverPeers(options) {
206
- this.ensureInitialized();
207
- // Simulate peer discovery
208
- const discoveredPeers = Array.from(this.peers.values())
209
- .filter(peer => peer.state === 'connected')
210
- .filter(peer => !options?.filter || options.filter(peer))
211
- .slice(0, options?.maxPeers || 100);
212
- return discoveredPeers;
213
- }
214
- getPeers() {
215
- return Array.from(this.peers.values())
216
- .filter(peer => peer.state === 'connected');
217
- }
218
- getPeer(peerId) {
219
- return this.peers.get(peerId);
220
- }
221
- getStats() {
222
- const now = Date.now();
223
- const startTime = now - this.stats.uptime;
224
- return {
225
- ...this.stats,
226
- uptime: this.isInitialized ? now - startTime : 0,
227
- lastActivity: this.stats.lastActivity
228
- };
229
- }
230
- getHealth() {
231
- const connectedPeers = this.getPeers().length;
232
- const avgRTT = this.stats.avgRTT;
233
- const packetLoss = this.stats.packetLoss;
234
- let status = 'healthy';
235
- let message = 'Transport operating normally';
236
- if (!this.isInitialized) {
237
- status = 'unhealthy';
238
- message = 'Transport not initialized';
239
- }
240
- else if (packetLoss > 0.1) {
241
- status = 'unhealthy';
242
- message = 'High packet loss detected';
243
- }
244
- else if (avgRTT > 100) {
245
- status = 'degraded';
246
- message = 'High latency detected';
247
- }
248
- else if (connectedPeers === 0) {
249
- status = 'degraded';
250
- message = 'No peers connected';
251
- }
252
- return {
253
- operational: this.isInitialized,
254
- connectedPeers,
255
- activeChannels: this.config?.channels.length || 0,
256
- avgRTT,
257
- packetLoss,
258
- recentErrors: 0, // TODO: Track errors
259
- timestamp: new Date(),
260
- status,
261
- message
262
- };
263
- }
264
- async close() {
265
- if (!this.isInitialized) {
266
- return;
267
- }
268
- // Log before cleanup
269
- this.logger.info('Closing QUICTransport');
270
- // Stop discovery
271
- if (this.discoveryInterval) {
272
- clearInterval(this.discoveryInterval);
273
- this.discoveryInterval = undefined;
274
- }
275
- // Disconnect all peers
276
- const disconnectPromises = Array.from(this.peers.keys())
277
- .map(peerId => this.disconnect(peerId));
278
- await Promise.all(disconnectPromises);
279
- // Close all streams
280
- for (const streamId of this.streams.keys()) {
281
- await this.closeStream(streamId);
282
- }
283
- // Clear pending requests with proper cleanup
284
- for (const [requestId, pending] of this.pendingRequests.entries()) {
285
- try {
286
- clearTimeout(pending.timer);
287
- pending.reject(new Error('Transport closed'));
288
- }
289
- catch (error) {
290
- // Use logger if still available
291
- if (this.logger) {
292
- this.logger.warn(`Error cleaning up pending request ${requestId}:`, error);
293
- }
294
- }
295
- }
296
- // Clear all collections
297
- this.peers.clear();
298
- this.streams.clear();
299
- this.pendingRequests.clear();
300
- // Remove all event listeners (prevents memory leaks)
301
- this.removeAllListeners();
302
- // Clear EventBus reference
303
- this.eventBus = undefined;
304
- this.isInitialized = false;
305
- this.logger.info('QUICTransport closed');
306
- }
307
- // Helper methods
308
- ensureInitialized() {
309
- if (!this.isInitialized) {
310
- throw this.createError(quic_1.QUICErrorCode.CONFIGURATION_ERROR, 'QUICTransport not initialized');
311
- }
312
- }
313
- getBroadcastTargets(options) {
314
- let targets = Array.from(this.peers.keys());
315
- if (options?.exclude) {
316
- targets = targets.filter(id => !options.exclude.includes(id));
317
- }
318
- if (options?.include) {
319
- targets = targets.filter(id => options.include.includes(id));
320
- }
321
- return targets;
322
- }
323
- generateRequestId() {
324
- return `req-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
325
- }
326
- estimateMessageSize(message) {
327
- return JSON.stringify(message).length;
328
- }
329
- async simulateNetworkDelay() {
330
- // Simulate 1-5ms network delay
331
- const delay = Math.random() * 4 + 1;
332
- await this.delay(delay);
333
- }
334
- delay(ms) {
335
- return new Promise(resolve => setTimeout(resolve, ms));
336
- }
337
- createError(code, message, peer, details) {
338
- const error = new Error(message);
339
- error.code = code;
340
- error.peer = peer;
341
- error.details = details;
342
- return error;
343
- }
344
- startDiscovery() {
345
- // Periodic peer discovery (every 30 seconds)
346
- this.discoveryInterval = setInterval(async () => {
347
- try {
348
- const peers = await this.discoverPeers();
349
- this.logger.debug(`Discovered ${peers.length} peers`);
350
- }
351
- catch (error) {
352
- this.logger.error('Peer discovery failed:', error);
353
- }
354
- }, 30000);
355
- }
356
- /**
357
- * Handle incoming response message
358
- * Called by external message handler
359
- */
360
- handleResponse(message) {
361
- if (message.type !== quic_1.QUICMessageType.RESPONSE || !message.requestId) {
362
- return;
363
- }
364
- const pending = this.pendingRequests.get(message.requestId);
365
- if (!pending) {
366
- this.logger.warn(`Received response for unknown request: ${message.requestId}`);
367
- return;
368
- }
369
- clearTimeout(pending.timer);
370
- this.pendingRequests.delete(message.requestId);
371
- pending.resolve(message);
372
- }
373
- /**
374
- * Set EventBus for fallback communication
375
- */
376
- setEventBus(eventBus) {
377
- this.eventBus = eventBus;
378
- }
379
- }
380
- exports.QUICTransport = QUICTransport;
381
- //# sourceMappingURL=QUICTransport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QUICTransport.js","sourceRoot":"","sources":["../../../src/core/transport/QUICTransport.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,mCAAsC;AACtC,2CAgB0B;AAC1B,+CAA4C;AAE5C;;;;;GAKG;AACH,MAAa,aAAc,SAAQ,qBAAY;IAe7C;QACE,KAAK,EAAE,CAAC;QAdF,UAAK,GAA8B,IAAI,GAAG,EAAE,CAAC;QAC7C,YAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;QACtC,oBAAe,GAIlB,IAAI,GAAG,EAAE,CAAC;QAEP,kBAAa,GAAY,KAAK,CAAC;QAOrC,IAAI,CAAC,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;QAEnC,mBAAmB;QACnB,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;YACnB,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,KAAK;YACvB,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,IAAI,IAAI,EAAE;SACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAkB;QACjC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,8DAA8D;QAC9D,uCAAuC;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;YACrE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,yCAAyC;QACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAAY;QACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,QAAQ,GAAiB;YAC7B,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,SAAS,EAAE,gCAAgC;YACtD,OAAO,EAAE,IAAI,CAAC,MAAO,CAAC,IAAI;YAC1B,IAAI;YACJ,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,CAAC,EAAE,gBAAgB;YACxB,SAAS,EAAE,OAAO,EAAE,kBAAkB;YACtC,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,IAAI,IAAI,EAAE;YACxB,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAEhD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,uBAAuB;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,OAAoB;QACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,6BAA6B;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,WAAW,CACpB,oBAAa,CAAC,cAAc,EAC5B,QAAQ,EAAE,gBAAgB,EAC1B,EAAE,CACH,CAAC;QACJ,CAAC;QAED,eAAe;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,WAAW,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QAErC,yBAAyB;QACzB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElC,sCAAsC;QACtC,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,EAAE;YACzC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAoB,EAAE,OAA8B;QAClE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,GAAG,OAAO;YACV,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,sBAAe,CAAC,SAAS;SAChC,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,MAAM,QAAQ,EAAE;YAChE,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,OAAoB,EAAE,OAA4B;QAC1E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,OAAO,CAAC,IAAI,GAAG,sBAAe,CAAC,OAAO,CAAC;QAEvC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,EAAU,EACV,OAAoB,EACpB,OAAe,EACf,WAAmB;QAEnB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,WAAW,gBAAgB,CAAC,CAAC;gBACpE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc;gBACrC,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,EAAU,EAAE,OAAoB,EAAE,OAAe;QACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAU,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,WAAW,CACrB,oBAAa,CAAC,eAAe,EAC7B,yBAAyB,OAAO,IAAI,EACpC,EAAE,CACH,CAAC,CAAC;YACL,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAEzE,eAAe;YACf,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACnC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAU,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,OAA2B;QAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,WAAW,CACpB,oBAAa,CAAC,YAAY,EAC1B,UAAU,QAAQ,iBAAiB,CACpC,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG;YACb,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,MAAM,EAAE,EAAsB;YAC9B,MAAM,EAAE,IAAI,IAAI,EAAE;SACnB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAoB;QACtD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,WAAW,CACpB,oBAAa,CAAC,YAAY,EAC1B,UAAU,QAAQ,YAAY,CAC/B,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC5C,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAErB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,iBAAiB;QAC3B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA8B;QAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,0BAA0B;QAC1B,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACpD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC;aAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACxD,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAC,CAAC;QAEtC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACnC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAE1C,OAAO;YACL,GAAG,IAAI,CAAC,KAAK;YACb,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;SACtC,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAEzC,IAAI,MAAM,GAAyC,SAAS,CAAC;QAC7D,IAAI,OAAO,GAAG,8BAA8B,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,GAAG,WAAW,CAAC;YACrB,OAAO,GAAG,2BAA2B,CAAC;QACxC,CAAC;aAAM,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YAC5B,MAAM,GAAG,WAAW,CAAC;YACrB,OAAO,GAAG,2BAA2B,CAAC;QACxC,CAAC;aAAM,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YACxB,MAAM,GAAG,UAAU,CAAC;YACpB,OAAO,GAAG,uBAAuB,CAAC;QACpC,CAAC;aAAM,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,UAAU,CAAC;YACpB,OAAO,GAAG,oBAAoB,CAAC;QACjC,CAAC;QAED,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,aAAa;YAC/B,cAAc;YACd,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC;YACjD,MAAM;YACN,UAAU;YACV,YAAY,EAAE,CAAC,EAAE,qBAAqB;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,MAAM;YACN,OAAO;SACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE1C,iBAAiB;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,uBAAuB;QACvB,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aACrD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAE1C,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEtC,oBAAoB;QACpB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,6CAA6C;QAC7C,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,IAAI,CAAC;gBACH,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gCAAgC;gBAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,qDAAqD;QACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3C,CAAC;IAED,iBAAiB;IAET,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,WAAW,CACpB,oBAAa,CAAC,mBAAmB,EACjC,+BAA+B,CAChC,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,OAA8B;QACxD,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5C,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,OAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,iBAAiB;QACvB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IAEO,mBAAmB,CAAC,OAAoB;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,+BAA+B;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,WAAW,CACjB,IAAmB,EACnB,OAAe,EACf,IAAa,EACb,OAAa;QAEb,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAuB,CAAC;QACvD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc;QACpB,6CAA6C;QAC7C,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC9C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,OAAoB;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,sBAAe,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAsB;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AA7dD,sCA6dC"}
@@ -1,71 +0,0 @@
1
- /**
2
- * Secure QUIC Transport with Certificate Validation
3
- *
4
- * Production-ready QUIC transport with comprehensive security:
5
- * - Mandatory certificate validation
6
- * - Certificate pinning support
7
- * - TLS 1.3 enforcement
8
- * - No self-signed certificates in production
9
- * - Proper error handling and logging
10
- *
11
- * @module SecureQUICTransport
12
- */
13
- import { QUICTransport } from './QUICTransport';
14
- import { QUICConfig, QUICSecurityConfig } from '../../types/quic';
15
- export interface SecureQUICConfig extends QUICConfig {
16
- security: Required<QUICSecurityConfig> & {
17
- /** Path to CA certificate bundle */
18
- caPath: string;
19
- };
20
- }
21
- /**
22
- * Secure QUIC Transport
23
- *
24
- * Extends QUICTransport with production-grade security:
25
- * - Certificate validation before connection
26
- * - Certificate pinning
27
- * - TLS 1.3 enforcement
28
- * - Audit logging
29
- */
30
- export declare class SecureQUICTransport extends QUICTransport {
31
- private certificateValidator?;
32
- private securityConfig?;
33
- private readonly logger;
34
- private environment;
35
- constructor();
36
- /**
37
- * Initialize secure QUIC transport
38
- *
39
- * CRITICAL: This method validates certificates BEFORE allowing any connections.
40
- * Will throw if certificates are invalid in production.
41
- */
42
- initialize(config: SecureQUICConfig): Promise<void>;
43
- /**
44
- * Connect to peer with certificate validation
45
- */
46
- connect(peer: string, port: number): Promise<any>;
47
- /**
48
- * Get security status
49
- */
50
- getSecurityStatus(): {
51
- tlsEnabled: boolean;
52
- peerVerification: boolean;
53
- certificatePinning: boolean;
54
- minTLSVersion: string;
55
- environment: string;
56
- certificateInfo?: any;
57
- };
58
- /**
59
- * Create security error
60
- */
61
- private createSecurityError;
62
- /**
63
- * Close transport and clear security context
64
- */
65
- close(): Promise<void>;
66
- }
67
- /**
68
- * Create secure QUIC transport with configuration validation
69
- */
70
- export declare function createSecureQUICTransport(config: Partial<SecureQUICConfig>): Promise<SecureQUICTransport>;
71
- //# sourceMappingURL=SecureQUICTransport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SecureQUICTransport.d.ts","sourceRoot":"","sources":["../../../src/core/transport/SecureQUICTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAGjF,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG;QACvC,oCAAoC;QACpC,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IACpD,OAAO,CAAC,cAAc,CAAC,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,WAAW,CAA+B;;IAQlD;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8HzD;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0CvD;;OAEG;IACH,iBAAiB,IAAI;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,GAAG,CAAC;KACvB;IA0BD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,CA4C9B"}