@eventualize/core 2.1.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.
@@ -12,10 +12,4 @@ describe("EvDbView", () => {
12
12
  assert.ok(module.EvDbView, "EvDbView should be exported");
13
13
  });
14
14
  });
15
- describe("EvDbEventStore", () => {
16
- test("module can be imported", async () => {
17
- const module = await import("./store/EvDbEventStoreBuilder.js");
18
- assert.ok(module.EvDbEventStoreBuilder, "EvDbEventStoreBuilder should be exported");
19
- });
20
- });
21
15
  //# sourceMappingURL=EvDbStream.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvDbStream.test.js","sourceRoot":"","sources":["../src/EvDbStream.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,0CAA0C,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;QAChE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"EvDbStream.test.js","sourceRoot":"","sources":["../src/EvDbStream.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,0CAA0C,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -4,6 +4,7 @@ import type IEvDbEventPayload from "@eventualize/types/events/IEvDbEventPayload"
4
4
  import EvDbStream from "../store/EvDbStream.js";
5
5
  import type { EvDbView } from "../view/EvDbView.js";
6
6
  import type { EvDbStreamFactoryConfig } from "./EvDbStreamFactoryTypes.js";
7
+ import { IEvDbStreamFactory } from "./IEvDbStreamFactory.js";
7
8
  /**
8
9
  * Type helper to extract event methods
9
10
  */
@@ -23,7 +24,7 @@ export type StreamWithEventMethods<TEvents extends IEvDbEventPayload, TViews ext
23
24
  /**
24
25
  * Stream Factory - creates stream instances with configured views and dynamic event methods
25
26
  */
