@effect-app/infra 0.43.1 → 0.44.1

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 (41) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/_cjs/api/codec.cjs +3 -11
  3. package/_cjs/api/codec.cjs.map +1 -1
  4. package/_cjs/services/RepositoryBase.cjs +201 -0
  5. package/_cjs/services/RepositoryBase.cjs.map +1 -0
  6. package/_cjs/services/Store/Cosmos.cjs +1 -1
  7. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  8. package/_cjs/services/Store/Disk.cjs +1 -1
  9. package/_cjs/services/Store/Disk.cjs.map +1 -1
  10. package/_cjs/services/Store/Memory.cjs +2 -1
  11. package/_cjs/services/Store/Memory.cjs.map +1 -1
  12. package/_cjs/services/Store/Redis.cjs +2 -2
  13. package/_cjs/services/Store/Redis.cjs.map +1 -1
  14. package/_src/api/codec.ts +3 -15
  15. package/_src/services/RepositoryBase.ts +366 -0
  16. package/_src/services/Store/Cosmos.ts +3 -3
  17. package/_src/services/Store/Disk.ts +8 -8
  18. package/_src/services/Store/Memory.ts +7 -6
  19. package/_src/services/Store/Redis.ts +4 -4
  20. package/_src/services/Store/service.ts +4 -4
  21. package/dist/api/codec.d.ts +2 -3
  22. package/dist/api/codec.d.ts.map +1 -1
  23. package/dist/api/codec.js +4 -12
  24. package/dist/services/RepositoryBase.d.ts +240 -0
  25. package/dist/services/RepositoryBase.d.ts.map +1 -0
  26. package/dist/services/RepositoryBase.js +175 -0
  27. package/dist/services/Store/Cosmos.d.ts +1 -1
  28. package/dist/services/Store/Cosmos.d.ts.map +1 -1
  29. package/dist/services/Store/Cosmos.js +2 -2
  30. package/dist/services/Store/Disk.d.ts +1 -1
  31. package/dist/services/Store/Disk.d.ts.map +1 -1
  32. package/dist/services/Store/Disk.js +3 -3
  33. package/dist/services/Store/Memory.d.ts +2 -2
  34. package/dist/services/Store/Memory.d.ts.map +1 -1
  35. package/dist/services/Store/Memory.js +3 -2
  36. package/dist/services/Store/Redis.d.ts +1 -1
  37. package/dist/services/Store/Redis.d.ts.map +1 -1
  38. package/dist/services/Store/Redis.js +3 -3
  39. package/dist/services/Store/service.d.ts +1 -1
  40. package/dist/services/Store/service.d.ts.map +1 -1
  41. package/package.json +15 -5
