@ddd-ts/event-sourcing-firestore 0.0.0-compute-timeout-on-process.6 → 0.0.0-compute-timeout-on-process.8

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 (46) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +29 -0
  2. package/dist/firestore.event-lake.aggregate-store.js +12 -11
  3. package/dist/firestore.event-lake.aggregate-store.mjs +38 -0
  4. package/dist/firestore.event-lake.aggregate-store.mjs.map +1 -0
  5. package/dist/firestore.event-lake.storage-layer.d.ts +1 -1
  6. package/dist/firestore.event-lake.storage-layer.js +8 -7
  7. package/dist/firestore.event-lake.storage-layer.mjs +66 -0
  8. package/dist/firestore.event-lake.storage-layer.mjs.map +1 -0
  9. package/dist/firestore.event-lake.store.js +7 -7
  10. package/dist/firestore.event-lake.store.mjs +14 -0
  11. package/dist/firestore.event-lake.store.mjs.map +1 -0
  12. package/dist/firestore.event-stream.aggregate-store.js +15 -14
  13. package/dist/firestore.event-stream.aggregate-store.mjs +38 -0
  14. package/dist/firestore.event-stream.aggregate-store.mjs.map +1 -0
  15. package/dist/firestore.event-stream.storage-layer.d.ts +1 -1
  16. package/dist/firestore.event-stream.storage-layer.js +9 -8
  17. package/dist/firestore.event-stream.storage-layer.mjs +67 -0
  18. package/dist/firestore.event-stream.storage-layer.mjs.map +1 -0
  19. package/dist/firestore.event-stream.store.js +7 -7
  20. package/dist/firestore.event-stream.store.mjs +14 -0
  21. package/dist/firestore.event-stream.store.mjs.map +1 -0
  22. package/dist/firestore.projected-stream.reader.js +7 -7
  23. package/dist/firestore.projected-stream.reader.mjs +35 -0
  24. package/dist/firestore.projected-stream.reader.mjs.map +1 -0
  25. package/dist/firestore.projected-stream.storage-layer.js +20 -18
  26. package/dist/firestore.projected-stream.storage-layer.mjs +119 -0
  27. package/dist/firestore.projected-stream.storage-layer.mjs.map +1 -0
  28. package/dist/firestore.snapshotter.js +5 -5
  29. package/dist/firestore.snapshotter.mjs +36 -0
  30. package/dist/firestore.snapshotter.mjs.map +1 -0
  31. package/dist/index.js +29 -11
  32. package/dist/index.mjs +12 -0
  33. package/dist/projection/firestore.projector.js +48 -44
  34. package/dist/projection/firestore.projector.mjs +521 -0
  35. package/dist/projection/firestore.projector.mjs.map +1 -0
  36. package/package.json +16 -11
  37. package/dist/firestore.event-lake.aggregate-store.js.map +0 -1
  38. package/dist/firestore.event-lake.storage-layer.js.map +0 -1
  39. package/dist/firestore.event-lake.store.js.map +0 -1
  40. package/dist/firestore.event-stream.aggregate-store.js.map +0 -1
  41. package/dist/firestore.event-stream.storage-layer.js.map +0 -1
  42. package/dist/firestore.event-stream.store.js.map +0 -1
  43. package/dist/firestore.projected-stream.reader.js.map +0 -1
  44. package/dist/firestore.projected-stream.storage-layer.js.map +0 -1
  45. package/dist/firestore.snapshotter.js.map +0 -1
  46. package/dist/projection/firestore.projector.js.map +0 -1
