@event-driven-io/emmett 0.5.1 → 0.5.3

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 (179) hide show
  1. package/dist/chunk-2452BJTJ.js +1 -0
  2. package/dist/chunk-2452BJTJ.js.map +1 -0
  3. package/dist/chunk-32IWULJJ.mjs +2 -0
  4. package/dist/chunk-32IWULJJ.mjs.map +1 -0
  5. package/dist/chunk-3JE5DUJ2.js +2 -0
  6. package/dist/chunk-3JE5DUJ2.js.map +1 -0
  7. package/dist/chunk-3LYVXI5R.mjs +1 -0
  8. package/dist/chunk-3LYVXI5R.mjs.map +1 -0
  9. package/dist/chunk-45ODDXOQ.mjs +1 -0
  10. package/dist/chunk-45ODDXOQ.mjs.map +1 -0
  11. package/dist/chunk-46YIPCSN.js +2 -0
  12. package/dist/chunk-46YIPCSN.js.map +1 -0
  13. package/dist/chunk-7EZVPMJ6.js +2 -0
  14. package/dist/chunk-7EZVPMJ6.js.map +1 -0
  15. package/dist/chunk-7FJXUW3D.js +1 -0
  16. package/dist/chunk-7FJXUW3D.js.map +1 -0
  17. package/dist/chunk-7H3QW2YD.js +1 -0
  18. package/dist/chunk-7H3QW2YD.js.map +1 -0
  19. package/dist/chunk-7JLAVMM3.mjs +1 -0
  20. package/dist/chunk-7JLAVMM3.mjs.map +1 -0
  21. package/dist/chunk-AU2WZCER.js +1 -0
  22. package/dist/chunk-AU2WZCER.js.map +1 -0
  23. package/dist/chunk-BARLLX6S.js +1 -0
  24. package/dist/chunk-BARLLX6S.js.map +1 -0
  25. package/dist/chunk-BM2H4NCZ.js +2 -0
  26. package/dist/chunk-BM2H4NCZ.js.map +1 -0
  27. package/dist/chunk-C4CXU3PY.mjs +1 -0
  28. package/dist/chunk-C4CXU3PY.mjs.map +1 -0
  29. package/dist/chunk-CTCSK4FW.mjs +2 -0
  30. package/dist/chunk-CTCSK4FW.mjs.map +1 -0
  31. package/dist/chunk-D24KLTN5.mjs +1 -0
  32. package/dist/chunk-D24KLTN5.mjs.map +1 -0
  33. package/dist/chunk-DFPI5IXT.js +5 -0
  34. package/dist/chunk-DFPI5IXT.js.map +1 -0
  35. package/dist/chunk-DIW552TK.mjs +1 -0
  36. package/dist/chunk-DIW552TK.mjs.map +1 -0
  37. package/dist/chunk-ERDVHQZL.mjs +2 -0
  38. package/dist/chunk-ERDVHQZL.mjs.map +1 -0
  39. package/dist/chunk-F7QRI2VL.js +1 -0
  40. package/dist/chunk-F7QRI2VL.js.map +1 -0
  41. package/dist/chunk-FE73T2NS.js +2 -0
  42. package/dist/chunk-FE73T2NS.js.map +1 -0
  43. package/dist/chunk-HKEQAT6F.mjs +1 -0
  44. package/dist/chunk-HKEQAT6F.mjs.map +1 -0
  45. package/dist/chunk-IJGC6SHP.js +1 -0
  46. package/dist/chunk-IJGC6SHP.js.map +1 -0
  47. package/dist/chunk-IZWGWZ3P.mjs +1 -0
  48. package/dist/chunk-IZWGWZ3P.mjs.map +1 -0
  49. package/dist/chunk-JJHE2RKT.mjs +2 -0
  50. package/dist/chunk-JJHE2RKT.mjs.map +1 -0
  51. package/dist/chunk-LOJ6A4AJ.js +1 -0
  52. package/dist/chunk-LOJ6A4AJ.js.map +1 -0
  53. package/dist/chunk-LYKEARRW.js +2 -0
  54. package/dist/chunk-LYKEARRW.js.map +1 -0
  55. package/dist/chunk-O2ZUNWMO.mjs +2 -0
  56. package/dist/chunk-O2ZUNWMO.mjs.map +1 -0
  57. package/dist/chunk-O34VKX7R.js +2 -0
  58. package/dist/chunk-O34VKX7R.js.map +1 -0
  59. package/dist/chunk-OBA6MZMG.mjs +2 -0
  60. package/dist/chunk-OBA6MZMG.mjs.map +1 -0
  61. package/dist/chunk-OYAO7QEP.js +2 -0
  62. package/dist/chunk-OYAO7QEP.js.map +1 -0
  63. package/dist/chunk-PKL7KGJ3.mjs +2 -0
  64. package/dist/chunk-PKL7KGJ3.mjs.map +1 -0
  65. package/dist/chunk-PNOEBD4U.mjs +2 -0
  66. package/dist/chunk-PNOEBD4U.mjs.map +1 -0
  67. package/dist/chunk-QSAFGRYV.js +1 -0
  68. package/dist/chunk-QSAFGRYV.js.map +1 -0
  69. package/dist/chunk-RWKXC5FZ.mjs +5 -0
  70. package/dist/chunk-RWKXC5FZ.mjs.map +1 -0
  71. package/dist/chunk-U3WA3VIW.js +2 -0
  72. package/dist/chunk-U3WA3VIW.js.map +1 -0
  73. package/dist/chunk-UI6CV7VB.mjs +2 -0
  74. package/dist/chunk-UI6CV7VB.mjs.map +1 -0
  75. package/dist/chunk-UUCTMJK7.js +2 -0
  76. package/dist/chunk-UUCTMJK7.js.map +1 -0
  77. package/dist/chunk-WIMBG2PX.js +2 -0
  78. package/dist/chunk-WIMBG2PX.js.map +1 -0
  79. package/dist/chunk-XLZS42HB.mjs +1 -0
  80. package/dist/chunk-XLZS42HB.mjs.map +1 -0
  81. package/dist/chunk-YKFEDBH4.mjs +2 -0
  82. package/dist/chunk-YKFEDBH4.mjs.map +1 -0
  83. package/dist/chunk-YKICRTHH.mjs +1 -0
  84. package/dist/chunk-YKICRTHH.mjs.map +1 -0
  85. package/dist/chunk-YV6PB6LX.mjs +2 -0
  86. package/dist/chunk-YV6PB6LX.mjs.map +1 -0
  87. package/dist/chunk-Z7EDILIO.js +1 -0
  88. package/dist/chunk-Z7EDILIO.js.map +1 -0
  89. package/dist/commandHandling/handleCommand.js +1 -32
  90. package/dist/commandHandling/handleCommand.js.map +1 -1
  91. package/dist/commandHandling/handleCommand.mjs +1 -32
  92. package/dist/commandHandling/handleCommand.mjs.map +1 -1
  93. package/dist/commandHandling/handleCommandWithDecider.js +1 -13
  94. package/dist/commandHandling/handleCommandWithDecider.js.map +1 -1
  95. package/dist/commandHandling/handleCommandWithDecider.mjs +1 -13
  96. package/dist/commandHandling/handleCommandWithDecider.mjs.map +1 -1
  97. package/dist/commandHandling/index.js +1 -2
  98. package/dist/commandHandling/index.js.map +1 -1
  99. package/dist/commandHandling/index.mjs +1 -2
  100. package/dist/commandHandling/index.mjs.map +1 -1
  101. package/dist/errors/index.js +1 -56
  102. package/dist/errors/index.js.map +1 -1
  103. package/dist/errors/index.mjs +1 -56
  104. package/dist/errors/index.mjs.map +1 -1
  105. package/dist/eventStore/eventStore.js +2 -1
  106. package/dist/eventStore/eventStore.mjs +1 -0
  107. package/dist/eventStore/expectedVersion.js +1 -32
  108. package/dist/eventStore/expectedVersion.js.map +1 -1
  109. package/dist/eventStore/expectedVersion.mjs +1 -32
  110. package/dist/eventStore/expectedVersion.mjs.map +1 -1
  111. package/dist/eventStore/inMemoryEventStore.js +1 -70
  112. package/dist/eventStore/inMemoryEventStore.js.map +1 -1
  113. package/dist/eventStore/inMemoryEventStore.mjs +1 -70
  114. package/dist/eventStore/inMemoryEventStore.mjs.map +1 -1
  115. package/dist/eventStore/index.js +1 -3
  116. package/dist/eventStore/index.js.map +1 -1
  117. package/dist/eventStore/index.mjs +1 -3
  118. package/dist/eventStore/index.mjs.map +1 -1
  119. package/dist/index.js +1 -8
  120. package/dist/index.js.map +1 -1
  121. package/dist/index.mjs +1 -8
  122. package/dist/index.mjs.map +1 -1
  123. package/dist/serialization/index.js +1 -1
  124. package/dist/serialization/index.js.map +1 -1
  125. package/dist/serialization/index.mjs +1 -1
  126. package/dist/serialization/index.mjs.map +1 -1
  127. package/dist/serialization/json/JSONParser.js +1 -22
  128. package/dist/serialization/json/JSONParser.js.map +1 -1
  129. package/dist/serialization/json/JSONParser.mjs +1 -22
  130. package/dist/serialization/json/JSONParser.mjs.map +1 -1
  131. package/dist/serialization/json/index.js +1 -1
  132. package/dist/serialization/json/index.js.map +1 -1
  133. package/dist/serialization/json/index.mjs +1 -1
  134. package/dist/serialization/json/index.mjs.map +1 -1
  135. package/dist/testing/assertions.js +1 -26
  136. package/dist/testing/assertions.js.map +1 -1
  137. package/dist/testing/assertions.mjs +1 -26
  138. package/dist/testing/assertions.mjs.map +1 -1
  139. package/dist/testing/deciderSpecification.js +1 -41
  140. package/dist/testing/deciderSpecification.js.map +1 -1
  141. package/dist/testing/deciderSpecification.mjs +1 -41
  142. package/dist/testing/deciderSpecification.mjs.map +1 -1
  143. package/dist/testing/index.js +1 -2
  144. package/dist/testing/index.js.map +1 -1
  145. package/dist/testing/index.mjs +1 -2
  146. package/dist/testing/index.mjs.map +1 -1
  147. package/dist/typing/command.js +2 -1
  148. package/dist/typing/command.mjs +1 -0
  149. package/dist/typing/decider.js +2 -1
  150. package/dist/typing/decider.mjs +1 -0
  151. package/dist/typing/event.js +2 -1
  152. package/dist/typing/event.mjs +1 -0
  153. package/dist/typing/index.d.mts +8 -8
  154. package/dist/typing/index.d.ts +8 -8
  155. package/dist/typing/index.js +1 -4
  156. package/dist/typing/index.js.map +1 -1
  157. package/dist/typing/index.mjs +1 -4
  158. package/dist/typing/index.mjs.map +1 -1
  159. package/dist/typing/workflow.js +1 -55
  160. package/dist/typing/workflow.js.map +1 -1
  161. package/dist/typing/workflow.mjs +1 -55
  162. package/dist/typing/workflow.mjs.map +1 -1
  163. package/dist/utils/index.js +1 -6
  164. package/dist/utils/index.js.map +1 -1
  165. package/dist/utils/index.mjs +1 -6
  166. package/dist/utils/index.mjs.map +1 -1
  167. package/dist/utils/iterators.js +1 -11
  168. package/dist/utils/iterators.js.map +1 -1
  169. package/dist/utils/iterators.mjs +1 -11
  170. package/dist/utils/iterators.mjs.map +1 -1
  171. package/dist/utils/merge.js +1 -22
  172. package/dist/utils/merge.js.map +1 -1
  173. package/dist/utils/merge.mjs +1 -22
  174. package/dist/utils/merge.mjs.map +1 -1
  175. package/dist/validation/index.js +1 -36
  176. package/dist/validation/index.js.map +1 -1
  177. package/dist/validation/index.mjs +1 -36
  178. package/dist/validation/index.mjs.map +1 -1
  179. package/package.json +13 -1