@@ -0,0 +1,240 @@
1
+ import { Effect } from "@effect/io/Effect";
2
+ import { Tag } from "@effect/data/Context";
3
+ import { NonEmptyReadonlyArray } from "@effect/data/ReadonlyArray";
4
+ import { Layer } from "@effect/io/Layer";
5
+ import type { ParserEnv } from "@effect-app/schema/custom/Parser";
6
+ import type { Repository } from "./Repository.js";
7
+ import type { RequestContextContainer } from "./RequestContextContainer.js";
8
+ import { ContextMap, StoreMaker } from "./Store.js";
9
+ import type { Filter, StoreConfig, Where } from "./Store.js";
10
+ import type { Opt } from "@effect-app/core/Option";
11
+ import type { Chunk, Schema } from "@effect-app/prelude";
12
+ import type { InvalidStateError, OptimisticConcurrencyException } from "../errors.js";
13
+ /**
14
+ * A base for creating an abstract class usable as Tag, Companion and interface to create your own implementation.
15
+ */
16
+ export declare const RepositoryBase: <Service>() => <T extends {
17
+ id: string;
18
+ }, PM extends {
19
+ id: string;
20
+ _etag: string | undefined;
21
+ }, Evt, ItemType extends string>(itemType: ItemType) => ((abstract new () => {
22
+ itemType: ItemType;
23
+ find: (id: T["id"]) => import("@effect/io/Effect").Effect<RequestContextContainer | ContextMap, never, Opt<T>>;
24
+ all: import("@effect/io/Effect").Effect<ContextMap, never, Chunk<T>>;
25
+ saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<ContextMap | RequestContextContainer, InvalidStateError | OptimisticConcurrencyException, void>;
26
+ utils: {
27
+ mapReverse: (pm: PM, setEtag: (id: string, eTag: string | undefined) => void) => unknown;
28
+ parse: (a: unknown, env?: ParserEnv | undefined) => T;
29
+ all: import("@effect/io/Effect").Effect<ContextMap, never, Chunk<PM>>;
30
+ filter: (filter: Filter<PM>, cursor?: {
31
+ limit?: number;
32
+ skip?: number;
33
+ }) => import("@effect/io/Effect").Effect<ContextMap, never, Chunk<PM>>;
34
+ };
35
+ remove: (item: T) => Effect<ContextMap, never, void>;
36
+ }) & {
37
+ where: (makeWhere: (f: {
38
+ <TFieldName extends import("../filter/types/path/eager.js").Path<PM>, A extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName>, Val>(path: TFieldName, value: (v: A) => Val): {
39
+ key: string;
40
+ t: Val extends {
41
+ t: "in" | "not-in";
42
+ v: readonly any[];
43
+ } | {
44
+ t: "eq" | "not-eq";
45
+ v: any;
46
+ } ? Val["t"] : never;
47
+ value: Val extends {
48
+ t: "in" | "not-in";
49
+ v: readonly any[];
50
+ } | {
51
+ t: "eq" | "not-eq";
52
+ v: any;
53
+ } ? Val["v"] : never;
54
+ readonly S: PM;
55
+ };
56
+ <TFieldName_1 extends import("../filter/types/path/eager.js").Path<PM>, A_1 extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName_1>>(path: TFieldName_1, value: A_1): {
57
+ key: string;
58
+ t: "eq";
59
+ value: A_1;
60
+ readonly S: PM;
61
+ };
62
+ }) => Where | readonly [Where, ...Where[]], mode?: "or" | "and") => Filter<PM>;
63
+ flatMap<R1, E1, B>(f: (a: Service) => import("@effect/io/Effect").Effect<R1, E1, B>): import("@effect/io/Effect").Effect<Service | R1, E1, B>;
64
+ map<B_1>(f: (a: Service) => B_1): import("@effect/io/Effect").Effect<Service, never, B_1>;
65
+ }) & import("@effect/data/Context").Tag<Service, Service>;
66
+ /**
67
+ * A base implementation to create a repository.
68
+ */
69
+ export declare function makeRepo<PM extends {
70
+ id: string;
71
+ _etag: string | undefined;
72
+ }, Evt = never>(): <ItemType extends string, T extends {
73
+ id: string;
74
+ }, ConstructorInput, Api, E extends {
75
+ id: string;
76
+ }>(name: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapFrom: (pm: Omit<PM, "_etag">) => E, mapTo: (e: E, etag: string | undefined) => PM) => {
77
+ make: (publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestContextContainer, never, void>, makeInitial?: import("@effect/io/Effect").Effect<never, never, readonly T[]> | undefined, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
78
+ partitionValue?: ((a: PM) => string) | undefined;
79
+ }) | undefined) => import("@effect/io/Effect").Effect<StoreMaker, never, Repository<T, PM, Evt, ItemType>>;
80
+ where: (makeWhere: (f: {
81
+ <TFieldName extends import("../filter/types/path/eager.js").Path<PM>, A extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName>, Val>(path: TFieldName, value: (v: A) => Val): {
82
+ key: string;
83
+ t: Val extends {
84
+ t: "in" | "not-in";
85
+ v: readonly any[];
86
+ } | {
87
+ t: "eq" | "not-eq";
88
+ v: any;
89
+ } ? Val["t"] : never;
90
+ value: Val extends {
91
+ t: "in" | "not-in";
92
+ v: readonly any[];
93
+ } | {
94
+ t: "eq" | "not-eq";
95
+ v: any;
96
+ } ? Val["v"] : never;
97
+ readonly S: PM;
98
+ };
99
+ <TFieldName_1 extends import("../filter/types/path/eager.js").Path<PM>, A_1 extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName_1>>(path: TFieldName_1, value: A_1): {
100
+ key: string;
101
+ t: "eq";
102
+ value: A_1;
103
+ readonly S: PM;
104
+ };
105
+ }) => Where | readonly [Where, ...Where[]], mode?: "and" | "or" | undefined) => Filter<PM>;
106
+ };
107
+ /**
108
+ * @tsplus fluent Repository removeById
109
+ * @tsplus location "@effect-app/infra/services/RepositoryBase"
110
+ */
111
+ export declare function removeById<T extends {
112
+ id: string;
113
+ }, PM extends {
114
+ id: string;
115
+ }, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, id: T["id"]): import("@effect/io/Effect").Effect<RequestContextContainer | ContextMap, import("../errors.js").NotFoundError<ItemType>, void>;
116
+ export declare function makeWhere<PM extends {
117
+ id: string;
118
+ _etag: string | undefined;
119
+ }>(): (makeWhere: (f: {
120
+ <TFieldName extends import("../filter/types/path/eager.js").Path<PM>, A extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName>, Val>(path: TFieldName, value: (v: A) => Val): {
121
+ key: string;
122
+ t: Val extends {
123
+ t: "in" | "not-in";
124
+ v: readonly any[];
125
+ } | {
126
+ t: "eq" | "not-eq";
127
+ v: any;
128
+ } ? Val["t"] : never;
129
+ value: Val extends {
130
+ t: "in" | "not-in";
131
+ v: readonly any[];
132
+ } | {
133
+ t: "eq" | "not-eq";
134
+ v: any;
135
+ } ? Val["v"] : never;
136
+ readonly S: PM;
137
+ };
138
+ <TFieldName_1 extends import("../filter/types/path/eager.js").Path<PM>, A_1 extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName_1>>(path: TFieldName_1, value: A_1): {
139
+ key: string;
140
+ t: "eq";
141
+ value: A_1;
142
+ readonly S: PM;
143
+ };
144
+ }) => Where | readonly [Where, ...Where[]], mode?: "or" | "and") => Filter<PM>;
145
+ export declare function makeStore<PM extends {
146
+ id: string;
147
+ _etag: string | undefined;
148
+ }>(): <ItemType extends string, T extends {
149
+ id: string;
150
+ }, ConstructorInput, Api, E extends {
151
+ id: string;
152
+ }>(name: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapTo: (e: E, etag: string | undefined) => PM) => (makeInitial?: import("@effect/io/Effect").Effect<never, never, readonly T[]> | undefined, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
153
+ partitionValue?: ((a: PM) => string) | undefined;
154
+ }) | undefined) => import("@effect/io/Effect").Effect<StoreMaker, never, import("./Store.js").Store<PM, string>>;
155
+ export declare const RepositoryBaseImpl: <Service>() => <PM extends {
156
+ id: string;
157
+ _etag: string | undefined;
158
+ }, Evt = never>() => <ItemType extends string, T extends {
159
+ id: string;
160
+ }, ConstructorInput, Api, E extends {
161
+ id: string;
162
+ }>(itemType: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapFrom: (pm: Omit<PM, "_etag">) => E, mapTo: (e: E, etag: string | undefined) => PM) => (abstract new () => Repository<T, PM, Evt, ItemType>) & import("@effect/data/Context").Tag<Service, Service> & {
163
+ make(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestContextContainer, never, void>, makeInitial?: import("@effect/io/Effect").Effect<never, never, readonly T[]> | undefined, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
164
+ partitionValue?: ((a: PM) => string) | undefined;
165
+ }) | undefined): import("@effect/io/Effect").Effect<StoreMaker, never, Repository<T, PM, Evt, ItemType>>;
166
+ where: (makeWhere: (f: {
167
+ <TFieldName extends import("../filter/types/path/eager.js").Path<PM>, A extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName>, Val>(path: TFieldName, value: (v: A) => Val): {
168
+ key: string;
169
+ t: Val extends {
170
+ t: "in" | "not-in";
171
+ v: readonly any[];
172
+ } | {
173
+ t: "eq" | "not-eq";
174
+ v: any;
175
+ } ? Val["t"] : never;
176
+ value: Val extends {
177
+ t: "in" | "not-in";
178
+ v: readonly any[];
179
+ } | {
180
+ t: "eq" | "not-eq";
181
+ v: any;
182
+ } ? Val["v"] : never;
183
+ readonly S: PM;
184
+ };
185
+ <TFieldName_1 extends import("../filter/types/path/eager.js").Path<PM>, A_1 extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName_1>>(path: TFieldName_1, value: A_1): {
186
+ key: string;
187
+ t: "eq";
188
+ value: A_1;
189
+ readonly S: PM;
190
+ };
191
+ }) => Where | readonly [Where, ...Where[]], mode?: "or" | "and") => Filter<PM>;
192
+ flatMap: <R1, E1, B>(f: (a: Service) => import("@effect/io/Effect").Effect<R1, E1, B>) => import("@effect/io/Effect").Effect<Service | R1, E1, B>;
193
+ map: <B_1>(f: (a: Service) => B_1) => import("@effect/io/Effect").Effect<Service, never, B_1>;
194
+ };
195
+ export declare const RepositoryDefaultImpl: <Service>() => <PM extends {
196
+ id: string;
197
+ _etag: string | undefined;
198
+ }, Evt = never>() => <ItemType extends string, T extends {
199
+ id: string;
200
+ }, ConstructorInput, Api, E extends {
201
+ id: string;
202
+ }>(itemType: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapFrom: (pm: Omit<PM, "_etag">) => E, mapTo: (e: E, etag: string | undefined) => PM) => import("@effect/data/Context").Tag<Service, Service> & {
203
+ new (impl: Repository<T, PM, Evt, ItemType>): Repository<T, PM, Evt, ItemType>;
204
+ make(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestContextContainer, never, void>, makeInitial?: import("@effect/io/Effect").Effect<never, never, readonly T[]> | undefined, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
205
+ partitionValue?: ((a: PM) => string) | undefined;
206
+ }) | undefined): import("@effect/io/Effect").Effect<StoreMaker, never, Repository<T, PM, Evt, ItemType>>;
207
+ toLayer(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestContextContainer, never, void>, makeInitial?: import("@effect/io/Effect").Effect<never, never, readonly T[]> | undefined, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
208
+ partitionValue?: ((a: PM) => string) | undefined;
209
+ }) | undefined): import("@effect/io/Layer").Layer<StoreMaker, never, Service>;
210
+ where: (makeWhere: (f: {
211
+ <TFieldName extends import("../filter/types/path/eager.js").Path<PM>, A extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName>, Val>(path: TFieldName, value: (v: A) => Val): {
212
+ key: string;
213
+ t: Val extends {
214
+ t: "in" | "not-in";
215
+ v: readonly any[];
216
+ } | {
217
+ t: "eq" | "not-eq";
218
+ v: any;
219
+ } ? Val["t"] : never;
220
+ value: Val extends {
221
+ t: "in" | "not-in";
222
+ v: readonly any[];
223
+ } | {
224
+ t: "eq" | "not-eq";
225
+ v: any;
226
+ } ? Val["v"] : never;
227
+ readonly S: PM;
228
+ };
229
+ <TFieldName_1 extends import("../filter/types/path/eager.js").Path<PM>, A_1 extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName_1>>(path: TFieldName_1, value: A_1): {
230
+ key: string;
231
+ t: "eq";
232
+ value: A_1;
233
+ readonly S: PM;
234
+ };
235
+ }) => Where | readonly [Where, ...Where[]], mode?: "or" | "and") => Filter<PM>;
236
+ flatMap: <R1, E1, B>(f: (a: Service) => import("@effect/io/Effect").Effect<R1, E1, B>) => import("@effect/io/Effect").Effect<Service | R1, E1, B>;
237
+ map: <B_1>(f: (a: Service) => B_1) => import("@effect/io/Effect").Effect<Service, never, B_1>;
238
+ repo: Repository<T, PM, Evt, ItemType>;
239
+ };
240
+ //# sourceMappingURL=RepositoryBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepositoryBase.d.ts","sourceRoot":"","sources":["../../_src/services/RepositoryBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import * as tsplus_module_1 from "@effect/io/Effect";
2
+ import * as tsplus_module_2 from "@effect-app/prelude/service";
3
+ import * as tsplus_module_3 from "@effect-app/prelude/schema";
4
+ import * as tsplus_module_4 from "@effect-app/prelude/_ext/Schema.ext";
5
+ import * as tsplus_module_5 from "@effect/data/Chunk";
6
+ import * as tsplus_module_6 from "@effect-app/prelude/_ext/misc";
7
+ import * as tsplus_module_7 from "@effect-app/core/Array";
8
+ import * as tsplus_module_8 from "@effect-app/core/Effect";
9
+ import * as tsplus_module_9 from "@effect/data/Option";
10
+ import * as tsplus_module_10 from "@effect-app/core/_ext/Iterable";
11
+ import * as tsplus_module_11 from "@effect-app/infra/services/Repository";
12
+ import * as tsplus_module_12 from "@effect-app/core/Function";
13
+ import { ContextMap, StoreMaker } from "./Store.js";
14
+ import { makeCodec } from "@effect-app/infra/api/codec";
15
+ import { makeFilters } from "@effect-app/infra/filter";
16
+ import { EParserFor } from "@effect-app/prelude/schema";
17
+ /**
18
+ * A base for creating an abstract class usable as Tag, Companion and interface to create your own implementation.
19
+ */
20
+ export const RepositoryBase = () => {
21
+ return (itemType) => {
22
+ class RepositoryBaseC {
23
+ constructor() {
24
+ this.itemType = itemType;
25
+ }
26
+ static flatMap(f) {
27
+ return tsplus_module_1.flatMap(this, f);
28
+ }
29
+ static map(f) {
30
+ return tsplus_module_1.map(this, f);
31
+ }
32
+ }
33
+ RepositoryBaseC.where = makeWhere();
34
+ return tsplus_module_2.assignTag()(RepositoryBaseC);
35
+ };
36
+ };
37
+ /**
38
+ * A base implementation to create a repository.
39
+ */
40
+ export function makeRepo() {
41
+ return (name, schema, mapFrom, mapTo) => {
42
+ const where = makeWhere();
43
+ function mapToPersistenceModel(e, getEtag) {
44
+ return mapTo(e, getEtag(e.id));
45
+ }
46
+ function mapReverse({ _etag, ...e }, setEtag) {
47
+ setEtag(e.id, _etag);
48
+ return mapFrom(e);
49
+ }
50
+ const mkStore = makeStore()(name, schema, mapTo);
51
+ function make(publishEvents, makeInitial, config) {
52
+ return tsplus_module_1.map(mkStore(makeInitial, config), store => {
53
+ const allE = tsplus_module_1.flatMap(store.all, items => tsplus_module_1.map(ContextMap, ({ set }) => tsplus_module_5.map(items, _ => mapReverse(_, set))));
54
+ const all = tsplus_module_1.flatMap(allE, _ => tsplus_module_10.ext_forEach(_, tsplus_module_4.condemnDie(EParserFor(schema))));
55
+ function findE(id) {
56
+ return tsplus_module_1.flatMap(store.find(id), items => tsplus_module_1.map(ContextMap, ({ set }) => tsplus_module_9.map(items, _ => mapReverse(_, set))));
57
+ }
58
+ function find(id) {
59
+ return tsplus_module_8.flatMapOption(findE(id), tsplus_module_4.condemnDie(EParserFor(schema)));
60
+ }
61
+ const saveAllE = (a) => tsplus_module_8.flatMapOption(tsplus_module_1.sync(() => tsplus_module_7.CollectionToNonEmptyReadonlyArray(a)), a => tsplus_module_1.flatMap(ContextMap, ({ get, set }) => {
62
+ const items = tsplus_module_7.mapRA(_ => mapToPersistenceModel(_, get))(a);
63
+ return tsplus_module_1.map(store.batchSet(items), ret => {
64
+ ret.forEach(_ => set(_.id, _._etag));
65
+ });
66
+ }));
67
+ const saveAll = (a) => saveAllE(tsplus_module_5.map(tsplus_module_7.ext_itToChunk(a), tsplus_module_3.Encoder.for(schema)));
68
+ const saveAndPublish = (items, events = []) => tsplus_module_1.zipRight(tsplus_module_8.flatMapOption(tsplus_module_1.sync(() => tsplus_module_7.CollectionToNonEmptyReadonlyArray(events))
69
+ // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
70
+ , publishEvents))(saveAll(items));
71
+ const encode = tsplus_module_3.Encoder.for(schema);
72
+ function remove(item) {
73
+ return tsplus_module_1.flatMap(ContextMap, ({ get, set }) => {
74
+ const e = encode(item);
75
+ return tsplus_module_1.map(store.remove(mapToPersistenceModel(e, get)), () => {
76
+ set(item.id, undefined);
77
+ });
78
+ });
79
+ }
80
+ const r = {
81
+ /**
82
+ * @internal
83
+ */
84
+ utils: {
85
+ mapReverse,
86
+ parse: tsplus_module_4.unsafe(tsplus_module_3.Parser.for(schema)),
87
+ filter: tsplus_module_6.flow(store.filter, _ => tsplus_module_1.tap(_, items => ContextMap.map(({ set }) => tsplus_module_5.forEach(items, _ => set(_.id, _._etag))))),
88
+ all: tsplus_module_1.tap(store.all, items => ContextMap.map(({ set }) => tsplus_module_5.forEach(items, _ => set(_.id, _._etag))))
89
+ },
90
+ itemType: name,
91
+ find,
92
+ all,
93
+ saveAndPublish,
94
+ remove
95
+ };
96
+ return r;
97
+ });
98
+ }
99
+ return {
100
+ make,
101
+ where
102
+ };
103
+ };
104
+ }
105
+ /**
106
+ * @tsplus fluent Repository removeById
107
+ */
108
+ export function removeById(self, id) {
109
+ return tsplus_module_1.flatMap(tsplus_module_11.get(self, id), _ => self.remove(_));
110
+ }
111
+ export function makeWhere() {
112
+ const f_ = makeFilters();
113
+ function makeFilter_(filter) {
114
+ return filter(f_);
115
+ }
116
+ function where(makeWhere, mode) {
117
+ return makeFilter_(f => {
118
+ const m = makeWhere ? makeWhere(f) : [];
119
+ return ({
120
+ mode,
121
+ where: (Array.isArray(m) ? m : [m])
122
+ });
123
+ });
124
+ }
125
+ return where;
126
+ }
127
+ const pluralize = (s) => s.endsWith("s")
128
+ ? s + "es"
129
+ : s.endsWith("y")
130
+ ? s.substring(0, s.length - 1) + "ies"
131
+ : s + "s";
132
+ export function makeStore() {
133
+ return (name, schema, mapTo) => {
134
+ const [_dec, encode] = makeCodec(schema);
135
+ function encodeToPM() {
136
+ const getEtag = () => undefined;
137
+ return tsplus_module_12.flow(encode, v => mapToPersistenceModel(v, getEtag));
138
+ }
139
+ function mapToPersistenceModel(e, getEtag) {
140
+ return mapTo(e, getEtag(e.id));
141
+ }
142
+ function makeStore(makeInitial, config) {
143
+ return tsplus_module_1.flatMap(StoreMaker, ({ make }) => tsplus_module_1.map(make(pluralize(name), makeInitial
144
+ ? tsplus_module_1.map(makeInitial, _ => _.map(encodeToPM()))
145
+ : undefined, {
146
+ ...config,
147
+ partitionValue: config?.partitionValue ?? (_ => "primary") /*(isIntegrationEvent(r) ? r.companyId : r.id*/
148
+ }), store => store));
149
+ }
150
+ return makeStore;
151
+ };
152
+ }
153
+ export const RepositoryBaseImpl = () => {
154
+ return () => (itemType, schema, mapFrom, mapTo) => {
155
+ const mkRepo = makeRepo()(itemType, schema, mapFrom, mapTo);
156
+ class Cls extends RepositoryBase()(itemType) {
157
+ }
158
+ Cls.make = mkRepo.make;
159
+ return Cls;
160
+ };
161
+ };
162
+ export const RepositoryDefaultImpl = () => {
163
+ return () => (itemType, schema, mapFrom, mapTo) => {
164
+ return class extends RepositoryBaseImpl()()(itemType, schema, mapFrom, mapTo) {
165
+ static toLayer(publishEvents, makeInitial, config) {
166
+ return tsplus_module_1.toLayer(tsplus_module_1.map(this.make(publishEvents, makeInitial, config), impl => new this(impl)), this);
167
+ }
168
+ constructor(impl) {
169
+ super();
170
+ Object.assign(this, impl);
171
+ }
172
+ };
173
+ };
174
+ };
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL1JlcG9zaXRvcnlCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBS25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBR3ZEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQVksRUFBRTtJQUMxQyxPQUFPLENBQ0wsUUFBa0IsRUFDbEIsRUFBRTtRQUNGLE1BQWUsZUFBZTtZQUE5QjtnQkFDRSxhQUFRLEdBQWEsUUFBUSxDQUFBO1lBd0IvQixDQUFDO1lBTkMsTUFBTSxDQUFDLE9BQU8sQ0FBWSxDQUFvQztnQkFDNUQsT0FBTyx3QkFBZSxJQUF3QyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3BFLENBQUM7WUFDRCxNQUFNLENBQUMsR0FBRyxDQUFJLENBQW9CO2dCQUNoQyxPQUFPLG9CQUFXLElBQXdDLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDaEUsQ0FBQzs7UUFOTSxxQkFBSyxHQUFHLFNBQVMsRUFBTSxBQUFsQixDQUFrQjtRQVFoQyxPQUFPLGdCQUFBLFNBQVMsRUFBVyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQzlDLENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFFBQVE7SUFJdEIsT0FBTyxDQU9MLElBQWMsRUFDZCxNQUEyRCxFQUMzRCxPQUFxQyxFQUNyQyxLQUE2QyxFQUM3QyxFQUFFO1FBQ0YsTUFBTSxLQUFLLEdBQUcsU0FBUyxFQUFNLENBQUE7UUFFN0IsU0FBUyxx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
@@ -5,7 +5,7 @@ import * as CosmosClient from "@effect-app/infra-adapters/cosmos-client";
5
5
  import type { FilterJoinSelect, JoinFindFilter, LegacyFilter, PersistenceModelType, StorageConfig, Store, StoreConfig, StoreWhereFilter, SupportedValues } from "./service.js";