26
- export declare class EvDbStreamFactory<TEvents extends IEvDbEventPayload, TStreamType extends string, TViews extends Record<string, EvDbView<any>> = {}> {
27
+ export declare class EvDbStreamFactory<TEvents extends IEvDbEventPayload, TStreamType extends string, TViews extends Record<string, EvDbView<any>> = {}> implements IEvDbStreamFactory<TEvents, TStreamType, TViews> {
27
28
  private readonly config;
28
29
  private DynamicStreamClass;
29
30
  constructor(config: EvDbStreamFactoryConfig<TEvents, TStreamType>);
@@ -46,5 +47,5 @@ export declare class EvDbStreamFactory<TEvents extends IEvDbEventPayload, TStrea
46
47
  /**
47
48
  * Factory function to create a StreamFactory
48
49
  */
49
- export declare function createEvDbStreamFactory<TEvents extends IEvDbEventPayload, TStreamType extends string, TViews extends Record<string, EvDbView<any>> = {}>(config: EvDbStreamFactoryConfig<TEvents, TStreamType>): EvDbStreamFactory<TEvents, TStreamType, TViews>;
50
+ export declare function createEvDbStreamFactory<TEvents extends IEvDbEventPayload, TStreamType extends string, TViews extends Record<string, EvDbView<any>> = {}>(config: EvDbStreamFactoryConfig<TEvents, TStreamType>): IEvDbStreamFactory<TEvents, TStreamType, TViews>;
50
51
  export type { EvDbStreamFactoryConfig, EventTypeConfig } from "./EvDbStreamFactoryTypes.js";
@@ -1 +1 @@
1
- {"version":3,"file":"EvDbStreamFactory.js","sourceRoot":"","sources":["../../src/factories/EvDbStreamFactory.ts"],"names":[],"mappings":"AAGA,OAAO,gBAAgB,MAAM,4CAA4C,CAAC;AAC1E,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAI5E,OAAO,UAAU,MAAM,wBAAwB,CAAC;AA4BhD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAa5B,YAA6B,MAAqD;QAArD,WAAM,GAAN,MAAM,CAA+C;QAChF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAExC,MAAM,gBAAgB,GAAyB,CAC7C,KAAgB,EAChB,UAA6C,EAC7C,EAAE;YACF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,qBAAqB;gBAAE,OAAO,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF,MAAM,aAAc,SAAQ,UAAU;YAGpC,YACE,UAAkB,EAClB,KAAsB,EACtB,oBAA+C,EAC/C,QAAgB,EAChB,gBAAwB;gBAExB,KAAK,CACH,UAAU,EACV,KAAK,EACL,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,CACjB,CAAC;gBAhBY,UAAK,GAAkC,EAAE,CAAC;gBAkBxD,wBAAwB;gBACxB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBAC9B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF;QAED,0CAA0C;QAC1C,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE;YAC5D,MAAM,UAAU,GAAG,cAAc,SAAS,EAAE,CAAC;YAC5C,aAAa,CAAC,SAAiB,CAAC,UAAU,CAAC,GAAG,KAAK,WAClD,KAAU;gBAEV,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,aAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,MAAM,CACX,QAAgB,EAChB,oBAA+C,EAC/C,yBAAkE,SAAS,EAC3E,mBAA2B,CAAC;QAE5B,MAAM,KAAK,GAAG,sBAAsB;YAClC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,CAAC;YACpD,CAAC,CAAE,EAAwB,CAAC;QAE9B,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAChC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,KAAK,EACL,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAEO,WAAW,CACjB,QAAgB,EAChB,sBAAmD;QAEnD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CACjD,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,QAAQ,CACd,QAAgB,EAChB,sBAAmD;QAEnD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACpE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAClD,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,GAAG,CACd,QAAgB,EAChB,oBAA+C,EAC/C,yBAAkE,SAAS;QAE3E,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAG,sBAAsB;YAClC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;YACpE,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CACxB,QAAQ,EACR,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,CACjB,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CACnC,CAAC,YAAoB,EAAE,WAA0B,EAAE,EAAE,CACnD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,EACjD,MAAM,CAAC,SAAS,CACjB,CAAC;QAEF,IAAI,YAAY,GAAW,CAAC,CAAC,CAAC;QAC9B,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAEvE,YAAY,GAAG,gBAAgB,CAAC;YAChC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChD,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,uFAAuF;gBACpG,YAAY,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAChC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,KAAK,EACL,oBAAoB,EACpB,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAKrC,MAAqD;IAErD,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"EvDbStreamFactory.js","sourceRoot":"","sources":["../../src/factories/EvDbStreamFactory.ts"],"names":[],"mappings":"AAGA,OAAO,gBAAgB,MAAM,4CAA4C,CAAC;AAC1E,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAI5E,OAAO,UAAU,MAAM,wBAAwB,CAAC;AA6BhD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAa5B,YAA6B,MAAqD;QAArD,WAAM,GAAN,MAAM,CAA+C;QAChF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAExC,MAAM,gBAAgB,GAAyB,CAC7C,KAAgB,EAChB,UAA6C,EAC7C,EAAE;YACF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,qBAAqB;gBAAE,OAAO,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF,MAAM,aAAc,SAAQ,UAAU;YAGpC,YACE,UAAkB,EAClB,KAAsB,EACtB,oBAA+C,EAC/C,QAAgB,EAChB,gBAAwB;gBAExB,KAAK,CACH,UAAU,EACV,KAAK,EACL,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,CACjB,CAAC;gBAhBY,UAAK,GAAkC,EAAE,CAAC;gBAkBxD,wBAAwB;gBACxB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBAC9B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF;QAED,0CAA0C;QAC1C,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE;YAC5D,MAAM,UAAU,GAAG,cAAc,SAAS,EAAE,CAAC;YAC5C,aAAa,CAAC,SAAiB,CAAC,UAAU,CAAC,GAAG,KAAK,WAClD,KAAU;gBAEV,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,aAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,MAAM,CACX,QAAgB,EAChB,oBAA+C,EAC/C,yBAAkE,SAAS,EAC3E,mBAA2B,CAAC;QAE5B,MAAM,KAAK,GAAG,sBAAsB;YAClC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,CAAC;YACpD,CAAC,CAAE,EAAwB,CAAC;QAE9B,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAChC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,KAAK,EACL,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAEO,WAAW,CACjB,QAAgB,EAChB,sBAAmD;QAEnD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CACjD,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,QAAQ,CACd,QAAgB,EAChB,sBAAmD;QAEnD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACpE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAClD,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,GAAG,CACd,QAAgB,EAChB,oBAA+C,EAC/C,yBAAkE,SAAS;QAE3E,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAG,sBAAsB;YAClC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;YACpE,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CACxB,QAAQ,EACR,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,CACjB,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CACnC,CAAC,YAAoB,EAAE,WAA0B,EAAE,EAAE,CACnD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,EACjD,MAAM,CAAC,SAAS,CACjB,CAAC;QAEF,IAAI,YAAY,GAAW,CAAC,CAAC,CAAC;QAC9B,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAEvE,YAAY,GAAG,gBAAgB,CAAC;YAChC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChD,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,uFAAuF;gBACpG,YAAY,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAChC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,KAAK,EACL,oBAAoB,EACpB,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAKrC,MAAqD;IAErD,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type IEvDbStorageSnapshotAdapter from "@eventualize/types/adapters/IEvDbStorageSnapshotAdapter";
2
+ import type IEvDbStorageStreamAdapter from "@eventualize/types/adapters/IEvDbStorageStreamAdapter";
3
+ import type IEvDbEventPayload from "@eventualize/types/events/IEvDbEventPayload";
4
+ import type { EvDbView } from "../view/EvDbView";
5
+ import { StreamWithEventMethods } from "./EvDbStreamFactory";
6
+ /**
7
+ * General interface for an EvDbStreamFactory implementation.
8
+ */
9
+ export interface IEvDbStreamFactory<TEvents extends IEvDbEventPayload, TStreamType extends string, TViews extends Record<string, EvDbView<any>> = {}> {
10
+ create(streamId: string, streamStorageAdapter: IEvDbStorageStreamAdapter, snapshotStorageAdapter?: IEvDbStorageSnapshotAdapter, lastStreamOffset?: number): StreamWithEventMethods<TEvents, TViews>;
11
+ get(streamId: string, streamStorageAdapter: IEvDbStorageStreamAdapter, snapshotStorageAdapter?: IEvDbStorageSnapshotAdapter): Promise<StreamWithEventMethods<TEvents, TViews>>;
12
+ getStreamType(): TStreamType;
13
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IEvDbStreamFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEvDbStreamFactory.js","sourceRoot":"","sources":["../../src/factories/IEvDbStreamFactory.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eventualize/core",
3
- "version": "2.1.0",
3
+ "version": "3.0.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,7 +29,7 @@
29
29
  "test": "echo not tests implemented yet."
30
30
  },
31
31
  "dependencies": {
32
- "@eventualize/types": "2.1.0"
32
+ "@eventualize/types": "3.0.0"
33
33
  },
34
34
  "license": "ISC",
35
35
  "type": "module",
@@ -1,68 +0,0 @@
1
- import type EvDbStream from "./EvDbStream.js";
2
- import type IEvDbStorageSnapshotAdapter from "@eventualize/types/adapters/IEvDbStorageSnapshotAdapter";
3
- import type IEvDbStorageStreamAdapter from "@eventualize/types/adapters/IEvDbStorageStreamAdapter";
4
- import type { EvDbStreamFactory } from "../factories/EvDbStreamFactory.js";
5
- import type { StreamCreatorMethods } from "./EvDbEventStoreTypes.js";
6
- /**
7
- * Storage configuration - either separate adapters or combined
8
- */
9
- interface StorageConfig {
10
- streamAdapter: IEvDbStorageStreamAdapter;
11
- snapshotAdapter: IEvDbStorageSnapshotAdapter;
12
- }
13
- /**
14
- * Registry of stream factories by stream type
15
- */
16
- interface StreamFactoryRegistry {
17
- [streamType: string]: EvDbStreamFactory<any, any>;
18
- }
19
- /**
20
- * Store class - manages stream creation with configured adapters and factories
21
- */
22
- export declare class BaseStore {
23
- private readonly storage;
24
- private readonly streamFactories;
25
- constructor(storage: StorageConfig, streamFactories: StreamFactoryRegistry);
26
- /**
27
- * Create a stream instance by stream type and ID
28
- */
29
- createStream(streamType: string, streamId: string): EvDbStream;
30
- /**
31
- * Get a stream instance from the event store by stream type and ID
32
- */
33
- getStream(streamType: string, streamId: string): Promise<EvDbStream>;
34
- /**
35
- * Check if a stream type is registered
36
- */
37
- hasStreamType(streamType: string): boolean;
38
- /**
39
- * Get all registered stream types
40
- */
41
- getStreamTypes(): string[];
42
- close(): Promise<void>;
43
- }
44
- /**
45
- * Type-safe store that knows about specific stream types
46
- */
47
- export declare class EvDbEventStore<TStreamTypes extends Record<string, EvDbStreamFactory<any, any>>> {
48
- private readonly store;
49
- constructor(store: BaseStore);
50
- /**
51
- * Create a stream with type-safe stream type parameter (fallback method)
52
- */
53
- createStream<K extends keyof TStreamTypes & string>(streamType: K, streamId: string): EvDbStream;
54
- /**
55
- * Fetch a stream from the event store with type-safe stream type parameter (fallback method)
56
- */
57
- getStream<K extends keyof TStreamTypes & string>(streamType: K, streamId: string): Promise<EvDbStream>;
58
- /**
59
- * Create dynamic methods for each registered stream factory
60
- */
61
- private createDynamicMethods;
62
- /**
63
- * Get the underlying store
64
- */
65
- getStore(): BaseStore;
66
- }
67
- export type TypedStoreType<TStreamTypes extends Record<string, EvDbStreamFactory<any, any>>> = StreamCreatorMethods<TStreamTypes>;
68
- export {};
@@ -1,91 +0,0 @@
1
- /**
2
- * Store class - manages stream creation with configured adapters and factories
3
- */
4
- export class BaseStore {
5
- constructor(storage, streamFactories) {
6
- this.streamFactories = {};
7
- this.storage = storage;
8
- this.streamFactories = streamFactories;
9
- }
10
- /**
11
- * Create a stream instance by stream type and ID
12
- */
13
- createStream(streamType, streamId) {
14
- const factory = this.streamFactories[streamType];
15
- if (!factory) {
16
- throw new Error(`No stream factory registered for stream type: ${streamType}. ` +
17
- `Available types: ${Object.keys(this.streamFactories).join(", ")}`);
18
- }
19
- const stream = factory.create(streamId, this.storage.streamAdapter, this.storage.snapshotAdapter);
20
- return stream;
21
- }
22
- /**
23
- * Get a stream instance from the event store by stream type and ID
24
- */
25
- async getStream(streamType, streamId) {
26
- const factory = this.streamFactories[streamType];
27
- if (!factory) {
28
- throw new Error(`No stream factory registered for stream type: ${streamType}. ` +
29
- `Available types: ${Object.keys(this.streamFactories).join(", ")}`);
30
- }
31
- return factory.get(streamId, this.storage.streamAdapter, this.storage.snapshotAdapter);
32
- }
33
- /**
34
- * Check if a stream type is registered
35
- */
36
- hasStreamType(streamType) {
37
- return streamType in this.streamFactories;
38
- }
39
- /**
40
- * Get all registered stream types
41
- */
42
- getStreamTypes() {
43
- return Object.keys(this.streamFactories);
44
- }
45
- async close() {
46
- await Promise.all([this.storage.snapshotAdapter.close(), this.storage.streamAdapter.close()]);
47
- return;
48
- }
49
- }
50
- /**
51
- * Type-safe store that knows about specific stream types
52
- */
53
- export class EvDbEventStore {
54
- constructor(store) {
55
- this.store = store;
56
- // Create dynamic methods for each stream type
57
- this.createDynamicMethods();
58
- }
59
- /**
60
- * Create a stream with type-safe stream type parameter (fallback method)
61
- */
62
- createStream(streamType, streamId) {
63
- return this.store.createStream(streamType, streamId);
64
- }
65
- /**
66
- * Fetch a stream from the event store with type-safe stream type parameter (fallback method)
67
- */
68
- getStream(streamType, streamId) {
69
- return this.store.getStream(streamType, streamId);
70
- }
71
- /**
72
- * Create dynamic methods for each registered stream factory
73
- */
74
- createDynamicMethods() {
75
- const streamTypes = this.store.getStreamTypes();
76
- for (const streamType of streamTypes) {
77
- const methodName = `create${streamType}`;
78
- // Create the dynamic method
79
- this[methodName] = (streamId) => {
80
- return this.store.createStream(streamType, streamId);
81
- };
82
- }
83
- }
84
- /**
85
- * Get the underlying store
86
- */
87
- getStore() {
88
- return this.store;
89
- }
90
- }
91
- //# sourceMappingURL=EvDbEventStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvDbEventStore.js","sourceRoot":"","sources":["../../src/store/EvDbEventStore.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,OAAO,SAAS;IAIpB,YAAmB,OAAsB,EAAE,eAAsC;QAFhE,oBAAe,GAA0B,EAAE,CAAC;QAG3D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,iDAAiD,UAAU,IAAI;gBAC7D,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC3B,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,eAAe,CAC7B,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,QAAgB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,iDAAiD,UAAU,IAAI;gBAC7D,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,UAAkB;QACrC,OAAO,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,cAAc;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9F,OAAO;IACT,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,YAA6B,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;QAC3C,8CAA8C;QAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,YAAY,CACjB,UAAa,EACb,QAAgB;QAEhB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,SAAS,CACd,UAAa,EACb,QAAgB;QAEhB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEhD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,SAAS,UAAU,EAAgB,CAAC;YAEvD,4BAA4B;YAC3B,IAAY,CAAC,UAAU,CAAC,GAAG,CAAC,QAAgB,EAAE,EAAE;gBAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -1,18 +0,0 @@
1
- import type IEvDbStorageSnapshotAdapter from "@eventualize/types/adapters/IEvDbStorageSnapshotAdapter";
2
- import type IEvDbStorageStreamAdapter from "@eventualize/types/adapters/IEvDbStorageStreamAdapter";
3
- import type { EvDbStreamFactory } from "../factories/EvDbStreamFactory.js";
4
- import type { IEvDbStorageAdapter } from "../adapters/IEvDbStorageAdapter.js";
5
- import { EvDbEventStore } from "./EvDbEventStore.js";
6
- import type { StreamCreatorMethods } from "./EvDbEventStoreTypes.js";
7
- /**
8
- * Type-safe store builder
9
- */
10
- export declare class EvDbEventStoreBuilder<TStreamTypes extends Record<string, EvDbStreamFactory<any, string>> = {}> {
11
- private streamAdapter?;
12
- private snapshotAdapter?;
13
- private streamFactories;
14
- withAdapters(streamAdapter: IEvDbStorageStreamAdapter, snapshotAdapter: IEvDbStorageSnapshotAdapter): this;
15
- withAdapter(adapter: IEvDbStorageAdapter): this;
16
- withStreamFactory<F extends EvDbStreamFactory<any, string>, K extends F extends EvDbStreamFactory<any, infer ST> ? ST : never>(factory: F): EvDbEventStoreBuilder<TStreamTypes & Record<K, F>>;
17
- build(): EvDbEventStore<TStreamTypes> & StreamCreatorMethods<TStreamTypes>;
18
- }
@@ -1,44 +0,0 @@
1
- import { BaseStore, EvDbEventStore } from "./EvDbEventStore.js";
2
- /**
3
- * Type-safe store builder
4
- */
5
- export class EvDbEventStoreBuilder {
6
- constructor() {
7
- this.streamFactories = {};
8
- }
9
- withAdapters(streamAdapter, snapshotAdapter) {
10
- this.streamAdapter = streamAdapter;
11
- this.snapshotAdapter = snapshotAdapter;
12
- return this;
13
- }
14
- withAdapter(adapter) {
15
- this.streamAdapter = adapter;
16
- this.snapshotAdapter = adapter;
17
- return this;
18
- }
19
- // Track stream type in generics
20
- withStreamFactory(factory) {
21
- const streamType = factory.getStreamType();
22
- if (this.streamFactories[streamType]) {
23
- throw new Error(`Stream factory for type '${streamType}' is already registered`);
24
- }
25
- this.streamFactories[streamType] = factory;
26
- // return as the new type that tracks K
27
- return this;
28
- }
29
- build() {
30
- if (!this.streamAdapter || !this.snapshotAdapter) {
31
- throw new Error("Storage adapters must be configured. Use withAdapter() or withAdapters()");
32
- }
33
- if (Object.keys(this.streamFactories).length === 0) {
34
- console.warn("Store created with no stream factories registered");
35
- }
36
- const baseStore = new BaseStore({
37
- streamAdapter: this.streamAdapter,
38
- snapshotAdapter: this.snapshotAdapter,
39
- }, this.streamFactories);
40
- const store = new EvDbEventStore(baseStore);
41
- return store;
42
- }
43
- }
44
- //# sourceMappingURL=EvDbEventStoreBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvDbEventStoreBuilder.js","sourceRoot":"","sources":["../../src/store/EvDbEventStoreBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAUhE;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAAlC;QAKU,oBAAe,GAA0B,EAAE,CAAC;IAkDtD,CAAC;IAhDQ,YAAY,CACjB,aAAwC,EACxC,eAA4C;QAE5C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,WAAW,CAAC,OAA4B;QAC7C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAgC;IACzB,iBAAiB,CAGtB,OAAU;QACV,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,yBAAyB,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAC3C,uCAAuC;QACvC,OAAO,IAAqE,CAAC;IAC/E,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAC7B;YACE,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,EACD,IAAI,CAAC,eAAe,CACrB,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,KAA0E,CAAC;IACpF,CAAC;CACF"}
@@ -1,11 +0,0 @@
1
- import type EvDbStream from "./EvDbStream.js";
2
- import type { EvDbStreamFactory } from "../factories/EvDbStreamFactory.js";
3
- import type { EvDbEventStore } from "./EvDbEventStore.js";
4
- /**
5
- * Helper type to create method signatures for each stream factory
6
- */
7
- export type StreamCreatorMethods<TStreamTypes extends Record<string, EvDbStreamFactory<any, any>>> = {
8
- [K in keyof TStreamTypes as `create${K & string}`]: (streamId: string) => EvDbStream;
9
- };
10
- export type StreamMap = Record<string, any>;
11
- export type EvDbEventStoreType<TStreams extends StreamMap = StreamMap> = EvDbEventStore<TStreams> & StreamCreatorMethods<TStreams>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=EvDbEventStoreTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvDbEventStoreTypes.js","sourceRoot":"","sources":["../../src/store/EvDbEventStoreTypes.ts"],"names":[],"mappings":""}