@ddd-ts/event-sourcing-firestore 0.0.36 → 0.0.38
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/LICENSE +21 -0
- package/dist/_virtual/_rolldown/runtime.js +29 -0
- package/dist/firestore.event-lake.aggregate-store.d.ts +4 -8
- package/dist/firestore.event-lake.aggregate-store.d.ts.map +1 -1
- package/dist/firestore.event-lake.aggregate-store.js +35 -33
- package/dist/firestore.event-lake.aggregate-store.mjs +36 -0
- package/dist/firestore.event-lake.storage-layer.d.ts +2 -2
- package/dist/firestore.event-lake.storage-layer.d.ts.map +1 -1
- package/dist/firestore.event-lake.storage-layer.js +67 -117
- package/dist/firestore.event-lake.storage-layer.mjs +65 -0
- package/dist/firestore.event-lake.store.d.ts +1 -1
- package/dist/firestore.event-lake.store.d.ts.map +1 -1
- package/dist/firestore.event-lake.store.js +14 -12
- package/dist/firestore.event-lake.store.mjs +13 -0
- package/dist/firestore.event-stream.aggregate-store.d.ts +2 -2
- package/dist/firestore.event-stream.aggregate-store.d.ts.map +1 -1
- package/dist/firestore.event-stream.aggregate-store.js +35 -37
- package/dist/firestore.event-stream.aggregate-store.mjs +36 -0
- package/dist/firestore.event-stream.storage-layer.d.ts +2 -2
- package/dist/firestore.event-stream.storage-layer.d.ts.map +1 -1
- package/dist/firestore.event-stream.storage-layer.js +67 -110
- package/dist/firestore.event-stream.storage-layer.mjs +65 -0
- package/dist/firestore.event-stream.store.d.ts +1 -1
- package/dist/firestore.event-stream.store.d.ts.map +1 -1
- package/dist/firestore.event-stream.store.js +14 -12
- package/dist/firestore.event-stream.store.mjs +13 -0
- package/dist/firestore.projected-stream.reader.d.ts +1 -1
- package/dist/firestore.projected-stream.reader.d.ts.map +1 -1
- package/dist/firestore.projected-stream.reader.js +35 -37
- package/dist/firestore.projected-stream.reader.mjs +34 -0
- package/dist/firestore.projected-stream.storage-layer.d.ts +1 -1
- package/dist/firestore.projected-stream.storage-layer.d.ts.map +1 -1
- package/dist/firestore.projected-stream.storage-layer.js +119 -140
- package/dist/firestore.projected-stream.storage-layer.mjs +118 -0
- package/dist/firestore.snapshotter.js +36 -40
- package/dist/firestore.snapshotter.mjs +35 -0
- package/dist/index.js +30 -32
- package/dist/index.mjs +12 -0
- package/dist/projection/firestore.projector.d.ts +1 -1
- package/dist/projection/firestore.projector.d.ts.map +1 -1
- package/dist/projection/firestore.projector.js +477 -630
- package/dist/projection/firestore.projector.mjs +479 -0
- package/dist/projection/testkit/case-fixture.d.ts.map +1 -1
- package/dist/projection/testkit.d.ts +1 -1
- package/dist/projection/testkit.d.ts.map +1 -1
- package/package.json +43 -32
- package/dist/firestore.event-lake.aggregate-store.js.map +0 -1
- package/dist/firestore.event-lake.aggregate-store.spec.js +0 -58
- package/dist/firestore.event-lake.aggregate-store.spec.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-lake.store.spec.js +0 -50
- package/dist/firestore.event-lake.store.spec.js.map +0 -1
- package/dist/firestore.event-stream-store.spec.js +0 -50
- package/dist/firestore.event-stream-store.spec.js.map +0 -1
- package/dist/firestore.event-stream.aggregate-store.js.map +0 -1
- package/dist/firestore.event-stream.aggregate-store.spec.js +0 -54
- package/dist/firestore.event-stream.aggregate-store.spec.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.reader.spec.js +0 -54
- package/dist/firestore.projected-stream.reader.spec.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/index.js.map +0 -1
- package/dist/projection/cases/attempts.spec.js +0 -42
- package/dist/projection/cases/attempts.spec.js.map +0 -1
- package/dist/projection/cases/batchlast.spec.js +0 -51
- package/dist/projection/cases/batchlast.spec.js.map +0 -1
- package/dist/projection/cases/bigshuffle.spec.js +0 -59
- package/dist/projection/cases/bigshuffle.spec.js.map +0 -1
- package/dist/projection/cases/burst.spec.js +0 -38
- package/dist/projection/cases/burst.spec.js.map +0 -1
- package/dist/projection/cases/claimtimeout.spec.js +0 -40
- package/dist/projection/cases/claimtimeout.spec.js.map +0 -1
- package/dist/projection/cases/concurrency.spec.js +0 -49
- package/dist/projection/cases/concurrency.spec.js.map +0 -1
- package/dist/projection/cases/deduplicate.spec.js +0 -22
- package/dist/projection/cases/deduplicate.spec.js.map +0 -1
- package/dist/projection/cases/defer.spec.js +0 -44
- package/dist/projection/cases/defer.spec.js.map +0 -1
- package/dist/projection/cases/lock.spec.js +0 -91
- package/dist/projection/cases/lock.spec.js.map +0 -1
- package/dist/projection/cases/skip.spec.js +0 -86
- package/dist/projection/cases/skip.spec.js.map +0 -1
- package/dist/projection/cases/stress.spec.js +0 -73
- package/dist/projection/cases/stress.spec.js.map +0 -1
- package/dist/projection/firestore.projector.js.map +0 -1
- package/dist/projection/testkit/case-fixture.js +0 -341
- package/dist/projection/testkit/case-fixture.js.map +0 -1
- package/dist/projection/testkit.js +0 -77
- package/dist/projection/testkit.js.map +0 -1
- package/dist/projection/trace.decorator.js +0 -35
- package/dist/projection/trace.decorator.js.map +0 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { FirestoreEventStreamStorageLayer } from "./firestore.event-stream.storage-layer.mjs";
|
|
2
|
+
import { FirestoreSnapshotter } from "./firestore.snapshotter.mjs";
|
|
3
|
+
import { EventStreamAggregateStore, EventStreamStore, StreamId } from "@ddd-ts/core";
|
|
4
|
+
import { FirestoreTransactionPerformer } from "@ddd-ts/store-firestore";
|
|
5
|
+
import "firebase-admin/firestore";
|
|
6
|
+
|
|
7
|
+
//#region src/firestore.event-stream.aggregate-store.ts
|
|
8
|
+
const MakeFirestoreEventStreamAggregateStore = (AGGREGATE) => {
|
|
9
|
+
return class $FirestoreEventStreamAggregateStore extends FirestoreEventStreamAggregateStore {
|
|
10
|
+
constructor(firestore, serializer, eventBus) {
|
|
11
|
+
const snapshotter = new FirestoreSnapshotter(AGGREGATE.name, firestore, serializer);
|
|
12
|
+
super(firestore, serializer, snapshotter, eventBus);
|
|
13
|
+
}
|
|
14
|
+
loadFirst(event) {
|
|
15
|
+
return AGGREGATE.loadFirst(event);
|
|
16
|
+
}
|
|
17
|
+
getStreamId(id) {
|
|
18
|
+
return StreamId.from(AGGREGATE.name, id.serialize());
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
var FirestoreEventStreamAggregateStore = class extends EventStreamAggregateStore {
|
|
23
|
+
constructor(firestore, serializer, snapshotter, eventBus) {
|
|
24
|
+
const storageLayer = new FirestoreEventStreamStorageLayer(firestore);
|
|
25
|
+
const transaction = new FirestoreTransactionPerformer(firestore);
|
|
26
|
+
const streamStore = new EventStreamStore(storageLayer, serializer, eventBus);
|
|
27
|
+
super(streamStore, transaction, snapshotter);
|
|
28
|
+
this.firestore = firestore;
|
|
29
|
+
this.serializer = serializer;
|
|
30
|
+
this.snapshotter = snapshotter;
|
|
31
|
+
this.eventBus = eventBus;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { FirestoreEventStreamAggregateStore, MakeFirestoreEventStreamAggregateStore };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { StreamId, type ISerializedChange, type ISerializedFact, EventStreamStorageLayer } from "@ddd-ts/core";
|
|
2
|
-
import { ISerializedSavedChange } from "@ddd-ts/core/dist/interfaces/es-event";
|
|
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";
|
|
3
3
|
import { DefaultConverter, FirestoreTransaction } from "@ddd-ts/store-firestore";
|
|
4
4
|
import * as fb from "firebase-admin";
|
|
5
5
|
export declare const serverTimestamp: typeof fb.firestore.FieldValue.serverTimestamp;
|
|
@@ -1 +1 @@
|
|
|
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,uBAAuB,
|
|
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,110 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
eventId: change.id,
|
|
69
|
-
aggregateId: streamId.aggregateId,
|
|
70
|
-
revision: revision,
|
|
71
|
-
name: change.name,
|
|
72
|
-
payload: change.payload,
|
|
73
|
-
occurredAt: (0, exports.serverTimestamp)(),
|
|
74
|
-
version: change.version,
|
|
75
|
-
};
|
|
76
|
-
const ref = collection.doc(`${revision}`);
|
|
77
|
-
result.push({
|
|
78
|
-
...change,
|
|
79
|
-
ref: ref.path,
|
|
80
|
-
revision: revision,
|
|
81
|
-
occurredAt: undefined,
|
|
82
|
-
});
|
|
83
|
-
trx.transaction.create(ref, this.converter.toFirestore(storageChange));
|
|
84
|
-
revision++;
|
|
85
|
-
}
|
|
86
|
-
return result;
|
|
87
|
-
}
|
|
88
|
-
async *read(streamId, startAt) {
|
|
89
|
-
const collection = this.getCollection(streamId);
|
|
90
|
-
const query = collection
|
|
91
|
-
.where("revision", ">=", startAt || 0)
|
|
92
|
-
.orderBy("revision", "asc");
|
|
93
|
-
for await (const event of query.stream()) {
|
|
94
|
-
const e = event;
|
|
95
|
-
const data = this.converter.fromFirestore(e);
|
|
96
|
-
yield {
|
|
97
|
-
id: data.eventId,
|
|
98
|
-
ref: e.ref.path,
|
|
99
|
-
revision: data.revision,
|
|
100
|
-
name: data.name,
|
|
101
|
-
$name: data.name,
|
|
102
|
-
payload: data.payload,
|
|
103
|
-
occurredAt: data.occurredAt,
|
|
104
|
-
version: data.version ?? 1,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
exports.FirestoreEventStreamStorageLayer = FirestoreEventStreamStorageLayer;
|
|
110
|
-
//# sourceMappingURL=firestore.event-stream.storage-layer.js.map
|
|
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);
|
|
6
|
+
|
|
7
|
+
//#region src/firestore.event-stream.storage-layer.ts
|
|
8
|
+
const serverTimestamp = firebase_admin.firestore.FieldValue.serverTimestamp;
|
|
9
|
+
var FirestoreEventStreamStorageLayer = class {
|
|
10
|
+
constructor(firestore, converter = new _ddd_ts_store_firestore.DefaultConverter()) {
|
|
11
|
+
this.firestore = firestore;
|
|
12
|
+
this.converter = converter;
|
|
13
|
+
}
|
|
14
|
+
isLocalRevisionOutdatedError(error) {
|
|
15
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === 6;
|
|
16
|
+
}
|
|
17
|
+
getCollection(streamId) {
|
|
18
|
+
return this.firestore.collection("event-store").doc(streamId.aggregateType).collection("streams").doc(streamId.aggregateId).collection("events");
|
|
19
|
+
}
|
|
20
|
+
async append(streamId, changes, expectedRevision, trx) {
|
|
21
|
+
const collection = this.getCollection(streamId);
|
|
22
|
+
const result = [];
|
|
23
|
+
let revision = expectedRevision + 1;
|
|
24
|
+
for (const change of changes) {
|
|
25
|
+
const storageChange = {
|
|
26
|
+
aggregateType: streamId.aggregateType,
|
|
27
|
+
eventId: change.id,
|
|
28
|
+
aggregateId: streamId.aggregateId,
|
|
29
|
+
revision,
|
|
30
|
+
name: change.name,
|
|
31
|
+
payload: change.payload,
|
|
32
|
+
occurredAt: serverTimestamp(),
|
|
33
|
+
version: change.version
|
|
34
|
+
};
|
|
35
|
+
const ref = collection.doc(`${revision}`);
|
|
36
|
+
result.push({
|
|
37
|
+
...change,
|
|
38
|
+
ref: ref.path,
|
|
39
|
+
revision,
|
|
40
|
+
occurredAt: void 0
|
|
41
|
+
});
|
|
42
|
+
trx.transaction.create(ref, this.converter.toFirestore(storageChange));
|
|
43
|
+
revision++;
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
async *read(streamId, startAt) {
|
|
48
|
+
const query = this.getCollection(streamId).where("revision", ">=", startAt || 0).orderBy("revision", "asc");
|
|
49
|
+
for await (const event of query.stream()) {
|
|
50
|
+
const e = event;
|
|
51
|
+
const data = this.converter.fromFirestore(e);
|
|
52
|
+
yield {
|
|
53
|
+
id: data.eventId,
|
|
54
|
+
ref: e.ref.path,
|
|
55
|
+
revision: data.revision,
|
|
56
|
+
name: data.name,
|
|
57
|
+
$name: data.name,
|
|
58
|
+
payload: data.payload,
|
|
59
|
+
occurredAt: data.occurredAt,
|
|
60
|
+
version: data.version ?? 1
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
//#endregion
|
|
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,4 +1,4 @@
|
|
|
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
3
|
export declare class FirestoreEventStreamStore<Event extends IEsEvent> extends EventStreamStore<Event> {
|
|
4
4
|
constructor(firestore: Firestore, serializer: ISerializer<Event>, eventBus?: IEventBus);
|
|
@@ -1 +1 @@
|
|
|
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,QAAQ,
|
|
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,12 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
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");
|
|
5
|
+
|
|
6
|
+
//#region src/firestore.event-stream.store.ts
|
|
7
|
+
var FirestoreEventStreamStore = class extends _ddd_ts_core.EventStreamStore {
|
|
8
|
+
constructor(firestore, serializer, eventBus) {
|
|
9
|
+
super(new require_firestore_event_stream_storage_layer.FirestoreEventStreamStorageLayer(firestore), serializer, eventBus);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
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,4 +1,4 @@
|
|
|
1
|
-
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";
|
|
2
2
|
import { Firestore } from "firebase-admin/firestore";
|
|
3
3
|
import { FirestoreProjectedStreamStorageLayer } from "./firestore.projected-stream.storage-layer";
|
|
4
4
|
export declare class FirestoreProjectedStreamReader<Event extends IEsEvent> extends ProjectedStreamReader<Event> {
|
|
@@ -1 +1 @@
|
|
|
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,QAAQ,
|
|
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,37 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
exports.FirestoreProjectedStreamReader = FirestoreProjectedStreamReader;
|
|
37
|
-
//# sourceMappingURL=firestore.projected-stream.reader.js.map
|
|
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");
|
|
5
|
+
|
|
6
|
+
//#region src/firestore.projected-stream.reader.ts
|
|
7
|
+
var FirestoreProjectedStreamReader = class extends _ddd_ts_core.ProjectedStreamReader {
|
|
8
|
+
storage;
|
|
9
|
+
serializer;
|
|
10
|
+
constructor(firestore, serializer) {
|
|
11
|
+
const storage = new require_firestore_projected_stream_storage_layer.FirestoreProjectedStreamStorageLayer(firestore);
|
|
12
|
+
super(storage, serializer);
|
|
13
|
+
this.storage = storage;
|
|
14
|
+
this.serializer = serializer;
|
|
15
|
+
}
|
|
16
|
+
async getCursor(savedChange) {
|
|
17
|
+
const serialized = await this.serializer.serialize(savedChange);
|
|
18
|
+
return this.storage.getCursor(serialized);
|
|
19
|
+
}
|
|
20
|
+
async get(cursor) {
|
|
21
|
+
const serialized = await this.storage.get(cursor);
|
|
22
|
+
if (!serialized) return;
|
|
23
|
+
return this.serializer.deserialize(serialized);
|
|
24
|
+
}
|
|
25
|
+
async slice(projectedStream, shard, startAfter, endAt, limit) {
|
|
26
|
+
const serialized = await this.storage.slice(projectedStream, shard, startAfter, endAt, limit);
|
|
27
|
+
return Promise.all(serialized.map((s) => this.serializer.deserialize(s)));
|
|
28
|
+
}
|
|
29
|
+
async *read(projectedStream, shard, startAfter, endAt) {
|
|
30
|
+
for await (const serialized of this.storage.read(projectedStream, shard, startAfter, endAt)) yield this.serializer.deserialize(serialized);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
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 };
|
|
@@ -1,4 +1,4 @@
|
|
|
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";
|
|
@@ -1 +1 @@
|
|
|
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,eAAe,
|
|
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"}
|