6
6
  import { StoreMaker } from "./service.js";
7
7
  export declare function makeCosmosStore({ prefix }: StorageConfig): import("@effect/io/Effect").Effect<CosmosClient.CosmosClient, never, {
8
- make: <Id extends string, PM extends PersistenceModelType<Id>, Id2 extends Id>(name: string, seed?: import("@effect/io/Effect").Effect<never, never, ReadonlyMap<Id2, PM>> | undefined, config?: StoreConfig<PM> | undefined) => import("@effect/io/Effect").Effect<never, never, Store<PM, Id>>;
8
+ make: <Id extends string, PM extends PersistenceModelType<Id>>(name: string, seed?: import("@effect/io/Effect").Effect<never, never, Iterable<PM>> | undefined, config?: StoreConfig<PM> | undefined) => import("@effect/io/Effect").Effect<never, never, Store<PM, Id>>;
9
9
  }>;
10
10
  /**
11
11
  * @deprecated: should build Select into Where query
@@ -1 +1 @@
1
- {"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Cosmos.ts"],"names":[],"mappings":";;;AAEA,OAAO,KAAK,YAAY,MAAM,0CAA0C,CAAA;AAMxE,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa;yFAK3C,MAAM;GA+UnB;AAuBD;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAaf;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAYf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EACvC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAyBf;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAuDf;AAQD,wBAAgB,gBAAgB,CAAC,EAAE,EACjC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAC3C,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAOf;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,0HAE5D"}
1
+ {"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Cosmos.ts"],"names":[],"mappings":";;;AAEA,OAAO,KAAK,YAAY,MAAM,0CAA0C,CAAA;AAMxE,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa;yEAK3C,MAAM;GA+UnB;AAuBD;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAaf;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAYf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EACvC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAyBf;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAuDf;AAQD,wBAAgB,gBAAgB,CAAC,EAAE,EACjC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAC3C,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAOf;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,0HAE5D"}
@@ -180,7 +180,7 @@ export function makeCosmosStore({ prefix }) {
180
180
  console.log("Creating mock data for " + name);
181
181
  if (seed) {
182
182
  const m = yield* $(seed);
183
- yield* $(tsplus_module_8.flatMapOption(tsplus_module_1.sync(() => tsplus_module_3.toNonEmptyArray([...m.values()])), a => tsplus_module_1.delay(tsplus_module_1.orDie(s
183
+ yield* $(tsplus_module_8.flatMapOption(tsplus_module_1.sync(() => tsplus_module_3.CollectionToNonEmptyReadonlyArray(m)), a => tsplus_module_1.delay(tsplus_module_1.orDie(s
184
184
  .bulkSet(a)), tsplus_module_3.millis_(1100))));
185
185
  }
186
186
  // Mark as imported
@@ -322,4 +322,4 @@ class CosmosDbOperationError {
322
322
  export function CosmosStoreLive(config) {
323
323
  return tsplus_module_1.toLayer(tsplus_module_1.flatMap(tsplus_module_1.config(config), makeCosmosStore), StoreMaker);
324
324
  }
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9TdG9yZS9Db3Ntb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQ0FBMEMsQ0FBQTtBQUV4RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUVoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFjaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV6QyxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBaUI7SUFDdkQsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xELE9BQU87WUFDTCxJQUFJLEVBQUUsQ0FDSixJQUFZLEVBQ1osSUFBaUQsRUFDakQsTUFBd0IsRUFDeEIsRUFBRSxDQUNGLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE1BQU0sV0FBVyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFBO2dCQUN0QyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ04sd0JBQWUsR0FBRyxFQUFFLENBQ2xCLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7b0JBQzlCLEVBQUUsRUFBRSxXQUFXO29CQUNmLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVTt3QkFDakMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUU7d0JBQ25DLENBQUMsQ0FBQyxTQUFTO2lCQUNkLENBQUMsQ0FDSCxDQUNGLENBQUE7Z0JBQ0QsTUFBTSxTQUFTLEdBQUcs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
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9TdG9yZS9Db3Ntb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQ0FBMEMsQ0FBQTtBQUV4RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUVoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFjaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV6QyxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBaUI7SUFDdkQsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xELE9BQU87WUFDTCxJQUFJLEVBQUUsQ0FDSixJQUFZLEVBQ1osSUFBeUMsRUFDekMsTUFBd0IsRUFDeEIsRUFBRSxDQUNGLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE1BQU0sV0FBVyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFBO2dCQUN0QyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ04sd0JBQWUsR0FBRyxFQUFFLENBQ2xCLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7b0JBQzlCLEVBQUUsRUFBRSxXQUFXO29CQUNmLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVTt3QkFDakMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUU7d0JBQ25DLENBQUMsQ0FBQyxTQUFTO2lCQUNkLENBQUMsQ0FDSCxDQUNGLENBQUE7Z0JBQ0QsTUFBTSxTQUFTLEdBQUcs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
@@ -7,7 +7,7 @@ import { StoreMaker } from "./service.js";
7
7
  * and should therefore be as fast as the Memory Store.
8
8
  */