@@ -1,33 +1,2 @@
1
- import {
2
- NO_CONCURRENCY_CHECK,
3
- STREAM_DOES_NOT_EXIST
4
- } from "../eventStore";
5
- const CommandHandler = (evolve, getInitialState, mapToStreamId = (id) => id) => async (eventStore, id, handle, options) => {
6
- const streamName = mapToStreamId(id);
7
- const aggregationResult = await eventStore.aggregateStream(streamName, {
8
- evolve,
9
- getInitialState,
10
- read: {
11
- // expected stream version is passed to fail fast
12
- // if stream is in the wrong state
13
- expectedStreamVersion: options?.expectedStreamVersion ?? NO_CONCURRENCY_CHECK
14
- }
15
- });
16
- const state = aggregationResult?.state ?? getInitialState();
17
- const currentStreamVersion = aggregationResult?.currentStreamVersion;
18
- const result = handle(state);
19
- const newEvents = Array.isArray(result) ? result : [result];
20
- const expectedStreamVersion = options?.expectedStreamVersion ?? currentStreamVersion ?? STREAM_DOES_NOT_EXIST;
21
- const appendResult = await eventStore.appendToStream(
22
- streamName,
23
- newEvents,
24
- {
25
- expectedStreamVersion
26
- }
27
- );
28
- return { ...appendResult, newState: newEvents.reduce(evolve, state) };
29
- };
30
- export {
31
- CommandHandler
32
- };
1
+ import{a}from"../chunk-JJHE2RKT.mjs";import"../chunk-45ODDXOQ.mjs";import"../chunk-CTCSK4FW.mjs";import"../chunk-D24KLTN5.mjs";import"../chunk-UI6CV7VB.mjs";import"../chunk-YV6PB6LX.mjs";export{a as CommandHandler};
33
2
  //# sourceMappingURL=handleCommand.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commandHandling/handleCommand.ts"],"sourcesContent":["import {\n NO_CONCURRENCY_CHECK,\n STREAM_DOES_NOT_EXIST,\n type AppendToStreamResult,\n type DefaultStreamVersionType,\n type EventStore,\n type ExpectedStreamVersion,\n} from '../eventStore';\nimport type { Event } from '../typing';\n\n// #region command-handler\nexport type CommandHandlerResult<\n State,\n StreamVersion = DefaultStreamVersionType,\n> = AppendToStreamResult<StreamVersion> & { newState: State };\n\nexport const CommandHandler =\n <State, StreamEvent extends Event, StreamVersion = DefaultStreamVersionType>(\n evolve: (state: State, event: StreamEvent) => State,\n getInitialState: () => State,\n mapToStreamId: (id: string) => string = (id) => id,\n ) =>\n async (\n eventStore: EventStore<StreamVersion>,\n id: string,\n handle: (state: State) => StreamEvent | StreamEvent[],\n options?: {\n expectedStreamVersion?: ExpectedStreamVersion<StreamVersion>;\n },\n ): Promise<CommandHandlerResult<State, StreamVersion>> => {\n const streamName = mapToStreamId(id);\n\n // 1. Aggregate the stream\n const aggregationResult = await eventStore.aggregateStream<\n State,\n StreamEvent\n >(streamName, {\n evolve,\n getInitialState,\n read: {\n // expected stream version is passed to fail fast\n // if stream is in the wrong state\n expectedStreamVersion:\n options?.expectedStreamVersion ?? NO_CONCURRENCY_CHECK,\n },\n });\n\n // 2. Use the aggregate state or the initial one (when e.g. stream does not exist)\n const state = aggregationResult?.state ?? getInitialState();\n const currentStreamVersion = aggregationResult?.currentStreamVersion;\n\n // 3. Run business logic\n const result = handle(state);\n\n const newEvents = Array.isArray(result) ? result : [result];\n\n // Either use:\n // - provided expected stream version,\n // - current stream version got from stream aggregation,\n // - or expect stream not to exists otherwise.\n const expectedStreamVersion: ExpectedStreamVersion<StreamVersion> =\n options?.expectedStreamVersion ??\n currentStreamVersion ??\n STREAM_DOES_NOT_EXIST;\n\n // 4. Append result to the stream\n const appendResult = await eventStore.appendToStream(\n streamName,\n newEvents,\n {\n expectedStreamVersion,\n },\n );\n\n // 5. Return result with updated state\n return { ...appendResult, newState: newEvents.reduce(evolve, state) };\n };\n// #endregion command-handler\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,OAKK;AASA,MAAM,iBACX,CACE,QACA,iBACA,gBAAwC,CAAC,OAAO,OAElD,OACE,YACA,IACA,QACA,YAGwD;AACxD,QAAM,aAAa,cAAc,EAAE;AAGnC,QAAM,oBAAoB,MAAM,WAAW,gBAGzC,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,MAAM;AAAA;AAAA;AAAA,MAGJ,uBACE,SAAS,yBAAyB;AAAA,IACtC;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,mBAAmB,SAAS,gBAAgB;AAC1D,QAAM,uBAAuB,mBAAmB;AAGhD,QAAM,SAAS,OAAO,KAAK;AAE3B,QAAM,YAAY,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AAM1D,QAAM,wBACJ,SAAS,yBACT,wBACA;AAGF,QAAM,eAAe,MAAM,WAAW;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAAA,IACF;AAAA,EACF;AAGA,SAAO,EAAE,GAAG,cAAc,UAAU,UAAU,OAAO,QAAQ,KAAK,EAAE;AACtE;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,14 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _handleCommand = require('./handleCommand');
2
- const DeciderCommandHandler = ({
3
- decide,
4
- evolve,
5
- getInitialState
6
- }, mapToStreamId = (id) => id) => async (eventStore, id, command, options) => _handleCommand.CommandHandler.call(void 0,
7
- evolve,
8
- getInitialState,
9
- mapToStreamId
10
- )(eventStore, id, (state) => decide(command, state), options);
11
-
12
-
13
- exports.DeciderCommandHandler = DeciderCommandHandler;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkU3WA3VIWjs = require('../chunk-U3WA3VIW.js');require('../chunk-OYAO7QEP.js');require('../chunk-2452BJTJ.js');require('../chunk-BM2H4NCZ.js');require('../chunk-IJGC6SHP.js');require('../chunk-46YIPCSN.js');require('../chunk-UUCTMJK7.js');exports.DeciderCommandHandler = _chunkU3WA3VIWjs.a;
14
2
  //# sourceMappingURL=handleCommandWithDecider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commandHandling/handleCommandWithDecider.ts"],"names":[],"mappings":"AAOA,SAAS,sBAAsB;AAGxB,MAAM,wBACX,CAME;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF,GACA,gBAAwC,CAAC,OAAO,OAElD,OACE,YACA,IACA,SACA,YAIA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF,EAAE,YAAY,IAAI,CAAC,UAAU,OAAO,SAAS,KAAK,GAAG,OAAO","sourcesContent":["import type {\n DefaultStreamVersionType,\n EventStore,\n ExpectedStreamVersion,\n} from '../eventStore';\nimport type { Command, Event } from '../typing';\nimport type { Decider } from '../typing/decider';\nimport { CommandHandler } from './handleCommand';\n\n// #region command-handler\nexport const DeciderCommandHandler =\n <\n State,\n CommandType extends Command,\n StreamEvent extends Event,\n StreamVersion = DefaultStreamVersionType,\n >(\n {\n decide,\n evolve,\n getInitialState,\n }: Decider<State, CommandType, StreamEvent>,\n mapToStreamId: (id: string) => string = (id) => id,\n ) =>\n async (\n eventStore: EventStore<StreamVersion>,\n id: string,\n command: CommandType,\n options?: {\n expectedStreamVersion?: ExpectedStreamVersion<StreamVersion>;\n },\n ) =>\n CommandHandler<State, StreamEvent, StreamVersion>(\n evolve,\n getInitialState,\n mapToStreamId,\n )(eventStore, id, (state) => decide(command, state), options);\n// #endregion command-handler\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,14 +1,2 @@
