@workglow/indexeddb 0.3.11 → 0.3.12
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 +3 -98
- package/dist/job-queue/IndexedDbQueueStorage.d.ts.map +1 -1
- package/dist/job-queue/IndexedDbRateLimiterStorage.d.ts +0 -14
- package/dist/job-queue/IndexedDbRateLimiterStorage.d.ts.map +1 -1
- package/dist/job-queue/browser.js.map +3 -3
- package/dist/job-queue/node.js.map +3 -3
- package/dist/storage/IndexedDbKvStorage.d.ts +0 -11
- package/dist/storage/IndexedDbKvStorage.d.ts.map +1 -1
- package/dist/storage/IndexedDbTable.d.ts +0 -3
- package/dist/storage/IndexedDbTable.d.ts.map +1 -1
- package/dist/storage/IndexedDbTabularStorage.d.ts +2 -77
- package/dist/storage/IndexedDbTabularStorage.d.ts.map +1 -1
- package/dist/storage/IndexedDbVectorStorage.d.ts +0 -15
- package/dist/storage/IndexedDbVectorStorage.d.ts.map +1 -1
- package/dist/storage/browser.js +2 -2
- package/dist/storage/browser.js.map +6 -6
- package/dist/storage/node.js +2 -2
- package/dist/storage/node.js.map +6 -6
- package/package.json +7 -7
|
@@ -6,40 +6,24 @@
|
|
|
6
6
|
import type { IQueueStorage, JobStorageFormat, PrefixColumn, QueueChangePayload, QueueStorageOptions, QueueSubscribeOptions } from "@workglow/job-queue";
|
|
7
7
|
import { JobStatus } from "@workglow/job-queue";
|
|
8
8
|
export declare const INDEXED_DB_QUEUE_STORAGE: import("@workglow/util").ServiceToken<IQueueStorage<any, any>>;
|
|
9
|
-
/**
|
|
10
|
-
* Extended options for IndexedDB queue storage including prefix support.
|
|
11
|
-
*/
|
|
12
9
|
export interface IndexedDbQueueStorageOptions extends QueueStorageOptions {
|
|
13
10
|
/** Enable BroadcastChannel notifications (default: true) */
|
|
14
11
|
readonly useBroadcastChannel?: boolean;
|
|
15
12
|
/** Backup polling interval in ms (default: 5000, 0 to disable) */
|
|
16
13
|
readonly backupPollingIntervalMs?: number;
|
|
17
14
|
}
|
|
18
|
-
/**
|
|
19
|
-
* IndexedDB implementation of a job queue storage.
|
|
20
|
-
* Provides storage and retrieval for job execution states using IndexedDB.
|
|
21
|
-
*/
|
|
22
15
|
export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStorage<Input, Output> {
|
|
23
16
|
readonly queueName: string;
|
|
24
17
|
readonly scope: "process";
|
|
25
18
|
private db;
|
|
26
19
|
private readonly tableName;
|
|
27
|
-
/** The prefix column definitions */
|
|
28
20
|
protected readonly prefixes: readonly PrefixColumn[];
|
|
29
|
-
/** The prefix values for filtering */
|
|
30
21
|
protected readonly prefixValues: Readonly<Record<string, string | number>>;
|
|
31
|
-
/** Shared hybrid subscription manager */
|
|
32
22
|
private hybridManager;
|
|
33
|
-
/** Hybrid subscription options */
|
|
34
23
|
private readonly hybridOptions;
|
|
35
24
|
constructor(queueName: string, options?: IndexedDbQueueStorageOptions);
|
|
36
|
-
/**
|
|
37
|
-
* Checks if a job matches the current prefix values
|
|
38
|
-
*/
|
|
39
25
|
private matchesPrefixes;
|
|
40
|
-
/**
|
|
41
|
-
* Gets prefix values as an array in column order for index key construction
|
|
42
|
-
*/
|
|
26
|
+
/** Prefix values as an array in column order for index key construction. */
|
|
43
27
|
private getPrefixKeyValues;
|
|
44
28
|
private getDb;
|
|
45
29
|
/**
|
|
@@ -58,24 +42,8 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
|
|
|
58
42
|
* reopens the connection.
|
|
59
43
|
*/
|
|
60
44
|
migrate(): Promise<void>;
|
|
61
|
-
/**
|
|
62
|
-
* Adds a job to the queue.
|
|
63
|
-
* @param job - The job to add to the queue.
|
|
64
|
-
* @returns A promise that resolves to the job id.
|
|
65
|
-
*/
|
|
66
45
|
add(job: JobStorageFormat<Input, Output>): Promise<unknown>;
|
|
67
|
-
/**
|
|
68
|
-
* Retrieves a job from the queue by its id.
|
|
69
|
-
* @param id - The id of the job to retrieve.
|
|
70
|
-
* @returns A promise that resolves to the job or undefined if the job is not found.
|
|
71
|
-
*/
|
|
72
46
|
get(id: unknown): Promise<JobStorageFormat<Input, Output> | undefined>;
|
|
73
|
-
/**
|
|
74
|
-
* Retrieves a slice of jobs from the queue.
|
|
75
|
-
* @param status - The status of the jobs to retrieve.
|
|
76
|
-
* @param num - The number of jobs to retrieve.
|
|
77
|
-
* @returns A promise that resolves to an array of jobs.
|
|
78
|
-
*/
|
|
79
47
|
peek(status?: JobStatus, num?: number): Promise<JobStorageFormat<Input, Output>[]>;
|
|
80
48
|
/**
|
|
81
49
|
* Retrieves the next job from the queue using optimistic locking.
|
|
@@ -102,18 +70,8 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
|
|
|
102
70
|
* @param ms - Number of milliseconds to extend the lease by
|
|
103
71
|
*/
|
|
104
72
|
extendLease(id: unknown, workerId: string, ms: number): Promise<void>;
|
|
105
|
-
/**
|
|
106
|
-
* Retrieves the number of jobs in the queue.
|
|
107
|
-
* Returns the count of jobs in the queue.
|
|
108
|
-
*/
|
|
109
73
|
size(status?: "PENDING"): Promise<number>;
|
|
110
|
-
/**
|
|
111
|
-
* Marks a job as complete with its output or error.
|
|
112
|
-
*/
|
|
113
74
|
complete(job: JobStorageFormat<Input, Output>): Promise<void>;
|
|
114
|
-
/**
|
|
115
|
-
* Releases a claimed job without consuming a retry attempt.
|
|
116
|
-
*/
|
|
117
75
|
releaseClaim(id: unknown): Promise<void>;
|
|
118
76
|
/**
|
|
119
77
|
* Aborts a job.
|
|
@@ -124,9 +82,6 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
|
|
|
124
82
|
abort(id: unknown): Promise<void>;
|
|
125
83
|
/** Force-overwrite status without touching attempts (used to persist DISABLED after lease release). */
|
|
126
84
|
saveStatus(id: unknown, status: string): Promise<void>;
|
|
127
|
-
/**
|
|
128
|
-
* Gets jobs by their run ID.
|
|
129
|
-
*/
|
|
130
85
|
getByRunId(job_run_id: string): Promise<JobStorageFormat<Input, Output>[]>;
|
|
131
86
|
/**
|
|
132
87
|
* Terminal write that does NOT bump `attempts`. See IQueueStorage.finalize
|
|
@@ -153,76 +108,26 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
|
|
|
153
108
|
* them inside this microtask chain.
|
|
154
109
|
*/
|
|
155
110
|
markDisabled(id: unknown): Promise<void>;
|
|
156
|
-
/**
|
|
157
|
-
* Deletes all jobs from the queue.
|
|
158
|
-
*/
|
|
159
111
|
deleteAll(): Promise<void>;
|
|
160
|
-
/**
|
|
161
|
-
* Gets the output for a given input.
|
|
162
|
-
*/
|
|
163
112
|
outputForInput(input: Input): Promise<Output | null>;
|
|
164
|
-
/**
|
|
165
|
-
* Saves progress updates for a job.
|
|
166
|
-
*/
|
|
167
113
|
saveProgress(id: unknown, progress: number, message: string, details: Record<string, any> | null): Promise<void>;
|
|
168
114
|
/**
|
|
169
115
|
* Persists a job to the store without modifying attempts or other completion logic.
|
|
170
116
|
*/
|
|
171
117
|
private put;
|
|
172
|
-
/**
|
|
173
|
-
* Deletes a job by its ID.
|
|
174
|
-
*/
|
|
175
118
|
delete(id: unknown): Promise<void>;
|
|
176
|
-
/**
|
|
177
|
-
* Delete jobs with a specific status older than a cutoff date
|
|
178
|
-
* @param status - Status of jobs to delete
|
|
179
|
-
* @param olderThanMs - Delete jobs completed more than this many milliseconds ago
|
|
180
|
-
*/
|
|
181
119
|
deleteJobsByStatusAndAge(status: JobStatus, olderThanMs: number): Promise<void>;
|
|
182
|
-
/**
|
|
183
|
-
* Gets all jobs from the queue that match the current prefix values.
|
|
184
|
-
* Used internally for normal polling-based subscriptions (efficient - filters at DB level).
|
|
185
|
-
*
|
|
186
|
-
* @returns A promise that resolves to an array of jobs
|
|
187
|
-
*/
|
|
188
120
|
private getAllJobs;
|
|
189
|
-
/**
|
|
190
|
-
* Gets all jobs from the queue with a custom prefix filter.
|
|
191
|
-
* Used for subscriptions with custom prefix filters (filters at DB level where possible).
|
|
192
|
-
*
|
|
193
|
-
* @param prefixFilter - The prefix values to filter by (empty object = all jobs)
|
|
194
|
-
* @returns A promise that resolves to an array of jobs
|
|
195
|
-
*/
|
|
196
121
|
private getAllJobsWithFilter;
|
|
197
|
-
/**
|
|
198
|
-
* Checks if a prefix filter is custom (different from instance's prefixes).
|
|
199
|
-
*/
|
|
200
122
|
private isCustomPrefixFilter;
|
|
201
|
-
/**
|
|
202
|
-
* Gets or creates the shared hybrid subscription manager for normal subscriptions.
|
|
203
|
-
* This ensures all normal subscriptions share a single manager.
|
|
204
|
-
*/
|
|
205
123
|
private getHybridManager;
|
|
206
|
-
/**
|
|
207
|
-
* Creates a dedicated polling subscription for custom prefix filters.
|
|
208
|
-
* This runs separately from the normal polling manager.
|
|
209
|
-
*/
|
|
210
124
|
private subscribeWithCustomPrefixFilter;
|
|
211
125
|
/**
|
|
212
|
-
* Subscribes to changes in the queue.
|
|
213
126
|
* Uses polling since IndexedDB has no native cross-tab change notifications.
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
* Custom prefix filter subscriptions get their own dedicated polling loop with DB-level filtering.
|
|
217
|
-
*
|
|
218
|
-
* @param callback - Function called when a change occurs
|
|
219
|
-
* @param options - Subscription options including polling interval and prefix filter
|
|
220
|
-
* @returns Unsubscribe function
|
|
127
|
+
* Normal subscriptions share a single polling loop; custom prefix filter
|
|
128
|
+
* subscriptions get a dedicated loop with DB-level filtering.
|
|
221
129
|
*/
|
|
222
130
|
subscribeToChanges(callback: (change: QueueChangePayload<Input, Output>) => void, options?: QueueSubscribeOptions): () => void;
|
|
223
|
-
/**
|
|
224
|
-
* Cleanup method to destroy the hybrid manager
|
|
225
|
-
*/
|
|
226
131
|
destroy(): void;
|
|
227
132
|
}
|
|
228
133
|
//# sourceMappingURL=IndexedDbQueueStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexedDbQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbQueueStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAC;AAOjE,eAAO,MAAM,wBAAwB,gEAEpC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"IndexedDbQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbQueueStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { IRateLimiterStorage, PrefixColumn, RateLimiterStorageOptions, RateLimiterStorageScope } from "@workglow/job-queue";
|
|
7
7
|
export declare const INDEXED_DB_RATE_LIMITER_STORAGE: import("@workglow/util").ServiceToken<IRateLimiterStorage>;
|
|
8
|
-
/**
|
|
9
|
-
* Extended options for IndexedDB rate limiter storage including prefix support.
|
|
10
|
-
*/
|
|
11
8
|
export interface IndexedDbRateLimiterStorageOptions extends RateLimiterStorageOptions {
|
|
12
9
|
}
|
|
13
10
|
/**
|
|
@@ -30,22 +27,11 @@ export declare class IndexedDbRateLimiterStorage implements IRateLimiterStorage
|
|
|
30
27
|
private nextAvailableDb;
|
|
31
28
|
private readonly executionTableName;
|
|
32
29
|
private readonly nextAvailableTableName;
|
|
33
|
-
/** The prefix column definitions */
|
|
34
30
|
protected readonly prefixes: readonly PrefixColumn[];
|
|
35
|
-
/** The prefix values for filtering */
|
|
36
31
|
protected readonly prefixValues: Readonly<Record<string, string | number>>;
|
|
37
32
|
constructor(options?: IndexedDbRateLimiterStorageOptions);
|
|
38
|
-
/**
|
|
39
|
-
* Gets prefix column names for use in indexes.
|
|
40
|
-
*/
|
|
41
33
|
private getPrefixColumnNames;
|
|
42
|
-
/**
|
|
43
|
-
* Checks if a record matches the current prefix values.
|
|
44
|
-
*/
|
|
45
34
|
private matchesPrefixes;
|
|
46
|
-
/**
|
|
47
|
-
* Gets prefix values as an array in column order for index key construction.
|
|
48
|
-
*/
|
|
49
35
|
private getPrefixKeyValues;
|
|
50
36
|
private getExecutionDb;
|
|
51
37
|
private getNextAvailableDb;
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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,MAAM,WAAW,kCAAmC,SAAQ,yBAAyB;CAAG;AAexF;;;;;;;;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,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IACrD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IAE3E,YAAY,OAAO,GAAE,kCAAuC,EAY3D;IAED,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,eAAe;IASvB,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,CAqB7D;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,CAiC7B;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,CA0B3F;IAEY,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCnD;CACF"}
|