9
9
  export declare function makeDiskStore({ prefix }: StorageConfig, dir: string): import("@effect/io/Effect").Effect<never, never, {
10
- make: <Id extends string, Id2 extends Id, PM extends PersistenceModelType<Id>>(name: string, seed?: import("@effect/io/Effect").Effect<never, never, ReadonlyMap<Id2, PM>> | undefined, config?: StoreConfig<PM> | undefined) => import("@effect/io/Effect").Effect<never, never, Store<PM, Id>>;
10
+ make: <Id extends string, PM extends PersistenceModelType<Id>>(name: string, seed?: import("@effect/io/Effect").Effect<never, never, Iterable<PM>> | undefined, config?: StoreConfig<PM> | undefined) => import("@effect/io/Effect").Effect<never, never, Store<PM, Id>>;
11
11
  }>;
12
12
  export declare function DiskStoreLive(config: Config<StorageConfig>, dir: string): import("@effect/io/Layer").Layer<never, import("@effect/io/Config/Error").ConfigError, StoreMaker>;
13
13
  //# sourceMappingURL=Disk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Disk.ts"],"names":[],"mappings":";;AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAuDzC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;yFAOtD,MAAM;GAyCnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,sGAIvE"}
1
+ {"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Disk.ts"],"names":[],"mappings":";;AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAuDzC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;yEAOtD,MAAM;GAyCnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,sGAIvE"}
@@ -15,8 +15,8 @@ function makeDiskStoreInt(prefix, namespace, dir, name, seed) {
15
15
  setRaw: (v) => JSON.stringify([...v], undefined, 2)["|>"](json => fu.writeTextFile(file, json))
16
16
  };
