@eventualize/core 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/EvDbStream.test.js +10 -16
  2. package/dist/EvDbStream.test.js.map +1 -1
  3. package/dist/adapters/IEvDbStorageAdapter.d.ts +7 -0
  4. package/dist/adapters/IEvDbStorageAdapter.js +2 -0
  5. package/dist/adapters/IEvDbStorageAdapter.js.map +1 -0
  6. package/dist/codegen/generateStreamFactory.d.ts +18 -0
  7. package/dist/codegen/generateStreamFactory.js +97 -0
  8. package/dist/codegen/generateStreamFactory.js.map +1 -0
  9. package/dist/factories/EvDbStreamFactory.d.ts +51 -0
  10. package/dist/factories/EvDbStreamFactory.js +103 -0
  11. package/dist/factories/EvDbStreamFactory.js.map +1 -0
  12. package/dist/factories/EvDbStreamFactoryTypes.d.ts +20 -0
  13. package/dist/factories/EvDbStreamFactoryTypes.js +2 -0
  14. package/dist/factories/EvDbStreamFactoryTypes.js.map +1 -0
  15. package/dist/factories/EvDbViewFactory.d.ts +24 -0
  16. package/dist/{EvDbViewFactory.js → factories/EvDbViewFactory.js} +4 -4
  17. package/dist/factories/EvDbViewFactory.js.map +1 -0
  18. package/dist/factories/EvDbViewFactoryTypes.d.ts +24 -0
  19. package/dist/factories/EvDbViewFactoryTypes.js +2 -0
  20. package/dist/factories/EvDbViewFactoryTypes.js.map +1 -0
  21. package/dist/factories/IEvDbStreamFactory.d.ts +13 -0
  22. package/dist/factories/IEvDbStreamFactory.js +2 -0
  23. package/dist/factories/IEvDbStreamFactory.js.map +1 -0
  24. package/dist/factories/StreamFactoryBuilder.d.ts +35 -0
  25. package/dist/factories/StreamFactoryBuilder.js +67 -0
  26. package/dist/factories/StreamFactoryBuilder.js.map +1 -0
  27. package/dist/store/EvDbStream.d.ts +150 -0
  28. package/dist/store/EvDbStream.js +192 -0
  29. package/dist/store/EvDbStream.js.map +1 -0
  30. package/dist/stream/IEvDbStream.d.ts +0 -0
  31. package/dist/stream/IEvDbStream.js +2 -0
  32. package/dist/stream/IEvDbStream.js.map +1 -0
  33. package/dist/view/EvDbView.d.ts +19 -0
  34. package/dist/view/EvDbView.js +26 -0
  35. package/dist/view/EvDbView.js.map +1 -0
  36. package/dist/view/EvDbViewRaw.d.ts +22 -0
  37. package/dist/view/EvDbViewRaw.js +41 -0
  38. package/dist/view/EvDbViewRaw.js.map +1 -0
  39. package/package.json +2 -2
  40. package/dist/EvDbEventStore.d.ts +0 -123
  41. package/dist/EvDbEventStore.js +0 -182
  42. package/dist/EvDbEventStore.js.map +0 -1
  43. package/dist/EvDbStream.d.ts +0 -49
  44. package/dist/EvDbStream.js +0 -115
  45. package/dist/EvDbStream.js.map +0 -1
  46. package/dist/EvDbStreamFactory.d.ts +0 -97
  47. package/dist/EvDbStreamFactory.js +0 -155
  48. package/dist/EvDbStreamFactory.js.map +0 -1
  49. package/dist/EvDbView.d.ts +0 -34
  50. package/dist/EvDbView.js +0 -64
  51. package/dist/EvDbView.js.map +0 -1
  52. package/dist/EvDbViewFactory.d.ts +0 -45
  53. package/dist/EvDbViewFactory.js.map +0 -1
