flashq 0.3.0 → 0.3.1
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 +27 -3
- package/dist/client/connection.d.ts.map +1 -1
- package/dist/client/connection.js +308 -56
- package/dist/client/connection.js.map +1 -1
- package/dist/client/http/request.d.ts +4 -0
- package/dist/client/http/request.d.ts.map +1 -1
- package/dist/client/http/request.js +135 -42
- package/dist/client/http/request.js.map +1 -1
- package/dist/client/http/response.d.ts.map +1 -1
- package/dist/client/http/response.js +3 -1
- package/dist/client/http/response.js.map +1 -1
- package/dist/client/index.d.ts +15 -7
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +105 -16
- package/dist/client/index.js.map +1 -1
- package/dist/client/methods/advanced.d.ts.map +1 -1
- package/dist/client/methods/advanced.js.map +1 -1
- package/dist/client/methods/core.d.ts +24 -1
- package/dist/client/methods/core.d.ts.map +1 -1
- package/dist/client/methods/core.js +105 -0
- package/dist/client/methods/core.js.map +1 -1
- package/dist/client/methods/cron.d.ts.map +1 -1
- package/dist/client/methods/cron.js.map +1 -1
- package/dist/client/methods/dlq.d.ts.map +1 -1
- package/dist/client/methods/dlq.js.map +1 -1
- package/dist/client/methods/flows.d.ts.map +1 -1
- package/dist/client/methods/flows.js.map +1 -1
- package/dist/client/methods/jobs.d.ts.map +1 -1
- package/dist/client/methods/jobs.js.map +1 -1
- package/dist/client/methods/metrics.d.ts.map +1 -1
- package/dist/client/methods/metrics.js.map +1 -1
- package/dist/client/methods/queue.d.ts.map +1 -1
- package/dist/client/methods/queue.js.map +1 -1
- package/dist/client/types.d.ts +10 -3
- package/dist/client/types.d.ts.map +1 -1
- package/dist/errors.d.ts +105 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +223 -0
- package/dist/errors.js.map +1 -0
- package/dist/events/subscriber.d.ts +1 -0
- package/dist/events/subscriber.d.ts.map +1 -1
- package/dist/events/subscriber.js +48 -7
- package/dist/events/subscriber.js.map +1 -1
- package/dist/events/types.d.ts +2 -0
- package/dist/events/types.d.ts.map +1 -1
- package/dist/hooks.d.ts +166 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +73 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -1
- package/dist/index.js.map +1 -1
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +9 -5
- package/dist/queue.js.map +1 -1
- package/dist/types.d.ts +53 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +53 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +150 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/retry.d.ts +70 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +149 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/worker.d.ts +26 -3
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +159 -56
- package/dist/worker.js.map +1 -1
- package/package.json +11 -1
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlashQ Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Specific error types for better error handling and programmatic responses.
|
|
5
|
+
*/
|
|
6
|
+
/** Base error class for all FlashQ errors */
|
|
7
|
+
export declare class FlashQError extends Error {
|
|
8
|
+
readonly code: string;
|
|
9
|
+
readonly retryable: boolean;
|
|
10
|
+
constructor(message: string, code: string, retryable?: boolean);
|
|
11
|
+
}
|
|
12
|
+
/** Connection-related errors */
|
|
13
|
+
export declare class ConnectionError extends FlashQError {
|
|
14
|
+
constructor(message: string, code?: ConnectionErrorCode);
|
|
15
|
+
}
|
|
16
|
+
export type ConnectionErrorCode = 'CONNECTION_FAILED' | 'CONNECTION_TIMEOUT' | 'CONNECTION_CLOSED' | 'RECONNECTION_FAILED' | 'NOT_CONNECTED' | 'QUEUE_FULL';
|
|
17
|
+
/** Authentication errors */
|
|
18
|
+
export declare class AuthenticationError extends FlashQError {
|
|
19
|
+
constructor(message?: string);
|
|
20
|
+
}
|
|
21
|
+
/** Request timeout errors */
|
|
22
|
+
export declare class TimeoutError extends FlashQError {
|
|
23
|
+
readonly timeoutMs: number;
|
|
24
|
+
constructor(message: string, timeoutMs: number);
|
|
25
|
+
}
|
|
26
|
+
/** Validation errors (client-side) */
|
|
27
|
+
export declare class ValidationError extends FlashQError {
|
|
28
|
+
readonly field?: string;
|
|
29
|
+
constructor(message: string, field?: string);
|
|
30
|
+
}
|
|
31
|
+
/** Server-side errors */
|
|
32
|
+
export declare class ServerError extends FlashQError {
|
|
33
|
+
readonly serverCode?: string;
|
|
34
|
+
constructor(message: string, serverCode?: string);
|
|
35
|
+
}
|
|
36
|
+
/** Job not found */
|
|
37
|
+
export declare class JobNotFoundError extends FlashQError {
|
|
38
|
+
readonly jobId: number | string;
|
|
39
|
+
constructor(jobId: number | string);
|
|
40
|
+
}
|
|
41
|
+
/** Queue not found */
|
|
42
|
+
export declare class QueueNotFoundError extends FlashQError {
|
|
43
|
+
readonly queue: string;
|
|
44
|
+
constructor(queue: string);
|
|
45
|
+
}
|
|
46
|
+
/** Job already exists (duplicate) */
|
|
47
|
+
export declare class DuplicateJobError extends FlashQError {
|
|
48
|
+
readonly existingJobId?: number;
|
|
49
|
+
constructor(message: string, existingJobId?: number);
|
|
50
|
+
}
|
|
51
|
+
/** Queue is paused */
|
|
52
|
+
export declare class QueuePausedError extends FlashQError {
|
|
53
|
+
readonly queue: string;
|
|
54
|
+
constructor(queue: string);
|
|
55
|
+
}
|
|
56
|
+
/** Rate limit exceeded */
|
|
57
|
+
export declare class RateLimitError extends FlashQError {
|
|
58
|
+
readonly queue: string;
|
|
59
|
+
readonly retryAfterMs?: number;
|
|
60
|
+
constructor(queue: string, retryAfterMs?: number);
|
|
61
|
+
}
|
|
62
|
+
/** Concurrency limit exceeded */
|
|
63
|
+
export declare class ConcurrencyLimitError extends FlashQError {
|
|
64
|
+
readonly queue: string;
|
|
65
|
+
constructor(queue: string);
|
|
66
|
+
}
|
|
67
|
+
/** Parse server error message and return appropriate error class */
|
|
68
|
+
export declare function parseServerError(message: string, serverCode?: string): FlashQError;
|
|
69
|
+
/** Batch operation partial failure */
|
|
70
|
+
export declare class BatchError<T = unknown> extends FlashQError {
|
|
71
|
+
/** Successfully processed items */
|
|
72
|
+
readonly succeeded: T[];
|
|
73
|
+
/** Failed items with their errors */
|
|
74
|
+
readonly failed: Array<{
|
|
75
|
+
index: number;
|
|
76
|
+
item: unknown;
|
|
77
|
+
error: Error;
|
|
78
|
+
}>;
|
|
79
|
+
constructor(message: string, succeeded: T[], failed: Array<{
|
|
80
|
+
index: number;
|
|
81
|
+
item: unknown;
|
|
82
|
+
error: Error;
|
|
83
|
+
}>);
|
|
84
|
+
/** Get number of successful items */
|
|
85
|
+
get successCount(): number;
|
|
86
|
+
/** Get number of failed items */
|
|
87
|
+
get failureCount(): number;
|
|
88
|
+
}
|
|
89
|
+
/** All error types exported for instanceof checks */
|
|
90
|
+
export declare const Errors: {
|
|
91
|
+
FlashQError: typeof FlashQError;
|
|
92
|
+
ConnectionError: typeof ConnectionError;
|
|
93
|
+
AuthenticationError: typeof AuthenticationError;
|
|
94
|
+
TimeoutError: typeof TimeoutError;
|
|
95
|
+
ValidationError: typeof ValidationError;
|
|
96
|
+
ServerError: typeof ServerError;
|
|
97
|
+
JobNotFoundError: typeof JobNotFoundError;
|
|
98
|
+
QueueNotFoundError: typeof QueueNotFoundError;
|
|
99
|
+
DuplicateJobError: typeof DuplicateJobError;
|
|
100
|
+
QueuePausedError: typeof QueuePausedError;
|
|
101
|
+
RateLimitError: typeof RateLimitError;
|
|
102
|
+
ConcurrencyLimitError: typeof ConcurrencyLimitError;
|
|
103
|
+
BatchError: typeof BatchError;
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* FlashQ Error Classes
|
|
4
|
+
*
|
|
5
|
+
* Specific error types for better error handling and programmatic responses.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Errors = exports.BatchError = exports.ConcurrencyLimitError = exports.RateLimitError = exports.QueuePausedError = exports.DuplicateJobError = exports.QueueNotFoundError = exports.JobNotFoundError = exports.ServerError = exports.ValidationError = exports.TimeoutError = exports.AuthenticationError = exports.ConnectionError = exports.FlashQError = void 0;
|
|
9
|
+
exports.parseServerError = parseServerError;
|
|
10
|
+
/** Base error class for all FlashQ errors */
|
|
11
|
+
class FlashQError extends Error {
|
|
12
|
+
code;
|
|
13
|
+
retryable;
|
|
14
|
+
constructor(message, code, retryable = false) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = 'FlashQError';
|
|
17
|
+
this.code = code;
|
|
18
|
+
this.retryable = retryable;
|
|
19
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.FlashQError = FlashQError;
|
|
23
|
+
/** Connection-related errors */
|
|
24
|
+
class ConnectionError extends FlashQError {
|
|
25
|
+
constructor(message, code = 'CONNECTION_FAILED') {
|
|
26
|
+
super(message, code, true);
|
|
27
|
+
this.name = 'ConnectionError';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.ConnectionError = ConnectionError;
|
|
31
|
+
/** Authentication errors */
|
|
32
|
+
class AuthenticationError extends FlashQError {
|
|
33
|
+
constructor(message = 'Authentication failed') {
|
|
34
|
+
super(message, 'AUTH_FAILED', false);
|
|
35
|
+
this.name = 'AuthenticationError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.AuthenticationError = AuthenticationError;
|
|
39
|
+
/** Request timeout errors */
|
|
40
|
+
class TimeoutError extends FlashQError {
|
|
41
|
+
timeoutMs;
|
|
42
|
+
constructor(message, timeoutMs) {
|
|
43
|
+
super(message, 'REQUEST_TIMEOUT', true);
|
|
44
|
+
this.name = 'TimeoutError';
|
|
45
|
+
this.timeoutMs = timeoutMs;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.TimeoutError = TimeoutError;
|
|
49
|
+
/** Validation errors (client-side) */
|
|
50
|
+
class ValidationError extends FlashQError {
|
|
51
|
+
field;
|
|
52
|
+
constructor(message, field) {
|
|
53
|
+
super(message, 'VALIDATION_ERROR', false);
|
|
54
|
+
this.name = 'ValidationError';
|
|
55
|
+
this.field = field;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.ValidationError = ValidationError;
|
|
59
|
+
/** Server-side errors */
|
|
60
|
+
class ServerError extends FlashQError {
|
|
61
|
+
serverCode;
|
|
62
|
+
constructor(message, serverCode) {
|
|
63
|
+
const retryable = isRetryableServerError(serverCode);
|
|
64
|
+
super(message, serverCode ?? 'SERVER_ERROR', retryable);
|
|
65
|
+
this.name = 'ServerError';
|
|
66
|
+
this.serverCode = serverCode;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.ServerError = ServerError;
|
|
70
|
+
/** Job not found */
|
|
71
|
+
class JobNotFoundError extends FlashQError {
|
|
72
|
+
jobId;
|
|
73
|
+
constructor(jobId) {
|
|
74
|
+
super(`Job not found: ${jobId}`, 'JOB_NOT_FOUND', false);
|
|
75
|
+
this.name = 'JobNotFoundError';
|
|
76
|
+
this.jobId = jobId;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.JobNotFoundError = JobNotFoundError;
|
|
80
|
+
/** Queue not found */
|
|
81
|
+
class QueueNotFoundError extends FlashQError {
|
|
82
|
+
queue;
|
|
83
|
+
constructor(queue) {
|
|
84
|
+
super(`Queue not found: ${queue}`, 'QUEUE_NOT_FOUND', false);
|
|
85
|
+
this.name = 'QueueNotFoundError';
|
|
86
|
+
this.queue = queue;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.QueueNotFoundError = QueueNotFoundError;
|
|
90
|
+
/** Job already exists (duplicate) */
|
|
91
|
+
class DuplicateJobError extends FlashQError {
|
|
92
|
+
existingJobId;
|
|
93
|
+
constructor(message, existingJobId) {
|
|
94
|
+
super(message, 'DUPLICATE_JOB', false);
|
|
95
|
+
this.name = 'DuplicateJobError';
|
|
96
|
+
this.existingJobId = existingJobId;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.DuplicateJobError = DuplicateJobError;
|
|
100
|
+
/** Queue is paused */
|
|
101
|
+
class QueuePausedError extends FlashQError {
|
|
102
|
+
queue;
|
|
103
|
+
constructor(queue) {
|
|
104
|
+
super(`Queue is paused: ${queue}`, 'QUEUE_PAUSED', true);
|
|
105
|
+
this.name = 'QueuePausedError';
|
|
106
|
+
this.queue = queue;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.QueuePausedError = QueuePausedError;
|
|
110
|
+
/** Rate limit exceeded */
|
|
111
|
+
class RateLimitError extends FlashQError {
|
|
112
|
+
queue;
|
|
113
|
+
retryAfterMs;
|
|
114
|
+
constructor(queue, retryAfterMs) {
|
|
115
|
+
super(`Rate limit exceeded for queue: ${queue}`, 'RATE_LIMITED', true);
|
|
116
|
+
this.name = 'RateLimitError';
|
|
117
|
+
this.queue = queue;
|
|
118
|
+
this.retryAfterMs = retryAfterMs;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.RateLimitError = RateLimitError;
|
|
122
|
+
/** Concurrency limit exceeded */
|
|
123
|
+
class ConcurrencyLimitError extends FlashQError {
|
|
124
|
+
queue;
|
|
125
|
+
constructor(queue) {
|
|
126
|
+
super(`Concurrency limit exceeded for queue: ${queue}`, 'CONCURRENCY_LIMITED', true);
|
|
127
|
+
this.name = 'ConcurrencyLimitError';
|
|
128
|
+
this.queue = queue;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.ConcurrencyLimitError = ConcurrencyLimitError;
|
|
132
|
+
/** Check if server error code is retryable */
|
|
133
|
+
function isRetryableServerError(code) {
|
|
134
|
+
if (!code)
|
|
135
|
+
return false;
|
|
136
|
+
const retryableCodes = [
|
|
137
|
+
'INTERNAL_ERROR',
|
|
138
|
+
'SERVICE_UNAVAILABLE',
|
|
139
|
+
'DATABASE_ERROR',
|
|
140
|
+
'LOCK_TIMEOUT',
|
|
141
|
+
];
|
|
142
|
+
return retryableCodes.includes(code);
|
|
143
|
+
}
|
|
144
|
+
/** Parse server error message and return appropriate error class */
|
|
145
|
+
function parseServerError(message, serverCode) {
|
|
146
|
+
const lowerMessage = message.toLowerCase();
|
|
147
|
+
// Job not found
|
|
148
|
+
if (lowerMessage.includes('job not found') || lowerMessage.includes('job does not exist')) {
|
|
149
|
+
const match = message.match(/\d+/);
|
|
150
|
+
return new JobNotFoundError(match ? parseInt(match[0]) : 0);
|
|
151
|
+
}
|
|
152
|
+
// Queue not found
|
|
153
|
+
if (lowerMessage.includes('queue not found') || lowerMessage.includes('queue does not exist')) {
|
|
154
|
+
const match = message.match(/queue[:\s]+([a-zA-Z0-9_.-]+)/i);
|
|
155
|
+
return new QueueNotFoundError(match?.[1] ?? 'unknown');
|
|
156
|
+
}
|
|
157
|
+
// Duplicate job
|
|
158
|
+
if (lowerMessage.includes('duplicate') || lowerMessage.includes('already exists')) {
|
|
159
|
+
const match = message.match(/\d+/);
|
|
160
|
+
return new DuplicateJobError(message, match ? parseInt(match[0]) : undefined);
|
|
161
|
+
}
|
|
162
|
+
// Queue paused
|
|
163
|
+
if (lowerMessage.includes('queue is paused') || lowerMessage.includes('paused')) {
|
|
164
|
+
const match = message.match(/queue[:\s]+([a-zA-Z0-9_.-]+)/i);
|
|
165
|
+
return new QueuePausedError(match?.[1] ?? 'unknown');
|
|
166
|
+
}
|
|
167
|
+
// Rate limited
|
|
168
|
+
if (lowerMessage.includes('rate limit')) {
|
|
169
|
+
const queueMatch = message.match(/queue[:\s]+([a-zA-Z0-9_.-]+)/i);
|
|
170
|
+
const retryMatch = message.match(/retry after[:\s]+(\d+)/i);
|
|
171
|
+
return new RateLimitError(queueMatch?.[1] ?? 'unknown', retryMatch ? parseInt(retryMatch[1]) : undefined);
|
|
172
|
+
}
|
|
173
|
+
// Concurrency limited
|
|
174
|
+
if (lowerMessage.includes('concurrency limit')) {
|
|
175
|
+
const match = message.match(/queue[:\s]+([a-zA-Z0-9_.-]+)/i);
|
|
176
|
+
return new ConcurrencyLimitError(match?.[1] ?? 'unknown');
|
|
177
|
+
}
|
|
178
|
+
// Auth failed
|
|
179
|
+
if (lowerMessage.includes('auth') || lowerMessage.includes('unauthorized')) {
|
|
180
|
+
return new AuthenticationError(message);
|
|
181
|
+
}
|
|
182
|
+
// Default server error
|
|
183
|
+
return new ServerError(message, serverCode);
|
|
184
|
+
}
|
|
185
|
+
/** Batch operation partial failure */
|
|
186
|
+
class BatchError extends FlashQError {
|
|
187
|
+
/** Successfully processed items */
|
|
188
|
+
succeeded;
|
|
189
|
+
/** Failed items with their errors */
|
|
190
|
+
failed;
|
|
191
|
+
constructor(message, succeeded, failed) {
|
|
192
|
+
super(message, 'BATCH_PARTIAL_FAILURE', false);
|
|
193
|
+
this.name = 'BatchError';
|
|
194
|
+
this.succeeded = succeeded;
|
|
195
|
+
this.failed = failed;
|
|
196
|
+
}
|
|
197
|
+
/** Get number of successful items */
|
|
198
|
+
get successCount() {
|
|
199
|
+
return this.succeeded.length;
|
|
200
|
+
}
|
|
201
|
+
/** Get number of failed items */
|
|
202
|
+
get failureCount() {
|
|
203
|
+
return this.failed.length;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
exports.BatchError = BatchError;
|
|
207
|
+
/** All error types exported for instanceof checks */
|
|
208
|
+
exports.Errors = {
|
|
209
|
+
FlashQError,
|
|
210
|
+
ConnectionError,
|
|
211
|
+
AuthenticationError,
|
|
212
|
+
TimeoutError,
|
|
213
|
+
ValidationError,
|
|
214
|
+
ServerError,
|
|
215
|
+
JobNotFoundError,
|
|
216
|
+
QueueNotFoundError,
|
|
217
|
+
DuplicateJobError,
|
|
218
|
+
QueuePausedError,
|
|
219
|
+
RateLimitError,
|
|
220
|
+
ConcurrencyLimitError,
|
|
221
|
+
BatchError,
|
|
222
|
+
};
|
|
223
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ export declare class EventSubscriber extends EventEmitter {
|
|
|
15
15
|
private sseHandlers;
|
|
16
16
|
private wsMessageHandler;
|
|
17
17
|
constructor(options?: EventSubscriberOptions);
|
|
18
|
+
private log;
|
|
18
19
|
on<K extends keyof EventSubscriberEvents>(event: K, listener: EventSubscriberEvents[K]): this;
|
|
19
20
|
off<K extends keyof EventSubscriberEvents>(event: K, listener: EventSubscriberEvents[K]): this;
|
|
20
21
|
emit<K extends keyof EventSubscriberEvents>(event: K, ...args: Parameters<EventSubscriberEvents[K]>): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../src/events/subscriber.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../src/events/subscriber.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAuB,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAElG,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,OAAO,CAAwD;IACvE,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,gBAAgB,CAA4C;gBAExD,OAAO,GAAE,sBAA2B;IAehD,OAAO,CAAC,GAAG;IAUX,EAAE,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;IAI7F,GAAG,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;IAI9F,IAAI,CAAC,CAAC,SAAS,MAAM,qBAAqB,EACxC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC5C,OAAO;IAIJ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,KAAK,IAAI,IAAI;IA4Bb,WAAW,IAAI,OAAO;YAIR,UAAU;YAyDV,gBAAgB;IA8D9B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;CAyB1B"}
|
|
@@ -27,8 +27,20 @@ class EventSubscriber extends events_1.EventEmitter {
|
|
|
27
27
|
autoReconnect: options.autoReconnect ?? true,
|
|
28
28
|
reconnectDelay: options.reconnectDelay ?? 1000,
|
|
29
29
|
maxReconnectAttempts: options.maxReconnectAttempts ?? 10,
|
|
30
|
+
debug: options.debug ?? false,
|
|
30
31
|
};
|
|
31
32
|
}
|
|
33
|
+
log(message, data) {
|
|
34
|
+
if (!this.options.debug)
|
|
35
|
+
return;
|
|
36
|
+
const timestamp = new Date().toISOString();
|
|
37
|
+
if (data !== undefined) {
|
|
38
|
+
console.log(`[flashQ EventSubscriber ${timestamp}] ${message}`, data);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log(`[flashQ EventSubscriber ${timestamp}] ${message}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
32
44
|
on(event, listener) {
|
|
33
45
|
return super.on(event, listener);
|
|
34
46
|
}
|
|
@@ -41,14 +53,17 @@ class EventSubscriber extends events_1.EventEmitter {
|
|
|
41
53
|
async connect() {
|
|
42
54
|
this.closed = false;
|
|
43
55
|
this.reconnectAttempts = 0;
|
|
56
|
+
this.log('Connecting', { type: this.options.type, queue: this.options.queue || 'all' });
|
|
44
57
|
if (this.options.type === 'websocket') {
|
|
45
58
|
await this.connectWebSocket();
|
|
46
59
|
}
|
|
47
60
|
else {
|
|
48
61
|
await this.connectSSE();
|
|
49
62
|
}
|
|
63
|
+
this.log('Connected');
|
|
50
64
|
}
|
|
51
65
|
close() {
|
|
66
|
+
this.log('Closing subscriber');
|
|
52
67
|
this.closed = true;
|
|
53
68
|
if (this.reconnectTimer) {
|
|
54
69
|
clearTimeout(this.reconnectTimer);
|
|
@@ -61,11 +76,13 @@ class EventSubscriber extends events_1.EventEmitter {
|
|
|
61
76
|
this.sseHandlers.clear();
|
|
62
77
|
this.eventSource.close();
|
|
63
78
|
this.eventSource = null;
|
|
79
|
+
this.log('SSE connection closed');
|
|
64
80
|
}
|
|
65
81
|
if (this.websocket) {
|
|
66
82
|
this.wsMessageHandler = null;
|
|
67
83
|
this.websocket.close();
|
|
68
84
|
this.websocket = null;
|
|
85
|
+
this.log('WebSocket connection closed');
|
|
69
86
|
}
|
|
70
87
|
if (this.connected) {
|
|
71
88
|
this.connected = false;
|
|
@@ -109,10 +126,17 @@ class EventSubscriber extends events_1.EventEmitter {
|
|
|
109
126
|
const messageEvent = e;
|
|
110
127
|
const rawEvent = JSON.parse(messageEvent.data);
|
|
111
128
|
const event = this.normalizeEvent(rawEvent);
|
|
129
|
+
this.log('SSE event received', { eventType, jobId: event.jobId });
|
|
112
130
|
this.emit('event', event);
|
|
113
131
|
this.emit(eventType, event);
|
|
114
132
|
}
|
|
115
|
-
catch {
|
|
133
|
+
catch (err) {
|
|
134
|
+
this.log('Failed to parse SSE event', {
|
|
135
|
+
eventType,
|
|
136
|
+
error: err instanceof Error ? err.message : err,
|
|
137
|
+
});
|
|
138
|
+
this.emit('error', err instanceof Error ? err : new Error(String(err)));
|
|
139
|
+
}
|
|
116
140
|
};
|
|
117
141
|
this.sseHandlers.set(eventType, handler);
|
|
118
142
|
this.eventSource.addEventListener(eventType, handler);
|
|
@@ -128,12 +152,15 @@ class EventSubscriber extends events_1.EventEmitter {
|
|
|
128
152
|
const protocol = this.options.host === 'localhost' ? 'ws' : 'wss';
|
|
129
153
|
let url = `${protocol}://${this.options.host}:${this.options.httpPort}`;
|
|
130
154
|
url += this.options.queue ? `/ws/${this.options.queue}` : '/ws';
|
|
131
|
-
|
|
132
|
-
url += `?token=${encodeURIComponent(this.options.token)}`;
|
|
133
|
-
}
|
|
155
|
+
// Token sent after connection for security (not in URL)
|
|
134
156
|
try {
|
|
135
157
|
this.websocket = new WebSocket(url);
|
|
136
158
|
this.websocket.onopen = () => {
|
|
159
|
+
// Send auth token after connection (more secure than URL query string)
|
|
160
|
+
if (this.options.token && this.websocket) {
|
|
161
|
+
this.log('Sending WebSocket auth');
|
|
162
|
+
this.websocket.send(JSON.stringify({ type: 'auth', token: this.options.token }));
|
|
163
|
+
}
|
|
137
164
|
this.connected = true;
|
|
138
165
|
this.reconnectAttempts = 0;
|
|
139
166
|
this.emit('connected');
|
|
@@ -158,10 +185,19 @@ class EventSubscriber extends events_1.EventEmitter {
|
|
|
158
185
|
try {
|
|
159
186
|
const rawEvent = JSON.parse(e.data);
|
|
160
187
|
const event = this.normalizeEvent(rawEvent);
|
|
188
|
+
this.log('WebSocket event received', {
|
|
189
|
+
eventType: event.eventType,
|
|
190
|
+
jobId: event.jobId,
|
|
191
|
+
});
|
|
161
192
|
this.emit('event', event);
|
|
162
193
|
this.emit(event.eventType, event);
|
|
163
194
|
}
|
|
164
|
-
catch {
|
|
195
|
+
catch (err) {
|
|
196
|
+
this.log('Failed to parse WebSocket event', {
|
|
197
|
+
error: err instanceof Error ? err.message : err,
|
|
198
|
+
});
|
|
199
|
+
this.emit('error', err instanceof Error ? err : new Error(String(err)));
|
|
200
|
+
}
|
|
165
201
|
};
|
|
166
202
|
this.websocket.onmessage = this.wsMessageHandler;
|
|
167
203
|
}
|
|
@@ -186,15 +222,20 @@ class EventSubscriber extends events_1.EventEmitter {
|
|
|
186
222
|
return;
|
|
187
223
|
const maxAttempts = this.options.maxReconnectAttempts;
|
|
188
224
|
if (maxAttempts > 0 && this.reconnectAttempts >= maxAttempts) {
|
|
225
|
+
this.log('Max reconnect attempts reached', { attempts: this.reconnectAttempts });
|
|
189
226
|
this.emit('error', new Error('Max reconnect attempts reached'));
|
|
190
227
|
return;
|
|
191
228
|
}
|
|
192
229
|
this.reconnectAttempts++;
|
|
193
230
|
this.emit('reconnecting', this.reconnectAttempts);
|
|
194
|
-
const delay = Math.min(this.options.reconnectDelay * Math.pow(1.5, this.reconnectAttempts - 1) +
|
|
231
|
+
const delay = Math.min(this.options.reconnectDelay * Math.pow(1.5, this.reconnectAttempts - 1) +
|
|
232
|
+
Math.random() * 1000, 30000);
|
|
233
|
+
this.log('Scheduling reconnect', { attempt: this.reconnectAttempts, delay: Math.round(delay) });
|
|
195
234
|
this.reconnectTimer = setTimeout(() => {
|
|
196
235
|
this.reconnectTimer = null;
|
|
197
|
-
this.connect().catch(() => {
|
|
236
|
+
this.connect().catch((err) => {
|
|
237
|
+
this.log('Reconnect failed', { error: err instanceof Error ? err.message : err });
|
|
238
|
+
});
|
|
198
239
|
}, delay);
|
|
199
240
|
}
|
|
200
241
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriber.js","sourceRoot":"","sources":["../../src/events/subscriber.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,mCAAsC;
|
|
1
|
+
{"version":3,"file":"subscriber.js","sourceRoot":"","sources":["../../src/events/subscriber.ts"],"names":[],"mappings":"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"}
|
package/dist/events/types.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export interface EventSubscriberOptions {
|
|
|
20
20
|
autoReconnect?: boolean;
|
|
21
21
|
reconnectDelay?: number;
|
|
22
22
|
maxReconnectAttempts?: number;
|
|
23
|
+
/** Enable debug logging (default: false) */
|
|
24
|
+
debug?: boolean;
|
|
23
25
|
}
|
|
24
26
|
export interface EventSubscriberEvents {
|
|
25
27
|
connected: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACpC"}
|