@workglow/postgres 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 (37) hide show
  1. package/dist/job-queue/PostgresJobStore.d.ts +42 -0
  2. package/dist/job-queue/PostgresJobStore.d.ts.map +1 -0
  3. package/dist/job-queue/PostgresMessageQueue.d.ts +38 -0
  4. package/dist/job-queue/PostgresMessageQueue.d.ts.map +1 -0
  5. package/dist/job-queue/PostgresQueueStorage.d.ts +65 -10
  6. package/dist/job-queue/PostgresQueueStorage.d.ts.map +1 -1
  7. package/dist/job-queue/PostgresRateLimiterStorage.d.ts +1 -2
  8. package/dist/job-queue/PostgresRateLimiterStorage.d.ts.map +1 -1
  9. package/dist/job-queue/browser.js +546 -55
  10. package/dist/job-queue/browser.js.map +11 -8
  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/createPostgresQueue.d.ts +22 -0
  14. package/dist/job-queue/createPostgresQueue.d.ts.map +1 -0
  15. package/dist/job-queue/node.js +546 -55
  16. package/dist/job-queue/node.js.map +11 -8
  17. package/dist/migrations/PostgresMigrationRunner.d.ts +6 -1
  18. package/dist/migrations/PostgresMigrationRunner.d.ts.map +1 -1
  19. package/dist/migrations/postgresQueueMigrations.d.ts +9 -1
  20. package/dist/migrations/postgresQueueMigrations.d.ts.map +1 -1
  21. package/dist/migrations/postgresRateLimiterMigrations.d.ts +1 -1
  22. package/dist/migrations/postgresRateLimiterMigrations.d.ts.map +1 -1
  23. package/dist/storage/PostgresKvStorage.d.ts +1 -1
  24. package/dist/storage/PostgresKvStorage.d.ts.map +1 -1
  25. package/dist/storage/PostgresTabularStorage.d.ts +30 -1
  26. package/dist/storage/PostgresTabularStorage.d.ts.map +1 -1
  27. package/dist/storage/PostgresVectorStorage.d.ts +5 -1
  28. package/dist/storage/PostgresVectorStorage.d.ts.map +1 -1
  29. package/dist/storage/browser.js +28 -12
  30. package/dist/storage/browser.js.map +5 -5
  31. package/dist/storage/node.js +28 -12
  32. package/dist/storage/node.js.map +6 -6
  33. package/dist/text/PostgresFtsTextIndex.d.ts +10 -0
  34. package/dist/text/PostgresFtsTextIndex.d.ts.map +1 -1
  35. package/dist/text/browser.js.map +2 -2
  36. package/dist/text/node.js.map +2 -2
  37. package/package.json +8 -8
