@spooled/sdk 1.4.1 → 1.5.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/{index-Bqgiu-NN.d.cts → index-C76lW6vm.d.cts} +48 -9
- package/dist/{index-Bqgiu-NN.d.ts → index-C76lW6vm.d.ts} +48 -9
- package/dist/index.cjs +248 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -8
- package/dist/index.d.ts +2 -8
- package/dist/index.js +248 -25
- package/dist/index.js.map +1 -1
- package/dist/worker/index.cjs +102 -10
- 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 +102 -10
- package/dist/worker/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RealtimeConnectionOptions, C as ConnectionState, S as SubscriptionFilter, a as RealtimeEventType, b as RealtimeEvent, c as RetryConfig } from './index-
|
|
2
|
-
export { A as API_VERSION, d as AddDependenciesParams, e as AddDependenciesResponse, f as AdminApiKeyResponse, g as AdminCreateApiKeyParams, h as AdminCreateOrganizationParams, i as AdminCreateOrganizationResponse, j as AdminDeleteOrganizationParams, k as AdminListOrganizationsParams, l as AdminOrganizationDetail, m as AdminOrganizationList, n as AdminOrganizationSummary, o as AdminPlanLimits, p as AdminPlatformStats, q as AdminResource, r as AdminUpdateOrganizationParams, s as AdminUsageStats, t as ApiErrorBody, u as ApiKeySummary, v as ApiKeysResource, w as AuthResource, x as AuthenticationError, y as AuthorizationError, B as BatchJobStatus, z as BillingResource, D as BillingStatus, E as BoostPriorityResponse, F as BulkEnqueueParams, G as BulkEnqueueResponse, H as BulkJobItem, I as CheckEmailResponse, J as CheckSlugResponse, K as CircuitBreaker, L as CircuitBreakerConfig, M as CircuitBreakerOpenError, N as CircuitBreakerOptions, O as CircuitState, P as CircuitStateChange, Q as ClaimJobsParams, T as ClaimJobsResult, U as ClaimedJob, V as CompleteJobParams, W as ConflictError, X as CreateApiKeyParams, Y as CreateApiKeyResponse, Z as CreateBillingPortalParams, _ as CreateBillingPortalResponse, $ as CreateJobParams, a0 as CreateJobResult, a1 as CreateOrganizationParams, a2 as CreateOrganizationResponse, a3 as CreateOutgoingWebhookParams, a4 as CreateScheduleParams, a5 as CreateScheduleResponse, a6 as CreateWorkflowParams, a7 as CreateWorkflowResponse, a8 as CurrentUserResponse, a9 as DEFAULT_CONFIG, aa as DashboardData, ab as DashboardResource, ac as DashboardWorkerSummary, ad as DebugFn, ae as DeleteQueueOptions, af as DependencyInfo, ag as DependencyMode, ah as FailJobParams, ai as GrpcClientOptions, aj as GrpcCompleteJobParams, ak as GrpcCompleteJobResponse, al as GrpcCompleteRequest, am as GrpcCompleteResponse, an as GrpcDequeueJobParams, ao as GrpcDequeueJobResponse, ap as GrpcDequeueRequest, aq as GrpcDequeueResponse, ar as GrpcDeregisterRequest, as as GrpcDeregisterResponse, at as GrpcEnqueueJobParams, au as GrpcEnqueueJobResponse, av as GrpcEnqueueRequest, aw as GrpcEnqueueResponse, ax as GrpcErrorResponse, ay as GrpcFailJobParams, az as GrpcFailJobResponse, aA as GrpcFailRequest, aB as GrpcFailResponse, aC as GrpcGetJobRequest, aD as GrpcGetJobResponse, aE as GrpcGetQueueStatsRequest, aF as GrpcGetQueueStatsResponse, aG as GrpcGetQueueStatsResponse_Legacy, aH as GrpcHeartbeatParams, aI as GrpcHeartbeatRequest, aJ as GrpcHeartbeatResponse, aK as GrpcHeartbeatResponse_Legacy, aL as GrpcJob, aM as GrpcJobStatus, aN as GrpcJobStatusNumber, aO as GrpcProcessRequest, aP as GrpcProcessResponse, aQ as GrpcQueueOperations, aR as GrpcRegisterWorkerParams, aS as GrpcRegisterWorkerRequest, aT as GrpcRegisterWorkerResponse, aU as GrpcRegisterWorkerResponse_Legacy, aV as GrpcRenewLeaseParams, aW as GrpcRenewLeaseRequest, aX as GrpcRenewLeaseResponse, aY as GrpcRenewLeaseResponse_Legacy, aZ as GrpcStreamJobsRequest, a_ as GrpcTimestamp, a$ as GrpcWorkerOperations, b0 as HealthResource, b1 as HealthResponse, b2 as HeartbeatEvent, b3 as HeartbeatJobParams, b4 as HttpClient, b5 as InboundDeliveryStatus, b6 as InboundWebhookDelivery, b7 as IngestCustomWebhookParams, b8 as IngestCustomWebhookResponse, b9 as IngestGitHubWebhookOptions, ba as IngestStripeWebhookOptions, bb as InitialApiKey, bc as Job, bd as JobCompletedEvent, be as JobContext, bf as JobCreatedEvent, bg as JobFailedEvent, bh as JobHandler, bi as JobHistoryEvent, bj as JobHistoryEventType, bk as JobHistoryParams, bl as JobProgressEvent, bm as JobResult, bn as JobSearchParams, bo as JobStartedEvent, bp as JobStats, bq as JobStatus, br as JobStatusChangedEvent, bs as JobStream, bt as JobSummary, bu as JobSummaryStats, bv as JobWithDependencies, bw as JobsResource, bx as JsonArray, by as JsonObject, bz as JsonPrimitive, bA as JsonValue, bB as ListDlqParams, bC as ListInboundDeliveriesParams, bD as ListJobsParams, bE as ListPage, bF as ListParams, bG as ListSchedulesParams, bH as ListWorkflowsParams, bI as LoginParams, bJ as LoginResponse, bK as MetricsResource, bL as NetworkError, bM as NotFoundError, bN as Organization, bO as OrganizationMember, bP as OrganizationSummary, bQ as OrganizationUsage, bR as OrganizationsResource, bS as OutgoingWebhook, bT as OutgoingWebhookDelivery, bU as PaginatedResponse, bV as PaginationParams, bW as PauseQueueResponse, bX as PayloadTooLargeError, bY as PlanCount, bZ as PlanLimits, b_ as PlanTier, b$ as ProcessJobsStream, c0 as PurgeDlqParams, c1 as PurgeDlqResponse, c2 as QueueConfig, c3 as QueueConfigSummary, c4 as QueuePausedEvent, c5 as QueueResumedEvent, c6 as QueueStats, c7 as QueueSummary, c8 as QueuesResource, c9 as RateLimitError, ca as RateLimitInfo, cb as RealtimeEventData, cc as RecentActivity, cd as RefreshTokenParams, ce as RefreshTokenResponse, cf as RegisterWorkerParams, cg as RegisterWorkerResponse, ch as ResolvedConfig, ci as ResourceUsage, cj as ResumeQueueResponse, ck as RetryDlqParams, cl as RetryDlqResponse, cm as SDK_VERSION, cn as Schedule, co as ScheduleRun, cp as ScheduleRunStatus, cq as ScheduleTriggeredEvent, cr as SchedulesResource, cs as ServerError, ct as SpooledClient, cu as SpooledClientConfig, cv as SpooledError, cw as SpooledGrpcClient, cx as SpooledRealtime, cy as SpooledRealtimeOptions, cz as SpooledWorker, cA as SpooledWorkerOptions, cB as StartEmailLoginResponse, cC as StreamOptions, cD as SystemInfo, cE as TestWebhookResponse, cF as TimeoutError, cG as TokenClaims, cH as TriggerScheduleResponse, cI as UnsupportedOperationError, cJ as UpdateApiKeyParams, cK as UpdateOrganizationParams, cL as UpdateOutgoingWebhookParams, cM as UpdateQueueConfigParams, cN as UpdateScheduleParams, cO as UsageItem, cP as UsageWarning, cQ as ValidateTokenParams, cR as ValidateTokenResponse, cS as ValidationError, cT as WebhookDeliveryStatus, cU as WebhookEventType, cV as WebhookFormat, cW as WebhookIngestionResource, cX as WebhookTokenResponse, cY as WebhooksResource, cZ as Worker, c_ as WorkerDeregisteredEvent, c$ as WorkerEvent, d0 as WorkerEventData, d1 as WorkerHeartbeatParams, d2 as WorkerRegisteredEvent, d3 as WorkerState, d4 as WorkerStatus, d5 as WorkerSummary, d6 as WorkersResource, d7 as Workflow, d8 as WorkflowJob, d9 as WorkflowJobDefinition, da as WorkflowJobStatus, db as WorkflowResponse, dc as WorkflowStatus, dd as WorkflowsResource, de as asyncIterableFromStream, df as createCircuitBreaker, dg as createClient, dh as createErrorFromResponse, di as createHttpClient, dj as createJobStream, dk as createPaginatedResponse, dl as createProcessJobsStream, dm as dateToTimestamp, dn as isCircuitBreakerFailure, dp as isRetryableError, dq as isSpooledError, dr as parseRateLimitHeaders, ds as resolveConfig, dt as timestampToDate, du as validateConfig } from './index-
|
|
1
|
+
import { R as RealtimeConnectionOptions, C as ConnectionState, S as SubscriptionFilter, a as RealtimeEventType, b as RealtimeEvent, c as RetryConfig } from './index-C76lW6vm.cjs';
|
|
2
|
+
export { A as API_VERSION, d as AddDependenciesParams, e as AddDependenciesResponse, f as AdminApiKeyResponse, g as AdminCreateApiKeyParams, h as AdminCreateOrganizationParams, i as AdminCreateOrganizationResponse, j as AdminDeleteOrganizationParams, k as AdminListOrganizationsParams, l as AdminOrganizationDetail, m as AdminOrganizationList, n as AdminOrganizationSummary, o as AdminPlanLimits, p as AdminPlatformStats, q as AdminResource, r as AdminUpdateOrganizationParams, s as AdminUsageStats, t as ApiErrorBody, u as ApiKeySummary, v as ApiKeysResource, w as AuthResource, x as AuthenticationError, y as AuthorizationError, B as BatchJobStatus, z as BillingResource, D as BillingStatus, E as BoostPriorityResponse, F as BulkEnqueueParams, G as BulkEnqueueResponse, H as BulkJobItem, I as CheckEmailResponse, J as CheckSlugResponse, K as CircuitBreaker, L as CircuitBreakerConfig, M as CircuitBreakerOpenError, N as CircuitBreakerOptions, O as CircuitState, P as CircuitStateChange, Q as ClaimJobsParams, T as ClaimJobsResult, U as ClaimedJob, V as CompleteJobParams, W as ConflictError, X as CreateApiKeyParams, Y as CreateApiKeyResponse, Z as CreateBillingPortalParams, _ as CreateBillingPortalResponse, $ as CreateJobParams, a0 as CreateJobResult, a1 as CreateOrganizationParams, a2 as CreateOrganizationResponse, a3 as CreateOutgoingWebhookParams, a4 as CreateScheduleParams, a5 as CreateScheduleResponse, a6 as CreateWorkflowParams, a7 as CreateWorkflowResponse, a8 as CurrentUserResponse, a9 as DEFAULT_CONFIG, aa as DashboardData, ab as DashboardResource, ac as DashboardWorkerSummary, ad as DebugFn, ae as DeleteQueueOptions, af as DependencyInfo, ag as DependencyMode, ah as FailJobParams, ai as GrpcClientOptions, aj as GrpcCompleteJobParams, ak as GrpcCompleteJobResponse, al as GrpcCompleteRequest, am as GrpcCompleteResponse, an as GrpcDequeueJobParams, ao as GrpcDequeueJobResponse, ap as GrpcDequeueRequest, aq as GrpcDequeueResponse, ar as GrpcDeregisterRequest, as as GrpcDeregisterResponse, at as GrpcEnqueueJobParams, au as GrpcEnqueueJobResponse, av as GrpcEnqueueRequest, aw as GrpcEnqueueResponse, ax as GrpcErrorResponse, ay as GrpcFailJobParams, az as GrpcFailJobResponse, aA as GrpcFailRequest, aB as GrpcFailResponse, aC as GrpcGetJobRequest, aD as GrpcGetJobResponse, aE as GrpcGetQueueStatsRequest, aF as GrpcGetQueueStatsResponse, aG as GrpcGetQueueStatsResponse_Legacy, aH as GrpcHeartbeatParams, aI as GrpcHeartbeatRequest, aJ as GrpcHeartbeatResponse, aK as GrpcHeartbeatResponse_Legacy, aL as GrpcJob, aM as GrpcJobStatus, aN as GrpcJobStatusNumber, aO as GrpcProcessRequest, aP as GrpcProcessResponse, aQ as GrpcQueueOperations, aR as GrpcRegisterWorkerParams, aS as GrpcRegisterWorkerRequest, aT as GrpcRegisterWorkerResponse, aU as GrpcRegisterWorkerResponse_Legacy, aV as GrpcRenewLeaseParams, aW as GrpcRenewLeaseRequest, aX as GrpcRenewLeaseResponse, aY as GrpcRenewLeaseResponse_Legacy, aZ as GrpcStreamJobsRequest, a_ as GrpcTimestamp, a$ as GrpcWorkerOperations, b0 as HealthResource, b1 as HealthResponse, b2 as HeartbeatEvent, b3 as HeartbeatJobParams, b4 as HttpClient, b5 as InboundDeliveryStatus, b6 as InboundWebhookDelivery, b7 as IngestCustomWebhookParams, b8 as IngestCustomWebhookResponse, b9 as IngestGitHubWebhookOptions, ba as IngestStripeWebhookOptions, bb as InitialApiKey, bc as Job, bd as JobCompletedEvent, be as JobContext, bf as JobCreatedEvent, bg as JobFailedEvent, bh as JobHandler, bi as JobHistoryEvent, bj as JobHistoryEventType, bk as JobHistoryParams, bl as JobProgressEvent, bm as JobResult, bn as JobSearchParams, bo as JobStartedEvent, bp as JobStats, bq as JobStatus, br as JobStatusChangedEvent, bs as JobStream, bt as JobSummary, bu as JobSummaryStats, bv as JobWithDependencies, bw as JobsResource, bx as JsonArray, by as JsonObject, bz as JsonPrimitive, bA as JsonValue, bB as ListDlqParams, bC as ListInboundDeliveriesParams, bD as ListJobsParams, bE as ListPage, bF as ListParams, bG as ListSchedulesParams, bH as ListWorkflowsParams, bI as LoginParams, bJ as LoginResponse, bK as MetricsResource, bL as NetworkError, bM as NotFoundError, bN as Organization, bO as OrganizationMember, bP as OrganizationSummary, bQ as OrganizationUsage, bR as OrganizationsResource, bS as OutgoingWebhook, bT as OutgoingWebhookDelivery, bU as PaginatedResponse, bV as PaginationParams, bW as PauseQueueResponse, bX as PayloadTooLargeError, bY as PlanCount, bZ as PlanLimits, b_ as PlanTier, b$ as ProcessJobsStream, c0 as PurgeDlqParams, c1 as PurgeDlqResponse, c2 as QueueConfig, c3 as QueueConfigSummary, c4 as QueuePausedEvent, c5 as QueueResumedEvent, c6 as QueueStats, c7 as QueueSummary, c8 as QueuesResource, c9 as RateLimitError, ca as RateLimitInfo, cb as RealtimeEventData, cc as RecentActivity, cd as RefreshTokenParams, ce as RefreshTokenResponse, cf as RegisterWorkerParams, cg as RegisterWorkerResponse, ch as ResolvedConfig, ci as ResourceUsage, cj as ResumeQueueResponse, ck as RetryDlqParams, cl as RetryDlqResponse, cm as SDK_VERSION, cn as Schedule, co as ScheduleRun, cp as ScheduleRunStatus, cq as ScheduleTriggeredEvent, cr as SchedulesResource, cs as ServerError, ct as SpooledClient, cu as SpooledClientConfig, cv as SpooledError, cw as SpooledGrpcClient, cx as SpooledRealtime, cy as SpooledRealtimeOptions, cz as SpooledWorker, cA as SpooledWorkerOptions, cB as StartEmailLoginResponse, cC as StreamOptions, cD as SystemInfo, cE as TestWebhookResponse, cF as TimeoutError, cG as TokenClaims, cH as TriggerScheduleResponse, cI as UnsupportedOperationError, cJ as UpdateApiKeyParams, cK as UpdateOrganizationParams, cL as UpdateOutgoingWebhookParams, cM as UpdateQueueConfigParams, cN as UpdateScheduleParams, cO as UsageItem, cP as UsageWarning, cQ as ValidateTokenParams, cR as ValidateTokenResponse, cS as ValidationError, cT as WebhookDeliveryStatus, cU as WebhookEventType, cV as WebhookFormat, cW as WebhookIngestionResource, cX as WebhookTokenResponse, cY as WebhooksResource, cZ as Worker, c_ as WorkerDeregisteredEvent, c$ as WorkerEvent, d0 as WorkerEventData, d1 as WorkerHeartbeatParams, d2 as WorkerRegisteredEvent, d3 as WorkerState, d4 as WorkerStatus, d5 as WorkerSummary, d6 as WorkersResource, d7 as Workflow, d8 as WorkflowJob, d9 as WorkflowJobDefinition, da as WorkflowJobStatus, db as WorkflowResponse, dc as WorkflowStatus, dd as WorkflowsResource, de as asyncIterableFromStream, df as createCircuitBreaker, dg as createClient, dh as createErrorFromResponse, di as createHttpClient, dj as createJobStream, dk as createPaginatedResponse, dl as createProcessJobsStream, dm as dateToTimestamp, dn as isCircuitBreakerFailure, dp as isRetryableError, dq as isSpooledError, dr as parseRateLimitHeaders, ds as resolveConfig, dt as timestampToDate, du as validateConfig } from './index-C76lW6vm.cjs';
|
|
3
3
|
import * as protoLoader from '@grpc/proto-loader';
|
|
4
4
|
import { ServiceClientConstructor } from '@grpc/grpc-js';
|
|
5
5
|
|
|
@@ -268,12 +268,6 @@ declare function withRetry<T>(fn: () => Promise<T>, options: RetryOptions): Prom
|
|
|
268
268
|
*/
|
|
269
269
|
declare function createRetryWrapper(config: RetryConfig): <T>(fn: () => Promise<T>, options?: Partial<Omit<RetryOptions, "config">>) => Promise<T>;
|
|
270
270
|
|
|
271
|
-
/**
|
|
272
|
-
* Case Conversion Utilities
|
|
273
|
-
*
|
|
274
|
-
* Provides deep conversion between snake_case (API) and camelCase (SDK).
|
|
275
|
-
* User-defined JSON blobs are preserved without conversion.
|
|
276
|
-
*/
|
|
277
271
|
/**
|
|
278
272
|
* Convert a string from camelCase to snake_case
|
|
279
273
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RealtimeConnectionOptions, C as ConnectionState, S as SubscriptionFilter, a as RealtimeEventType, b as RealtimeEvent, c as RetryConfig } from './index-
|
|
2
|
-
export { A as API_VERSION, d as AddDependenciesParams, e as AddDependenciesResponse, f as AdminApiKeyResponse, g as AdminCreateApiKeyParams, h as AdminCreateOrganizationParams, i as AdminCreateOrganizationResponse, j as AdminDeleteOrganizationParams, k as AdminListOrganizationsParams, l as AdminOrganizationDetail, m as AdminOrganizationList, n as AdminOrganizationSummary, o as AdminPlanLimits, p as AdminPlatformStats, q as AdminResource, r as AdminUpdateOrganizationParams, s as AdminUsageStats, t as ApiErrorBody, u as ApiKeySummary, v as ApiKeysResource, w as AuthResource, x as AuthenticationError, y as AuthorizationError, B as BatchJobStatus, z as BillingResource, D as BillingStatus, E as BoostPriorityResponse, F as BulkEnqueueParams, G as BulkEnqueueResponse, H as BulkJobItem, I as CheckEmailResponse, J as CheckSlugResponse, K as CircuitBreaker, L as CircuitBreakerConfig, M as CircuitBreakerOpenError, N as CircuitBreakerOptions, O as CircuitState, P as CircuitStateChange, Q as ClaimJobsParams, T as ClaimJobsResult, U as ClaimedJob, V as CompleteJobParams, W as ConflictError, X as CreateApiKeyParams, Y as CreateApiKeyResponse, Z as CreateBillingPortalParams, _ as CreateBillingPortalResponse, $ as CreateJobParams, a0 as CreateJobResult, a1 as CreateOrganizationParams, a2 as CreateOrganizationResponse, a3 as CreateOutgoingWebhookParams, a4 as CreateScheduleParams, a5 as CreateScheduleResponse, a6 as CreateWorkflowParams, a7 as CreateWorkflowResponse, a8 as CurrentUserResponse, a9 as DEFAULT_CONFIG, aa as DashboardData, ab as DashboardResource, ac as DashboardWorkerSummary, ad as DebugFn, ae as DeleteQueueOptions, af as DependencyInfo, ag as DependencyMode, ah as FailJobParams, ai as GrpcClientOptions, aj as GrpcCompleteJobParams, ak as GrpcCompleteJobResponse, al as GrpcCompleteRequest, am as GrpcCompleteResponse, an as GrpcDequeueJobParams, ao as GrpcDequeueJobResponse, ap as GrpcDequeueRequest, aq as GrpcDequeueResponse, ar as GrpcDeregisterRequest, as as GrpcDeregisterResponse, at as GrpcEnqueueJobParams, au as GrpcEnqueueJobResponse, av as GrpcEnqueueRequest, aw as GrpcEnqueueResponse, ax as GrpcErrorResponse, ay as GrpcFailJobParams, az as GrpcFailJobResponse, aA as GrpcFailRequest, aB as GrpcFailResponse, aC as GrpcGetJobRequest, aD as GrpcGetJobResponse, aE as GrpcGetQueueStatsRequest, aF as GrpcGetQueueStatsResponse, aG as GrpcGetQueueStatsResponse_Legacy, aH as GrpcHeartbeatParams, aI as GrpcHeartbeatRequest, aJ as GrpcHeartbeatResponse, aK as GrpcHeartbeatResponse_Legacy, aL as GrpcJob, aM as GrpcJobStatus, aN as GrpcJobStatusNumber, aO as GrpcProcessRequest, aP as GrpcProcessResponse, aQ as GrpcQueueOperations, aR as GrpcRegisterWorkerParams, aS as GrpcRegisterWorkerRequest, aT as GrpcRegisterWorkerResponse, aU as GrpcRegisterWorkerResponse_Legacy, aV as GrpcRenewLeaseParams, aW as GrpcRenewLeaseRequest, aX as GrpcRenewLeaseResponse, aY as GrpcRenewLeaseResponse_Legacy, aZ as GrpcStreamJobsRequest, a_ as GrpcTimestamp, a$ as GrpcWorkerOperations, b0 as HealthResource, b1 as HealthResponse, b2 as HeartbeatEvent, b3 as HeartbeatJobParams, b4 as HttpClient, b5 as InboundDeliveryStatus, b6 as InboundWebhookDelivery, b7 as IngestCustomWebhookParams, b8 as IngestCustomWebhookResponse, b9 as IngestGitHubWebhookOptions, ba as IngestStripeWebhookOptions, bb as InitialApiKey, bc as Job, bd as JobCompletedEvent, be as JobContext, bf as JobCreatedEvent, bg as JobFailedEvent, bh as JobHandler, bi as JobHistoryEvent, bj as JobHistoryEventType, bk as JobHistoryParams, bl as JobProgressEvent, bm as JobResult, bn as JobSearchParams, bo as JobStartedEvent, bp as JobStats, bq as JobStatus, br as JobStatusChangedEvent, bs as JobStream, bt as JobSummary, bu as JobSummaryStats, bv as JobWithDependencies, bw as JobsResource, bx as JsonArray, by as JsonObject, bz as JsonPrimitive, bA as JsonValue, bB as ListDlqParams, bC as ListInboundDeliveriesParams, bD as ListJobsParams, bE as ListPage, bF as ListParams, bG as ListSchedulesParams, bH as ListWorkflowsParams, bI as LoginParams, bJ as LoginResponse, bK as MetricsResource, bL as NetworkError, bM as NotFoundError, bN as Organization, bO as OrganizationMember, bP as OrganizationSummary, bQ as OrganizationUsage, bR as OrganizationsResource, bS as OutgoingWebhook, bT as OutgoingWebhookDelivery, bU as PaginatedResponse, bV as PaginationParams, bW as PauseQueueResponse, bX as PayloadTooLargeError, bY as PlanCount, bZ as PlanLimits, b_ as PlanTier, b$ as ProcessJobsStream, c0 as PurgeDlqParams, c1 as PurgeDlqResponse, c2 as QueueConfig, c3 as QueueConfigSummary, c4 as QueuePausedEvent, c5 as QueueResumedEvent, c6 as QueueStats, c7 as QueueSummary, c8 as QueuesResource, c9 as RateLimitError, ca as RateLimitInfo, cb as RealtimeEventData, cc as RecentActivity, cd as RefreshTokenParams, ce as RefreshTokenResponse, cf as RegisterWorkerParams, cg as RegisterWorkerResponse, ch as ResolvedConfig, ci as ResourceUsage, cj as ResumeQueueResponse, ck as RetryDlqParams, cl as RetryDlqResponse, cm as SDK_VERSION, cn as Schedule, co as ScheduleRun, cp as ScheduleRunStatus, cq as ScheduleTriggeredEvent, cr as SchedulesResource, cs as ServerError, ct as SpooledClient, cu as SpooledClientConfig, cv as SpooledError, cw as SpooledGrpcClient, cx as SpooledRealtime, cy as SpooledRealtimeOptions, cz as SpooledWorker, cA as SpooledWorkerOptions, cB as StartEmailLoginResponse, cC as StreamOptions, cD as SystemInfo, cE as TestWebhookResponse, cF as TimeoutError, cG as TokenClaims, cH as TriggerScheduleResponse, cI as UnsupportedOperationError, cJ as UpdateApiKeyParams, cK as UpdateOrganizationParams, cL as UpdateOutgoingWebhookParams, cM as UpdateQueueConfigParams, cN as UpdateScheduleParams, cO as UsageItem, cP as UsageWarning, cQ as ValidateTokenParams, cR as ValidateTokenResponse, cS as ValidationError, cT as WebhookDeliveryStatus, cU as WebhookEventType, cV as WebhookFormat, cW as WebhookIngestionResource, cX as WebhookTokenResponse, cY as WebhooksResource, cZ as Worker, c_ as WorkerDeregisteredEvent, c$ as WorkerEvent, d0 as WorkerEventData, d1 as WorkerHeartbeatParams, d2 as WorkerRegisteredEvent, d3 as WorkerState, d4 as WorkerStatus, d5 as WorkerSummary, d6 as WorkersResource, d7 as Workflow, d8 as WorkflowJob, d9 as WorkflowJobDefinition, da as WorkflowJobStatus, db as WorkflowResponse, dc as WorkflowStatus, dd as WorkflowsResource, de as asyncIterableFromStream, df as createCircuitBreaker, dg as createClient, dh as createErrorFromResponse, di as createHttpClient, dj as createJobStream, dk as createPaginatedResponse, dl as createProcessJobsStream, dm as dateToTimestamp, dn as isCircuitBreakerFailure, dp as isRetryableError, dq as isSpooledError, dr as parseRateLimitHeaders, ds as resolveConfig, dt as timestampToDate, du as validateConfig } from './index-
|
|
1
|
+
import { R as RealtimeConnectionOptions, C as ConnectionState, S as SubscriptionFilter, a as RealtimeEventType, b as RealtimeEvent, c as RetryConfig } from './index-C76lW6vm.js';
|
|
2
|
+
export { A as API_VERSION, d as AddDependenciesParams, e as AddDependenciesResponse, f as AdminApiKeyResponse, g as AdminCreateApiKeyParams, h as AdminCreateOrganizationParams, i as AdminCreateOrganizationResponse, j as AdminDeleteOrganizationParams, k as AdminListOrganizationsParams, l as AdminOrganizationDetail, m as AdminOrganizationList, n as AdminOrganizationSummary, o as AdminPlanLimits, p as AdminPlatformStats, q as AdminResource, r as AdminUpdateOrganizationParams, s as AdminUsageStats, t as ApiErrorBody, u as ApiKeySummary, v as ApiKeysResource, w as AuthResource, x as AuthenticationError, y as AuthorizationError, B as BatchJobStatus, z as BillingResource, D as BillingStatus, E as BoostPriorityResponse, F as BulkEnqueueParams, G as BulkEnqueueResponse, H as BulkJobItem, I as CheckEmailResponse, J as CheckSlugResponse, K as CircuitBreaker, L as CircuitBreakerConfig, M as CircuitBreakerOpenError, N as CircuitBreakerOptions, O as CircuitState, P as CircuitStateChange, Q as ClaimJobsParams, T as ClaimJobsResult, U as ClaimedJob, V as CompleteJobParams, W as ConflictError, X as CreateApiKeyParams, Y as CreateApiKeyResponse, Z as CreateBillingPortalParams, _ as CreateBillingPortalResponse, $ as CreateJobParams, a0 as CreateJobResult, a1 as CreateOrganizationParams, a2 as CreateOrganizationResponse, a3 as CreateOutgoingWebhookParams, a4 as CreateScheduleParams, a5 as CreateScheduleResponse, a6 as CreateWorkflowParams, a7 as CreateWorkflowResponse, a8 as CurrentUserResponse, a9 as DEFAULT_CONFIG, aa as DashboardData, ab as DashboardResource, ac as DashboardWorkerSummary, ad as DebugFn, ae as DeleteQueueOptions, af as DependencyInfo, ag as DependencyMode, ah as FailJobParams, ai as GrpcClientOptions, aj as GrpcCompleteJobParams, ak as GrpcCompleteJobResponse, al as GrpcCompleteRequest, am as GrpcCompleteResponse, an as GrpcDequeueJobParams, ao as GrpcDequeueJobResponse, ap as GrpcDequeueRequest, aq as GrpcDequeueResponse, ar as GrpcDeregisterRequest, as as GrpcDeregisterResponse, at as GrpcEnqueueJobParams, au as GrpcEnqueueJobResponse, av as GrpcEnqueueRequest, aw as GrpcEnqueueResponse, ax as GrpcErrorResponse, ay as GrpcFailJobParams, az as GrpcFailJobResponse, aA as GrpcFailRequest, aB as GrpcFailResponse, aC as GrpcGetJobRequest, aD as GrpcGetJobResponse, aE as GrpcGetQueueStatsRequest, aF as GrpcGetQueueStatsResponse, aG as GrpcGetQueueStatsResponse_Legacy, aH as GrpcHeartbeatParams, aI as GrpcHeartbeatRequest, aJ as GrpcHeartbeatResponse, aK as GrpcHeartbeatResponse_Legacy, aL as GrpcJob, aM as GrpcJobStatus, aN as GrpcJobStatusNumber, aO as GrpcProcessRequest, aP as GrpcProcessResponse, aQ as GrpcQueueOperations, aR as GrpcRegisterWorkerParams, aS as GrpcRegisterWorkerRequest, aT as GrpcRegisterWorkerResponse, aU as GrpcRegisterWorkerResponse_Legacy, aV as GrpcRenewLeaseParams, aW as GrpcRenewLeaseRequest, aX as GrpcRenewLeaseResponse, aY as GrpcRenewLeaseResponse_Legacy, aZ as GrpcStreamJobsRequest, a_ as GrpcTimestamp, a$ as GrpcWorkerOperations, b0 as HealthResource, b1 as HealthResponse, b2 as HeartbeatEvent, b3 as HeartbeatJobParams, b4 as HttpClient, b5 as InboundDeliveryStatus, b6 as InboundWebhookDelivery, b7 as IngestCustomWebhookParams, b8 as IngestCustomWebhookResponse, b9 as IngestGitHubWebhookOptions, ba as IngestStripeWebhookOptions, bb as InitialApiKey, bc as Job, bd as JobCompletedEvent, be as JobContext, bf as JobCreatedEvent, bg as JobFailedEvent, bh as JobHandler, bi as JobHistoryEvent, bj as JobHistoryEventType, bk as JobHistoryParams, bl as JobProgressEvent, bm as JobResult, bn as JobSearchParams, bo as JobStartedEvent, bp as JobStats, bq as JobStatus, br as JobStatusChangedEvent, bs as JobStream, bt as JobSummary, bu as JobSummaryStats, bv as JobWithDependencies, bw as JobsResource, bx as JsonArray, by as JsonObject, bz as JsonPrimitive, bA as JsonValue, bB as ListDlqParams, bC as ListInboundDeliveriesParams, bD as ListJobsParams, bE as ListPage, bF as ListParams, bG as ListSchedulesParams, bH as ListWorkflowsParams, bI as LoginParams, bJ as LoginResponse, bK as MetricsResource, bL as NetworkError, bM as NotFoundError, bN as Organization, bO as OrganizationMember, bP as OrganizationSummary, bQ as OrganizationUsage, bR as OrganizationsResource, bS as OutgoingWebhook, bT as OutgoingWebhookDelivery, bU as PaginatedResponse, bV as PaginationParams, bW as PauseQueueResponse, bX as PayloadTooLargeError, bY as PlanCount, bZ as PlanLimits, b_ as PlanTier, b$ as ProcessJobsStream, c0 as PurgeDlqParams, c1 as PurgeDlqResponse, c2 as QueueConfig, c3 as QueueConfigSummary, c4 as QueuePausedEvent, c5 as QueueResumedEvent, c6 as QueueStats, c7 as QueueSummary, c8 as QueuesResource, c9 as RateLimitError, ca as RateLimitInfo, cb as RealtimeEventData, cc as RecentActivity, cd as RefreshTokenParams, ce as RefreshTokenResponse, cf as RegisterWorkerParams, cg as RegisterWorkerResponse, ch as ResolvedConfig, ci as ResourceUsage, cj as ResumeQueueResponse, ck as RetryDlqParams, cl as RetryDlqResponse, cm as SDK_VERSION, cn as Schedule, co as ScheduleRun, cp as ScheduleRunStatus, cq as ScheduleTriggeredEvent, cr as SchedulesResource, cs as ServerError, ct as SpooledClient, cu as SpooledClientConfig, cv as SpooledError, cw as SpooledGrpcClient, cx as SpooledRealtime, cy as SpooledRealtimeOptions, cz as SpooledWorker, cA as SpooledWorkerOptions, cB as StartEmailLoginResponse, cC as StreamOptions, cD as SystemInfo, cE as TestWebhookResponse, cF as TimeoutError, cG as TokenClaims, cH as TriggerScheduleResponse, cI as UnsupportedOperationError, cJ as UpdateApiKeyParams, cK as UpdateOrganizationParams, cL as UpdateOutgoingWebhookParams, cM as UpdateQueueConfigParams, cN as UpdateScheduleParams, cO as UsageItem, cP as UsageWarning, cQ as ValidateTokenParams, cR as ValidateTokenResponse, cS as ValidationError, cT as WebhookDeliveryStatus, cU as WebhookEventType, cV as WebhookFormat, cW as WebhookIngestionResource, cX as WebhookTokenResponse, cY as WebhooksResource, cZ as Worker, c_ as WorkerDeregisteredEvent, c$ as WorkerEvent, d0 as WorkerEventData, d1 as WorkerHeartbeatParams, d2 as WorkerRegisteredEvent, d3 as WorkerState, d4 as WorkerStatus, d5 as WorkerSummary, d6 as WorkersResource, d7 as Workflow, d8 as WorkflowJob, d9 as WorkflowJobDefinition, da as WorkflowJobStatus, db as WorkflowResponse, dc as WorkflowStatus, dd as WorkflowsResource, de as asyncIterableFromStream, df as createCircuitBreaker, dg as createClient, dh as createErrorFromResponse, di as createHttpClient, dj as createJobStream, dk as createPaginatedResponse, dl as createProcessJobsStream, dm as dateToTimestamp, dn as isCircuitBreakerFailure, dp as isRetryableError, dq as isSpooledError, dr as parseRateLimitHeaders, ds as resolveConfig, dt as timestampToDate, du as validateConfig } from './index-C76lW6vm.js';
|
|
3
3
|
import * as protoLoader from '@grpc/proto-loader';
|
|
4
4
|
import { ServiceClientConstructor } from '@grpc/grpc-js';
|
|
5
5
|
|
|
@@ -268,12 +268,6 @@ declare function withRetry<T>(fn: () => Promise<T>, options: RetryOptions): Prom
|
|
|
268
268
|
*/
|
|
269
269
|
declare function createRetryWrapper(config: RetryConfig): <T>(fn: () => Promise<T>, options?: Partial<Omit<RetryOptions, "config">>) => Promise<T>;
|
|
270
270
|
|
|
271
|
-
/**
|
|
272
|
-
* Case Conversion Utilities
|
|
273
|
-
*
|
|
274
|
-
* Provides deep conversion between snake_case (API) and camelCase (SDK).
|
|
275
|
-
* User-defined JSON blobs are preserved without conversion.
|
|
276
|
-
*/
|
|
277
271
|
/**
|
|
278
272
|
* Convert a string from camelCase to snake_case
|
|
279
273
|
*/
|
package/dist/index.js
CHANGED
|
@@ -24,10 +24,10 @@ var DEFAULT_CONFIG = {
|
|
|
24
24
|
successThreshold: 3,
|
|
25
25
|
timeout: 3e4
|
|
26
26
|
},
|
|
27
|
-
userAgent: "@spooled/sdk-nodejs/1.
|
|
27
|
+
userAgent: "@spooled/sdk-nodejs/1.5.1",
|
|
28
28
|
autoRefreshToken: true
|
|
29
29
|
};
|
|
30
|
-
var SDK_VERSION = "1.
|
|
30
|
+
var SDK_VERSION = "1.5.1";
|
|
31
31
|
var API_VERSION = "v1";
|
|
32
32
|
var API_BASE_PATH = `/api/${API_VERSION}`;
|
|
33
33
|
function normalizeCredential(value) {
|
|
@@ -607,6 +607,175 @@ function createRetryWrapper(config) {
|
|
|
607
607
|
};
|
|
608
608
|
}
|
|
609
609
|
|
|
610
|
+
// src/utils/json.ts
|
|
611
|
+
var TWO_POW_53 = "9007199254740992";
|
|
612
|
+
function parseApiJson(text) {
|
|
613
|
+
return JSON.parse(preserveExactIntegers(text));
|
|
614
|
+
}
|
|
615
|
+
function magnitudeExceedsTwoPow53(digits) {
|
|
616
|
+
let start = 0;
|
|
617
|
+
while (start < digits.length - 1 && digits.charCodeAt(start) === 48) {
|
|
618
|
+
start++;
|
|
619
|
+
}
|
|
620
|
+
const len = digits.length - start;
|
|
621
|
+
if (len !== TWO_POW_53.length) {
|
|
622
|
+
return len > TWO_POW_53.length;
|
|
623
|
+
}
|
|
624
|
+
for (let i = 0; i < len; i++) {
|
|
625
|
+
const digit = digits.charCodeAt(start + i);
|
|
626
|
+
const limit = TWO_POW_53.charCodeAt(i);
|
|
627
|
+
if (digit !== limit) {
|
|
628
|
+
return digit > limit;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
return false;
|
|
632
|
+
}
|
|
633
|
+
function inExactValue(frames) {
|
|
634
|
+
const top = frames[frames.length - 1];
|
|
635
|
+
if (!top || top.expect !== "value") {
|
|
636
|
+
return false;
|
|
637
|
+
}
|
|
638
|
+
return top.exact || top.keyIsExact;
|
|
639
|
+
}
|
|
640
|
+
function preserveExactIntegers(text) {
|
|
641
|
+
const out = [];
|
|
642
|
+
const frames = [];
|
|
643
|
+
const n = text.length;
|
|
644
|
+
let i = 0;
|
|
645
|
+
const valueEnded = () => {
|
|
646
|
+
const top = frames[frames.length - 1];
|
|
647
|
+
if (top) {
|
|
648
|
+
top.expect = "after";
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
while (i < n) {
|
|
652
|
+
const c = text[i];
|
|
653
|
+
if (c === " " || c === "\n" || c === "\r" || c === " ") {
|
|
654
|
+
out.push(c);
|
|
655
|
+
i++;
|
|
656
|
+
continue;
|
|
657
|
+
}
|
|
658
|
+
if (c === "{") {
|
|
659
|
+
frames.push({
|
|
660
|
+
kind: "object",
|
|
661
|
+
exact: inExactValue(frames),
|
|
662
|
+
expect: "key",
|
|
663
|
+
keyIsExact: false
|
|
664
|
+
});
|
|
665
|
+
out.push(c);
|
|
666
|
+
i++;
|
|
667
|
+
continue;
|
|
668
|
+
}
|
|
669
|
+
if (c === "[") {
|
|
670
|
+
frames.push({
|
|
671
|
+
kind: "array",
|
|
672
|
+
exact: inExactValue(frames),
|
|
673
|
+
expect: "value",
|
|
674
|
+
keyIsExact: false
|
|
675
|
+
});
|
|
676
|
+
out.push(c);
|
|
677
|
+
i++;
|
|
678
|
+
continue;
|
|
679
|
+
}
|
|
680
|
+
if (c === "}" || c === "]") {
|
|
681
|
+
frames.pop();
|
|
682
|
+
out.push(c);
|
|
683
|
+
i++;
|
|
684
|
+
valueEnded();
|
|
685
|
+
continue;
|
|
686
|
+
}
|
|
687
|
+
if (c === ":") {
|
|
688
|
+
const top = frames[frames.length - 1];
|
|
689
|
+
if (top && top.kind === "object") {
|
|
690
|
+
top.expect = "value";
|
|
691
|
+
}
|
|
692
|
+
out.push(c);
|
|
693
|
+
i++;
|
|
694
|
+
continue;
|
|
695
|
+
}
|
|
696
|
+
if (c === ",") {
|
|
697
|
+
const top = frames[frames.length - 1];
|
|
698
|
+
if (top) {
|
|
699
|
+
top.expect = top.kind === "object" ? "key" : "value";
|
|
700
|
+
top.keyIsExact = false;
|
|
701
|
+
}
|
|
702
|
+
out.push(c);
|
|
703
|
+
i++;
|
|
704
|
+
continue;
|
|
705
|
+
}
|
|
706
|
+
if (c === '"') {
|
|
707
|
+
const start = i;
|
|
708
|
+
i++;
|
|
709
|
+
while (i < n) {
|
|
710
|
+
if (text[i] === "\\") {
|
|
711
|
+
i++;
|
|
712
|
+
if (i < n) i++;
|
|
713
|
+
continue;
|
|
714
|
+
}
|
|
715
|
+
if (text[i] === '"') {
|
|
716
|
+
i++;
|
|
717
|
+
break;
|
|
718
|
+
}
|
|
719
|
+
i++;
|
|
720
|
+
}
|
|
721
|
+
const raw = text.slice(start, i);
|
|
722
|
+
const top = frames[frames.length - 1];
|
|
723
|
+
if (top && top.kind === "object" && top.expect === "key") {
|
|
724
|
+
let key = "";
|
|
725
|
+
try {
|
|
726
|
+
key = JSON.parse(raw);
|
|
727
|
+
} catch {
|
|
728
|
+
key = "";
|
|
729
|
+
}
|
|
730
|
+
top.keyIsExact = typeof key === "string" && SKIP_CONVERSION_KEYS.has(key);
|
|
731
|
+
top.expect = "colon";
|
|
732
|
+
} else {
|
|
733
|
+
valueEnded();
|
|
734
|
+
}
|
|
735
|
+
out.push(raw);
|
|
736
|
+
continue;
|
|
737
|
+
}
|
|
738
|
+
if (c === "-" || c >= "0" && c <= "9") {
|
|
739
|
+
const start = i;
|
|
740
|
+
if (text[i] === "-") i++;
|
|
741
|
+
const digitsAt = i;
|
|
742
|
+
while (i < n && text[i] >= "0" && text[i] <= "9") i++;
|
|
743
|
+
const digitsEnd = i;
|
|
744
|
+
let isInteger = true;
|
|
745
|
+
if (i < n && text[i] === ".") {
|
|
746
|
+
isInteger = false;
|
|
747
|
+
i++;
|
|
748
|
+
while (i < n && text[i] >= "0" && text[i] <= "9") i++;
|
|
749
|
+
}
|
|
750
|
+
if (i < n && (text[i] === "e" || text[i] === "E")) {
|
|
751
|
+
isInteger = false;
|
|
752
|
+
i++;
|
|
753
|
+
if (i < n && (text[i] === "+" || text[i] === "-")) i++;
|
|
754
|
+
while (i < n && text[i] >= "0" && text[i] <= "9") i++;
|
|
755
|
+
}
|
|
756
|
+
const raw = text.slice(start, i);
|
|
757
|
+
const digits = text.slice(digitsAt, digitsEnd);
|
|
758
|
+
if (isInteger && digits.length > 0 && inExactValue(frames) && magnitudeExceedsTwoPow53(digits)) {
|
|
759
|
+
out.push(`"${raw}"`);
|
|
760
|
+
} else {
|
|
761
|
+
out.push(raw);
|
|
762
|
+
}
|
|
763
|
+
valueEnded();
|
|
764
|
+
continue;
|
|
765
|
+
}
|
|
766
|
+
if (c >= "a" && c <= "z") {
|
|
767
|
+
const start = i;
|
|
768
|
+
while (i < n && text[i] >= "a" && text[i] <= "z") i++;
|
|
769
|
+
out.push(text.slice(start, i));
|
|
770
|
+
valueEnded();
|
|
771
|
+
continue;
|
|
772
|
+
}
|
|
773
|
+
out.push(c);
|
|
774
|
+
i++;
|
|
775
|
+
}
|
|
776
|
+
return out.join("");
|
|
777
|
+
}
|
|
778
|
+
|
|
610
779
|
// src/utils/http.ts
|
|
611
780
|
var IDEMPOTENT_METHODS = /* @__PURE__ */ new Set(["GET", "PUT", "DELETE"]);
|
|
612
781
|
var HttpClient = class {
|
|
@@ -807,7 +976,7 @@ var HttpClient = class {
|
|
|
807
976
|
if (response.status === 204) {
|
|
808
977
|
data = void 0;
|
|
809
978
|
} else if (contentType.includes("application/json")) {
|
|
810
|
-
const rawData = await response.
|
|
979
|
+
const rawData = parseApiJson(await response.text());
|
|
811
980
|
data = options.skipResponseConversion ? rawData : convertResponse(rawData);
|
|
812
981
|
} else {
|
|
813
982
|
data = await response.text();
|
|
@@ -2565,7 +2734,7 @@ var WebSocketRealtimeClient = class {
|
|
|
2565
2734
|
}
|
|
2566
2735
|
handleMessage(data) {
|
|
2567
2736
|
try {
|
|
2568
|
-
const message = convertResponse(
|
|
2737
|
+
const message = convertResponse(parseApiJson(data));
|
|
2569
2738
|
const eventType = mapEventType(String(message.type));
|
|
2570
2739
|
message.type = eventType;
|
|
2571
2740
|
const event = message;
|
|
@@ -2750,8 +2919,9 @@ var SseRealtimeClient = class {
|
|
|
2750
2919
|
this.setState("connecting");
|
|
2751
2920
|
const sseUrl = this.buildSseUrl(filter);
|
|
2752
2921
|
this.options.debug(`Connecting to SSE: ${sseUrl}`);
|
|
2922
|
+
const usingPlatformEventSource = typeof EventSource !== "undefined";
|
|
2753
2923
|
let EventSourceImpl;
|
|
2754
|
-
if (
|
|
2924
|
+
if (usingPlatformEventSource) {
|
|
2755
2925
|
EventSourceImpl = EventSource;
|
|
2756
2926
|
} else {
|
|
2757
2927
|
try {
|
|
@@ -2775,16 +2945,20 @@ var SseRealtimeClient = class {
|
|
|
2775
2945
|
}
|
|
2776
2946
|
return new Promise((resolve, reject) => {
|
|
2777
2947
|
try {
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2948
|
+
const connectUrl = usingPlatformEventSource ? appendSseToken(sseUrl, token) : sseUrl;
|
|
2949
|
+
this.eventSource = new EventSourceImpl(
|
|
2950
|
+
connectUrl,
|
|
2951
|
+
usingPlatformEventSource ? void 0 : {
|
|
2952
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2953
|
+
fetch: (input, init) => fetch(input, {
|
|
2954
|
+
...init,
|
|
2955
|
+
headers: {
|
|
2956
|
+
...init?.headers,
|
|
2957
|
+
Authorization: `Bearer ${token}`
|
|
2958
|
+
}
|
|
2959
|
+
})
|
|
2960
|
+
}
|
|
2961
|
+
);
|
|
2788
2962
|
this.eventSource.onopen = () => {
|
|
2789
2963
|
this.options.debug("SSE connected");
|
|
2790
2964
|
this.setState("connected");
|
|
@@ -2896,7 +3070,7 @@ var SseRealtimeClient = class {
|
|
|
2896
3070
|
}
|
|
2897
3071
|
handleMessage(data) {
|
|
2898
3072
|
try {
|
|
2899
|
-
const parsed = convertResponse(
|
|
3073
|
+
const parsed = convertResponse(parseApiJson(data));
|
|
2900
3074
|
const eventType = mapEventType(String(parsed.type));
|
|
2901
3075
|
parsed.type = eventType;
|
|
2902
3076
|
const event = parsed;
|
|
@@ -2971,6 +3145,10 @@ var SseRealtimeClient = class {
|
|
|
2971
3145
|
}, delay);
|
|
2972
3146
|
}
|
|
2973
3147
|
};
|
|
3148
|
+
function appendSseToken(url, token) {
|
|
3149
|
+
const separator = url.includes("?") ? "&" : "?";
|
|
3150
|
+
return `${url}${separator}token=${encodeURIComponent(token)}`;
|
|
3151
|
+
}
|
|
2974
3152
|
function isStreamEndingEvent(eventType, data) {
|
|
2975
3153
|
if (eventType === "error" || eventType === "job.completed") {
|
|
2976
3154
|
return true;
|
|
@@ -4436,6 +4614,10 @@ var SpooledWorker = class {
|
|
|
4436
4614
|
};
|
|
4437
4615
|
try {
|
|
4438
4616
|
const outcome = await this.runHandler(activeJob, context);
|
|
4617
|
+
if (activeJob.leaseLost) {
|
|
4618
|
+
this.debug(`Job ${job.id} lost its lease; dropping late result`);
|
|
4619
|
+
return;
|
|
4620
|
+
}
|
|
4439
4621
|
if (activeJob.settled) {
|
|
4440
4622
|
this.debug(`Job ${job.id} was already settled; dropping late result`);
|
|
4441
4623
|
return;
|
|
@@ -4443,11 +4625,14 @@ var SpooledWorker = class {
|
|
|
4443
4625
|
activeJob.settled = true;
|
|
4444
4626
|
switch (outcome.kind) {
|
|
4445
4627
|
case "returned":
|
|
4446
|
-
activeJob.ack = this.completeJob(
|
|
4628
|
+
activeJob.ack = this.completeJob(
|
|
4629
|
+
activeJob,
|
|
4630
|
+
outcome.value ?? void 0
|
|
4631
|
+
);
|
|
4447
4632
|
break;
|
|
4448
4633
|
case "threw":
|
|
4449
4634
|
activeJob.ack = this.failJob(
|
|
4450
|
-
|
|
4635
|
+
activeJob,
|
|
4451
4636
|
outcome.error instanceof Error ? outcome.error.message : String(outcome.error)
|
|
4452
4637
|
);
|
|
4453
4638
|
break;
|
|
@@ -4457,7 +4642,7 @@ var SpooledWorker = class {
|
|
|
4457
4642
|
jobId: job.id,
|
|
4458
4643
|
queueName: job.queueName
|
|
4459
4644
|
});
|
|
4460
|
-
activeJob.ack = this.failJob(
|
|
4645
|
+
activeJob.ack = this.failJob(activeJob, JOB_TIMEOUT_MESSAGE);
|
|
4461
4646
|
break;
|
|
4462
4647
|
}
|
|
4463
4648
|
await activeJob.ack;
|
|
@@ -4497,12 +4682,13 @@ var SpooledWorker = class {
|
|
|
4497
4682
|
this.debug(`Force-failing job ${activeJob.job.id} due to shutdown timeout`);
|
|
4498
4683
|
activeJob.settled = true;
|
|
4499
4684
|
activeJob.abortController.abort(new Error(SHUTDOWN_TIMEOUT_MESSAGE));
|
|
4500
|
-
activeJob.ack = this.failJob(activeJob
|
|
4685
|
+
activeJob.ack = this.failJob(activeJob, SHUTDOWN_TIMEOUT_MESSAGE);
|
|
4501
4686
|
await activeJob.ack;
|
|
4502
4687
|
this.cleanupJob(activeJob);
|
|
4503
4688
|
}
|
|
4504
|
-
async completeJob(
|
|
4505
|
-
if (!this.workerId) return;
|
|
4689
|
+
async completeJob(activeJob, result) {
|
|
4690
|
+
if (!this.workerId || activeJob.leaseLost) return;
|
|
4691
|
+
const { job } = activeJob;
|
|
4506
4692
|
try {
|
|
4507
4693
|
await this.client.jobs.complete(job.id, {
|
|
4508
4694
|
workerId: this.workerId,
|
|
@@ -4515,12 +4701,17 @@ var SpooledWorker = class {
|
|
|
4515
4701
|
result
|
|
4516
4702
|
});
|
|
4517
4703
|
} catch (error) {
|
|
4704
|
+
if (isLeaseExpired(error)) {
|
|
4705
|
+
this.noteLeaseLost(activeJob, error);
|
|
4706
|
+
return;
|
|
4707
|
+
}
|
|
4518
4708
|
this.debug(`Failed to complete job ${job.id}`, error);
|
|
4519
4709
|
this.emit("error", { error });
|
|
4520
4710
|
}
|
|
4521
4711
|
}
|
|
4522
|
-
async failJob(
|
|
4523
|
-
if (!this.workerId) return;
|
|
4712
|
+
async failJob(activeJob, errorMessage) {
|
|
4713
|
+
if (!this.workerId || activeJob.leaseLost) return;
|
|
4714
|
+
const { job } = activeJob;
|
|
4524
4715
|
const willRetry = job.retryCount < job.maxRetries;
|
|
4525
4716
|
const message = coerceFailureMessage(errorMessage);
|
|
4526
4717
|
try {
|
|
@@ -4536,6 +4727,10 @@ var SpooledWorker = class {
|
|
|
4536
4727
|
willRetry
|
|
4537
4728
|
});
|
|
4538
4729
|
} catch (error) {
|
|
4730
|
+
if (isLeaseExpired(error)) {
|
|
4731
|
+
this.noteLeaseLost(activeJob, error);
|
|
4732
|
+
return;
|
|
4733
|
+
}
|
|
4539
4734
|
this.debug(`Failed to fail job ${job.id}`, error);
|
|
4540
4735
|
this.emit("error", { error });
|
|
4541
4736
|
}
|
|
@@ -4560,7 +4755,7 @@ var SpooledWorker = class {
|
|
|
4560
4755
|
}
|
|
4561
4756
|
}
|
|
4562
4757
|
async sendJobHeartbeat(activeJob) {
|
|
4563
|
-
if (!this.workerId) return;
|
|
4758
|
+
if (!this.workerId || activeJob.leaseLost) return;
|
|
4564
4759
|
const { job } = activeJob;
|
|
4565
4760
|
try {
|
|
4566
4761
|
await this.client.jobs.heartbeat(job.id, {
|
|
@@ -4569,9 +4764,34 @@ var SpooledWorker = class {
|
|
|
4569
4764
|
...job.leaseId != null && { leaseId: job.leaseId }
|
|
4570
4765
|
});
|
|
4571
4766
|
} catch (error) {
|
|
4767
|
+
if (isLeaseExpired(error)) {
|
|
4768
|
+
this.noteLeaseLost(activeJob, error);
|
|
4769
|
+
return;
|
|
4770
|
+
}
|
|
4572
4771
|
this.debug(`Job heartbeat failed for ${job.id}`, error);
|
|
4573
4772
|
}
|
|
4574
4773
|
}
|
|
4774
|
+
/**
|
|
4775
|
+
* The lease is gone. Abort the handler if it listens, stop renewing, and
|
|
4776
|
+
* refuse a later complete/fail with the stale lease.
|
|
4777
|
+
*/
|
|
4778
|
+
noteLeaseLost(activeJob, error) {
|
|
4779
|
+
if (activeJob.leaseLost) return;
|
|
4780
|
+
activeJob.leaseLost = true;
|
|
4781
|
+
if (activeJob.heartbeatTimer) {
|
|
4782
|
+
clearInterval(activeJob.heartbeatTimer);
|
|
4783
|
+
activeJob.heartbeatTimer = void 0;
|
|
4784
|
+
}
|
|
4785
|
+
this.clearTimeoutTimer(activeJob);
|
|
4786
|
+
const reason = error instanceof Error ? error : new Error("Job lease expired");
|
|
4787
|
+
activeJob.abortController.abort(reason);
|
|
4788
|
+
this.debug(
|
|
4789
|
+
`Job lease lost for ${activeJob.job.id}; stopping handler`,
|
|
4790
|
+
error
|
|
4791
|
+
);
|
|
4792
|
+
activeJob.settled = true;
|
|
4793
|
+
this.cleanupJob(activeJob);
|
|
4794
|
+
}
|
|
4575
4795
|
async sendWorkerHeartbeat() {
|
|
4576
4796
|
if (!this.workerId || this.state !== "running" && this.state !== "stopping") {
|
|
4577
4797
|
return;
|
|
@@ -4606,6 +4826,9 @@ var SpooledWorker = class {
|
|
|
4606
4826
|
});
|
|
4607
4827
|
}
|
|
4608
4828
|
};
|
|
4829
|
+
function isLeaseExpired(error) {
|
|
4830
|
+
return error instanceof SpooledError && error.statusCode === 409 && error.code.toUpperCase() === "LEASE_EXPIRED";
|
|
4831
|
+
}
|
|
4609
4832
|
|
|
4610
4833
|
export { API_VERSION, AdminResource, ApiKeysResource, AuthResource, AuthenticationError, AuthorizationError, BillingResource, CircuitBreaker, CircuitBreakerOpenError, CircuitState, ConflictError, DEFAULT_CONFIG, DashboardResource, GrpcJobStatus, GrpcJobStatusNumber, GrpcQueueOperations, GrpcWorkerOperations, HealthResource, HttpClient, JobsResource, MetricsResource, NetworkError, NotFoundError, OrganizationsResource, PROTO_LOADER_OPTIONS, PayloadTooLargeError, QueuesResource, RateLimitError, SDK_VERSION, SchedulesResource, ServerError, SpooledClient, SpooledError, SpooledGrpcClient, SpooledRealtime, SpooledWorker, SseRealtimeClient, TimeoutError, UnsupportedOperationError, ValidationError, WebSocketRealtimeClient, WebhookIngestionResource, WebhooksResource, WorkersResource, WorkflowsResource, asyncIterableFromStream, calculateDelay, camelToSnake, clearProtoCache, convertQueryParams, convertRequest, convertResponse, createCircuitBreaker, createClient, createErrorFromResponse, createHttpClient, createJobStream, createPaginatedResponse, createProcessJobsStream, createRetryWrapper, dateToTimestamp, getProtoPath, isCircuitBreakerFailure, isRetryableError, isSpooledError, loadProtoDefinition, loadProtoDefinitionAsync, parseRateLimitHeaders, resolveConfig, shouldRetry, sleep, snakeToCamel, timestampToDate, toCamelCase, toSnakeCase, validateConfig, withRetry };
|
|
4611
4834
|
//# sourceMappingURL=index.js.map
|