@effect-app/infra 2.9.5 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/_cjs/Emailer/Sendgrid.cjs +1 -1
  3. package/_cjs/Emailer/Sendgrid.cjs.map +1 -1
  4. package/_cjs/Emailer/service.cjs.map +1 -1
  5. package/_cjs/Model/Repository/internal/internal.cjs +247 -0
  6. package/_cjs/Model/Repository/internal/internal.cjs.map +1 -0
  7. package/_cjs/Model/Repository/legacy.cjs +0 -139
  8. package/_cjs/Model/Repository/legacy.cjs.map +1 -1
  9. package/_cjs/Model/Repository/makeRepo.cjs +2 -241
  10. package/_cjs/Model/Repository/makeRepo.cjs.map +1 -1
  11. package/_cjs/Store/Cosmos.cjs +1 -1
  12. package/_cjs/Store/Cosmos.cjs.map +1 -1
  13. package/_cjs/Store/index.cjs +1 -1
  14. package/_cjs/Store/index.cjs.map +1 -1
  15. package/dist/Emailer/Sendgrid.js +3 -3
  16. package/dist/Emailer/service.d.ts +3 -2
  17. package/dist/Emailer/service.d.ts.map +1 -1
  18. package/dist/Emailer/service.js +1 -1
  19. package/dist/Model/Repository/internal/internal.d.ts +66 -0
  20. package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
  21. package/dist/Model/Repository/internal/internal.js +247 -0
  22. package/dist/Model/Repository/legacy.d.ts +2 -186
  23. package/dist/Model/Repository/legacy.d.ts.map +1 -1
  24. package/dist/Model/Repository/legacy.js +2 -123
  25. package/dist/Model/Repository/makeRepo.d.ts +3 -68
  26. package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
  27. package/dist/Model/Repository/makeRepo.js +3 -247
  28. package/dist/Operations.d.ts +3 -3
  29. package/dist/Store/Cosmos.d.ts.map +1 -1
  30. package/dist/Store/Cosmos.js +3 -3
  31. package/dist/Store/index.js +3 -3
  32. package/dist/Store/service.d.ts +2 -2
  33. package/dist/Store/service.d.ts.map +1 -1
  34. package/package.json +10 -10
  35. package/src/Emailer/Sendgrid.ts +2 -2
  36. package/src/Emailer/service.ts +3 -2
  37. package/src/Model/Repository/internal/internal.ts +481 -0
  38. package/src/Model/Repository/legacy.ts +2 -536
  39. package/src/Model/Repository/makeRepo.ts +4 -481
  40. package/src/Store/Cosmos.ts +2 -2
  41. package/src/Store/index.ts +2 -2
  42. package/src/Store/service.ts +2 -2
