@spooled/sdk 1.0.26 → 1.0.28
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 +18 -17
- package/dist/{index-IEVN5SWw.d.cts → index-BKzL6R4h.d.cts} +1 -1
- package/dist/{index-IEVN5SWw.d.ts → index-BKzL6R4h.d.ts} +1 -1
- package/dist/index.cjs +5 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/worker/index.d.cts +1 -1
- package/dist/worker/index.d.ts +1 -1
- package/package.json +14 -16
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ npm install @spooled/sdk
|
|
|
37
37
|
import { SpooledClient } from '@spooled/sdk';
|
|
38
38
|
|
|
39
39
|
const client = new SpooledClient({
|
|
40
|
-
apiKey: '
|
|
40
|
+
apiKey: 'sp_live_your_api_key',
|
|
41
41
|
// For self-hosted: baseUrl: 'https://your-spooled-server.com'
|
|
42
42
|
});
|
|
43
43
|
|
|
@@ -116,7 +116,7 @@ Process jobs with the built-in worker runtime:
|
|
|
116
116
|
```typescript
|
|
117
117
|
import { SpooledClient, SpooledWorker } from '@spooled/sdk';
|
|
118
118
|
|
|
119
|
-
const client = new SpooledClient({ apiKey: '
|
|
119
|
+
const client = new SpooledClient({ apiKey: 'sp_live_...' });
|
|
120
120
|
|
|
121
121
|
const worker = new SpooledWorker(client, {
|
|
122
122
|
queueName: 'my-queue',
|
|
@@ -293,7 +293,7 @@ const { exists } = await client.auth.checkEmail('user@example.com');
|
|
|
293
293
|
|
|
294
294
|
// Exchange API key for JWT
|
|
295
295
|
const { accessToken, refreshToken } = await client.auth.login({
|
|
296
|
-
apiKey: '
|
|
296
|
+
apiKey: 'sp_live_...'
|
|
297
297
|
});
|
|
298
298
|
|
|
299
299
|
// Use JWT for subsequent requests
|
|
@@ -323,13 +323,15 @@ All operations automatically enforce tier-based limits:
|
|
|
323
323
|
When limits are exceeded, you'll receive a `403 Forbidden` response with details:
|
|
324
324
|
|
|
325
325
|
```typescript
|
|
326
|
+
import { AuthorizationError } from '@spooled/sdk';
|
|
327
|
+
|
|
326
328
|
try {
|
|
327
329
|
await client.jobs.create({ /* ... */ });
|
|
328
330
|
} catch (error) {
|
|
329
|
-
if (error
|
|
330
|
-
|
|
331
|
-
console.log(`
|
|
332
|
-
console.log(
|
|
331
|
+
if (error instanceof AuthorizationError) {
|
|
332
|
+
// Plan limit reached (HTTP 403); the message describes the limit
|
|
333
|
+
console.log(`Plan limit: ${error.message}`);
|
|
334
|
+
console.log('Details:', error.details);
|
|
333
335
|
}
|
|
334
336
|
}
|
|
335
337
|
```
|
|
@@ -343,7 +345,7 @@ import {
|
|
|
343
345
|
NotFoundError,
|
|
344
346
|
RateLimitError,
|
|
345
347
|
ValidationError,
|
|
346
|
-
|
|
348
|
+
AuthorizationError,
|
|
347
349
|
isSpooledError,
|
|
348
350
|
} from '@spooled/sdk';
|
|
349
351
|
|
|
@@ -352,9 +354,8 @@ try {
|
|
|
352
354
|
} catch (error) {
|
|
353
355
|
if (error instanceof NotFoundError) {
|
|
354
356
|
console.log('Job not found');
|
|
355
|
-
} else if (error instanceof
|
|
356
|
-
console.log(`
|
|
357
|
-
console.log(`Upgrade to ${error.upgradeTo} for more capacity`);
|
|
357
|
+
} else if (error instanceof AuthorizationError) {
|
|
358
|
+
console.log(`Forbidden (e.g. plan limit): ${error.message}`);
|
|
358
359
|
} else if (error instanceof RateLimitError) {
|
|
359
360
|
console.log(`Retry after ${error.getRetryAfter()} seconds`);
|
|
360
361
|
} else if (isSpooledError(error)) {
|
|
@@ -375,7 +376,7 @@ import { SpooledGrpcClient } from '@spooled/sdk';
|
|
|
375
376
|
// useTls: false if connecting to localhost or direct backend
|
|
376
377
|
const grpcClient = new SpooledGrpcClient({
|
|
377
378
|
address: 'grpc.spooled.cloud:443',
|
|
378
|
-
apiKey: '
|
|
379
|
+
apiKey: 'sp_live_your_key',
|
|
379
380
|
useTls: true
|
|
380
381
|
});
|
|
381
382
|
|
|
@@ -413,11 +414,11 @@ for (const job of jobs) {
|
|
|
413
414
|
```
|
|
414
415
|
|
|
415
416
|
**gRPC Features:**
|
|
416
|
-
-
|
|
417
|
-
-
|
|
418
|
-
-
|
|
419
|
-
-
|
|
420
|
-
-
|
|
417
|
+
- **~28x faster** than HTTP (with Redis cache: ~50ms vs 1400ms)
|
|
418
|
+
- **Automatic plan limit enforcement** on enqueue operations
|
|
419
|
+
- **Batch operations** for higher throughput
|
|
420
|
+
- **Streaming support** for real-time job processing
|
|
421
|
+
- **Secure authentication** via API key metadata
|
|
421
422
|
|
|
422
423
|
See [gRPC Guide](docs/grpc.md) for complete documentation.
|
|
423
424
|
|
|
@@ -3342,4 +3342,4 @@ declare class SpooledWorker {
|
|
|
3342
3342
|
private sleep;
|
|
3343
3343
|
}
|
|
3344
3344
|
|
|
3345
|
-
export { type
|
|
3345
|
+
export { type CreateWorkflowResponse as $, API_VERSION as A, type BatchJobStatus as B, type ConnectionState as C, type BulkEnqueueResponse as D, type BulkJobItem as E, type CheckSlugResponse as F, CircuitBreaker as G, type CircuitBreakerConfig as H, CircuitState as I, type ClaimJobsParams as J, type ClaimJobsResult as K, type ClaimedJob as L, type CompleteJobParams as M, type CreateApiKeyParams as N, type CreateApiKeyResponse as O, type CreateBillingPortalParams as P, type CreateBillingPortalResponse as Q, type RealtimeConnectionOptions as R, type SubscriptionFilter as S, type CreateJobParams as T, type CreateJobResult as U, type CreateOrganizationParams as V, type CreateOrganizationResponse as W, type CreateOutgoingWebhookParams as X, type CreateScheduleParams as Y, type CreateScheduleResponse as Z, type CreateWorkflowParams as _, type RealtimeEventType as a, type Job as a$, type CurrentUserResponse as a0, DEFAULT_CONFIG as a1, type DashboardData as a2, DashboardResource as a3, type DashboardWorkerSummary as a4, type DebugFn as a5, type DependencyMode as a6, type FailJobParams as a7, type GrpcClientOptions as a8, type GrpcCompleteJobParams as a9, type GrpcHeartbeatResponse_Legacy as aA, type GrpcJob as aB, GrpcJobStatus as aC, GrpcJobStatusNumber as aD, type GrpcProcessRequest as aE, type GrpcProcessResponse as aF, GrpcQueueOperations as aG, type GrpcRegisterWorkerParams as aH, type GrpcRegisterWorkerRequest as aI, type GrpcRegisterWorkerResponse as aJ, type GrpcRegisterWorkerResponse_Legacy as aK, type GrpcRenewLeaseParams as aL, type GrpcRenewLeaseRequest as aM, type GrpcRenewLeaseResponse as aN, type GrpcRenewLeaseResponse_Legacy as aO, type GrpcStreamJobsRequest as aP, type GrpcTimestamp as aQ, GrpcWorkerOperations as aR, HealthResource as aS, type HealthResponse as aT, type HeartbeatEvent as aU, type HeartbeatJobParams as aV, HttpClient as aW, type IngestCustomWebhookParams as aX, type IngestGitHubWebhookOptions as aY, type IngestStripeWebhookOptions as aZ, type InitialApiKey as a_, type GrpcCompleteJobResponse as aa, type GrpcCompleteRequest as ab, type GrpcCompleteResponse as ac, type GrpcDequeueJobParams as ad, type GrpcDequeueJobResponse as ae, type GrpcDequeueRequest as af, type GrpcDequeueResponse as ag, type GrpcDeregisterRequest as ah, type GrpcDeregisterResponse as ai, type GrpcEnqueueJobParams as aj, type GrpcEnqueueJobResponse as ak, type GrpcEnqueueRequest as al, type GrpcEnqueueResponse as am, type GrpcErrorResponse as an, type GrpcFailJobParams as ao, type GrpcFailJobResponse as ap, type GrpcFailRequest as aq, type GrpcFailResponse as ar, type GrpcGetJobRequest as as, type GrpcGetJobResponse as at, type GrpcGetQueueStatsRequest as au, type GrpcGetQueueStatsResponse as av, type GrpcGetQueueStatsResponse_Legacy as aw, type GrpcHeartbeatParams as ax, type GrpcHeartbeatRequest as ay, type GrpcHeartbeatResponse as az, type RealtimeEvent as b, type Schedule as b$, type JobCompletedEvent as b0, type JobContext as b1, type JobCreatedEvent as b2, type JobFailedEvent as b3, type JobHandler as b4, type JobProgressEvent as b5, type JobResult as b6, type JobStartedEvent as b7, type JobStats as b8, type JobStatus as b9, type PaginationParams as bA, type PauseQueueResponse as bB, type PlanCount as bC, type PlanLimits as bD, type PlanTier as bE, type ProcessJobsStream as bF, type PurgeDlqParams as bG, type PurgeDlqResponse as bH, type QueueConfig as bI, type QueueConfigSummary as bJ, type QueuePausedEvent as bK, type QueueResumedEvent as bL, type QueueStats as bM, type QueueSummary as bN, QueuesResource as bO, type RealtimeEventData as bP, type RecentActivity as bQ, type RefreshTokenParams as bR, type RefreshTokenResponse as bS, type RegisterWorkerParams as bT, type RegisterWorkerResponse as bU, type ResolvedConfig as bV, type ResourceUsage as bW, type ResumeQueueResponse as bX, type RetryDlqParams as bY, type RetryDlqResponse as bZ, SDK_VERSION as b_, type JobStatusChangedEvent as ba, type JobStream as bb, type JobSummary as bc, type JobSummaryStats as bd, type JobWithDependencies as be, JobsResource as bf, type JsonArray as bg, type JsonObject as bh, type JsonPrimitive as bi, type JsonValue as bj, type ListDlqParams as bk, type ListJobsParams as bl, type ListParams as bm, type ListSchedulesParams as bn, type ListWorkflowsParams as bo, type LoginParams as bp, type LoginResponse as bq, MetricsResource as br, type Organization as bs, type OrganizationMember as bt, type OrganizationSummary as bu, type OrganizationUsage as bv, OrganizationsResource as bw, type OutgoingWebhook as bx, type OutgoingWebhookDelivery as by, type PaginatedResponse as bz, type RetryConfig as c, type ScheduleRun as c0, type ScheduleRunStatus as c1, type ScheduleTriggeredEvent as c2, SchedulesResource as c3, SpooledClient as c4, type SpooledClientConfig as c5, SpooledGrpcClient as c6, SpooledRealtime as c7, type SpooledRealtimeOptions as c8, SpooledWorker as c9, type WorkerStatus as cA, type WorkerSummary as cB, WorkersResource as cC, type Workflow as cD, type WorkflowJob as cE, type WorkflowJobDefinition as cF, type WorkflowJobStatus as cG, type WorkflowResponse as cH, type WorkflowStatus as cI, WorkflowsResource as cJ, asyncIterableFromStream as cK, createCircuitBreaker as cL, createClient as cM, createHttpClient as cN, createJobStream as cO, createPaginatedResponse as cP, createProcessJobsStream as cQ, dateToTimestamp as cR, resolveConfig as cS, timestampToDate as cT, validateConfig as cU, type ActiveJob as cV, type SpooledWorkerOptions as ca, type StreamOptions as cb, type SystemInfo as cc, type TestWebhookResponse as cd, type TriggerScheduleResponse as ce, type UpdateApiKeyParams as cf, type UpdateOrganizationParams as cg, type UpdateOutgoingWebhookParams as ch, type UpdateQueueConfigParams as ci, type UpdateScheduleParams as cj, type UsageItem as ck, type UsageWarning as cl, type ValidateTokenParams as cm, type ValidateTokenResponse as cn, type WebhookDeliveryStatus as co, type WebhookEventType as cp, WebhookIngestionResource as cq, type WebhookTokenResponse as cr, WebhooksResource as cs, type Worker as ct, type WorkerDeregisteredEvent as cu, type WorkerEvent as cv, type WorkerEventData as cw, type WorkerHeartbeatParams as cx, type WorkerRegisteredEvent as cy, type WorkerState as cz, type AddDependenciesParams as d, type AddDependenciesResponse as e, type AdminApiKeyResponse as f, type AdminCreateApiKeyParams as g, type AdminCreateOrganizationParams as h, type AdminCreateOrganizationResponse as i, type AdminDeleteOrganizationParams as j, type AdminListOrganizationsParams as k, type AdminOrganizationDetail as l, type AdminOrganizationList as m, type AdminOrganizationSummary as n, type AdminPlanLimits as o, type AdminPlatformStats as p, AdminResource as q, type AdminUpdateOrganizationParams as r, type AdminUsageStats as s, type ApiKeySummary as t, ApiKeysResource as u, AuthResource as v, BillingResource as w, type BillingStatus as x, type BoostPriorityResponse as y, type BulkEnqueueParams as z };
|
|
@@ -3342,4 +3342,4 @@ declare class SpooledWorker {
|
|
|
3342
3342
|
private sleep;
|
|
3343
3343
|
}
|
|
3344
3344
|
|
|
3345
|
-
export { type
|
|
3345
|
+
export { type CreateWorkflowResponse as $, API_VERSION as A, type BatchJobStatus as B, type ConnectionState as C, type BulkEnqueueResponse as D, type BulkJobItem as E, type CheckSlugResponse as F, CircuitBreaker as G, type CircuitBreakerConfig as H, CircuitState as I, type ClaimJobsParams as J, type ClaimJobsResult as K, type ClaimedJob as L, type CompleteJobParams as M, type CreateApiKeyParams as N, type CreateApiKeyResponse as O, type CreateBillingPortalParams as P, type CreateBillingPortalResponse as Q, type RealtimeConnectionOptions as R, type SubscriptionFilter as S, type CreateJobParams as T, type CreateJobResult as U, type CreateOrganizationParams as V, type CreateOrganizationResponse as W, type CreateOutgoingWebhookParams as X, type CreateScheduleParams as Y, type CreateScheduleResponse as Z, type CreateWorkflowParams as _, type RealtimeEventType as a, type Job as a$, type CurrentUserResponse as a0, DEFAULT_CONFIG as a1, type DashboardData as a2, DashboardResource as a3, type DashboardWorkerSummary as a4, type DebugFn as a5, type DependencyMode as a6, type FailJobParams as a7, type GrpcClientOptions as a8, type GrpcCompleteJobParams as a9, type GrpcHeartbeatResponse_Legacy as aA, type GrpcJob as aB, GrpcJobStatus as aC, GrpcJobStatusNumber as aD, type GrpcProcessRequest as aE, type GrpcProcessResponse as aF, GrpcQueueOperations as aG, type GrpcRegisterWorkerParams as aH, type GrpcRegisterWorkerRequest as aI, type GrpcRegisterWorkerResponse as aJ, type GrpcRegisterWorkerResponse_Legacy as aK, type GrpcRenewLeaseParams as aL, type GrpcRenewLeaseRequest as aM, type GrpcRenewLeaseResponse as aN, type GrpcRenewLeaseResponse_Legacy as aO, type GrpcStreamJobsRequest as aP, type GrpcTimestamp as aQ, GrpcWorkerOperations as aR, HealthResource as aS, type HealthResponse as aT, type HeartbeatEvent as aU, type HeartbeatJobParams as aV, HttpClient as aW, type IngestCustomWebhookParams as aX, type IngestGitHubWebhookOptions as aY, type IngestStripeWebhookOptions as aZ, type InitialApiKey as a_, type GrpcCompleteJobResponse as aa, type GrpcCompleteRequest as ab, type GrpcCompleteResponse as ac, type GrpcDequeueJobParams as ad, type GrpcDequeueJobResponse as ae, type GrpcDequeueRequest as af, type GrpcDequeueResponse as ag, type GrpcDeregisterRequest as ah, type GrpcDeregisterResponse as ai, type GrpcEnqueueJobParams as aj, type GrpcEnqueueJobResponse as ak, type GrpcEnqueueRequest as al, type GrpcEnqueueResponse as am, type GrpcErrorResponse as an, type GrpcFailJobParams as ao, type GrpcFailJobResponse as ap, type GrpcFailRequest as aq, type GrpcFailResponse as ar, type GrpcGetJobRequest as as, type GrpcGetJobResponse as at, type GrpcGetQueueStatsRequest as au, type GrpcGetQueueStatsResponse as av, type GrpcGetQueueStatsResponse_Legacy as aw, type GrpcHeartbeatParams as ax, type GrpcHeartbeatRequest as ay, type GrpcHeartbeatResponse as az, type RealtimeEvent as b, type Schedule as b$, type JobCompletedEvent as b0, type JobContext as b1, type JobCreatedEvent as b2, type JobFailedEvent as b3, type JobHandler as b4, type JobProgressEvent as b5, type JobResult as b6, type JobStartedEvent as b7, type JobStats as b8, type JobStatus as b9, type PaginationParams as bA, type PauseQueueResponse as bB, type PlanCount as bC, type PlanLimits as bD, type PlanTier as bE, type ProcessJobsStream as bF, type PurgeDlqParams as bG, type PurgeDlqResponse as bH, type QueueConfig as bI, type QueueConfigSummary as bJ, type QueuePausedEvent as bK, type QueueResumedEvent as bL, type QueueStats as bM, type QueueSummary as bN, QueuesResource as bO, type RealtimeEventData as bP, type RecentActivity as bQ, type RefreshTokenParams as bR, type RefreshTokenResponse as bS, type RegisterWorkerParams as bT, type RegisterWorkerResponse as bU, type ResolvedConfig as bV, type ResourceUsage as bW, type ResumeQueueResponse as bX, type RetryDlqParams as bY, type RetryDlqResponse as bZ, SDK_VERSION as b_, type JobStatusChangedEvent as ba, type JobStream as bb, type JobSummary as bc, type JobSummaryStats as bd, type JobWithDependencies as be, JobsResource as bf, type JsonArray as bg, type JsonObject as bh, type JsonPrimitive as bi, type JsonValue as bj, type ListDlqParams as bk, type ListJobsParams as bl, type ListParams as bm, type ListSchedulesParams as bn, type ListWorkflowsParams as bo, type LoginParams as bp, type LoginResponse as bq, MetricsResource as br, type Organization as bs, type OrganizationMember as bt, type OrganizationSummary as bu, type OrganizationUsage as bv, OrganizationsResource as bw, type OutgoingWebhook as bx, type OutgoingWebhookDelivery as by, type PaginatedResponse as bz, type RetryConfig as c, type ScheduleRun as c0, type ScheduleRunStatus as c1, type ScheduleTriggeredEvent as c2, SchedulesResource as c3, SpooledClient as c4, type SpooledClientConfig as c5, SpooledGrpcClient as c6, SpooledRealtime as c7, type SpooledRealtimeOptions as c8, SpooledWorker as c9, type WorkerStatus as cA, type WorkerSummary as cB, WorkersResource as cC, type Workflow as cD, type WorkflowJob as cE, type WorkflowJobDefinition as cF, type WorkflowJobStatus as cG, type WorkflowResponse as cH, type WorkflowStatus as cI, WorkflowsResource as cJ, asyncIterableFromStream as cK, createCircuitBreaker as cL, createClient as cM, createHttpClient as cN, createJobStream as cO, createPaginatedResponse as cP, createProcessJobsStream as cQ, dateToTimestamp as cR, resolveConfig as cS, timestampToDate as cT, validateConfig as cU, type ActiveJob as cV, type SpooledWorkerOptions as ca, type StreamOptions as cb, type SystemInfo as cc, type TestWebhookResponse as cd, type TriggerScheduleResponse as ce, type UpdateApiKeyParams as cf, type UpdateOrganizationParams as cg, type UpdateOutgoingWebhookParams as ch, type UpdateQueueConfigParams as ci, type UpdateScheduleParams as cj, type UsageItem as ck, type UsageWarning as cl, type ValidateTokenParams as cm, type ValidateTokenResponse as cn, type WebhookDeliveryStatus as co, type WebhookEventType as cp, WebhookIngestionResource as cq, type WebhookTokenResponse as cr, WebhooksResource as cs, type Worker as ct, type WorkerDeregisteredEvent as cu, type WorkerEvent as cv, type WorkerEventData as cw, type WorkerHeartbeatParams as cx, type WorkerRegisteredEvent as cy, type WorkerState as cz, type AddDependenciesParams as d, type AddDependenciesResponse as e, type AdminApiKeyResponse as f, type AdminCreateApiKeyParams as g, type AdminCreateOrganizationParams as h, type AdminCreateOrganizationResponse as i, type AdminDeleteOrganizationParams as j, type AdminListOrganizationsParams as k, type AdminOrganizationDetail as l, type AdminOrganizationList as m, type AdminOrganizationSummary as n, type AdminPlanLimits as o, type AdminPlatformStats as p, AdminResource as q, type AdminUpdateOrganizationParams as r, type AdminUsageStats as s, type ApiKeySummary as t, ApiKeysResource as u, AuthResource as v, BillingResource as w, type BillingStatus as x, type BoostPriorityResponse as y, type BulkEnqueueParams as z };
|
package/dist/index.cjs
CHANGED
|
@@ -2055,7 +2055,7 @@ var WebSocketRealtimeClient = class {
|
|
|
2055
2055
|
return JSON.stringify(filter);
|
|
2056
2056
|
}
|
|
2057
2057
|
generateRequestId() {
|
|
2058
|
-
return `req_${Date.now()}_${Math.random().toString(36).
|
|
2058
|
+
return `req_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
|
|
2059
2059
|
}
|
|
2060
2060
|
};
|
|
2061
2061
|
|
|
@@ -2247,7 +2247,10 @@ var SseRealtimeClient = class {
|
|
|
2247
2247
|
}
|
|
2248
2248
|
}
|
|
2249
2249
|
handleDisconnect() {
|
|
2250
|
-
this.eventSource
|
|
2250
|
+
if (this.eventSource) {
|
|
2251
|
+
this.eventSource.close();
|
|
2252
|
+
this.eventSource = null;
|
|
2253
|
+
}
|
|
2251
2254
|
if (this.options.autoReconnect && this.reconnectAttempts < this.options.maxReconnectAttempts) {
|
|
2252
2255
|
this.scheduleReconnect();
|
|
2253
2256
|
} else {
|