@effect-app/infra 2.10.0 → 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.
@@ -4,254 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.makeRepo = void 0;
7
- exports.makeRepoInternal = makeRepoInternal;
8
- exports.makeStore = makeStore;
9
7
  var _effectApp = require("effect-app");
10
- var _Array = require("effect-app/Array");
11
- var _client = require("effect-app/client");
12
- var _Effect = require("effect-app/Effect");
13
- var _Schema = require("effect-app/Schema");
14
- var _setupRequest = require("../../api/setupRequest.cjs");
15
- var _Store = require("../../Store.cjs");
16
- var _ContextMapContainer = require("../../Store/ContextMapContainer.cjs");
17
- var Q = _interopRequireWildcard(require("../query.cjs"));
18
8
  var _ext = require("./ext.cjs");
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
9
+ var _internal = require("./internal/internal.cjs");
21
10
  /* eslint-disable @typescript-eslint/no-empty-object-type */
22
11
  /* eslint-disable @typescript-eslint/no-unsafe-return */
23
12
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
24
13
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
25
14
  /* eslint-disable @typescript-eslint/no-explicit-any */
26
15
 
27
- const dedupe = _effectApp.Array.dedupeWith(_effectApp.Equivalence.string);
28
- /**
29
- * A base implementation to create a repository.
30
- */
31
- function makeRepoInternal() {
32
- return (name, schema, mapFrom, mapTo, idKey) => {
33
- function mapToPersistenceModel(e, getEtag) {
34
- return mapTo(e, getEtag(e.id));
35
- }
36
- function mapReverse({
37
- _etag,
38
- ...e
39
- }, setEtag) {
40
- setEtag(e.id, _etag);
41
- return mapFrom(e);
42
- }
43
- const mkStore = makeStore()(name, schema, mapTo);
44
- function make(args) {
45
- return _effectApp.Effect.gen(function* () {
46
- const rctx = args.schemaContext ?? _effectApp.Context.empty();
47
- const provideRctx = _effectApp.Effect.provide(rctx);
48
- const encodeMany = (0, _effectApp.flow)(_effectApp.S.encode(_effectApp.S.Array(schema)), provideRctx, _effectApp.Effect.withSpan("encodeMany", {
49
- captureStackTrace: false
50
- }));
51
- const decode = (0, _effectApp.flow)(_effectApp.S.decode(schema), provideRctx);
52
- const decodeMany = (0, _effectApp.flow)(_effectApp.S.decode(_effectApp.S.Array(schema)), provideRctx, _effectApp.Effect.withSpan("decodeMany", {
53
- captureStackTrace: false
54
- }));
55
- const store = yield* mkStore(args.makeInitial, args.config);
56
- const cms = _effectApp.Effect.andThen(_ContextMapContainer.getContextMap.pipe(_effectApp.Effect.orDie), _ => ({
57
- get: id => _.get(`${name}.${id}`),
58
- set: (id, etag) => _.set(`${name}.${id}`, etag)
59
- }));
60
- const pub = "publishEvents" in args ? args.publishEvents : () => _effectApp.Effect.void;
61
- const changeFeed = yield* _effectApp.PubSub.unbounded();
62
- const allE = cms.pipe(_effectApp.Effect.flatMap(cm => _effectApp.Effect.map(store.all, _ => _.map(_ => mapReverse(_, cm.set)))));
63
- const all = _effectApp.Effect.flatMap(allE, _ => decodeMany(_).pipe(_effectApp.Effect.orDie)).pipe(_effectApp.Effect.map(_ => _));
64
- const fieldsSchema = schema;
65
- // assumes the id field never needs a service...
66
- const i = ("fields" in fieldsSchema ? _effectApp.S.Struct(fieldsSchema["fields"]) : schema).pipe(_ => {
67
- let ast = _.ast;
68
- if (ast._tag === "Declaration") ast = ast.typeParameters[0];
69
- const s = _effectApp.S.make(ast);
70
- return ast._tag === "Union"
71
- // we need to get the TypeLiteral, incase of class it's behind a transform...
72
- ? _effectApp.S.Union(...ast.types.map(_ => _effectApp.S.make(_._tag === "Transformation" ? _.from : _).pipe(_effectApp.S.pick(idKey)))) : s.pipe(_effectApp.S.pick(idKey));
73
- });
74
- const encodeId = (0, _effectApp.flow)(_effectApp.S.encode(i), provideRctx);
75
- function findEId(id) {
76
- return _effectApp.Effect.flatMap(store.find(id), item => _effectApp.Effect.gen(function* () {
77
- const {
78
- set
79
- } = yield* cms;
80
- return item.pipe(_effectApp.Option.map(_ => mapReverse(_, set)));
81
- }));
82
- }
83
- function findE(id) {
84
- return (0, _effectApp.pipe)(encodeId({
85
- [idKey]: id
86
- }), _effectApp.Effect.orDie,
87
- // we will have idKey because the transform is undone again by the encode schema mumbo jumbo above
88
- // TODO: make reliable. (Security: isin: PrimaryKey(ISIN), idKey: "isin", does end up with "id")
89
- _effectApp.Effect.map(_ => _[idKey] ?? _.id), _effectApp.Effect.flatMap(findEId));
90
- }
91
- function find(id) {
92
- return _effectApp.Effect.flatMapOption(findE(id), _ => _effectApp.Effect.orDie(decode(_)));
93
- }
94
- const saveAllE = a => _effectApp.Effect.flatMapOption(_effectApp.Effect.sync(() => (0, _Array.toNonEmptyArray)([...a])), a => _effectApp.Effect.gen(function* () {
95
- const {
96
- get,
97
- set
98
- } = yield* cms;
99
- const items = a.map(_ => mapToPersistenceModel(_, get));
100
- const ret = yield* store.batchSet(items);
101
- ret.forEach(_ => set(_.id, _._etag));
102
- })).pipe(_effectApp.Effect.asVoid);
103
- const saveAll = a => encodeMany(_effectApp.Array.fromIterable(a)).pipe(_effectApp.Effect.orDie, _effectApp.Effect.andThen(saveAllE));
104
- const saveAndPublish = (items, events = []) => {
105
- return _effectApp.Effect.suspend(() => {
106
- const it = _effectApp.Chunk.fromIterable(items);
107
- return saveAll(it).pipe(_effectApp.Effect.andThen(_effectApp.Effect.sync(() => (0, _Array.toNonEmptyArray)([...events]))),
108
- // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
109
- _ => _effectApp.Effect.flatMapOption(_, pub), _effectApp.Effect.andThen(changeFeed.publish([_effectApp.Chunk.toArray(it), "save"])), _effectApp.Effect.asVoid);
110
- }).pipe(_effectApp.Effect.withSpan("saveAndPublish", {
111
- captureStackTrace: false
112
- }));
113
- };
114
- function removeAndPublish(a, events = []) {
115
- return _effectApp.Effect.gen(function* () {
116
- const {
117
- get,
118
- set
119
- } = yield* cms;
120
- const it = [...a];
121
- const items = yield* encodeMany(it).pipe(_effectApp.Effect.orDie);
122
- // TODO: we should have a batchRemove on store so the adapter can actually batch...
123
- for (const e of items) {
124
- yield* store.remove(mapToPersistenceModel(e, get));
125
- set(e.id, undefined);
126
- }
127
- yield* _effectApp.Effect.sync(() => (0, _Array.toNonEmptyArray)([...events]))
128
- // TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
129
- .pipe(_ => _effectApp.Effect.flatMapOption(_, pub));
130
- yield* changeFeed.publish([it, "remove"]);
131
- });
132
- }
133
- const parseMany = items => _effectApp.Effect.flatMap(cms, cm => decodeMany(items.map(_ => mapReverse(_, cm.set))).pipe(_effectApp.Effect.orDie, _effectApp.Effect.withSpan("parseMany", {
134
- captureStackTrace: false
135
- })));
136
- const parseMany2 = (items, schema) => _effectApp.Effect.flatMap(cms, cm => _effectApp.S.decode(_effectApp.S.Array(schema))(items.map(_ => mapReverse(_, cm.set))).pipe(_effectApp.Effect.orDie, _effectApp.Effect.withSpan("parseMany2", {
137
- captureStackTrace: false
138
- })));
139
- const filter = args => store.filter(
140
- // always enforce id and _etag because they are system fields, required for etag tracking etc
141
- {
142
- ...args,
143
- select: args.select ? dedupe([...args.select, "id", "_etag"]) : undefined
144
- }).pipe(_effectApp.Effect.tap(items => _effectApp.Effect.map(cms, ({
145
- set
146
- }) => items.forEach(_ => set(_.id, _._etag)))));
147
- // TODO: For raw we should use S.from, and drop the R...
148
- const query = q => {
149
- const a = Q.toFilter(q);
150
- const eff = a.mode === "project" ? filter(a)
151
- // TODO: mapFrom but need to support per field and dependencies
152
- .pipe(_effectApp.Effect.andThen((0, _effectApp.flow)(_effectApp.S.decode(_effectApp.S.Array(a.schema ?? schema)), provideRctx))) : a.mode === "collect" ? filter(a)
153
- // TODO: mapFrom but need to support per field and dependencies
154
- .pipe(_effectApp.Effect.flatMap((0, _effectApp.flow)(_effectApp.S.decode(_effectApp.S.Array(a.schema)), _effectApp.Effect.map(_effectApp.Array.getSomes), provideRctx))) : _effectApp.Effect.flatMap(filter(a), _ => _effectApp.Unify.unify(a.schema
155
- // TODO: partial may not match?
156
- ? parseMany2(_, a.schema) : parseMany(_)));
157
- return (0, _effectApp.pipe)(a.ttype === "one" ? _effectApp.Effect.andThen(eff, (0, _effectApp.flow)(_effectApp.Array.head, _effectApp.Effect.mapError(() => new _client.NotFoundError({
158
- id: "query",
159
- /* TODO */type: name
160
- })))) : a.ttype === "count" ? _effectApp.Effect.andThen(eff, _ => (0, _Schema.NonNegativeInt)(_.length)).pipe(_effectApp.Effect.catchTag("ParseError", e => _effectApp.Effect.die(e))) : eff, _effectApp.Effect.withSpan("Repository.query [effect-app/infra]", {
161
- captureStackTrace: false,
162
- attributes: {
163
- "repository.model_name": name,
164
- query: {
165
- ...a,
166
- schema: a.schema ? "__SCHEMA__" : a.schema,
167
- filter: a.filter
168
- }
169
- }
170
- }));
171
- };
172
- const r = {
173
- changeFeed,
174
- itemType: name,
175
- idKey,
176
- find,
177
- all,
178
- saveAndPublish,
179
- removeAndPublish,
180
- query(q) {
181
- // eslint-disable-next-line prefer-rest-params
182
- return query(typeof q === "function" ? _effectApp.Pipeable.pipeArguments(Q.make(), arguments) : q);
183
- },
184
- /**
185
- * @internal
186
- */
187
- mapped: schema => {
188
- const dec = _effectApp.S.decode(schema);
189
- const encMany = _effectApp.S.encode(_effectApp.S.Array(schema));
190
- const decMany = _effectApp.S.decode(_effectApp.S.Array(schema));
191
- return {
192
- all: allE.pipe(_effectApp.Effect.flatMap(decMany), _effectApp.Effect.map(_ => _)),
193
- find: id => (0, _Effect.flatMapOption)(findE(id), dec),
194
- // query: (q: any) => {
195
- // const a = Q.toFilter(q)
196
- // return filter(a)
197
- // .pipe(
198
- // Effect.flatMap(decMany),
199
- // Effect.map((_) => _ as any[]),
200
- // Effect.withSpan("Repository.mapped.query [effect-app/infra]", {
201
- // captureStackTrace: false,
202
- // attributes: {
203
- // "repository.model_name": name,
204
- // query: { ...a, schema: a.schema ? "__SCHEMA__" : a.schema, filter: a.filter.build() }
205
- // }
206
- // })
207
- // )
208
- // },
209
- save: (...xes) => _effectApp.Effect.flatMap(encMany(xes), _ => saveAllE(_)).pipe(_effectApp.Effect.withSpan("mapped.save", {
210
- captureStackTrace: false
211
- }))
212
- };
213
- }
214
- };
215
- return r;
216
- }).pipe(_effectApp.Effect
217
- // .withSpan("Repository.make [effect-app/infra]", { attributes: { "repository.model_name": name } })
218
- .withLogSpan("Repository.make: " + name));
219
- }
220
- return {
221
- make,
222
- Q: Q.make()
223
- };
224
- };
225
- }
226
- const pluralize = s => s.endsWith("s") ? s + "es" : s.endsWith("y") ? s.substring(0, s.length - 1) + "ies" : s + "s";
227
- function makeStore() {
228
- return (name, schema, mapTo) => {
229
- function encodeToEncoded() {
230
- const getEtag = () => undefined;
231
- return t => _effectApp.S.encode(schema)(t).pipe(_effectApp.Effect.orDie, _effectApp.Effect.map(_ => mapToPersistenceModel(_, getEtag)));
232
- }
233
- function mapToPersistenceModel(e, getEtag) {
234
- return mapTo(e, getEtag(e.id));
235
- }
236
- function makeStore(makeInitial, config) {
237
- return _effectApp.Effect.gen(function* () {
238
- const {
239
- make
240
- } = yield* _Store.StoreMaker;
241
- const store = yield* make(pluralize(name), makeInitial ? makeInitial.pipe(_effectApp.Effect.flatMap(_effectApp.Effect.forEach(encodeToEncoded())), (0, _setupRequest.setupRequestContextFromCurrent)("Repository.makeInitial [effect-app/infra]", {
242
- attributes: {
243
- "repository.model_name": name
244
- }
245
- })) : undefined, {
246
- ...config,
247
- partitionValue: config?.partitionValue ?? (_ => "primary") /*(isIntegrationEvent(r) ? r.companyId : r.id*/
248
- });
249
- return store;
250
- });
251
- }
252
- return makeStore;
253
- };
254
- }
255
16
  /**
256
17
  * Create a repository instance.
257
18
  * @param itemType an identifier used for the table name and e.g NotFoundError
@@ -260,7 +21,7 @@ function makeStore() {
260
21
  * @returns a Repository
261
22
  */