@@ -0,0 +1,247 @@
1
+ import { Array, Chunk, Context, Effect, Equivalence, flow, Option, pipe, Pipeable, PubSub, S, Unify } from "effect-app";
2
+ import { toNonEmptyArray } from "effect-app/Array";
3
+ import { NotFoundError } from "effect-app/client";
4
+ import { flatMapOption } from "effect-app/Effect";
5
+ import { NonNegativeInt } from "effect-app/Schema";
6
+ import { setupRequestContextFromCurrent } from "../../../api/setupRequest.js";
7
+ import { StoreMaker } from "../../../Store.js";
8
+ import { getContextMap } from "../../../Store/ContextMapContainer.js";
9
+ import * as Q from "../../query.js";
10
+ const dedupe = Array.dedupeWith(Equivalence.string);
11
+ /**
12
+ * A base implementation to create a repository.
13
+ */
14
+ export function makeRepoInternal() {
15
+ return (name, schema, mapFrom, mapTo, idKey) => {
16
+ function mapToPersistenceModel(e, getEtag) {
17
+ return mapTo(e, getEtag(e.id));
18
+ }
19
+ function mapReverse({ _etag, ...e }, setEtag) {
20
+ setEtag(e.id, _etag);
21
+ return mapFrom(e);
22
+ }
23
+ const mkStore = makeStore()(name, schema, mapTo);
24
+ function make(args) {
25
+ return Effect
26
+ .gen(function* () {
27
+ const rctx = args.schemaContext ?? Context.empty();
28
+ const provideRctx = Effect.provide(rctx);
29
+ const encodeMany = flow(S.encode(S.Array(schema)), provideRctx, Effect.withSpan("encodeMany", { captureStackTrace: false }));
30
+ const decode = flow(S.decode(schema), provideRctx);
31
+ const decodeMany = flow(S.decode(S.Array(schema)), provideRctx, Effect.withSpan("decodeMany", { captureStackTrace: false }));
32
+ const store = yield* mkStore(args.makeInitial, args.config);
33
+ const cms = Effect.andThen(getContextMap.pipe(Effect.orDie), (_) => ({
34
+ get: (id) => _.get(`${name}.${id}`),
35
+ set: (id, etag) => _.set(`${name}.${id}`, etag)
36
+ }));
37
+ const pub = "publishEvents" in args
38
+ ? args.publishEvents
39
+ : () => Effect.void;
40
+ const changeFeed = yield* PubSub.unbounded();
41
+ const allE = cms
42
+ .pipe(Effect.flatMap((cm) => Effect.map(store.all, (_) => _.map((_) => mapReverse(_, cm.set)))));
43
+ const all = Effect
44
+ .flatMap(allE, (_) => decodeMany(_).pipe(Effect.orDie))
45
+ .pipe(Effect.map((_) => _));
46
+ const fieldsSchema = schema;
47
+ // assumes the id field never needs a service...
48
+ const i = ("fields" in fieldsSchema ? S.Struct(fieldsSchema["fields"]) : schema)
49
+ .pipe((_) => {
50
+ let ast = _.ast;
51
+ if (ast._tag === "Declaration")
52
+ ast = ast.typeParameters[0];
53
+ const s = S.make(ast);
54
+ return ast._tag === "Union"
55
+ // we need to get the TypeLiteral, incase of class it's behind a transform...
56
+ ? S.Union(...ast.types.map((_) => S.make(_._tag === "Transformation" ? _.from : _)
57
+ .pipe(S.pick(idKey))))
58
+ : s.pipe(S.pick(idKey));
59
+ });
60
+ const encodeId = flow(S.encode(i), provideRctx);
61
+ function findEId(id) {
62
+ return Effect.flatMap(store.find(id), (item) => Effect.gen(function* () {
63
+ const { set } = yield* cms;
64
+ return item.pipe(Option.map((_) => mapReverse(_, set)));
65
+ }));
66
+ }
67
+ function findE(id) {
68
+ return pipe(encodeId({ [idKey]: id }), Effect.orDie,
69
+ // we will have idKey because the transform is undone again by the encode schema mumbo jumbo above
70
+ // TODO: make reliable. (Security: isin: PrimaryKey(ISIN), idKey: "isin", does end up with "id")
71
+ Effect.map((_) => _[idKey] ?? _.id), Effect.flatMap(findEId));
72
+ }
73
+ function find(id) {
74
+ return Effect.flatMapOption(findE(id), (_) => Effect.orDie(decode(_)));
75
+ }
76
+ const saveAllE = (a) => Effect
77
+ .flatMapOption(Effect
78
+ .sync(() => toNonEmptyArray([...a])), (a) => Effect.gen(function* () {
79
+ const { get, set } = yield* cms;
80
+ const items = a.map((_) => mapToPersistenceModel(_, get));
81
+ const ret = yield* store.batchSet(items);
82
+ ret.forEach((_) => set(_.id, _._etag));
83
+ }))
84
+ .pipe(Effect.asVoid);
85
+ const saveAll = (a) => encodeMany(Array.fromIterable(a))
86
+ .pipe(Effect.orDie, Effect.andThen(saveAllE));
87
+ const saveAndPublish = (items, events = []) => {
88
+ return Effect
89
+ .suspend(() => {
90
+ const it = Chunk.fromIterable(items);
91
+ return saveAll(it)
92
+ .pipe(Effect.andThen(Effect.sync(() => toNonEmptyArray([...events]))),
93
+ // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
94
+ (_) => Effect.flatMapOption(_, pub), Effect.andThen(changeFeed.publish([Chunk.toArray(it), "save"])), Effect.asVoid);
95
+ })
96
+ .pipe(Effect.withSpan("saveAndPublish", { captureStackTrace: false }));
97
+ };
98
+ function removeAndPublish(a, events = []) {
99
+ return Effect.gen(function* () {
100
+ const { get, set } = yield* cms;
101
+ const it = [...a];
102
+ const items = yield* encodeMany(it).pipe(Effect.orDie);
103
+ // TODO: we should have a batchRemove on store so the adapter can actually batch...
104
+ for (const e of items) {
105
+ yield* store.remove(mapToPersistenceModel(e, get));
106
+ set(e.id, undefined);
107
+ }
108
+ yield* Effect
109
+ .sync(() => toNonEmptyArray([...events]))
110
+ // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
111
+ .pipe((_) => Effect.flatMapOption(_, pub));
112
+ yield* changeFeed.publish([it, "remove"]);
113
+ });
114
+ }
115
+ const parseMany = (items) => Effect
116
+ .flatMap(cms, (cm) => decodeMany(items.map((_) => mapReverse(_, cm.set)))
117
+ .pipe(Effect.orDie, Effect.withSpan("parseMany", { captureStackTrace: false })));
118
+ const parseMany2 = (items, schema) => Effect
119
+ .flatMap(cms, (cm) => S
120
+ .decode(S.Array(schema))(items.map((_) => mapReverse(_, cm.set)))
121
+ .pipe(Effect.orDie, Effect.withSpan("parseMany2", { captureStackTrace: false })));
122
+ const filter = (args) => store
123
+ .filter(
124
+ // always enforce id and _etag because they are system fields, required for etag tracking etc
125
+ {
126
+ ...args,
127
+ select: args.select
128
+ ? dedupe([...args.select, "id", "_etag"])
129
+ : undefined
130
+ })
131
+ .pipe(Effect.tap((items) => Effect.map(cms, ({ set }) => items.forEach((_) => set(_.id, _._etag)))));
132
+ // TODO: For raw we should use S.from, and drop the R...
133
+ const query = ((q) => {
134
+ const a = Q.toFilter(q);
135
+ const eff = a.mode === "project"
136
+ ? filter(a)
137
+ // TODO: mapFrom but need to support per field and dependencies
138
+ .pipe(Effect.andThen(flow(S.decode(S.Array(a.schema ?? schema)), provideRctx)))
139
+ : a.mode === "collect"
140
+ ? filter(a)
141
+ // TODO: mapFrom but need to support per field and dependencies
142
+ .pipe(Effect.flatMap(flow(S.decode(S.Array(a.schema)), Effect.map(Array.getSomes), provideRctx)))
143
+ : Effect.flatMap(filter(a), (_) => Unify.unify(a.schema
144
+ // TODO: partial may not match?
145
+ ? parseMany2(_, a.schema)
146
+ : parseMany(_)));
147
+ return pipe(a.ttype === "one"
148
+ ? Effect.andThen(eff, flow(Array.head, Effect.mapError(() => new NotFoundError({ id: "query", /* TODO */ type: name }))))
149
+ : a.ttype === "count"
150
+ ? Effect
151
+ .andThen(eff, (_) => NonNegativeInt(_.length))
152
+ .pipe(Effect.catchTag("ParseError", (e) => Effect.die(e)))
153
+ : eff, Effect.withSpan("Repository.query [effect-app/infra]", {
154
+ captureStackTrace: false,
155
+ attributes: {
156
+ "repository.model_name": name,
157
+ query: { ...a, schema: a.schema ? "__SCHEMA__" : a.schema, filter: a.filter }
158
+ }
159
+ }));
160
+ });
161
+ const r = {
162
+ changeFeed,
163
+ itemType: name,
164
+ idKey,
165
+ find,
166
+ all,
167
+ saveAndPublish,
168
+ removeAndPublish,
169
+ query(q) {
170
+ // eslint-disable-next-line prefer-rest-params
171
+ return query(typeof q === "function" ? Pipeable.pipeArguments(Q.make(), arguments) : q);
172
+ },
173
+ /**
174
+ * @internal
175
+ */
176
+ mapped: (schema) => {
177
+ const dec = S.decode(schema);
178
+ const encMany = S.encode(S.Array(schema));
179
+ const decMany = S.decode(S.Array(schema));
180
+ return {
181
+ all: allE.pipe(Effect.flatMap(decMany), Effect.map((_) => _)),
182
+ find: (id) => flatMapOption(findE(id), dec),
183
+ // query: (q: any) => {
184
+ // const a = Q.toFilter(q)
185
+ // return filter(a)
186
+ // .pipe(
187
+ // Effect.flatMap(decMany),
188
+ // Effect.map((_) => _ as any[]),
189
+ // Effect.withSpan("Repository.mapped.query [effect-app/infra]", {
190
+ // captureStackTrace: false,
191
+ // attributes: {
192
+ // "repository.model_name": name,
193
+ // query: { ...a, schema: a.schema ? "__SCHEMA__" : a.schema, filter: a.filter.build() }
194
+ // }
195
+ // })
196
+ // )
197
+ // },
198
+ save: (...xes) => Effect.flatMap(encMany(xes), (_) => saveAllE(_)).pipe(Effect.withSpan("mapped.save", { captureStackTrace: false }))
199
+ };
200
+ }
201
+ };
202
+ return r;
203
+ })
204
+ .pipe(Effect
205
+ // .withSpan("Repository.make [effect-app/infra]", { attributes: { "repository.model_name": name } })
206
+ .withLogSpan("Repository.make: " + name));
207
+ }
208
+ return {
209
+ make,
210
+ Q: Q.make()
211
+ };
212
+ };
213
+ }
214
+ const pluralize = (s) => s.endsWith("s")
215
+ ? s + "es"
216
+ : s.endsWith("y")
217
+ ? s.substring(0, s.length - 1) + "ies"
218
+ : s + "s";
219
+ export function makeStore() {
220
+ return (name, schema, mapTo) => {
221
+ function encodeToEncoded() {
222
+ const getEtag = () => undefined;
223
+ return (t) => S.encode(schema)(t).pipe(Effect.orDie, Effect.map((_) => mapToPersistenceModel(_, getEtag)));
224
+ }
225
+ function mapToPersistenceModel(e, getEtag) {
226
+ return mapTo(e, getEtag(e.id));
227
+ }
228
+ function makeStore(makeInitial, config) {
229
+ return Effect.gen(function* () {
230
+ const { make } = yield* StoreMaker;
231
+ const store = yield* make(pluralize(name), makeInitial
232
+ ? makeInitial
233
+ .pipe(Effect.flatMap(Effect.forEach(encodeToEncoded())), setupRequestContextFromCurrent("Repository.makeInitial [effect-app/infra]", {
234
+ attributes: { "repository.model_name": name }
235
+ }))
236
+ : undefined, {
237
+ ...config,
238
+ partitionValue: config?.partitionValue
239
+ ?? ((_) => "primary") /*(isIntegrationEvent(r) ? r.companyId : r.id*/
240
+ });
241
+ return store;
242
+ });
243
+ }
244
+ return makeStore;
245
+ };
246
+ }
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9pbnRlcm5hbC9pbnRlcm5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2xELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRTdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFFckUsT0FBTyxLQUFLLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUduQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUVuRDs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0I7SUFHOUIsT0FBTyxDQU9MLElBQWMsRUFDZCxNQUErQixFQUMvQixPQUFpQyxFQUNqQyxLQUE4RSxFQUM5RSxLQUFZLEVBQ1osRUFBRTtRQUVGLFNBQVMscUJBQXFCLENBQzVCLENBQVUsRUFDVixPQUEyQztZQUUzQyxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxF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
@@ -1,189 +1,5 @@
1
- import type { NonEmptyReadonlyArray, Option, ParseResult, S } from "effect-app";
2
- import { Context, Effect, Layer } from "effect-app";
3
- import type { InvalidStateError, NotFoundError, OptimisticConcurrencyException } from "effect-app/client";
4
- import type { FixEnv, PureEnv } from "effect-app/Pure";
5
- import type { NonNegativeInt } from "effect-app/Schema";
6
- import type { StoreConfig, StoreMaker } from "../../Store.js";
7
- import type { FieldValues } from "../filter/types.js";
8
- import * as Q from "../query.js";
9
- import type { ExtendedRepository } from "./ext.js";
10
- import type { Repos } from "./makeRepo.js";
11
- import type { RefineTHelper, Repository } from "./service.js";
12
- /**
13
- * @deprecated
14
- */
15
- export interface RepoFunctions<T, Encoded extends {
16
- id: string;
17
- }, Evt, ItemType, IdKey extends keyof T, RSchema, RPublish, Service> {
18
- itemType: ItemType;
19
- T: T;
20
- all: Effect<readonly T[], never, RSchema | Service>;
21
- find: (id: T[IdKey]) => Effect<Option<T>, never, RSchema | Service>;
22
- removeById: (id: T[IdKey]) => Effect<void, NotFoundError<ItemType>, RSchema | Service>;
23
- saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<void, InvalidStateError | OptimisticConcurrencyException, RSchema | RPublish | Service>;
24
- removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<void, never, RSchema | Service>;
25
- save: (...items: T[]) => Effect<void, InvalidStateError | OptimisticConcurrencyException, RSchema | Service>;
26
- get: (id: T[IdKey]) => Effect<T, NotFoundError<ItemType>, RSchema | RPublish | Service>;
27
- queryAndSavePure: {
28
- <A, E2, R2, T2 extends T>(q: (q: Q.Query<Encoded>) => Q.QueryEnd<Encoded, "one">, pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E2, RSchema | RPublish | Service | Exclude<R2, {
29
- env: PureEnv<Evt, T, T2>;
30
- }>>;
31
- <A, E2, R2, T2 extends T>(q: (q: Q.Query<Encoded>) => Q.Query<Encoded> | Q.QueryWhere<Encoded> | Q.QueryEnd<Encoded, "many">, pure: Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | E2, RSchema | RPublish | Service | Exclude<R2, {
32
- env: PureEnv<Evt, readonly T[], readonly T2[]>;
33
- }>>;
34
- <A, E2, R2, T2 extends T>(q: (q: Q.Query<Encoded>) => Q.Query<Encoded> | Q.QueryWhere<Encoded> | Q.QueryEnd<Encoded, "many">, pure: Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>, batch: "batched" | number): Effect.Effect<A[], InvalidStateError | OptimisticConcurrencyException | E2, RSchema | RPublish | Service | Exclude<R2, {
35
- env: PureEnv<Evt, readonly T[], readonly T2[]>;
36
- }>>;
37
- };
38
- readonly query: {
39
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many">(q: (initial: Q.Query<Encoded>) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.ParseResult.ParseError), R | RSchema | Service>;
40
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded>(q: (initial: Q.Query<Encoded>) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, R | RSchema | Service>;
41
- };
42
- byIdAndSaveWithPure: {
43
- <R, A, E, S2 extends T>(id: T[IdKey], pure: Effect<A, E, FixEnv<R, Evt, T, S2>>): Effect<A, InvalidStateError | OptimisticConcurrencyException | E | NotFoundError<ItemType>, RSchema | RPublish | Service | Exclude<R, {
44
- env: PureEnv<Evt, T, S2>;
45
- }>>;
46
- };
47
- saveManyWithPure: {
48
- <R, A, E, S1 extends T, S2 extends T>(items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | E, RSchema | RPublish | Service | Exclude<R, {
49
- env: PureEnv<Evt, readonly S1[], readonly S2[]>;
50
- }>>;
51
- <R, A, E, S1 extends T, S2 extends T>(items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>, batch: "batched" | number): Effect.Effect<A[], InvalidStateError | OptimisticConcurrencyException | E, RSchema | RPublish | Service | Exclude<R, {
52
- env: PureEnv<Evt, readonly S1[], readonly S2[]>;
53
- }>>;
54
- };
55
- /** @experimental */
56
- mapped: MM<Service, Encoded>;
57
- use: <X>(body: (_: Service) => X) => X extends Effect<infer A, infer E, infer R> ? Effect<A, E, R | Service> : Effect<X, never, Service>;
58
- }
59
- /** @deprecated use makeRepo/extendRepo */
60
- export declare class RepositoryBase<T, Encoded extends {
61
- id: string;
62
- }, Evt, ItemType extends string, Ext, IdKey extends keyof T, RSchema, RPublish> implements ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish> {
63
- protected readonly impl: ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish> & Ext;
64
- constructor(impl: ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish> & Ext);
65
- get: (id: T[IdKey]) => Effect<T, NotFoundError<ItemType>, RSchema>;
66
- idKey: IdKey;
67
- request: (id: T[IdKey]) => Effect.Effect<T, NotFoundError<ItemType>, never>;
68
- itemType: ItemType;
69
- saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<void, OptimisticConcurrencyException | InvalidStateError, RSchema | RPublish>;
70
- removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<void, never, RSchema | RPublish>;
71
- find: (id: T[IdKey]) => Effect<Option<T>, never, RSchema>;
72
- all: Effect<T[], never, RSchema>;
73
- changeFeed: import("effect/PubSub").PubSub<[T[], "save" | "remove"]>;
74
- mapped: Mapped<Encoded>;
75
- query: {
76
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many">(q: (initial: Q.Query<Encoded>) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
77
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
78
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
79
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
80
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
81
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
82
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
83
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
84
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, $H = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
85
- <A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, $H = never, $I = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => $I, q10: (_: $I) => Q.QueryProjection<Encoded extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? S.NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), RSchema | R>;
86
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded>(q: (initial: Q.Query<Encoded>) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
87
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
88
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
89
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never, $C = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
90
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never, $C = never, $D = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
91
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never, $C = never, $D = never, $E = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
92
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never, $C = never, $D = never, $E = never, $F = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
93
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
94
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, $H = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
95
- <R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, $H = never, $I = never>(q1: (initial: Q.Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => $I, q10: (_: $I) => Q.QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType>): Effect.Effect<TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, RSchema | R>;
96
- };
97
- log: (evt: Evt) => import("effect-app/Pure").PureLogT<any>;
98
- removeById: (id: T[IdKey]) => Effect.Effect<void, NotFoundError<ItemType>, RSchema | RPublish>;
99
- save: (items_0: T, ...items: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError, RSchema | RPublish>;
100
- saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError, RSchema | RPublish>;
101
- queryAndSavePure: {
102
- <A, E2, R2, T2 extends T>(q: (q: Q.Query<Encoded>) => Q.QueryEnd<Encoded, "one">, pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>): Effect.Effect<A, OptimisticConcurrencyException | InvalidStateError | NotFoundError<ItemType> | E2, Exclude<R2, {
103
- env: PureEnv<Evt, T, T2>;
104
- }>>;
105
- <A, E2, R2, T2 extends T>(q: (q: Q.Query<Encoded>) => Q.Query<Encoded> | Q.QueryWhere<Encoded> | Q.QueryEnd<Encoded, "many">, pure: Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>): Effect.Effect<A, OptimisticConcurrencyException | InvalidStateError | E2, RSchema | RPublish | Exclude<R2, {
106
- env: PureEnv<Evt, readonly T[], readonly T2[]>;
107
- }>>;
108
- <A, E2, R2, T2 extends T>(q: (q: Q.Query<Encoded>) => Q.Query<Encoded> | Q.QueryWhere<Encoded> | Q.QueryEnd<Encoded, "many">, pure: Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>, batch: "batched" | number): Effect.Effect<A[], OptimisticConcurrencyException | InvalidStateError | E2, RSchema | RPublish | Exclude<R2, {
109
- env: PureEnv<Evt, readonly T[], readonly T2[]>;
110
- }>>;
111
- };
112
- saveManyWithPure: {
113
- <R, A, E, S1 extends T, S2 extends T>(items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>): Effect.Effect<A, OptimisticConcurrencyException | InvalidStateError | E, RSchema | RPublish | Exclude<R, {
114
- env: PureEnv<Evt, readonly S1[], readonly S2[]>;
115
- }>>;
116
- <R, A, E, S1 extends T, S2 extends T>(items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>, batch: "batched" | number): Effect.Effect<A[], OptimisticConcurrencyException | InvalidStateError | E, RSchema | RPublish | Exclude<R, {
117
- env: PureEnv<Evt, readonly S1[], readonly S2[]>;
118
- }>>;
119
- };
120
- byIdAndSaveWithPure: <R, A, E, S2 extends T>(id: T[IdKey], pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) => Effect<A, OptimisticConcurrencyException | InvalidStateError | NotFoundError<ItemType> | E, RSchema | RPublish | Exclude<R, {
121
- env: PureEnv<Evt, T, S2>;
122
- }>>;
123
- saveWithPure: <R, A, E, S1 extends T, S2 extends T>(item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>) => Effect.Effect<A, OptimisticConcurrencyException | InvalidStateError | E, RSchema | RPublish | Exclude<R, {
124
- env: PureEnv<Evt, S1, S2>;
125
- }>>;
126
- }
127
- export declare const RepositoryDefaultImpl2: <Service, Evt = never>() => {
128
- <ItemType extends string, RSchema, Encoded extends {
129
- id: string;
130
- }, T, IdKey extends keyof T, E = never, RInitial = never, RPublish = never, Layers extends [Layer.Layer.Any, ...Layer.Layer.Any[]] = [Layer.Layer<never, never, never>], E1 = never, R1 = never, Ext = {}>(itemType: ItemType, schema: S.Schema<T, Encoded, RSchema>, options: [Evt] extends [never] ? {
131
- dependencies?: Layers;
132
- idKey: IdKey;
133
- config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
134
- partitionValue?: (a: Encoded) => string;
135
- };
136
- jitM?: (pm: Encoded) => Encoded;
137
- options?: Effect<{
138
- makeInitial?: Effect<readonly T[], E, RInitial>;
139
- ext?: Ext;
140
- }, E1, R1>;
141
- } : {
142
- dependencies?: Layers;
143
- idKey: IdKey;
144
- jitM?: (pm: Encoded) => Encoded;
145
- config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
146
- partitionValue?: (a: Encoded) => string;
147
- };
148
- options?: Effect<{
149
- publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, RPublish>;
150
- makeInitial?: Effect<readonly T[], E, RInitial>;
151
- ext?: Ext;
152
- }, E1, R1>;
153
- }): (abstract new (impl: Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish> & Ext) => RepositoryBase<T, Encoded, Evt, ItemType, Ext, IdKey, RSchema, RPublish>) & Context.Tag<Service, Service> & RepoFunctions<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish, Service> & {
154
- Default: Layer.Layer<Service, E | E1 | Layer.Layer.Error<Layers[number]>, Exclude<R1 | StoreMaker, { [k in keyof Layers]: Layer.Layer.Success<Layers[k]>; }[number]>>;
155
- DefaultWithoutDependencies: Layer.Layer<Service, E1, R1 | StoreMaker>;
156
- } & Repos<T, Encoded, RSchema, Evt, ItemType, IdKey, RPublish>;
157
- <ItemType extends string, RSchema_1, Encoded_1 extends {
158
- id: string;
159
- }, T_1 extends {
160
- id: unknown;
161
- }, E_1 = never, RInitial_1 = never, RPublish_1 = never, Layers_1 extends [Layer.Layer.Any, ...Layer.Layer.Any[]] = [Layer.Layer<never, never, never>], E1_1 = never, R1_1 = never, Ext_1 = {}>(itemType: ItemType, schema: S.Schema<T_1, Encoded_1, RSchema_1>, options: [Evt] extends [never] ? {
162
- dependencies?: Layers_1;
163
- config?: Omit<StoreConfig<Encoded_1>, "partitionValue"> & {
164
- partitionValue?: (a: Encoded_1) => string;
165
- };
166
- jitM?: (pm: Encoded_1) => Encoded_1;
167
- options?: Effect<{
168
- makeInitial?: Effect<readonly T_1[], E_1, RInitial_1>;
169
- ext?: Ext_1;
170
- }, E1_1, R1_1>;
171
- } : {
172
- dependencies?: Layers_1;
173
- jitM?: (pm: Encoded_1) => Encoded_1;
174
- config?: Omit<StoreConfig<Encoded_1>, "partitionValue"> & {
175
- partitionValue?: (a: Encoded_1) => string;
176
- };
177
- options?: Effect<{
178
- publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, RPublish_1>;
179
- makeInitial?: Effect<readonly T_1[], E_1, RInitial_1>;
180
- ext?: Ext_1;
181
- }, E1_1, R1_1>;
182
- }): (abstract new (impl: Repository<T_1, Encoded_1, Evt, ItemType, "id", RSchema_1, RPublish_1> & Ext_1) => RepositoryBase<T_1, Encoded_1, Evt, ItemType, Ext_1, "id", RSchema_1, RPublish_1>) & Context.Tag<Service, Service> & RepoFunctions<T_1, Encoded_1, Evt, ItemType, "id", RSchema_1, RPublish_1, Service> & {
183
- Default: Layer.Layer<Service, E_1 | E1_1 | Layer.Layer.Error<Layers_1[number]>, Exclude<R1_1 | StoreMaker, { [k in keyof Layers_1]: Layer.Layer.Success<Layers_1[k]>; }[number]>>;
184
- DefaultWithoutDependencies: Layer.Layer<Service, E1_1, R1_1 | StoreMaker>;
185
- } & Repos<T_1, Encoded_1, RSchema_1, Evt, ItemType, "id", RPublish_1>;
186
- };
1
+ import type { Effect, Option, ParseResult, S } from "effect-app";
2
+ import type { OptimisticConcurrencyException } from "effect-app/client";
187
3
  export interface Mapped1<A, IdKey extends keyof A, R> {
188
4
  all: Effect<A[], ParseResult.ParseError, R>;
189
5
  save: (...xes: readonly A[]) => Effect<void, OptimisticConcurrencyException | ParseResult.ParseError, R>;
@@ -1 +1 @@
1
- {"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/legacy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/legacy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AAEvE,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,EAAE,CAAC;IAClD,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IAC3C,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,8BAA8B,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IACxG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;CACrE;AAGD,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;CAC5C;AAED,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IACpD,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAEpF,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IACtD,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAEzG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CACvF"}