@workglow/indexeddb 0.2.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/dist/job-queue/IndexedDbQueueStorage.d.ts +167 -0
- package/dist/job-queue/IndexedDbQueueStorage.d.ts.map +1 -0
- package/dist/job-queue/IndexedDbRateLimiterStorage.d.ts +79 -0
- package/dist/job-queue/IndexedDbRateLimiterStorage.d.ts.map +1 -0
- package/dist/job-queue/browser.d.ts +7 -0
- package/dist/job-queue/browser.d.ts.map +1 -0
- package/dist/job-queue/browser.js +1195 -0
- package/dist/job-queue/browser.js.map +12 -0
- package/dist/job-queue/bun.d.ts +7 -0
- package/dist/job-queue/bun.d.ts.map +1 -0
- package/dist/job-queue/common.d.ts +8 -0
- package/dist/job-queue/common.d.ts.map +1 -0
- package/dist/job-queue/node.d.ts +7 -0
- package/dist/job-queue/node.d.ts.map +1 -0
- package/dist/job-queue/node.js +1195 -0
- package/dist/job-queue/node.js.map +12 -0
- package/dist/storage/IndexedDbKvStorage.d.ts +26 -0
- package/dist/storage/IndexedDbKvStorage.d.ts.map +1 -0
- package/dist/storage/IndexedDbTable.d.ts +40 -0
- package/dist/storage/IndexedDbTable.d.ts.map +1 -0
- package/dist/storage/IndexedDbTabularStorage.d.ts +198 -0
- package/dist/storage/IndexedDbTabularStorage.d.ts.map +1 -0
- package/dist/storage/IndexedDbVectorStorage.d.ts +52 -0
- package/dist/storage/IndexedDbVectorStorage.d.ts.map +1 -0
- package/dist/storage/browser.d.ts +7 -0
- package/dist/storage/browser.d.ts.map +1 -0
- package/dist/storage/browser.js +1182 -0
- package/dist/storage/browser.js.map +13 -0
- package/dist/storage/bun.d.ts +7 -0
- package/dist/storage/bun.d.ts.map +1 -0
- package/dist/storage/common.d.ts +10 -0
- package/dist/storage/common.d.ts.map +1 -0
- package/dist/storage/node.d.ts +7 -0
- package/dist/storage/node.d.ts.map +1 -0
- package/dist/storage/node.js +1182 -0
- package/dist/storage/node.js.map +13 -0
- package/package.json +74 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { MigrationOptions } from "../storage/IndexedDbTable";
|
|
7
|
+
import { JobStatus } from "@workglow/job-queue";
|
|
8
|
+
import type { IQueueStorage, JobStorageFormat, PrefixColumn, QueueChangePayload, QueueStorageOptions, QueueSubscribeOptions } from "@workglow/job-queue";
|
|
9
|
+
export declare const INDEXED_DB_QUEUE_STORAGE: import("@workglow/util").ServiceToken<IQueueStorage<any, any>>;
|
|
10
|
+
/**
|
|
11
|
+
* Extended options for IndexedDB queue storage including prefix support
|
|
12
|
+
*/
|
|
13
|
+
export interface IndexedDbQueueStorageOptions extends QueueStorageOptions, MigrationOptions {
|
|
14
|
+
/** Enable BroadcastChannel notifications (default: true) */
|
|
15
|
+
readonly useBroadcastChannel?: boolean;
|
|
16
|
+
/** Backup polling interval in ms (default: 5000, 0 to disable) */
|
|
17
|
+
readonly backupPollingIntervalMs?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* IndexedDB implementation of a job queue storage.
|
|
21
|
+
* Provides storage and retrieval for job execution states using IndexedDB.
|
|
22
|
+
*/
|
|
23
|
+
export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStorage<Input, Output> {
|
|
24
|
+
readonly queueName: string;
|
|
25
|
+
readonly scope: "process";
|
|
26
|
+
private db;
|
|
27
|
+
private readonly tableName;
|
|
28
|
+
private readonly migrationOptions;
|
|
29
|
+
/** The prefix column definitions */
|
|
30
|
+
protected readonly prefixes: readonly PrefixColumn[];
|
|
31
|
+
/** The prefix values for filtering */
|
|
32
|
+
protected readonly prefixValues: Readonly<Record<string, string | number>>;
|
|
33
|
+
/** Shared hybrid subscription manager */
|
|
34
|
+
private hybridManager;
|
|
35
|
+
/** Hybrid subscription options */
|
|
36
|
+
private readonly hybridOptions;
|
|
37
|
+
constructor(queueName: string, options?: IndexedDbQueueStorageOptions);
|
|
38
|
+
/**
|
|
39
|
+
* Gets prefix column names for use in indexes
|
|
40
|
+
*/
|
|
41
|
+
private getPrefixColumnNames;
|
|
42
|
+
/**
|
|
43
|
+
* Checks if a job matches the current prefix values
|
|
44
|
+
*/
|
|
45
|
+
private matchesPrefixes;
|
|
46
|
+
/**
|
|
47
|
+
* Gets prefix values as an array in column order for index key construction
|
|
48
|
+
*/
|
|
49
|
+
private getPrefixKeyValues;
|
|
50
|
+
private getDb;
|
|
51
|
+
/**
|
|
52
|
+
* Sets up the IndexedDB database table with the required schema and indexes.
|
|
53
|
+
* Must be called before using any other methods.
|
|
54
|
+
*/
|
|
55
|
+
setupDatabase(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Adds a job to the queue.
|
|
58
|
+
* @param job - The job to add to the queue.
|
|
59
|
+
* @returns A promise that resolves to the job id.
|
|
60
|
+
*/
|
|
61
|
+
add(job: JobStorageFormat<Input, Output>): Promise<unknown>;
|
|
62
|
+
/**
|
|
63
|
+
* Retrieves a job from the queue by its id.
|
|
64
|
+
* @param id - The id of the job to retrieve.
|
|
65
|
+
* @returns A promise that resolves to the job or undefined if the job is not found.
|
|
66
|
+
*/
|
|
67
|
+
get(id: unknown): Promise<JobStorageFormat<Input, Output> | undefined>;
|
|
68
|
+
/**
|
|
69
|
+
* Retrieves a slice of jobs from the queue.
|
|
70
|
+
* @param status - The status of the jobs to retrieve.
|
|
71
|
+
* @param num - The number of jobs to retrieve.
|
|
72
|
+
* @returns A promise that resolves to an array of jobs.
|
|
73
|
+
*/
|
|
74
|
+
peek(status?: JobStatus, num?: number): Promise<JobStorageFormat<Input, Output>[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Retrieves the next job from the queue using optimistic locking. In case multiple workers
|
|
77
|
+
* claim the same job, the first worker to claim it will process it and the other workers will return undefined.
|
|
78
|
+
* This ONLY happens if workers are running in multiple tabs.
|
|
79
|
+
*
|
|
80
|
+
* IndexedDB uses snapshot isolation, so concurrent transactions can both see the same
|
|
81
|
+
* PENDING job. To prevent processing the same job multiple times, this method:
|
|
82
|
+
* 1. Claims a job by setting it to PROCESSING with a unique claim token
|
|
83
|
+
* 2. After the transaction completes, re-reads the job to verify the claim succeeded
|
|
84
|
+
* 3. If another worker claimed it first (different claim token), returns undefined
|
|
85
|
+
*
|
|
86
|
+
* @param workerId - Worker ID to associate with the job (required)
|
|
87
|
+
* @returns A promise that resolves to the next job or undefined if the queue is empty.
|
|
88
|
+
*/
|
|
89
|
+
next(workerId: string): Promise<JobStorageFormat<Input, Output> | undefined>;
|
|
90
|
+
/**
|
|
91
|
+
* Retrieves the number of jobs in the queue.
|
|
92
|
+
* Returns the count of jobs in the queue.
|
|
93
|
+
*/
|
|
94
|
+
size(status?: "PENDING"): Promise<number>;
|
|
95
|
+
/**
|
|
96
|
+
* Marks a job as complete with its output or error.
|
|
97
|
+
*/
|
|
98
|
+
complete(job: JobStorageFormat<Input, Output>): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Releases a claimed job without consuming a retry attempt.
|
|
101
|
+
*/
|
|
102
|
+
release(id: unknown): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Aborts a job in the queue.
|
|
105
|
+
*/
|
|
106
|
+
abort(id: unknown): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Gets jobs by their run ID.
|
|
109
|
+
*/
|
|
110
|
+
getByRunId(job_run_id: string): Promise<JobStorageFormat<Input, Output>[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Deletes all jobs from the queue.
|
|
113
|
+
*/
|
|
114
|
+
deleteAll(): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Gets the output for a given input.
|
|
117
|
+
*/
|
|
118
|
+
outputForInput(input: Input): Promise<Output | null>;
|
|
119
|
+
/**
|
|
120
|
+
* Saves progress updates for a job.
|
|
121
|
+
*/
|
|
122
|
+
saveProgress(id: unknown, progress: number, message: string, details: Record<string, any> | null): Promise<void>;
|
|
123
|
+
private put;
|
|
124
|
+
/**
|
|
125
|
+
* Deletes a job by its ID.
|
|
126
|
+
*/
|
|
127
|
+
delete(id: unknown): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Delete jobs with a specific status older than a cutoff date
|
|
130
|
+
* @param status - Status of jobs to delete
|
|
131
|
+
* @param olderThanMs - Delete jobs completed more than this many milliseconds ago
|
|
132
|
+
*/
|
|
133
|
+
deleteJobsByStatusAndAge(status: JobStatus, olderThanMs: number): Promise<void>;
|
|
134
|
+
private getAllJobs;
|
|
135
|
+
private getAllJobsWithFilter;
|
|
136
|
+
/**
|
|
137
|
+
* Checks if a prefix filter is custom (different from instance's prefixes).
|
|
138
|
+
*/
|
|
139
|
+
private isCustomPrefixFilter;
|
|
140
|
+
/**
|
|
141
|
+
* Gets or creates the shared hybrid subscription manager for normal subscriptions.
|
|
142
|
+
* This ensures all normal subscriptions share a single manager.
|
|
143
|
+
*/
|
|
144
|
+
private getHybridManager;
|
|
145
|
+
/**
|
|
146
|
+
* Creates a dedicated polling subscription for custom prefix filters.
|
|
147
|
+
* This runs separately from the normal polling manager.
|
|
148
|
+
*/
|
|
149
|
+
private subscribeWithCustomPrefixFilter;
|
|
150
|
+
/**
|
|
151
|
+
* Subscribes to changes in the queue.
|
|
152
|
+
* Uses polling since IndexedDB has no native cross-tab change notifications.
|
|
153
|
+
*
|
|
154
|
+
* Normal subscriptions (no custom prefix filter) share a single polling loop for efficiency.
|
|
155
|
+
* Custom prefix filter subscriptions get their own dedicated polling loop with DB-level filtering.
|
|
156
|
+
*
|
|
157
|
+
* @param callback - Function called when a change occurs
|
|
158
|
+
* @param options - Subscription options including polling interval and prefix filter
|
|
159
|
+
* @returns Unsubscribe function
|
|
160
|
+
*/
|
|
161
|
+
subscribeToChanges(callback: (change: QueueChangePayload<Input, Output>) => void, options?: QueueSubscribeOptions): () => void;
|
|
162
|
+
/**
|
|
163
|
+
* Cleanup method to destroy the hybrid manager
|
|
164
|
+
*/
|
|
165
|
+
destroy(): void;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=IndexedDbQueueStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbQueueStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { MigrationOptions } from "../storage/IndexedDbTable";
|
|
7
|
+
import type { PrefixColumn } from "@workglow/job-queue";
|
|
8
|
+
import type { IRateLimiterStorage, RateLimiterStorageOptions, RateLimiterStorageScope } from "@workglow/job-queue";
|
|
9
|
+
export declare const INDEXED_DB_RATE_LIMITER_STORAGE: import("@workglow/util").ServiceToken<IRateLimiterStorage>;
|
|
10
|
+
/**
|
|
11
|
+
* Extended options for IndexedDB rate limiter storage including prefix support.
|
|
12
|
+
*/
|
|
13
|
+
export interface IndexedDbRateLimiterStorageOptions extends RateLimiterStorageOptions, MigrationOptions {
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* IndexedDB implementation of rate limiter storage.
|
|
17
|
+
* Manages execution records and next available times for rate limiting.
|
|
18
|
+
*
|
|
19
|
+
* Atomicity is `"process"`-scoped (browser tab) and the `next_available_at`
|
|
20
|
+
* pre-check inside {@link tryReserveExecution} runs in a separate IDB
|
|
21
|
+
* transaction from the count-and-insert. See {@link tryReserveExecution} for
|
|
22
|
+
* the full caveat — do not assume cross-store atomicity.
|
|
23
|
+
*/
|
|
24
|
+
export declare class IndexedDbRateLimiterStorage implements IRateLimiterStorage {
|
|
25
|
+
/**
|
|
26
|
+
* `"process"` — IndexedDB is per-origin and shared across tabs but not across
|
|
27
|
+
* processes (different machines, server processes). Within a single tab the
|
|
28
|
+
* `readwrite` transaction below provides atomicity.
|
|
29
|
+
*/
|
|
30
|
+
readonly scope: RateLimiterStorageScope;
|
|
31
|
+
private executionDb;
|
|
32
|
+
private nextAvailableDb;
|
|
33
|
+
private readonly executionTableName;
|
|
34
|
+
private readonly nextAvailableTableName;
|
|
35
|
+
private readonly migrationOptions;
|
|
36
|
+
/** The prefix column definitions */
|
|
37
|
+
protected readonly prefixes: readonly PrefixColumn[];
|
|
38
|
+
/** The prefix values for filtering */
|
|
39
|
+
protected readonly prefixValues: Readonly<Record<string, string | number>>;
|
|
40
|
+
constructor(options?: IndexedDbRateLimiterStorageOptions);
|
|
41
|
+
/**
|
|
42
|
+
* Gets prefix column names for use in indexes.
|
|
43
|
+
*/
|
|
44
|
+
private getPrefixColumnNames;
|
|
45
|
+
/**
|
|
46
|
+
* Checks if a record matches the current prefix values.
|
|
47
|
+
*/
|
|
48
|
+
private matchesPrefixes;
|
|
49
|
+
/**
|
|
50
|
+
* Gets prefix values as an array in column order for index key construction.
|
|
51
|
+
*/
|
|
52
|
+
private getPrefixKeyValues;
|
|
53
|
+
private getExecutionDb;
|
|
54
|
+
private getNextAvailableDb;
|
|
55
|
+
setupDatabase(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Atomically reserves an execution slot in IndexedDB.
|
|
58
|
+
*
|
|
59
|
+
* Atomicity caveat: this implementation only serializes the `count + insert`
|
|
60
|
+
* pair (under a single `readwrite` IDB transaction over the executions
|
|
61
|
+
* store). The `next_available_at` lookup is a soft pre-check performed
|
|
62
|
+
* BEFORE the tx, because the executions and next-available object stores
|
|
63
|
+
* live in separate `IDBDatabase` instances by design (one
|
|
64
|
+
* `ensureIndexedDbTable` call each) and IDB transaction scope cannot cross
|
|
65
|
+
* databases. This is acceptable for IndexedDB's `"process"` scope: rate-
|
|
66
|
+
* limit overshoot from a stale next-available read is bounded by single-
|
|
67
|
+
* tab serial execution, and the stricter count check is what protects the
|
|
68
|
+
* primary maxExecutions invariant.
|
|
69
|
+
*/
|
|
70
|
+
tryReserveExecution(queueName: string, maxExecutions: number, windowMs: number): Promise<unknown | null>;
|
|
71
|
+
releaseExecution(queueName: string, token: unknown): Promise<void>;
|
|
72
|
+
recordExecution(queueName: string): Promise<void>;
|
|
73
|
+
getExecutionCount(queueName: string, windowStartTime: string): Promise<number>;
|
|
74
|
+
getOldestExecutionAtOffset(queueName: string, offset: number): Promise<string | undefined>;
|
|
75
|
+
getNextAvailableTime(queueName: string): Promise<string | undefined>;
|
|
76
|
+
setNextAvailableTime(queueName: string, nextAvailableAt: string): Promise<void>;
|
|
77
|
+
clear(queueName: string): Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=IndexedDbRateLimiterStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbRateLimiterStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbRateLimiterStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,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,kCACf,SAAQ,yBAAyB,EAAE,gBAAgB;CAAG;AAqBxD;;;;;;;;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,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,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,EAc3D;IAED;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;YAIZ,cAAc;YAMd,kBAAkB;IAMnB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAqC1C;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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/job-queue/browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC"}
|