@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.
- package/dist/job-queue/IndexedDbJobStore.d.ts +42 -0
- package/dist/job-queue/IndexedDbJobStore.d.ts.map +1 -0
- package/dist/job-queue/IndexedDbMessageQueue.d.ts +38 -0
- package/dist/job-queue/IndexedDbMessageQueue.d.ts.map +1 -0
- package/dist/job-queue/IndexedDbQueueStorage.d.ts +55 -7
- package/dist/job-queue/IndexedDbQueueStorage.d.ts.map +1 -1
- package/dist/job-queue/IndexedDbRateLimiterStorage.d.ts +1 -2
- package/dist/job-queue/IndexedDbRateLimiterStorage.d.ts.map +1 -1
- package/dist/job-queue/browser.js +466 -60
- package/dist/job-queue/browser.js.map +10 -7
- package/dist/job-queue/common.d.ts +3 -0
- package/dist/job-queue/common.d.ts.map +1 -1
- package/dist/job-queue/createIndexedDbQueue.d.ts +20 -0
- package/dist/job-queue/createIndexedDbQueue.d.ts.map +1 -0
- package/dist/job-queue/node.js +466 -60
- package/dist/job-queue/node.js.map +10 -7
- package/dist/migrations/IndexedDbMigrationRunner.d.ts +12 -0
- package/dist/migrations/IndexedDbMigrationRunner.d.ts.map +1 -1
- package/dist/migrations/indexedDbQueueMigrations.d.ts +11 -5
- package/dist/migrations/indexedDbQueueMigrations.d.ts.map +1 -1
- package/dist/storage/IndexedDbKvStorage.d.ts +1 -1
- package/dist/storage/IndexedDbKvStorage.d.ts.map +1 -1
- package/dist/storage/IndexedDbTabularStorage.d.ts +14 -1
- package/dist/storage/IndexedDbTabularStorage.d.ts.map +1 -1
- package/dist/storage/IndexedDbVectorStorage.d.ts +2 -2
- package/dist/storage/IndexedDbVectorStorage.d.ts.map +1 -1
- package/dist/storage/browser.js +9 -9
- package/dist/storage/browser.js.map +5 -5
- package/dist/storage/node.js +9 -9
- package/dist/storage/node.js.map +5 -5
- 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":"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"}
|
|
@@ -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.
|
|
82
|
-
*
|
|
83
|
-
*
|
|
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
|
|
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
|
-
|
|
117
|
+
releaseClaim(id: unknown): Promise<void>;
|
|
108
118
|
/**
|
|
109
|
-
* Aborts a job
|
|
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":"AAAA;;;;GAIG;
|
|
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;
|
|
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"}
|