@workglow/indexeddb 0.2.36 → 0.3.0

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.
Files changed (31) hide show
  1. package/dist/job-queue/IndexedDbJobStore.d.ts +42 -0
  2. package/dist/job-queue/IndexedDbJobStore.d.ts.map +1 -0
  3. package/dist/job-queue/IndexedDbMessageQueue.d.ts +38 -0
  4. package/dist/job-queue/IndexedDbMessageQueue.d.ts.map +1 -0
  5. package/dist/job-queue/IndexedDbQueueStorage.d.ts +55 -7
  6. package/dist/job-queue/IndexedDbQueueStorage.d.ts.map +1 -1
  7. package/dist/job-queue/IndexedDbRateLimiterStorage.d.ts +1 -2
  8. package/dist/job-queue/IndexedDbRateLimiterStorage.d.ts.map +1 -1
  9. package/dist/job-queue/browser.js +466 -60
  10. package/dist/job-queue/browser.js.map +10 -7
  11. package/dist/job-queue/common.d.ts +3 -0
  12. package/dist/job-queue/common.d.ts.map +1 -1
  13. package/dist/job-queue/createIndexedDbQueue.d.ts +20 -0
  14. package/dist/job-queue/createIndexedDbQueue.d.ts.map +1 -0
  15. package/dist/job-queue/node.js +466 -60
  16. package/dist/job-queue/node.js.map +10 -7
  17. package/dist/migrations/IndexedDbMigrationRunner.d.ts +12 -0
  18. package/dist/migrations/IndexedDbMigrationRunner.d.ts.map +1 -1
  19. package/dist/migrations/indexedDbQueueMigrations.d.ts +11 -5
  20. package/dist/migrations/indexedDbQueueMigrations.d.ts.map +1 -1
  21. package/dist/storage/IndexedDbKvStorage.d.ts +1 -1
  22. package/dist/storage/IndexedDbKvStorage.d.ts.map +1 -1
  23. package/dist/storage/IndexedDbTabularStorage.d.ts +14 -1
  24. package/dist/storage/IndexedDbTabularStorage.d.ts.map +1 -1
  25. package/dist/storage/IndexedDbVectorStorage.d.ts +2 -2
  26. package/dist/storage/IndexedDbVectorStorage.d.ts.map +1 -1
  27. package/dist/storage/browser.js +9 -9
  28. package/dist/storage/browser.js.map +5 -5
  29. package/dist/storage/node.js +9 -9
  30. package/dist/storage/node.js.map +5 -5
  31. package/package.json +7 -7
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Steven Roussey <sroussey@gmail.com>
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { IJobStore, JobRecord, JobStatus, JobStorageFormat, MessageId, SendOptions } from "@workglow/job-queue";
7
+ import type { PendingIndexedDbWrite } from "./IndexedDbMessageQueue";
8
+ import type { IndexedDbQueueStorage } from "./IndexedDbQueueStorage";
9
+ export declare class IndexedDbJobStore<Input, Output> implements IJobStore<Input, Output> {
10
+ /** @internal — shared with the paired message queue */
11
+ readonly core: IndexedDbQueueStorage<Input, Output>;
12
+ /** @internal — shared transient buffer for saveResult/saveError. */
13
+ private readonly pending;
14
+ constructor(core: IndexedDbQueueStorage<Input, Output>, pending: Map<unknown, PendingIndexedDbWrite<Output>>);
15
+ get(id: MessageId): Promise<JobRecord<Input, Output> | undefined>;
16
+ peek(status?: JobStatus, num?: number): Promise<readonly JobRecord<Input, Output>[]>;
17
+ size(status?: JobStatus): Promise<number>;
18
+ getByRunId(runId: string): Promise<readonly JobRecord<Input, Output>[]>;
19
+ outputForInput(input: Input): Promise<Output | null>;
20
+ saveProgress(id: MessageId, progress: number, message: string, details: Record<string, any> | null): Promise<void>;
21
+ saveResult(id: MessageId, output: Output): Promise<void>;
22
+ saveError(id: MessageId, error: string, errorCode: string | null, abortRequested: boolean): Promise<void>;
23
+ deleteByStatusAndAge(status: JobStatus, olderThanMs: number): Promise<void>;
24
+ delete(id: MessageId): Promise<void>;
25
+ deleteAll(): Promise<void>;
26
+ abort(id: MessageId): Promise<void>;
27
+ saveStatus(id: MessageId, status: JobStatus): Promise<void>;
28
+ create(body: JobStorageFormat<Input, Output>, opts: SendOptions): Promise<MessageId>;
29
+ findActiveByFingerprint(fingerprint: string, _queueName: string): Promise<JobRecord<Input, Output> | undefined>;
30
+ getMany(ids: readonly MessageId[]): Promise<readonly (JobRecord<Input, Output> | undefined)[]>;
31
+ completeWithResult(id: MessageId, result: Output): Promise<void>;
32
+ failWithError(id: MessageId, opts: {
33
+ readonly error?: string | null;
34
+ readonly errorCode?: string | null;
35
+ readonly abortRequested?: boolean;
36
+ }): Promise<void>;
37
+ markEnqueueDeferred(id: MessageId, opts: {
38
+ readonly visible_at: Date;
39
+ readonly errorCode: string;
40
+ }): Promise<void>;
41
+ }
42
+ //# sourceMappingURL=IndexedDbJobStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDbJobStore.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbJobStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,qBAAa,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAE,YAAW,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IAC/E,uDAAuD;IACvD,SAAgB,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3D,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IAEtE,YACE,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,EAC1C,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAIrD;IAED,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAEhE;IAEK,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAEzF;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAExC;IAEK,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAE5E;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEnD;IAEK,YAAY,CAChB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAClC,OAAO,CAAC,IAAI,CAAC,CAEf;IAEK,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7D;IAEK,SAAS,CACb,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,cAAc,EAAE,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC,CAMf;IAEK,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;IAEK,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzC;IAEK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAG/B;IAEK,KAAK,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAExC;IAEK,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;IAEK,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAYzF;IAEK,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAM/C;IAEK,OAAO,CACX,GAAG,EAAE,SAAS,SAAS,EAAE,GACxB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAE5D;IAEK,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASrE;IAEK,aAAa,CACjB,EAAE,EAAE,SAAS,EACb,IAAI,EAAE;QACJ,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;KACnC,GACA,OAAO,CAAC,IAAI,CAAC,CAef;IAEK,mBAAmB,CACvB,EAAE,EAAE,SAAS,EACb,IAAI,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,IAAI,CAAC,CAKf;CACF"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Steven Roussey <sroussey@gmail.com>
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { IClaim, IMessageQueue, JobStorageFormat, MessageId, QueueChangePayload, QueueStorageScope, QueueSubscribeOptions, SendOptions } from "@workglow/job-queue";
7
+ import { IndexedDbQueueStorage } from "./IndexedDbQueueStorage";
8
+ /**
9
+ * Per-id buffer that lets {@link IJobStore.saveResult}/{@link IJobStore.saveError}
10
+ * stage output/error until the terminal claim.ack()/fail() persists them in
11
+ * a single complete() call (avoids double-bumping `attempts`).
12
+ */
13
+ export type PendingIndexedDbWrite<Output> = {
14
+ output?: Output | null;
15
+ error?: string | null;
16
+ errorCode?: string | null;
17
+ abortRequested?: boolean;
18
+ };
19
+ export declare class IndexedDbMessageQueue<Input, Output> implements IMessageQueue<JobStorageFormat<Input, Output>> {
20
+ readonly scope: QueueStorageScope;
21
+ /** @internal — shared with the paired job store */
22
+ readonly core: IndexedDbQueueStorage<Input, Output>;
23
+ /** @internal — shared transient buffer for saveResult/saveError. */
24
+ private readonly pending;
25
+ constructor(core: IndexedDbQueueStorage<Input, Output>, pending: Map<unknown, PendingIndexedDbWrite<Output>>);
26
+ send(body: JobStorageFormat<Input, Output>, opts?: SendOptions): Promise<MessageId>;
27
+ sendBatch(bodies: readonly JobStorageFormat<Input, Output>[], opts?: SendOptions): Promise<readonly MessageId[]>;
28
+ receive(opts: {
29
+ workerId: string;
30
+ leaseMs: number;
31
+ max?: number;
32
+ }): Promise<readonly IClaim<JobStorageFormat<Input, Output>>[]>;
33
+ releaseClaim(id: MessageId): Promise<void>;
34
+ migrate(): Promise<void>;
35
+ getMigrations(): ReadonlyArray<unknown>;
36
+ subscribeToChanges(callback: (change: QueueChangePayload<any, any>) => void, options?: QueueSubscribeOptions): () => void;
37
+ }
38
+ //# sourceMappingURL=IndexedDbMessageQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDbMessageQueue.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbMessageQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,CAAC,MAAM,IAAI;IAC1C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqGF,qBAAa,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAE,YAAW,aAAa,CACxE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAChC;IACC,SAAgB,KAAK,EAAE,iBAAiB,CAAa;IAErD,mDAAmD;IACnD,SAAgB,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3D,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IAEtE,YACE,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,EAC1C,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAIrD;IAEK,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAExF;IAEK,SAAS,CACb,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAClD,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAM/B;IAEK,OAAO,CAAC,IAAI,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,SAAS,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAkB9D;IAEK,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,CAEtC;IAED,kBAAkB,CAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,IAAI,CAEZ;CACF"}
@@ -3,8 +3,8 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { JobStatus } from "@workglow/job-queue";
7
6
  import type { IQueueStorage, JobStorageFormat, PrefixColumn, QueueChangePayload, QueueStorageOptions, QueueSubscribeOptions } from "@workglow/job-queue";
