wse-client 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/dist/constants.d.ts +195 -0
  4. package/dist/constants.d.ts.map +1 -0
  5. package/dist/constants.js +285 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/examples/ChatHandlers.d.ts +15 -0
  8. package/dist/examples/ChatHandlers.d.ts.map +1 -0
  9. package/dist/examples/ChatHandlers.js +20 -0
  10. package/dist/examples/ChatHandlers.js.map +1 -0
  11. package/dist/examples/IoTHandlers.d.ts +12 -0
  12. package/dist/examples/IoTHandlers.d.ts.map +1 -0
  13. package/dist/examples/IoTHandlers.js +15 -0
  14. package/dist/examples/IoTHandlers.js.map +1 -0
  15. package/dist/handlers/EventHandlers.d.ts +17 -0
  16. package/dist/handlers/EventHandlers.d.ts.map +1 -0
  17. package/dist/handlers/EventHandlers.js +20 -0
  18. package/dist/handlers/EventHandlers.js.map +1 -0
  19. package/dist/handlers/index.d.ts +14 -0
  20. package/dist/handlers/index.d.ts.map +1 -0
  21. package/dist/handlers/index.js +37 -0
  22. package/dist/handlers/index.js.map +1 -0
  23. package/dist/hooks/useWSE.d.ts +42 -0
  24. package/dist/hooks/useWSE.d.ts.map +1 -0
  25. package/dist/hooks/useWSE.js +1224 -0
  26. package/dist/hooks/useWSE.js.map +1 -0
  27. package/dist/index.d.ts +25 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +48 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/protocols/compression.d.ts +17 -0
  32. package/dist/protocols/compression.d.ts.map +1 -0
  33. package/dist/protocols/compression.js +155 -0
  34. package/dist/protocols/compression.js.map +1 -0
  35. package/dist/protocols/transformer.d.ts +12 -0
  36. package/dist/protocols/transformer.d.ts.map +1 -0
  37. package/dist/protocols/transformer.js +76 -0
  38. package/dist/protocols/transformer.js.map +1 -0
  39. package/dist/services/AdaptiveQualityManager.d.ts +44 -0
  40. package/dist/services/AdaptiveQualityManager.d.ts.map +1 -0
  41. package/dist/services/AdaptiveQualityManager.js +114 -0
  42. package/dist/services/AdaptiveQualityManager.js.map +1 -0
  43. package/dist/services/ConnectionManager.d.ts +92 -0
  44. package/dist/services/ConnectionManager.d.ts.map +1 -0
  45. package/dist/services/ConnectionManager.js +852 -0
  46. package/dist/services/ConnectionManager.js.map +1 -0
  47. package/dist/services/ConnectionPool.d.ts +74 -0
  48. package/dist/services/ConnectionPool.d.ts.map +1 -0
  49. package/dist/services/ConnectionPool.js +430 -0
  50. package/dist/services/ConnectionPool.js.map +1 -0
  51. package/dist/services/EventSequencer.d.ts +30 -0
  52. package/dist/services/EventSequencer.d.ts.map +1 -0
  53. package/dist/services/EventSequencer.js +152 -0
  54. package/dist/services/EventSequencer.js.map +1 -0
  55. package/dist/services/MessageProcessor.d.ts +69 -0
  56. package/dist/services/MessageProcessor.d.ts.map +1 -0
  57. package/dist/services/MessageProcessor.js +1050 -0
  58. package/dist/services/MessageProcessor.js.map +1 -0
  59. package/dist/services/NetworkMonitor.d.ts +34 -0
  60. package/dist/services/NetworkMonitor.d.ts.map +1 -0
  61. package/dist/services/NetworkMonitor.js +143 -0
  62. package/dist/services/NetworkMonitor.js.map +1 -0
  63. package/dist/services/OfflineQueue.d.ts +25 -0
  64. package/dist/services/OfflineQueue.d.ts.map +1 -0
  65. package/dist/services/OfflineQueue.js +117 -0
  66. package/dist/services/OfflineQueue.js.map +1 -0
  67. package/dist/services/RateLimiter.d.ts +25 -0
  68. package/dist/services/RateLimiter.d.ts.map +1 -0
  69. package/dist/services/RateLimiter.js +85 -0
  70. package/dist/services/RateLimiter.js.map +1 -0
  71. package/dist/stores/useMessageQueueStore.d.ts +23 -0
  72. package/dist/stores/useMessageQueueStore.d.ts.map +1 -0
  73. package/dist/stores/useMessageQueueStore.js +188 -0
  74. package/dist/stores/useMessageQueueStore.js.map +1 -0
  75. package/dist/stores/useWSEStore.d.ts +54 -0
  76. package/dist/stores/useWSEStore.d.ts.map +1 -0
  77. package/dist/stores/useWSEStore.js +464 -0
  78. package/dist/stores/useWSEStore.js.map +1 -0
  79. package/dist/types.d.ts +403 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +39 -0
  82. package/dist/types.js.map +1 -0
  83. package/dist/utils/circuitBreaker.d.ts +35 -0
  84. package/dist/utils/circuitBreaker.d.ts.map +1 -0
  85. package/dist/utils/circuitBreaker.js +145 -0
  86. package/dist/utils/circuitBreaker.js.map +1 -0
  87. package/dist/utils/logger.d.ts +46 -0
  88. package/dist/utils/logger.d.ts.map +1 -0
  89. package/dist/utils/logger.js +231 -0
  90. package/dist/utils/logger.js.map +1 -0
  91. package/dist/utils/security.d.ts +74 -0
  92. package/dist/utils/security.d.ts.map +1 -0
  93. package/dist/utils/security.js +383 -0
  94. package/dist/utils/security.js.map +1 -0
  95. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWSE.js","sourceRoot":"","sources":["../../client/hooks/useWSE.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export { useWSE } from './hooks/useWSE';