@@ -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 { PostgresPendingWrite } from "./PostgresMessageQueue";
8
+ import type { PostgresQueueStorage } from "./PostgresQueueStorage";
9
+ export declare class PostgresJobStore<Input, Output> implements IJobStore<Input, Output> {
10
+ /** @internal — shared with the paired message queue */
11
+ readonly core: PostgresQueueStorage<Input, Output>;
12
+ /** @internal — shared transient buffer for saveResult/saveError. */
13
+ private readonly pending;
14
+ constructor(core: PostgresQueueStorage<Input, Output>, pending: Map<unknown, PostgresPendingWrite<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=PostgresJobStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresJobStore.d.ts","sourceRoot":"","sources":["../../src/job-queue/PostgresJobStore.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 type { PostgresQueueStorage } from "./PostgresQueueStorage";
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 PostgresPendingWrite<Output> = {
14
+ output?: Output | null;
15
+ error?: string | null;
16
+ errorCode?: string | null;
17
+ abortRequested?: boolean;
18
+ };
19
+ export declare class PostgresMessageQueue<Input, Output> implements IMessageQueue<JobStorageFormat<Input, Output>> {
20
+ readonly scope: QueueStorageScope;
21
+ /** @internal — shared with the paired job store */
22
+ readonly core: PostgresQueueStorage<Input, Output>;
23
+ /** @internal — shared transient buffer for saveResult/saveError. */
24
+ private readonly pending;
25
+ constructor(core: PostgresQueueStorage<Input, Output>, pending: Map<unknown, PostgresPendingWrite<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=PostgresMessageQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresMessageQueue.d.ts","sourceRoot":"","sources":["../../src/job-queue/PostgresMessageQueue.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,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,MAAM,IAAI;IACzC,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,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAE,YAAW,aAAa,CACvE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAChC;IACC,SAAgB,KAAK,EAAE,iBAAiB,CAAC;IAEzC,mDAAmD;IACnD,SAAgB,IAAI,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE1D,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IAErE,YACE,IAAI,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EACzC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAKpD;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,9 +3,9 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { Pool } from "@workglow/postgres/storage";
7
- import { JobStatus } from "@workglow/job-queue";
8
6
  import type { IQueueStorage, JobStorageFormat, PrefixColumn, QueueChangePayload, QueueStorageOptions, QueueSubscribeOptions } from "@workglow/job-queue";
7
+ import { JobStatus } from "@workglow/job-queue";
8
+ import type { Pool } from "@workglow/postgres/storage";
9
9
  export declare const POSTGRES_QUEUE_STORAGE: import("@workglow/util").ServiceToken<IQueueStorage<any, any>>;
10
10
  /**
11
11
  * PostgreSQL implementation of a job queue.
@@ -63,10 +63,22 @@ export declare class PostgresQueueStorage<Input, Output> implements IQueueStorag
63
63
  peek(status?: JobStatus, num?: number): Promise<Array<JobStorageFormat<Input, Output>>>;
64
64
  /**
65
65
  * Retrieves the next available job that is ready to be processed.
66
+ * Claims PENDING jobs ready to run, and also reclaims PROCESSING jobs whose
67
+ * lease has expired (crash recovery). Sets lease_expires_at on the claimed row.
66
68
  * @param workerId - Worker ID to associate with the job (required)
69
+ * @param opts - Optional options including leaseMs (default 30000)
67
70
  * @returns The next job or undefined if no job is available
68
71
  */
69
- next(workerId: string): Promise<JobStorageFormat<Input, Output> | undefined>;
72
+ next(workerId: string, opts?: {
73
+ leaseMs?: number;
74
+ }): Promise<JobStorageFormat<Input, Output> | undefined>;
75
+ /**
76
+ * Extend the lease on a currently PROCESSING job.
77
+ * @param id - The ID of the job to extend the lease for
78
+ * @param workerId - Worker ID that must match the current lease owner (lease_owner)
79
+ * @param ms - Number of milliseconds to extend the lease by
80
+ */
81
+ extendLease(id: unknown, workerId: string, ms: number): Promise<void>;
70
82
  /**
71
83
  * Retrieves the number of jobs in the queue with a specific status.
72
84
  * @param status - The status of the jobs to count
@@ -76,10 +88,28 @@ export declare class PostgresQueueStorage<Input, Output> implements IQueueStorag
76
88
  /**
77
89
  * Marks a job as complete with its output or error.
78
90
  * Enhanced error handling:
79
- * - For a retryable error, increments run_attempts and updates run_after.
91
+ * - For a retryable error, increments attempts and updates visible_at.
80
92
  * - Marks a job as FAILED immediately for permanent or generic errors.
81
93
  */
82
94
  complete(jobDetails: JobStorageFormat<Input, Output>): Promise<void>;
95
+ /**
96
+ * Terminal write that does NOT bump `attempts`. See IQueueStorage.finalize
97
+ * for the rationale (avoids double-counting on ack/fail because the lease
98
+ * reclaim path already charged the attempt at next() time).
99
+ */
100
+ finalize(id: unknown, fields: {
101
+ output?: Output | null;
102
+ error?: string | null;
103
+ error_code?: string | null;
104
+ status?: JobStatus;
105
+ completed_at?: string | null;
106
+ abort_requested_at?: string | null;
107
+ lease_owner?: string | null;
108
+ progress?: number;
109
+ progress_message?: string;
110
+ progress_details?: Record<string, any> | null;
111
+ visible_at?: string | null;
112
+ }): Promise<void>;
83
113
  /**
84
114
  * Clears all jobs from the queue.
85
115
  */
@@ -91,17 +121,19 @@ export declare class PostgresQueueStorage<Input, Output> implements IQueueStorag
91
121
  */
92
122
  outputForInput(input: Input): Promise<Output | null>;
93
123
  /**
94
- * Aborts a job by setting its status to "ABORTING".
95
- * This method will signal the corresponding AbortController so that
96
- * the job's execute() method (if it supports an AbortSignal parameter)
97
- * can clean up and exit.
124
+ * Aborts a job.
125
+ * - If PENDING: immediately mark as FAILED with abort_requested_at set.
126
+ * - If PROCESSING: set abort_requested_at only (leave status as PROCESSING).
127
+ * - Otherwise: no-op.
98
128
  */
99
129
  abort(jobId: unknown): Promise<void>;
100
130
  /**
101
- * Releases a claimed job back to PENDING without incrementing run_attempts.
131
+ * Releases a claimed job back to PENDING without incrementing attempts.
102
132
  * @param jobId - The id of the claimed job to release.
103
133
  */
104
- release(jobId: unknown): Promise<void>;
134
+ releaseClaim(jobId: unknown): Promise<void>;
135
+ /** Force-overwrite status without touching attempts (used to persist DISABLED after lease release). */
136
+ saveStatus(jobId: unknown, status: string): Promise<void>;
105
137
  /**
106
138
  * Retrieves all jobs for a given job run ID.
107
139
  * @param job_run_id - The ID of the job run to retrieve
@@ -116,6 +148,29 @@ export declare class PostgresQueueStorage<Input, Output> implements IQueueStorag
116
148
  * Deletes a job by its ID
117
149
  */
118
150
  delete(jobId: unknown): Promise<void>;
151
+ /**
152
+ * Finds the most recent active (PENDING or PROCESSING) job with the given fingerprint in this queue.
153
+ * Uses the partial index idx_<table>_fingerprint_active for O(1) lookup.
154
+ */
155
+ findActiveByFingerprint(fingerprint: string, queueName: string): Promise<JobStorageFormat<Input, Output> | undefined>;
156
+ /**
157
+ * Retrieves multiple jobs by their IDs in a single query.
158
+ * Returns results in the same order as the input ids array, with undefined for missing ids.
159
+ */
160
+ getMany(ids: readonly unknown[]): Promise<Array<JobStorageFormat<Input, Output> | undefined>>;
161
+ /**
162
+ * Atomically writes output and sets status=COMPLETED.
163
+ */
164
+ completeWithResult(id: unknown, result: Output): Promise<void>;
165
+ /**
166
+ * Atomically writes error fields and sets status=FAILED.
167
+ * COALESCEs preserve existing error/error_code when opts fields are absent.
168
+ */
169
+ failWithError(id: unknown, opts: {
170
+ readonly error?: string | null;
171
+ readonly errorCode?: string | null;
172
+ readonly abortRequested?: boolean;
173
+ }): Promise<void>;
119
174
  /**
120
175
  * Delete jobs with a specific status older than a cutoff date
121
176
  * @param status - Status of jobs to delete
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/PostgresQueueStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/PostgresQueueStorage.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,8 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import type { IRateLimiterStorage, PrefixColumn, RateLimiterStorageOptions, RateLimiterStorageScope } from "@workglow/job-queue";
6
7
  import type { Pool } from "@workglow/postgres/storage";
7
- import type { PrefixColumn } from "@workglow/job-queue";
8
- import type { IRateLimiterStorage, RateLimiterStorageOptions, RateLimiterStorageScope } from "@workglow/job-queue";
9
8
  export declare const POSTGRES_RATE_LIMITER_STORAGE: import("@workglow/util").ServiceToken<IRateLimiterStorage>;
10
9
  /**
11
10
  * PostgreSQL implementation of rate limiter storage.
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresRateLimiterStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/PostgresRateLimiterStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAW7B,eAAO,MAAM,6BAA6B,4DAEzC,CAAC;AAEF;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAYlE,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI;IAX7B,SAAgB,KAAK,EAAE,uBAAuB,CAAa;IAC3D,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;IAC3E,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAC9C,8CAA8C;IAC9C,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAElD,YACqB,EAAE,EAAE,IAAI,EAC3B,OAAO,CAAC,EAAE,yBAAyB,EAgBpC;IAED,gEAAgE;IAChE,OAAO,CAAC,sBAAsB;IAI9B,6CAA6C;IAC7C,OAAO,CAAC,oBAAoB;IAI5B;;;;OAIG;IACI,aAAa,mDAMnB;IAED,qEAAqE;IACxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;IAEY,mBAAmB,CAC9B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAsIzB;IAEY,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9E;IAEY,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB7D;IAEY,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa1F;IAEY,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B;IAEY,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAehF;IAEY,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3F;IAEY,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnD;CACF"}
1
+ {"version":3,"file":"PostgresRateLimiterStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/PostgresRateLimiterStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAYvD,eAAO,MAAM,6BAA6B,4DAEzC,CAAC;AAEF;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAYlE,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI;IAX7B,SAAgB,KAAK,EAAE,uBAAuB,CAAa;IAC3D,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;IAC3E,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAC9C,8CAA8C;IAC9C,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAElD,YACqB,EAAE,EAAE,IAAI,EAC3B,OAAO,CAAC,EAAE,yBAAyB,EAgBpC;IAED,gEAAgE;IAChE,OAAO,CAAC,sBAAsB;IAI9B,6CAA6C;IAC7C,OAAO,CAAC,oBAAoB;IAI5B;;;;OAIG;IACI,aAAa,mDAMnB;IAED,qEAAqE;IACxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpC;IAEY,mBAAmB,CAC9B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAsIzB;IAEY,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9E;IAEY,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB7D;IAEY,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa1F;IAEY,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B;IAEY,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAehF;IAEY,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3F;IAEY,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnD;CACF"}