1
- import { CommandHandler } from "./handleCommand";
2
- const DeciderCommandHandler = ({
3
- decide,
4
- evolve,
5
- getInitialState
6
- }, mapToStreamId = (id) => id) => async (eventStore, id, command, options) => CommandHandler(
7
- evolve,
8
- getInitialState,
9
- mapToStreamId
10
- )(eventStore, id, (state) => decide(command, state), options);
11
- export {
12
- DeciderCommandHandler
13
- };
1
+ import{a}from"../chunk-O2ZUNWMO.mjs";import"../chunk-JJHE2RKT.mjs";import"../chunk-45ODDXOQ.mjs";import"../chunk-CTCSK4FW.mjs";import"../chunk-D24KLTN5.mjs";import"../chunk-UI6CV7VB.mjs";import"../chunk-YV6PB6LX.mjs";export{a as DeciderCommandHandler};
14
2
  //# sourceMappingURL=handleCommandWithDecider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commandHandling/handleCommandWithDecider.ts"],"sourcesContent":["import type {\n DefaultStreamVersionType,\n EventStore,\n ExpectedStreamVersion,\n} from '../eventStore';\nimport type { Command, Event } from '../typing';\nimport type { Decider } from '../typing/decider';\nimport { CommandHandler } from './handleCommand';\n\n// #region command-handler\nexport const DeciderCommandHandler =\n <\n State,\n CommandType extends Command,\n StreamEvent extends Event,\n StreamVersion = DefaultStreamVersionType,\n >(\n {\n decide,\n evolve,\n getInitialState,\n }: Decider<State, CommandType, StreamEvent>,\n mapToStreamId: (id: string) => string = (id) => id,\n ) =>\n async (\n eventStore: EventStore<StreamVersion>,\n id: string,\n command: CommandType,\n options?: {\n expectedStreamVersion?: ExpectedStreamVersion<StreamVersion>;\n },\n ) =>\n CommandHandler<State, StreamEvent, StreamVersion>(\n evolve,\n getInitialState,\n mapToStreamId,\n )(eventStore, id, (state) => decide(command, state), options);\n// #endregion command-handler\n"],"mappings":"AAOA,SAAS,sBAAsB;AAGxB,MAAM,wBACX,CAME;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF,GACA,gBAAwC,CAAC,OAAO,OAElD,OACE,YACA,IACA,SACA,YAIA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AACF,EAAE,YAAY,IAAI,CAAC,UAAU,OAAO,SAAS,KAAK,GAAG,OAAO;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _handleCommand = require('./handleCommand'); _createStarExport(_handleCommand);
