@ddd-ts/event-sourcing-firestore 0.0.0-compute-timeout-on-process.7 → 0.0.0-compute-timeout-on-process.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.js +29 -0
- package/dist/firestore.event-lake.aggregate-store.d.ts +30 -36
- package/dist/firestore.event-lake.aggregate-store.d.ts.map +1 -1
- package/dist/firestore.event-lake.aggregate-store.js +11 -11
- package/dist/firestore.event-lake.aggregate-store.mjs +36 -0
- package/dist/firestore.event-lake.aggregate-store.spec.d.ts +2 -0
- package/dist/firestore.event-lake.aggregate-store.spec.d.ts.map +1 -0
- package/dist/firestore.event-lake.storage-layer.d.ts +10 -13
- package/dist/firestore.event-lake.storage-layer.d.ts.map +1 -1
- package/dist/firestore.event-lake.storage-layer.js +8 -7
- package/dist/firestore.event-lake.storage-layer.mjs +65 -0
- package/dist/firestore.event-lake.store.d.ts +3 -7
- package/dist/firestore.event-lake.store.d.ts.map +1 -1
- package/dist/firestore.event-lake.store.js +7 -7
- package/dist/firestore.event-lake.store.mjs +13 -0
- package/dist/firestore.event-lake.store.spec.d.ts +2 -0
- package/dist/firestore.event-lake.store.spec.d.ts.map +1 -0
- package/dist/firestore.event-stream-store.spec.d.ts +2 -0
- package/dist/firestore.event-stream-store.spec.d.ts.map +1 -0
- package/dist/firestore.event-stream.aggregate-store.d.ts +25 -30
- package/dist/firestore.event-stream.aggregate-store.d.ts.map +1 -1
- package/dist/firestore.event-stream.aggregate-store.js +14 -14
- package/dist/firestore.event-stream.aggregate-store.mjs +36 -0
- package/dist/firestore.event-stream.aggregate-store.spec.d.ts +2 -0
- package/dist/firestore.event-stream.aggregate-store.spec.d.ts.map +1 -0
- package/dist/firestore.event-stream.storage-layer.d.ts +11 -14
- package/dist/firestore.event-stream.storage-layer.d.ts.map +1 -1
- package/dist/firestore.event-stream.storage-layer.js +8 -8
- package/dist/firestore.event-stream.storage-layer.mjs +65 -0
- package/dist/firestore.event-stream.store.d.ts +3 -7
- package/dist/firestore.event-stream.store.d.ts.map +1 -1
- package/dist/firestore.event-stream.store.js +7 -7
- package/dist/firestore.event-stream.store.mjs +13 -0
- package/dist/firestore.projected-stream.reader.d.ts +10 -14
- package/dist/firestore.projected-stream.reader.d.ts.map +1 -1
- package/dist/firestore.projected-stream.reader.js +7 -7
- package/dist/firestore.projected-stream.reader.mjs +34 -0
- package/dist/firestore.projected-stream.reader.spec.d.ts +2 -0
- package/dist/firestore.projected-stream.reader.spec.d.ts.map +1 -0
- package/dist/firestore.projected-stream.storage-layer.d.ts +24 -28
- package/dist/firestore.projected-stream.storage-layer.d.ts.map +1 -1
- package/dist/firestore.projected-stream.storage-layer.js +20 -18
- package/dist/firestore.projected-stream.storage-layer.mjs +118 -0
- package/dist/firestore.snapshotter.d.ts +3 -7
- package/dist/firestore.snapshotter.d.ts.map +1 -1
- package/dist/firestore.snapshotter.js +5 -5
- package/dist/firestore.snapshotter.mjs +35 -0
- package/dist/index.d.ts +11 -11
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -11
- package/dist/index.mjs +12 -0
- package/dist/projection/cases/attempts.spec.d.ts +2 -0
- package/dist/projection/cases/attempts.spec.d.ts.map +1 -0
- package/dist/projection/cases/batchlast.spec.d.ts +2 -0
- package/dist/projection/cases/batchlast.spec.d.ts.map +1 -0
- package/dist/projection/cases/bigshuffle.spec.d.ts +2 -0
- package/dist/projection/cases/bigshuffle.spec.d.ts.map +1 -0
- package/dist/projection/cases/burst.spec.d.ts +2 -0
- package/dist/projection/cases/burst.spec.d.ts.map +1 -0
- package/dist/projection/cases/claimtimeout.spec.d.ts +2 -0
- package/dist/projection/cases/claimtimeout.spec.d.ts.map +1 -0
- package/dist/projection/cases/concurrency.spec.d.ts +2 -0
- package/dist/projection/cases/concurrency.spec.d.ts.map +1 -0
- package/dist/projection/cases/deduplicate.spec.d.ts +2 -0
- package/dist/projection/cases/deduplicate.spec.d.ts.map +1 -0
- package/dist/projection/cases/defer.spec.d.ts +2 -0
- package/dist/projection/cases/defer.spec.d.ts.map +1 -0
- package/dist/projection/cases/lock.spec.d.ts +2 -0
- package/dist/projection/cases/lock.spec.d.ts.map +1 -0
- package/dist/projection/cases/skip.spec.d.ts +2 -0
- package/dist/projection/cases/skip.spec.d.ts.map +1 -0
- package/dist/projection/cases/stress.spec.d.ts +2 -0
- package/dist/projection/cases/stress.spec.d.ts.map +1 -0
- package/dist/projection/firestore.projector.d.ts +122 -125
- package/dist/projection/firestore.projector.d.ts.map +1 -1
- package/dist/projection/firestore.projector.js +48 -44
- package/dist/projection/firestore.projector.mjs +520 -0
- package/dist/projection/testkit/case-fixture.d.ts +610 -0
- package/dist/projection/testkit/case-fixture.d.ts.map +1 -0
- package/dist/projection/testkit.d.ts +44 -0
- package/dist/projection/testkit.d.ts.map +1 -0
- package/dist/projection/trace.decorator.d.ts +2 -0
- package/dist/projection/trace.decorator.d.ts.map +1 -0
- package/package.json +16 -11
- package/dist/firestore.event-lake.aggregate-store.js.map +0 -1
- package/dist/firestore.event-lake.storage-layer.js.map +0 -1
- package/dist/firestore.event-lake.store.js.map +0 -1
- package/dist/firestore.event-stream.aggregate-store.js.map +0 -1
- package/dist/firestore.event-stream.storage-layer.js.map +0 -1
- package/dist/firestore.event-stream.store.js.map +0 -1
- package/dist/firestore.projected-stream.reader.js.map +0 -1
- package/dist/firestore.projected-stream.storage-layer.js.map +0 -1
- package/dist/firestore.snapshotter.js.map +0 -1
- package/dist/projection/firestore.projector.js.map +0 -1
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StreamId, type ISerializedChange, type ISerializedFact, type EventStreamStorageLayer } from "@ddd-ts/core";
|
|
2
|
+
import type { ISerializedSavedChange } from "@ddd-ts/core/dist/interfaces/es-event";
|
|
2
3
|
import { DefaultConverter, FirestoreTransaction } from "@ddd-ts/store-firestore";
|
|
3
4
|
import * as fb from "firebase-admin";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
append(streamId: StreamId, changes: ISerializedChange[], expectedRevision: number, trx: FirestoreTransaction): Promise<ISerializedSavedChange$1[]>;
|
|
14
|
-
read(streamId: StreamId, startAt?: number): AsyncIterable<ISerializedFact>;
|
|
5
|
+
export declare const serverTimestamp: typeof fb.firestore.FieldValue.serverTimestamp;
|
|
6
|
+
export declare class FirestoreEventStreamStorageLayer implements EventStreamStorageLayer {
|
|
7
|
+
readonly firestore: fb.firestore.Firestore;
|
|
8
|
+
readonly converter: DefaultConverter<fb.firestore.DocumentData>;
|
|
9
|
+
constructor(firestore: fb.firestore.Firestore, converter?: DefaultConverter<fb.firestore.DocumentData>);
|
|
10
|
+
isLocalRevisionOutdatedError(error: unknown): boolean;
|
|
11
|
+
getCollection(streamId: StreamId): fb.firestore.CollectionReference<fb.firestore.DocumentData, fb.firestore.DocumentData>;
|
|
12
|
+
append(streamId: StreamId, changes: ISerializedChange[], expectedRevision: number, trx: FirestoreTransaction): Promise<ISerializedSavedChange[]>;
|
|
13
|
+
read(streamId: StreamId, startAt?: number): AsyncIterable<ISerializedFact>;
|
|
15
14
|
}
|
|
16
|
-
//#endregion
|
|
17
|
-
export { FirestoreEventStreamStorageLayer };
|
|
18
15
|
//# sourceMappingURL=firestore.event-stream.storage-layer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestore.event-stream.storage-layer.d.ts","
|
|
1
|
+
{"version":3,"file":"firestore.event-stream.storage-layer.d.ts","sourceRoot":"","sources":["../src/firestore.event-stream.storage-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAErC,eAAO,MAAM,eAAe,gDAA0C,CAAC;AAEvE,qBAAa,gCACX,YAAW,uBAAuB;aAGhB,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS;aACjC,SAAS;gBADT,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EACjC,SAAS,8CAAyB;IAGpD,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IASrD,aAAa,CAAC,QAAQ,EAAE,QAAQ;IAS1B,MAAM,CACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,oBAAoB;IAkCpB,IAAI,CACT,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,aAAa,CAAC,eAAe,CAAC;CAsBlC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const require_runtime = require('./_virtual/_rolldown/runtime.js');
|
|
2
|
+
let _ddd_ts_core = require("@ddd-ts/core");
|
|
3
|
+
let _ddd_ts_store_firestore = require("@ddd-ts/store-firestore");
|
|
4
|
+
let firebase_admin = require("firebase-admin");
|
|
5
|
+
firebase_admin = require_runtime.__toESM(firebase_admin);
|
|
5
6
|
|
|
6
7
|
//#region src/firestore.event-stream.storage-layer.ts
|
|
7
|
-
const serverTimestamp =
|
|
8
|
+
const serverTimestamp = firebase_admin.firestore.FieldValue.serverTimestamp;
|
|
8
9
|
var FirestoreEventStreamStorageLayer = class {
|
|
9
|
-
constructor(firestore, converter = new DefaultConverter()) {
|
|
10
|
+
constructor(firestore, converter = new _ddd_ts_store_firestore.DefaultConverter()) {
|
|
10
11
|
this.firestore = firestore;
|
|
11
12
|
this.converter = converter;
|
|
12
13
|
}
|
|
@@ -63,5 +64,4 @@ var FirestoreEventStreamStorageLayer = class {
|
|
|
63
64
|
};
|
|
64
65
|
|
|
65
66
|
//#endregion
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=firestore.event-stream.storage-layer.js.map
|
|
67
|
+
exports.FirestoreEventStreamStorageLayer = FirestoreEventStreamStorageLayer;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { StreamId } from "@ddd-ts/core";
|
|
2
|
+
import { DefaultConverter } from "@ddd-ts/store-firestore";
|
|
3
|
+
import * as fb from "firebase-admin";
|
|
4
|
+
|
|
5
|
+
//#region src/firestore.event-stream.storage-layer.ts
|
|
6
|
+
const serverTimestamp = fb.firestore.FieldValue.serverTimestamp;
|
|
7
|
+
var FirestoreEventStreamStorageLayer = class {
|
|
8
|
+
constructor(firestore, converter = new DefaultConverter()) {
|
|
9
|
+
this.firestore = firestore;
|
|
10
|
+
this.converter = converter;
|
|
11
|
+
}
|
|
12
|
+
isLocalRevisionOutdatedError(error) {
|
|
13
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === 6;
|
|
14
|
+
}
|
|
15
|
+
getCollection(streamId) {
|
|
16
|
+
return this.firestore.collection("event-store").doc(streamId.aggregateType).collection("streams").doc(streamId.aggregateId).collection("events");
|
|
17
|
+
}
|
|
18
|
+
async append(streamId, changes, expectedRevision, trx) {
|
|
19
|
+
const collection = this.getCollection(streamId);
|
|
20
|
+
const result = [];
|
|
21
|
+
let revision = expectedRevision + 1;
|
|
22
|
+
for (const change of changes) {
|
|
23
|
+
const storageChange = {
|
|
24
|
+
aggregateType: streamId.aggregateType,
|
|
25
|
+
eventId: change.id,
|
|
26
|
+
aggregateId: streamId.aggregateId,
|
|
27
|
+
revision,
|
|
28
|
+
name: change.name,
|
|
29
|
+
payload: change.payload,
|
|
30
|
+
occurredAt: serverTimestamp(),
|
|
31
|
+
version: change.version
|
|
32
|
+
};
|
|
33
|
+
const ref = collection.doc(`${revision}`);
|
|
34
|
+
result.push({
|
|
35
|
+
...change,
|
|
36
|
+
ref: ref.path,
|
|
37
|
+
revision,
|
|
38
|
+
occurredAt: void 0
|
|
39
|
+
});
|
|
40
|
+
trx.transaction.create(ref, this.converter.toFirestore(storageChange));
|
|
41
|
+
revision++;
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
async *read(streamId, startAt) {
|
|
46
|
+
const query = this.getCollection(streamId).where("revision", ">=", startAt || 0).orderBy("revision", "asc");
|
|
47
|
+
for await (const event of query.stream()) {
|
|
48
|
+
const e = event;
|
|
49
|
+
const data = this.converter.fromFirestore(e);
|
|
50
|
+
yield {
|
|
51
|
+
id: data.eventId,
|
|
52
|
+
ref: e.ref.path,
|
|
53
|
+
revision: data.revision,
|
|
54
|
+
name: data.name,
|
|
55
|
+
$name: data.name,
|
|
56
|
+
payload: data.payload,
|
|
57
|
+
occurredAt: data.occurredAt,
|
|
58
|
+
version: data.version ?? 1
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
//#endregion
|
|
65
|
+
export { FirestoreEventStreamStorageLayer };
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { EventStreamStore, IEsEvent, IEventBus, ISerializer } from "@ddd-ts/core";
|
|
1
|
+
import { EventStreamStore, type IEsEvent, type IEventBus, type ISerializer } from "@ddd-ts/core";
|
|
2
2
|
import { Firestore } from "firebase-admin/firestore";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
declare class FirestoreEventStreamStore<Event extends IEsEvent> extends EventStreamStore<Event> {
|
|
6
|
-
constructor(firestore: Firestore, serializer: ISerializer<Event>, eventBus?: IEventBus);
|
|
3
|
+
export declare class FirestoreEventStreamStore<Event extends IEsEvent> extends EventStreamStore<Event> {
|
|
4
|
+
constructor(firestore: Firestore, serializer: ISerializer<Event>, eventBus?: IEventBus);
|
|
7
5
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { FirestoreEventStreamStore };
|
|
10
6
|
//# sourceMappingURL=firestore.event-stream.store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestore.event-stream.store.d.ts","
|
|
1
|
+
{"version":3,"file":"firestore.event-stream.store.d.ts","sourceRoot":"","sources":["../src/firestore.event-stream.store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,qBAAa,yBAAyB,CACpC,KAAK,SAAS,QAAQ,CACtB,SAAQ,gBAAgB,CAAC,KAAK,CAAC;gBAE7B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAC9B,QAAQ,CAAC,EAAE,SAAS;CAQvB"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const require_runtime = require('./_virtual/_rolldown/runtime.js');
|
|
2
|
+
const require_firestore_event_stream_storage_layer = require('./firestore.event-stream.storage-layer.js');
|
|
3
|
+
let _ddd_ts_core = require("@ddd-ts/core");
|
|
4
|
+
let firebase_admin_firestore = require("firebase-admin/firestore");
|
|
4
5
|
|
|
5
6
|
//#region src/firestore.event-stream.store.ts
|
|
6
|
-
var FirestoreEventStreamStore = class extends EventStreamStore {
|
|
7
|
+
var FirestoreEventStreamStore = class extends _ddd_ts_core.EventStreamStore {
|
|
7
8
|
constructor(firestore, serializer, eventBus) {
|
|
8
|
-
super(new FirestoreEventStreamStorageLayer(firestore), serializer, eventBus);
|
|
9
|
+
super(new require_firestore_event_stream_storage_layer.FirestoreEventStreamStorageLayer(firestore), serializer, eventBus);
|
|
9
10
|
}
|
|
10
11
|
};
|
|
11
12
|
|
|
12
13
|
//#endregion
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=firestore.event-stream.store.js.map
|
|
14
|
+
exports.FirestoreEventStreamStore = FirestoreEventStreamStore;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FirestoreEventStreamStorageLayer } from "./firestore.event-stream.storage-layer.mjs";
|
|
2
|
+
import { EventStreamStore } from "@ddd-ts/core";
|
|
3
|
+
import "firebase-admin/firestore";
|
|
4
|
+
|
|
5
|
+
//#region src/firestore.event-stream.store.ts
|
|
6
|
+
var FirestoreEventStreamStore = class extends EventStreamStore {
|
|
7
|
+
constructor(firestore, serializer, eventBus) {
|
|
8
|
+
super(new FirestoreEventStreamStorageLayer(firestore), serializer, eventBus);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { FirestoreEventStreamStore };
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Cursor, IEsEvent, IFact, ISavedChange, ISerializer, ProjectedStream, ProjectedStreamReader } from "@ddd-ts/core";
|
|
1
|
+
import { Cursor, type IEsEvent, type IFact, type ISavedChange, type ISerializer, ProjectedStream, ProjectedStreamReader } from "@ddd-ts/core";
|
|
3
2
|
import { Firestore } from "firebase-admin/firestore";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
read(projectedStream: ProjectedStream, shard: string, startAfter?: Cursor, endAt?: Cursor): AsyncGenerator<IFact<Event>, void, unknown>;
|
|
3
|
+
import { FirestoreProjectedStreamStorageLayer } from "./firestore.projected-stream.storage-layer";
|
|
4
|
+
export declare class FirestoreProjectedStreamReader<Event extends IEsEvent> extends ProjectedStreamReader<Event> {
|
|
5
|
+
storage: FirestoreProjectedStreamStorageLayer;
|
|
6
|
+
serializer: ISerializer<Event>;
|
|
7
|
+
constructor(firestore: Firestore, serializer: ISerializer<Event>);
|
|
8
|
+
getCursor(savedChange: ISavedChange<Event>): Promise<Cursor | undefined>;
|
|
9
|
+
get(cursor: Cursor): Promise<IFact<Event> | undefined>;
|
|
10
|
+
slice(projectedStream: ProjectedStream, shard: string, startAfter?: Cursor, endAt?: Cursor, limit?: number): Promise<any>;
|
|
11
|
+
read(projectedStream: ProjectedStream, shard: string, startAfter?: Cursor, endAt?: Cursor): AsyncGenerator<IFact<Event>, void, unknown>;
|
|
14
12
|
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { FirestoreProjectedStreamReader };
|
|
17
13
|
//# sourceMappingURL=firestore.projected-stream.reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestore.projected-stream.reader.d.ts","
|
|
1
|
+
{"version":3,"file":"firestore.projected-stream.reader.d.ts","sourceRoot":"","sources":["../src/firestore.projected-stream.reader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,eAAe,EACf,qBAAqB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAElG,qBAAa,8BAA8B,CACzC,KAAK,SAAS,QAAQ,CACtB,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IACpC,OAAO,EAAE,oCAAoC,CAAC;IAC9C,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC;IAO1D,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC;IAK1C,GAAG,CAAC,MAAM,EAAE,MAAM;IAUlB,KAAK,CACT,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM;IAcT,IAAI,CACT,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM;CAWjB"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const require_runtime = require('./_virtual/_rolldown/runtime.js');
|
|
2
|
+
const require_firestore_projected_stream_storage_layer = require('./firestore.projected-stream.storage-layer.js');
|
|
3
|
+
let _ddd_ts_core = require("@ddd-ts/core");
|
|
4
|
+
let firebase_admin_firestore = require("firebase-admin/firestore");
|
|
4
5
|
|
|
5
6
|
//#region src/firestore.projected-stream.reader.ts
|
|
6
|
-
var FirestoreProjectedStreamReader = class extends ProjectedStreamReader {
|
|
7
|
+
var FirestoreProjectedStreamReader = class extends _ddd_ts_core.ProjectedStreamReader {
|
|
7
8
|
storage;
|
|
8
9
|
serializer;
|
|
9
10
|
constructor(firestore, serializer) {
|
|
10
|
-
const storage = new FirestoreProjectedStreamStorageLayer(firestore);
|
|
11
|
+
const storage = new require_firestore_projected_stream_storage_layer.FirestoreProjectedStreamStorageLayer(firestore);
|
|
11
12
|
super(storage, serializer);
|
|
12
13
|
this.storage = storage;
|
|
13
14
|
this.serializer = serializer;
|
|
@@ -31,5 +32,4 @@ var FirestoreProjectedStreamReader = class extends ProjectedStreamReader {
|
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
//#endregion
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=firestore.projected-stream.reader.js.map
|
|
35
|
+
exports.FirestoreProjectedStreamReader = FirestoreProjectedStreamReader;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { FirestoreProjectedStreamStorageLayer } from "./firestore.projected-stream.storage-layer.mjs";
|
|
2
|
+
import { Cursor, ProjectedStreamReader } from "@ddd-ts/core";
|
|
3
|
+
import "firebase-admin/firestore";
|
|
4
|
+
|
|
5
|
+
//#region src/firestore.projected-stream.reader.ts
|
|
6
|
+
var FirestoreProjectedStreamReader = class extends ProjectedStreamReader {
|
|
7
|
+
storage;
|
|
8
|
+
serializer;
|
|
9
|
+
constructor(firestore, serializer) {
|
|
10
|
+
const storage = new FirestoreProjectedStreamStorageLayer(firestore);
|
|
11
|
+
super(storage, serializer);
|
|
12
|
+
this.storage = storage;
|
|
13
|
+
this.serializer = serializer;
|
|
14
|
+
}
|
|
15
|
+
async getCursor(savedChange) {
|
|
16
|
+
const serialized = await this.serializer.serialize(savedChange);
|
|
17
|
+
return this.storage.getCursor(serialized);
|
|
18
|
+
}
|
|
19
|
+
async get(cursor) {
|
|
20
|
+
const serialized = await this.storage.get(cursor);
|
|
21
|
+
if (!serialized) return;
|
|
22
|
+
return this.serializer.deserialize(serialized);
|
|
23
|
+
}
|
|
24
|
+
async slice(projectedStream, shard, startAfter, endAt, limit) {
|
|
25
|
+
const serialized = await this.storage.slice(projectedStream, shard, startAfter, endAt, limit);
|
|
26
|
+
return Promise.all(serialized.map((s) => this.serializer.deserialize(s)));
|
|
27
|
+
}
|
|
28
|
+
async *read(projectedStream, shard, startAfter, endAt) {
|
|
29
|
+
for await (const serialized of this.storage.read(projectedStream, shard, startAfter, endAt)) yield this.serializer.deserialize(serialized);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { FirestoreProjectedStreamReader };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.projected-stream.reader.spec.d.ts","sourceRoot":"","sources":["../src/firestore.projected-stream.reader.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,35 +1,31 @@
|
|
|
1
|
-
import { ISerializedFact, ISerializedSavedChange, LakeSource, ProjectedStream, ProjectedStreamStorageLayer, StreamSource } from "@ddd-ts/core";
|
|
1
|
+
import { type ISerializedFact, type ISerializedSavedChange, LakeSource, ProjectedStream, type ProjectedStreamStorageLayer, StreamSource } from "@ddd-ts/core";
|
|
2
2
|
import { DefaultConverter } from "@ddd-ts/store-firestore";
|
|
3
3
|
import { Filter, Firestore, Timestamp } from "firebase-admin/firestore";
|
|
4
4
|
import { MicrosecondTimestamp } from "@ddd-ts/shape";
|
|
5
|
-
import { Cursor
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
declare class FirestoreLakeSourceFilter {
|
|
9
|
-
filter(shard: string, lakeSource: LakeSource): Filter;
|
|
5
|
+
import { Cursor } from "@ddd-ts/core/dist/components/cursor";
|
|
6
|
+
export declare class FirestoreLakeSourceFilter {
|
|
7
|
+
filter(shard: string, lakeSource: LakeSource): Filter;
|
|
10
8
|
}
|
|
11
|
-
declare class FirestoreStreamSourceFilter {
|
|
12
|
-
|
|
9
|
+
export declare class FirestoreStreamSourceFilter {
|
|
10
|
+
filter(shard: string, streamSource: StreamSource): Filter;
|
|
13
11
|
}
|
|
14
|
-
declare class FirestoreProjectedStreamStorageLayer implements ProjectedStreamStorageLayer {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
12
|
+
export declare class FirestoreProjectedStreamStorageLayer implements ProjectedStreamStorageLayer {
|
|
13
|
+
private readonly firestore;
|
|
14
|
+
readonly converter: DefaultConverter<FirebaseFirestore.DocumentData>;
|
|
15
|
+
constructor(firestore: Firestore, converter?: DefaultConverter<FirebaseFirestore.DocumentData>);
|
|
16
|
+
read(projectedStream: ProjectedStream, shard: string, startAfter?: Cursor, endAt?: Cursor): AsyncGenerator<{
|
|
17
|
+
id: any;
|
|
18
|
+
ref: string;
|
|
19
|
+
revision: any;
|
|
20
|
+
name: any;
|
|
21
|
+
$name: any;
|
|
22
|
+
payload: any;
|
|
23
|
+
occurredAt: any;
|
|
24
|
+
version: any;
|
|
25
|
+
}, void, unknown>;
|
|
26
|
+
microsecondToTimestamp(microseconds: MicrosecondTimestamp): Timestamp;
|
|
27
|
+
get(cursor: Cursor): Promise<ISerializedFact | undefined>;
|
|
28
|
+
getCursor(savedChange: ISerializedSavedChange): Promise<Cursor | undefined>;
|
|
29
|
+
slice(projectedStream: ProjectedStream, shard: string, startAfter?: Cursor, endAt?: Cursor, limit?: number): Promise<ISerializedFact[]>;
|
|
32
30
|
}
|
|
33
|
-
//#endregion
|
|
34
|
-
export { FirestoreLakeSourceFilter, FirestoreProjectedStreamStorageLayer, FirestoreStreamSourceFilter };
|
|
35
31
|
//# sourceMappingURL=firestore.projected-stream.storage-layer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestore.projected-stream.storage-layer.d.ts","
|
|
1
|
+
{"version":3,"file":"firestore.projected-stream.storage-layer.d.ts","sourceRoot":"","sources":["../src/firestore.projected-stream.storage-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,UAAU,EACV,eAAe,EACf,KAAK,2BAA2B,EAChC,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,MAAM,EACN,SAAS,EAET,SAAS,EACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,qBAAa,yBAAyB;IACpC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;CAM7C;AAED,qBAAa,2BAA2B;IACtC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;CAOjD;AAED,qBAAa,oCACX,YAAW,2BAA2B;IAGpC,OAAO,CAAC,QAAQ,CAAC,SAAS;aACV,SAAS;gBADR,SAAS,EAAE,SAAS,EACrB,SAAS,mDAAyB;IAG7C,IAAI,CACT,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;IA2CT,sBAAsB,CAAC,YAAY,EAAE,oBAAoB;IAM1D,GAAG,CAAC,MAAM,EAAE,MAAM;IAkBlB,SAAS,CACb,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAcxB,KAAK,CACT,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM;CAiDjB"}
|
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
const require_runtime = require('./_virtual/_rolldown/runtime.js');
|
|
2
|
+
let _ddd_ts_core = require("@ddd-ts/core");
|
|
3
|
+
let _ddd_ts_store_firestore = require("@ddd-ts/store-firestore");
|
|
4
|
+
let firebase_admin_firestore = require("firebase-admin/firestore");
|
|
5
|
+
let _ddd_ts_shape = require("@ddd-ts/shape");
|
|
6
|
+
let _ddd_ts_core_dist_components_cursor = require("@ddd-ts/core/dist/components/cursor");
|
|
6
7
|
|
|
7
8
|
//#region src/firestore.projected-stream.storage-layer.ts
|
|
8
9
|
var FirestoreLakeSourceFilter = class {
|
|
9
10
|
filter(shard, lakeSource) {
|
|
10
|
-
return Filter.and(Filter.where(`payload.${lakeSource.shardKey}`, "==", shard), Filter.where("name", "in", lakeSource.events));
|
|
11
|
+
return firebase_admin_firestore.Filter.and(firebase_admin_firestore.Filter.where(`payload.${lakeSource.shardKey}`, "==", shard), firebase_admin_firestore.Filter.where("name", "in", lakeSource.events));
|
|
11
12
|
}
|
|
12
13
|
};
|
|
13
14
|
var FirestoreStreamSourceFilter = class {
|
|
14
15
|
filter(shard, streamSource) {
|
|
15
|
-
return Filter.and(Filter.where("aggregateType", "==", streamSource.aggregateType), Filter.where(`payload.${streamSource.shardKey}`, "==", shard), Filter.where("name", "in", streamSource.events));
|
|
16
|
+
return firebase_admin_firestore.Filter.and(firebase_admin_firestore.Filter.where("aggregateType", "==", streamSource.aggregateType), firebase_admin_firestore.Filter.where(`payload.${streamSource.shardKey}`, "==", shard), firebase_admin_firestore.Filter.where("name", "in", streamSource.events));
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
var FirestoreProjectedStreamStorageLayer = class {
|
|
19
|
-
constructor(firestore, converter = new DefaultConverter()) {
|
|
20
|
+
constructor(firestore, converter = new _ddd_ts_store_firestore.DefaultConverter()) {
|
|
20
21
|
this.firestore = firestore;
|
|
21
22
|
this.converter = converter;
|
|
22
23
|
}
|
|
23
24
|
async *read(projectedStream, shard, startAfter, endAt) {
|
|
24
25
|
let query = this.firestore.collectionGroup("events").orderBy("occurredAt").orderBy("revision");
|
|
25
26
|
const filters = projectedStream.sources.map((source) => {
|
|
26
|
-
if (source instanceof LakeSource) return new FirestoreLakeSourceFilter().filter(shard, source);
|
|
27
|
-
if (source instanceof StreamSource) return new FirestoreStreamSourceFilter().filter(shard, source);
|
|
27
|
+
if (source instanceof _ddd_ts_core.LakeSource) return new FirestoreLakeSourceFilter().filter(shard, source);
|
|
28
|
+
if (source instanceof _ddd_ts_core.StreamSource) return new FirestoreStreamSourceFilter().filter(shard, source);
|
|
28
29
|
throw new Error("Unknown source type");
|
|
29
30
|
});
|
|
30
|
-
query = query.where(Filter.or(...filters));
|
|
31
|
+
query = query.where(firebase_admin_firestore.Filter.or(...filters));
|
|
31
32
|
if (startAfter) {
|
|
32
33
|
const ts = this.microsecondToTimestamp(startAfter.occurredAt);
|
|
33
34
|
query = query.startAfter(ts, startAfter.revision);
|
|
@@ -53,7 +54,7 @@ var FirestoreProjectedStreamStorageLayer = class {
|
|
|
53
54
|
microsecondToTimestamp(microseconds) {
|
|
54
55
|
const seconds = BigInt(microseconds.micros) / 1000000n;
|
|
55
56
|
const nanoseconds = BigInt(microseconds.micros) % 1000000n * 1000n;
|
|
56
|
-
return new Timestamp(Number(seconds), Number(nanoseconds));
|
|
57
|
+
return new firebase_admin_firestore.Timestamp(Number(seconds), Number(nanoseconds));
|
|
57
58
|
}
|
|
58
59
|
async get(cursor) {
|
|
59
60
|
const doc = await this.firestore.doc(cursor.ref).get();
|
|
@@ -74,7 +75,7 @@ var FirestoreProjectedStreamStorageLayer = class {
|
|
|
74
75
|
const doc = await this.firestore.doc(savedChange.ref).get();
|
|
75
76
|
if (!doc.exists) return;
|
|
76
77
|
const data = this.converter.fromFirestoreSnapshot(doc);
|
|
77
|
-
return Cursor
|
|
78
|
+
return _ddd_ts_core_dist_components_cursor.Cursor.deserialize({
|
|
78
79
|
eventId: data.eventId,
|
|
79
80
|
ref: doc.ref.path,
|
|
80
81
|
occurredAt: data.occurredAt,
|
|
@@ -84,11 +85,11 @@ var FirestoreProjectedStreamStorageLayer = class {
|
|
|
84
85
|
async slice(projectedStream, shard, startAfter, endAt, limit) {
|
|
85
86
|
let query = this.firestore.collectionGroup("events").orderBy("occurredAt").orderBy("revision");
|
|
86
87
|
const filters = projectedStream.sources.map((source) => {
|
|
87
|
-
if (source instanceof LakeSource) return new FirestoreLakeSourceFilter().filter(shard, source);
|
|
88
|
-
if (source instanceof StreamSource) return new FirestoreStreamSourceFilter().filter(shard, source);
|
|
88
|
+
if (source instanceof _ddd_ts_core.LakeSource) return new FirestoreLakeSourceFilter().filter(shard, source);
|
|
89
|
+
if (source instanceof _ddd_ts_core.StreamSource) return new FirestoreStreamSourceFilter().filter(shard, source);
|
|
89
90
|
throw new Error("Unknown source type");
|
|
90
91
|
});
|
|
91
|
-
query = query.where(Filter.or(...filters));
|
|
92
|
+
query = query.where(firebase_admin_firestore.Filter.or(...filters));
|
|
92
93
|
if (startAfter) {
|
|
93
94
|
const ts = this.microsecondToTimestamp(startAfter.occurredAt);
|
|
94
95
|
query = query.startAfter(ts, startAfter.revision);
|
|
@@ -115,5 +116,6 @@ var FirestoreProjectedStreamStorageLayer = class {
|
|
|
115
116
|
};
|
|
116
117
|
|
|
117
118
|
//#endregion
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
exports.FirestoreLakeSourceFilter = FirestoreLakeSourceFilter;
|
|
120
|
+
exports.FirestoreProjectedStreamStorageLayer = FirestoreProjectedStreamStorageLayer;
|
|
121
|
+
exports.FirestoreStreamSourceFilter = FirestoreStreamSourceFilter;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { LakeSource, StreamSource } from "@ddd-ts/core";
|
|
2
|
+
import { DefaultConverter } from "@ddd-ts/store-firestore";
|
|
3
|
+
import { Filter, Timestamp } from "firebase-admin/firestore";
|
|
4
|
+
import { MicrosecondTimestamp } from "@ddd-ts/shape";
|
|
5
|
+
import { Cursor as Cursor$1 } from "@ddd-ts/core/dist/components/cursor";
|
|
6
|
+
|
|
7
|
+
//#region src/firestore.projected-stream.storage-layer.ts
|
|
8
|
+
var FirestoreLakeSourceFilter = class {
|
|
9
|
+
filter(shard, lakeSource) {
|
|
10
|
+
return Filter.and(Filter.where(`payload.${lakeSource.shardKey}`, "==", shard), Filter.where("name", "in", lakeSource.events));
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
var FirestoreStreamSourceFilter = class {
|
|
14
|
+
filter(shard, streamSource) {
|
|
15
|
+
return Filter.and(Filter.where("aggregateType", "==", streamSource.aggregateType), Filter.where(`payload.${streamSource.shardKey}`, "==", shard), Filter.where("name", "in", streamSource.events));
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var FirestoreProjectedStreamStorageLayer = class {
|
|
19
|
+
constructor(firestore, converter = new DefaultConverter()) {
|
|
20
|
+
this.firestore = firestore;
|
|
21
|
+
this.converter = converter;
|
|
22
|
+
}
|
|
23
|
+
async *read(projectedStream, shard, startAfter, endAt) {
|
|
24
|
+
let query = this.firestore.collectionGroup("events").orderBy("occurredAt").orderBy("revision");
|
|
25
|
+
const filters = projectedStream.sources.map((source) => {
|
|
26
|
+
if (source instanceof LakeSource) return new FirestoreLakeSourceFilter().filter(shard, source);
|
|
27
|
+
if (source instanceof StreamSource) return new FirestoreStreamSourceFilter().filter(shard, source);
|
|
28
|
+
throw new Error("Unknown source type");
|
|
29
|
+
});
|
|
30
|
+
query = query.where(Filter.or(...filters));
|
|
31
|
+
if (startAfter) {
|
|
32
|
+
const ts = this.microsecondToTimestamp(startAfter.occurredAt);
|
|
33
|
+
query = query.startAfter(ts, startAfter.revision);
|
|
34
|
+
}
|
|
35
|
+
if (endAt) {
|
|
36
|
+
const ts = this.microsecondToTimestamp(endAt.occurredAt);
|
|
37
|
+
query = query.endAt(ts, endAt.revision);
|
|
38
|
+
}
|
|
39
|
+
for await (const doc of query.stream()) {
|
|
40
|
+
const data = this.converter.fromFirestore(doc);
|
|
41
|
+
yield {
|
|
42
|
+
id: data.eventId,
|
|
43
|
+
ref: doc.ref.path,
|
|
44
|
+
revision: data.revision,
|
|
45
|
+
name: data.name,
|
|
46
|
+
$name: data.name,
|
|
47
|
+
payload: data.payload,
|
|
48
|
+
occurredAt: data.occurredAt,
|
|
49
|
+
version: data.version ?? 1
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
microsecondToTimestamp(microseconds) {
|
|
54
|
+
const seconds = BigInt(microseconds.micros) / 1000000n;
|
|
55
|
+
const nanoseconds = BigInt(microseconds.micros) % 1000000n * 1000n;
|
|
56
|
+
return new Timestamp(Number(seconds), Number(nanoseconds));
|
|
57
|
+
}
|
|
58
|
+
async get(cursor) {
|
|
59
|
+
const doc = await this.firestore.doc(cursor.ref).get();
|
|
60
|
+
if (!doc.exists) return;
|
|
61
|
+
const data = this.converter.fromFirestoreSnapshot(doc);
|
|
62
|
+
return {
|
|
63
|
+
id: data.eventId,
|
|
64
|
+
ref: doc.ref.path,
|
|
65
|
+
revision: data.revision,
|
|
66
|
+
name: data.name,
|
|
67
|
+
$name: data.name,
|
|
68
|
+
payload: data.payload,
|
|
69
|
+
occurredAt: data.occurredAt,
|
|
70
|
+
version: data.version ?? 1
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
async getCursor(savedChange) {
|
|
74
|
+
const doc = await this.firestore.doc(savedChange.ref).get();
|
|
75
|
+
if (!doc.exists) return;
|
|
76
|
+
const data = this.converter.fromFirestoreSnapshot(doc);
|
|
77
|
+
return Cursor$1.deserialize({
|
|
78
|
+
eventId: data.eventId,
|
|
79
|
+
ref: doc.ref.path,
|
|
80
|
+
occurredAt: data.occurredAt,
|
|
81
|
+
revision: data.revision
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async slice(projectedStream, shard, startAfter, endAt, limit) {
|
|
85
|
+
let query = this.firestore.collectionGroup("events").orderBy("occurredAt").orderBy("revision");
|
|
86
|
+
const filters = projectedStream.sources.map((source) => {
|
|
87
|
+
if (source instanceof LakeSource) return new FirestoreLakeSourceFilter().filter(shard, source);
|
|
88
|
+
if (source instanceof StreamSource) return new FirestoreStreamSourceFilter().filter(shard, source);
|
|
89
|
+
throw new Error("Unknown source type");
|
|
90
|
+
});
|
|
91
|
+
query = query.where(Filter.or(...filters));
|
|
92
|
+
if (startAfter) {
|
|
93
|
+
const ts = this.microsecondToTimestamp(startAfter.occurredAt);
|
|
94
|
+
query = query.startAfter(ts, startAfter.revision);
|
|
95
|
+
}
|
|
96
|
+
if (endAt) {
|
|
97
|
+
const ts = this.microsecondToTimestamp(endAt.occurredAt);
|
|
98
|
+
query = query.endAt(ts, endAt.revision);
|
|
99
|
+
}
|
|
100
|
+
if (limit) query = query.limit(limit);
|
|
101
|
+
return (await query.get()).docs.map((doc) => {
|
|
102
|
+
const data = this.converter.fromFirestore(doc);
|
|
103
|
+
return {
|
|
104
|
+
id: data.eventId,
|
|
105
|
+
ref: doc.ref.path,
|
|
106
|
+
revision: data.revision,
|
|
107
|
+
name: data.name,
|
|
108
|
+
$name: data.name,
|
|
109
|
+
payload: data.payload,
|
|
110
|
+
occurredAt: data.occurredAt,
|
|
111
|
+
version: data.version ?? 1
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
//#endregion
|
|
118
|
+
export { FirestoreLakeSourceFilter, FirestoreProjectedStreamStorageLayer, FirestoreStreamSourceFilter };
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { IEventSourced, IIdentifiable, ISerializer } from "@ddd-ts/core";
|
|
1
|
+
import { type IEventSourced, type IIdentifiable, type ISerializer } from "@ddd-ts/core";
|
|
2
2
|
import { FirestoreStore } from "@ddd-ts/store-firestore";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
declare class FirestoreSnapshotter<A extends IEventSourced & IIdentifiable> extends FirestoreStore<A> {
|
|
6
|
-
constructor(aggregateType: string, database: FirebaseFirestore.Firestore, serializer: ISerializer<A>);
|
|
3
|
+
export declare class FirestoreSnapshotter<A extends IEventSourced & IIdentifiable> extends FirestoreStore<A> {
|
|
4
|
+
constructor(aggregateType: string, database: FirebaseFirestore.Firestore, serializer: ISerializer<A>);
|
|
7
5
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { FirestoreSnapshotter };
|
|
10
6
|
//# sourceMappingURL=firestore.snapshotter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestore.snapshotter.d.ts","
|
|
1
|
+
{"version":3,"file":"firestore.snapshotter.d.ts","sourceRoot":"","sources":["../src/firestore.snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA4BzD,qBAAa,oBAAoB,CAC/B,CAAC,SAAS,aAAa,GAAG,aAAa,CACvC,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAEvB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,iBAAiB,CAAC,SAAS,EACrC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;CAY7B"}
|