7
+ import { JobStatus } from "@workglow/job-queue";
8
8
  export declare const INDEXED_DB_QUEUE_STORAGE: import("@workglow/util").ServiceToken<IQueueStorage<any, any>>;
9
9
  /**
10
10
  * Extended options for IndexedDB queue storage including prefix support.
@@ -78,9 +78,9 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
78
78
  */
79
79
  peek(status?: JobStatus, num?: number): Promise<JobStorageFormat<Input, Output>[]>;
80
80
  /**
81
- * Retrieves the next job from the queue using optimistic locking. In case multiple workers
82
- * claim the same job, the first worker to claim it will process it and the other workers will return undefined.
83
- * This ONLY happens if workers are running in multiple tabs.
81
+ * Retrieves the next job from the queue using optimistic locking.
82
+ * Claims PENDING jobs ready to run, and also reclaims PROCESSING jobs whose
83
+ * lease has expired (crash recovery). Sets lease_expires_at on the claimed row.
84
84
  *
85
85
  * IndexedDB uses snapshot isolation, so concurrent transactions can both see the same
86
86
  * PENDING job. To prevent processing the same job multiple times, this method:
@@ -89,9 +89,19 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
89
89
  * 3. If another worker claimed it first (different claim token), returns undefined
90
90
  *
91
91
  * @param workerId - Worker ID to associate with the job (required)
92
+ * @param opts - Optional options including leaseMs (default 30000)
92
93
  * @returns A promise that resolves to the next job or undefined if the queue is empty.
93
94
  */
