@spooled/sdk 1.0.38 → 1.0.40
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 +116 -94
- package/dist/{index-D_Lb9_Bg.d.cts → index-DA_znF4h.d.cts} +80 -66
- package/dist/{index-D_Lb9_Bg.d.ts → index-DA_znF4h.d.ts} +80 -66
- package/dist/index.cjs +387 -95
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -3
- package/dist/index.d.ts +12 -3
- package/dist/index.js +388 -97
- package/dist/index.js.map +1 -1
- package/dist/worker/index.cjs +14 -5
- package/dist/worker/index.cjs.map +1 -1
- package/dist/worker/index.d.cts +1 -1
- package/dist/worker/index.d.ts +1 -1
- package/dist/worker/index.js +14 -5
- package/dist/worker/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -107,11 +107,11 @@ declare const DEFAULT_CONFIG: {
|
|
|
107
107
|
successThreshold: number;
|
|
108
108
|
timeout: number;
|
|
109
109
|
};
|
|
110
|
-
readonly userAgent: "@spooled/sdk-nodejs/1.0.
|
|
110
|
+
readonly userAgent: "@spooled/sdk-nodejs/1.0.40";
|
|
111
111
|
readonly autoRefreshToken: true;
|
|
112
112
|
};
|
|
113
113
|
/** SDK version */
|
|
114
|
-
declare const SDK_VERSION = "1.0.
|
|
114
|
+
declare const SDK_VERSION = "1.0.40";
|
|
115
115
|
/** API version prefix */
|
|
116
116
|
declare const API_VERSION = "v1";
|
|
117
117
|
/**
|
|
@@ -231,7 +231,7 @@ declare function createCircuitBreaker(config: CircuitBreakerConfig): CircuitBrea
|
|
|
231
231
|
*/
|
|
232
232
|
|
|
233
233
|
/** HTTP methods */
|
|
234
|
-
type HttpMethod =
|
|
234
|
+
type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
235
235
|
/** Query parameters type */
|
|
236
236
|
type QueryParams = Record<string, string | number | boolean | undefined>;
|
|
237
237
|
/** Request options for HTTP client */
|
|
@@ -340,23 +340,23 @@ declare class HttpClient {
|
|
|
340
340
|
/**
|
|
341
341
|
* Make a GET request
|
|
342
342
|
*/
|
|
343
|
-
get<T>(path: string, options?: Omit<HttpRequestOptions,
|
|
343
|
+
get<T>(path: string, options?: Omit<HttpRequestOptions, "method" | "body">): Promise<T>;
|
|
344
344
|
/**
|
|
345
345
|
* Make a POST request
|
|
346
346
|
*/
|
|
347
|
-
post<T>(path: string, body?: unknown, options?: Omit<HttpRequestOptions,
|
|
347
|
+
post<T>(path: string, body?: unknown, options?: Omit<HttpRequestOptions, "method" | "body">): Promise<T>;
|
|
348
348
|
/**
|
|
349
349
|
* Make a PUT request
|
|
350
350
|
*/
|
|
351
|
-
put<T>(path: string, body?: unknown, options?: Omit<HttpRequestOptions,
|
|
351
|
+
put<T>(path: string, body?: unknown, options?: Omit<HttpRequestOptions, "method" | "body">): Promise<T>;
|
|
352
352
|
/**
|
|
353
353
|
* Make a PATCH request
|
|
354
354
|
*/
|
|
355
|
-
patch<T>(path: string, body?: unknown, options?: Omit<HttpRequestOptions,
|
|
355
|
+
patch<T>(path: string, body?: unknown, options?: Omit<HttpRequestOptions, "method" | "body">): Promise<T>;
|
|
356
356
|
/**
|
|
357
357
|
* Make a DELETE request
|
|
358
358
|
*/
|
|
359
|
-
delete<T = void>(path: string, options?: Omit<HttpRequestOptions,
|
|
359
|
+
delete<T = void>(path: string, options?: Omit<HttpRequestOptions, "method" | "body">): Promise<T>;
|
|
360
360
|
}
|
|
361
361
|
/**
|
|
362
362
|
* Create an HTTP client instance
|
|
@@ -377,7 +377,7 @@ interface LoginParams {
|
|
|
377
377
|
interface LoginResponse {
|
|
378
378
|
accessToken: string;
|
|
379
379
|
refreshToken: string;
|
|
380
|
-
tokenType:
|
|
380
|
+
tokenType: "Bearer";
|
|
381
381
|
expiresIn: number;
|
|
382
382
|
refreshExpiresIn: number;
|
|
383
383
|
}
|
|
@@ -388,7 +388,7 @@ interface RefreshTokenParams {
|
|
|
388
388
|
/** Token refresh response */
|
|
389
389
|
interface RefreshTokenResponse {
|
|
390
390
|
accessToken: string;
|
|
391
|
-
tokenType:
|
|
391
|
+
tokenType: "Bearer";
|
|
392
392
|
expiresIn: number;
|
|
393
393
|
}
|
|
394
394
|
/** Current user info response */
|
|
@@ -484,21 +484,21 @@ interface JsonObject {
|
|
|
484
484
|
/** JSON array type */
|
|
485
485
|
type JsonArray = JsonValue[];
|
|
486
486
|
/** Job status enum values */
|
|
487
|
-
type JobStatus =
|
|
487
|
+
type JobStatus = "pending" | "scheduled" | "processing" | "completed" | "failed" | "deadletter" | "cancelled";
|
|
488
488
|
/** Worker status enum values */
|
|
489
|
-
type WorkerStatus =
|
|
489
|
+
type WorkerStatus = "healthy" | "degraded" | "offline" | "draining";
|
|
490
490
|
/** Workflow status enum values */
|
|
491
|
-
type WorkflowStatus =
|
|
491
|
+
type WorkflowStatus = "pending" | "running" | "completed" | "failed" | "cancelled";
|
|
492
492
|
/** Plan tier enum values */
|
|
493
|
-
type PlanTier =
|
|
493
|
+
type PlanTier = "free" | "starter" | "pro" | "enterprise";
|
|
494
494
|
/** Schedule run status */
|
|
495
|
-
type ScheduleRunStatus =
|
|
495
|
+
type ScheduleRunStatus = "pending" | "running" | "completed" | "failed";
|
|
496
496
|
/** Webhook delivery status */
|
|
497
|
-
type WebhookDeliveryStatus =
|
|
497
|
+
type WebhookDeliveryStatus = "pending" | "success" | "failed";
|
|
498
498
|
/** Webhook event types */
|
|
499
|
-
type WebhookEventType =
|
|
499
|
+
type WebhookEventType = "job.created" | "job.started" | "job.completed" | "job.failed" | "job.cancelled" | "queue.paused" | "queue.resumed" | "worker.registered" | "worker.deregistered" | "schedule.triggered";
|
|
500
500
|
/** Dependency mode for workflows */
|
|
501
|
-
type DependencyMode =
|
|
501
|
+
type DependencyMode = "all" | "any";
|
|
502
502
|
/** Pagination parameters */
|
|
503
503
|
interface PaginationParams {
|
|
504
504
|
/** Maximum number of results */
|
|
@@ -511,7 +511,7 @@ interface ListParams extends PaginationParams {
|
|
|
511
511
|
/** Field to order by */
|
|
512
512
|
orderBy?: string;
|
|
513
513
|
/** Sort direction */
|
|
514
|
-
orderDir?:
|
|
514
|
+
orderDir?: "asc" | "desc";
|
|
515
515
|
}
|
|
516
516
|
/** Paginated response wrapper */
|
|
517
517
|
interface PaginatedResponse<T> {
|
|
@@ -976,15 +976,21 @@ interface Worker {
|
|
|
976
976
|
id: string;
|
|
977
977
|
organizationId: string;
|
|
978
978
|
queueName: string;
|
|
979
|
+
/** Multi-queue membership when present (detail response). */
|
|
980
|
+
queueNames?: string[];
|
|
979
981
|
hostname: string;
|
|
980
|
-
|
|
982
|
+
/** Serialized as explicit null by the backend when not set. */
|
|
983
|
+
workerType?: string | null;
|
|
981
984
|
maxConcurrency: number;
|
|
982
985
|
currentJobs: number;
|
|
983
986
|
status: WorkerStatus;
|
|
984
987
|
lastHeartbeat: string;
|
|
985
988
|
metadata: JsonObject;
|
|
986
|
-
|
|
989
|
+
/** Serialized as explicit null by the backend when not set. */
|
|
990
|
+
version?: string | null;
|
|
987
991
|
registeredAt: string;
|
|
992
|
+
/** Last row update (detail response). */
|
|
993
|
+
updatedAt?: string;
|
|
988
994
|
}
|
|
989
995
|
/** Worker summary for list responses */
|
|
990
996
|
interface WorkerSummary {
|
|
@@ -1323,7 +1329,7 @@ interface WorkflowJob {
|
|
|
1323
1329
|
/** Queue name */
|
|
1324
1330
|
queueName: string;
|
|
1325
1331
|
/** Current job status */
|
|
1326
|
-
status:
|
|
1332
|
+
status: "pending" | "queued" | "running" | "completed" | "failed" | "cancelled" | "deadletter";
|
|
1327
1333
|
/** Job payload */
|
|
1328
1334
|
payload: JsonObject;
|
|
1329
1335
|
/** Job result (if completed) */
|
|
@@ -1481,7 +1487,7 @@ interface OutgoingWebhook {
|
|
|
1481
1487
|
enabled: boolean;
|
|
1482
1488
|
failureCount: number;
|
|
1483
1489
|
lastTriggeredAt?: string;
|
|
1484
|
-
lastStatus?:
|
|
1490
|
+
lastStatus?: "success" | "failed";
|
|
1485
1491
|
createdAt: string;
|
|
1486
1492
|
updatedAt: string;
|
|
1487
1493
|
}
|
|
@@ -1756,7 +1762,7 @@ interface UsageItem {
|
|
|
1756
1762
|
interface UsageWarning {
|
|
1757
1763
|
resource: string;
|
|
1758
1764
|
message: string;
|
|
1759
|
-
severity:
|
|
1765
|
+
severity: "warning" | "critical" | string;
|
|
1760
1766
|
}
|
|
1761
1767
|
/** Organization member */
|
|
1762
1768
|
interface OrganizationMember {
|
|
@@ -2043,7 +2049,7 @@ interface AdminListOrganizationsParams {
|
|
|
2043
2049
|
limit?: number;
|
|
2044
2050
|
offset?: number;
|
|
2045
2051
|
sortBy?: string;
|
|
2046
|
-
sortOrder?:
|
|
2052
|
+
sortOrder?: "asc" | "desc" | string;
|
|
2047
2053
|
}
|
|
2048
2054
|
interface AdminUsageStats {
|
|
2049
2055
|
jobsToday: number;
|
|
@@ -2193,7 +2199,7 @@ interface IngestGitHubWebhookOptions {
|
|
|
2193
2199
|
/** Optional org-scoped webhook token (X-Webhook-Token) */
|
|
2194
2200
|
webhookToken?: string;
|
|
2195
2201
|
/** Optional X-Forwarded-Proto override (production servers may require https) */
|
|
2196
|
-
forwardedProto?:
|
|
2202
|
+
forwardedProto?: "https" | "http" | string;
|
|
2197
2203
|
/** Provide a precomputed X-Hub-Signature-256 header value (sha256=<hex>) */
|
|
2198
2204
|
signature?: string;
|
|
2199
2205
|
/** If provided, the SDK will compute the signature for you */
|
|
@@ -2203,7 +2209,7 @@ interface IngestStripeWebhookOptions {
|
|
|
2203
2209
|
/** Optional org-scoped webhook token (X-Webhook-Token) */
|
|
2204
2210
|
webhookToken?: string;
|
|
2205
2211
|
/** Optional X-Forwarded-Proto override */
|
|
2206
|
-
forwardedProto?:
|
|
2212
|
+
forwardedProto?: "https" | "http" | string;
|
|
2207
2213
|
/** Provide a precomputed Stripe-Signature header */
|
|
2208
2214
|
signature?: string;
|
|
2209
2215
|
/** If provided, the SDK will compute the signature for you */
|
|
@@ -2271,7 +2277,7 @@ interface RealtimeEventBase {
|
|
|
2271
2277
|
}
|
|
2272
2278
|
/** Job created event */
|
|
2273
2279
|
interface JobCreatedEvent extends RealtimeEventBase {
|
|
2274
|
-
type:
|
|
2280
|
+
type: "job.created";
|
|
2275
2281
|
data: {
|
|
2276
2282
|
jobId: string;
|
|
2277
2283
|
queueName: string;
|
|
@@ -2280,7 +2286,7 @@ interface JobCreatedEvent extends RealtimeEventBase {
|
|
|
2280
2286
|
}
|
|
2281
2287
|
/** Job started event */
|
|
2282
2288
|
interface JobStartedEvent extends RealtimeEventBase {
|
|
2283
|
-
type:
|
|
2289
|
+
type: "job.started";
|
|
2284
2290
|
data: {
|
|
2285
2291
|
jobId: string;
|
|
2286
2292
|
queueName: string;
|
|
@@ -2289,7 +2295,7 @@ interface JobStartedEvent extends RealtimeEventBase {
|
|
|
2289
2295
|
}
|
|
2290
2296
|
/** Job completed event */
|
|
2291
2297
|
interface JobCompletedEvent extends RealtimeEventBase {
|
|
2292
|
-
type:
|
|
2298
|
+
type: "job.completed";
|
|
2293
2299
|
data: {
|
|
2294
2300
|
jobId: string;
|
|
2295
2301
|
queueName: string;
|
|
@@ -2299,7 +2305,7 @@ interface JobCompletedEvent extends RealtimeEventBase {
|
|
|
2299
2305
|
}
|
|
2300
2306
|
/** Job failed event */
|
|
2301
2307
|
interface JobFailedEvent extends RealtimeEventBase {
|
|
2302
|
-
type:
|
|
2308
|
+
type: "job.failed";
|
|
2303
2309
|
data: {
|
|
2304
2310
|
jobId: string;
|
|
2305
2311
|
queueName: string;
|
|
@@ -2310,7 +2316,7 @@ interface JobFailedEvent extends RealtimeEventBase {
|
|
|
2310
2316
|
}
|
|
2311
2317
|
/** Job progress event */
|
|
2312
2318
|
interface JobProgressEvent extends RealtimeEventBase {
|
|
2313
|
-
type:
|
|
2319
|
+
type: "job.progress";
|
|
2314
2320
|
data: {
|
|
2315
2321
|
jobId: string;
|
|
2316
2322
|
queueName: string;
|
|
@@ -2320,7 +2326,7 @@ interface JobProgressEvent extends RealtimeEventBase {
|
|
|
2320
2326
|
}
|
|
2321
2327
|
/** Job status changed event */
|
|
2322
2328
|
interface JobStatusChangedEvent extends RealtimeEventBase {
|
|
2323
|
-
type:
|
|
2329
|
+
type: "job.status_changed";
|
|
2324
2330
|
data: {
|
|
2325
2331
|
jobId: string;
|
|
2326
2332
|
queueName: string;
|
|
@@ -2330,7 +2336,7 @@ interface JobStatusChangedEvent extends RealtimeEventBase {
|
|
|
2330
2336
|
}
|
|
2331
2337
|
/** Queue stats update event (backend `QueueStats`) */
|
|
2332
2338
|
interface QueueStatsEvent extends RealtimeEventBase {
|
|
2333
|
-
type:
|
|
2339
|
+
type: "queue.stats";
|
|
2334
2340
|
data: {
|
|
2335
2341
|
queueName: string;
|
|
2336
2342
|
pending: number;
|
|
@@ -2341,7 +2347,7 @@ interface QueueStatsEvent extends RealtimeEventBase {
|
|
|
2341
2347
|
}
|
|
2342
2348
|
/** Worker heartbeat event (backend `WorkerHeartbeat`) */
|
|
2343
2349
|
interface WorkerHeartbeatEvent extends RealtimeEventBase {
|
|
2344
|
-
type:
|
|
2350
|
+
type: "worker.heartbeat";
|
|
2345
2351
|
data: {
|
|
2346
2352
|
workerId: string;
|
|
2347
2353
|
status: string;
|
|
@@ -2350,7 +2356,7 @@ interface WorkerHeartbeatEvent extends RealtimeEventBase {
|
|
|
2350
2356
|
}
|
|
2351
2357
|
/** Queue paused event */
|
|
2352
2358
|
interface QueuePausedEvent extends RealtimeEventBase {
|
|
2353
|
-
type:
|
|
2359
|
+
type: "queue.paused";
|
|
2354
2360
|
data: {
|
|
2355
2361
|
queueName: string;
|
|
2356
2362
|
reason?: string;
|
|
@@ -2358,14 +2364,14 @@ interface QueuePausedEvent extends RealtimeEventBase {
|
|
|
2358
2364
|
}
|
|
2359
2365
|
/** Queue resumed event */
|
|
2360
2366
|
interface QueueResumedEvent extends RealtimeEventBase {
|
|
2361
|
-
type:
|
|
2367
|
+
type: "queue.resumed";
|
|
2362
2368
|
data: {
|
|
2363
2369
|
queueName: string;
|
|
2364
2370
|
};
|
|
2365
2371
|
}
|
|
2366
2372
|
/** Worker registered event */
|
|
2367
2373
|
interface WorkerRegisteredEvent extends RealtimeEventBase {
|
|
2368
|
-
type:
|
|
2374
|
+
type: "worker.registered";
|
|
2369
2375
|
data: {
|
|
2370
2376
|
workerId: string;
|
|
2371
2377
|
queueName: string;
|
|
@@ -2374,7 +2380,7 @@ interface WorkerRegisteredEvent extends RealtimeEventBase {
|
|
|
2374
2380
|
}
|
|
2375
2381
|
/** Worker deregistered event */
|
|
2376
2382
|
interface WorkerDeregisteredEvent extends RealtimeEventBase {
|
|
2377
|
-
type:
|
|
2383
|
+
type: "worker.deregistered";
|
|
2378
2384
|
data: {
|
|
2379
2385
|
workerId: string;
|
|
2380
2386
|
queueName: string;
|
|
@@ -2382,7 +2388,7 @@ interface WorkerDeregisteredEvent extends RealtimeEventBase {
|
|
|
2382
2388
|
}
|
|
2383
2389
|
/** Schedule triggered event */
|
|
2384
2390
|
interface ScheduleTriggeredEvent extends RealtimeEventBase {
|
|
2385
|
-
type:
|
|
2391
|
+
type: "schedule.triggered";
|
|
2386
2392
|
data: {
|
|
2387
2393
|
scheduleId: string;
|
|
2388
2394
|
jobId: string;
|
|
@@ -2390,7 +2396,7 @@ interface ScheduleTriggeredEvent extends RealtimeEventBase {
|
|
|
2390
2396
|
}
|
|
2391
2397
|
/** Heartbeat event (for connection keep-alive) */
|
|
2392
2398
|
interface HeartbeatEvent extends RealtimeEventBase {
|
|
2393
|
-
type:
|
|
2399
|
+
type: "heartbeat";
|
|
2394
2400
|
data: {
|
|
2395
2401
|
serverTime: string;
|
|
2396
2402
|
};
|
|
@@ -2398,13 +2404,13 @@ interface HeartbeatEvent extends RealtimeEventBase {
|
|
|
2398
2404
|
/** All realtime event types */
|
|
2399
2405
|
type RealtimeEvent = JobCreatedEvent | JobStartedEvent | JobCompletedEvent | JobFailedEvent | JobProgressEvent | JobStatusChangedEvent | QueueStatsEvent | QueuePausedEvent | QueueResumedEvent | WorkerRegisteredEvent | WorkerDeregisteredEvent | WorkerHeartbeatEvent | ScheduleTriggeredEvent | HeartbeatEvent;
|
|
2400
2406
|
/** Event type names */
|
|
2401
|
-
type RealtimeEventType = RealtimeEvent[
|
|
2407
|
+
type RealtimeEventType = RealtimeEvent["type"];
|
|
2402
2408
|
/** Extract event data type from event type name */
|
|
2403
2409
|
type RealtimeEventData<T extends RealtimeEventType> = Extract<RealtimeEvent, {
|
|
2404
2410
|
type: T;
|
|
2405
|
-
}>[
|
|
2411
|
+
}>["data"];
|
|
2406
2412
|
/** Connection state */
|
|
2407
|
-
type ConnectionState =
|
|
2413
|
+
type ConnectionState = "disconnected" | "connecting" | "connected" | "reconnecting";
|
|
2408
2414
|
/** Realtime connection options */
|
|
2409
2415
|
interface RealtimeConnectionOptions {
|
|
2410
2416
|
/** Base URL for the REST API (e.g., https://api.spooled.cloud) - used for SSE */
|
|
@@ -2452,7 +2458,7 @@ interface SpooledRealtimeOptions {
|
|
|
2452
2458
|
* - WebSocket uses push/pubsub in the backend
|
|
2453
2459
|
* - SSE job/queue endpoints poll the database periodically
|
|
2454
2460
|
*/
|
|
2455
|
-
type?:
|
|
2461
|
+
type?: "websocket" | "sse";
|
|
2456
2462
|
/** Auto-reconnect on disconnect (default: true) */
|
|
2457
2463
|
autoReconnect?: boolean;
|
|
2458
2464
|
/** Maximum reconnect attempts (default: 10) */
|
|
@@ -2788,6 +2794,8 @@ interface GrpcClientOptions {
|
|
|
2788
2794
|
credentials?: grpc.ChannelCredentials;
|
|
2789
2795
|
/** Channel options */
|
|
2790
2796
|
channelOptions?: grpc.ChannelOptions;
|
|
2797
|
+
/** Deadline for unary gRPC calls in milliseconds. Streams are not bounded unless explicitly configured. */
|
|
2798
|
+
timeout?: number;
|
|
2791
2799
|
}
|
|
2792
2800
|
/** @deprecated Use GrpcEnqueueRequest */
|
|
2793
2801
|
type GrpcEnqueueJobParams = GrpcEnqueueRequest & {
|
|
@@ -2922,21 +2930,25 @@ declare function createJobStream(call: grpc.ClientReadableStream<GrpcJob>, optio
|
|
|
2922
2930
|
*/
|
|
2923
2931
|
|
|
2924
2932
|
type UnaryCallback<T> = (error: grpc.ServiceError | null, response: T) => void;
|
|
2933
|
+
type UnaryMethod<TReq, TRes> = {
|
|
2934
|
+
(request: TReq, metadata: grpc.Metadata, callback: UnaryCallback<TRes>): void;
|
|
2935
|
+
(request: TReq, metadata: grpc.Metadata, options: grpc.CallOptions, callback: UnaryCallback<TRes>): void;
|
|
2936
|
+
};
|
|
2925
2937
|
interface QueueServiceClient extends grpc.Client {
|
|
2926
|
-
Enqueue
|
|
2927
|
-
Dequeue
|
|
2928
|
-
Complete
|
|
2929
|
-
Fail
|
|
2930
|
-
RenewLease
|
|
2931
|
-
GetJob
|
|
2932
|
-
GetQueueStats
|
|
2938
|
+
Enqueue: UnaryMethod<GrpcEnqueueRequest, GrpcEnqueueResponse>;
|
|
2939
|
+
Dequeue: UnaryMethod<GrpcDequeueRequest, GrpcDequeueResponse>;
|
|
2940
|
+
Complete: UnaryMethod<GrpcCompleteRequest, GrpcCompleteResponse>;
|
|
2941
|
+
Fail: UnaryMethod<GrpcFailRequest, GrpcFailResponse>;
|
|
2942
|
+
RenewLease: UnaryMethod<GrpcRenewLeaseRequest, GrpcRenewLeaseResponse>;
|
|
2943
|
+
GetJob: UnaryMethod<GrpcGetJobRequest, GrpcGetJobResponse>;
|
|
2944
|
+
GetQueueStats: UnaryMethod<GrpcGetQueueStatsRequest, GrpcGetQueueStatsResponse>;
|
|
2933
2945
|
StreamJobs(request: GrpcStreamJobsRequest, metadata: grpc.Metadata): grpc.ClientReadableStream<GrpcJob>;
|
|
2934
2946
|
ProcessJobs(metadata: grpc.Metadata): grpc.ClientDuplexStream<GrpcProcessRequest, GrpcProcessResponse>;
|
|
2935
2947
|
}
|
|
2936
2948
|
interface WorkerServiceClient extends grpc.Client {
|
|
2937
|
-
Register
|
|
2938
|
-
Heartbeat
|
|
2939
|
-
Deregister
|
|
2949
|
+
Register: UnaryMethod<GrpcRegisterWorkerRequest, GrpcRegisterWorkerResponse>;
|
|
2950
|
+
Heartbeat: UnaryMethod<GrpcHeartbeatRequest, GrpcHeartbeatResponse>;
|
|
2951
|
+
Deregister: UnaryMethod<GrpcDeregisterRequest, GrpcDeregisterResponse>;
|
|
2940
2952
|
}
|
|
2941
2953
|
/**
|
|
2942
2954
|
* Queue operations for the gRPC client
|
|
@@ -2944,7 +2956,8 @@ interface WorkerServiceClient extends grpc.Client {
|
|
|
2944
2956
|
declare class GrpcQueueOperations {
|
|
2945
2957
|
private readonly client;
|
|
2946
2958
|
private readonly metadata;
|
|
2947
|
-
|
|
2959
|
+
private readonly timeoutMs?;
|
|
2960
|
+
constructor(client: QueueServiceClient, metadata: grpc.Metadata, timeoutMs?: number | undefined);
|
|
2948
2961
|
/**
|
|
2949
2962
|
* Enqueue a new job
|
|
2950
2963
|
*/
|
|
@@ -3018,7 +3031,8 @@ declare class GrpcQueueOperations {
|
|
|
3018
3031
|
declare class GrpcWorkerOperations {
|
|
3019
3032
|
private readonly client;
|
|
3020
3033
|
private readonly metadata;
|
|
3021
|
-
|
|
3034
|
+
private readonly timeoutMs?;
|
|
3035
|
+
constructor(client: WorkerServiceClient, metadata: grpc.Metadata, timeoutMs?: number | undefined);
|
|
3022
3036
|
/**
|
|
3023
3037
|
* Register a new worker
|
|
3024
3038
|
*/
|
|
@@ -3300,7 +3314,7 @@ interface SpooledWorkerOptions {
|
|
|
3300
3314
|
shutdownTimeout?: number;
|
|
3301
3315
|
}
|
|
3302
3316
|
/** Worker state */
|
|
3303
|
-
type WorkerState =
|
|
3317
|
+
type WorkerState = "idle" | "starting" | "running" | "stopping" | "stopped" | "error";
|
|
3304
3318
|
/** Job context passed to handlers */
|
|
3305
3319
|
interface JobContext {
|
|
3306
3320
|
/** Job ID */
|
|
@@ -3315,10 +3329,10 @@ interface JobContext {
|
|
|
3315
3329
|
maxRetries: number;
|
|
3316
3330
|
/** Abort signal for graceful shutdown */
|
|
3317
3331
|
signal: AbortSignal;
|
|
3318
|
-
/**
|
|
3332
|
+
/** Log local job progress (0-100); backend progress persistence is not yet available. */
|
|
3319
3333
|
progress: (percent: number, message?: string) => Promise<void>;
|
|
3320
3334
|
/** Log a message */
|
|
3321
|
-
log: (level:
|
|
3335
|
+
log: (level: "debug" | "info" | "warn" | "error", message: string, meta?: unknown) => void;
|
|
3322
3336
|
}
|
|
3323
3337
|
/** Job handler function */
|
|
3324
3338
|
type JobHandler = (context: JobContext) => Promise<JsonObject | void>;
|
|
@@ -3329,7 +3343,7 @@ interface JobResult {
|
|
|
3329
3343
|
error?: string;
|
|
3330
3344
|
}
|
|
3331
3345
|
/** Worker event types */
|
|
3332
|
-
type WorkerEvent =
|
|
3346
|
+
type WorkerEvent = "started" | "stopped" | "error" | "job:claimed" | "job:started" | "job:completed" | "job:failed" | "job:timeout";
|
|
3333
3347
|
/** Worker event data types */
|
|
3334
3348
|
interface WorkerEventData {
|
|
3335
3349
|
started: {
|
|
@@ -3343,26 +3357,26 @@ interface WorkerEventData {
|
|
|
3343
3357
|
error: {
|
|
3344
3358
|
error: Error;
|
|
3345
3359
|
};
|
|
3346
|
-
|
|
3360
|
+
"job:claimed": {
|
|
3347
3361
|
jobId: string;
|
|
3348
3362
|
queueName: string;
|
|
3349
3363
|
};
|
|
3350
|
-
|
|
3364
|
+
"job:started": {
|
|
3351
3365
|
jobId: string;
|
|
3352
3366
|
queueName: string;
|
|
3353
3367
|
};
|
|
3354
|
-
|
|
3368
|
+
"job:completed": {
|
|
3355
3369
|
jobId: string;
|
|
3356
3370
|
queueName: string;
|
|
3357
3371
|
result?: JsonObject;
|
|
3358
3372
|
};
|
|
3359
|
-
|
|
3373
|
+
"job:failed": {
|
|
3360
3374
|
jobId: string;
|
|
3361
3375
|
queueName: string;
|
|
3362
3376
|
error: string;
|
|
3363
3377
|
willRetry: boolean;
|
|
3364
3378
|
};
|
|
3365
|
-
|
|
3379
|
+
"job:timeout": {
|
|
3366
3380
|
jobId: string;
|
|
3367
3381
|
queueName: string;
|
|
3368
3382
|
};
|