@effect-app/infra 4.0.0-beta.321 → 4.0.0-beta.323
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/CHANGELOG.md +18 -0
- package/dist/ClusterCosmos.d.ts +10 -16
- package/dist/ClusterCosmos.d.ts.map +1 -1
- package/dist/ClusterCosmos.js +8 -8
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +5 -5
- package/dist/WorkflowEngineCosmos.d.ts +2 -1
- package/dist/WorkflowEngineCosmos.d.ts.map +1 -1
- package/dist/WorkflowEngineCosmos.js +4 -4
- package/dist/cosmos-client.d.ts +25 -1
- package/dist/cosmos-client.d.ts.map +1 -1
- package/dist/cosmos-client.js +14 -1
- package/package.json +5 -5
- package/src/ClusterCosmos.ts +19 -23
- package/src/Store/Cosmos.ts +16 -12
- package/src/WorkflowEngineCosmos.ts +4 -4
- package/src/cosmos-client.ts +39 -1
- package/test/cosmos-container-throughput.test.ts +61 -0
- package/test/dist/cosmos-container-throughput.test.d.ts.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.323
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ab289d4: Add opt-in `autoscaleMaxThroughput` for Cosmos containers created on demand (`StorageConfig`, `ClusterCosmosConfig`, `WorkflowEngineCosmosConfig`). When set, a missing container is created with autoscale at that max RU/s, unless its database has shared throughput (then it keeps sharing the database pool). Existing containers are untouched; unset keeps the Cosmos default of manual 400 RU/s per container.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [ab289d4]
|
|
12
|
+
- effect-app@4.0.0-beta.323
|
|
13
|
+
|
|
14
|
+
## 4.0.0-beta.322
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [2231ef8]
|
|
19
|
+
- effect-app@4.0.0-beta.322
|
|
20
|
+
|
|
3
21
|
## 4.0.0-beta.321
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/ClusterCosmos.d.ts
CHANGED
|
@@ -9,15 +9,16 @@ import * as RunnerStorage from "effect/unstable/cluster/RunnerStorage";
|
|
|
9
9
|
import * as ShardId from "effect/unstable/cluster/ShardId";
|
|
10
10
|
import * as ShardingConfig from "effect/unstable/cluster/ShardingConfig";
|
|
11
11
|
import * as Snowflake from "effect/unstable/cluster/Snowflake";
|
|
12
|
-
import { CosmosClient } from "./cosmos-client.js";
|
|
13
|
-
export interface ClusterCosmosConfig {
|
|
12
|
+
import { CosmosClient, type CosmosContainerThroughput } from "./cosmos-client.js";
|
|
13
|
+
export interface ClusterCosmosConfig extends CosmosContainerThroughput {
|
|
14
14
|
readonly url: Redacted.Redacted<string>;
|
|
15
15
|
readonly dbName: string;
|
|
16
16
|
readonly prefix?: string;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
type StorageOptions = {
|
|
19
19
|
readonly prefix?: string | undefined;
|
|
20
|
-
}
|
|
20
|
+
} & CosmosContainerThroughput;
|
|
21
|
+
export declare const makeMessageStorage: (options?: StorageOptions | undefined) => Effect.Effect<{
|
|
21
22
|
readonly saveRequest: <R extends import("effect/unstable/rpc/Rpc").Any>(envelope: import("effect/unstable/cluster/Message").OutgoingRequest<R>) => Effect.Effect<MessageStorage.SaveResult<R>, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
22
23
|
readonly saveEnvelope: (envelope: import("effect/unstable/cluster/Message").OutgoingEnvelope) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
23
24
|
readonly saveReply: <R extends import("effect/unstable/rpc/Rpc").Any>(reply: Reply.ReplyWithContext<R>) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
@@ -45,9 +46,7 @@ export declare const makeMessageStorage: (options?: {
|
|
|
45
46
|
readonly clearAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError, never>;
|
|
46
47
|
readonly withTransaction: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
47
48
|
}, never, CosmosClient | Snowflake.Generator>;
|
|
48
|
-
export declare const makeRunnerStorage: (options?: {
|
|
49
|
-
readonly prefix?: string | undefined;
|
|
50
|
-
} | undefined) => Effect.Effect<{
|
|
49
|
+
export declare const makeRunnerStorage: (options?: StorageOptions | undefined) => Effect.Effect<{
|
|
51
50
|
readonly register: (runner: import("effect/unstable/cluster/Runner").Runner, healthy: boolean) => Effect.Effect<import("effect/unstable/cluster/MachineId").MachineId, PersistenceError>;
|
|
52
51
|
readonly unregister: (address: import("effect/unstable/cluster/RunnerAddress").RunnerAddress) => Effect.Effect<void, PersistenceError>;
|
|
53
52
|
readonly getRunners: Effect.Effect<Array<readonly [runner: import("effect/unstable/cluster/Runner").Runner, healthy: boolean]>, PersistenceError>;
|
|
@@ -57,14 +56,9 @@ export declare const makeRunnerStorage: (options?: {
|
|
|
57
56
|
readonly release: (address: import("effect/unstable/cluster/RunnerAddress").RunnerAddress, shardId: ShardId.ShardId) => Effect.Effect<void, PersistenceError>;
|
|
58
57
|
readonly releaseAll: (address: import("effect/unstable/cluster/RunnerAddress").RunnerAddress) => Effect.Effect<void, PersistenceError>;
|
|
59
58
|
}, never, CosmosClient | ShardingConfig.ShardingConfig>;
|
|
60
|
-
export declare const layerMessageStorage: (options?:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
export declare const layerRunnerStorage: (options?: {
|
|
64
|
-
readonly prefix?: string | undefined;
|
|
65
|
-
}) => Layer.Layer<RunnerStorage.RunnerStorage, never, CosmosClient | ShardingConfig.ShardingConfig>;
|
|
66
|
-
export declare const layerStorage: (options?: {
|
|
67
|
-
readonly prefix?: string | undefined;
|
|
68
|
-
}) => Layer.Layer<MessageStorage.MessageStorage | RunnerStorage.RunnerStorage, never, CosmosClient | ShardingConfig.ShardingConfig>;
|
|
59
|
+
export declare const layerMessageStorage: (options?: StorageOptions) => Layer.Layer<MessageStorage.MessageStorage, never, CosmosClient | ShardingConfig.ShardingConfig>;
|
|
60
|
+
export declare const layerRunnerStorage: (options?: StorageOptions) => Layer.Layer<RunnerStorage.RunnerStorage, never, CosmosClient | ShardingConfig.ShardingConfig>;
|
|
61
|
+
export declare const layerStorage: (options?: StorageOptions) => Layer.Layer<MessageStorage.MessageStorage | RunnerStorage.RunnerStorage, never, CosmosClient | ShardingConfig.ShardingConfig>;
|
|
69
62
|
export declare const layerCosmos: (config: ClusterCosmosConfig) => Layer.Layer<MessageStorage.MessageStorage | RunnerStorage.RunnerStorage, never, ShardingConfig.ShardingConfig>;
|
|
63
|
+
export {};
|
|
70
64
|
//# sourceMappingURL=ClusterCosmos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterCosmos.d.ts","sourceRoot":"","sources":["../src/ClusterCosmos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAG3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,KAAK,KAAK,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AACxE,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"ClusterCosmos.d.ts","sourceRoot":"","sources":["../src/ClusterCosmos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAG3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,KAAK,KAAK,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AACxE,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAqB,KAAK,yBAAyB,EAA8B,MAAM,oBAAoB,CAAA;AAGhI,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAkUD,KAAK,cAAc,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,yBAAyB,CAAA;AAiB1F,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;6CA0W7B,CAAA;AA+GF,eAAO,MAAM,iBAAiB;;;;;;;;;uDA8R5B,CAAA;AAEF,eAAO,MAAM,mBAAmB,aACpB,cAAc,KACvB,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,cAAc,CAAC,cAAc,CAG9F,CAAA;AAEH,eAAO,MAAM,kBAAkB,aACnB,cAAc,KACvB,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,GAAG,cAAc,CAAC,cAAc,CACxB,CAAA;AAEvE,eAAO,MAAM,YAAY,aAAc,cAAc,KAAG,KAAK,CAAC,KAAK,CACjE,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,EAC3D,KAAK,EACL,YAAY,GAAG,cAAc,CAAC,cAAc,CAC6B,CAAA;AAE3E,eAAO,MAAM,WAAW,WAAY,mBAAmB,KAAG,KAAK,CAAC,KAAK,CACnE,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,EAC3D,KAAK,EACL,cAAc,CAAC,cAAc,CAI5B,CAAA"}
|
package/dist/ClusterCosmos.js
CHANGED
|
@@ -12,7 +12,7 @@ import * as RunnerStorage from "effect/unstable/cluster/RunnerStorage";
|
|
|
12
12
|
import * as ShardId from "effect/unstable/cluster/ShardId";
|
|
13
13
|
import * as ShardingConfig from "effect/unstable/cluster/ShardingConfig";
|
|
14
14
|
import * as Snowflake from "effect/unstable/cluster/Snowflake";
|
|
15
|
-
import { CosmosClient, CosmosClientLayer } from "./cosmos-client.js";
|
|
15
|
+
import { CosmosClient, CosmosClientLayer, createContainerIfNotExists } from "./cosmos-client.js";
|
|
16
16
|
import { annotateCosmosResponse, annotateDb } from "./otel.js";
|
|
17
17
|
const withTracerDisabled = Effect.withTracerEnabled(false);
|
|
18
18
|
const refailPersistence = (effect) => PersistenceError.refail(effect);
|
|
@@ -206,20 +206,20 @@ const replyFromDoc = (doc) => doc.kind === "WithExit"
|
|
|
206
206
|
};
|
|
207
207
|
const shardIdFromString = (shardId) => ShardId.fromStringEncoded(shardId);
|
|
208
208
|
const machineIdCounterDocId = cosmosId("machine-id-counter");
|
|
209
|
-
const createContainer = (prefix) => Effect.fnUntraced(function* () {
|
|
209
|
+
const createContainer = (prefix, throughput) => Effect.fnUntraced(function* () {
|
|
210
210
|
const { db } = yield* CosmosClient;
|
|
211
211
|
const containerId = `${prefix}cluster`;
|
|
212
212
|
yield* Effect
|
|
213
|
-
.tryPromise(() => db
|
|
213
|
+
.tryPromise(() => createContainerIfNotExists(db, {
|
|
214
214
|
id: containerId,
|
|
215
215
|
partitionKey: { paths: ["/_partitionKey"], version: 2 }
|
|
216
|
-
}))
|
|
216
|
+
}, throughput))
|
|
217
217
|
.pipe(Effect.catchIf(isConflict, () => Effect.void));
|
|
218
218
|
return db.container(containerId);
|
|
219
219
|
});
|
|
220
220
|
export const makeMessageStorage = Effect.fnUntraced(function* (options) {
|
|
221
221
|
const prefix = options?.prefix ?? "cluster-";
|
|
222
|
-
const container = yield* createContainer(prefix)().pipe(Effect.orDie);
|
|
222
|
+
const container = yield* createContainer(prefix, options)().pipe(Effect.orDie);
|
|
223
223
|
const containerId = `${prefix}cluster`;
|
|
224
224
|
const annotate = (operation) => annotateDb({ operation, system: "cosmosdb", collection: containerId, entity: "cluster-message-storage" });
|
|
225
225
|
const readMessage = (id, partitionKey) => Effect.tryPromise(() => container.item(id, partitionKey).read()).pipe(Effect.tap(annotateItem), Effect.map((resp) => Option.fromNullishOr(resp.resource)), Effect.catchIf(isNotFound, () => Effect.succeed(Option.none())));
|
|
@@ -425,7 +425,7 @@ const lastRepliesById = (docs, activeRequestIds, queryReplies) => {
|
|
|
425
425
|
};
|
|
426
426
|
export const makeRunnerStorage = Effect.fnUntraced(function* (options) {
|
|
427
427
|
const prefix = options?.prefix ?? "cluster-";
|
|
428
|
-
const container = yield* createContainer(prefix)().pipe(Effect.orDie);
|
|
428
|
+
const container = yield* createContainer(prefix, options)().pipe(Effect.orDie);
|
|
429
429
|
const config = yield* ShardingConfig.ShardingConfig;
|
|
430
430
|
const expires = Duration.toMillis(Duration.fromInputUnsafe(config.shardLockExpiration));
|
|
431
431
|
const containerId = `${prefix}cluster`;
|
|
@@ -572,5 +572,5 @@ export const makeRunnerStorage = Effect.fnUntraced(function* (options) {
|
|
|
572
572
|
export const layerMessageStorage = (options) => Layer.effect(MessageStorage.MessageStorage, makeMessageStorage(options)).pipe(Layer.provide(Snowflake.layerGenerator));
|
|
573
573
|
export const layerRunnerStorage = (options) => Layer.effect(RunnerStorage.RunnerStorage, makeRunnerStorage(options));
|
|
574
574
|
export const layerStorage = (options) => Layer.merge(layerMessageStorage(options), layerRunnerStorage(options));
|
|
575
|
-
export const layerCosmos = (config) => layerStorage({ prefix: config.prefix }).pipe(Layer.provide(CosmosClientLayer(Redacted.value(config.url), config.dbName)));
|
|
576
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlckNvc21vcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DbHVzdGVyQ29zbW9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQUE7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBRXZFLE9BQU8sS0FBSyxjQUFjLE1BQU0sd0NBQXdDLENBQUE7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFFMUUsT0FBTyxLQUFLLGFBQWEsTUFBTSx1Q0FBdUMsQ0FBQTtBQUN0RSxPQUFPLEtBQUssT0FBTyxNQUFNLGlDQUFpQyxDQUFBO0FBQzFELE9BQU8sS0FBSyxjQUFjLE1BQU0sd0NBQXdDLENBQUE7QUFDeEUsT0FBTyxLQUFLLFNBQVMsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQTJGOUQsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDMUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFVLE1BQThCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxN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
|
|
575
|
+
export const layerCosmos = (config) => layerStorage({ prefix: config.prefix, autoscaleMaxThroughput: config.autoscaleMaxThroughput }).pipe(Layer.provide(CosmosClientLayer(Redacted.value(config.url), config.dbName)));
|
|
576
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlckNvc21vcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DbHVzdGVyQ29zbW9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQUE7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBRXZFLE9BQU8sS0FBSyxjQUFjLE1BQU0sd0NBQXdDLENBQUE7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFFMUUsT0FBTyxLQUFLLGFBQWEsTUFBTSx1Q0FBdUMsQ0FBQTtBQUN0RSxPQUFPLEtBQUssT0FBTyxNQUFNLGlDQUFpQyxDQUFBO0FBQzFELE9BQU8sS0FBSyxjQUFjLE1BQU0sd0NBQXdDLENBQUE7QUFDeEUsT0FBTyxLQUFLLFNBQVMsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFrQywwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUE7QUEyRjlELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzFELE1BQU0saUJBQWlCLEdBQUcsQ0FBVSxNQUE4QixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AA2nBpJ,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,yCAIlD"}
|
package/dist/Store/Cosmos.js
CHANGED
|
@@ -10,7 +10,7 @@ import * as Duration from "effect/Duration";
|
|
|
10
10
|
import { pipe } from "effect/Function";
|
|
11
11
|
import * as Redacted from "effect/Redacted";
|
|
12
12
|
import * as Struct from "effect/Struct";
|
|
13
|
-
import { CosmosClient, CosmosClientLayer } from "../cosmos-client.js";
|
|
13
|
+
import { CosmosClient, CosmosClientLayer, createContainerIfNotExists } from "../cosmos-client.js";
|
|
14
14
|
import { DatabaseError, OptimisticConcurrencyException } from "../errors.js";
|
|
15
15
|
import { InfraLogger } from "../logger.js";
|
|
16
16
|
import { annotateCosmosResponse, annotateDb } from "../otel.js";
|
|
@@ -58,7 +58,7 @@ const annotateItem = (resp) => annotateCosmosResponse({
|
|
|
58
58
|
statusCode: resp.statusCode,
|
|
59
59
|
responseBytes: respBytes(resp)
|
|
60
60
|
});
|
|
61
|
-
const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
61
|
+
const makeCosmosStore = Effect.fnUntraced(function* ({ autoscaleMaxThroughput, prefix }) {
|
|
62
62
|
const { db } = yield* CosmosClient;
|
|
63
63
|
return {
|
|
64
64
|
make: Effect.fnUntraced(function* (name, idKey, seed, config) {
|
|
@@ -69,7 +69,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
69
69
|
const defaultValues = json.toJson(config?.defaultValues ?? {});
|
|
70
70
|
const fromStored = (raw) => codec.decode({ ...defaultValues, ...mapReverseId(raw) });
|
|
71
71
|
const containerId = `${prefix}${name}`;
|
|
72
|
-
yield* Effect.promise(() => db
|
|
72
|
+
yield* Effect.promise(() => createContainerIfNotExists(db, dropUndefinedT({
|
|
73
73
|
id: containerId,
|
|
74
74
|
uniqueKeyPolicy: config?.uniqueKeys
|
|
75
75
|
? { uniqueKeys: config.uniqueKeys }
|
|
@@ -78,7 +78,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
78
78
|
paths: ["/_partitionKey"],
|
|
79
79
|
version: 2 // support large partitionkeys so that the hash is not based on just the first 100 bytes!
|
|
80
80
|
}
|
|
81
|
-
})));
|
|
81
|
+
}), { autoscaleMaxThroughput }));
|
|
82
82
|
const basePartitionKey = config?.partitionValue() ?? "primary";
|
|
83
83
|
const nsPrefix = (ns) => ns === "primary" ? "" : `${ns}::`;
|
|
84
84
|
const nsPartitionValue = (ns, e) => {
|
|
@@ -438,4 +438,4 @@ export function CosmosStoreLayer(cfg) {
|
|
|
438
438
|
.toLayer(makeCosmosStore(cfg))
|
|
439
439
|
.pipe(Layer.provide(CosmosClientLayer(Redacted.value(cfg.url), cfg.dbName)));
|
|
440
440
|
}
|
|
441
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL0Nvc21vcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBR3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFnRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDcEosT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDekQsT0FBTyxFQUFFLGFB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
|
|
441
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL0Nvc21vcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBR3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFnRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDcEosT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDekQs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
|
|
@@ -2,7 +2,8 @@ import * as Layer from "effect-app/Layer";
|
|
|
2
2
|
import * as Duration from "effect/Duration";
|
|
3
3
|
import * as Redacted from "effect/Redacted";
|
|
4
4
|
import { WorkflowEngine } from "effect/unstable/workflow/WorkflowEngine";
|
|
5
|
-
|
|
5
|
+
import { type CosmosContainerThroughput } from "./cosmos-client.js";
|
|
6
|
+
export interface WorkflowEngineCosmosConfig extends CosmosContainerThroughput {
|
|
6
7
|
readonly url: Redacted.Redacted<string>;
|
|
7
8
|
readonly dbName: string;
|
|
8
9
|
readonly prefix?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowEngineCosmos.d.ts","sourceRoot":"","sources":["../src/WorkflowEngineCosmos.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAI3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAI3C,OAAO,EAA4B,cAAc,EAAoB,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"WorkflowEngineCosmos.d.ts","sourceRoot":"","sources":["../src/WorkflowEngineCosmos.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAI3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAI3C,OAAO,EAA4B,cAAc,EAAoB,MAAM,yCAAyC,CAAA;AAEpH,OAAO,EAAmC,KAAK,yBAAyB,EAA8B,MAAM,oBAAoB,CAAA;AAIhI,MAAM,WAAW,0BAA2B,SAAQ,yBAAyB;IAC3E,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACrC,2DAA2D;IAC3D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAA;IAC9C,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAA;IAC7C,sFAAsF;IACtF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAA;IAC9C,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAgqBD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,QAAS,0BAA0B,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAGR,CAAA"}
|
|
@@ -44,7 +44,7 @@ import * as Schedule from "effect/Schedule";
|
|
|
44
44
|
import * as Workflow from "effect/unstable/workflow/Workflow";
|
|
45
45
|
import { makeUnsafe, WorkflowEngine, WorkflowInstance } from "effect/unstable/workflow/WorkflowEngine";
|
|
46
46
|
import { randomUUID } from "node:crypto";
|
|
47
|
-
import { CosmosClient, CosmosClientLayer } from "./cosmos-client.js";
|
|
47
|
+
import { CosmosClient, CosmosClientLayer, createContainerIfNotExists } from "./cosmos-client.js";
|
|
48
48
|
import { OptimisticConcurrencyException } from "./errors.js";
|
|
49
49
|
import { annotateCosmosResponse, annotateDb } from "./otel.js";
|
|
50
50
|
// Cosmos forbids '/', '\', '#', '?' in a resource id; workflow/deferred/clock
|
|
@@ -76,10 +76,10 @@ const decodeDeferredExit = (s) => Effect.orDie(S.decodeEffect(DeferredExitCodec)
|
|
|
76
76
|
const makeCosmosWorkflowEngine = Effect.fnUntraced(function* (cfg) {
|
|
77
77
|
const { db } = yield* CosmosClient;
|
|
78
78
|
const containerId = `${cfg.prefix ?? ""}workflow-engine`;
|
|
79
|
-
yield* Effect.promise(() => db
|
|
79
|
+
yield* Effect.promise(() => createContainerIfNotExists(db, {
|
|
80
80
|
id: containerId,
|
|
81
81
|
partitionKey: { paths: ["/_partitionKey"], version: 2 }
|
|
82
|
-
}));
|
|
82
|
+
}, cfg));
|
|
83
83
|
const container = db.container(containerId);
|
|
84
84
|
const scope = yield* Effect.scope;
|
|
85
85
|
const workerId = cfg.workerId ?? randomUUID();
|
|
@@ -539,4 +539,4 @@ const makeCosmosWorkflowEngine = Effect.fnUntraced(function* (cfg) {
|
|
|
539
539
|
export const layerCosmos = (cfg) => Layer
|
|
540
540
|
.effect(WorkflowEngine)(makeCosmosWorkflowEngine(cfg))
|
|
541
541
|
.pipe(Layer.provide(CosmosClientLayer(Redacted.value(cfg.url), cfg.dbName)));
|
|
542
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2Zsb3dFbmdpbmVDb3Ntb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvV29ya2Zsb3dFbmdpbmVDb3Ntb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQkc7QUFDSCxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUE7QUFDbkMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFFM0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM3RCxPQUFPLEVBQWdCLFVBQVUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQStEOUQsOEVBQThFO0FBQzlFLHVFQUF1RTtBQUN2RSx5RUFBeUU7QUFDekUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZELE1BQU0sTUFBTSxHQUFHLE1BQWUsQ0FBQTtBQUM5QixNQUFNLFdBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxPQUFlLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBQ2hHLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ25FLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBRTdELDJFQUEyRTtBQUMzRSw4RUFBOEU7QUFDOUUseUVBQXlFO0FBQ3pFLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBVSxFQUFFLElBQVksRUFBVyxFQUFFLENBQzNELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7SUFDL0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUE7QUFFM0UsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFFcEgsZ0ZBQWdGO0FBQ2hGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsMkRBQTJEO0FBQzNELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN0SCxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRW5HLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFvQyxFQUFFLEVBQUUsQ0FDcEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN0RCxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2hHLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUE4QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2pILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFNUYsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEdBQStCO0lBQzFGLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUE7SUFDbEMsTUFBTSxXQUFXLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsaUJBQWlCLENBQUE7SUFDeEQsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDekIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QixFQUFFLEVBQUUsV0FBVztRQUNmLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtLQUN4RCxDQUFDLENBQ0gsQ0FBQTtJQUNELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDM0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUVqQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFBO0lBQzdDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNyRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZFLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDckUsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV0RSxNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQWlCLEVBQUUsV0FBb0IsRUFBRSxFQUFFLENBQzNELFVBQVUsQ0FBQztRQUNULFNBQVM7UUFDVCxNQUFNLEVBQUUsVUFBVTtRQUNsQixVQUFVLEVBQUUsV0FBVztRQUN2QixNQUFNLEVBQUUsVUFBVTtRQUNsQixLQUFLLEVBQUUsV0FBVyxLQUFLLFNBQVM7WUFDOUIsQ0FBQyxDQUFDLEVBQUUsd0NBQXdDLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUU7WUFDekYsQ0FBQyxDQUFDLFNBQVM7S0FDZCxDQUFDLENBQUE7SUFVSixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQTtJQU8vQyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQTtJQUMzQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFVLENBQUE7SUFFN0MsMEVBQTBFO0lBQzFFLHlFQUF5RTtJQUN6RSx1RUFBdUU7SUFDdkUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUM1RyxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUErQyxDQUFBO0lBQ2hGLE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBc0IsRUFBRSxFQUFFO1FBQ2pELElBQUksQ0FBQyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQzlCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3pDLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQTtJQUNWLENBQUMsQ0FBQTtJQUVELE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBc0IsRUFBRSxFQUFFLENBQ2pELENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNwSCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUE4QyxDQUFBO0lBQzlFLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBc0IsRUFBRSxFQUFFO1FBQ2hELElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDM0MsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUM3QixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN4QyxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDLENBQUE7SUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQXNCLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FDaEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUEwQixDQUFBO0lBQzNGLE1BQU0sYUFBYSxHQUFHLENBQUMsUUFBc0IsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUMxRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQTBCLENBQUE7SUFDckYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFzQixFQUFFLENBQW9DLEVBQUUsRUFBRSxDQUNwRixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQTBCLENBQUE7SUFDcEYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFzQixFQUFFLENBQVMsRUFBRSxFQUFFLENBQ3pELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBcUQsQ0FBQTtJQUUvRywwRUFBMEU7SUFFMUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FDdkMsTUFBTTtTQUNILEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDWixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBVyxDQUFDLENBQUE7UUFDN0YsS0FBSyxDQUFDLENBQUMsc0JBQXNCLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDakcsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzdDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDaEQsQ0FBQTtJQUNILENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFFNUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUNuQyxNQUFNO1NBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNaLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQ3pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQVUsR0FBRyxFQUFFO1lBQzlELGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO1NBQ2pFLENBQUMsQ0FDSCxDQUFBO1FBQ0QsS0FBSyxDQUFDLENBQUMsc0JBQXNCLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDakcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckMsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNqQixpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ1gsSUFBSSw4QkFBOEIsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ2hHO1FBQ0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ2xCLEVBQ0QsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQzNDLENBQUE7SUFFTCwyRUFBMkU7SUFDM0UsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsSUFBTyxFQUNpQixFQUFFLENBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQ3RDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUNuQixDQUFDLEVBQUUsYUFBYSxFQUFFLFFBQWlCLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQzFELElBQUksQ0FBQyxhQUFhLENBQ25CLENBQ0YsQ0FBQTtRQUNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMxQixNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQTtRQUMvQixJQUFJLElBQUksS0FBSyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUE7UUFDN0IsSUFBSSxJQUFJLEtBQUssR0FBRztZQUFFLE9BQU8sS0FBSyxDQUFBO1FBQzlCLE9BQU8sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDdEIsSUFBSSxLQUFLLENBQUMsOENBQThDLElBQUksQ0FBQyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FDbkYsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUosK0VBQStFO0lBQy9FLDBFQUEwRTtJQUMxRSxNQUFNLE1BQU0sR0FBRyxDQUNiLElBQU8sRUFDYyxFQUFFLENBQ3ZCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUksSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN6RSxLQUFLLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNuRyxDQUFDLENBQUMsQ0FBQTtJQUVKLE1BQU0sU0FBUyxHQUFHLENBQTJCLEVBQVUsRUFBRSxXQUFtQixFQUFFLEVBQUUsQ0FDOUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUssQ0FBQyxDQUFDLElBQUksQ0FDbEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDcEQsQ0FBQTtJQUVILHlFQUF5RTtJQUV6RSxNQUFNLGNBQWMsR0FBRyxDQUNyQixRQUFzQixFQUN0QixLQUFjLEVBQ21ELEVBQUUsQ0FDbkUsS0FBSyxDQUFDLE1BQU0sS0FBSyxVQUFVLElBQUksS0FBSyxDQUFDLGVBQWU7UUFDbEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4RSxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQTtJQUV4Qix5RUFBeUU7SUFFekUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFjLEVBQUUsR0FBVyxFQUFXLEVBQUUsQ0FDM0QsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTO1dBQ3ZCLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUTtXQUN6QixLQUFLLENBQUMsY0FBYyxLQUFLLFNBQVM7V0FDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFBO0lBRTNDOzs7O09BSUc7SUFDSCxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWMsRUFBeUMsRUFBRSxDQUN6RSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNsQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDdEIsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksRUFBVyxDQUFBO1FBQzFELE1BQU0sT0FBTyxHQUFZO1lBQ3ZCLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtTQUMxRSxDQUFBO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFDdkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQVcsQ0FBQyxDQUFDLENBQ2hHLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVKOzs7T0FHRztJQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBbUIsRUFBdUIsRUFBRSxDQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNsQixPQUFPLElBQUksRUFBRSxDQUFDO1lBQ1osS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDckMsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQTtZQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxNQUFNO2dCQUFFLE9BQU07WUFDbkMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDM0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQVcsQ0FBQyxDQUFDLENBQ2hFLENBQUE7WUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2dCQUFFLFNBQVE7WUFDaEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQTtZQUN2QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUTtnQkFBRSxPQUFNO1lBQ3BFLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDakIsR0FBRyxLQUFLO2dCQUNSLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTthQUNqRixDQUFDO2lCQUNDLElBQUksQ0FDSCxNQUFNLENBQUMsUUFBUSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFDcEUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQ3JDLENBQUE7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFSiwwRUFBMEU7SUFFMUUsTUFBTSxLQUFLLEdBQUcsQ0FDWixXQUFtQixFQUNuQixPQUFlLEVBQ2YsTUFBMEIsRUFDMUIsS0FBaUIsRUFDSSxFQUFFLENBQ3ZCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ2xCLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDbkMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDakIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQTtZQUN2QyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQTtZQUM1QixNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUE7WUFDbEcsSUFBSSxZQUFZLElBQUksa0JBQWtCO2dCQUFFLE9BQU07UUFDaEQsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUM3QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssVUFBVTtZQUFFLE9BQU07UUFFM0UscUVBQXFFO1FBQ3JFLHdFQUF3RTtRQUN4RSxzQ0FBc0M7UUFDdEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFBO1FBRXJFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ3RFLFFBQVEsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQTtRQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxLQUFLLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQTtZQUM5QyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQzNCLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQXlDO1lBQ3RGLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUM1QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssVUFBVTtnQkFBRSxPQUFNO1lBQ3pFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFBO1lBQzdDLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtZQUM1RixLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUM7Z0JBQ2pCLEdBQUcsT0FBTyxDQUFDLEtBQUs7Z0JBQ2hCLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUN0RCxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxXQUFXO2dCQUN0QyxzRUFBc0U7Z0JBQ3RFLHNFQUFzRTtnQkFDdEUsc0RBQXNEO2dCQUN0RCxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVc7Z0JBQzlELGVBQWU7Z0JBQ2YsaUVBQWlFO2dCQUNqRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDckQsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWM7YUFDdEUsQ0FBQztpQkFDQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUM3RSxJQUFJLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDaEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUYsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQzNELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztnQkFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUE7WUFDN0MsUUFBUSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7WUFDMUIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xGLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxVQUFVLEVBQ25CLE1BQU0sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLEVBQ2pELE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxFQUM3QyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FDM0IsQ0FBQTtRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNCLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3JELENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVKLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBbUIsRUFBdUIsRUFBRSxDQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNsQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDN0MsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU07UUFDbkMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQTtRQUM1QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU07UUFDbEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ25FLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDekQsQ0FBQyxDQUFDLENBQUE7SUFFSix5RUFBeUU7SUFDekUsdUVBQXVFO0lBQ3ZFLG9EQUFvRDtJQUNwRCxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQWEsRUFBdUIsRUFBRSxDQUN2RCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNsQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQWM7WUFDbEQsRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO1lBQ2pDLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYTtZQUNoQyxJQUFJLEVBQUUsVUFBVTtZQUNoQixJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUMzQyxDQUFDO2FBQ0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUE7UUFDakQsSUFBSSxPQUFPO1lBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNoRCxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2xGLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUNyQyxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFSixzRUFBc0U7SUFDdEUsc0VBQXNFO0lBQ3RFLGdFQUFnRTtJQUNoRSwwRUFBMEU7SUFDMUUsNEVBQTRFO0lBQzVFLDRFQUE0RTtJQUM1RSw0RUFBNEU7SUFDNUUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxXQUFtQixFQUF1QixFQUFFLENBQ25FLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDNUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLFVBQVUsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMvRixPQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2hGLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ2YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQy9FLENBQUE7WUFDRCxJQUFJLFNBQVM7Z0JBQUUsT0FBTTtRQUN2QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFSiwwRUFBMEU7SUFFMUUsTUFBTSxPQUFPLEdBQVk7UUFDdkIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUMsUUFBUSxFQUFFLE9BQU87WUFDckQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUMzQixRQUFRO2dCQUNSLE9BQU87Z0JBQ1AsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO2FBQzNCLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQztRQUNGLE9BQU8sRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLFFBQVEsRUFBRSxPQUFPO1lBQ3BELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLFFBQVEsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLENBQUMsQ0FBQTtZQUN4RixDQUFDO1lBRUQsTUFBTSxPQUFPLEdBQVk7Z0JBQ3ZCLEVBQUUsRUFBRSxNQUFNO2dCQUNWLGFBQWEsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDbEMsSUFBSSxFQUFFLE1BQU07Z0JBQ1osWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUN4RCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXO2dCQUNuQyxNQUFNLEVBQUUsU0FBUztnQkFDakIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLFdBQVcsRUFBRSxLQUFLO2FBQ25CLENBQUE7WUFDRCxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7WUFDcEYsNEVBQTRFO1lBQzVFLHFFQUFxRTtZQUNyRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBRXRGLElBQUksT0FBTyxDQUFDLE9BQU87Z0JBQUUsT0FBTyxTQUFnQixDQUFBO1lBRTVDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQzdDLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQVEsQ0FBQTtZQUNoRCxDQUFDO1lBRUQsaUVBQWlFO1lBQ2pFLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtnQkFDaEQsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUNwRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO3dCQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQVksQ0FBQTtnQkFDN0MsQ0FBQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUMzQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDckMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUE7Z0JBQ3JDLElBQUksQ0FBQyxJQUFJO29CQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksRUFBcUMsQ0FBQTtnQkFDbEUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7b0JBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDakUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNoQyxDQUFDO1lBQ0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQzFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxNQUFNLENBQUMsSUFBSSxFQUFxQyxDQUFBO1lBQ2pGLE9BQU8sS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckQsQ0FBQyxDQUFDO1FBQ0osU0FBUyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUMsU0FBUyxFQUFFLFdBQVc7WUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNyQyxJQUFJLEtBQUs7Z0JBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1lBQzVDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNuQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDL0IsQ0FBQyxDQUFDO1FBQ0YsZUFBZSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUMsU0FBUyxFQUFFLFdBQVc7WUFDakUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNyQyxJQUFJLEtBQUs7Z0JBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1lBQzVDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNuQyxJQUFJLEtBQUssRUFBRSxLQUFLO2dCQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZELENBQUMsQ0FBQztRQUNGLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDMUQsZUFBZSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUMsUUFBUSxFQUFFLE9BQU87WUFDNUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUE7WUFDeEMsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDOUMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFjLEVBQUUsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUMzRSxRQUFRLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FDL0MsQ0FBQTtZQUNELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM1QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUMvRCxnRUFBZ0U7Z0JBQ2hFLDZEQUE2RDtnQkFDN0QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUE7WUFDM0MsQ0FBQztZQUVELE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQzFGLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFBO1lBRW5ELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNoRCxRQUFRLENBQUMsVUFBVSxFQUNuQixNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQzFELENBQUE7WUFDRCxNQUFNLEdBQUcsR0FBZ0I7Z0JBQ3ZCLEVBQUU7Z0JBQ0YsYUFBYSxFQUFFLFFBQVEsQ0FBQyxXQUFXO2dCQUNuQyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQzthQUM1QyxDQUFBO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLDBFQUEwRTtnQkFDMUUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7Z0JBQzFFLE9BQU8sTUFBTSxDQUFBO1lBQ2YsQ0FBQztZQUVELDhFQUE4RTtZQUM5RSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUNyRyxJQUFJLFNBQVM7Z0JBQUUsT0FBTyxNQUFNLENBQUE7WUFDNUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFjLEVBQUUsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDdEUsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQzFELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVO29CQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ3JDLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUMsQ0FBQztRQUNGLGNBQWMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLFFBQVE7WUFDbEQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUE7WUFDeEMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFjLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDOUYsUUFBUSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQy9DLENBQUE7WUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2dCQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksRUFBK0IsQ0FBQTtZQUN6RSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQy9ELENBQUMsQ0FBQztRQUNGLFlBQVksRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLE9BQU87WUFDL0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFjO2dCQUNsRCxFQUFFLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7Z0JBQ3JDLGFBQWEsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDbEMsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2FBQzlDLENBQUM7aUJBQ0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtZQUN6RCxJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFNO1lBQ3BCLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDdkMsQ0FBQyxDQUFDO1FBQ0YsYUFBYSxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUM3RixNQUFNLFFBQVEsR0FBYTtnQkFDekIsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDaEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNsQyxJQUFJLEVBQUUsT0FBTztnQkFDYixZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQzNCLFlBQVksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2dCQUN6QyxNQUFNO2FBQ1AsQ0FBQTtZQUNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtnQkFDcEYscUVBQXFFO2dCQUNyRSxxREFBcUQ7Z0JBQ3JELEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFDcEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDN0YsTUFBTSxDQUFDLE1BQU0sQ0FDZCxDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO0tBQ0YsQ0FBQTtJQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVsQyx5RUFBeUU7SUFDekUsb0VBQW9FO0lBQ3BFLHVFQUF1RTtJQUN2RSw4Q0FBOEM7SUFDOUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFFNUMsTUFBTSxXQUFXLEdBQUcsTUFBTTthQUN2QixHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUN2QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUN2QyxTQUFTO2lCQUNOLEtBQUs7aUJBQ0wsS0FBSyxDQUFXO2dCQUNmLEtBQUssRUFDSCxpS0FBaUs7Z0JBQ25LLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDOUMsQ0FBQztpQkFDRCxRQUFRLEVBQUUsQ0FDZCxDQUFBO1lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7b0JBQUUsU0FBUTtnQkFDOUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7Z0JBQzNDLElBQUksS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO29CQUFFLFNBQVE7Z0JBQ3ZELEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUMzRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXZFLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQ3JCLENBQUE7SUFDSCxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLDBFQUEwRTtJQUMxRSx3RUFBd0U7SUFDeEUsd0VBQXdFO0lBQ3hFLGtCQUFrQjtJQUNsQixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQU83QyxNQUFNLFNBQVMsR0FBRyxNQUFNO2FBQ3JCLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3ZDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQ3JDLFNBQVM7aUJBQ04sS0FBSztpQkFDTCxLQUFLLENBQVc7Z0JBQ2YsS0FBSyxFQUNILGlIQUFpSDtnQkFDbkgsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM5QyxDQUFDO2lCQUNELFFBQVEsRUFBRSxDQUNkLENBQUE7WUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDbEIsU0FBUyxDQUFDO29CQUNSLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDVixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWE7b0JBQ2hDLElBQUksRUFBRSxPQUFPO29CQUNiLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtvQkFDOUIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO29CQUM5QixNQUFNLEVBQUUsTUFBTTtpQkFDZixDQUFDLEVBQ0YsS0FBSyxDQUNOLENBQUE7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXBFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ2pELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQ3JCLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUMsQ0FBQTtBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUErQixFQUErQixFQUFFLENBQzFGLEtBQUs7S0FDRixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQSJ9
|
|
542
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2Zsb3dFbmdpbmVDb3Ntb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvV29ya2Zsb3dFbmdpbmVDb3Ntb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQkc7QUFDSCxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUE7QUFDbkMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFFM0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM3RCxPQUFPLEVBQWdCLFVBQVUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQWtDLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDaEksT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUE7QUErRDlELDhF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
|
package/dist/cosmos-client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CosmosClient as ComosClient_ } from "@azure/cosmos";
|
|
1
|
+
import { type ContainerRequest, CosmosClient as ComosClient_ } from "@azure/cosmos";
|
|
2
2
|
import * as Context from "effect-app/Context";
|
|
3
3
|
import * as Effect from "effect-app/Effect";
|
|
4
4
|
import * as Layer from "effect-app/Layer";
|
|
@@ -12,5 +12,29 @@ export declare class CosmosClient extends CosmosClient_base {
|
|
|
12
12
|
}
|
|
13
13
|
export declare const db: Effect.Effect<import("@azure/cosmos").Database, never, CosmosClient>;
|
|
14
14
|
export declare const CosmosClientLayer: (cosmosUrl: string, dbName: string) => Layer.Layer<CosmosClient, never, never>;
|
|
15
|
+
export interface CosmosContainerThroughput {
|
|
16
|
+
/**
|
|
17
|
+
* Autoscale max RU/s for containers created on demand (min 1000; Cosmos bills at
|
|
18
|
+
* least 10% of it). Only applied to containers that do not exist yet, in databases
|
|
19
|
+
* without shared throughput — those containers share the database pool instead.
|
|
20
|
+
* Unset keeps the Cosmos default: manual 400 RU/s per container, billed 24/7.
|
|
21
|
+
*/
|
|
22
|
+
readonly autoscaleMaxThroughput?: number | undefined;
|
|
23
|
+
}
|
|
24
|
+
/** The slice of a Cosmos `Database` needed to create containers. */
|
|
25
|
+
export interface ContainerDb {
|
|
26
|
+
readonly container: (id: string) => {
|
|
27
|
+
readonly read: () => Promise<unknown>;
|
|
28
|
+
};
|
|
29
|
+
readonly containers: {
|
|
30
|
+
readonly createIfNotExists: (body: ContainerRequest) => Promise<unknown>;
|
|
31
|
+
};
|
|
32
|
+
readonly readOffer: () => Promise<{
|
|
33
|
+
readonly resource?: unknown;
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
36
|
+
export declare const createContainerIfNotExists: (db: ContainerDb, body: ContainerRequest & {
|
|
37
|
+
id: string;
|
|
38
|
+
}, throughput?: CosmosContainerThroughput) => Promise<void>;
|
|
15
39
|
export {};
|
|
16
40
|
//# sourceMappingURL=cosmos-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos-client.d.ts","sourceRoot":"","sources":["../src/cosmos-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"cosmos-client.d.ts","sourceRoot":"","sources":["../src/cosmos-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AACnF,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,eAAO,MAAM,gBAAgB,QAAS,MAAM,UAAU,MAAM;;gBACM,CAAA;;iBAGnD,UAAU,CAAC,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;;AADxE,qBAAa,YAAa,SAAQ,iBAEJ;CAAG;AAEjC,eAAO,MAAM,EAAE,sEAA6C,CAAA;AAE5D,eAAO,MAAM,iBAAiB,cAAe,MAAM,UAAU,MAAM,4CACF,CAAA;AAEjE,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrD;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IAC7E,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;IACjG,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACnE;AAID,eAAO,MAAM,0BAA0B,OACjC,WAAW,QACT,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,eAC1B,yBAAyB,kBAcvC,CAAA"}
|
package/dist/cosmos-client.js
CHANGED
|
@@ -8,4 +8,17 @@ export class CosmosClient extends Context.Service()("@services/CosmosClient") {
|
|
|
8
8
|
}
|
|
9
9
|
export const db = CosmosClient.pipe(Effect.map((_) => _.db));
|
|
10
10
|
export const CosmosClientLayer = (cosmosUrl, dbName) => Layer.effect(CosmosClient, makeCosmosClient(cosmosUrl, dbName));
|
|
11
|
-
|
|
11
|
+
const isNotFound = (e) => typeof e === "object" && e !== null && "code" in e && e.code === 404;
|
|
12
|
+
export const createContainerIfNotExists = async (db, body, throughput) => {
|
|
13
|
+
const maxThroughput = throughput?.autoscaleMaxThroughput;
|
|
14
|
+
if (maxThroughput === undefined) {
|
|
15
|
+
await db.containers.createIfNotExists(body);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const exists = await db.container(body.id).read().then(() => true, (e) => isNotFound(e) ? false : Promise.reject(e));
|
|
19
|
+
if (exists)
|
|
20
|
+
return;
|
|
21
|
+
const { resource: sharedOffer } = await db.readOffer();
|
|
22
|
+
await db.containers.createIfNotExists(sharedOffer ? body : { ...body, maxThroughput });
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3Ntb3MtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsWUFBWSxJQUFJLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNuRixPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0FBRTVFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBVyxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQzlELE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFbEUsTUFBTSxPQUFPLFlBQWEsU0FBUSxPQUFPLENBQUMsT0FBTyxFQUU3QyxDQUFDLHdCQUF3QixDQUFDO0NBQUc7QUFFakMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFNUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxFQUFFLENBQ3JFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0FBbUJqRSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQTtBQUV2RyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLEVBQzdDLEVBQWUsRUFDZixJQUF1QyxFQUN2QyxVQUFzQyxFQUN0QyxFQUFFO0lBQ0YsTUFBTSxhQUFhLEdBQUcsVUFBVSxFQUFFLHNCQUFzQixDQUFBO0lBQ3hELElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMzQyxPQUFNO0lBQ1IsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUNwRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNqRCxDQUFBO0lBQ0QsSUFBSSxNQUFNO1FBQUUsT0FBTTtJQUNsQixNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ3RELE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFBO0FBQ3hGLENBQUMsQ0FBQSJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.323",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"proper-lockfile": "^4.1.2",
|
|
17
17
|
"pure-rand": "8.4.0",
|
|
18
18
|
"query-string": "^9.4.0",
|
|
19
|
-
"effect-app": "4.0.0-beta.
|
|
19
|
+
"effect-app": "4.0.0-beta.323"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@azure/cosmos": "^4.9.3",
|
|
23
23
|
"@azure/service-bus": "^7.9.5",
|
|
24
|
-
"@effect/sql-sqlite-node": "4.0.0-rc.
|
|
24
|
+
"@effect/sql-sqlite-node": "4.0.0-rc.115",
|
|
25
25
|
"@sentry/opentelemetry": "10.55.0",
|
|
26
26
|
"@types/better-sqlite3": "^7.6.13",
|
|
27
27
|
"@types/node": "25.9.1",
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@azure/cosmos": "^4.9.3",
|
|
41
41
|
"@azure/service-bus": "^7.9.5",
|
|
42
|
-
"@effect/vitest": "^4.0.0-rc.
|
|
42
|
+
"@effect/vitest": "^4.0.0-rc.115",
|
|
43
43
|
"@sendgrid/helpers": "^8.0.0",
|
|
44
44
|
"@sendgrid/mail": "^8.1.6",
|
|
45
45
|
"@sentry/node": "10.55.0",
|
|
46
46
|
"@sentry/opentelemetry": "10.55.0",
|
|
47
|
-
"effect": "^4.0.0-rc.
|
|
47
|
+
"effect": "^4.0.0-rc.115",
|
|
48
48
|
"jwt-decode": "^4.0.0",
|
|
49
49
|
"redis": "^3.1.2",
|
|
50
50
|
"redlock": "^4.2.0"
|
package/src/ClusterCosmos.ts
CHANGED
|
@@ -15,10 +15,10 @@ import * as RunnerStorage from "effect/unstable/cluster/RunnerStorage"
|
|
|
15
15
|
import * as ShardId from "effect/unstable/cluster/ShardId"
|
|
16
16
|
import * as ShardingConfig from "effect/unstable/cluster/ShardingConfig"
|
|
17
17
|
import * as Snowflake from "effect/unstable/cluster/Snowflake"
|
|
18
|
-
import { CosmosClient, CosmosClientLayer } from "./cosmos-client.ts"
|
|
18
|
+
import { CosmosClient, CosmosClientLayer, type CosmosContainerThroughput, createContainerIfNotExists } from "./cosmos-client.ts"
|
|
19
19
|
import { annotateCosmosResponse, annotateDb } from "./otel.ts"
|
|
20
20
|
|
|
21
|
-
export interface ClusterCosmosConfig {
|
|
21
|
+
export interface ClusterCosmosConfig extends CosmosContainerThroughput {
|
|
22
22
|
readonly url: Redacted.Redacted<string>
|
|
23
23
|
readonly dbName: string
|
|
24
24
|
readonly prefix?: string
|
|
@@ -344,26 +344,26 @@ const shardIdFromString = (shardId: string): Envelope.Encoded["address"]["shardI
|
|
|
344
344
|
|
|
345
345
|
const machineIdCounterDocId = cosmosId("machine-id-counter")
|
|
346
346
|
|
|
347
|
-
|
|
347
|
+
type StorageOptions = { readonly prefix?: string | undefined } & CosmosContainerThroughput
|
|
348
|
+
|
|
349
|
+
const createContainer = (prefix: string, throughput?: CosmosContainerThroughput) =>
|
|
348
350
|
Effect.fnUntraced(function*() {
|
|
349
351
|
const { db } = yield* CosmosClient
|
|
350
352
|
const containerId = `${prefix}cluster`
|
|
351
353
|
yield* Effect
|
|
352
354
|
.tryPromise(() =>
|
|
353
|
-
db
|
|
355
|
+
createContainerIfNotExists(db, {
|
|
354
356
|
id: containerId,
|
|
355
357
|
partitionKey: { paths: ["/_partitionKey"], version: 2 }
|
|
356
|
-
})
|
|
358
|
+
}, throughput)
|
|
357
359
|
)
|
|
358
360
|
.pipe(Effect.catchIf(isConflict, () => Effect.void))
|
|
359
361
|
return db.container(containerId)
|
|
360
362
|
})
|
|
361
363
|
|
|
362
|
-
export const makeMessageStorage = Effect.fnUntraced(function*(options?: {
|
|
363
|
-
readonly prefix?: string | undefined
|
|
364
|
-
}) {
|
|
364
|
+
export const makeMessageStorage = Effect.fnUntraced(function*(options?: StorageOptions) {
|
|
365
365
|
const prefix = options?.prefix ?? "cluster-"
|
|
366
|
-
const container = yield* createContainer(prefix)().pipe(Effect.orDie)
|
|
366
|
+
const container = yield* createContainer(prefix, options)().pipe(Effect.orDie)
|
|
367
367
|
const containerId = `${prefix}cluster`
|
|
368
368
|
const annotate = (operation: string) =>
|
|
369
369
|
annotateDb({ operation, system: "cosmosdb", collection: containerId, entity: "cluster-message-storage" })
|
|
@@ -834,11 +834,9 @@ const lastRepliesById = <E>(
|
|
|
834
834
|
.pipe(Effect.map((replies) => new Map(replies.map((reply) => [reply.rowid, replyFromDoc(reply)]))))
|
|
835
835
|
}
|
|
836
836
|
|
|
837
|
-
export const makeRunnerStorage = Effect.fnUntraced(function*(options?: {
|
|
838
|
-
readonly prefix?: string | undefined
|
|
839
|
-
}) {
|
|
837
|
+
export const makeRunnerStorage = Effect.fnUntraced(function*(options?: StorageOptions) {
|
|
840
838
|
const prefix = options?.prefix ?? "cluster-"
|
|
841
|
-
const container = yield* createContainer(prefix)().pipe(Effect.orDie)
|
|
839
|
+
const container = yield* createContainer(prefix, options)().pipe(Effect.orDie)
|
|
842
840
|
const config = yield* ShardingConfig.ShardingConfig
|
|
843
841
|
const expires = Duration.toMillis(Duration.fromInputUnsafe(config.shardLockExpiration))
|
|
844
842
|
const containerId = `${prefix}cluster`
|
|
@@ -1124,21 +1122,19 @@ export const makeRunnerStorage = Effect.fnUntraced(function*(options?: {
|
|
|
1124
1122
|
})
|
|
1125
1123
|
})
|
|
1126
1124
|
|
|
1127
|
-
export const layerMessageStorage = (
|
|
1128
|
-
|
|
1129
|
-
|
|
1125
|
+
export const layerMessageStorage = (
|
|
1126
|
+
options?: StorageOptions
|
|
1127
|
+
): Layer.Layer<MessageStorage.MessageStorage, never, CosmosClient | ShardingConfig.ShardingConfig> =>
|
|
1130
1128
|
Layer.effect(MessageStorage.MessageStorage, makeMessageStorage(options)).pipe(
|
|
1131
1129
|
Layer.provide(Snowflake.layerGenerator)
|
|
1132
1130
|
)
|
|
1133
1131
|
|
|
1134
|
-
export const layerRunnerStorage = (
|
|
1135
|
-
|
|
1136
|
-
|
|
1132
|
+
export const layerRunnerStorage = (
|
|
1133
|
+
options?: StorageOptions
|
|
1134
|
+
): Layer.Layer<RunnerStorage.RunnerStorage, never, CosmosClient | ShardingConfig.ShardingConfig> =>
|
|
1137
1135
|
Layer.effect(RunnerStorage.RunnerStorage, makeRunnerStorage(options))
|
|
1138
1136
|
|
|
1139
|
-
export const layerStorage = (options?:
|
|
1140
|
-
readonly prefix?: string | undefined
|
|
1141
|
-
}): Layer.Layer<
|
|
1137
|
+
export const layerStorage = (options?: StorageOptions): Layer.Layer<
|
|
1142
1138
|
MessageStorage.MessageStorage | RunnerStorage.RunnerStorage,
|
|
1143
1139
|
never,
|
|
1144
1140
|
CosmosClient | ShardingConfig.ShardingConfig
|
|
@@ -1149,6 +1145,6 @@ export const layerCosmos = (config: ClusterCosmosConfig): Layer.Layer<
|
|
|
1149
1145
|
never,
|
|
1150
1146
|
ShardingConfig.ShardingConfig
|
|
1151
1147
|
> =>
|
|
1152
|
-
layerStorage({ prefix: config.prefix }).pipe(
|
|
1148
|
+
layerStorage({ prefix: config.prefix, autoscaleMaxThroughput: config.autoscaleMaxThroughput }).pipe(
|
|
1153
1149
|
Layer.provide(CosmosClientLayer(Redacted.value(config.url), config.dbName))
|
|
1154
1150
|
)
|
package/src/Store/Cosmos.ts
CHANGED
|
@@ -14,7 +14,7 @@ import * as Duration from "effect/Duration"
|
|
|
14
14
|
import { pipe } from "effect/Function"
|
|
15
15
|
import * as Redacted from "effect/Redacted"
|
|
16
16
|
import * as Struct from "effect/Struct"
|
|
17
|
-
import { CosmosClient, CosmosClientLayer } from "../cosmos-client.ts"
|
|
17
|
+
import { CosmosClient, CosmosClientLayer, createContainerIfNotExists } from "../cosmos-client.ts"
|
|
18
18
|
import { DatabaseError, OptimisticConcurrencyException } from "../errors.ts"
|
|
19
19
|
import { InfraLogger } from "../logger.ts"
|
|
20
20
|
import { annotateCosmosResponse, annotateDb } from "../otel.ts"
|
|
@@ -87,7 +87,7 @@ const annotateItem = (resp: {
|
|
|
87
87
|
responseBytes: respBytes(resp)
|
|
88
88
|
})
|
|
89
89
|
|
|
90
|
-
const makeCosmosStore = Effect.fnUntraced(function*({ prefix }: StorageConfig) {
|
|
90
|
+
const makeCosmosStore = Effect.fnUntraced(function*({ autoscaleMaxThroughput, prefix }: StorageConfig) {
|
|
91
91
|
const { db } = yield* CosmosClient
|
|
92
92
|
return {
|
|
93
93
|
make: Effect.fnUntraced(function*<IdKey extends keyof Encoded, Encoded extends FieldValues, R = never, E = never>(
|
|
@@ -106,16 +106,20 @@ const makeCosmosStore = Effect.fnUntraced(function*({ prefix }: StorageConfig) {
|
|
|
106
106
|
type PMCosmos = PersistenceModelType<Omit<Encoded, IdKey> & { id: string }>
|
|
107
107
|
const containerId = `${prefix}${name}`
|
|
108
108
|
yield* Effect.promise(() =>
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
109
|
+
createContainerIfNotExists(
|
|
110
|
+
db,
|
|
111
|
+
dropUndefinedT({
|
|
112
|
+
id: containerId,
|
|
113
|
+
uniqueKeyPolicy: config?.uniqueKeys
|
|
114
|
+
? { uniqueKeys: config.uniqueKeys }
|
|
115
|
+
: undefined,
|
|
116
|
+
partitionKey: {
|
|
117
|
+
paths: ["/_partitionKey"],
|
|
118
|
+
version: 2 // support large partitionkeys so that the hash is not based on just the first 100 bytes!
|
|
119
|
+
}
|
|
120
|
+
}),
|
|
121
|
+
{ autoscaleMaxThroughput }
|
|
122
|
+
)
|
|
119
123
|
)
|
|
120
124
|
|
|
121
125
|
const basePartitionKey = config?.partitionValue() ?? "primary"
|
|
@@ -45,11 +45,11 @@ import type * as Scope from "effect/Scope"
|
|
|
45
45
|
import * as Workflow from "effect/unstable/workflow/Workflow"
|
|
46
46
|
import { type Encoded, makeUnsafe, WorkflowEngine, WorkflowInstance } from "effect/unstable/workflow/WorkflowEngine"
|
|
47
47
|
import { randomUUID } from "node:crypto"
|
|
48
|
-
import { CosmosClient, CosmosClientLayer } from "./cosmos-client.ts"
|
|
48
|
+
import { CosmosClient, CosmosClientLayer, type CosmosContainerThroughput, createContainerIfNotExists } from "./cosmos-client.ts"
|
|
49
49
|
import { OptimisticConcurrencyException } from "./errors.ts"
|
|
50
50
|
import { annotateCosmosResponse, annotateDb } from "./otel.ts"
|
|
51
51
|
|
|
52
|
-
export interface WorkflowEngineCosmosConfig {
|
|
52
|
+
export interface WorkflowEngineCosmosConfig extends CosmosContainerThroughput {
|
|
53
53
|
readonly url: Redacted.Redacted<string>
|
|
54
54
|
readonly dbName: string
|
|
55
55
|
readonly prefix?: string
|
|
@@ -147,10 +147,10 @@ const makeCosmosWorkflowEngine = Effect.fnUntraced(function*(cfg: WorkflowEngine
|
|
|
147
147
|
const { db } = yield* CosmosClient
|
|
148
148
|
const containerId = `${cfg.prefix ?? ""}workflow-engine`
|
|
149
149
|
yield* Effect.promise(() =>
|
|
150
|
-
db
|
|
150
|
+
createContainerIfNotExists(db, {
|
|
151
151
|
id: containerId,
|
|
152
152
|
partitionKey: { paths: ["/_partitionKey"], version: 2 }
|
|
153
|
-
})
|
|
153
|
+
}, cfg)
|
|
154
154
|
)
|
|
155
155
|
const container = db.container(containerId)
|
|
156
156
|
const scope = yield* Effect.scope
|
package/src/cosmos-client.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CosmosClient as ComosClient_ } from "@azure/cosmos"
|
|
1
|
+
import { type ContainerRequest, CosmosClient as ComosClient_ } from "@azure/cosmos"
|
|
2
2
|
import * as Context from "effect-app/Context"
|
|
3
3
|
import * as Effect from "effect-app/Effect"
|
|
4
4
|
import * as Layer from "effect-app/Layer"
|
|
@@ -16,3 +16,41 @@ export const db = CosmosClient.pipe(Effect.map((_) => _.db))
|
|
|
16
16
|
|
|
17
17
|
export const CosmosClientLayer = (cosmosUrl: string, dbName: string) =>
|
|
18
18
|
Layer.effect(CosmosClient, makeCosmosClient(cosmosUrl, dbName))
|
|
19
|
+
|
|
20
|
+
export interface CosmosContainerThroughput {
|
|
21
|
+
/**
|
|
22
|
+
* Autoscale max RU/s for containers created on demand (min 1000; Cosmos bills at
|
|
23
|
+
* least 10% of it). Only applied to containers that do not exist yet, in databases
|
|
24
|
+
* without shared throughput — those containers share the database pool instead.
|
|
25
|
+
* Unset keeps the Cosmos default: manual 400 RU/s per container, billed 24/7.
|
|
26
|
+
*/
|
|
27
|
+
readonly autoscaleMaxThroughput?: number | undefined
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** The slice of a Cosmos `Database` needed to create containers. */
|
|
31
|
+
export interface ContainerDb {
|
|
32
|
+
readonly container: (id: string) => { readonly read: () => Promise<unknown> }
|
|
33
|
+
readonly containers: { readonly createIfNotExists: (body: ContainerRequest) => Promise<unknown> }
|
|
34
|
+
readonly readOffer: () => Promise<{ readonly resource?: unknown }>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const isNotFound = (e: unknown) => typeof e === "object" && e !== null && "code" in e && e.code === 404
|
|
38
|
+
|
|
39
|
+
export const createContainerIfNotExists = async (
|
|
40
|
+
db: ContainerDb,
|
|
41
|
+
body: ContainerRequest & { id: string },
|
|
42
|
+
throughput?: CosmosContainerThroughput
|
|
43
|
+
) => {
|
|
44
|
+
const maxThroughput = throughput?.autoscaleMaxThroughput
|
|
45
|
+
if (maxThroughput === undefined) {
|
|
46
|
+
await db.containers.createIfNotExists(body)
|
|
47
|
+
return
|
|
48
|
+
}
|
|
49
|
+
const exists = await db.container(body.id).read().then(
|
|
50
|
+
() => true,
|
|
51
|
+
(e) => isNotFound(e) ? false : Promise.reject(e)
|
|
52
|
+
)
|
|
53
|
+
if (exists) return
|
|
54
|
+
const { resource: sharedOffer } = await db.readOffer()
|
|
55
|
+
await db.containers.createIfNotExists(sharedOffer ? body : { ...body, maxThroughput })
|
|
56
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { describe, expect, it } from "@effect/vitest"
|
|
2
|
+
import { type ContainerDb, createContainerIfNotExists } from "../src/cosmos-client.js"
|
|
3
|
+
|
|
4
|
+
const body = { id: "prefix-Orders", partitionKey: { paths: ["/_partitionKey"], version: 2 } }
|
|
5
|
+
|
|
6
|
+
const fakeDb = (opts: { readonly read: () => Promise<unknown>; readonly sharedOffer: boolean }) => {
|
|
7
|
+
const calls = { created: [] as Array<unknown>, offerReads: 0 }
|
|
8
|
+
const db: ContainerDb = {
|
|
9
|
+
container: () => ({ read: opts.read }),
|
|
10
|
+
containers: {
|
|
11
|
+
createIfNotExists: (req) => {
|
|
12
|
+
calls.created.push(req)
|
|
13
|
+
return Promise.resolve({})
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
readOffer: () => {
|
|
17
|
+
calls.offerReads++
|
|
18
|
+
return Promise.resolve({ resource: opts.sharedOffer ? { id: "offer" } : undefined })
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return { calls, db }
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const existing = () => Promise.resolve({})
|
|
25
|
+
const missing = () => Promise.reject({ code: 404 })
|
|
26
|
+
|
|
27
|
+
describe("createContainerIfNotExists", () => {
|
|
28
|
+
it("keeps the Cosmos default when no autoscale max is configured", async () => {
|
|
29
|
+
const { calls, db } = fakeDb({ read: missing, sharedOffer: false })
|
|
30
|
+
await createContainerIfNotExists(db, body)
|
|
31
|
+
expect(calls.created).toEqual([body])
|
|
32
|
+
expect(calls.offerReads).toBe(0)
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
it("creates a missing container with autoscale in a database without shared throughput", async () => {
|
|
36
|
+
const { calls, db } = fakeDb({ read: missing, sharedOffer: false })
|
|
37
|
+
await createContainerIfNotExists(db, body, { autoscaleMaxThroughput: 1000 })
|
|
38
|
+
expect(calls.created).toEqual([{ ...body, maxThroughput: 1000 }])
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
it("lets a missing container share the database throughput when the database has an offer", async () => {
|
|
42
|
+
const { calls, db } = fakeDb({ read: missing, sharedOffer: true })
|
|
43
|
+
await createContainerIfNotExists(db, body, { autoscaleMaxThroughput: 1000 })
|
|
44
|
+
expect(calls.created).toEqual([body])
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it("leaves existing containers untouched", async () => {
|
|
48
|
+
const { calls, db } = fakeDb({ read: existing, sharedOffer: false })
|
|
49
|
+
await createContainerIfNotExists(db, body, { autoscaleMaxThroughput: 1000 })
|
|
50
|
+
expect(calls.created).toEqual([])
|
|
51
|
+
expect(calls.offerReads).toBe(0)
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
it("propagates container read errors other than not found", async () => {
|
|
55
|
+
const { calls, db } = fakeDb({ read: () => Promise.reject({ code: 403 }), sharedOffer: false })
|
|
56
|
+
await expect(createContainerIfNotExists(db, body, { autoscaleMaxThroughput: 1000 })).rejects.toEqual({
|
|
57
|
+
code: 403
|
|
58
|
+
})
|
|
59
|
+
expect(calls.created).toEqual([])
|
|
60
|
+
})
|
|
61
|
+
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cosmos-container-throughput.test.d.ts","sourceRoot":"","sources":["../cosmos-container-throughput.test.ts"],"names":[],"mappings":""}
|