17
17
  const store = yield* $(makeMemoryStoreInt(name, !fs.existsSync(file)
18
- ? seed ?? tsplus_module_1.sync(() => new Map())
19
- : tsplus_module_1.map(fsStore.get, x => new Map(x.map(x => [x.id, x])))));
18
+ ? seed
19
+ : fsStore.get));
20
20
  yield* $(tsplus_module_1.flatMap(store.all, fsStore.setRaw));
21
21
  const sem = tsplus_module_1.unsafeMakeSemaphore(1);
22
22
  const withPermit = sem.withPermits(1);
@@ -77,4 +77,4 @@ export function makeDiskStore({ prefix }, dir) {
77
77
  export function DiskStoreLive(config, dir) {
78
78
  return tsplus_module_1.toLayer(tsplus_module_1.flatMap(tsplus_module_1.config(config), _ => makeDiskStore(_, dir)), StoreMaker);
79
79
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvRGlzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFFbkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpDLFNBQVMsZ0JBQWdCLENBQ3ZCLE1BQWMsRUFDZCxTQUFpQixFQUNqQixHQUFXLEVBQ1gsSUFBWSxFQUNaLElBQWlEO0lBRWpELE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUE7UUFDbkcsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLHdCQUFFLG9CQUFBLEVBQUU7aUJBQ0osWUFBWSxDQUFDLElBQUksQ0FBQyxFQUNkLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUMxQjtZQUNSLE1BQU0sRUFBRSxDQUFDLENBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDOUcsQ0FBQTtR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
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvRGlzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFFbkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpDLFNBQVMsZ0JBQWdCLENBQ3ZCLE1BQWMsRUFDZCxTQUFpQixFQUNqQixHQUFXLEVBQ1gsSUFBWSxFQUNaLElBQXlDO0lBRXpDLE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUE7UUFDbkcsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLHdCQUFFLG9CQUFBLEVBQUU7aUJBQ0osWUFBWSxDQUFDLElBQUksQ0FBQyxFQUNkLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUMxQjtZQUNSLE1BQU0sRUFBRSxDQUFDLENBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDOUcsQ0FBQTtR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