flashq 0.3.4 → 0.3.6
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/dist/client/connection.d.ts +3 -1
- package/dist/client/connection.d.ts.map +1 -1
- package/dist/client/connection.js +18 -15
- package/dist/client/connection.js.map +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +4 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/methods/core.d.ts.map +1 -1
- package/dist/client/methods/core.js +22 -79
- package/dist/client/methods/core.js.map +1 -1
- package/dist/client/methods/jobs.d.ts +18 -0
- package/dist/client/methods/jobs.d.ts.map +1 -1
- package/dist/client/methods/jobs.js +29 -2
- package/dist/client/methods/jobs.js.map +1 -1
- package/dist/client/reconnect.d.ts.map +1 -1
- package/dist/client/reconnect.js +4 -1
- package/dist/client/reconnect.js.map +1 -1
- package/dist/client/tcp/handler.d.ts +44 -4
- package/dist/client/tcp/handler.d.ts.map +1 -1
- package/dist/client/tcp/handler.js +76 -10
- package/dist/client/tcp/handler.js.map +1 -1
- package/dist/client/tcp/index.d.ts +1 -1
- package/dist/client/tcp/index.d.ts.map +1 -1
- package/dist/client/tcp/index.js +2 -1
- package/dist/client/tcp/index.js.map +1 -1
- package/dist/client/validation.d.ts +43 -0
- package/dist/client/validation.d.ts.map +1 -1
- package/dist/client/validation.js +43 -2
- package/dist/client/validation.js.map +1 -1
- package/dist/constants.d.ts +67 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +79 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -1
- package/dist/index.js.map +1 -1
- package/dist/queue.d.ts +16 -1
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +3 -0
- package/dist/queue.js.map +1 -1
- package/dist/utils/retry.d.ts +1 -1
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +11 -10
- package/dist/utils/retry.js.map +1 -1
- package/dist/worker.d.ts +54 -3
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +40 -32
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,8 @@ exports.getProgress = getProgress;
|
|
|
12
12
|
exports.log = log;
|
|
13
13
|
exports.getLogs = getLogs;
|
|
14
14
|
exports.heartbeat = heartbeat;
|
|
15
|
+
exports.partial = partial;
|
|
16
|
+
const constants_1 = require("../../constants");
|
|
15
17
|
/**
|
|
16
18
|
* Get a job with its current state.
|
|
17
19
|
*
|
|
@@ -93,8 +95,8 @@ async function getResult(client, jobId) {
|
|
|
93
95
|
* ```
|
|
94
96
|
*/
|
|
95
97
|
async function finished(client, jobId, timeout) {
|
|
96
|
-
const waitTimeout = timeout ??
|
|
97
|
-
const requestTimeout = waitTimeout +
|
|
98
|
+
const waitTimeout = timeout ?? constants_1.DEFAULT_FINISHED_TIMEOUT;
|
|
99
|
+
const requestTimeout = waitTimeout + constants_1.CLIENT_TIMEOUT_BUFFER;
|
|
98
100
|
const response = await client.send({
|
|
99
101
|
cmd: 'WAITJOB',
|
|
100
102
|
id: jobId,
|
|
@@ -259,4 +261,29 @@ async function heartbeat(client, jobId) {
|
|
|
259
261
|
job_id: jobId,
|
|
260
262
|
});
|
|
261
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* Send a partial result for streaming jobs.
|
|
266
|
+
* Emits a "partial" event that can be subscribed via SSE/WebSocket.
|
|
267
|
+
*
|
|
268
|
+
* @param client - FlashQ client instance
|
|
269
|
+
* @param jobId - Job ID (must be in processing)
|
|
270
|
+
* @param data - Partial result data
|
|
271
|
+
* @param index - Optional chunk index for ordering
|
|
272
|
+
*
|
|
273
|
+
* @example
|
|
274
|
+
* ```typescript
|
|
275
|
+
* // LLM token streaming
|
|
276
|
+
* for await (const token of llm.generate(prompt)) {
|
|
277
|
+
* await client.partial(job.id, { token });
|
|
278
|
+
* }
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
281
|
+
async function partial(client, jobId, data, index) {
|
|
282
|
+
await client.send({
|
|
283
|
+
cmd: 'PARTIAL',
|
|
284
|
+
id: jobId,
|
|
285
|
+
data,
|
|
286
|
+
index,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
262
289
|
//# sourceMappingURL=jobs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/client/methods/jobs.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/client/methods/jobs.ts"],"names":[],"mappings":";;AAqBA,wBAWC;AAeD,4BAUC;AAcD,8BAaC;AAmBD,4BAyBC;AAmBD,4CAcC;AAcD,oCAgBC;AAaD,wBAKC;AAeD,4BAYC;AAcD,kCAgBC;AAgBD,kBAYC;AAcD,0BAMC;AAGD,8BAKC;AAmBD,0BAYC;AA7VD,+CAAkF;AAElF;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,MAAM,CAAC,MAAqB,EAAE,KAAa;IAC/D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAI/B;QACD,GAAG,EAAE,QAAQ;QACb,EAAE,EAAE,KAAK;KACV,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAM,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,QAAQ,CAAC,MAAqB,EAAE,KAAa;IACjE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAI/B;QACD,GAAG,EAAE,UAAU;QACf,EAAE,EAAE,KAAK;KACV,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,KAAK,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,SAAS,CAC7B,MAAqB,EACrB,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAI/B;QACD,GAAG,EAAE,WAAW;QAChB,EAAE,EAAE,KAAK;KACV,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,MAAM,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,QAAQ,CAC5B,MAAqB,EACrB,KAAa,EACb,OAAgB;IAEhB,MAAM,WAAW,GAAG,OAAO,IAAI,oCAAwB,CAAC;IACxD,MAAM,cAAc,GAAG,WAAW,GAAG,iCAAqB,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAKhC;QACE,GAAG,EAAE,SAAS;QACd,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,WAAW;KACrB,EACD,cAAc,CACf,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAqB,EACrB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAI/B;QACD,GAAG,EAAE,kBAAkB;QACvB,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAM,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,MAAgB;IAEhB,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAG/B;QACD,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,EAAE,GAAG,EAAE,GAAU,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,MAAM,CAAC,MAAqB,EAAE,KAAa;IAC/D,MAAM,MAAM,CAAC,IAAI,CAAkB;QACjC,GAAG,EAAE,QAAQ;QACb,EAAE,EAAE,KAAK;KACV,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,QAAQ,CAC5B,MAAqB,EACrB,KAAa,EACb,aAAqB,EACrB,OAAgB;IAEhB,MAAM,MAAM,CAAC,IAAI,CAAkB;QACjC,GAAG,EAAE,UAAU;QACf,EAAE,EAAE,KAAK;QACT,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACnD,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAO/B;QACD,GAAG,EAAE,aAAa;QAClB,EAAE,EAAE,KAAK;KACV,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACtF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,GAAG,CACvB,MAAqB,EACrB,KAAa,EACb,OAAe,EACf,QAAmC,MAAM;IAEzC,MAAM,MAAM,CAAC,IAAI,CAAkB;QACjC,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,KAAK;QACb,OAAO;QACP,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,OAAO,CAAC,MAAqB,EAAE,KAAa;IAChE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAuC;QACvE,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,oEAAoE;AAC7D,KAAK,UAAU,SAAS,CAAC,MAAqB,EAAE,KAAa;IAClE,MAAM,MAAM,CAAC,IAAI,CAAkB;QACjC,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,OAAO,CAC3B,MAAqB,EACrB,KAAa,EACb,IAAa,EACb,KAAc;IAEd,MAAM,MAAM,CAAC,IAAI,CAAkB;QACjC,GAAG,EAAE,SAAS;QACd,EAAE,EAAE,KAAK;QACT,IAAI;QACJ,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconnect.d.ts","sourceRoot":"","sources":["../../src/client/reconnect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,sCAAsC;AACtC,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,YAAY,GACZ,WAAW,GACX,cAAc,GACd,QAAQ,CAAC;AAEb,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAgB;IASzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAK;IACrB,8CAA8C;IAC9C,OAAO,CAAC,KAAK,CAA8C;IAC3D,yCAAyC;IACzC,OAAO,CAAC,SAAS,CAAS;gBAGP,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY;IAGxC;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IASvC;;;;OAIG;IACH,QAAQ,IAAI,OAAO;IAMnB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"reconnect.d.ts","sourceRoot":"","sources":["../../src/client/reconnect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,sCAAsC;AACtC,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,YAAY,GACZ,WAAW,GACX,cAAc,GACd,QAAQ,CAAC;AAEb,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAgB;IASzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAK;IACrB,8CAA8C;IAC9C,OAAO,CAAC,KAAK,CAA8C;IAC3D,yCAAyC;IACzC,OAAO,CAAC,SAAS,CAAS;gBAGP,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY;IAGxC;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IASvC;;;;OAIG;IACH,QAAQ,IAAI,OAAO;IAMnB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAmC9C;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBzF"}
|
package/dist/client/reconnect.js
CHANGED
|
@@ -79,7 +79,10 @@ class ReconnectManager {
|
|
|
79
79
|
}
|
|
80
80
|
this.attempts++;
|
|
81
81
|
const delay = this.calculateDelay(this.attempts);
|
|
82
|
-
this.logger.info('Scheduling reconnection', {
|
|
82
|
+
this.logger.info('Scheduling reconnection', {
|
|
83
|
+
attempt: this.attempts,
|
|
84
|
+
delay: Math.round(delay),
|
|
85
|
+
});
|
|
83
86
|
this.emitter.emit('reconnecting', { attempt: this.attempts, delay });
|
|
84
87
|
this.timer = setTimeout(async () => {
|
|
85
88
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconnect.js","sourceRoot":"","sources":["../../src/client/reconnect.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"reconnect.js","sourceRoot":"","sources":["../../src/client/reconnect.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,16 +51,31 @@ export declare class JsonBufferHandler {
|
|
|
51
51
|
*
|
|
52
52
|
* Each message is framed with a 4-byte big-endian length prefix
|
|
53
53
|
* followed by the MessagePack-encoded payload.
|
|
54
|
+
*
|
|
55
|
+
* Uses chunked accumulation for O(n) performance instead of
|
|
56
|
+
* O(n²) from Buffer.concat on every append.
|
|
54
57
|
*/
|
|
55
58
|
export declare class BinaryBufferHandler {
|
|
56
|
-
/** Accumulated binary
|
|
59
|
+
/** Accumulated binary chunks waiting to be joined */
|
|
60
|
+
private chunks;
|
|
61
|
+
/** Total length of all chunks */
|
|
62
|
+
private totalLength;
|
|
63
|
+
/** Consolidated buffer for frame extraction */
|
|
57
64
|
private buffer;
|
|
58
65
|
/**
|
|
59
66
|
* Appends new data to the buffer.
|
|
60
67
|
*
|
|
68
|
+
* Chunks are accumulated and only consolidated when extracting frames,
|
|
69
|
+
* avoiding O(n²) performance from repeated Buffer.concat calls.
|
|
70
|
+
*
|
|
61
71
|
* @param data - Raw data from socket
|
|
62
72
|
*/
|
|
63
73
|
append(data: Buffer): void;
|
|
74
|
+
/**
|
|
75
|
+
* Consolidates accumulated chunks into a single buffer.
|
|
76
|
+
* Only called when extracting frames.
|
|
77
|
+
*/
|
|
78
|
+
private consolidate;
|
|
64
79
|
/**
|
|
65
80
|
* Extracts all complete frames from the buffer.
|
|
66
81
|
*
|
|
@@ -91,16 +106,41 @@ export declare function encodeCommand(command: Record<string, unknown>, reqId: s
|
|
|
91
106
|
*/
|
|
92
107
|
export declare function parseJsonResponse(line: string): Record<string, unknown> | null;
|
|
93
108
|
/**
|
|
94
|
-
* Generates
|
|
109
|
+
* Generates unique request IDs for a client instance.
|
|
95
110
|
*
|
|
96
|
-
*
|
|
111
|
+
* Each instance has its own counter to avoid conflicts in multi-client scenarios.
|
|
112
|
+
* Includes a unique prefix based on timestamp and random value for global uniqueness.
|
|
113
|
+
*/
|
|
114
|
+
export declare class RequestIdGenerator {
|
|
115
|
+
private counter;
|
|
116
|
+
private readonly prefix;
|
|
117
|
+
constructor();
|
|
118
|
+
/**
|
|
119
|
+
* Generates a unique request ID.
|
|
120
|
+
*
|
|
121
|
+
* Format: "{prefix}-{incrementing number}"
|
|
122
|
+
*
|
|
123
|
+
* @returns Unique request ID string
|
|
124
|
+
*/
|
|
125
|
+
generate(): string;
|
|
126
|
+
/**
|
|
127
|
+
* Resets the counter.
|
|
128
|
+
* Primarily used for testing.
|
|
129
|
+
*/
|
|
130
|
+
reset(): void;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Generates a unique request ID using the default generator.
|
|
97
134
|
*
|
|
135
|
+
* @deprecated Use RequestIdGenerator instance for multi-client scenarios
|
|
98
136
|
* @returns Unique request ID string
|
|
99
137
|
*/
|
|
100
138
|
export declare function generateRequestId(): string;
|
|
101
139
|
/**
|
|
102
|
-
* Resets the request ID counter.
|
|
140
|
+
* Resets the default request ID counter.
|
|
103
141
|
* Primarily used for testing.
|
|
142
|
+
*
|
|
143
|
+
* @deprecated Use RequestIdGenerator instance for multi-client scenarios
|
|
104
144
|
*/
|
|
105
145
|
export declare function resetRequestIdCounter(): void;
|
|
106
146
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,4BAA4B;IAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CACtC;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,qDAAqD;IACrD,OAAO,CAAC,MAAM,CAAgB;IAC9B,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAAM;IAEvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC;;;;;;;OAOG;IACH,YAAY,IAAI,MAAM,EAAE;IAWxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,4BAA4B;IAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CACtC;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,qDAAqD;IACrD,OAAO,CAAC,MAAM,CAAgB;IAC9B,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAAM;IAEvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC;;;;;;;OAOG;IACH,YAAY,IAAI,MAAM,EAAE;IAWxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,qDAAqD;IACrD,OAAO,CAAC,MAAM,CAAgB;IAC9B,iCAAiC;IACjC,OAAO,CAAC,WAAW,CAAK;IACxB,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAA2B;IAEzC;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;;;;OAMG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAkB1C;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,MAAM,CAYR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAM9E;AAED;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAOhC;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,KAAK,IAAI,IAAI;CAGd;AAKD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* for both JSON (newline-delimited) and binary (MessagePack) protocols.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.BinaryBufferHandler = exports.JsonBufferHandler = void 0;
|
|
9
|
+
exports.RequestIdGenerator = exports.BinaryBufferHandler = exports.JsonBufferHandler = void 0;
|
|
10
10
|
exports.encodeCommand = encodeCommand;
|
|
11
11
|
exports.parseJsonResponse = parseJsonResponse;
|
|
12
12
|
exports.generateRequestId = generateRequestId;
|
|
@@ -61,17 +61,47 @@ exports.JsonBufferHandler = JsonBufferHandler;
|
|
|
61
61
|
*
|
|
62
62
|
* Each message is framed with a 4-byte big-endian length prefix
|
|
63
63
|
* followed by the MessagePack-encoded payload.
|
|
64
|
+
*
|
|
65
|
+
* Uses chunked accumulation for O(n) performance instead of
|
|
66
|
+
* O(n²) from Buffer.concat on every append.
|
|
64
67
|
*/
|
|
65
68
|
class BinaryBufferHandler {
|
|
66
|
-
/** Accumulated binary
|
|
69
|
+
/** Accumulated binary chunks waiting to be joined */
|
|
70
|
+
chunks = [];
|
|
71
|
+
/** Total length of all chunks */
|
|
72
|
+
totalLength = 0;
|
|
73
|
+
/** Consolidated buffer for frame extraction */
|
|
67
74
|
buffer = Buffer.alloc(0);
|
|
68
75
|
/**
|
|
69
76
|
* Appends new data to the buffer.
|
|
70
77
|
*
|
|
78
|
+
* Chunks are accumulated and only consolidated when extracting frames,
|
|
79
|
+
* avoiding O(n²) performance from repeated Buffer.concat calls.
|
|
80
|
+
*
|
|
71
81
|
* @param data - Raw data from socket
|
|
72
82
|
*/
|
|
73
83
|
append(data) {
|
|
74
|
-
this.
|
|
84
|
+
this.chunks.push(data);
|
|
85
|
+
this.totalLength += data.length;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Consolidates accumulated chunks into a single buffer.
|
|
89
|
+
* Only called when extracting frames.
|
|
90
|
+
*/
|
|
91
|
+
consolidate() {
|
|
92
|
+
if (this.chunks.length === 0)
|
|
93
|
+
return;
|
|
94
|
+
// Concat all chunks at once (single allocation)
|
|
95
|
+
const newData = Buffer.concat(this.chunks, this.totalLength);
|
|
96
|
+
this.chunks.length = 0;
|
|
97
|
+
this.totalLength = 0;
|
|
98
|
+
// Append to existing buffer if any remainder exists
|
|
99
|
+
if (this.buffer.length > 0) {
|
|
100
|
+
this.buffer = Buffer.concat([this.buffer, newData]);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.buffer = newData;
|
|
104
|
+
}
|
|
75
105
|
}
|
|
76
106
|
/**
|
|
77
107
|
* Extracts all complete frames from the buffer.
|
|
@@ -81,6 +111,7 @@ class BinaryBufferHandler {
|
|
|
81
111
|
* @returns Array of decoded message objects
|
|
82
112
|
*/
|
|
83
113
|
extractFrames() {
|
|
114
|
+
this.consolidate();
|
|
84
115
|
const frames = [];
|
|
85
116
|
while (this.buffer.length >= 4) {
|
|
86
117
|
const len = this.buffer.readUInt32BE(0);
|
|
@@ -96,6 +127,8 @@ class BinaryBufferHandler {
|
|
|
96
127
|
* Resets the buffer state.
|
|
97
128
|
*/
|
|
98
129
|
reset() {
|
|
130
|
+
this.chunks.length = 0;
|
|
131
|
+
this.totalLength = 0;
|
|
99
132
|
this.buffer = Buffer.alloc(0);
|
|
100
133
|
}
|
|
101
134
|
}
|
|
@@ -133,23 +166,56 @@ function parseJsonResponse(line) {
|
|
|
133
166
|
return null;
|
|
134
167
|
}
|
|
135
168
|
}
|
|
136
|
-
/** Counter for generating unique request IDs */
|
|
137
|
-
let requestIdCounter = 0;
|
|
138
169
|
/**
|
|
139
|
-
* Generates
|
|
170
|
+
* Generates unique request IDs for a client instance.
|
|
140
171
|
*
|
|
141
|
-
*
|
|
172
|
+
* Each instance has its own counter to avoid conflicts in multi-client scenarios.
|
|
173
|
+
* Includes a unique prefix based on timestamp and random value for global uniqueness.
|
|
174
|
+
*/
|
|
175
|
+
class RequestIdGenerator {
|
|
176
|
+
counter = 0;
|
|
177
|
+
prefix;
|
|
178
|
+
constructor() {
|
|
179
|
+
// Create unique prefix: timestamp + random to ensure uniqueness across instances
|
|
180
|
+
this.prefix = `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Generates a unique request ID.
|
|
184
|
+
*
|
|
185
|
+
* Format: "{prefix}-{incrementing number}"
|
|
186
|
+
*
|
|
187
|
+
* @returns Unique request ID string
|
|
188
|
+
*/
|
|
189
|
+
generate() {
|
|
190
|
+
return `${this.prefix}-${++this.counter}`;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Resets the counter.
|
|
194
|
+
* Primarily used for testing.
|
|
195
|
+
*/
|
|
196
|
+
reset() {
|
|
197
|
+
this.counter = 0;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.RequestIdGenerator = RequestIdGenerator;
|
|
201
|
+
/** Default generator for backward compatibility */
|
|
202
|
+
const defaultGenerator = new RequestIdGenerator();
|
|
203
|
+
/**
|
|
204
|
+
* Generates a unique request ID using the default generator.
|
|
142
205
|
*
|
|
206
|
+
* @deprecated Use RequestIdGenerator instance for multi-client scenarios
|
|
143
207
|
* @returns Unique request ID string
|
|
144
208
|
*/
|
|
145
209
|
function generateRequestId() {
|
|
146
|
-
return
|
|
210
|
+
return defaultGenerator.generate();
|
|
147
211
|
}
|
|
148
212
|
/**
|
|
149
|
-
* Resets the request ID counter.
|
|
213
|
+
* Resets the default request ID counter.
|
|
150
214
|
* Primarily used for testing.
|
|
215
|
+
*
|
|
216
|
+
* @deprecated Use RequestIdGenerator instance for multi-client scenarios
|
|
151
217
|
*/
|
|
152
218
|
function resetRequestIdCounter() {
|
|
153
|
-
|
|
219
|
+
defaultGenerator.reset();
|
|
154
220
|
}
|
|
155
221
|
//# sourceMappingURL=handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/client/tcp/handler.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/client/tcp/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TCP protocol module exports.
|
|
3
3
|
*/
|
|
4
|
-
export { type PendingRequest, JsonBufferHandler, BinaryBufferHandler, encodeCommand, parseJsonResponse, generateRequestId, resetRequestIdCounter, } from './handler';
|
|
4
|
+
export { type PendingRequest, JsonBufferHandler, BinaryBufferHandler, RequestIdGenerator, encodeCommand, parseJsonResponse, generateRequestId, resetRequestIdCounter, } from './handler';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,KAAK,cAAc,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,KAAK,cAAc,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,WAAW,CAAC"}
|
package/dist/client/tcp/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resetRequestIdCounter = exports.generateRequestId = exports.parseJsonResponse = exports.encodeCommand = exports.BinaryBufferHandler = exports.JsonBufferHandler = void 0;
|
|
3
|
+
exports.resetRequestIdCounter = exports.generateRequestId = exports.parseJsonResponse = exports.encodeCommand = exports.RequestIdGenerator = exports.BinaryBufferHandler = exports.JsonBufferHandler = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* TCP protocol module exports.
|
|
6
6
|
*/
|
|
7
7
|
var handler_1 = require("./handler");
|
|
8
8
|
Object.defineProperty(exports, "JsonBufferHandler", { enumerable: true, get: function () { return handler_1.JsonBufferHandler; } });
|
|
9
9
|
Object.defineProperty(exports, "BinaryBufferHandler", { enumerable: true, get: function () { return handler_1.BinaryBufferHandler; } });
|
|
10
|
+
Object.defineProperty(exports, "RequestIdGenerator", { enumerable: true, get: function () { return handler_1.RequestIdGenerator; } });
|
|
10
11
|
Object.defineProperty(exports, "encodeCommand", { enumerable: true, get: function () { return handler_1.encodeCommand; } });
|
|
11
12
|
Object.defineProperty(exports, "parseJsonResponse", { enumerable: true, get: function () { return handler_1.parseJsonResponse; } });
|
|
12
13
|
Object.defineProperty(exports, "generateRequestId", { enumerable: true, get: function () { return handler_1.generateRequestId; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/tcp/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/tcp/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,qCASmB;AAPjB,4GAAA,iBAAiB,OAAA;AACjB,8GAAA,mBAAmB,OAAA;AACnB,6GAAA,kBAAkB,OAAA;AAClB,wGAAA,aAAa,OAAA;AACb,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AACjB,gHAAA,qBAAqB,OAAA"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Provides validation functions for queue names, job data sizes,
|
|
5
5
|
* and batch operation limits.
|
|
6
6
|
*/
|
|
7
|
+
import type { PushOptions } from '../types';
|
|
7
8
|
/** Maximum allowed job data size in bytes (1MB) */
|
|
8
9
|
export declare const MAX_JOB_DATA_SIZE: number;
|
|
9
10
|
/** Maximum number of jobs per batch operation */
|
|
@@ -74,4 +75,46 @@ export declare function validateJobId(jobId: number): void;
|
|
|
74
75
|
* @throws ValidationError if timeout is out of bounds
|
|
75
76
|
*/
|
|
76
77
|
export declare function validateTimeout(timeout: number, min?: number, max?: number): void;
|
|
78
|
+
/**
|
|
79
|
+
* Server-side job payload structure.
|
|
80
|
+
* This is the format expected by the flashQ server.
|
|
81
|
+
*/
|
|
82
|
+
export interface JobPayload<T = unknown> {
|
|
83
|
+
data: T;
|
|
84
|
+
priority: number;
|
|
85
|
+
delay?: number;
|
|
86
|
+
ttl?: number;
|
|
87
|
+
timeout?: number;
|
|
88
|
+
max_attempts?: number;
|
|
89
|
+
backoff?: number;
|
|
90
|
+
unique_key?: string;
|
|
91
|
+
depends_on?: number[];
|
|
92
|
+
tags?: string[];
|
|
93
|
+
lifo: boolean;
|
|
94
|
+
remove_on_complete: boolean;
|
|
95
|
+
remove_on_fail: boolean;
|
|
96
|
+
stall_timeout?: number;
|
|
97
|
+
debounce_id?: string;
|
|
98
|
+
debounce_ttl?: number;
|
|
99
|
+
job_id?: string;
|
|
100
|
+
keep_completed_age?: number;
|
|
101
|
+
keep_completed_count?: number;
|
|
102
|
+
group_id?: string;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Maps PushOptions to server payload format.
|
|
106
|
+
*
|
|
107
|
+
* This is the single source of truth for option-to-payload mapping,
|
|
108
|
+
* eliminating duplication across push, pushBatch, and pushBatchSafe.
|
|
109
|
+
*
|
|
110
|
+
* @param data - Job data payload
|
|
111
|
+
* @param options - Push options
|
|
112
|
+
* @returns Server-compatible job payload
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const payload = mapJobToPayload({ email: 'test@example.com' }, { priority: 10 });
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
export declare function mapJobToPayload<T>(data: T, options?: PushOptions): JobPayload<T>;
|
|
77
120
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/client/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/client/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAO5C,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,QAAqB,CAAC;AAEpD,iDAAiD;AACjD,eAAO,MAAM,cAAc,OAAkB,CAAC;AAK9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAUrD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAQvD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAOxE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAI,EAAE,GAAG,SAAS,GAAG,IAAI,CAI5E;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,CAuBpF"}
|
|
@@ -12,11 +12,13 @@ exports.validateJobDataSize = validateJobDataSize;
|
|
|
12
12
|
exports.validateBatchSize = validateBatchSize;
|
|
13
13
|
exports.validateJobId = validateJobId;
|
|
14
14
|
exports.validateTimeout = validateTimeout;
|
|
15
|
+
exports.mapJobToPayload = mapJobToPayload;
|
|
15
16
|
const errors_1 = require("../errors");
|
|
17
|
+
const constants_1 = require("../constants");
|
|
16
18
|
/** Maximum allowed job data size in bytes (1MB) */
|
|
17
|
-
exports.MAX_JOB_DATA_SIZE =
|
|
19
|
+
exports.MAX_JOB_DATA_SIZE = constants_1.MAX_JOB_DATA_SIZE;
|
|
18
20
|
/** Maximum number of jobs per batch operation */
|
|
19
|
-
exports.MAX_BATCH_SIZE =
|
|
21
|
+
exports.MAX_BATCH_SIZE = constants_1.MAX_BATCH_SIZE;
|
|
20
22
|
/** Regex pattern for valid queue names: alphanumeric, underscore, hyphen, dot (1-256 chars) */
|
|
21
23
|
const QUEUE_NAME_REGEX = /^[a-zA-Z0-9_.-]{1,256}$/;
|
|
22
24
|
/**
|
|
@@ -109,4 +111,43 @@ function validateTimeout(timeout, min = 0, max = 600000) {
|
|
|
109
111
|
throw new errors_1.ValidationError(`Timeout ${timeout}ms out of bounds (${min}-${max}ms)`, 'timeout');
|
|
110
112
|
}
|
|
111
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Maps PushOptions to server payload format.
|
|
116
|
+
*
|
|
117
|
+
* This is the single source of truth for option-to-payload mapping,
|
|
118
|
+
* eliminating duplication across push, pushBatch, and pushBatchSafe.
|
|
119
|
+
*
|
|
120
|
+
* @param data - Job data payload
|
|
121
|
+
* @param options - Push options
|
|
122
|
+
* @returns Server-compatible job payload
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* const payload = mapJobToPayload({ email: 'test@example.com' }, { priority: 10 });
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
function mapJobToPayload(data, options = {}) {
|
|
130
|
+
return {
|
|
131
|
+
data,
|
|
132
|
+
priority: options.priority ?? constants_1.DEFAULT_JOB_PRIORITY,
|
|
133
|
+
delay: options.delay,
|
|
134
|
+
ttl: options.ttl,
|
|
135
|
+
timeout: options.timeout,
|
|
136
|
+
max_attempts: options.max_attempts,
|
|
137
|
+
backoff: options.backoff,
|
|
138
|
+
unique_key: options.unique_key,
|
|
139
|
+
depends_on: options.depends_on,
|
|
140
|
+
tags: options.tags,
|
|
141
|
+
lifo: options.lifo ?? false,
|
|
142
|
+
remove_on_complete: options.remove_on_complete ?? false,
|
|
143
|
+
remove_on_fail: options.remove_on_fail ?? false,
|
|
144
|
+
stall_timeout: options.stall_timeout,
|
|
145
|
+
debounce_id: options.debounce_id,
|
|
146
|
+
debounce_ttl: options.debounce_ttl,
|
|
147
|
+
job_id: options.jobId,
|
|
148
|
+
keep_completed_age: options.keepCompletedAge,
|
|
149
|
+
keep_completed_count: options.keepCompletedCount,
|
|
150
|
+
group_id: options.group_id,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
112
153
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/client/validation.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/client/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Constants
|
|
3
|
+
*
|
|
4
|
+
* Centralized configuration constants to avoid magic numbers
|
|
5
|
+
* and ensure consistency across the codebase.
|
|
6
|
+
*/
|
|
7
|
+
/** Maximum allowed job data size in bytes (1MB) */
|
|
8
|
+
export declare const MAX_JOB_DATA_SIZE: number;
|
|
9
|
+
/** Maximum number of jobs per batch operation */
|
|
10
|
+
export declare const MAX_BATCH_SIZE = 1000;
|
|
11
|
+
/** Maximum queue name length */
|
|
12
|
+
export declare const MAX_QUEUE_NAME_LENGTH = 256;
|
|
13
|
+
/** Default connection timeout in ms */
|
|
14
|
+
export declare const DEFAULT_CONNECTION_TIMEOUT = 5000;
|
|
15
|
+
/** Default server-side pull timeout in ms */
|
|
16
|
+
export declare const DEFAULT_PULL_TIMEOUT = 60000;
|
|
17
|
+
/** Additional client timeout buffer over server timeout */
|
|
18
|
+
export declare const CLIENT_TIMEOUT_BUFFER = 5000;
|
|
19
|
+
/** Default job completion wait timeout in ms */
|
|
20
|
+
export declare const DEFAULT_FINISHED_TIMEOUT = 30000;
|
|
21
|
+
/** Default worker concurrency */
|
|
22
|
+
export declare const DEFAULT_WORKER_CONCURRENCY = 10;
|
|
23
|
+
/** Default worker batch size */
|
|
24
|
+
export declare const DEFAULT_WORKER_BATCH_SIZE = 100;
|
|
25
|
+
/** Worker pull timeout for responsive shutdown (ms) */
|
|
26
|
+
export declare const WORKER_PULL_TIMEOUT = 500;
|
|
27
|
+
/** Worker error retry delay (ms) */
|
|
28
|
+
export declare const WORKER_ERROR_RETRY_DELAY = 1000;
|
|
29
|
+
/** Default graceful shutdown timeout (ms) */
|
|
30
|
+
export declare const DEFAULT_CLOSE_TIMEOUT = 30000;
|
|
31
|
+
/** Worker job completion check interval (ms) */
|
|
32
|
+
export declare const WORKER_JOB_CHECK_INTERVAL = 50;
|
|
33
|
+
/** Default initial reconnect delay in ms */
|
|
34
|
+
export declare const DEFAULT_RECONNECT_DELAY = 1000;
|
|
35
|
+
/** Default max reconnect delay in ms */
|
|
36
|
+
export declare const DEFAULT_MAX_RECONNECT_DELAY = 30000;
|
|
37
|
+
/** Default max reconnect attempts (0 = infinite) */
|
|
38
|
+
export declare const DEFAULT_MAX_RECONNECT_ATTEMPTS = 10;
|
|
39
|
+
/** Reconnect jitter factor (0.3 = 30% of base delay) */
|
|
40
|
+
export declare const RECONNECT_JITTER_FACTOR = 0.3;
|
|
41
|
+
/** Default retry max attempts */
|
|
42
|
+
export declare const DEFAULT_RETRY_MAX_ATTEMPTS = 3;
|
|
43
|
+
/** Default retry initial delay in ms */
|
|
44
|
+
export declare const DEFAULT_RETRY_INITIAL_DELAY = 100;
|
|
45
|
+
/** Default retry max delay in ms */
|
|
46
|
+
export declare const DEFAULT_RETRY_MAX_DELAY = 5000;
|
|
47
|
+
/** Default backoff multiplier */
|
|
48
|
+
export declare const DEFAULT_BACKOFF_MULTIPLIER = 2;
|
|
49
|
+
/** Jitter range factor (0.25 = ±25%) */
|
|
50
|
+
export declare const RETRY_JITTER_FACTOR = 0.25;
|
|
51
|
+
/** Default compression enabled state */
|
|
52
|
+
export declare const DEFAULT_COMPRESSION_ENABLED = false;
|
|
53
|
+
/** Default minimum payload size to compress in bytes */
|
|
54
|
+
export declare const DEFAULT_COMPRESSION_THRESHOLD = 1024;
|
|
55
|
+
/** Default max queued requests during disconnect */
|
|
56
|
+
export declare const DEFAULT_MAX_QUEUED_REQUESTS = 100;
|
|
57
|
+
/** Default job priority */
|
|
58
|
+
export declare const DEFAULT_JOB_PRIORITY = 0;
|
|
59
|
+
/** Default stall detection timeout in ms */
|
|
60
|
+
export declare const DEFAULT_STALL_TIMEOUT = 30000;
|
|
61
|
+
/** Default TCP port */
|
|
62
|
+
export declare const DEFAULT_TCP_PORT = 6789;
|
|
63
|
+
/** Default HTTP port */
|
|
64
|
+
export declare const DEFAULT_HTTP_PORT = 6790;
|
|
65
|
+
/** Default host */
|
|
66
|
+
export declare const DEFAULT_HOST = "localhost";
|
|
67
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,QAAc,CAAC;AAE7C,iDAAiD;AACjD,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,gCAAgC;AAChC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAIzC,uCAAuC;AACvC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,gDAAgD;AAChD,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAI9C,iCAAiC;AACjC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,gCAAgC;AAChC,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,oCAAoC;AACpC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,gDAAgD;AAChD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAI5C,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD,oDAAoD;AACpD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAI3C,iCAAiC;AACjC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,oCAAoC;AACpC,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,iCAAiC;AACjC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAIxC,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAIlD,oDAAoD;AACpD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAI/C,2BAA2B;AAC3B,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAI3C,uBAAuB;AACvB,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,wBAAwB;AACxB,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,mBAAmB;AACnB,eAAO,MAAM,YAAY,cAAc,CAAC"}
|