2
- var _handleCommandWithDecider = require('./handleCommandWithDecider'); _createStarExport(_handleCommandWithDecider);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-F7QRI2VL.js');var _chunkU3WA3VIWjs = require('../chunk-U3WA3VIW.js');var _chunkOYAO7QEPjs = require('../chunk-OYAO7QEP.js');require('../chunk-2452BJTJ.js');require('../chunk-BM2H4NCZ.js');require('../chunk-IJGC6SHP.js');require('../chunk-46YIPCSN.js');require('../chunk-UUCTMJK7.js');exports.CommandHandler = _chunkOYAO7QEPjs.a; exports.DeciderCommandHandler = _chunkU3WA3VIWjs.a;
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commandHandling/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc","sourcesContent":["export * from './handleCommand';\nexport * from './handleCommandWithDecider';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,3 +1,2 @@
1
- export * from "./handleCommand";
2
- export * from "./handleCommandWithDecider";
1
+ import"../chunk-XLZS42HB.mjs";import{a as b}from"../chunk-O2ZUNWMO.mjs";import{a}from"../chunk-JJHE2RKT.mjs";import"../chunk-45ODDXOQ.mjs";import"../chunk-CTCSK4FW.mjs";import"../chunk-D24KLTN5.mjs";import"../chunk-UI6CV7VB.mjs";import"../chunk-YV6PB6LX.mjs";export{a as CommandHandler,b as DeciderCommandHandler};
3
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commandHandling/index.ts"],"sourcesContent":["export * from './handleCommand';\nexport * from './handleCommandWithDecider';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,57 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _validation = require('../validation');
2
- class EmmettError extends Error {
3
-
4
- constructor(options) {
5
- const errorCode = options && typeof options === "object" && "errorCode" in options ? options.errorCode : _validation.isNumber.call(void 0, options) ? options : 500;
6
- const message = options && typeof options === "object" && "message" in options ? options.message : _validation.isString.call(void 0, options) ? options : `Error with status code '${errorCode}' ocurred during Emmett processing`;
7
- super(message);
8
- this.errorCode = errorCode;
9
- Object.setPrototypeOf(this, EmmettError.prototype);
10
- }
11
- }
12
- class ConcurrencyError extends EmmettError {
13
- constructor(current, expected, message) {
14
- super({
15
- errorCode: 412,
16
- message: _nullishCoalesce(message, () => ( `Expected version ${expected.toString()} does not match current ${_optionalChain([current, 'optionalAccess', _ => _.toString, 'call', _2 => _2()])}`))
17
- });
18
- this.current = current;
19
- this.expected = expected;
20
- Object.setPrototypeOf(this, ConcurrencyError.prototype);
21
- }
22
- }
23
- class ValidationError extends EmmettError {
24
- constructor(message) {
25
- super({
26
- errorCode: 400,
27
- message: _nullishCoalesce(message, () => ( `Validation Error ocurred during Emmett processing`))
28
- });
29
- Object.setPrototypeOf(this, ValidationError.prototype);
30
- }
31
- }
32
- class IllegalStateError extends EmmettError {
33
- constructor(message) {
34
- super({
35
- errorCode: 403,
36
- message: _nullishCoalesce(message, () => ( `Illegal State ocurred during Emmett processing`))
37
- });
38
- Object.setPrototypeOf(this, IllegalStateError.prototype);
39
- }
40
- }
41
- class NotFoundError extends EmmettError {
42
- constructor(options) {
43
- super({
44
- errorCode: 404,
45
- message: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _3 => _3.message]), () => ( (_optionalChain([options, 'optionalAccess', _4 => _4.id]) ? options.type ? `${options.type} with ${options.id} was not found during Emmett processing` : `State with ${options.id} was not found during Emmett processing` : _optionalChain([options, 'optionalAccess', _5 => _5.type]) ? `${options.type} was not found during Emmett processing` : "State was not found during Emmett processing")))
46
- });
47
- Object.setPrototypeOf(this, NotFoundError.prototype);
48
- }
49
- }
50
-
51
-
52
-
53
-
54
-
55
-
56
- exports.ConcurrencyError = ConcurrencyError; exports.EmmettError = EmmettError; exports.IllegalStateError = IllegalStateError; exports.NotFoundError = NotFoundError; exports.ValidationError = ValidationError;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUUCTMJK7js = require('../chunk-UUCTMJK7.js');exports.ConcurrencyError = _chunkUUCTMJK7js.h; exports.EmmettError = _chunkUUCTMJK7js.g; exports.IllegalStateError = _chunkUUCTMJK7js.j; exports.NotFoundError = _chunkUUCTMJK7js.k; exports.ValidationError = _chunkUUCTMJK7js.i;
57
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,SAAS,UAAU,gBAAgB;AAE5B,MAAM,oBAAoB,MAAM;AAAA,EAC9B;AAAA,EAEP,YACE,SACA;AACA,UAAM,YACJ,WAAW,OAAO,YAAY,YAAY,eAAe,UACrD,QAAQ,YACR,SAAS,OAAO,IACd,UACA;AACR,UAAM,UACJ,WAAW,OAAO,YAAY,YAAY,aAAa,UACnD,QAAQ,UACR,SAAS,OAAO,IACd,UACA,2BAA2B,SAAS;AAE5C,UAAM,OAAO;AACb,SAAK,YAAY;AAGjB,WAAO,eAAe,MAAM,YAAY,SAAS;AAAA,EACnD;AACF;AAEO,MAAM,yBAAyB,YAAY;AAAA,EAChD,YACS,SACA,UACP,SACA;AACA,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,SACE,WACA,oBAAoB,SAAS,SAAS,CAAC,2BAA2B,SAAS,SAAS,CAAC;AAAA,IACzF,CAAC;AATM;AACA;AAWP,WAAO,eAAe,MAAM,iBAAiB,SAAS;AAAA,EACxD;AACF;AAEO,MAAM,wBAAwB,YAAY;AAAA,EAC/C,YAAY,SAAkB;AAC5B,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,SAAS,WAAW;AAAA,IACtB,CAAC;AAGD,WAAO,eAAe,MAAM,gBAAgB,SAAS;AAAA,EACvD;AACF;AAEO,MAAM,0BAA0B,YAAY;AAAA,EACjD,YAAY,SAAkB;AAC5B,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,SAAS,WAAW;AAAA,IACtB,CAAC;AAGD,WAAO,eAAe,MAAM,kBAAkB,SAAS;AAAA,EACzD;AACF;AAEO,MAAM,sBAAsB,YAAY;AAAA,EAC7C,YAAY,SAA0D;AACpE,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,SACE,SAAS,YACR,SAAS,KACN,QAAQ,OACN,GAAG,QAAQ,IAAI,SAAS,QAAQ,EAAE,4CAClC,cAAc,QAAQ,EAAE,4CAC1B,SAAS,OACP,GAAG,QAAQ,IAAI,4CACf;AAAA,IACV,CAAC;AAGD,WAAO,eAAe,MAAM,cAAc,SAAS;AAAA,EACrD;AACF","sourcesContent":["import { isNumber, isString } from '../validation';\n\nexport class EmmettError extends Error {\n public errorCode: number;\n\n constructor(\n options?: { errorCode: number; message?: string } | string | number,\n ) {\n const errorCode =\n options && typeof options === 'object' && 'errorCode' in options\n ? options.errorCode\n : isNumber(options)\n ? options\n : 500;\n const message =\n options && typeof options === 'object' && 'message' in options\n ? options.message\n : isString(options)\n ? options\n : `Error with status code '${errorCode}' ocurred during Emmett processing`;\n\n super(message);\n this.errorCode = errorCode;\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, EmmettError.prototype);\n }\n}\n\nexport class ConcurrencyError extends EmmettError {\n constructor(\n public current: string | undefined,\n public expected: string,\n message?: string,\n ) {\n super({\n errorCode: 412,\n message:\n message ??\n `Expected version ${expected.toString()} does not match current ${current?.toString()}`,\n });\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, ConcurrencyError.prototype);\n }\n}\n\nexport class ValidationError extends EmmettError {\n constructor(message?: string) {\n super({\n errorCode: 400,\n message: message ?? `Validation Error ocurred during Emmett processing`,\n });\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class IllegalStateError extends EmmettError {\n constructor(message?: string) {\n super({\n errorCode: 403,\n message: message ?? `Illegal State ocurred during Emmett processing`,\n });\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, IllegalStateError.prototype);\n }\n}\n\nexport class NotFoundError extends EmmettError {\n constructor(options?: { id: string; type: string; message?: string }) {\n super({\n errorCode: 404,\n message:\n options?.message ??\n (options?.id\n ? options.type\n ? `${options.type} with ${options.id} was not found during Emmett processing`\n : `State with ${options.id} was not found during Emmett processing`\n : options?.type\n ? `${options.type} was not found during Emmett processing`\n : 'State was not found during Emmett processing'),\n });\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,57 +1,2 @@
1
- import { isNumber, isString } from "../validation";
2
- class EmmettError extends Error {
3
- errorCode;
4
- constructor(options) {
5
- const errorCode = options && typeof options === "object" && "errorCode" in options ? options.errorCode : isNumber(options) ? options : 500;
6
- const message = options && typeof options === "object" && "message" in options ? options.message : isString(options) ? options : `Error with status code '${errorCode}' ocurred during Emmett processing`;
7
- super(message);
8
- this.errorCode = errorCode;
9
- Object.setPrototypeOf(this, EmmettError.prototype);
10
- }
11
- }
12
- class ConcurrencyError extends EmmettError {
13
- constructor(current, expected, message) {
14
- super({
15
- errorCode: 412,
16
- message: message ?? `Expected version ${expected.toString()} does not match current ${current?.toString()}`
17
- });
18
- this.current = current;
19
- this.expected = expected;
20
- Object.setPrototypeOf(this, ConcurrencyError.prototype);
21
- }
22
- }
23
- class ValidationError extends EmmettError {
24
- constructor(message) {
25
- super({
26
- errorCode: 400,
27
- message: message ?? `Validation Error ocurred during Emmett processing`
28
- });
29
- Object.setPrototypeOf(this, ValidationError.prototype);
30
- }
31
- }
32
- class IllegalStateError extends EmmettError {
33
- constructor(message) {
34
- super({
35
- errorCode: 403,
36
- message: message ?? `Illegal State ocurred during Emmett processing`
37
- });
38
- Object.setPrototypeOf(this, IllegalStateError.prototype);
39
- }
40
- }
41
- class NotFoundError extends EmmettError {
42
- constructor(options) {
43
- super({
44
- errorCode: 404,
45
- message: options?.message ?? (options?.id ? options.type ? `${options.type} with ${options.id} was not found during Emmett processing` : `State with ${options.id} was not found during Emmett processing` : options?.type ? `${options.type} was not found during Emmett processing` : "State was not found during Emmett processing")
46
- });
47
- Object.setPrototypeOf(this, NotFoundError.prototype);
48
- }
49
- }
50
- export {
51
- ConcurrencyError,
52
- EmmettError,
53
- IllegalStateError,
54
- NotFoundError,
55
- ValidationError
56
- };
1
+ import{g as a,h as b,i as c,j as d,k as e}from"../chunk-YV6PB6LX.mjs";export{b as ConcurrencyError,a as EmmettError,d as IllegalStateError,e as NotFoundError,c as ValidationError};
57
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/errors/index.ts"],"sourcesContent":["import { isNumber, isString } from '../validation';\n\nexport class EmmettError extends Error {\n public errorCode: number;\n\n constructor(\n options?: { errorCode: number; message?: string } | string | number,\n ) {\n const errorCode =\n options && typeof options === 'object' && 'errorCode' in options\n ? options.errorCode\n : isNumber(options)\n ? options\n : 500;\n const message =\n options && typeof options === 'object' && 'message' in options\n ? options.message\n : isString(options)\n ? options\n : `Error with status code '${errorCode}' ocurred during Emmett processing`;\n\n super(message);\n this.errorCode = errorCode;\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, EmmettError.prototype);\n }\n}\n\nexport class ConcurrencyError extends EmmettError {\n constructor(\n public current: string | undefined,\n public expected: string,\n message?: string,\n ) {\n super({\n errorCode: 412,\n message:\n message ??\n `Expected version ${expected.toString()} does not match current ${current?.toString()}`,\n });\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, ConcurrencyError.prototype);\n }\n}\n\nexport class ValidationError extends EmmettError {\n constructor(message?: string) {\n super({\n errorCode: 400,\n message: message ?? `Validation Error ocurred during Emmett processing`,\n });\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class IllegalStateError extends EmmettError {\n constructor(message?: string) {\n super({\n errorCode: 403,\n message: message ?? `Illegal State ocurred during Emmett processing`,\n });\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, IllegalStateError.prototype);\n }\n}\n\nexport class NotFoundError extends EmmettError {\n constructor(options?: { id: string; type: string; message?: string }) {\n super({\n errorCode: 404,\n message:\n options?.message ??\n (options?.id\n ? options.type\n ? `${options.type} with ${options.id} was not found during Emmett processing`\n : `State with ${options.id} was not found during Emmett processing`\n : options?.type\n ? `${options.type} was not found during Emmett processing`\n : 'State was not found during Emmett processing'),\n });\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n"],"mappings":"AAAA,SAAS,UAAU,gBAAgB;AAE5B,MAAM,oBAAoB,MAAM;AAAA,EAC9B;AAAA,EAEP,YACE,SACA;AACA,UAAM,YACJ,WAAW,OAAO,YAAY,YAAY,eAAe,UACrD,QAAQ,YACR,SAAS,OAAO,IACd,UACA;AACR,UAAM,UACJ,WAAW,OAAO,YAAY,YAAY,aAAa,UACnD,QAAQ,UACR,SAAS,OAAO,IACd,UACA,2BAA2B,SAAS;AAE5C,UAAM,OAAO;AACb,SAAK,YAAY;AAGjB,WAAO,eAAe,MAAM,YAAY,SAAS;AAAA,EACnD;AACF;AAEO,MAAM,yBAAyB,YAAY;AAAA,EAChD,YACS,SACA,UACP,SACA;AACA,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,SACE,WACA,oBAAoB,SAAS,SAAS,CAAC,2BAA2B,SAAS,SAAS,CAAC;AAAA,IACzF,CAAC;AATM;AACA;AAWP,WAAO,eAAe,MAAM,iBAAiB,SAAS;AAAA,EACxD;AACF;AAEO,MAAM,wBAAwB,YAAY;AAAA,EAC/C,YAAY,SAAkB;AAC5B,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,SAAS,WAAW;AAAA,IACtB,CAAC;AAGD,WAAO,eAAe,MAAM,gBAAgB,SAAS;AAAA,EACvD;AACF;AAEO,MAAM,0BAA0B,YAAY;AAAA,EACjD,YAAY,SAAkB;AAC5B,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,SAAS,WAAW;AAAA,IACtB,CAAC;AAGD,WAAO,eAAe,MAAM,kBAAkB,SAAS;AAAA,EACzD;AACF;AAEO,MAAM,sBAAsB,YAAY;AAAA,EAC7C,YAAY,SAA0D;AACpE,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,SACE,SAAS,YACR,SAAS,KACN,QAAQ,OACN,GAAG,QAAQ,IAAI,SAAS,QAAQ,EAAE,4CAClC,cAAc,QAAQ,EAAE,4CAC1B,SAAS,OACP,GAAG,QAAQ,IAAI,4CACf;AAAA,IACV,CAAC;AAGD,WAAO,eAAe,MAAM,cAAc,SAAS;AAAA,EACrD;AACF;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +1,2 @@
1
- "use strict";//# sourceMappingURL=eventStore.js.map
1
+ "use strict";require('../chunk-IJGC6SHP.js');
2
+ //# sourceMappingURL=eventStore.js.map
@@ -1 +1,2 @@
1
+ import"../chunk-D24KLTN5.mjs";
1
2
  //# sourceMappingURL=eventStore.mjs.map
@@ -1,33 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _errors = require('../errors');
2
- const STREAM_EXISTS = "STREAM_EXISTS";
3
- const STREAM_DOES_NOT_EXIST = "STREAM_DOES_NOT_EXIST";
4
- const NO_CONCURRENCY_CHECK = "NO_CONCURRENCY_CHECK";
5
- const matchesExpectedVersion = (current, expected) => {
6
- if (expected === NO_CONCURRENCY_CHECK)
7
- return true;
8
- if (expected == STREAM_DOES_NOT_EXIST)
9
- return current === void 0;
10
- if (expected == STREAM_EXISTS)
11
- return current !== void 0;
12
- return current === expected;
13
- };
14
- const assertExpectedVersionMatchesCurrent = (current, expected) => {
15
- expected ??= NO_CONCURRENCY_CHECK;
16
- if (!matchesExpectedVersion(current, expected))
17
- throw new ExpectedVersionConflictError(current, expected);
18
- };
19
- class ExpectedVersionConflictError extends _errors.ConcurrencyError {
20
- constructor(current, expected) {
21
- super(_optionalChain([current, 'optionalAccess', _ => _.toString, 'call', _2 => _2()]), _optionalChain([expected, 'optionalAccess', _3 => _3.toString, 'call', _4 => _4()]));
22
- Object.setPrototypeOf(this, ExpectedVersionConflictError.prototype);
23
- }
24
- }
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
- exports.ExpectedVersionConflictError = ExpectedVersionConflictError; exports.NO_CONCURRENCY_CHECK = NO_CONCURRENCY_CHECK; exports.STREAM_DOES_NOT_EXIST = STREAM_DOES_NOT_EXIST; exports.STREAM_EXISTS = STREAM_EXISTS; exports.assertExpectedVersionMatchesCurrent = assertExpectedVersionMatchesCurrent; exports.matchesExpectedVersion = matchesExpectedVersion;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk46YIPCSNjs = require('../chunk-46YIPCSN.js');require('../chunk-UUCTMJK7.js');exports.ExpectedVersionConflictError = _chunk46YIPCSNjs.f; exports.NO_CONCURRENCY_CHECK = _chunk46YIPCSNjs.c; exports.STREAM_DOES_NOT_EXIST = _chunk46YIPCSNjs.b; exports.STREAM_EXISTS = _chunk46YIPCSNjs.a; exports.assertExpectedVersionMatchesCurrent = _chunk46YIPCSNjs.e; exports.matchesExpectedVersion = _chunk46YIPCSNjs.d;
33
2
  //# sourceMappingURL=expectedVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eventStore/expectedVersion.ts"],"names":[],"mappings":"AAAA,SAAS,wBAAwB;AAiB1B,MAAM,gBAAgB;AACtB,MAAM,wBACX;AACK,MAAM,uBACX;AAEK,MAAM,yBAAyB,CAGpC,SACA,aACY;AACZ,MAAI,aAAa;AAAsB,WAAO;AAE9C,MAAI,YAAY;AAAuB,WAAO,YAAY;AAE1D,MAAI,YAAY;AAAe,WAAO,YAAY;AAElD,SAAO,YAAY;AACrB;AAEO,MAAM,sCAAsC,CAGjD,SACA,aACS;AACT,eAAa;AAEb,MAAI,CAAC,uBAAuB,SAAS,QAAQ;AAC3C,UAAM,IAAI,6BAA6B,SAAS,QAAQ;AAC5D;AAEO,MAAM,qCAEH,iBAAiB;AAAA,EACzB,YACE,SACA,UACA;AACA,UAAM,SAAS,SAAS,GAAG,UAAU,SAAS,CAAC;AAG/C,WAAO,eAAe,MAAM,6BAA6B,SAAS;AAAA,EACpE;AACF","sourcesContent":["import { ConcurrencyError } from '../errors';\nimport type { Flavour } from '../typing';\nimport type { DefaultStreamVersionType } from './eventStore';\n\nexport type ExpectedStreamVersion<VersionType = DefaultStreamVersionType> =\n | ExpectedStreamVersionWithValue<VersionType>\n | ExpectedStreamVersionGeneral;\n\nexport type ExpectedStreamVersionWithValue<\n VersionType = DefaultStreamVersionType,\n> = Flavour<VersionType, 'StreamVersion'>;\n\nexport type ExpectedStreamVersionGeneral = Flavour<\n 'STREAM_EXISTS' | 'STREAM_DOES_NOT_EXIST' | 'NO_CONCURRENCY_CHECK',\n 'StreamVersion'\n>;\n\nexport const STREAM_EXISTS = 'STREAM_EXISTS' as ExpectedStreamVersionGeneral;\nexport const STREAM_DOES_NOT_EXIST =\n 'STREAM_DOES_NOT_EXIST' as ExpectedStreamVersionGeneral;\nexport const NO_CONCURRENCY_CHECK =\n 'NO_CONCURRENCY_CHECK' as ExpectedStreamVersionGeneral;\n\nexport const matchesExpectedVersion = <\n StreamVersion = DefaultStreamVersionType,\n>(\n current: StreamVersion | undefined,\n expected: ExpectedStreamVersion<StreamVersion>,\n): boolean => {\n if (expected === NO_CONCURRENCY_CHECK) return true;\n\n if (expected == STREAM_DOES_NOT_EXIST) return current === undefined;\n\n if (expected == STREAM_EXISTS) return current !== undefined;\n\n return current === expected;\n};\n\nexport const assertExpectedVersionMatchesCurrent = <\n StreamVersion = DefaultStreamVersionType,\n>(\n current: StreamVersion | undefined,\n expected: ExpectedStreamVersion<StreamVersion> | undefined,\n): void => {\n expected ??= NO_CONCURRENCY_CHECK;\n\n if (!matchesExpectedVersion(current, expected))\n throw new ExpectedVersionConflictError(current, expected);\n};\n\nexport class ExpectedVersionConflictError<\n VersionType = DefaultStreamVersionType,\n> extends ConcurrencyError {\n constructor(\n current: VersionType | undefined,\n expected: ExpectedStreamVersion<VersionType>,\n ) {\n super(current?.toString(), expected?.toString());\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, ExpectedVersionConflictError.prototype);\n }\n}\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,33 +1,2 @@
1
- import { ConcurrencyError } from "../errors";
2
- const STREAM_EXISTS = "STREAM_EXISTS";
3
- const STREAM_DOES_NOT_EXIST = "STREAM_DOES_NOT_EXIST";
4
- const NO_CONCURRENCY_CHECK = "NO_CONCURRENCY_CHECK";
5
- const matchesExpectedVersion = (current, expected) => {
6
- if (expected === NO_CONCURRENCY_CHECK)
7
- return true;
8
- if (expected == STREAM_DOES_NOT_EXIST)
9
- return current === void 0;
10
- if (expected == STREAM_EXISTS)
11
- return current !== void 0;
12
- return current === expected;
13
- };
14
- const assertExpectedVersionMatchesCurrent = (current, expected) => {
15
- expected ??= NO_CONCURRENCY_CHECK;
16
- if (!matchesExpectedVersion(current, expected))
17
- throw new ExpectedVersionConflictError(current, expected);
18
- };
19
- class ExpectedVersionConflictError extends ConcurrencyError {
20
- constructor(current, expected) {
21
- super(current?.toString(), expected?.toString());
22
- Object.setPrototypeOf(this, ExpectedVersionConflictError.prototype);
23
- }
24
- }
25
- export {
26
- ExpectedVersionConflictError,
27
- NO_CONCURRENCY_CHECK,
28
- STREAM_DOES_NOT_EXIST,
29
- STREAM_EXISTS,
30
- assertExpectedVersionMatchesCurrent,
31
- matchesExpectedVersion
32
- };
1
+ import{a,b,c,d,e,f}from"../chunk-UI6CV7VB.mjs";import"../chunk-YV6PB6LX.mjs";export{f as ExpectedVersionConflictError,c as NO_CONCURRENCY_CHECK,b as STREAM_DOES_NOT_EXIST,a as STREAM_EXISTS,e as assertExpectedVersionMatchesCurrent,d as matchesExpectedVersion};
33
2
  //# sourceMappingURL=expectedVersion.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eventStore/expectedVersion.ts"],"sourcesContent":["import { ConcurrencyError } from '../errors';\nimport type { Flavour } from '../typing';\nimport type { DefaultStreamVersionType } from './eventStore';\n\nexport type ExpectedStreamVersion<VersionType = DefaultStreamVersionType> =\n | ExpectedStreamVersionWithValue<VersionType>\n | ExpectedStreamVersionGeneral;\n\nexport type ExpectedStreamVersionWithValue<\n VersionType = DefaultStreamVersionType,\n> = Flavour<VersionType, 'StreamVersion'>;\n\nexport type ExpectedStreamVersionGeneral = Flavour<\n 'STREAM_EXISTS' | 'STREAM_DOES_NOT_EXIST' | 'NO_CONCURRENCY_CHECK',\n 'StreamVersion'\n>;\n\nexport const STREAM_EXISTS = 'STREAM_EXISTS' as ExpectedStreamVersionGeneral;\nexport const STREAM_DOES_NOT_EXIST =\n 'STREAM_DOES_NOT_EXIST' as ExpectedStreamVersionGeneral;\nexport const NO_CONCURRENCY_CHECK =\n 'NO_CONCURRENCY_CHECK' as ExpectedStreamVersionGeneral;\n\nexport const matchesExpectedVersion = <\n StreamVersion = DefaultStreamVersionType,\n>(\n current: StreamVersion | undefined,\n expected: ExpectedStreamVersion<StreamVersion>,\n): boolean => {\n if (expected === NO_CONCURRENCY_CHECK) return true;\n\n if (expected == STREAM_DOES_NOT_EXIST) return current === undefined;\n\n if (expected == STREAM_EXISTS) return current !== undefined;\n\n return current === expected;\n};\n\nexport const assertExpectedVersionMatchesCurrent = <\n StreamVersion = DefaultStreamVersionType,\n>(\n current: StreamVersion | undefined,\n expected: ExpectedStreamVersion<StreamVersion> | undefined,\n): void => {\n expected ??= NO_CONCURRENCY_CHECK;\n\n if (!matchesExpectedVersion(current, expected))\n throw new ExpectedVersionConflictError(current, expected);\n};\n\nexport class ExpectedVersionConflictError<\n VersionType = DefaultStreamVersionType,\n> extends ConcurrencyError {\n constructor(\n current: VersionType | undefined,\n expected: ExpectedStreamVersion<VersionType>,\n ) {\n super(current?.toString(), expected?.toString());\n\n // 👇️ because we are extending a built-in class\n Object.setPrototypeOf(this, ExpectedVersionConflictError.prototype);\n }\n}\n"],"mappings":"AAAA,SAAS,wBAAwB;AAiB1B,MAAM,gBAAgB;AACtB,MAAM,wBACX;AACK,MAAM,uBACX;AAEK,MAAM,yBAAyB,CAGpC,SACA,aACY;AACZ,MAAI,aAAa;AAAsB,WAAO;AAE9C,MAAI,YAAY;AAAuB,WAAO,YAAY;AAE1D,MAAI,YAAY;AAAe,WAAO,YAAY;AAElD,SAAO,YAAY;AACrB;AAEO,MAAM,sCAAsC,CAGjD,SACA,aACS;AACT,eAAa;AAEb,MAAI,CAAC,uBAAuB,SAAS,QAAQ;AAC3C,UAAM,IAAI,6BAA6B,SAAS,QAAQ;AAC5D;AAEO,MAAM,qCAEH,iBAAiB;AAAA,EACzB,YACE,SACA,UACA;AACA,UAAM,SAAS,SAAS,GAAG,UAAU,SAAS,CAAC;AAG/C,WAAO,eAAe,MAAM,6BAA6B,SAAS;AAAA,EACpE;AACF;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,71 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _crypto = require('crypto');
2
-
3
- require('./eventStore');
4
- var _expectedVersion = require('./expectedVersion');
5
- const getInMemoryEventStore = () => {
6
- const streams = /* @__PURE__ */ new Map();
7
- const getAllEventsCount = () => {
8
- return Array.from(streams.values()).map((s) => s.length).reduce((p, c) => p + c, 0);
9
- };
10
- return {
11
- async aggregateStream(streamName, options) {
12
- const { evolve, getInitialState, read } = options;
13
- const result = await this.readStream(streamName, read);
14
- if (!result)
15
- return null;
16
- const events = _nullishCoalesce(_optionalChain([result, 'optionalAccess', _ => _.events]), () => ( []));
17
- return {
18
- currentStreamVersion: BigInt(events.length),
19
- state: events.reduce(evolve, getInitialState())
20
- };
21
- },
22
- readStream: (streamName, options) => {
23
- const events = streams.get(streamName);
24
- const currentStreamVersion = events ? BigInt(events.length) : void 0;
25
- _expectedVersion.assertExpectedVersionMatchesCurrent.call(void 0,
26
- currentStreamVersion,
27
- _optionalChain([options, 'optionalAccess', _2 => _2.expectedStreamVersion])
28
- );
29
- const from = Number(options && "from" in options ? options.from : 0);
30
- const to = Number(
31
- options && "to" in options ? options.to : options && "maxCount" in options && options.maxCount ? options.from + options.maxCount : _nullishCoalesce(_optionalChain([events, 'optionalAccess', _3 => _3.length]), () => ( 1))
32
- );
33
- const resultEvents = events && events.length > 0 ? events.map((e) => e.event).slice(from, to) : [];
34
- const result = events && events.length > 0 ? {
35
- currentStreamVersion,
36
- events: resultEvents
37
- } : null;
38
- return Promise.resolve(result);
39
- },
40
- appendToStream: (streamName, events, options) => {
41
- const currentEvents = _nullishCoalesce(streams.get(streamName), () => ( []));
42
- const currentStreamVersion = currentEvents.length > 0 ? BigInt(currentEvents.length) : void 0;
43
- _expectedVersion.assertExpectedVersionMatchesCurrent.call(void 0,
44
- currentStreamVersion,
45
- _optionalChain([options, 'optionalAccess', _4 => _4.expectedStreamVersion])
46
- );
47
- const eventEnvelopes = events.map((event, index) => {
48
- return {
49
- event,
50
- metadata: {
51
- eventId: _crypto.randomUUID.call(void 0, ),
52
- streamPosition: currentEvents.length + index + 1,
53
- logPosition: BigInt(getAllEventsCount() + index + 1)
54
- }
55
- };
56
- });
57
- const positionOfLastEventInTheStream = BigInt(
58
- eventEnvelopes.slice(-1)[0].metadata.streamPosition
59
- );
60
- streams.set(streamName, [...currentEvents, ...eventEnvelopes]);
61
- const result = {
62
- nextExpectedStreamVersion: positionOfLastEventInTheStream
63
- };
64
- return Promise.resolve(result);
65
- }
66
- };
67
- };
68
-
69
-
70
- exports.getInMemoryEventStore = getInMemoryEventStore;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkBM2H4NCZjs = require('../chunk-BM2H4NCZ.js');require('../chunk-IJGC6SHP.js');require('../chunk-46YIPCSN.js');require('../chunk-UUCTMJK7.js');exports.getInMemoryEventStore = _chunkBM2H4NCZjs.a;
71
2
  //# sourceMappingURL=inMemoryEventStore.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eventStore/inMemoryEventStore.ts"],"names":[],"mappings":"AAAA,SAAS,kBAAkB;AAE3B;AAAA,OAQO;AACP,SAAS,2CAA2C;AAiB7C,MAAM,wBAAwB,MAAkB;AACrD,QAAM,UAAU,oBAAI,IAA6B;AAEjD,QAAM,oBAAoB,MAAM;AAC9B,WAAO,MAAM,KAAsB,QAAQ,OAAO,CAAC,EAChD,IAAI,CAAC,MAAM,EAAE,MAAM,EACnB,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC;AAAA,EAC9B;AAEA,SAAO;AAAA,IACL,MAAM,gBACJ,YACA,SAC8C;AAC9C,YAAM,EAAE,QAAQ,iBAAiB,KAAK,IAAI;AAE1C,YAAM,SAAS,MAAM,KAAK,WAAsB,YAAY,IAAI;AAEhE,UAAI,CAAC;AAAQ,eAAO;AAEpB,YAAM,SAAS,QAAQ,UAAU,CAAC;AAElC,aAAO;AAAA,QACL,sBAAsB,OAAO,OAAO,MAAM;AAAA,QAC1C,OAAO,OAAO,OAAO,QAAQ,gBAAgB,CAAC;AAAA,MAChD;AAAA,IACF;AAAA,IAEA,YAAY,CACV,YACA,YACyC;AACzC,YAAM,SAAS,QAAQ,IAAI,UAAU;AACrC,YAAM,uBAAuB,SAAS,OAAO,OAAO,MAAM,IAAI;AAE9D;AAAA,QACE;AAAA,QACA,SAAS;AAAA,MACX;AAEA,YAAM,OAAO,OAAO,WAAW,UAAU,UAAU,QAAQ,OAAO,CAAC;AACnE,YAAM,KAAK;AAAA,QACT,WAAW,QAAQ,UACf,QAAQ,KACR,WAAW,cAAc,WAAW,QAAQ,WAC1C,QAAQ,OAAO,QAAQ,WACvB,QAAQ,UAAU;AAAA,MAC1B;AAEA,YAAM,eACJ,UAAU,OAAO,SAAS,IACtB,OAAO,IAAI,CAAC,MAAM,EAAE,KAAkB,EAAE,MAAM,MAAM,EAAE,IACtD,CAAC;AAEP,YAAM,SACJ,UAAU,OAAO,SAAS,IACtB;AAAA,QACE;AAAA,QACA,QAAQ;AAAA,MACV,IACA;AAEN,aAAO,QAAQ,QAAQ,MAAM;AAAA,IAC/B;AAAA,IAEA,gBAAgB,CACd,YACA,QACA,YACkC;AAClC,YAAM,gBAAgB,QAAQ,IAAI,UAAU,KAAK,CAAC;AAClD,YAAM,uBACJ,cAAc,SAAS,IAAI,OAAO,cAAc,MAAM,IAAI;AAE5D;AAAA,QACE;AAAA,QACA,SAAS;AAAA,MACX;AAEA,YAAM,iBAAkC,OAAO,IAAI,CAAC,OAAO,UAAU;AACnE,eAAO;AAAA,UACL;AAAA,UACA,UAAU;AAAA,YACR,SAAS,WAAW;AAAA,YACpB,gBAAgB,cAAc,SAAS,QAAQ;AAAA,YAC/C,aAAa,OAAO,kBAAkB,IAAI,QAAQ,CAAC;AAAA,UACrD;AAAA,QACF;AAAA,MACF,CAAC;AAED,YAAM,iCAAiC;AAAA,QACrC,eAAe,MAAM,EAAE,EAAE,CAAC,EAAG,SAAS;AAAA,MACxC;AAEA,cAAQ,IAAI,YAAY,CAAC,GAAG,eAAe,GAAG,cAAc,CAAC;AAE7D,YAAM,SAA+B;AAAA,QACnC,2BAA2B;AAAA,MAC7B;AAEA,aAAO,QAAQ,QAAQ,MAAM;AAAA,IAC/B;AAAA,EACF;AACF","sourcesContent":["import { randomUUID } from 'crypto';\nimport type { Event } from '../typing';\nimport {\n type AggregateStreamOptions,\n type AggregateStreamResult,\n type AppendToStreamOptions,\n type AppendToStreamResult,\n type EventStore,\n type ReadStreamOptions,\n type ReadStreamResult,\n} from './eventStore';\nimport { assertExpectedVersionMatchesCurrent } from './expectedVersion';\n\nexport type EventMetadata = Readonly<{\n eventId: string;\n streamPosition: number;\n logPosition: bigint;\n}>;\n\nexport type EventEnvelope<E extends Event = Event> = {\n event: E;\n metadata: EventMetadata;\n};\n\nexport type EventHandler<E extends Event = Event> = (\n eventEnvelope: EventEnvelope<E>,\n) => void;\n\nexport const getInMemoryEventStore = (): EventStore => {\n const streams = new Map<string, EventEnvelope[]>();\n\n const getAllEventsCount = () => {\n return Array.from<EventEnvelope[]>(streams.values())\n .map((s) => s.length)\n .reduce((p, c) => p + c, 0);\n };\n\n return {\n async aggregateStream<State, EventType extends Event>(\n streamName: string,\n options: AggregateStreamOptions<State, EventType>,\n ): Promise<AggregateStreamResult<State> | null> {\n const { evolve, getInitialState, read } = options;\n\n const result = await this.readStream<EventType>(streamName, read);\n\n if (!result) return null;\n\n const events = result?.events ?? [];\n\n return {\n currentStreamVersion: BigInt(events.length),\n state: events.reduce(evolve, getInitialState()),\n };\n },\n\n readStream: <EventType extends Event>(\n streamName: string,\n options?: ReadStreamOptions,\n ): Promise<ReadStreamResult<EventType>> => {\n const events = streams.get(streamName);\n const currentStreamVersion = events ? BigInt(events.length) : undefined;\n\n assertExpectedVersionMatchesCurrent(\n currentStreamVersion,\n options?.expectedStreamVersion,\n );\n\n const from = Number(options && 'from' in options ? options.from : 0);\n const to = Number(\n options && 'to' in options\n ? options.to\n : options && 'maxCount' in options && options.maxCount\n ? options.from + options.maxCount\n : events?.length ?? 1,\n );\n\n const resultEvents =\n events && events.length > 0\n ? events.map((e) => e.event as EventType).slice(from, to)\n : [];\n\n const result: ReadStreamResult<EventType> =\n events && events.length > 0\n ? {\n currentStreamVersion: currentStreamVersion!,\n events: resultEvents,\n }\n : null;\n\n return Promise.resolve(result);\n },\n\n appendToStream: <EventType extends Event>(\n streamName: string,\n events: EventType[],\n options?: AppendToStreamOptions,\n ): Promise<AppendToStreamResult> => {\n const currentEvents = streams.get(streamName) ?? [];\n const currentStreamVersion =\n currentEvents.length > 0 ? BigInt(currentEvents.length) : undefined;\n\n assertExpectedVersionMatchesCurrent(\n currentStreamVersion,\n options?.expectedStreamVersion,\n );\n\n const eventEnvelopes: EventEnvelope[] = events.map((event, index) => {\n return {\n event,\n metadata: {\n eventId: randomUUID(),\n streamPosition: currentEvents.length + index + 1,\n logPosition: BigInt(getAllEventsCount() + index + 1),\n },\n };\n });\n\n const positionOfLastEventInTheStream = BigInt(\n eventEnvelopes.slice(-1)[0]!.metadata.streamPosition,\n );\n\n streams.set(streamName, [...currentEvents, ...eventEnvelopes]);\n\n const result: AppendToStreamResult = {\n nextExpectedStreamVersion: positionOfLastEventInTheStream,\n };\n\n return Promise.resolve(result);\n },\n };\n};\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,71 +1,2 @@
1
- import { randomUUID } from "crypto";
2
- import {
3
- } from "./eventStore";
4
- import { assertExpectedVersionMatchesCurrent } from "./expectedVersion";
5
- const getInMemoryEventStore = () => {
6
- const streams = /* @__PURE__ */ new Map();
7
- const getAllEventsCount = () => {
8
- return Array.from(streams.values()).map((s) => s.length).reduce((p, c) => p + c, 0);
9
- };
10
- return {
11
- async aggregateStream(streamName, options) {
12
- const { evolve, getInitialState, read } = options;
13
- const result = await this.readStream(streamName, read);
14
- if (!result)
15
- return null;
16
- const events = result?.events ?? [];
17
- return {
18
- currentStreamVersion: BigInt(events.length),
19
- state: events.reduce(evolve, getInitialState())
20
- };
21
- },
22
- readStream: (streamName, options) => {
23
- const events = streams.get(streamName);
24
- const currentStreamVersion = events ? BigInt(events.length) : void 0;
25
- assertExpectedVersionMatchesCurrent(
26
- currentStreamVersion,
27
- options?.expectedStreamVersion
28
- );
29
- const from = Number(options && "from" in options ? options.from : 0);
30
- const to = Number(
31
- options && "to" in options ? options.to : options && "maxCount" in options && options.maxCount ? options.from + options.maxCount : events?.length ?? 1
32
- );
33
- const resultEvents = events && events.length > 0 ? events.map((e) => e.event).slice(from, to) : [];
34
- const result = events && events.length > 0 ? {
35
- currentStreamVersion,
36
- events: resultEvents
37
- } : null;
38
- return Promise.resolve(result);
39
- },
40
- appendToStream: (streamName, events, options) => {
41
- const currentEvents = streams.get(streamName) ?? [];
42
- const currentStreamVersion = currentEvents.length > 0 ? BigInt(currentEvents.length) : void 0;
43
- assertExpectedVersionMatchesCurrent(
44
- currentStreamVersion,
45
- options?.expectedStreamVersion
46
- );
47
- const eventEnvelopes = events.map((event, index) => {
48
- return {
49
- event,
50
- metadata: {
51
- eventId: randomUUID(),
52
- streamPosition: currentEvents.length + index + 1,
53
- logPosition: BigInt(getAllEventsCount() + index + 1)
54
- }
55
- };
56
- });
57
- const positionOfLastEventInTheStream = BigInt(
58
- eventEnvelopes.slice(-1)[0].metadata.streamPosition
59
- );
60
- streams.set(streamName, [...currentEvents, ...eventEnvelopes]);
61
- const result = {
62
- nextExpectedStreamVersion: positionOfLastEventInTheStream
63
- };
64
- return Promise.resolve(result);
65
- }
66
- };
67
- };
68
- export {
69
- getInMemoryEventStore
70
- };
1
+ import{a}from"../chunk-CTCSK4FW.mjs";import"../chunk-D24KLTN5.mjs";import"../chunk-UI6CV7VB.mjs";import"../chunk-YV6PB6LX.mjs";export{a as getInMemoryEventStore};
71
2
  //# sourceMappingURL=inMemoryEventStore.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eventStore/inMemoryEventStore.ts"],"sourcesContent":["import { randomUUID } from 'crypto';\nimport type { Event } from '../typing';\nimport {\n type AggregateStreamOptions,\n type AggregateStreamResult,\n type AppendToStreamOptions,\n type AppendToStreamResult,\n type EventStore,\n type ReadStreamOptions,\n type ReadStreamResult,\n} from './eventStore';\nimport { assertExpectedVersionMatchesCurrent } from './expectedVersion';\n\nexport type EventMetadata = Readonly<{\n eventId: string;\n streamPosition: number;\n logPosition: bigint;\n}>;\n\nexport type EventEnvelope<E extends Event = Event> = {\n event: E;\n metadata: EventMetadata;\n};\n\nexport type EventHandler<E extends Event = Event> = (\n eventEnvelope: EventEnvelope<E>,\n) => void;\n\nexport const getInMemoryEventStore = (): EventStore => {\n const streams = new Map<string, EventEnvelope[]>();\n\n const getAllEventsCount = () => {\n return Array.from<EventEnvelope[]>(streams.values())\n .map((s) => s.length)\n .reduce((p, c) => p + c, 0);\n };\n\n return {\n async aggregateStream<State, EventType extends Event>(\n streamName: string,\n options: AggregateStreamOptions<State, EventType>,\n ): Promise<AggregateStreamResult<State> | null> {\n const { evolve, getInitialState, read } = options;\n\n const result = await this.readStream<EventType>(streamName, read);\n\n if (!result) return null;\n\n const events = result?.events ?? [];\n\n return {\n currentStreamVersion: BigInt(events.length),\n state: events.reduce(evolve, getInitialState()),\n };\n },\n\n readStream: <EventType extends Event>(\n streamName: string,\n options?: ReadStreamOptions,\n ): Promise<ReadStreamResult<EventType>> => {\n const events = streams.get(streamName);\n const currentStreamVersion = events ? BigInt(events.length) : undefined;\n\n assertExpectedVersionMatchesCurrent(\n currentStreamVersion,\n options?.expectedStreamVersion,\n );\n\n const from = Number(options && 'from' in options ? options.from : 0);\n const to = Number(\n options && 'to' in options\n ? options.to\n : options && 'maxCount' in options && options.maxCount\n ? options.from + options.maxCount\n : events?.length ?? 1,\n );\n\n const resultEvents =\n events && events.length > 0\n ? events.map((e) => e.event as EventType).slice(from, to)\n : [];\n\n const result: ReadStreamResult<EventType> =\n events && events.length > 0\n ? {\n currentStreamVersion: currentStreamVersion!,\n events: resultEvents,\n }\n : null;\n\n return Promise.resolve(result);\n },\n\n appendToStream: <EventType extends Event>(\n streamName: string,\n events: EventType[],\n options?: AppendToStreamOptions,\n ): Promise<AppendToStreamResult> => {\n const currentEvents = streams.get(streamName) ?? [];\n const currentStreamVersion =\n currentEvents.length > 0 ? BigInt(currentEvents.length) : undefined;\n\n assertExpectedVersionMatchesCurrent(\n currentStreamVersion,\n options?.expectedStreamVersion,\n );\n\n const eventEnvelopes: EventEnvelope[] = events.map((event, index) => {\n return {\n event,\n metadata: {\n eventId: randomUUID(),\n streamPosition: currentEvents.length + index + 1,\n logPosition: BigInt(getAllEventsCount() + index + 1),\n },\n };\n });\n\n const positionOfLastEventInTheStream = BigInt(\n eventEnvelopes.slice(-1)[0]!.metadata.streamPosition,\n );\n\n streams.set(streamName, [...currentEvents, ...eventEnvelopes]);\n\n const result: AppendToStreamResult = {\n nextExpectedStreamVersion: positionOfLastEventInTheStream,\n };\n\n return Promise.resolve(result);\n },\n };\n};\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B;AAAA,OAQO;AACP,SAAS,2CAA2C;AAiB7C,MAAM,wBAAwB,MAAkB;AACrD,QAAM,UAAU,oBAAI,IAA6B;AAEjD,QAAM,oBAAoB,MAAM;AAC9B,WAAO,MAAM,KAAsB,QAAQ,OAAO,CAAC,EAChD,IAAI,CAAC,MAAM,EAAE,MAAM,EACnB,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC;AAAA,EAC9B;AAEA,SAAO;AAAA,IACL,MAAM,gBACJ,YACA,SAC8C;AAC9C,YAAM,EAAE,QAAQ,iBAAiB,KAAK,IAAI;AAE1C,YAAM,SAAS,MAAM,KAAK,WAAsB,YAAY,IAAI;AAEhE,UAAI,CAAC;AAAQ,eAAO;AAEpB,YAAM,SAAS,QAAQ,UAAU,CAAC;AAElC,aAAO;AAAA,QACL,sBAAsB,OAAO,OAAO,MAAM;AAAA,QAC1C,OAAO,OAAO,OAAO,QAAQ,gBAAgB,CAAC;AAAA,MAChD;AAAA,IACF;AAAA,IAEA,YAAY,CACV,YACA,YACyC;AACzC,YAAM,SAAS,QAAQ,IAAI,UAAU;AACrC,YAAM,uBAAuB,SAAS,OAAO,OAAO,MAAM,IAAI;AAE9D;AAAA,QACE;AAAA,QACA,SAAS;AAAA,MACX;AAEA,YAAM,OAAO,OAAO,WAAW,UAAU,UAAU,QAAQ,OAAO,CAAC;AACnE,YAAM,KAAK;AAAA,QACT,WAAW,QAAQ,UACf,QAAQ,KACR,WAAW,cAAc,WAAW,QAAQ,WAC1C,QAAQ,OAAO,QAAQ,WACvB,QAAQ,UAAU;AAAA,MAC1B;AAEA,YAAM,eACJ,UAAU,OAAO,SAAS,IACtB,OAAO,IAAI,CAAC,MAAM,EAAE,KAAkB,EAAE,MAAM,MAAM,EAAE,IACtD,CAAC;AAEP,YAAM,SACJ,UAAU,OAAO,SAAS,IACtB;AAAA,QACE;AAAA,QACA,QAAQ;AAAA,MACV,IACA;AAEN,aAAO,QAAQ,QAAQ,MAAM;AAAA,IAC/B;AAAA,IAEA,gBAAgB,CACd,YACA,QACA,YACkC;AAClC,YAAM,gBAAgB,QAAQ,IAAI,UAAU,KAAK,CAAC;AAClD,YAAM,uBACJ,cAAc,SAAS,IAAI,OAAO,cAAc,MAAM,IAAI;AAE5D;AAAA,QACE;AAAA,QACA,SAAS;AAAA,MACX;AAEA,YAAM,iBAAkC,OAAO,IAAI,CAAC,OAAO,UAAU;AACnE,eAAO;AAAA,UACL;AAAA,UACA,UAAU;AAAA,YACR,SAAS,WAAW;AAAA,YACpB,gBAAgB,cAAc,SAAS,QAAQ;AAAA,YAC/C,aAAa,OAAO,kBAAkB,IAAI,QAAQ,CAAC;AAAA,UACrD;AAAA,QACF;AAAA,MACF,CAAC;AAED,YAAM,iCAAiC;AAAA,QACrC,eAAe,MAAM,EAAE,EAAE,CAAC,EAAG,SAAS;AAAA,MACxC;AAEA,cAAQ,IAAI,YAAY,CAAC,GAAG,eAAe,GAAG,cAAc,CAAC;AAE7D,YAAM,SAA+B;AAAA,QACnC,2BAA2B;AAAA,MAC7B;AAEA,aAAO,QAAQ,QAAQ,MAAM;AAAA,IAC/B;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,4 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _eventStore = require('./eventStore'); _createStarExport(_eventStore);
2
- var _expectedVersion = require('./expectedVersion'); _createStarExport(_expectedVersion);
3
- var _inMemoryEventStore = require('./inMemoryEventStore'); _createStarExport(_inMemoryEventStore);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-2452BJTJ.js');var _chunkBM2H4NCZjs = require('../chunk-BM2H4NCZ.js');require('../chunk-IJGC6SHP.js');var _chunk46YIPCSNjs = require('../chunk-46YIPCSN.js');require('../chunk-UUCTMJK7.js');exports.ExpectedVersionConflictError = _chunk46YIPCSNjs.f; exports.NO_CONCURRENCY_CHECK = _chunk46YIPCSNjs.c; exports.STREAM_DOES_NOT_EXIST = _chunk46YIPCSNjs.b; exports.STREAM_EXISTS = _chunk46YIPCSNjs.a; exports.assertExpectedVersionMatchesCurrent = _chunk46YIPCSNjs.e; exports.getInMemoryEventStore = _chunkBM2H4NCZjs.a; exports.matchesExpectedVersion = _chunk46YIPCSNjs.d;
4
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eventStore/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc","sourcesContent":["export * from './eventStore';\nexport * from './expectedVersion';\nexport * from './inMemoryEventStore';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,4 +1,2 @@
1
- export * from "./eventStore";
2
- export * from "./expectedVersion";
3
- export * from "./inMemoryEventStore";
1
+ import"../chunk-45ODDXOQ.mjs";import{a as g}from"../chunk-CTCSK4FW.mjs";import"../chunk-D24KLTN5.mjs";import{a,b,c,d,e,f}from"../chunk-UI6CV7VB.mjs";import"../chunk-YV6PB6LX.mjs";export{f as ExpectedVersionConflictError,c as NO_CONCURRENCY_CHECK,b as STREAM_DOES_NOT_EXIST,a as STREAM_EXISTS,e as assertExpectedVersionMatchesCurrent,g as getInMemoryEventStore,d as matchesExpectedVersion};
4
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eventStore/index.ts"],"sourcesContent":["export * from './eventStore';\nexport * from './expectedVersion';\nexport * from './inMemoryEventStore';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.js CHANGED
@@ -1,9 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _commandHandling = require('./commandHandling'); _createStarExport(_commandHandling);
2
- var _errors = require('./errors'); _createStarExport(_errors);
3
- var _eventStore = require('./eventStore'); _createStarExport(_eventStore);
4
- var _serialization = require('./serialization'); _createStarExport(_serialization);
5
- var _testing = require('./testing'); _createStarExport(_testing);
6
- var _typing = require('./typing'); _createStarExport(_typing);
7
- var _utils = require('./utils'); _createStarExport(_utils);
8
- var _validation = require('./validation'); _createStarExport(_validation);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-Z7EDILIO.js');var _chunk7EZVPMJ6js = require('./chunk-7EZVPMJ6.js');require('./chunk-WIMBG2PX.js');var _chunkFE73T2NSjs = require('./chunk-FE73T2NS.js');var _chunk3JE5DUJ2js = require('./chunk-3JE5DUJ2.js');require('./chunk-LOJ6A4AJ.js');require('./chunk-AU2WZCER.js');var _chunkLYKEARRWjs = require('./chunk-LYKEARRW.js');require('./chunk-7H3QW2YD.js');var _chunkDFPI5IXTjs = require('./chunk-DFPI5IXT.js');var _chunkO34VKX7Rjs = require('./chunk-O34VKX7R.js');require('./chunk-QSAFGRYV.js');require('./chunk-7FJXUW3D.js');require('./chunk-BARLLX6S.js');require('./chunk-F7QRI2VL.js');var _chunkU3WA3VIWjs = require('./chunk-U3WA3VIW.js');var _chunkOYAO7QEPjs = require('./chunk-OYAO7QEP.js');require('./chunk-2452BJTJ.js');var _chunkBM2H4NCZjs = require('./chunk-BM2H4NCZ.js');require('./chunk-IJGC6SHP.js');var _chunk46YIPCSNjs = require('./chunk-46YIPCSN.js');var _chunkUUCTMJK7js = require('./chunk-UUCTMJK7.js');exports.CommandHandler = _chunkOYAO7QEPjs.a; exports.ConcurrencyError = _chunkUUCTMJK7js.h; exports.DeciderCommandHandler = _chunkU3WA3VIWjs.a; exports.DeciderSpecification = _chunkO34VKX7Rjs.a; exports.EmmettError = _chunkUUCTMJK7js.g; exports.ExpectedVersionConflictError = _chunk46YIPCSNjs.f; exports.IllegalStateError = _chunkUUCTMJK7js.j; exports.JSONParser = _chunkLYKEARRWjs.b; exports.NO_CONCURRENCY_CHECK = _chunk46YIPCSNjs.c; exports.NotFoundError = _chunkUUCTMJK7js.k; exports.ParseError = _chunkLYKEARRWjs.a; exports.STREAM_DOES_NOT_EXIST = _chunk46YIPCSNjs.b; exports.STREAM_EXISTS = _chunk46YIPCSNjs.a; exports.ValidationError = _chunkUUCTMJK7js.i; exports.ValidationErrors = _chunkUUCTMJK7js.a; exports.accept = _chunk7EZVPMJ6js.h; exports.assertExpectedVersionMatchesCurrent = _chunk46YIPCSNjs.e; exports.assertMatches = _chunkDFPI5IXTjs.b; exports.assertNotEmptyString = _chunkUUCTMJK7js.d; exports.assertPositiveNumber = _chunkUUCTMJK7js.e; exports.assertUnsignedBigInt = _chunkUUCTMJK7js.f; exports.complete = _chunk7EZVPMJ6js.e; exports.error = _chunk7EZVPMJ6js.g; exports.getInMemoryEventStore = _chunkBM2H4NCZjs.a; exports.ignore = _chunk7EZVPMJ6js.f; exports.isNumber = _chunkUUCTMJK7js.b; exports.isString = _chunkUUCTMJK7js.c; exports.isSubset = _chunkDFPI5IXTjs.a; exports.matchesExpectedVersion = _chunk46YIPCSNjs.d; exports.merge = _chunk3JE5DUJ2js.a; exports.publish = _chunk7EZVPMJ6js.c; exports.reply = _chunk7EZVPMJ6js.a; exports.schedule = _chunk7EZVPMJ6js.d; exports.send = _chunk7EZVPMJ6js.b; exports.sum = _chunkFE73T2NSjs.a;
9
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","sourcesContent":["export * from './commandHandling';\nexport * from './errors';\nexport * from './eventStore';\nexport * from './serialization';\nexport * from './testing';\nexport * from './typing';\nexport * from './utils';\nexport * from './validation';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}