flashq 0.3.2 → 0.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.
- package/README.md +9 -0
- package/dist/client/connection.d.ts +113 -9
- package/dist/client/connection.d.ts.map +1 -1
- package/dist/client/connection.js +148 -51
- package/dist/client/connection.js.map +1 -1
- package/dist/client/reconnect.d.ts +100 -0
- package/dist/client/reconnect.d.ts.map +1 -0
- package/dist/client/reconnect.js +154 -0
- package/dist/client/reconnect.js.map +1 -0
- package/dist/client/tcp/handler.d.ts +106 -0
- package/dist/client/tcp/handler.d.ts.map +1 -0
- package/dist/client/tcp/handler.js +155 -0
- package/dist/client/tcp/handler.js.map +1 -0
- package/dist/client/tcp/index.d.ts +5 -0
- package/dist/client/tcp/index.d.ts.map +1 -0
- package/dist/client/tcp/index.js +14 -0
- package/dist/client/tcp/index.js.map +1 -0
- package/dist/client/validation.d.ts +77 -0
- package/dist/client/validation.d.ts.map +1 -0
- package/dist/client/validation.js +112 -0
- package/dist/client/validation.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
[](https://github.com/egeominotti/flashq)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
+
**[Website](https://flashq.dev)** · **[Documentation](https://flashq.dev/docs/)** · **[GitHub](https://github.com/egeominotti/flashq)**
|
|
9
|
+
|
|
8
10
|
> **High-performance job queue with BullMQ-compatible API. No Redis required.**
|
|
9
11
|
|
|
10
12
|
flashQ is a drop-in replacement for BullMQ that runs on a single Rust binary. It's designed for AI/ML workloads with support for 10MB payloads, job dependencies, and 300K+ jobs/sec throughput.
|
|
@@ -447,6 +449,13 @@ Key differences:
|
|
|
447
449
|
- `connection` option replaced with `host`/`port`
|
|
448
450
|
- Some advanced BullMQ features may have different behavior
|
|
449
451
|
|
|
452
|
+
## Resources
|
|
453
|
+
|
|
454
|
+
- **Website:** [flashq.dev](https://flashq.dev)
|
|
455
|
+
- **Documentation:** [flashq.dev/docs](https://flashq.dev/docs/)
|
|
456
|
+
- **GitHub:** [github.com/egeominotti/flashq](https://github.com/egeominotti/flashq)
|
|
457
|
+
- **npm:** [npmjs.com/package/flashq](https://www.npmjs.com/package/flashq)
|
|
458
|
+
|
|
450
459
|
## License
|
|
451
460
|
|
|
452
461
|
MIT
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
2
|
import type { ClientOptions } from '../types';
|
|
3
3
|
import { Logger } from '../utils/logger';
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
export declare function validateQueueName(queue: string): void;
|
|
7
|
-
export declare function validateJobDataSize(data: unknown): void;
|
|
8
|
-
type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'reconnecting' | 'closed';
|
|
4
|
+
import type { ConnectionState } from './reconnect';
|
|
5
|
+
export { MAX_JOB_DATA_SIZE, MAX_BATCH_SIZE, validateQueueName, validateJobDataSize, } from './validation';
|
|
9
6
|
/** Client options with required fields except hooks */
|
|
10
7
|
type ResolvedClientOptions = Required<Omit<ClientOptions, 'hooks'>> & {
|
|
11
8
|
hooks?: ClientOptions['hooks'];
|
|
@@ -17,8 +14,7 @@ export declare class FlashQConnection extends EventEmitter {
|
|
|
17
14
|
private connectionState;
|
|
18
15
|
private authenticated;
|
|
19
16
|
private pendingRequests;
|
|
20
|
-
private
|
|
21
|
-
private bufferRemainder;
|
|
17
|
+
private jsonBuffer;
|
|
22
18
|
private binaryBuffer;
|
|
23
19
|
private reconnectAttempts;
|
|
24
20
|
private reconnectTimer;
|
|
@@ -33,14 +29,62 @@ export declare class FlashQConnection extends EventEmitter {
|
|
|
33
29
|
constructor(options?: ClientOptions);
|
|
34
30
|
/** @deprecated Use logger.debug() instead */
|
|
35
31
|
protected debug(message: string, data?: unknown): void;
|
|
36
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Invokes the connection hook if configured.
|
|
34
|
+
*
|
|
35
|
+
* Creates a ConnectionHookContext and calls the onConnection hook
|
|
36
|
+
* with the appropriate event type. Hook errors are caught and logged
|
|
37
|
+
* to prevent breaking the main flow.
|
|
38
|
+
*
|
|
39
|
+
* @param event - The connection event type
|
|
40
|
+
* @param error - Error object for error events
|
|
41
|
+
* @param attempt - Reconnection attempt number
|
|
42
|
+
*/
|
|
37
43
|
private callConnectionHook;
|
|
38
44
|
get options(): ResolvedClientOptions;
|
|
39
45
|
connect(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Schedules a reconnection attempt with exponential backoff.
|
|
48
|
+
*
|
|
49
|
+
* Calculates delay using: min(initialDelay * 2^attempt, maxDelay) + jitter
|
|
50
|
+
* Jitter is 0-30% of base delay to prevent thundering herd.
|
|
51
|
+
*
|
|
52
|
+
* Emits 'reconnecting' before attempt and 'reconnected' on success.
|
|
53
|
+
* On failure, recursively schedules next attempt until max reached.
|
|
54
|
+
*/
|
|
40
55
|
private scheduleReconnect;
|
|
56
|
+
/**
|
|
57
|
+
* Sets up event handlers on the TCP socket.
|
|
58
|
+
*
|
|
59
|
+
* Handlers:
|
|
60
|
+
* - 'data': Routes to JSON or binary buffer processor based on protocol
|
|
61
|
+
* - 'close': Triggers disconnect event and schedules reconnection
|
|
62
|
+
* - 'error': Emits error event and calls connection hook
|
|
63
|
+
*/
|
|
41
64
|
private setupSocketHandlers;
|
|
65
|
+
/**
|
|
66
|
+
* Processes the JSON text buffer to extract complete responses.
|
|
67
|
+
*
|
|
68
|
+
* Delegates to JsonBufferHandler for line extraction, then parses
|
|
69
|
+
* each complete line as JSON and passes to handleResponse.
|
|
70
|
+
*/
|
|
42
71
|
private processBuffer;
|
|
72
|
+
/**
|
|
73
|
+
* Processes the binary buffer to extract MessagePack frames.
|
|
74
|
+
*
|
|
75
|
+
* Delegates to BinaryBufferHandler for frame extraction and decoding,
|
|
76
|
+
* then passes each decoded object to handleResponse.
|
|
77
|
+
*/
|
|
43
78
|
private processBinaryBuffer;
|
|
79
|
+
/**
|
|
80
|
+
* Handles a parsed response from the server.
|
|
81
|
+
*
|
|
82
|
+
* Matches response.reqId to pending request, clears timeout,
|
|
83
|
+
* and resolves/rejects the promise. Server errors are parsed
|
|
84
|
+
* into typed FlashQError subclasses.
|
|
85
|
+
*
|
|
86
|
+
* @param response - Parsed response object with reqId
|
|
87
|
+
*/
|
|
44
88
|
private handleResponse;
|
|
45
89
|
close(): Promise<void>;
|
|
46
90
|
/** Get number of queued requests */
|
|
@@ -50,12 +94,72 @@ export declare class FlashQConnection extends EventEmitter {
|
|
|
50
94
|
ping(): Promise<boolean>;
|
|
51
95
|
auth(token: string): Promise<void>;
|
|
52
96
|
send<T>(command: Record<string, unknown>, customTimeout?: number): Promise<T>;
|
|
97
|
+
/**
|
|
98
|
+
* Internal send implementation without retry wrapper.
|
|
99
|
+
*
|
|
100
|
+
* Routes to queueRequest if disconnecting with queue enabled,
|
|
101
|
+
* waits for reconnection if in progress, then delegates to
|
|
102
|
+
* sendTcp or sendHttp based on protocol configuration.
|
|
103
|
+
*
|
|
104
|
+
* @param command - Command object to send
|
|
105
|
+
* @param customTimeout - Optional timeout override
|
|
106
|
+
* @returns Promise resolving to response
|
|
107
|
+
*/
|
|
53
108
|
private doSend;
|
|
109
|
+
/**
|
|
110
|
+
* Waits for an in-progress reconnection to complete.
|
|
111
|
+
*
|
|
112
|
+
* Listens for 'reconnected' or 'reconnect_failed' events.
|
|
113
|
+
* Times out after options.timeout milliseconds.
|
|
114
|
+
*
|
|
115
|
+
* @returns Promise that resolves when reconnected
|
|
116
|
+
* @throws ConnectionError on timeout or reconnection failure
|
|
117
|
+
*/
|
|
54
118
|
private waitForReconnection;
|
|
119
|
+
/**
|
|
120
|
+
* Queues a request for later execution after reconnection.
|
|
121
|
+
*
|
|
122
|
+
* Used when queueOnDisconnect is enabled and connection is lost.
|
|
123
|
+
* Requests are stored and replayed in order when reconnected.
|
|
124
|
+
*
|
|
125
|
+
* @param command - Command to queue
|
|
126
|
+
* @param customTimeout - Optional timeout for when request is eventually sent
|
|
127
|
+
* @returns Promise that resolves when request completes after reconnection
|
|
128
|
+
* @throws ConnectionError if queue is full
|
|
129
|
+
*/
|
|
55
130
|
private queueRequest;
|
|
131
|
+
/**
|
|
132
|
+
* Processes all queued requests after successful reconnection.
|
|
133
|
+
*
|
|
134
|
+
* Sends each queued request in order, resolving or rejecting
|
|
135
|
+
* the original promises. Clears the queue before processing
|
|
136
|
+
* to handle any new requests that may be queued during replay.
|
|
137
|
+
*/
|
|
56
138
|
private processRequestQueue;
|
|
139
|
+
/**
|
|
140
|
+
* Sends a command over the TCP socket.
|
|
141
|
+
*
|
|
142
|
+
* Handles request ID generation, optional compression,
|
|
143
|
+
* timeout management, and protocol serialization (JSON or MessagePack).
|
|
144
|
+
*
|
|
145
|
+
* @param command - Command object to send
|
|
146
|
+
* @param customTimeout - Optional timeout override in milliseconds
|
|
147
|
+
* @returns Promise resolving to typed response
|
|
148
|
+
* @throws ConnectionError if not connected
|
|
149
|
+
* @throws TimeoutError if request times out
|
|
150
|
+
*/
|
|
57
151
|
private sendTcp;
|
|
152
|
+
/**
|
|
153
|
+
* Sends a command via HTTP REST API.
|
|
154
|
+
*
|
|
155
|
+
* Converts the command to appropriate HTTP method and URL,
|
|
156
|
+
* handles authentication headers, and parses the JSON response.
|
|
157
|
+
*
|
|
158
|
+
* @param command - Command object to convert to HTTP request
|
|
159
|
+
* @param customTimeout - Optional timeout override in milliseconds
|
|
160
|
+
* @returns Promise resolving to typed response
|
|
161
|
+
* @throws TimeoutError if request times out
|
|
162
|
+
*/
|
|
58
163
|
private sendHttp;
|
|
59
164
|
}
|
|
60
|
-
export {};
|
|
61
165
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/client/connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/client/connection.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAA4B,MAAM,UAAU,CAAC;AAKxE,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AASxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAoBtB,uDAAuD;AACvD,KAAK,qBAAqB,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,GAAG;IACpE,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAEjB;IACF,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,OAAO,GAAE,aAAkB;IA2DvC,6CAA6C;IAC7C,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAItD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAiB1B,IAAI,OAAO,IAAI,qBAAqB,CAEnC;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmE9B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAerB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAuBhB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B5B,oCAAoC;IACpC,qBAAqB,IAAI,MAAM;IAI/B,WAAW,IAAI,OAAO;IAGtB,kBAAkB,IAAI,eAAe;IAI/B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IASxB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBnF;;;;;;;;;;OAUG;YACW,MAAM;IAepB;;;;;;;;OAQG;YACW,mBAAmB;IAsBjC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;IAiBpB;;;;;;OAMG;YACW,mBAAmB;IAejC;;;;;;;;;;;OAWG;YACW,OAAO;IA6ErB;;;;;;;;;;OAUG;YACW,QAAQ;CA0BvB"}
|
|
@@ -33,43 +33,39 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.FlashQConnection = exports.MAX_BATCH_SIZE = exports.MAX_JOB_DATA_SIZE = void 0;
|
|
37
|
-
exports.validateQueueName = validateQueueName;
|
|
38
|
-
exports.validateJobDataSize = validateJobDataSize;
|
|
36
|
+
exports.FlashQConnection = exports.validateJobDataSize = exports.validateQueueName = exports.MAX_BATCH_SIZE = exports.MAX_JOB_DATA_SIZE = void 0;
|
|
39
37
|
/**
|
|
40
38
|
* Connection management for FlashQ client.
|
|
39
|
+
*
|
|
40
|
+
* This module provides the core connection layer that handles:
|
|
41
|
+
* - TCP socket connections with auto-reconnect
|
|
42
|
+
* - HTTP fallback for environments without raw socket support
|
|
43
|
+
* - Binary (MessagePack) and JSON protocol support
|
|
44
|
+
* - Request queueing during disconnection
|
|
45
|
+
* - Compression for large payloads
|
|
46
|
+
*
|
|
47
|
+
* @module client/connection
|
|
41
48
|
*/
|
|
42
49
|
const net = __importStar(require("net"));
|
|
43
50
|
const zlib = __importStar(require("zlib"));
|
|
44
51
|
const util_1 = require("util");
|
|
45
52
|
const events_1 = require("events");
|
|
46
|
-
const msgpack_1 = require("@msgpack/msgpack");
|
|
47
53
|
const request_1 = require("./http/request");
|
|
48
54
|
const response_1 = require("./http/response");
|
|
49
55
|
const errors_1 = require("../errors");
|
|
50
56
|
const retry_1 = require("../utils/retry");
|
|
51
57
|
const logger_1 = require("../utils/logger");
|
|
52
58
|
const hooks_1 = require("../hooks");
|
|
59
|
+
const msgpack_1 = require("@msgpack/msgpack");
|
|
60
|
+
const tcp_1 = require("./tcp");
|
|
61
|
+
// Re-export validation utilities for backward compatibility
|
|
62
|
+
var validation_1 = require("./validation");
|
|
63
|
+
Object.defineProperty(exports, "MAX_JOB_DATA_SIZE", { enumerable: true, get: function () { return validation_1.MAX_JOB_DATA_SIZE; } });
|
|
64
|
+
Object.defineProperty(exports, "MAX_BATCH_SIZE", { enumerable: true, get: function () { return validation_1.MAX_BATCH_SIZE; } });
|
|
65
|
+
Object.defineProperty(exports, "validateQueueName", { enumerable: true, get: function () { return validation_1.validateQueueName; } });
|
|
66
|
+
Object.defineProperty(exports, "validateJobDataSize", { enumerable: true, get: function () { return validation_1.validateJobDataSize; } });
|
|
53
67
|
const gzip = (0, util_1.promisify)(zlib.gzip);
|
|
54
|
-
|
|
55
|
-
exports.MAX_BATCH_SIZE = 1000;
|
|
56
|
-
const QUEUE_NAME_REGEX = /^[a-zA-Z0-9_.-]{1,256}$/;
|
|
57
|
-
let requestIdCounter = 0;
|
|
58
|
-
const generateReqId = () => `r${++requestIdCounter}`;
|
|
59
|
-
function validateQueueName(queue) {
|
|
60
|
-
if (!queue || typeof queue !== 'string') {
|
|
61
|
-
throw new errors_1.ValidationError('Queue name is required', 'queue');
|
|
62
|
-
}
|
|
63
|
-
if (!QUEUE_NAME_REGEX.test(queue)) {
|
|
64
|
-
throw new errors_1.ValidationError(`Invalid queue name: "${queue}". Must be alphanumeric, _, -, . (1-256 chars)`, 'queue');
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
function validateJobDataSize(data) {
|
|
68
|
-
const size = JSON.stringify(data).length;
|
|
69
|
-
if (size > exports.MAX_JOB_DATA_SIZE) {
|
|
70
|
-
throw new errors_1.ValidationError(`Job data size (${size} bytes) exceeds max (${exports.MAX_JOB_DATA_SIZE} bytes)`, 'data');
|
|
71
|
-
}
|
|
72
|
-
}
|
|
68
|
+
/** Default retry configuration */
|
|
73
69
|
const DEFAULT_RETRY_CONFIG = {
|
|
74
70
|
enabled: false,
|
|
75
71
|
maxRetries: 3,
|
|
@@ -83,9 +79,8 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
83
79
|
connectionState = 'disconnected';
|
|
84
80
|
authenticated = false;
|
|
85
81
|
pendingRequests = new Map();
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
binaryBuffer = Buffer.alloc(0);
|
|
82
|
+
jsonBuffer = new tcp_1.JsonBufferHandler();
|
|
83
|
+
binaryBuffer = new tcp_1.BinaryBufferHandler();
|
|
89
84
|
reconnectAttempts = 0;
|
|
90
85
|
reconnectTimer = null;
|
|
91
86
|
manualClose = false;
|
|
@@ -155,7 +150,17 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
155
150
|
debug(message, data) {
|
|
156
151
|
this.logger.debug(message, data);
|
|
157
152
|
}
|
|
158
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* Invokes the connection hook if configured.
|
|
155
|
+
*
|
|
156
|
+
* Creates a ConnectionHookContext and calls the onConnection hook
|
|
157
|
+
* with the appropriate event type. Hook errors are caught and logged
|
|
158
|
+
* to prevent breaking the main flow.
|
|
159
|
+
*
|
|
160
|
+
* @param event - The connection event type
|
|
161
|
+
* @param error - Error object for error events
|
|
162
|
+
* @param attempt - Reconnection attempt number
|
|
163
|
+
*/
|
|
159
164
|
callConnectionHook(event, error, attempt) {
|
|
160
165
|
const hooks = this._options.hooks;
|
|
161
166
|
if (!hooks?.onConnection)
|
|
@@ -236,6 +241,15 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
236
241
|
});
|
|
237
242
|
});
|
|
238
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Schedules a reconnection attempt with exponential backoff.
|
|
246
|
+
*
|
|
247
|
+
* Calculates delay using: min(initialDelay * 2^attempt, maxDelay) + jitter
|
|
248
|
+
* Jitter is 0-30% of base delay to prevent thundering herd.
|
|
249
|
+
*
|
|
250
|
+
* Emits 'reconnecting' before attempt and 'reconnected' on success.
|
|
251
|
+
* On failure, recursively schedules next attempt until max reached.
|
|
252
|
+
*/
|
|
239
253
|
scheduleReconnect() {
|
|
240
254
|
if (this.manualClose || !this._options.autoReconnect)
|
|
241
255
|
return;
|
|
@@ -266,16 +280,24 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
266
280
|
}
|
|
267
281
|
}, delay);
|
|
268
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* Sets up event handlers on the TCP socket.
|
|
285
|
+
*
|
|
286
|
+
* Handlers:
|
|
287
|
+
* - 'data': Routes to JSON or binary buffer processor based on protocol
|
|
288
|
+
* - 'close': Triggers disconnect event and schedules reconnection
|
|
289
|
+
* - 'error': Emits error event and calls connection hook
|
|
290
|
+
*/
|
|
269
291
|
setupSocketHandlers() {
|
|
270
292
|
if (!this.socket)
|
|
271
293
|
return;
|
|
272
294
|
this.socket.on('data', (data) => {
|
|
273
295
|
if (this._options.useBinary) {
|
|
274
|
-
this.binaryBuffer
|
|
296
|
+
this.binaryBuffer.append(data);
|
|
275
297
|
this.processBinaryBuffer();
|
|
276
298
|
}
|
|
277
299
|
else {
|
|
278
|
-
this.
|
|
300
|
+
this.jsonBuffer.append(data);
|
|
279
301
|
this.processBuffer();
|
|
280
302
|
}
|
|
281
303
|
});
|
|
@@ -294,15 +316,15 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
294
316
|
this.callConnectionHook('error', err);
|
|
295
317
|
});
|
|
296
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* Processes the JSON text buffer to extract complete responses.
|
|
321
|
+
*
|
|
322
|
+
* Delegates to JsonBufferHandler for line extraction, then parses
|
|
323
|
+
* each complete line as JSON and passes to handleResponse.
|
|
324
|
+
*/
|
|
297
325
|
processBuffer() {
|
|
298
|
-
|
|
299
|
-
const fullBuffer = this.bufferRemainder + this.bufferChunks.join('');
|
|
300
|
-
this.bufferChunks.length = 0; // Clear array without reallocating
|
|
301
|
-
const lines = fullBuffer.split('\n');
|
|
302
|
-
this.bufferRemainder = lines.pop() ?? '';
|
|
326
|
+
const lines = this.jsonBuffer.extractLines();
|
|
303
327
|
for (const line of lines) {
|
|
304
|
-
if (!line.trim())
|
|
305
|
-
continue;
|
|
306
328
|
try {
|
|
307
329
|
this.handleResponse(JSON.parse(line));
|
|
308
330
|
}
|
|
@@ -315,24 +337,35 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
315
337
|
}
|
|
316
338
|
}
|
|
317
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* Processes the binary buffer to extract MessagePack frames.
|
|
342
|
+
*
|
|
343
|
+
* Delegates to BinaryBufferHandler for frame extraction and decoding,
|
|
344
|
+
* then passes each decoded object to handleResponse.
|
|
345
|
+
*/
|
|
318
346
|
processBinaryBuffer() {
|
|
319
|
-
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
const frameData = this.binaryBuffer.subarray(4, 4 + len);
|
|
324
|
-
this.binaryBuffer = this.binaryBuffer.subarray(4 + len);
|
|
325
|
-
try {
|
|
326
|
-
this.handleResponse((0, msgpack_1.decode)(frameData));
|
|
327
|
-
}
|
|
328
|
-
catch (err) {
|
|
329
|
-
this.debug('Failed to decode binary response', {
|
|
330
|
-
error: err instanceof Error ? err.message : err,
|
|
331
|
-
});
|
|
332
|
-
this.emit('parse_error', err, frameData);
|
|
347
|
+
try {
|
|
348
|
+
const frames = this.binaryBuffer.extractFrames();
|
|
349
|
+
for (const frame of frames) {
|
|
350
|
+
this.handleResponse(frame);
|
|
333
351
|
}
|
|
334
352
|
}
|
|
353
|
+
catch (err) {
|
|
354
|
+
this.debug('Failed to decode binary response', {
|
|
355
|
+
error: err instanceof Error ? err.message : err,
|
|
356
|
+
});
|
|
357
|
+
this.emit('parse_error', err);
|
|
358
|
+
}
|
|
335
359
|
}
|
|
360
|
+
/**
|
|
361
|
+
* Handles a parsed response from the server.
|
|
362
|
+
*
|
|
363
|
+
* Matches response.reqId to pending request, clears timeout,
|
|
364
|
+
* and resolves/rejects the promise. Server errors are parsed
|
|
365
|
+
* into typed FlashQError subclasses.
|
|
366
|
+
*
|
|
367
|
+
* @param response - Parsed response object with reqId
|
|
368
|
+
*/
|
|
336
369
|
handleResponse(response) {
|
|
337
370
|
if (!response.reqId) {
|
|
338
371
|
this.logger.warn('Received response without reqId', response);
|
|
@@ -372,6 +405,9 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
372
405
|
req.reject(new errors_1.ConnectionError('Connection closed', 'CONNECTION_CLOSED'));
|
|
373
406
|
}
|
|
374
407
|
this.requestQueue = [];
|
|
408
|
+
// Reset buffers
|
|
409
|
+
this.jsonBuffer.reset();
|
|
410
|
+
this.binaryBuffer.reset();
|
|
375
411
|
if (this.socket) {
|
|
376
412
|
this.socket.destroy();
|
|
377
413
|
this.socket = null;
|
|
@@ -423,6 +459,17 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
423
459
|
}
|
|
424
460
|
return this.doSend(command, customTimeout);
|
|
425
461
|
}
|
|
462
|
+
/**
|
|
463
|
+
* Internal send implementation without retry wrapper.
|
|
464
|
+
*
|
|
465
|
+
* Routes to queueRequest if disconnecting with queue enabled,
|
|
466
|
+
* waits for reconnection if in progress, then delegates to
|
|
467
|
+
* sendTcp or sendHttp based on protocol configuration.
|
|
468
|
+
*
|
|
469
|
+
* @param command - Command object to send
|
|
470
|
+
* @param customTimeout - Optional timeout override
|
|
471
|
+
* @returns Promise resolving to response
|
|
472
|
+
*/
|
|
426
473
|
async doSend(command, customTimeout) {
|
|
427
474
|
// Queue request if disconnected and queueOnDisconnect is enabled
|
|
428
475
|
if (this.queueOnDisconnect && this.connectionState === 'reconnecting') {
|
|
@@ -437,6 +484,15 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
437
484
|
? this.sendHttp(command, customTimeout)
|
|
438
485
|
: this.sendTcp(command, customTimeout);
|
|
439
486
|
}
|
|
487
|
+
/**
|
|
488
|
+
* Waits for an in-progress reconnection to complete.
|
|
489
|
+
*
|
|
490
|
+
* Listens for 'reconnected' or 'reconnect_failed' events.
|
|
491
|
+
* Times out after options.timeout milliseconds.
|
|
492
|
+
*
|
|
493
|
+
* @returns Promise that resolves when reconnected
|
|
494
|
+
* @throws ConnectionError on timeout or reconnection failure
|
|
495
|
+
*/
|
|
440
496
|
async waitForReconnection() {
|
|
441
497
|
return new Promise((resolve, reject) => {
|
|
442
498
|
const timeout = setTimeout(() => {
|
|
@@ -458,6 +514,17 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
458
514
|
this.once('reconnect_failed', onFailed);
|
|
459
515
|
});
|
|
460
516
|
}
|
|
517
|
+
/**
|
|
518
|
+
* Queues a request for later execution after reconnection.
|
|
519
|
+
*
|
|
520
|
+
* Used when queueOnDisconnect is enabled and connection is lost.
|
|
521
|
+
* Requests are stored and replayed in order when reconnected.
|
|
522
|
+
*
|
|
523
|
+
* @param command - Command to queue
|
|
524
|
+
* @param customTimeout - Optional timeout for when request is eventually sent
|
|
525
|
+
* @returns Promise that resolves when request completes after reconnection
|
|
526
|
+
* @throws ConnectionError if queue is full
|
|
527
|
+
*/
|
|
461
528
|
queueRequest(command, customTimeout) {
|
|
462
529
|
if (this.requestQueue.length >= this.maxQueuedRequests) {
|
|
463
530
|
return Promise.reject(new errors_1.ConnectionError(`Request queue full (max: ${this.maxQueuedRequests})`, 'QUEUE_FULL'));
|
|
@@ -472,6 +539,13 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
472
539
|
});
|
|
473
540
|
});
|
|
474
541
|
}
|
|
542
|
+
/**
|
|
543
|
+
* Processes all queued requests after successful reconnection.
|
|
544
|
+
*
|
|
545
|
+
* Sends each queued request in order, resolving or rejecting
|
|
546
|
+
* the original promises. Clears the queue before processing
|
|
547
|
+
* to handle any new requests that may be queued during replay.
|
|
548
|
+
*/
|
|
475
549
|
async processRequestQueue() {
|
|
476
550
|
if (this.requestQueue.length === 0)
|
|
477
551
|
return;
|
|
@@ -488,11 +562,23 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
488
562
|
}
|
|
489
563
|
}
|
|
490
564
|
}
|
|
565
|
+
/**
|
|
566
|
+
* Sends a command over the TCP socket.
|
|
567
|
+
*
|
|
568
|
+
* Handles request ID generation, optional compression,
|
|
569
|
+
* timeout management, and protocol serialization (JSON or MessagePack).
|
|
570
|
+
*
|
|
571
|
+
* @param command - Command object to send
|
|
572
|
+
* @param customTimeout - Optional timeout override in milliseconds
|
|
573
|
+
* @returns Promise resolving to typed response
|
|
574
|
+
* @throws ConnectionError if not connected
|
|
575
|
+
* @throws TimeoutError if request times out
|
|
576
|
+
*/
|
|
491
577
|
async sendTcp(command, customTimeout) {
|
|
492
578
|
if (!this.socket || this.connectionState !== 'connected') {
|
|
493
579
|
throw new errors_1.ConnectionError('Not connected', 'NOT_CONNECTED');
|
|
494
580
|
}
|
|
495
|
-
const reqId =
|
|
581
|
+
const reqId = (0, tcp_1.generateRequestId)();
|
|
496
582
|
const timeoutMs = customTimeout ?? this._options.timeout;
|
|
497
583
|
// Set request ID for logger correlation if tracking is enabled
|
|
498
584
|
if (this.trackRequestIds) {
|
|
@@ -560,6 +646,17 @@ class FlashQConnection extends events_1.EventEmitter {
|
|
|
560
646
|
this.logger.trace('Command sent', { reqId });
|
|
561
647
|
});
|
|
562
648
|
}
|
|
649
|
+
/**
|
|
650
|
+
* Sends a command via HTTP REST API.
|
|
651
|
+
*
|
|
652
|
+
* Converts the command to appropriate HTTP method and URL,
|
|
653
|
+
* handles authentication headers, and parses the JSON response.
|
|
654
|
+
*
|
|
655
|
+
* @param command - Command object to convert to HTTP request
|
|
656
|
+
* @param customTimeout - Optional timeout override in milliseconds
|
|
657
|
+
* @returns Promise resolving to typed response
|
|
658
|
+
* @throws TimeoutError if request times out
|
|
659
|
+
*/
|
|
563
660
|
async sendHttp(command, customTimeout) {
|
|
564
661
|
const { cmd, ...params } = command;
|
|
565
662
|
const baseUrl = `http://${this._options.host}:${this._options.httpPort}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/client/connection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/client/connection.ts"],"names":[],"mappings":"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"}
|