@workglow/task-graph 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/README.md +174 -46
- package/dist/browser.js +792 -506
- package/dist/browser.js.map +40 -36
- package/dist/bun.js +792 -506
- package/dist/bun.js.map +40 -36
- package/dist/cache/CacheJanitor.d.ts +27 -0
- package/dist/cache/CacheJanitor.d.ts.map +1 -0
- package/dist/cache/CachePolicy.d.ts +16 -0
- package/dist/cache/CachePolicy.d.ts.map +1 -0
- package/dist/cache/CacheRegistry.d.ts +30 -0
- package/dist/cache/CacheRegistry.d.ts.map +1 -0
- package/dist/cache/RunPrivateCacheRepo.d.ts +56 -0
- package/dist/cache/RunPrivateCacheRepo.d.ts.map +1 -0
- package/dist/cache/index.d.ts +10 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/common.d.ts +1 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/node.js +792 -506
- package/dist/node.js.map +40 -36
- package/dist/storage/PortCodecRegistry.d.ts +1 -1
- package/dist/storage/PortCodecRegistry.d.ts.map +1 -1
- package/dist/storage/TaskGraphTabularRepository.d.ts.map +1 -1
- package/dist/storage/TaskOutputRepository.d.ts +40 -4
- package/dist/storage/TaskOutputRepository.d.ts.map +1 -1
- package/dist/storage/TaskOutputTabularRepository.d.ts +27 -0
- package/dist/storage/TaskOutputTabularRepository.d.ts.map +1 -1
- package/dist/task/CacheCoordinator.d.ts +18 -1
- package/dist/task/CacheCoordinator.d.ts.map +1 -1
- package/dist/task/ConditionalTask.d.ts +14 -14
- package/dist/task/ConditionalTask.d.ts.map +1 -1
- package/dist/task/EntitlementProfile.d.ts.map +1 -1
- package/dist/task/EntitlementProfiles.d.ts +1 -1
- package/dist/task/EntitlementProfiles.d.ts.map +1 -1
- package/dist/task/FallbackTask.d.ts +8 -9
- package/dist/task/FallbackTask.d.ts.map +1 -1
- package/dist/task/FallbackTaskRunner.d.ts +8 -0
- package/dist/task/FallbackTaskRunner.d.ts.map +1 -1
- package/dist/task/GraphAsTask.d.ts +4 -4
- package/dist/task/GraphAsTask.d.ts.map +1 -1
- package/dist/task/ITask.d.ts +28 -2
- package/dist/task/ITask.d.ts.map +1 -1
- package/dist/task/InputCompactor.d.ts +1 -1
- package/dist/task/InputCompactor.d.ts.map +1 -1
- package/dist/task/InputResolver.d.ts +1 -1
- package/dist/task/InputResolver.d.ts.map +1 -1
- package/dist/task/IteratorTask.d.ts +4 -4
- package/dist/task/JobQueueFactory.d.ts +1 -1
- package/dist/task/JobQueueFactory.d.ts.map +1 -1
- package/dist/task/MapTask.d.ts +4 -4
- package/dist/task/ReduceTask.d.ts +4 -4
- package/dist/task/StreamProcessor.d.ts +1 -1
- package/dist/task/StreamProcessor.d.ts.map +1 -1
- package/dist/task/Task.d.ts +50 -0
- package/dist/task/Task.d.ts.map +1 -1
- package/dist/task/TaskError.d.ts +2 -0
- package/dist/task/TaskError.d.ts.map +1 -1
- package/dist/task/TaskEvents.d.ts +2 -2
- package/dist/task/TaskEvents.d.ts.map +1 -1
- package/dist/task/TaskJSON.d.ts +0 -13
- package/dist/task/TaskJSON.d.ts.map +1 -1
- package/dist/task/TaskQueueRegistry.d.ts +1 -1
- package/dist/task/TaskQueueRegistry.d.ts.map +1 -1
- package/dist/task/TaskRunner.d.ts +28 -0
- package/dist/task/TaskRunner.d.ts.map +1 -1
- package/dist/task/TaskTypes.d.ts +1 -1
- package/dist/task/TaskTypes.d.ts.map +1 -1
- package/dist/task/WhileTask.d.ts +4 -4
- package/dist/task/iterationSchema.d.ts +1 -1
- package/dist/task/iterationSchema.d.ts.map +1 -1
- package/dist/task-graph/Conversions.d.ts.map +1 -1
- package/dist/task-graph/Dataflow.d.ts +1 -1
- package/dist/task-graph/Dataflow.d.ts.map +1 -1
- package/dist/task-graph/IWorkflow.d.ts +1 -1
- package/dist/task-graph/IWorkflow.d.ts.map +1 -1
- package/dist/task-graph/StreamPump.d.ts +8 -0
- package/dist/task-graph/StreamPump.d.ts.map +1 -1
- package/dist/task-graph/TaskGraph.d.ts +10 -1
- package/dist/task-graph/TaskGraph.d.ts.map +1 -1
- package/dist/task-graph/TaskGraphRunner.d.ts +45 -0
- package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
- package/dist/task-graph/Workflow.d.ts.map +1 -1
- package/dist/task-graph/transforms/index.d.ts +6 -6
- package/dist/task-graph/transforms/index.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/EXECUTION_MODEL.md +91 -2
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { TaskOutputRepository } from "../storage/TaskOutputRepository";
|
|
7
|
+
export interface CacheJanitorOptions {
|
|
8
|
+
privateBacking: TaskOutputRepository;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Periodic cleanup helper for run-private cache entries left behind by runs
|
|
12
|
+
* that crashed and were never restarted.
|
|
13
|
+
*
|
|
14
|
+
* Run-private rows are namespaced by `RunPrivateCacheRepo` with the taskType
|
|
15
|
+
* prefix `__run:`. This janitor sweeps those rows when they are older than
|
|
16
|
+
* `olderThanMs`. Entries lacking the prefix (deterministic cache, shared tier)
|
|
17
|
+
* are not touched.
|
|
18
|
+
*
|
|
19
|
+
* Apps schedule the sweep themselves (cron, periodic worker, on startup) —
|
|
20
|
+
* libs does not run it automatically.
|
|
21
|
+
*/
|
|
22
|
+
export declare class CacheJanitor {
|
|
23
|
+
private readonly privateBacking;
|
|
24
|
+
constructor({ privateBacking }: CacheJanitorOptions);
|
|
25
|
+
sweepStaleRunPrivate(olderThanMs: number): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=CacheJanitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheJanitor.d.ts","sourceRoot":"","sources":["../../src/cache/CacheJanitor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,oBAAoB,CAAC;CACtC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAEtD,YAAY,EAAE,cAAc,EAAE,EAAE,mBAAmB,EAElD;IAEK,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export type CachePolicy = {
|
|
7
|
+
kind: "deterministic";
|
|
8
|
+
} | {
|
|
9
|
+
kind: "private";
|
|
10
|
+
} | {
|
|
11
|
+
kind: "none";
|
|
12
|
+
};
|
|
13
|
+
export declare const DEFAULT_CACHE_POLICY: CachePolicy;
|
|
14
|
+
export declare function isPolicyCached(policy: CachePolicy): boolean;
|
|
15
|
+
export declare function isPolicyPrivate(policy: CachePolicy): boolean;
|
|
16
|
+
//# sourceMappingURL=CachePolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachePolicy.d.ts","sourceRoot":"","sources":["../../src/cache/CachePolicy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F,eAAO,MAAM,oBAAoB,EAAE,WAAuC,CAAC;AAE3E,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE5D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { TaskOutputRepository } from "../storage/TaskOutputRepository";
|
|
7
|
+
/**
|
|
8
|
+
* Two-slot registry of task output repositories selected by `CachePolicy.kind`.
|
|
9
|
+
*
|
|
10
|
+
* - `deterministic` — shared cache for tasks whose outputs are determined entirely
|
|
11
|
+
* by their inputs. Same inputs → same outputs, safe to share across runs and
|
|
12
|
+
* (in app deployments like builder) across projects.
|
|
13
|
+
* - `private` — per-run cache for tasks producing non-deterministic outputs worth
|
|
14
|
+
* keeping (e.g., image generation without a seed). Namespaced by `runId` so
|
|
15
|
+
* two runs of the same workflow do not see each other's data.
|
|
16
|
+
*
|
|
17
|
+
* Both slots are optional. When a slot is unset, caching for matching tasks is
|
|
18
|
+
* a silent no-op — the task still runs correctly, just uncached.
|
|
19
|
+
*/
|
|
20
|
+
export interface CacheRegistry {
|
|
21
|
+
deterministic?: TaskOutputRepository;
|
|
22
|
+
private?: TaskOutputRepository;
|
|
23
|
+
}
|
|
24
|
+
export declare const CACHE_REGISTRY: import("@workglow/util").ServiceToken<CacheRegistry>;
|
|
25
|
+
export declare class DefaultCacheRegistry implements CacheRegistry {
|
|
26
|
+
deterministic?: TaskOutputRepository;
|
|
27
|
+
private?: TaskOutputRepository;
|
|
28
|
+
constructor(init?: Partial<CacheRegistry>);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=CacheRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheRegistry.d.ts","sourceRoot":"","sources":["../../src/cache/CacheRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,sDAA+D,CAAC;AAE3F,qBAAa,oBAAqB,YAAW,aAAa;IACjD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAEtC,YAAY,IAAI,GAAE,OAAO,CAAC,aAAa,CAAM,EAG5C;CACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { TaskOutputRepository } from "../storage/TaskOutputRepository";
|
|
7
|
+
import type { TaskInput, TaskOutput } from "../task/TaskTypes";
|
|
8
|
+
export interface RunPrivateCacheRepoOptions {
|
|
9
|
+
backing: TaskOutputRepository;
|
|
10
|
+
runId: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Wraps a TaskOutputRepository so that all entries are namespaced by `runId`.
|
|
14
|
+
*
|
|
15
|
+
* Namespacing happens at the `taskType` axis: rows are stored as
|
|
16
|
+
* `__run:${runId}::${taskType}` in the backing store. The input fingerprint is
|
|
17
|
+
* unchanged, so deterministic-style keying still works.
|
|
18
|
+
*
|
|
19
|
+
* - Two wrappers with the same `runId` (e.g., a restart after a crash) see each
|
|
20
|
+
* other's writes via the backing store — that's the restart-survival contract.
|
|
21
|
+
* - Two wrappers with different `runId`s see only their own entries.
|
|
22
|
+
*/
|
|
23
|
+
export declare class RunPrivateCacheRepo extends TaskOutputRepository {
|
|
24
|
+
private readonly backing;
|
|
25
|
+
private readonly runId;
|
|
26
|
+
constructor({ backing, runId }: RunPrivateCacheRepoOptions);
|
|
27
|
+
private ns;
|
|
28
|
+
saveOutput(taskType: string, inputs: TaskInput, output: TaskOutput, createdAt?: Date): Promise<void>;
|
|
29
|
+
getOutput(taskType: string, inputs: TaskInput): Promise<TaskOutput | undefined>;
|
|
30
|
+
/**
|
|
31
|
+
* Override of `TaskOutputRepository.clear()` that only deletes entries
|
|
32
|
+
* namespaced under THIS wrapper's `runId`. Entries from other runs are not
|
|
33
|
+
* touched. Use the backing repository directly if you need a global clear.
|
|
34
|
+
*/
|
|
35
|
+
clear(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Delete every entry written through this wrapper's `runId`. Called by the
|
|
38
|
+
* graph runner after a successful run, and by the janitor for stale runs.
|
|
39
|
+
* Requires the backing repository to implement `deleteByTaskTypePrefix`.
|
|
40
|
+
*/
|
|
41
|
+
clearRun(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the count of entries namespaced under THIS wrapper's `runId`.
|
|
44
|
+
* Consistent with `saveOutput`/`getOutput`/`clear()` being run-scoped.
|
|
45
|
+
*/
|
|
46
|
+
size(): Promise<number>;
|
|
47
|
+
/**
|
|
48
|
+
* Override of `TaskOutputRepository.clearOlderThan()` scoped to THIS
|
|
49
|
+
* wrapper's `runId`. Without the scope override, the wrapper would
|
|
50
|
+
* accidentally prune the entire backing store (including deterministic
|
|
51
|
+
* cache entries and other runs' private rows).
|
|
52
|
+
*/
|
|
53
|
+
clearOlderThan(olderThanInMs: number): Promise<void>;
|
|
54
|
+
isDurable(): boolean;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=RunPrivateCacheRepo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunPrivateCacheRepo.d.ts","sourceRoot":"","sources":["../../src/cache/RunPrivateCacheRepo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/D,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,SAAQ,oBAAoB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,0BAA0B,EAIzD;IAED,OAAO,CAAC,EAAE;IAIG,UAAU,CACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,CAAC,EAAE,IAAI,GACf,OAAO,CAAC,IAAI,CAAC,CAEf;IAEY,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAE3F;IAED;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAElC;IAED;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAErC;IAED;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnC;IAED;;;;;OAKG;IACU,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;IAEM,SAAS,IAAI,OAAO,CAE1B;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export * from "./CacheJanitor";
|
|
7
|
+
export * from "./CachePolicy";
|
|
8
|
+
export * from "./CacheRegistry";
|
|
9
|
+
export * from "./RunPrivateCacheRepo";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
|
package/dist/common.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export * from "./task-graph/TransformRegistry";
|
|
|
31
31
|
export * from "./task-graph/TransformTypes";
|
|
32
32
|
export * from "./task-graph/transforms";
|
|
33
33
|
export * from "./task-graph/autoConnect";
|
|
34
|
+
export * from "./cache";
|
|
34
35
|
export * from "./task/CacheCoordinator";
|
|
35
36
|
export * from "./task/StreamProcessor";
|
|
36
37
|
export * from "./task/TaskRunContext";
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,QAAQ,CAAC;AAEvB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,QAAQ,CAAC;AAEvB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC"}
|