2
+ export type { UseWSEConfig } from './hooks/useWSE';
3
+ export * from './types';
4
+ export { useWSEStore } from './stores/useWSEStore';
5
+ export { useMessageQueueStore } from './stores/useMessageQueueStore';
6
+ export { logger, Logger, LogLevel } from './utils/logger';
7
+ export { CircuitBreaker, createCircuitBreaker } from './utils/circuitBreaker';
8
+ export { EventSequencer } from './services/EventSequencer';
9
+ export { AdaptiveQualityManager } from './services/AdaptiveQualityManager';
10
+ export { compressionManager } from './protocols/compression';
11
+ export { eventTransformer } from './protocols/transformer';
12
+ export { ConnectionManager } from './services/ConnectionManager';
13
+ export type { ConnectionManagerConfig } from './services/ConnectionManager';
14
+ export { MessageProcessor } from './services/MessageProcessor';
15
+ export { RateLimiter } from './services/RateLimiter';
16
+ export { ConnectionPool } from './services/ConnectionPool';
17
+ export type { ConnectionPoolConfig } from './services/ConnectionPool';
18
+ export { NetworkMonitor } from './services/NetworkMonitor';
19
+ export { OfflineQueue } from './services/OfflineQueue';
20
+ export type { OfflineQueueConfig } from './services/OfflineQueue';
21
+ export { EventHandlers } from './handlers/EventHandlers';
22
+ export { registerAllHandlers } from './handlers/index';
23
+ export * from './constants';
24
+ export declare const WSE_VERSION = "1.0.0";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD,cAAc,SAAS,CAAC;AAMxB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAMrE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAM3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAMlE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,cAAc,aAAa,CAAC;AAM5B,eAAO,MAAM,WAAW,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,48 @@
1
+ // =============================================================================
2
+ // WebSocket Event System - Public Exports
3
+ // =============================================================================
4
+ // ---------------------------------------------------------------------------
5
+ // Main Hook
6
+ // ---------------------------------------------------------------------------
7
+ export { useWSE } from './hooks/useWSE';
8
+ // ---------------------------------------------------------------------------
9
+ // Types
10
+ // ---------------------------------------------------------------------------
11
+ export * from './types';
12
+ // ---------------------------------------------------------------------------
13
+ // Stores
14
+ // ---------------------------------------------------------------------------
15
+ export { useWSEStore } from './stores/useWSEStore';
16
+ export { useMessageQueueStore } from './stores/useMessageQueueStore';
17
+ // ---------------------------------------------------------------------------
18
+ // Utils
19
+ // ---------------------------------------------------------------------------
20
+ export { logger, Logger, LogLevel } from './utils/logger';
21
+ export { CircuitBreaker, createCircuitBreaker } from './utils/circuitBreaker';
22
+ export { EventSequencer } from './services/EventSequencer';
23
+ export { AdaptiveQualityManager } from './services/AdaptiveQualityManager';
24
+ export { compressionManager } from './protocols/compression';
25
+ export { eventTransformer } from './protocols/transformer';
26
+ // ---------------------------------------------------------------------------
27
+ // Services (for advanced usage)
28
+ // ---------------------------------------------------------------------------
29
+ export { ConnectionManager } from './services/ConnectionManager';
30
+ export { MessageProcessor } from './services/MessageProcessor';
31
+ export { RateLimiter } from './services/RateLimiter';
32
+ export { ConnectionPool } from './services/ConnectionPool';
33
+ export { NetworkMonitor } from './services/NetworkMonitor';
34
+ export { OfflineQueue } from './services/OfflineQueue';
35
+ // ---------------------------------------------------------------------------
36
+ // Handlers (for extending)
37
+ // ---------------------------------------------------------------------------
38
+ export { EventHandlers } from './handlers/EventHandlers';
39
+ export { registerAllHandlers } from './handlers/index';
40
+ // ---------------------------------------------------------------------------
41
+ // Constants
42
+ // ---------------------------------------------------------------------------
43
+ export * from './constants';
44
+ // ---------------------------------------------------------------------------
45
+ // Version Info
46
+ // ---------------------------------------------------------------------------
47
+ export const WSE_VERSION = '1.0.0';
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAEhF,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,cAAc,SAAS,CAAC;AAExB,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,cAAc,aAAa,CAAC;AAE5B,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
@@ -0,0 +1,17 @@
1
+ type CompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -1;
2
+ export declare class CompressionManager {
3
+ private compressionThreshold;
4
+ private compressionLevel;
5
+ constructor(compressionThreshold?: number, compressionLevel?: CompressionLevel);
6
+ shouldCompress(data: ArrayBuffer | string): boolean;
7
+ compress(data: ArrayBuffer): ArrayBuffer;
8
+ decompress(data: ArrayBuffer): ArrayBuffer;
9
+ decompressGzip(data: ArrayBuffer): ArrayBuffer;
10
+ packMsgPack(data: any): ArrayBuffer;
11
+ unpackMsgPack(data: ArrayBuffer): any;
12
+ prepareForSending(message: any, useCompression?: boolean): ArrayBuffer;
13
+ processIncoming(data: ArrayBuffer): any;
14
+ }
15
+ export declare const compressionManager: CompressionManager;
16
+ export {};
17
+ //# sourceMappingURL=compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../client/protocols/compression.ts"],"names":[],"mappings":"AAQA,KAAK,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAEnE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAmB;gBAGzC,oBAAoB,SAAO,EAC3B,gBAAgB,GAAE,gBAAoB;IAUxC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO;IAQnD,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;IAWxC,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;IA8C1C,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;IAa9C,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW;IAUnC,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,GAAG;IAarC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,GAAE,OAAc,GAAG,WAAW;IAsB5E,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,GAAG;CAyBxC;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -0,0 +1,155 @@
1
+ // =============================================================================
2
+ // WebSocket Event System - Compression & MessagePack
3
+ // =============================================================================
4
+ import pako from 'pako';
5
+ import { encode, decode } from '@msgpack/msgpack';
6
+ import { logger } from '../utils/logger';
7
+ export class CompressionManager {
8
+ constructor(compressionThreshold = 1024, compressionLevel = 6) {
9
+ this.compressionThreshold = compressionThreshold;
10
+ this.compressionLevel = compressionLevel;
11
+ }
12
+ // ---------------------------------------------------------------------------
13
+ // Compression
14
+ // ---------------------------------------------------------------------------
15
+ shouldCompress(data) {
16
+ const size = typeof data === 'string'
17
+ ? new Blob([data]).size
18
+ : data.byteLength;
19
+ return size > this.compressionThreshold;
20
+ }
21
+ compress(data) {
22
+ try {
23
+ const compressed = pako.deflate(new Uint8Array(data), { level: this.compressionLevel });
24
+ logger.debug(`Compressed ${data.byteLength} -> ${compressed.byteLength} bytes`);
25
+ return compressed.buffer;
26
+ }
27
+ catch (error) {
28
+ logger.error('Compression failed:', error);
29
+ throw error;
30
+ }
31
+ }
32
+ decompress(data) {
33
+ try {
34
+ const view = new Uint8Array(data);
35
+ logger.debug('Decompressing data:', {
36
+ length: data.byteLength,
37
+ first10Bytes: Array.from(view.slice(0, 10)),
38
+ hexFirst10: Array.from(view.slice(0, 10)).map(b => b.toString(16).padStart(2, '0')).join(' ')
39
+ });
40
+ // Try standard inflate (for zlib format)
41
+ try {
42
+ const decompressed = pako.inflate(view);
43
+ logger.debug(`Decompressed ${data.byteLength} -> ${decompressed.byteLength} bytes (standard inflate)`);
44
+ return decompressed.buffer;
45
+ }
46
+ catch (inflateError) {
47
+ logger.debug('Standard inflate failed:', inflateError.message);
48
+ if (inflateError.message && inflateError.message.includes('header')) {
49
+ logger.debug('Trying raw inflate (no zlib header)...');
50
+ try {
51
+ const decompressed = pako.inflateRaw(view);
52
+ logger.debug(`Decompressed ${data.byteLength} -> ${decompressed.byteLength} bytes (raw inflate)`);
53
+ return decompressed.buffer;
54
+ }
55
+ catch (rawError) {
56
+ logger.debug('Raw inflate also failed:', rawError);
57
+ }
58
+ }
59
+ // Try gzip as last resort
60
+ try {
61
+ const decompressed = pako.ungzip(view);
62
+ logger.debug(`Decompressed ${data.byteLength} -> ${decompressed.byteLength} bytes (gzip)`);
63
+ return decompressed.buffer;
64
+ }
65
+ catch (gzipError) {
66
+ logger.debug('Gzip decompression also failed');
67
+ }
68
+ throw inflateError;
69
+ }
70
+ }
71
+ catch (error) {
72
+ logger.error('Decompression failed:', error);
73
+ throw error;
74
+ }
75
+ }
76
+ decompressGzip(data) {
77
+ try {
78
+ return pako.ungzip(new Uint8Array(data)).buffer;
79
+ }
80
+ catch (error) {
81
+ logger.error('Gzip decompression failed:', error);
82
+ throw error;
83
+ }
84
+ }
85
+ // ---------------------------------------------------------------------------
86
+ // MessagePack
87
+ // ---------------------------------------------------------------------------
88
+ packMsgPack(data) {
89
+ try {
90
+ const encoded = encode(data);
91
+ return encoded.buffer.slice(encoded.byteOffset, encoded.byteOffset + encoded.byteLength);
92
+ }
93
+ catch (error) {
94
+ logger.error('MessagePack encoding failed:', error);
95
+ throw error;
96
+ }
97
+ }
98
+ unpackMsgPack(data) {
99
+ try {
100
+ return decode(data);
101
+ }
102
+ catch (error) {
103
+ logger.error('MessagePack decoding failed:', error);
104
+ throw error;
105
+ }
106
+ }
107
+ // ---------------------------------------------------------------------------
108
+ // Combined Operations
109
+ // ---------------------------------------------------------------------------
110
+ prepareForSending(message, useCompression = true) {
111
+ const packed = this.packMsgPack(message);
112
+ if (useCompression && this.shouldCompress(packed)) {
113
+ const compressed = this.compress(packed);
114
+ if (compressed.byteLength < packed.byteLength) {
115
+ const header = new Uint8Array([67, 58]); // 'C:'
116
+ const result = new Uint8Array(header.length + compressed.byteLength);
117
+ result.set(header);
118
+ result.set(new Uint8Array(compressed), header.length);
119
+ return result.buffer;
120
+ }
121
+ }
122
+ const header = new Uint8Array([77, 58]); // 'M:'
123
+ const result = new Uint8Array(header.length + packed.byteLength);
124
+ result.set(header);
125
+ result.set(new Uint8Array(packed), header.length);
126
+ return result.buffer;
127
+ }
128
+ processIncoming(data) {
129
+ const view = new Uint8Array(data);
130
+ if (view.length >= 2 && view[0] === 67 && view[1] === 58) {
131
+ const compressed = data.slice(2);
132
+ const decompressed = this.decompress(compressed);
133
+ return this.unpackMsgPack(decompressed);
134
+ }
135
+ if (view.length >= 2 && view[0] === 77 && view[1] === 58) {
136
+ const packed = data.slice(2);
137
+ return this.unpackMsgPack(packed);
138
+ }
139
+ try {
140
+ return this.unpackMsgPack(data);
141
+ }
142
+ catch {
143
+ try {
144
+ return JSON.parse(new TextDecoder().decode(data));
145
+ }
146
+ catch (error) {
147
+ logger.error('Failed to process incoming data:', error);
148
+ throw new Error('Unknown message format');
149
+ }
150
+ }
151
+ }
152
+ }
153
+ // Singleton instance
154
+ export const compressionManager = new CompressionManager();
155
+ //# sourceMappingURL=compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../client/protocols/compression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { WSMessage } from '../types';
2
+ export declare class EventTransformer {
3
+ transformForWS(event: any, sequence?: number): WSMessage;
4
+ private transformPayload;
5
+ private extractGenericPayload;
6
+ transformFromWS(wsMessage: WSMessage): any;
7
+ private mapWSEventTypeToInternal;
8
+ isKnownEventType(eventType: string): boolean;
9
+ getWSEventType(internalType: string): string;
10
+ }
11
+ export declare const eventTransformer: EventTransformer;
12
+ //# sourceMappingURL=transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../client/protocols/transformer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,qBAAa,gBAAgB;IAK3B,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAE,MAAU,GAAG,SAAS;IAuB3D,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,qBAAqB;IAmB7B,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,GAAG;IAY1C,OAAO,CAAC,wBAAwB;IAchC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAG7C;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,76 @@
1
+ // =============================================================================
2
+ // WebSocket Event System - Event Transformer
3
+ // =============================================================================
4
+ import { INTERNAL_TO_WS_EVENT_TYPE_MAP } from '../constants';
5
+ export class EventTransformer {
6
+ // ---------------------------------------------------------------------------
7
+ // Main Transformation
8
+ // ---------------------------------------------------------------------------
9
+ transformForWS(event, sequence = 0) {
10
+ const eventType = event.event_type || event.type;
11
+ // Map internal event type to WebSocket event type
12
+ const wsEventType = INTERNAL_TO_WS_EVENT_TYPE_MAP[eventType] || eventType?.toLowerCase() || 'unknown';
13
+ // Extract metadata
14
+ const metadata = event._metadata || {};
15
+ const payload = this.transformPayload(wsEventType, event);
16
+ const wsEvent = {
17
+ v: 2,
18
+ id: metadata.event_id || event.event_id || crypto.randomUUID(),
19
+ t: wsEventType,
20
+ ts: metadata.timestamp || event.timestamp || new Date().toISOString(),
21
+ seq: sequence,
22
+ p: payload,
23
+ };
24
+ return wsEvent;
25
+ }
26
+ transformPayload(wsEventType, event) {
27
+ // Generic payload extraction for all event types.
28
+ // Application-specific transformations should be registered
29
+ // via custom handlers rather than hardcoded here.
30
+ return this.extractGenericPayload(event);
31
+ }
32
+ extractGenericPayload(event) {
33
+ const payload = event.payload || event;
34
+ if ('_metadata' in payload) {
35
+ const { _metadata, ...rest } = payload;
36
+ return rest;
37
+ }
38
+ if ('type' in payload && !('event_type' in payload)) {
39
+ payload.event_type = payload.type;
40
+ }
41
+ return payload;
42
+ }
43
+ // ---------------------------------------------------------------------------
44
+ // Reverse Transformation (WS to Internal)
45
+ // ---------------------------------------------------------------------------
46
+ transformFromWS(wsMessage) {
47
+ const internalEvent = {
48
+ event_type: this.mapWSEventTypeToInternal(wsMessage.t),
49
+ timestamp: wsMessage.ts,
50
+ event_id: wsMessage.id,
51
+ sequence: wsMessage.seq,
52
+ ...wsMessage.p,
53
+ };
54
+ return internalEvent;
55
+ }
56
+ mapWSEventTypeToInternal(wsType) {
57
+ for (const [internal, ws] of Object.entries(INTERNAL_TO_WS_EVENT_TYPE_MAP)) {
58
+ if (ws === wsType) {
59
+ return internal;
60
+ }
61
+ }
62
+ return wsType.charAt(0).toUpperCase() + wsType.slice(1);
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // Utilities
66
+ // ---------------------------------------------------------------------------
67
+ isKnownEventType(eventType) {
68
+ return eventType in INTERNAL_TO_WS_EVENT_TYPE_MAP;
69
+ }
70
+ getWSEventType(internalType) {
71
+ return INTERNAL_TO_WS_EVENT_TYPE_MAP[internalType] || internalType.toLowerCase();
72
+ }
73
+ }
74
+ // Singleton instance
75
+ export const eventTransformer = new EventTransformer();
76
+ //# sourceMappingURL=transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../client/protocols/transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { ConnectionQuality } from '../types';
2
+ /**
3
+ * Minimal interface for QueryClient integration.
4
+ * Matches TanStack Query's QueryClient.setDefaultOptions signature.
5
+ */
6
+ interface QueryClientLike {
7
+ setDefaultOptions: (options: {
8
+ queries: Record<string, any>;
9
+ }) => void;
10
+ invalidateQueries: () => void;
11
+ }
12
+ export declare class AdaptiveQualityManager {
13
+ private currentQuality;
14
+ private lastUpdate;
15
+ private queryClient;
16
+ /**
17
+ * @param queryClient Optional QueryClient instance. When provided, React Query
18
+ * defaults are adjusted based on connection quality. When omitted, only
19
+ * CustomEvents are dispatched.
20
+ */
21
+ constructor(queryClient?: QueryClientLike | null);
22
+ /**
23
+ * Update strategy based on connection quality
24
+ */
25
+ updateQuality(quality: ConnectionQuality, metrics?: {
26
+ latency?: number;
27
+ jitter?: number;
28
+ packetLoss?: number;
29
+ }): void;
30
+ /**
31
+ * Reset to default conservative mode
32
+ */
33
+ reset(): void;
34
+ /**
35
+ * Get current quality for diagnostics
36
+ */
37
+ getCurrentQuality(): ConnectionQuality | null;
38
+ /**
39
+ * Get strategy name for UI display
40
+ */
41
+ getCurrentStrategyName(): string;
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=AdaptiveQualityManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdaptiveQualityManager.d.ts","sourceRoot":"","sources":["../../client/services/AdaptiveQualityManager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAqC7C;;;GAGG;AACH,UAAU,eAAe;IACvB,iBAAiB,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAyB;IAE5C;;;;OAIG;gBACS,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAwCrH;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,iBAAiB,IAAI,iBAAiB,GAAG,IAAI;IAI7C;;OAEG;IACH,sBAAsB,IAAI,MAAM;CAIjC"}
@@ -0,0 +1,114 @@
1
+ // =============================================================================
2
+ // WebSocket Event System - Adaptive Quality Manager
3
+ // =============================================================================
4
+ //
5
+ // Adapts application behavior based on WebSocket connection quality.
6
+ // By default operates standalone (dispatches events only).
7
+ // Optionally accepts a React Query QueryClient to adjust query defaults.
8
+ import { ConnectionQuality } from '../types';
9
+ import { logger } from '../utils/logger';
10
+ // Industry-standard quality strategies
11
+ const STRATEGIES = {
12
+ excellent: {
13
+ staleTime: Infinity,
14
+ refetchInterval: false,
15
+ refetchOnWindowFocus: false,
16
+ name: 'WebSocket Optimized',
17
+ },
18
+ good: {
19
+ staleTime: 60000, // 1 min
20
+ refetchInterval: false,
21
+ refetchOnWindowFocus: false,
22
+ name: 'WebSocket Primary',
23
+ },
24
+ fair: {
25
+ staleTime: 10000, // 10 sec
26
+ refetchInterval: 30000, // 30 sec polling backup
27
+ refetchOnWindowFocus: true,
28
+ name: 'Hybrid Mode',
29
+ },
30
+ poor: {
31
+ staleTime: 5000, // 5 sec
32
+ refetchInterval: 10000, // 10 sec aggressive polling
33
+ refetchOnWindowFocus: true,
34
+ name: 'Polling Fallback',
35
+ },
36
+ unknown: {
37
+ staleTime: 5000,
38
+ refetchInterval: 15000,
39
+ refetchOnWindowFocus: true,
40
+ name: 'Conservative',
41
+ },
42
+ };
43
+ export class AdaptiveQualityManager {
44
+ /**
45
+ * @param queryClient Optional QueryClient instance. When provided, React Query
46
+ * defaults are adjusted based on connection quality. When omitted, only
47
+ * CustomEvents are dispatched.
48
+ */
49
+ constructor(queryClient) {
50
+ this.currentQuality = null;
51
+ this.lastUpdate = 0;
52
+ this.queryClient = queryClient ?? null;
53
+ }
54
+ /**
55
+ * Update strategy based on connection quality
56
+ */
57
+ updateQuality(quality, metrics) {
58
+ // Skip if quality hasn't changed
59
+ if (quality === this.currentQuality)
60
+ return;
61
+ const strategy = STRATEGIES[quality] || STRATEGIES.unknown;
62
+ const oldQuality = this.currentQuality;
63
+ this.currentQuality = quality;
64
+ this.lastUpdate = Date.now();
65
+ logger.info(`[AdaptiveQuality] ${oldQuality || 'unknown'} -> ${quality}: ${strategy.name}`);
66
+ if (metrics) {
67
+ logger.info(`[AdaptiveQuality] Metrics:`, metrics);
68
+ }
69
+ // Update React Query defaults if client is available
70
+ if (this.queryClient) {
71
+ this.queryClient.setDefaultOptions({
72
+ queries: {
73
+ staleTime: strategy.staleTime,
74
+ refetchInterval: strategy.refetchInterval,
75
+ refetchOnWindowFocus: strategy.refetchOnWindowFocus,
76
+ refetchOnReconnect: true,
77
+ retry: 3,
78
+ retryDelay: (attemptIndex) => Math.min(1000 * Math.pow(2, attemptIndex), 30000),
79
+ },
80
+ });
81
+ // If degraded to poor, force refetch all queries
82
+ if (quality === 'poor' && oldQuality !== 'poor') {
83
+ logger.warn('[AdaptiveQuality] Degraded to poor - invalidating all queries');
84
+ this.queryClient.invalidateQueries();
85
+ }
86
+ }
87
+ // Dispatch event for UI notifications
88
+ window.dispatchEvent(new CustomEvent('connectionQualityChanged', {
89
+ detail: { quality, strategy: strategy.name, metrics },
90
+ }));
91
+ }
92
+ /**
93
+ * Reset to default conservative mode
94
+ */
95
+ reset() {
96
+ logger.info('[AdaptiveQuality] Resetting to conservative mode');
97
+ this.updateQuality(ConnectionQuality.UNKNOWN);
98
+ }
99
+ /**
100
+ * Get current quality for diagnostics
101
+ */
102
+ getCurrentQuality() {
103
+ return this.currentQuality;
104
+ }
105
+ /**
106
+ * Get strategy name for UI display
107
+ */
108
+ getCurrentStrategyName() {
109
+ if (!this.currentQuality)
110
+ return 'Unknown';
111
+ return STRATEGIES[this.currentQuality]?.name || 'Unknown';
112
+ }
113
+ }
114
+ //# sourceMappingURL=AdaptiveQualityManager.js.map