94
- next(workerId: string): Promise<JobStorageFormat<Input, Output> | undefined>;
95
+ next(workerId: string, opts?: {
96
+ leaseMs?: number;
97
+ }): Promise<JobStorageFormat<Input, Output> | undefined>;
98
+ /**
99
+ * Extend the lease on a currently PROCESSING job.
100
+ * @param id - The ID of the job to extend the lease for
101
+ * @param workerId - Worker ID that must match the current lease owner (lease_owner)
102
+ * @param ms - Number of milliseconds to extend the lease by
103
+ */
104
+ extendLease(id: unknown, workerId: string, ms: number): Promise<void>;
95
105
  /**
96
106
  * Retrieves the number of jobs in the queue.
97
107
  * Returns the count of jobs in the queue.
@@ -104,15 +114,37 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
104
114
  /**
105
115
  * Releases a claimed job without consuming a retry attempt.
106
116
  */
107
- release(id: unknown): Promise<void>;
117
+ releaseClaim(id: unknown): Promise<void>;
108
118
  /**
109
- * Aborts a job in the queue.
119
+ * Aborts a job.
120
+ * - If PENDING: immediately mark as FAILED with abort_requested_at set.
121
+ * - If PROCESSING: set abort_requested_at only (leave status as PROCESSING).
122
+ * - Otherwise: no-op.
110
123
  */
111
124
  abort(id: unknown): Promise<void>;
125
+ /** Force-overwrite status without touching attempts (used to persist DISABLED after lease release). */
126
+ saveStatus(id: unknown, status: string): Promise<void>;
112
127
  /**
113
128
  * Gets jobs by their run ID.
114
129
  */
115
130
  getByRunId(job_run_id: string): Promise<JobStorageFormat<Input, Output>[]>;