@@ -1,33 +1,34 @@
1
- import { ISerializedFact, ISerializedSavedChange, LakeSource, ProjectedStream, ProjectedStreamStorageLayer, StreamSource } from "@ddd-ts/core";
2
- import { DefaultConverter } from "@ddd-ts/store-firestore";
3
- import { Filter, Firestore, 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";
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$1.deserialize({
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
- export { FirestoreLakeSourceFilter, FirestoreProjectedStreamStorageLayer, FirestoreStreamSourceFilter };
119
- //# sourceMappingURL=firestore.projected-stream.storage-layer.js.map
119
+ exports.FirestoreLakeSourceFilter = FirestoreLakeSourceFilter;
120
+ exports.FirestoreProjectedStreamStorageLayer = FirestoreProjectedStreamStorageLayer;
121
+ exports.FirestoreStreamSourceFilter = FirestoreStreamSourceFilter;
@@ -0,0 +1,119 @@
1
+ import { ISerializedFact, ISerializedSavedChange, LakeSource, ProjectedStream, ProjectedStreamStorageLayer, StreamSource } from "@ddd-ts/core";
2
+ import { DefaultConverter } from "@ddd-ts/store-firestore";
3
+ import { Filter, Firestore, 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 };
119
+ //# sourceMappingURL=firestore.projected-stream.storage-layer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore.projected-stream.storage-layer.mjs","names":["Cursor"],"sources":["../src/firestore.projected-stream.storage-layer.ts"],"sourcesContent":["import {\n ISerializedFact,\n ISerializedSavedChange,\n LakeSource,\n ProjectedStream,\n ProjectedStreamStorageLayer,\n StreamSource,\n} from \"@ddd-ts/core\";\nimport { DefaultConverter } from \"@ddd-ts/store-firestore\";\nimport {\n Filter,\n Firestore,\n QueryDocumentSnapshot,\n Timestamp,\n} from \"firebase-admin/firestore\";\nimport { MicrosecondTimestamp } from \"@ddd-ts/shape\";\nimport { Cursor } from \"@ddd-ts/core/dist/components/cursor\";\n\nexport class FirestoreLakeSourceFilter {\n filter(shard: string, lakeSource: LakeSource) {\n return Filter.and(\n Filter.where(`payload.${lakeSource.shardKey}`, \"==\", shard),\n Filter.where(\"name\", \"in\", lakeSource.events),\n );\n }\n}\n\nexport class FirestoreStreamSourceFilter {\n filter(shard: string, streamSource: StreamSource) {\n return Filter.and(\n Filter.where(\"aggregateType\", \"==\", streamSource.aggregateType),\n Filter.where(`payload.${streamSource.shardKey}`, \"==\", shard),\n Filter.where(\"name\", \"in\", streamSource.events),\n );\n }\n}\n\nexport class FirestoreProjectedStreamStorageLayer\n implements ProjectedStreamStorageLayer\n{\n constructor(\n private readonly firestore: Firestore,\n public readonly converter = new DefaultConverter(),\n ) {}\n\n async *read(\n projectedStream: ProjectedStream,\n shard: string,\n startAfter?: Cursor,\n endAt?: Cursor,\n ) {\n let query = this.firestore\n .collectionGroup(\"events\")\n .orderBy(\"occurredAt\")\n .orderBy(\"revision\");\n\n const filters = projectedStream.sources.map((source) => {\n if (source instanceof LakeSource) {\n return new FirestoreLakeSourceFilter().filter(shard, source);\n }\n if (source instanceof StreamSource) {\n return new FirestoreStreamSourceFilter().filter(shard, source);\n }\n throw new Error(\"Unknown source type\");\n });\n\n query = query.where(Filter.or(...filters));\n\n if (startAfter) {\n const ts = this.microsecondToTimestamp(startAfter.occurredAt);\n query = query.startAfter(ts, startAfter.revision);\n }\n\n if (endAt) {\n const ts = this.microsecondToTimestamp(endAt.occurredAt);\n query = query.endAt(ts, endAt.revision);\n }\n\n for await (const doc of query.stream() as AsyncIterable<QueryDocumentSnapshot>) {\n const data = this.converter.fromFirestore(doc);\n yield {\n id: data.eventId,\n ref: doc.ref.path,\n revision: data.revision,\n name: data.name,\n $name: data.name,\n payload: data.payload,\n occurredAt: data.occurredAt,\n version: data.version ?? 1,\n };\n }\n }\n public microsecondToTimestamp(microseconds: MicrosecondTimestamp) {\n const seconds = BigInt(microseconds.micros) / 1_000_000n;\n const nanoseconds = (BigInt(microseconds.micros) % 1_000_000n) * 1000n; // Convert to nanoseconds\n return new Timestamp(Number(seconds), Number(nanoseconds));\n }\n\n async get(cursor: Cursor) {\n const doc = await this.firestore.doc(cursor.ref).get();\n if (!doc.exists) {\n return undefined;\n }\n const data = this.converter.fromFirestoreSnapshot(doc) as any;\n return {\n id: data.eventId,\n ref: doc.ref.path,\n revision: data.revision,\n name: data.name,\n $name: data.name,\n payload: data.payload,\n occurredAt: data.occurredAt,\n version: data.version ?? 1,\n } as ISerializedFact;\n }\n\n async getCursor(\n savedChange: ISerializedSavedChange,\n ): Promise<Cursor | undefined> {\n const doc = await this.firestore.doc(savedChange.ref).get();\n if (!doc.exists) {\n return undefined;\n }\n const data = this.converter.fromFirestoreSnapshot(doc) as any;\n return Cursor.deserialize({\n eventId: data.eventId,\n ref: doc.ref.path,\n occurredAt: data.occurredAt,\n revision: data.revision,\n });\n }\n\n async slice(\n projectedStream: ProjectedStream,\n shard: string,\n startAfter?: Cursor,\n endAt?: Cursor,\n limit?: number,\n ) {\n let query = this.firestore\n .collectionGroup(\"events\")\n .orderBy(\"occurredAt\")\n .orderBy(\"revision\");\n\n const filters = projectedStream.sources.map((source) => {\n if (source instanceof LakeSource) {\n return new FirestoreLakeSourceFilter().filter(shard, source);\n }\n if (source instanceof StreamSource) {\n return new FirestoreStreamSourceFilter().filter(shard, source);\n }\n throw new Error(\"Unknown source type\");\n });\n\n query = query.where(Filter.or(...filters));\n\n if (startAfter) {\n const ts = this.microsecondToTimestamp(startAfter.occurredAt);\n query = query.startAfter(ts, startAfter.revision);\n }\n\n if (endAt) {\n const ts = this.microsecondToTimestamp(endAt.occurredAt);\n query = query.endAt(ts, endAt.revision);\n }\n\n if (limit) {\n query = query.limit(limit);\n }\n\n const all = await query.get();\n\n return all.docs.map((doc) => {\n const data = this.converter.fromFirestore(doc);\n return {\n id: data.eventId,\n ref: doc.ref.path,\n revision: data.revision,\n name: data.name,\n $name: data.name,\n payload: data.payload,\n occurredAt: data.occurredAt,\n version: data.version ?? 1,\n } as ISerializedFact;\n });\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import "@ddd-ts/core";
2
- import { FirestoreStore } from "@ddd-ts/store-firestore";
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");
3
4
 
4
5
  //#region src/firestore.snapshotter.ts
5
6
  var SnapshotSerializer = class {
@@ -24,7 +25,7 @@ var SnapshotSerializer = class {
24
25
  return instance;
25
26
  }
26
27
  };
27
- var FirestoreSnapshotter = class extends FirestoreStore {
28
+ var FirestoreSnapshotter = class extends _ddd_ts_store_firestore.FirestoreStore {
28
29
  constructor(aggregateType, database, serializer) {
29
30
  const collection = database.collection("event-store").doc(aggregateType).collection("streams");
30
31
  super(collection, new SnapshotSerializer(serializer, aggregateType), aggregateType);
@@ -32,5 +33,4 @@ var FirestoreSnapshotter = class extends FirestoreStore {
32
33
  };
33
34
 
34
35
  //#endregion
35
- export { FirestoreSnapshotter };
36
- //# sourceMappingURL=firestore.snapshotter.js.map
36
+ exports.FirestoreSnapshotter = FirestoreSnapshotter;
@@ -0,0 +1,36 @@
1
+ import "@ddd-ts/core";
2
+ import { FirestoreStore } from "@ddd-ts/store-firestore";
3
+
4
+ //#region src/firestore.snapshotter.ts
5
+ var SnapshotSerializer = class {
6
+ constructor(serializer, aggregateType) {
7
+ this.serializer = serializer;
8
+ this.aggregateType = aggregateType;
9
+ }
10
+ async serialize(instance) {
11
+ return {
12
+ ...await this.serializer.serialize(instance),
13
+ $name: this.aggregateType,
14
+ revision: instance.acknowledgedRevision
15
+ };
16
+ }
17
+ async deserialize(serialized) {
18
+ const { revision, ...content } = serialized;
19
+ const instance = await this.serializer.deserialize({
20
+ $name: this.aggregateType,
21
+ ...content
22
+ });
23
+ instance.acknowledgedRevision = Number(revision);
24
+ return instance;
25
+ }
26
+ };
27
+ var FirestoreSnapshotter = class extends FirestoreStore {
28
+ constructor(aggregateType, database, serializer) {
29
+ const collection = database.collection("event-store").doc(aggregateType).collection("streams");
30
+ super(collection, new SnapshotSerializer(serializer, aggregateType), aggregateType);
31
+ }
32
+ };
33
+
34
+ //#endregion
35
+ export { FirestoreSnapshotter };
36
+ //# sourceMappingURL=firestore.snapshotter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore.snapshotter.mjs","names":[],"sources":["../src/firestore.snapshotter.ts"],"sourcesContent":["import {\n type IEventSourced,\n type IIdentifiable,\n type ISerializer,\n} from \"@ddd-ts/core\";\nimport { FirestoreStore } from \"@ddd-ts/store-firestore\";\n\nclass SnapshotSerializer<A extends IEventSourced & IIdentifiable> {\n constructor(\n private readonly serializer: ISerializer<A>,\n private readonly aggregateType: string,\n ) {}\n\n async serialize(instance: A) {\n const serialized = await this.serializer.serialize(instance);\n return {\n ...serialized,\n $name: this.aggregateType,\n revision: instance.acknowledgedRevision,\n };\n }\n\n async deserialize(serialized: any) {\n const { revision, ...content } = serialized;\n const instance = await this.serializer.deserialize({\n $name: this.aggregateType,\n ...content,\n });\n instance.acknowledgedRevision = Number(revision);\n return instance;\n }\n}\n\nexport class FirestoreSnapshotter<\n A extends IEventSourced & IIdentifiable,\n> extends FirestoreStore<A> {\n constructor(\n aggregateType: string,\n database: FirebaseFirestore.Firestore,\n serializer: ISerializer<A>,\n ) {\n const collection = database\n .collection(\"event-store\")\n .doc(aggregateType)\n .collection(\"streams\");\n super(\n collection,\n new SnapshotSerializer(serializer, aggregateType),\n aggregateType,\n );\n }\n}\n"],"mappings":";;;;AAOA,IAAM,qBAAN,MAAkE;CAChE,YACE,AAAiB,YACjB,AAAiB,eACjB;EAFiB;EACA;;CAGnB,MAAM,UAAU,UAAa;AAE3B,SAAO;GACL,GAFiB,MAAM,KAAK,WAAW,UAAU,SAAS;GAG1D,OAAO,KAAK;GACZ,UAAU,SAAS;GACpB;;CAGH,MAAM,YAAY,YAAiB;EACjC,MAAM,EAAE,UAAU,GAAG,YAAY;EACjC,MAAM,WAAW,MAAM,KAAK,WAAW,YAAY;GACjD,OAAO,KAAK;GACZ,GAAG;GACJ,CAAC;AACF,WAAS,uBAAuB,OAAO,SAAS;AAChD,SAAO;;;AAIX,IAAa,uBAAb,cAEU,eAAkB;CAC1B,YACE,eACA,UACA,YACA;EACA,MAAM,aAAa,SAChB,WAAW,cAAc,CACzB,IAAI,cAAc,CAClB,WAAW,UAAU;AACxB,QACE,YACA,IAAI,mBAAmB,YAAY,cAAc,EACjD,cACD"}
package/dist/index.js CHANGED
@@ -1,12 +1,30 @@
1
- import { FirestoreEventLakeStorageLayer } from "./firestore.event-lake.storage-layer.js";
2
- import { FirestoreEventLakeStore } from "./firestore.event-lake.store.js";
3
- import { FirestoreEventStreamStorageLayer } from "./firestore.event-stream.storage-layer.js";
4
- import { FirestoreEventStreamStore } from "./firestore.event-stream.store.js";
5
- import { FirestoreSnapshotter } from "./firestore.snapshotter.js";
6
- import { FirestoreEventStreamAggregateStore, MakeFirestoreEventStreamAggregateStore } from "./firestore.event-stream.aggregate-store.js";
7
- import { FirestoreEventLakeAggregateStore, MakeFirestoreEventLakeAggregateStore } from "./firestore.event-lake.aggregate-store.js";
8
- import { FirestoreLakeSourceFilter, FirestoreProjectedStreamStorageLayer, FirestoreStreamSourceFilter } from "./firestore.projected-stream.storage-layer.js";
9
- import { FirestoreProjectedStreamReader } from "./firestore.projected-stream.reader.js";
10
- import { AlreadyEnqueuedError, ClaimerId, FirestoreProjector, FirestoreQueueStore, Task } from "./projection/firestore.projector.js";
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_firestore_event_lake_storage_layer = require('./firestore.event-lake.storage-layer.js');
3
+ const require_firestore_event_lake_store = require('./firestore.event-lake.store.js');
4
+ const require_firestore_event_stream_storage_layer = require('./firestore.event-stream.storage-layer.js');
5
+ const require_firestore_event_stream_store = require('./firestore.event-stream.store.js');
6
+ const require_firestore_snapshotter = require('./firestore.snapshotter.js');
7
+ const require_firestore_event_stream_aggregate_store = require('./firestore.event-stream.aggregate-store.js');
8
+ const require_firestore_event_lake_aggregate_store = require('./firestore.event-lake.aggregate-store.js');
9
+ const require_firestore_projected_stream_storage_layer = require('./firestore.projected-stream.storage-layer.js');
10
+ const require_firestore_projected_stream_reader = require('./firestore.projected-stream.reader.js');
11
+ const require_firestore_projector = require('./projection/firestore.projector.js');
11
12
 
12
- export { AlreadyEnqueuedError, ClaimerId, FirestoreEventLakeAggregateStore, FirestoreEventLakeStorageLayer, FirestoreEventLakeStore, FirestoreEventStreamAggregateStore, FirestoreEventStreamStorageLayer, FirestoreEventStreamStore, FirestoreLakeSourceFilter, FirestoreProjectedStreamReader, FirestoreProjectedStreamStorageLayer, FirestoreProjector, FirestoreQueueStore, FirestoreSnapshotter, FirestoreStreamSourceFilter, MakeFirestoreEventLakeAggregateStore, MakeFirestoreEventStreamAggregateStore, Task };
13
+ exports.AlreadyEnqueuedError = require_firestore_projector.AlreadyEnqueuedError;
14
+ exports.ClaimerId = require_firestore_projector.ClaimerId;
15
+ exports.FirestoreEventLakeAggregateStore = require_firestore_event_lake_aggregate_store.FirestoreEventLakeAggregateStore;
16
+ exports.FirestoreEventLakeStorageLayer = require_firestore_event_lake_storage_layer.FirestoreEventLakeStorageLayer;
17
+ exports.FirestoreEventLakeStore = require_firestore_event_lake_store.FirestoreEventLakeStore;
18
+ exports.FirestoreEventStreamAggregateStore = require_firestore_event_stream_aggregate_store.FirestoreEventStreamAggregateStore;
19
+ exports.FirestoreEventStreamStorageLayer = require_firestore_event_stream_storage_layer.FirestoreEventStreamStorageLayer;
20
+ exports.FirestoreEventStreamStore = require_firestore_event_stream_store.FirestoreEventStreamStore;
21
+ exports.FirestoreLakeSourceFilter = require_firestore_projected_stream_storage_layer.FirestoreLakeSourceFilter;
22
+ exports.FirestoreProjectedStreamReader = require_firestore_projected_stream_reader.FirestoreProjectedStreamReader;
23
+ exports.FirestoreProjectedStreamStorageLayer = require_firestore_projected_stream_storage_layer.FirestoreProjectedStreamStorageLayer;
24
+ exports.FirestoreProjector = require_firestore_projector.FirestoreProjector;
25
+ exports.FirestoreQueueStore = require_firestore_projector.FirestoreQueueStore;
26
+ exports.FirestoreSnapshotter = require_firestore_snapshotter.FirestoreSnapshotter;
27
+ exports.FirestoreStreamSourceFilter = require_firestore_projected_stream_storage_layer.FirestoreStreamSourceFilter;
28
+ exports.MakeFirestoreEventLakeAggregateStore = require_firestore_event_lake_aggregate_store.MakeFirestoreEventLakeAggregateStore;
29
+ exports.MakeFirestoreEventStreamAggregateStore = require_firestore_event_stream_aggregate_store.MakeFirestoreEventStreamAggregateStore;
30
+ exports.Task = require_firestore_projector.Task;
package/dist/index.mjs ADDED
@@ -0,0 +1,12 @@
1
+ import { FirestoreEventLakeStorageLayer } from "./firestore.event-lake.storage-layer.mjs";
2
+ import { FirestoreEventLakeStore } from "./firestore.event-lake.store.mjs";
3
+ import { FirestoreEventStreamStorageLayer } from "./firestore.event-stream.storage-layer.mjs";
4
+ import { FirestoreEventStreamStore } from "./firestore.event-stream.store.mjs";
5
+ import { FirestoreSnapshotter } from "./firestore.snapshotter.mjs";
6
+ import { FirestoreEventStreamAggregateStore, MakeFirestoreEventStreamAggregateStore } from "./firestore.event-stream.aggregate-store.mjs";
7
+ import { FirestoreEventLakeAggregateStore, MakeFirestoreEventLakeAggregateStore } from "./firestore.event-lake.aggregate-store.mjs";
8
+ import { FirestoreLakeSourceFilter, FirestoreProjectedStreamStorageLayer, FirestoreStreamSourceFilter } from "./firestore.projected-stream.storage-layer.mjs";
9
+ import { FirestoreProjectedStreamReader } from "./firestore.projected-stream.reader.mjs";
10
+ import { AlreadyEnqueuedError, ClaimerId, FirestoreProjector, FirestoreQueueStore, Task } from "./projection/firestore.projector.mjs";
11
+
12
+ export { AlreadyEnqueuedError, ClaimerId, FirestoreEventLakeAggregateStore, FirestoreEventLakeStorageLayer, FirestoreEventLakeStore, FirestoreEventStreamAggregateStore, FirestoreEventStreamStorageLayer, FirestoreEventStreamStore, FirestoreLakeSourceFilter, FirestoreProjectedStreamReader, FirestoreProjectedStreamStorageLayer, FirestoreProjector, FirestoreQueueStore, FirestoreSnapshotter, FirestoreStreamSourceFilter, MakeFirestoreEventLakeAggregateStore, MakeFirestoreEventStreamAggregateStore, Task };
@@ -1,7 +1,8 @@
1
- import { CheckpointId, Cursor, ESProjection, EventId, IEsEvent, IFact, ISavedChange, Lock, ProjectedStream, ProjectedStreamReader, Serialized } from "@ddd-ts/core";
2
- import { DefaultConverter, FirestoreTransaction } from "@ddd-ts/store-firestore";
3
- import { FieldValue, Firestore, Timestamp, WriteBatch } from "firebase-admin/firestore";
4
- import { Mapping, MicrosecondTimestamp, Optional, Shape } from "@ddd-ts/shape";
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");
5
6
 
6
7
  //#region src/projection/firestore.projector.ts
7
8
  const Status = {
@@ -15,7 +16,7 @@ const TaskState = {
15
16
  MISSING: "MISSING"
16
17
  };
17
18
  const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
18
- const RETENTION = MicrosecondTimestamp.MONTH;
19
+ const RETENTION = _ddd_ts_shape.MicrosecondTimestamp.MONTH;
19
20
  var FirestoreProjector = class {
20
21
  _unclaim = true;
21
22
  constructor(projection, reader, queue, config = {
@@ -183,19 +184,19 @@ var AlreadyEnqueuedError = class extends Error {
183
184
  }
184
185
  };
185
186
  var FirestoreQueueStore = class {
186
- converter = new DefaultConverter();
187
+ converter = new _ddd_ts_store_firestore.DefaultConverter();
187
188
  collection;
188
189
  constructor(db) {
189
190
  this.db = db;
190
191
  this.collection = db.collection("checkpoints");
191
192
  }
192
193
  timestampToMicroseconds(timestamp) {
193
- return new MicrosecondTimestamp(BigInt(timestamp.seconds) * BigInt(1e6) + BigInt(timestamp.nanoseconds) / BigInt(1e3));
194
+ return new _ddd_ts_shape.MicrosecondTimestamp(BigInt(timestamp.seconds) * BigInt(1e6) + BigInt(timestamp.nanoseconds) / BigInt(1e3));
194
195
  }
195
196
  microsecondsToTimestamp(microseconds) {
196
197
  const seconds = BigInt(microseconds.micros) / 1000000n;
197
198
  const nanoseconds = BigInt(microseconds.micros) % 1000000n * 1000n;
198
- return new Timestamp(Number(seconds), Number(nanoseconds));
199
+ return new firebase_admin_firestore.Timestamp(Number(seconds), Number(nanoseconds));
199
200
  }
200
201
  async enqueue(checkpointId, tasks) {
201
202
  const batch = this.collection.firestore.batch();
@@ -221,11 +222,11 @@ var FirestoreQueueStore = class {
221
222
  const ref = this.queued(checkpointId, task.id);
222
223
  batch.update(ref, {
223
224
  claimer: claimer.serialize(),
224
- claimedAt: FieldValue.serverTimestamp(),
225
- [`claimsMetadata.${claimer.serialize()}`]: { claimedAt: FieldValue.serverTimestamp() },
226
- claimIds: FieldValue.arrayUnion(claimer.serialize()),
227
- attempts: FieldValue.increment(1),
228
- remaining: FieldValue.increment(-1)
225
+ claimedAt: firebase_admin_firestore.FieldValue.serverTimestamp(),
226
+ [`claimsMetadata.${claimer.serialize()}`]: { claimedAt: firebase_admin_firestore.FieldValue.serverTimestamp() },
227
+ claimIds: firebase_admin_firestore.FieldValue.arrayUnion(claimer.serialize()),
228
+ attempts: firebase_admin_firestore.FieldValue.increment(1),
229
+ remaining: firebase_admin_firestore.FieldValue.increment(-1)
229
230
  }, { lastUpdateTime: this.microsecondsToTimestamp(task.lastUpdateTime) });
230
231
  }
231
232
  await batch.commit();
@@ -235,7 +236,7 @@ var FirestoreQueueStore = class {
235
236
  if (!headDoc) return;
236
237
  const headData = this.converter.fromFirestoreSnapshot(headDoc);
237
238
  if (!headData) return;
238
- return headDoc ? Cursor.deserialize({
239
+ return headDoc ? _ddd_ts_core.Cursor.deserialize({
239
240
  ref: headData.ref,
240
241
  occurredAt: headData.occurredAt,
241
242
  revision: headData.revision,
@@ -259,8 +260,8 @@ var FirestoreQueueStore = class {
259
260
  for (const task of expiredTasks) {
260
261
  const ref = this.queued(checkpointId, task.id);
261
262
  batch.update(ref, {
262
- claimer: FieldValue.delete(),
263
- claimedAt: FieldValue.delete(),
263
+ claimer: firebase_admin_firestore.FieldValue.delete(),
264
+ claimedAt: firebase_admin_firestore.FieldValue.delete(),
264
265
  claimIds: task.claimIds
265
266
  }, { lastUpdateTime: this.microsecondsToTimestamp(task.lastUpdateTime) });
266
267
  }
@@ -280,9 +281,9 @@ var FirestoreQueueStore = class {
280
281
  for (const task of tasks) {
281
282
  const ref = this.queued(checkpointId, task.id);
282
283
  batch.update(ref, {
283
- claimer: FieldValue.delete(),
284
- claimedAt: FieldValue.delete(),
285
- claimIds: FieldValue.arrayRemove(task.currentClaimId)
284
+ claimer: firebase_admin_firestore.FieldValue.delete(),
285
+ claimedAt: firebase_admin_firestore.FieldValue.delete(),
286
+ claimIds: firebase_admin_firestore.FieldValue.arrayRemove(task.currentClaimId)
286
287
  }, { lastUpdateTime: this.microsecondsToTimestamp(task.lastUpdateTime) });
287
288
  }
288
289
  await batch.commit();
@@ -301,7 +302,7 @@ var FirestoreQueueStore = class {
301
302
  if (data.processed === true) return TaskState.PROCESSED;
302
303
  return TaskState.ENQUEUED;
303
304
  }
304
- const lastRetention = MicrosecondTimestamp.now().sub(RETENTION);
305
+ const lastRetention = _ddd_ts_shape.MicrosecondTimestamp.now().sub(RETENTION);
305
306
  if (cursor.isOlderThan(lastRetention)) return TaskState.PROCESSED;
306
307
  return TaskState.MISSING;
307
308
  }
@@ -321,14 +322,14 @@ var FirestoreQueueStore = class {
321
322
  const ref = this.queued(id, eventId);
322
323
  trx.transaction.update(ref, {
323
324
  processed: true,
324
- [`claimsMetadata.${claimerId.serialize()}.processedAt`]: FieldValue.serverTimestamp()
325
+ [`claimsMetadata.${claimerId.serialize()}.processedAt`]: firebase_admin_firestore.FieldValue.serverTimestamp()
325
326
  });
326
327
  }
327
328
  return;
328
329
  }
329
330
  await Promise.all(eventIds.map((eventId) => this.queued(id, eventId).update({
330
331
  processed: true,
331
- [`claimsMetadata.${claimerId.serialize()}.processedAt`]: FieldValue.serverTimestamp()
332
+ [`claimsMetadata.${claimerId.serialize()}.processedAt`]: firebase_admin_firestore.FieldValue.serverTimestamp()
332
333
  })));
333
334
  }
334
335
  async getTailCursor(id) {
@@ -336,7 +337,7 @@ var FirestoreQueueStore = class {
336
337
  if (!tailDoc) return;
337
338
  const tailData = this.converter.fromFirestoreSnapshot(tailDoc);
338
339
  if (!tailData) return;
339
- return tailDoc ? Cursor.deserialize({
340
+ return tailDoc ? _ddd_ts_core.Cursor.deserialize({
340
341
  ref: tailData.ref,
341
342
  occurredAt: tailData.occurredAt,
342
343
  revision: tailData.revision,
@@ -344,7 +345,7 @@ var FirestoreQueueStore = class {
344
345
  }) : void 0;
345
346
  }
346
347
  async cleanup(id) {
347
- const aMonthAgo = MicrosecondTimestamp.now().sub(MicrosecondTimestamp.WEEK.mult(4));
348
+ const aMonthAgo = _ddd_ts_shape.MicrosecondTimestamp.now().sub(_ddd_ts_shape.MicrosecondTimestamp.WEEK.mult(4));
348
349
  const query = this.queue(id).where("remaining", ">", 0).where("occurredAt", "<", aMonthAgo.serialize()).orderBy("occurredAt", "asc").orderBy("revision", "asc");
349
350
  const TRAIL = 1;
350
351
  const snapshot = await query.get();
@@ -374,14 +375,14 @@ var FirestoreQueueStore = class {
374
375
  * correct point in time, avoiding reprocessing of old events.
375
376
  */
376
377
  async seed(checkpointId) {
377
- const cursor = new Cursor({
378
+ const cursor = new _ddd_ts_core.Cursor({
378
379
  ref: "seed",
379
- occurredAt: MicrosecondTimestamp.now(),
380
+ occurredAt: _ddd_ts_shape.MicrosecondTimestamp.now(),
380
381
  revision: 0,
381
- eventId: EventId.generate()
382
+ eventId: _ddd_ts_core.EventId.generate()
382
383
  });
383
384
  const task = new Task({
384
- id: EventId.generate(),
385
+ id: _ddd_ts_core.EventId.generate(),
385
386
  ref: "Seed",
386
387
  occurredAt: cursor.occurredAt,
387
388
  revision: cursor.revision,
@@ -391,7 +392,7 @@ var FirestoreQueueStore = class {
391
392
  claimedAt: void 0,
392
393
  claimsMetadata: {},
393
394
  claimIds: [],
394
- lock: new Lock({}),
395
+ lock: new _ddd_ts_core.Lock({}),
395
396
  remaining: 1,
396
397
  claimTimeout: 0,
397
398
  skipAfter: 0,
@@ -407,30 +408,30 @@ var FirestoreQueueStore = class {
407
408
  }
408
409
  }
409
410
  };
410
- var ClaimerId = class extends EventId {};
411
- var Task = class Task extends Shape({
412
- id: EventId,
411
+ var ClaimerId = class extends _ddd_ts_core.EventId {};
412
+ var Task = class Task extends (0, _ddd_ts_shape.Shape)({
413
+ id: _ddd_ts_core.EventId,
413
414
  ref: String,
414
- occurredAt: MicrosecondTimestamp,
415
+ occurredAt: _ddd_ts_shape.MicrosecondTimestamp,
415
416
  revision: Number,
416
417
  attempts: Number,
417
418
  processed: Boolean,
418
- claimer: Optional(String),
419
- claimedAt: Optional(MicrosecondTimestamp),
420
- claimsMetadata: Mapping([{
421
- claimedAt: MicrosecondTimestamp,
422
- processedAt: Optional(MicrosecondTimestamp)
419
+ claimer: (0, _ddd_ts_shape.Optional)(String),
420
+ claimedAt: (0, _ddd_ts_shape.Optional)(_ddd_ts_shape.MicrosecondTimestamp),
421
+ claimsMetadata: (0, _ddd_ts_shape.Mapping)([{
422
+ claimedAt: _ddd_ts_shape.MicrosecondTimestamp,
423
+ processedAt: (0, _ddd_ts_shape.Optional)(_ddd_ts_shape.MicrosecondTimestamp)
423
424
  }]),
424
425
  claimIds: [String],
425
- lock: Lock,
426
+ lock: _ddd_ts_core.Lock,
426
427
  skipAfter: Number,
427
428
  remaining: Number,
428
429
  isolateAfter: Number,
429
430
  claimTimeout: Number,
430
- lastUpdateTime: Optional(MicrosecondTimestamp)
431
+ lastUpdateTime: (0, _ddd_ts_shape.Optional)(_ddd_ts_shape.MicrosecondTimestamp)
431
432
  }) {
432
433
  get cursor() {
433
- return new Cursor({
434
+ return new _ddd_ts_core.Cursor({
434
435
  ref: this.ref,
435
436
  occurredAt: this.occurredAt,
436
437
  revision: this.revision,
@@ -477,7 +478,7 @@ var Task = class Task extends Shape({
477
478
  if (!claimer) return;
478
479
  const claimInfo = this.claimsMetadata[claimer];
479
480
  if (!claimInfo || !claimInfo.claimedAt) return;
480
- if (MicrosecondTimestamp.now().micros - claimInfo.claimedAt.micros > BigInt(this.claimTimeout) * 1000n) this.claimIds = this.claimIds.filter((id) => id !== claimer);
481
+ if (_ddd_ts_shape.MicrosecondTimestamp.now().micros - claimInfo.claimedAt.micros > BigInt(this.claimTimeout) * 1000n) this.claimIds = this.claimIds.filter((id) => id !== claimer);
481
482
  }
482
483
  static deserializeWithLastUpdateTime(data, timestamp) {
483
484
  return Task.deserialize({
@@ -517,5 +518,8 @@ var Task = class Task extends Shape({
517
518
  };
518
519
 
519
520
  //#endregion
520
- export { AlreadyEnqueuedError, ClaimerId, FirestoreProjector, FirestoreQueueStore, Task };
521
- //# sourceMappingURL=firestore.projector.js.map
521
+ exports.AlreadyEnqueuedError = AlreadyEnqueuedError;
522
+ exports.ClaimerId = ClaimerId;
523
+ exports.FirestoreProjector = FirestoreProjector;
524
+ exports.FirestoreQueueStore = FirestoreQueueStore;
525
+ exports.Task = Task;