package/dist/EvDbView.js DELETED
@@ -1,64 +0,0 @@
1
- import { EvDbStoredSnapshotData } from "@eventualize/types/EvDbStoredSnapshotData";
2
- export class EvDbViewRaw {
3
- constructor(_storageAdapter, address, snapshot) {
4
- this._storageAdapter = _storageAdapter;
5
- this.address = address;
6
- const storeOffset = snapshot.offset ?? 0;
7
- this._memoryOffset = storeOffset;
8
- this._storeOffset = storeOffset;
9
- this._storedAt = snapshot.storedAt ?? new Date();
10
- }
11
- get storedAt() { return this._storedAt; }
12
- ;
13
- get storeOffset() { return this._storeOffset; }
14
- ;
15
- get memoryOffset() { return this._memoryOffset; }
16
- ;
17
- shouldStoreSnapshot(offsetGapFromLastSave, durationSinceLastSaveMs) {
18
- return true;
19
- }
20
- applyEvent(e) {
21
- const offset = e.streamCursor.offset;
22
- if (this.memoryOffset >= offset) {
23
- return;
24
- }
25
- this.onApplyEvent(e);
26
- this._memoryOffset = offset;
27
- }
28
- async store() {
29
- const eventsSinceLatestSnapshot = this.memoryOffset - this.storeOffset;
30
- const secondsSinceLatestSnapshot = new Date().getTime() - this.storedAt.getTime();
31
- if (!this.shouldStoreSnapshot(eventsSinceLatestSnapshot, secondsSinceLatestSnapshot)) {
32
- return;
33
- }
34
- const snapshotData = this.getSnapshotData();
35
- await this._storageAdapter.storeSnapshotAsync(snapshotData);
36
- this._storeOffset = this._memoryOffset;
37
- }
38
- }
39
- export class EvDbView extends EvDbViewRaw {
40
- getDefaultState() {
41
- return this.defaultState;
42
- }
43
- ;
44
- get state() { return this._state; }
45
- // public getState(): TState {
46
- // return this._state;
47
- // }
48
- constructor(address, storageAdapter, snapshot, defaultState) {
49
- super(storageAdapter, address, snapshot);
50
- this.defaultState = defaultState;
51
- this._state = this.getDefaultState();
52
- if (snapshot.offset === 0)
53
- this._state = this.getDefaultState();
54
- else
55
- this._state = snapshot.state;
56
- }
57
- getSnapshotData() {
58
- return EvDbStoredSnapshotData.fromAddress(this.address, this.memoryOffset, this.storeOffset, this._state);
59
- }
60
- onApplyEvent(e) {
61
- this._state = this.handleOnApply(this._state, e.payload, e);
62
- }
63
- }
64
- //# sourceMappingURL=EvDbView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvDbView.js","sourceRoot":"","sources":["../src/EvDbView.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- import { EvDbView } from './EvDbView.js';
2
- import IEvDbEventPayload from "@eventualize/types/IEvDbEventPayload";
3
- import IEvDbEventMetadata from '@eventualize/types/IEvDbEventMetadata';
4
- import IEvDbStorageSnapshotAdapter from '@eventualize/types/IEvDbStorageSnapshotAdapter';
5
- /**
6
- * Handler function type for applying an event to state
7
- */
8
- export type EvDbViewEventHandler<TState, TEvent extends IEvDbEventPayload> = (oldState: TState, event: TEvent, metadata: IEvDbEventMetadata) => TState;
9
- /**
10
- * Map of event handlers - one handler per event type in the union
11
- * Key is the payloadType string, value is the handler function
12
- */
13
- export type EvDbStreamEventHandlersMap<TState, TEvents extends IEvDbEventPayload> = {
14
- [K in TEvents['payloadType']]: EvDbViewEventHandler<TState, Extract<TEvents, {
15
- payloadType: K;
16
- }>>;
17
- };
18
- /**
19
- * Configuration for creating a view
20
- */
21
- export interface ViewConfig<TState, TEvents extends IEvDbEventPayload> {
22
- viewName: string;
23
- streamType: string;
24
- defaultState: TState;
25
- handlers: Partial<EvDbStreamEventHandlersMap<TState, TEvents>>;
26
- }
27
- /**
28
- * View Factory - creates view instances with the handlers map
29
- */
30
- export declare class ViewFactory<TState, TEvents extends IEvDbEventPayload> {
31
- private readonly config;
32
- constructor(config: ViewConfig<TState, TEvents>);
33
- /**
34
- * Creates a view instance
35
- */
36
- create(streamId: string, storageAdapter: IEvDbStorageSnapshotAdapter): EvDbView<TState>;
37
- /**
38
- * Get a view instance from event store
39
- */
40
- get(streamId: string, storageAdapter: IEvDbStorageSnapshotAdapter): Promise<EvDbView<TState>>;
41
- }
42
- /**
43
- * Factory function to create a ViewFactory
44
- */
45
- export declare function createViewFactory<TState, TEvents extends IEvDbEventPayload>(config: ViewConfig<TState, TEvents>): ViewFactory<TState, TEvents>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvDbViewFactory.js","sourceRoot":"","sources":["../src/EvDbViewFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AA+BvF;;GAEG;AACH,MAAM,WAAuD,SAAQ,QAAgB;IAEjF,YACI,WAA4B,EAC5B,cAA2C,EAC3C,QAA0C,EAC1B,MAAmC;QAEnD,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAFlD,WAAM,GAAN,MAAM,CAA6B;QAGnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAGD;;OAEG;IACI,aAAa,CAAC,QAAgB,EAAE,KAAc,EAAE,QAA4B;QAC/E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAgD,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAElD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,yEAAyE;YACzE,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAY,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,YAA6B,MAAmC;QAAnC,WAAM,GAAN,MAAM,CAA6B;IAAI,CAAC;IAErE;;OAEG;IACI,MAAM,CACT,QAAgB,EAChB,cAA2C;QAE3C,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE7E,OAAO,IAAI,WAAW,CAClB,WAAW,EACX,cAAc,EACd,wBAAwB,CAAC,aAAa,EAAU,EAChD,IAAI,CAAC,MAAM,CACd,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,GAAG,CACZ,QAAgB,EAChB,cAA2C;QAE3C,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE7E,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAEnE,OAAO,IAAI,WAAW,CAClB,WAAW,EACX,cAAc,EACd,QAAQ,EACR,IAAI,CAAC,MAAM,CACd,CAAC;IACN,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC7B,MAAmC;IAEnC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}