262
23
  const makeRepo = (itemType, schema, options) => _effectApp.Effect.gen(function* () {
263
- const mkRepo = makeRepoInternal()(itemType, schema, options?.jitM ? pm => options.jitM(pm) : pm => pm, (e, _etag) => ({
24
+ const mkRepo = (0, _internal.makeRepoInternal)()(itemType, schema, options?.jitM ? pm => options.jitM(pm) : pm => pm, (e, _etag) => ({
264
25
  ...e,
265
26
  _etag
266
27
  }), options.idKey ?? "id");
@@ -1 +1 @@
1
- {"version":3,"file":"makeRepo.cjs","names":["_effectApp","require","_Array","_client","_Effect","_Schema","_setupRequest","_Store","_ContextMapContainer","Q","_interopRequireWildcard","_ext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","dedupe","Array","dedupeWith","Equivalence","string","makeRepoInternal","name","schema","mapFrom","mapTo","idKey","mapToPersistenceModel","getEtag","id","mapReverse","_etag","setEtag","mkStore","makeStore","make","args","Effect","gen","rctx","schemaContext","Context","empty","provideRctx","provide","encodeMany","flow","S","encode","withSpan","captureStackTrace","decode","decodeMany","store","makeInitial","config","cms","andThen","getContextMap","pipe","orDie","_","etag","pub","publishEvents","void","changeFeed","PubSub","unbounded","allE","flatMap","cm","map","all","fieldsSchema","Struct","ast","_tag","typeParameters","s","Union","types","from","pick","encodeId","findEId","find","item","Option","findE","flatMapOption","saveAllE","sync","toNonEmptyArray","items","ret","batchSet","forEach","asVoid","saveAll","fromIterable","saveAndPublish","events","suspend","it","Chunk","publish","toArray","removeAndPublish","remove","undefined","parseMany","parseMany2","filter","select","tap","query","q","toFilter","eff","mode","getSomes","Unify","unify","ttype","head","mapError","NotFoundError","type","NonNegativeInt","length","catchTag","die","attributes","itemType","Pipeable","pipeArguments","arguments","mapped","dec","encMany","decMany","save","xes","withLogSpan","pluralize","endsWith","substring","encodeToEncoded","StoreMaker","setupRequestContextFromCurrent","partitionValue","makeRepo","options","mkRepo","jitM","pm","repo","extendRepo","exports"],"sources":["../../../src/Model/Repository/makeRepo.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"makeRepo.cjs","names":["_effectApp","require","_ext","_internal","makeRepo","itemType","schema","options","Effect","gen","mkRepo","makeRepoInternal","jitM","pm","e","_etag","idKey","r","make","repo","extendRepo","exports"],"sources":["../../../src/Model/Repository/makeRepo.ts"],"sourcesContent":[null],"mappings":";;;;;;AAUA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAdA;AACA;AACA;AACA;AACA;;AAqDA;;;;;;;AAOO,MAAMG,QAAQ,GAwCjBA,CAYFC,QAAkB,EAClBC,MAA+B,EAC/BC,OAAkH,KAElHC,iBAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,MAAM,GAAG,IAAAC,0BAAgB,GAAO,CACpCN,QAAQ,EACRC,MAAM,EACNC,OAAO,EAAEK,IAAI,GAAIC,EAAE,IAAKN,OAAO,CAACK,IAAK,CAACC,EAAE,CAAC,GAAIA,EAAE,IAAKA,EAAE,EACtD,CAACC,CAAC,EAAEC,KAAK,MAAM;IAAE,GAAGD,CAAC;IAAEC;EAAK,CAAE,CAAC,EAC/BR,OAAO,CAACS,KAAK,IAAI,IAAW,CAC7B;EACD,MAAMC,CAAC,GAAG,OAAOP,MAAM,CAACQ,IAAI,CAA8BX,OAAc,CAAC;EACzE,MAAMY,IAAI,GAAG,IAAAC,eAAU,EAACH,CAAC,CAAC;EAC1B,OAAOE,IAAI;AACb,CAAC,CAAC;AAAAE,OAAA,CAAAjB,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ import type { NonEmptyReadonlyArray } from "effect-app";
2
+ import { Context, Effect, S } from "effect-app";
3
+ import type { PersistenceModelType, StoreConfig } from "../../../Store.js";
4
+ import { StoreMaker } from "../../../Store.js";
5
+ import * as Q from "../../query.js";
6
+ import type { Repository } from "../service.js";
7
+ /**
8
+ * A base implementation to create a repository.
9
+ */
10
+ export declare function makeRepoInternal<Evt = never>(): <ItemType extends string, R, Encoded extends {
11
+ id: string;
12
+ }, T, IdKey extends keyof T>(name: ItemType, schema: S.Schema<T, Encoded, R>, mapFrom: (pm: Encoded) => Encoded, mapTo: (e: Encoded, etag: string | undefined) => PersistenceModelType<Encoded>, idKey: IdKey) => {
13
+ make: <RInitial = never, E = never, RPublish = never, RCtx = never>(args: [Evt] extends [never] ? {
14
+ schemaContext?: Context.Context<RCtx>;
15
+ makeInitial?: Effect<readonly T[], E, RInitial>;
16
+ config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
17
+ partitionValue?: (a: Encoded) => string;
18
+ };
19
+ } : {
20
+ schemaContext?: Context.Context<RCtx>;
21
+ publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, RPublish>;
22
+ makeInitial?: Effect<readonly T[], E, RInitial>;
23
+ config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
24
+ partitionValue?: (a: Encoded) => string;
25
+ };
26
+ }) => Effect.Effect<Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<R, RCtx>, RPublish>, E, R | RInitial | StoreMaker>;
27
+ Q: Q.Query<Encoded>;
28
+ };
29
+ export declare function makeStore<Encoded extends {
30
+ id: string;
31
+ }>(): <ItemType extends string, R, E extends {
32
+ id: string;
33
+ }, T>(name: ItemType, schema: S.Schema<T, E, R>, mapTo: (e: E, etag: string | undefined) => Encoded) => <RInitial = never, EInitial = never>(makeInitial?: Effect<readonly T[], EInitial, RInitial>, config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
34
+ partitionValue?: (a: Encoded) => string;
35
+ }) => Effect.Effect<import("../../../Store.js").Store<Encoded, string, PersistenceModelType<Encoded>>, EInitial, R | RInitial | StoreMaker>;
36
+ export interface Repos<T, Encoded extends {
37
+ id: string;
38
+ }, RSchema, Evt, ItemType extends string, IdKey extends keyof T, RPublish> {
39
+ make<RInitial = never, E = never, R2 = never>(args: [Evt] extends [never] ? {
40
+ makeInitial?: Effect<readonly T[], E, RInitial>;
41
+ config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
42
+ partitionValue?: (a: Encoded) => string;
43
+ };
44
+ } : {
45
+ publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, R2>;
46
+ makeInitial?: Effect<readonly T[], E, RInitial>;
47
+ config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
48
+ partitionValue?: (a: Encoded) => string;
49
+ };
50
+ }): Effect<Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>, E, StoreMaker | RInitial | R2>;
51
+ makeWith<Out, RInitial = never, E = never, R2 = never>(args: [Evt] extends [never] ? {
52
+ makeInitial?: Effect<readonly T[], E, RInitial>;
53
+ config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
54
+ partitionValue?: (a: Encoded) => string;
55
+ };
56
+ } : {
57
+ publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, R2>;
58
+ makeInitial?: Effect<readonly T[], E, RInitial>;
59
+ config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
60
+ partitionValue?: (a: Encoded) => string;
61
+ };
62
+ }, f: (r: Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>) => Out): Effect<Out, E, StoreMaker | RInitial | R2>;
63
+ readonly Q: ReturnType<typeof Q.make<Encoded>>;
64
+ readonly type: Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>;
65
+ }
66
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../src/Model/Repository/internal/internal.ts"],"names":[],"mappings":"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"}