131
+ /**
132
+ * Terminal write that does NOT bump `attempts`. See IQueueStorage.finalize
133
+ * for the rationale (avoids double-counting on ack/fail).
134
+ */
135
+ finalize(id: unknown, fields: {
136
+ output?: Output | null;
137
+ error?: string | null;
138
+ error_code?: string | null;
139
+ status?: JobStatus;
140
+ completed_at?: string | null;
141
+ abort_requested_at?: string | null;
142
+ lease_owner?: string | null;
143
+ progress?: number;
144
+ progress_message?: string;
145
+ progress_details?: Record<string, any> | null;
146
+ visible_at?: string | null;
147
+ }): Promise<void>;
116
148
  /**
117
149
  * Deletes all jobs from the queue.
118
150
  */
@@ -125,6 +157,9 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
125
157
  * Saves progress updates for a job.
126
158
  */
127
159
  saveProgress(id: unknown, progress: number, message: string, details: Record<string, any> | null): Promise<void>;
160
+ /**
161
+ * Persists a job to the store without modifying attempts or other completion logic.
162
+ */
128
163
  private put;
129
164
  /**
130
165
  * Deletes a job by its ID.
@@ -136,7 +171,20 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
136
171
  * @param olderThanMs - Delete jobs completed more than this many milliseconds ago
137
172
  */
138
173
  deleteJobsByStatusAndAge(status: JobStatus, olderThanMs: number): Promise<void>;
174
+ /**
175
+ * Gets all jobs from the queue that match the current prefix values.
176
+ * Used internally for normal polling-based subscriptions (efficient - filters at DB level).
177
+ *
178
+ * @returns A promise that resolves to an array of jobs
179
+ */
139
180
  private getAllJobs;
181
+ /**
182
+ * Gets all jobs from the queue with a custom prefix filter.
183
+ * Used for subscriptions with custom prefix filters (filters at DB level where possible).
184
+ *
185
+ * @param prefixFilter - The prefix values to filter by (empty object = all jobs)
186
+ * @returns A promise that resolves to an array of jobs
187
+ */
140
188
  private getAllJobsWithFilter;
141
189
  /**
142
190
  * Checks if a prefix filter is custom (different from instance's prefixes).
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDbQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbQueueStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexedDbQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbQueueStorage.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,7 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { PrefixColumn } from "@workglow/job-queue";
7
- import type { IRateLimiterStorage, RateLimiterStorageOptions, RateLimiterStorageScope } from "@workglow/job-queue";
6
+ import type { IRateLimiterStorage, PrefixColumn, RateLimiterStorageOptions, RateLimiterStorageScope } from "@workglow/job-queue";
8
7
  export declare const INDEXED_DB_RATE_LIMITER_STORAGE: import("@workglow/util").ServiceToken<IRateLimiterStorage>;
9
8
  /**
10
9
  * Extended options for IndexedDB rate limiter storage including prefix support.
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDbRateLimiterStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbRateLimiterStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,+BAA+B,4DAE3C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,yBAAyB;CAAG;AAqBxF;;;;;;;;GAQG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE;;;;OAIG;IACH,SAAgB,KAAK,EAAE,uBAAuB,CAAa;IAC3D,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,oCAAoC;IACpC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IACrD,sCAAsC;IACtC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IAE3E,YAAY,OAAO,GAAE,kCAAuC,EAa3D;IAED;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;YAIZ,cAAc;YAMd,kBAAkB;IAMhC;;;;OAIG;IACI,aAAa,iDAMnB;IAED;;;;;;OAMG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBpC;IAED;;;;;;;;;;;;;OAaG;IACU,mBAAmB,CAC9B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAqEzB;IAEY,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9E;IAEY,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB7D;IAEY,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC1F;IAEY,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkC7B;IAEY,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoBhF;IAEY,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B3F;IAEY,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CnD;CACF"}
1
+ {"version":3,"file":"IndexedDbRateLimiterStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbRateLimiterStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAM7B,eAAO,MAAM,+BAA+B,4DAE3C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,yBAAyB;CAAG;AAqBxF;;;;;;;;GAQG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE;;;;OAIG;IACH,SAAgB,KAAK,EAAE,uBAAuB,CAAa;IAC3D,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,oCAAoC;IACpC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IACrD,sCAAsC;IACtC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IAE3E,YAAY,OAAO,GAAE,kCAAuC,EAa3D;IAED;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;YAIZ,cAAc;YAMd,kBAAkB;IAMhC;;;;OAIG;IACI,aAAa,iDAMnB;IAED;;;;;;OAMG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBpC;IAED;;;;;;;;;;;;;OAaG;IACU,mBAAmB,CAC9B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAqEzB;IAEY,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9E;IAEY,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB7D;IAEY,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC1F;IAEY,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkC7B;IAEY,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoBhF;IAEY,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B3F;IAEY,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CnD;CACF"}