@event-driven-io/emmett 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/{chunk-T44377V3.js → chunk-7ZSJY377.js} +2 -2
  2. package/dist/{chunk-NBYRSAVT.mjs → chunk-EYIJ7ZKY.mjs} +2 -2
  3. package/dist/{chunk-4LWGKY3J.js → chunk-G6LPI3PA.js} +2 -2
  4. package/dist/chunk-N6X7QWHP.mjs +2 -0
  5. package/dist/chunk-N6X7QWHP.mjs.map +1 -0
  6. package/dist/{chunk-7JNETS5J.js → chunk-OIDX2JMH.js} +2 -2
  7. package/dist/{chunk-RNVC3XMR.mjs → chunk-TKIRQ76T.mjs} +2 -2
  8. package/dist/chunk-TNX525X5.js +2 -0
  9. package/dist/chunk-TNX525X5.js.map +1 -0
  10. package/dist/{chunk-WQKN6JXB.js → chunk-VCCKNYOY.js} +4 -4
  11. package/dist/chunk-VCCKNYOY.js.map +1 -0
  12. package/dist/{chunk-OLRYVGRO.mjs → chunk-ZFBWMZ55.mjs} +4 -4
  13. package/dist/chunk-ZFBWMZ55.mjs.map +1 -0
  14. package/dist/{chunk-QI3RQAAN.mjs → chunk-ZV7YVTI7.mjs} +2 -2
  15. package/dist/index.d.mts +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.mjs +1 -1
  19. package/dist/streaming/decoders/composite.js +1 -1
  20. package/dist/streaming/decoders/composite.mjs +1 -1
  21. package/dist/streaming/decoders/index.js +1 -1
  22. package/dist/streaming/decoders/index.mjs +1 -1
  23. package/dist/streaming/index.js +1 -1
  24. package/dist/streaming/index.mjs +1 -1
  25. package/dist/streaming/restream.js +1 -1
  26. package/dist/streaming/restream.mjs +1 -1
  27. package/dist/testing/assertions.js +1 -1
  28. package/dist/testing/assertions.mjs +1 -1
  29. package/dist/testing/deciderSpecification.js +1 -1
  30. package/dist/testing/deciderSpecification.mjs +1 -1
  31. package/dist/testing/features.js +1 -1
  32. package/dist/testing/features.mjs +1 -1
  33. package/dist/testing/index.d.mts +2 -1
  34. package/dist/testing/index.d.ts +2 -1
  35. package/dist/testing/index.js +1 -1
  36. package/dist/testing/index.mjs +1 -1
  37. package/dist/testing/wrapEventStore.d.mts +19 -0
  38. package/dist/testing/wrapEventStore.d.ts +19 -0
  39. package/dist/testing/wrapEventStore.js +2 -0
  40. package/dist/testing/wrapEventStore.js.map +1 -0
  41. package/dist/testing/wrapEventStore.mjs +2 -0
  42. package/dist/testing/wrapEventStore.mjs.map +1 -0
  43. package/dist/utils/index.js +1 -1
  44. package/dist/utils/index.mjs +1 -1
  45. package/package.json +1 -1
  46. package/dist/chunk-OLRYVGRO.mjs.map +0 -1
  47. package/dist/chunk-WQKN6JXB.js.map +0 -1
  48. /package/dist/{chunk-T44377V3.js.map → chunk-7ZSJY377.js.map} +0 -0
  49. /package/dist/{chunk-NBYRSAVT.mjs.map → chunk-EYIJ7ZKY.mjs.map} +0 -0
  50. /package/dist/{chunk-4LWGKY3J.js.map → chunk-G6LPI3PA.js.map} +0 -0
  51. /package/dist/{chunk-7JNETS5J.js.map → chunk-OIDX2JMH.js.map} +0 -0
  52. /package/dist/{chunk-RNVC3XMR.mjs.map → chunk-TKIRQ76T.mjs.map} +0 -0
  53. /package/dist/{chunk-QI3RQAAN.mjs.map → chunk-ZV7YVTI7.mjs.map} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunk4LWGKY3Jjs = require('./chunk-4LWGKY3J.js');var _asyncretry = require('async-retry'); var _asyncretry2 = _interopRequireDefault(_asyncretry);var _webstreamspolyfill = require('web-streams-polyfill');var b=(t,o=r=>r,a={forever:!0,minTimeout:25},e=new _chunk4LWGKY3Jjs.b)=>new (0, _webstreamspolyfill.TransformStream)({start(r){_asyncretry2.default.call(void 0, ()=>u(t,r,o,e),a).catch(n=>{r.error(n)})}}).readable,u=async(t,o,a,e)=>{let n=t().getReader();try{let m;do m=await S(n,o,a,e);while(!m)}finally{n.releaseLock()}},S=async(t,o,a,e)=>{let{done:r,value:n}=await t.read();return n&&e.addToBuffer(n),!r&&!e.hasCompleteMessage()?!1:(f(e,a,o),r&&o.terminate(),r)},f=(t,o,a)=>{try{let e=t.decode();if(!e)return;let r=o(e);a.enqueue(r)}catch(e){a.error(new Error(`Decoding error: ${_optionalChain([e, 'optionalAccess', _ => _.toString, 'call', _2 => _2()])}`))}};exports.a = b;
2
- //# sourceMappingURL=chunk-T44377V3.js.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunkG6LPI3PAjs = require('./chunk-G6LPI3PA.js');var _asyncretry = require('async-retry'); var _asyncretry2 = _interopRequireDefault(_asyncretry);var _webstreamspolyfill = require('web-streams-polyfill');var b=(t,o=r=>r,a={forever:!0,minTimeout:25},e=new _chunkG6LPI3PAjs.b)=>new (0, _webstreamspolyfill.TransformStream)({start(r){_asyncretry2.default.call(void 0, ()=>u(t,r,o,e),a).catch(n=>{r.error(n)})}}).readable,u=async(t,o,a,e)=>{let n=t().getReader();try{let m;do m=await S(n,o,a,e);while(!m)}finally{n.releaseLock()}},S=async(t,o,a,e)=>{let{done:r,value:n}=await t.read();return n&&e.addToBuffer(n),!r&&!e.hasCompleteMessage()?!1:(f(e,a,o),r&&o.terminate(),r)},f=(t,o,a)=>{try{let e=t.decode();if(!e)return;let r=o(e);a.enqueue(r)}catch(e){a.error(new Error(`Decoding error: ${_optionalChain([e, 'optionalAccess', _ => _.toString, 'call', _2 => _2()])}`))}};exports.a = b;
2
+ //# sourceMappingURL=chunk-7ZSJY377.js.map
@@ -1,2 +1,2 @@
1
- import{a as i,e as E,i as t}from"./chunk-OLRYVGRO.mjs";import{j as s}from"./chunk-KLLSLLHN.mjs";var y={for:o=>n=>({when:c=>{let a=()=>{let r=(Array.isArray(n)?n:[n]).reduce(o.evolve,o.initialState());return o.decide(c,r)};return{then:e=>{let r=a(),d=Array.isArray(r)?r:[r],h=Array.isArray(e)?e:[e];E(d,h)},thenThrows:(...e)=>{try{throw a(),new i("Handler did not fail as expected")}catch(r){if(r instanceof i)throw r;if(e.length===0)return;if(!s(e[0])){t(e[0](r),`Error didn't match the error condition: ${r?.toString()}`);return}t(r instanceof e[0],`Caught error is not an instance of the expected type: ${r?.toString()}`),e[1]&&t(e[1](r),`Error didn't match the error condition: ${r?.toString()}`)}}}}})};export{y as a};
2
- //# sourceMappingURL=chunk-NBYRSAVT.mjs.map
1
+ import{a as i,e as E,i as t}from"./chunk-ZFBWMZ55.mjs";import{j as s}from"./chunk-KLLSLLHN.mjs";var y={for:o=>n=>({when:c=>{let a=()=>{let r=(Array.isArray(n)?n:[n]).reduce(o.evolve,o.initialState());return o.decide(c,r)};return{then:e=>{let r=a(),d=Array.isArray(r)?r:[r],h=Array.isArray(e)?e:[e];E(d,h)},thenThrows:(...e)=>{try{throw a(),new i("Handler did not fail as expected")}catch(r){if(r instanceof i)throw r;if(e.length===0)return;if(!s(e[0])){t(e[0](r),`Error didn't match the error condition: ${r?.toString()}`);return}t(r instanceof e[0],`Caught error is not an instance of the expected type: ${r?.toString()}`),e[1]&&t(e[1](r),`Error didn't match the error condition: ${r?.toString()}`)}}}}})};export{y as a};
2
+ //# sourceMappingURL=chunk-EYIJ7ZKY.mjs.map
@@ -1,2 +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 _chunk5JZKD7CBjs = require('./chunk-5JZKD7CB.js');var _chunkZIBX4FPGjs = require('./chunk-ZIBX4FPG.js');var _chunk2E7KSKKIjs = require('./chunk-2E7KSKKI.js');var d=class{constructor(e){this.decoders=e}decoderFor(e){let o=this.decoders.find(u=>u[0](e));return o?o[1]:null}addToBuffer(e){_optionalChain([this, 'access', _ => _.decoderFor, 'call', _2 => _2(e), 'optionalAccess', _3 => _3.addToBuffer, 'call', _4 => _4(e)])}clearBuffer(){for(let e of this.decoders.map(o=>o[1]))e.clearBuffer()}hasCompleteMessage(){return this.decoders.some(e=>e[1].hasCompleteMessage())}decode(){return _nullishCoalesce(_optionalChain([this, 'access', _5 => _5.decoders, 'access', _6 => _6.map, 'call', _7 => _7(o=>o[1]), 'access', _8 => _8.find, 'call', _9 => _9(o=>o.hasCompleteMessage()), 'optionalAccess', _10 => _10.decode, 'call', _11 => _11()]), () => (null))}},s= exports.b =class extends d{constructor(){super([[e=>typeof e=="string",new _chunk5JZKD7CBjs.a],[e=>e instanceof Uint8Array,new _chunk2E7KSKKIjs.a],[e=>typeof e=="object",new _chunkZIBX4FPGjs.a]])}};exports.a = d; exports.b = s;
2
- //# sourceMappingURL=chunk-4LWGKY3J.js.map
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 _chunk2E7KSKKIjs = require('./chunk-2E7KSKKI.js');var _chunk5JZKD7CBjs = require('./chunk-5JZKD7CB.js');var _chunkZIBX4FPGjs = require('./chunk-ZIBX4FPG.js');var d=class{constructor(e){this.decoders=e}decoderFor(e){let o=this.decoders.find(u=>u[0](e));return o?o[1]:null}addToBuffer(e){_optionalChain([this, 'access', _ => _.decoderFor, 'call', _2 => _2(e), 'optionalAccess', _3 => _3.addToBuffer, 'call', _4 => _4(e)])}clearBuffer(){for(let e of this.decoders.map(o=>o[1]))e.clearBuffer()}hasCompleteMessage(){return this.decoders.some(e=>e[1].hasCompleteMessage())}decode(){return _nullishCoalesce(_optionalChain([this, 'access', _5 => _5.decoders, 'access', _6 => _6.map, 'call', _7 => _7(o=>o[1]), 'access', _8 => _8.find, 'call', _9 => _9(o=>o.hasCompleteMessage()), 'optionalAccess', _10 => _10.decode, 'call', _11 => _11()]), () => (null))}},s= exports.b =class extends d{constructor(){super([[e=>typeof e=="string",new _chunk5JZKD7CBjs.a],[e=>e instanceof Uint8Array,new _chunk2E7KSKKIjs.a],[e=>typeof e=="object",new _chunkZIBX4FPGjs.a]])}};exports.a = d; exports.b = s;
2
+ //# sourceMappingURL=chunk-G6LPI3PA.js.map
@@ -0,0 +1,2 @@
1
+ var S=r=>{let n=new Map;return{async aggregateStream(e,t){return r.aggregateStream(e,t)},readStream(e,t){return r.readStream(e,t)},appendToStream:async(e,t,a)=>{let s=await r.appendToStream(e,t,a),p=n.get(e)??[e,[]];return n.set(e,[e,[...p[1],...t]]),s},appendedEvents:n,setup:async(e,t)=>r.appendToStream(e,t)}};export{S as a};
2
+ //# sourceMappingURL=chunk-N6X7QWHP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testing/wrapEventStore.ts"],"sourcesContent":["import type {\n AggregateStreamOptions,\n AggregateStreamResult,\n AppendToStreamOptions,\n AppendToStreamResult,\n DefaultStreamVersionType,\n EventStore,\n ReadStreamOptions,\n ReadStreamResult,\n} from '../eventStore';\nimport { type Event } from '../typing';\n\nexport type TestEventStream<EventType extends Event = Event> = [\n string,\n EventType[],\n];\n\nexport const WrapEventStore = <StreamVersion = DefaultStreamVersionType>(\n eventStore: EventStore<StreamVersion>,\n): EventStore<StreamVersion> & {\n appendedEvents: Map<string, TestEventStream>;\n setup<EventType extends Event>(\n streamName: string,\n events: EventType[],\n ): Promise<AppendToStreamResult<StreamVersion>>;\n} => {\n const appendedEvents = new Map<string, TestEventStream>();\n\n return {\n async aggregateStream<State, EventType extends Event>(\n streamName: string,\n options: AggregateStreamOptions<State, EventType, StreamVersion>,\n ): Promise<AggregateStreamResult<State, StreamVersion> | null> {\n return eventStore.aggregateStream(streamName, options);\n },\n\n readStream<EventType extends Event>(\n streamName: string,\n options?: ReadStreamOptions<StreamVersion>,\n ): Promise<ReadStreamResult<EventType, StreamVersion>> {\n return eventStore.readStream(streamName, options);\n },\n\n appendToStream: async <EventType extends Event>(\n streamName: string,\n events: EventType[],\n options?: AppendToStreamOptions<StreamVersion>,\n ): Promise<AppendToStreamResult<StreamVersion>> => {\n const result = await eventStore.appendToStream(\n streamName,\n events,\n options,\n );\n\n const currentStream = appendedEvents.get(streamName) ?? [streamName, []];\n\n appendedEvents.set(streamName, [\n streamName,\n [...currentStream[1], ...events],\n ]);\n\n return result;\n },\n\n appendedEvents,\n\n setup: async <EventType extends Event>(\n streamName: string,\n events: EventType[],\n ): Promise<AppendToStreamResult<StreamVersion>> => {\n return eventStore.appendToStream(streamName, events);\n },\n };\n};\n"],"mappings":"AAiBO,IAAMA,EACXC,GAOG,CACH,IAAMC,EAAiB,IAAI,IAE3B,MAAO,CACL,MAAM,gBACJC,EACAC,EAC6D,CAC7D,OAAOH,EAAW,gBAAgBE,EAAYC,CAAO,CACvD,EAEA,WACED,EACAC,EACqD,CACrD,OAAOH,EAAW,WAAWE,EAAYC,CAAO,CAClD,EAEA,eAAgB,MACdD,EACAE,EACAD,IACiD,CACjD,IAAME,EAAS,MAAML,EAAW,eAC9BE,EACAE,EACAD,CACF,EAEMG,EAAgBL,EAAe,IAAIC,CAAU,GAAK,CAACA,EAAY,CAAC,CAAC,EAEvE,OAAAD,EAAe,IAAIC,EAAY,CAC7BA,EACA,CAAC,GAAGI,EAAc,CAAC,EAAG,GAAGF,CAAM,CACjC,CAAC,EAEMC,CACT,EAEA,eAAAJ,EAEA,MAAO,MACLC,EACAE,IAEOJ,EAAW,eAAeE,EAAYE,CAAM,CAEvD,CACF","names":["WrapEventStore","eventStore","appendedEvents","streamName","options","events","result","currentStream"]}
@@ -1,2 +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 _chunkWQKN6JXBjs = require('./chunk-WQKN6JXB.js');var _chunkE7KI3V22js = require('./chunk-E7KI3V22.js');var y={for:o=>n=>({when:c=>{let a=()=>{let r=(Array.isArray(n)?n:[n]).reduce(o.evolve,o.initialState());return o.decide(c,r)};return{then:e=>{let r=a(),d=Array.isArray(r)?r:[r],h=Array.isArray(e)?e:[e];_chunkWQKN6JXBjs.e.call(void 0, d,h)},thenThrows:(...e)=>{try{throw a(),new (0, _chunkWQKN6JXBjs.a)("Handler did not fail as expected")}catch(r){if(r instanceof _chunkWQKN6JXBjs.a)throw r;if(e.length===0)return;if(!_chunkE7KI3V22js.j.call(void 0, e[0])){_chunkWQKN6JXBjs.i.call(void 0, e[0](r),`Error didn't match the error condition: ${_optionalChain([r, 'optionalAccess', _ => _.toString, 'call', _2 => _2()])}`);return}_chunkWQKN6JXBjs.i.call(void 0, r instanceof e[0],`Caught error is not an instance of the expected type: ${_optionalChain([r, 'optionalAccess', _3 => _3.toString, 'call', _4 => _4()])}`),e[1]&&_chunkWQKN6JXBjs.i.call(void 0, e[1](r),`Error didn't match the error condition: ${_optionalChain([r, 'optionalAccess', _5 => _5.toString, 'call', _6 => _6()])}`)}}}}})};exports.a = y;
2
- //# sourceMappingURL=chunk-7JNETS5J.js.map
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 _chunkVCCKNYOYjs = require('./chunk-VCCKNYOY.js');var _chunkE7KI3V22js = require('./chunk-E7KI3V22.js');var y={for:o=>n=>({when:c=>{let a=()=>{let r=(Array.isArray(n)?n:[n]).reduce(o.evolve,o.initialState());return o.decide(c,r)};return{then:e=>{let r=a(),d=Array.isArray(r)?r:[r],h=Array.isArray(e)?e:[e];_chunkVCCKNYOYjs.e.call(void 0, d,h)},thenThrows:(...e)=>{try{throw a(),new (0, _chunkVCCKNYOYjs.a)("Handler did not fail as expected")}catch(r){if(r instanceof _chunkVCCKNYOYjs.a)throw r;if(e.length===0)return;if(!_chunkE7KI3V22js.j.call(void 0, e[0])){_chunkVCCKNYOYjs.i.call(void 0, e[0](r),`Error didn't match the error condition: ${_optionalChain([r, 'optionalAccess', _ => _.toString, 'call', _2 => _2()])}`);return}_chunkVCCKNYOYjs.i.call(void 0, r instanceof e[0],`Caught error is not an instance of the expected type: ${_optionalChain([r, 'optionalAccess', _3 => _3.toString, 'call', _4 => _4()])}`),e[1]&&_chunkVCCKNYOYjs.i.call(void 0, e[1](r),`Error didn't match the error condition: ${_optionalChain([r, 'optionalAccess', _5 => _5.toString, 'call', _6 => _6()])}`)}}}}})};exports.a = y;
2
+ //# sourceMappingURL=chunk-OIDX2JMH.js.map
@@ -1,2 +1,2 @@
1
- import{a as n}from"./chunk-MR2WVMFM.mjs";import{a as c}from"./chunk-S3C5CKD5.mjs";import{a as r}from"./chunk-HKNRGZN2.mjs";var d=class{constructor(e){this.decoders=e}decoderFor(e){let o=this.decoders.find(u=>u[0](e));return o?o[1]:null}addToBuffer(e){this.decoderFor(e)?.addToBuffer(e)}clearBuffer(){for(let e of this.decoders.map(o=>o[1]))e.clearBuffer()}hasCompleteMessage(){return this.decoders.some(e=>e[1].hasCompleteMessage())}decode(){return this.decoders.map(o=>o[1]).find(o=>o.hasCompleteMessage())?.decode()??null}},s=class extends d{constructor(){super([[e=>typeof e=="string",new n],[e=>e instanceof Uint8Array,new r],[e=>typeof e=="object",new c]])}};export{d as a,s as b};
2
- //# sourceMappingURL=chunk-RNVC3XMR.mjs.map
1
+ import{a as r}from"./chunk-HKNRGZN2.mjs";import{a as n}from"./chunk-MR2WVMFM.mjs";import{a as c}from"./chunk-S3C5CKD5.mjs";var d=class{constructor(e){this.decoders=e}decoderFor(e){let o=this.decoders.find(u=>u[0](e));return o?o[1]:null}addToBuffer(e){this.decoderFor(e)?.addToBuffer(e)}clearBuffer(){for(let e of this.decoders.map(o=>o[1]))e.clearBuffer()}hasCompleteMessage(){return this.decoders.some(e=>e[1].hasCompleteMessage())}decode(){return this.decoders.map(o=>o[1]).find(o=>o.hasCompleteMessage())?.decode()??null}},s=class extends d{constructor(){super([[e=>typeof e=="string",new n],[e=>e instanceof Uint8Array,new r],[e=>typeof e=="object",new c]])}};export{d as a,s as b};
2
+ //# sourceMappingURL=chunk-TKIRQ76T.mjs.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var S=r=>{let n=new Map;return{async aggregateStream(e,t){return r.aggregateStream(e,t)},readStream(e,t){return r.readStream(e,t)},appendToStream:async(e,t,a)=>{let s=await r.appendToStream(e,t,a),p=_nullishCoalesce(n.get(e), () => ([e,[]]));return n.set(e,[e,[...p[1],...t]]),s},appendedEvents:n,setup:async(e,t)=>r.appendToStream(e,t)}};exports.a = S;
2
+ //# sourceMappingURL=chunk-TNX525X5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testing/wrapEventStore.ts"],"names":["WrapEventStore","eventStore","appendedEvents","streamName","options","events","result","currentStream"],"mappings":"AAiBO,IAAMA,EACXC,GAOG,CACH,IAAMC,EAAiB,IAAI,IAE3B,MAAO,CACL,MAAM,gBACJC,EACAC,EAC6D,CAC7D,OAAOH,EAAW,gBAAgBE,EAAYC,CAAO,CACvD,EAEA,WACED,EACAC,EACqD,CACrD,OAAOH,EAAW,WAAWE,EAAYC,CAAO,CAClD,EAEA,eAAgB,MACdD,EACAE,EACAD,IACiD,CACjD,IAAME,EAAS,MAAML,EAAW,eAC9BE,EACAE,EACAD,CACF,EAEMG,EAAgBL,EAAe,IAAIC,CAAU,GAAK,CAACA,EAAY,CAAC,CAAC,EAEvE,OAAAD,EAAe,IAAIC,EAAY,CAC7BA,EACA,CAAC,GAAGI,EAAc,CAAC,EAAG,GAAGF,CAAM,CACjC,CAAC,EAEMC,CACT,EAEA,eAAAJ,EAEA,MAAO,MACLC,EACAE,IAEOJ,EAAW,eAAeE,EAAYE,CAAM,CAEvD,CACF","sourcesContent":["import type {\n AggregateStreamOptions,\n AggregateStreamResult,\n AppendToStreamOptions,\n AppendToStreamResult,\n DefaultStreamVersionType,\n EventStore,\n ReadStreamOptions,\n ReadStreamResult,\n} from '../eventStore';\nimport { type Event } from '../typing';\n\nexport type TestEventStream<EventType extends Event = Event> = [\n string,\n EventType[],\n];\n\nexport const WrapEventStore = <StreamVersion = DefaultStreamVersionType>(\n eventStore: EventStore<StreamVersion>,\n): EventStore<StreamVersion> & {\n appendedEvents: Map<string, TestEventStream>;\n setup<EventType extends Event>(\n streamName: string,\n events: EventType[],\n ): Promise<AppendToStreamResult<StreamVersion>>;\n} => {\n const appendedEvents = new Map<string, TestEventStream>();\n\n return {\n async aggregateStream<State, EventType extends Event>(\n streamName: string,\n options: AggregateStreamOptions<State, EventType, StreamVersion>,\n ): Promise<AggregateStreamResult<State, StreamVersion> | null> {\n return eventStore.aggregateStream(streamName, options);\n },\n\n readStream<EventType extends Event>(\n streamName: string,\n options?: ReadStreamOptions<StreamVersion>,\n ): Promise<ReadStreamResult<EventType, StreamVersion>> {\n return eventStore.readStream(streamName, options);\n },\n\n appendToStream: async <EventType extends Event>(\n streamName: string,\n events: EventType[],\n options?: AppendToStreamOptions<StreamVersion>,\n ): Promise<AppendToStreamResult<StreamVersion>> => {\n const result = await eventStore.appendToStream(\n streamName,\n events,\n options,\n );\n\n const currentStream = appendedEvents.get(streamName) ?? [streamName, []];\n\n appendedEvents.set(streamName, [\n streamName,\n [...currentStream[1], ...events],\n ]);\n\n return result;\n },\n\n appendedEvents,\n\n setup: async <EventType extends Event>(\n streamName: string,\n events: EventType[],\n ): Promise<AppendToStreamResult<StreamVersion>> => {\n return eventStore.appendToStream(streamName, events);\n },\n };\n};\n"]}
@@ -1,11 +1,11 @@
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 _chunkPVFUNWT6js = require('./chunk-PVFUNWT6.js');var r=class extends Error{constructor(e){super(e)}},u= exports.b =(n,e)=>{let t=n,s=e;return Object.keys(s).every(c=>typeof s[c]=="object"?u(t[c],s[c]):s[c]===t[c])},d= exports.c =()=>{throw new r("That should not ever happened, right?")},T= exports.d =(n,e)=>{try{throw n(),new r("Function didn't throw expected error")}catch(t){e&&o(e(t))}},k= exports.e =(n,e,t)=>{if(!u(n,e))throw new r(_nullishCoalesce(t, () => (`subObj:
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 _chunkPVFUNWT6js = require('./chunk-PVFUNWT6.js');var r=class extends Error{constructor(e){super(e)}},a= exports.b =(n,e)=>{let t=n,s=e;return u(t),u(s),Object.keys(s).every(c=>typeof s[c]=="object"?a(t[c],s[c]):s[c]===t[c])},d= exports.c =()=>{throw new r("That should not ever happened, right?")},T= exports.d =(n,e)=>{try{throw n(),new r("Function didn't throw expected error")}catch(t){e&&o(e(t))}},k= exports.e =(n,e,t)=>{if(!a(n,e))throw new r(_nullishCoalesce(t, () => (`subObj:
2
2
  ${JSON.stringify(e)}
3
3
  is not subset of
4
4
  ${JSON.stringify(n)}`)))},f= exports.f =(n,e,t)=>{if(!_chunkPVFUNWT6js.a.call(void 0, n,e))throw new r(_nullishCoalesce(t, () => (`subObj:
5
5
  ${JSON.stringify(e)}
6
6
  is equals to
7
- ${JSON.stringify(n)}`)))},p= exports.g =n=>({isEqualTo:e=>o(_chunkPVFUNWT6js.a.call(void 0, n,e))});function a(n,e){if(n)throw new r(_nullishCoalesce(e, () => ("Condition is false")))}function o(n,e){if(!n)throw new r(_nullishCoalesce(e, () => ("Condition is false")))}function g(n,e){if(!n)throw new r(_nullishCoalesce(e, () => ("Condition is not truthy")))}function i(n,e,t){if(n!==e)throw new r(_nullishCoalesce(t, () => (`Objects are not equal:
7
+ ${JSON.stringify(n)}`)))},p= exports.g =n=>({isEqualTo:e=>o(_chunkPVFUNWT6js.a.call(void 0, n,e))});function g(n,e){if(n)throw new r(_nullishCoalesce(e, () => ("Condition is false")))}function o(n,e){if(!n)throw new r(_nullishCoalesce(e, () => ("Condition is false")))}function u(n,e){if(!n)throw new r(_nullishCoalesce(e, () => ("Condition is not truthy")))}function i(n,e,t){if(n!==e)throw new r(_nullishCoalesce(t, () => (`Objects are not equal:
8
8
  ${JSON.stringify(n)}
9
9
  compared:
10
- ${JSON.stringify(e)}`)))}function m(n,e,t){if(n===e)throw new r(_nullishCoalesce(t, () => (`Objects are equal: ${JSON.stringify(n)}`)))}function w(n){m(n,null),g(n)}function x(n){i(n,null)}var b=n=>e=>_chunkPVFUNWT6js.a.call(void 0, e,n),O= exports.p =n=>e=>n(e);function y(n){return{calledTimes:e=>{i(_optionalChain([n, 'access', _ => _.mock, 'optionalAccess', _2 => _2.calls, 'optionalAccess', _3 => _3.length]),e)},notCalled:()=>{i(_optionalChain([n, 'optionalAccess', _4 => _4.mock, 'optionalAccess', _5 => _5.calls, 'optionalAccess', _6 => _6.length]),0)},called:()=>{o(_optionalChain([n, 'access', _7 => _7.mock, 'optionalAccess', _8 => _8.calls, 'access', _9 => _9.length])!==void 0&&n.mock.calls.length>0)},calledWith:(...e)=>{o(_optionalChain([n, 'access', _10 => _10.mock, 'optionalAccess', _11 => _11.calls, 'access', _12 => _12.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>_chunkPVFUNWT6js.a.call(void 0, t.arguments,e)))},calledOnceWith:(...e)=>{o(_optionalChain([n, 'access', _13 => _13.mock, 'optionalAccess', _14 => _14.calls, 'access', _15 => _15.length])!==void 0&&n.mock.calls.length===1&&n.mock.calls.some(t=>_chunkPVFUNWT6js.a.call(void 0, t.arguments,e)))},calledWithArgumentMatching:(...e)=>{o(_optionalChain([n, 'access', _16 => _16.mock, 'optionalAccess', _17 => _17.calls, 'access', _18 => _18.length])!==void 0&&n.mock.calls.length>=1),o(_optionalChain([n, 'access', _19 => _19.mock, 'optionalAccess', _20 => _20.calls, 'access', _21 => _21.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>t.arguments&&t.arguments.length>=e.length&&e.every((s,c)=>s(t.arguments[c]))))},notCalledWithArgumentMatching:(...e)=>{a(_optionalChain([n, 'access', _22 => _22.mock, 'optionalAccess', _23 => _23.calls, 'access', _24 => _24.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls[0].arguments&&n.mock.calls[0].arguments.length>=e.length&&e.every((t,s)=>t(n.mock.calls[0].arguments[s])))}}}var E=n=>({isEmpty:()=>i(n.length,0),hasSize:e=>i(n.length,e),containsElements:(...e)=>{o(e.every(t=>e.some(s=>_chunkPVFUNWT6js.a.call(void 0, t,s))))},containsExactlyInAnyOrder:(...e)=>{i(n.length,e.length),o(n.every(t=>e.some(s=>_chunkPVFUNWT6js.a.call(void 0, t,s))))},containsExactlyInAnyOrderElementsOf:e=>{i(n.length,e.length),o(n.every(t=>e.some(s=>_chunkPVFUNWT6js.a.call(void 0, t,s))))},containsExactlyElementsOf:e=>{i(n.length,e.length);for(let t=0;t<n.length;t++)o(_chunkPVFUNWT6js.a.call(void 0, n[t],e[t]))},containsExactly:e=>{i(n.length,1),o(_chunkPVFUNWT6js.a.call(void 0, n[0],e))},contains:e=>{o(n.some(t=>_chunkPVFUNWT6js.a.call(void 0, t,e)))},containsOnlyOnceElementsOf:e=>{o(e.map(t=>n.filter(s=>_chunkPVFUNWT6js.a.call(void 0, s,t)).length).filter(t=>t===1).length===e.length)},containsAnyOf:(...e)=>{o(n.some(t=>e.some(s=>_chunkPVFUNWT6js.a.call(void 0, t,s))))},allMatch:e=>{o(n.every(e))},anyMatches:e=>{o(n.some(e))},allMatchAsync:async e=>{for(let t of n)o(await e(t))}});exports.a = r; exports.b = u; exports.c = d; exports.d = T; exports.e = k; exports.f = f; exports.g = p; exports.h = a; exports.i = o; exports.j = g; exports.k = i; exports.l = m; exports.m = w; exports.n = x; exports.o = b; exports.p = O; exports.q = y; exports.r = E;
11
- //# sourceMappingURL=chunk-WQKN6JXB.js.map
10
+ ${JSON.stringify(e)}`)))}function m(n,e,t){if(n===e)throw new r(_nullishCoalesce(t, () => (`Objects are equal: ${JSON.stringify(n)}`)))}function w(n){m(n,null),u(n)}function x(n){i(n,null)}var b=n=>e=>_chunkPVFUNWT6js.a.call(void 0, e,n),O= exports.p =n=>e=>n(e);function y(n){return{calledTimes:e=>{i(_optionalChain([n, 'access', _ => _.mock, 'optionalAccess', _2 => _2.calls, 'optionalAccess', _3 => _3.length]),e)},notCalled:()=>{i(_optionalChain([n, 'optionalAccess', _4 => _4.mock, 'optionalAccess', _5 => _5.calls, 'optionalAccess', _6 => _6.length]),0)},called:()=>{o(_optionalChain([n, 'access', _7 => _7.mock, 'optionalAccess', _8 => _8.calls, 'access', _9 => _9.length])!==void 0&&n.mock.calls.length>0)},calledWith:(...e)=>{o(_optionalChain([n, 'access', _10 => _10.mock, 'optionalAccess', _11 => _11.calls, 'access', _12 => _12.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>_chunkPVFUNWT6js.a.call(void 0, t.arguments,e)))},calledOnceWith:(...e)=>{o(_optionalChain([n, 'access', _13 => _13.mock, 'optionalAccess', _14 => _14.calls, 'access', _15 => _15.length])!==void 0&&n.mock.calls.length===1&&n.mock.calls.some(t=>_chunkPVFUNWT6js.a.call(void 0, t.arguments,e)))},calledWithArgumentMatching:(...e)=>{o(_optionalChain([n, 'access', _16 => _16.mock, 'optionalAccess', _17 => _17.calls, 'access', _18 => _18.length])!==void 0&&n.mock.calls.length>=1),o(_optionalChain([n, 'access', _19 => _19.mock, 'optionalAccess', _20 => _20.calls, 'access', _21 => _21.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>t.arguments&&t.arguments.length>=e.length&&e.every((s,c)=>s(t.arguments[c]))))},notCalledWithArgumentMatching:(...e)=>{g(_optionalChain([n, 'access', _22 => _22.mock, 'optionalAccess', _23 => _23.calls, 'access', _24 => _24.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls[0].arguments&&n.mock.calls[0].arguments.length>=e.length&&e.every((t,s)=>t(n.mock.calls[0].arguments[s])))}}}var E=n=>({isEmpty:()=>i(n.length,0),hasSize:e=>i(n.length,e),containsElements:(...e)=>{o(e.every(t=>e.some(s=>_chunkPVFUNWT6js.a.call(void 0, t,s))))},containsExactlyInAnyOrder:(...e)=>{i(n.length,e.length),o(n.every(t=>e.some(s=>_chunkPVFUNWT6js.a.call(void 0, t,s))))},containsExactlyInAnyOrderElementsOf:e=>{i(n.length,e.length),o(n.every(t=>e.some(s=>_chunkPVFUNWT6js.a.call(void 0, t,s))))},containsExactlyElementsOf:e=>{i(n.length,e.length);for(let t=0;t<n.length;t++)o(_chunkPVFUNWT6js.a.call(void 0, n[t],e[t]))},containsExactly:e=>{i(n.length,1),o(_chunkPVFUNWT6js.a.call(void 0, n[0],e))},contains:e=>{o(n.some(t=>_chunkPVFUNWT6js.a.call(void 0, t,e)))},containsOnlyOnceElementsOf:e=>{o(e.map(t=>n.filter(s=>_chunkPVFUNWT6js.a.call(void 0, s,t)).length).filter(t=>t===1).length===e.length)},containsAnyOf:(...e)=>{o(n.some(t=>e.some(s=>_chunkPVFUNWT6js.a.call(void 0, t,s))))},allMatch:e=>{o(n.every(e))},anyMatches:e=>{o(n.some(e))},allMatchAsync:async e=>{for(let t of n)o(await e(t))}});exports.a = r; exports.b = a; exports.c = d; exports.d = T; exports.e = k; exports.f = f; exports.g = p; exports.h = g; exports.i = o; exports.j = u; exports.k = i; exports.l = m; exports.m = w; exports.n = x; exports.o = b; exports.p = O; exports.q = y; exports.r = E;
11
+ //# sourceMappingURL=chunk-VCCKNYOY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testing/assertions.ts"],"names":["AssertionError","message","isSubset","superObj","subObj","sup","sub","assertOk","ele","assertFails","assertThrows","fun","errorCheck","error","assertTrue","assertMatches","actual","expected","assertDeepEqual","deepEquals","assertThat","item","other","assertFalse","condition","obj","assertEqual","assertNotEqual","assertIsNotNull","result","assertIsNull","argValue","value","arg","argMatches","matches","verifyThat","fn","times","args","call","match","index","assertThatArray","array","length","ts","o","i","elem","a"],"mappings":"wCAGO,IAAMA,EAAN,cAA6B,KAAM,CACxC,YAAYC,EAAiB,CAC3B,MAAMA,CAAO,CACf,CACF,EACaC,EAAW,CAACC,EAAmBC,IAA6B,CACvE,IAAMC,EAAMF,EACNG,EAAMF,EAEZ,OAAAG,EAASF,CAAG,EACZE,EAASD,CAAG,EAEL,OAAO,KAAKA,CAAG,EAAE,MAAOE,GACzB,OAAOF,EAAIE,CAAG,GAAK,SACdN,EAASG,EAAIG,CAAG,EAAGF,EAAIE,CAAG,CAAC,EAE7BF,EAAIE,CAAG,IAAMH,EAAIG,CAAG,CAC5B,CACH,EAEaC,EAAc,IAAM,CAC/B,MAAM,IAAIT,EAAe,uCAAuC,CAClE,EAEaU,EAAe,CAC1BC,EACAC,IACG,CACH,GAAI,CACF,MAAAD,EAAI,EACE,IAAIX,EAAe,sCAAsC,CACjE,OAASa,EAAO,CACVD,GAAYE,EAAWF,EAAWC,CAAc,CAAC,CACvD,CACF,EAEaE,EAAgB,CAC3BC,EACAC,EACAhB,IACG,CACH,GAAI,CAACC,EAASc,EAAQC,CAAQ,EAC5B,MAAM,IAAIjB,EACRC,GACE;AAAA,EAAY,KAAK,UAAUgB,CAAQ,CAAC;AAAA;AAAA,EAAuB,KAAK,UAAUD,CAAM,CAAC,EACrF,CACJ,EAEaE,EAAkB,CAC7BF,EACAC,EACAhB,IACG,CACH,GAAI,CAACkB,EAAWH,EAAQC,CAAQ,EAC9B,MAAM,IAAIjB,EACRC,GACE;AAAA,EAAY,KAAK,UAAUgB,CAAQ,CAAC;AAAA;AAAA,EAAmB,KAAK,UAAUD,CAAM,CAAC,EACjF,CACJ,EAEaI,EAAiBC,IACrB,CACL,UAAYC,GAAaR,EAAWK,EAAWE,EAAMC,CAAK,CAAC,CAC7D,GAGK,SAASC,EACdC,EACAvB,EAC4B,CAC5B,GAAIuB,EAAW,MAAM,IAAIxB,EAAeC,GAAW,oBAAoB,CACzE,CAEO,SAASa,EACdU,EACAvB,EAC2B,CAC3B,GAAI,CAACuB,EAAW,MAAM,IAAIxB,EAAeC,GAAW,oBAAoB,CAC1E,CAEO,SAASM,EACdkB,EACAxB,EACkB,CAClB,GAAI,CAACwB,EAAK,MAAM,IAAIzB,EAAeC,GAAW,yBAAyB,CACzE,CAEO,SAASyB,EACdD,EACAH,EACArB,EACM,CACN,GAAIwB,IAAQH,EACV,MAAM,IAAItB,EACRC,GACE;AAAA,GAA4B,KAAK,UAAUwB,CAAG,CAAC;AAAA;AAAA,EAAgB,KAAK,UAAUH,CAAK,CAAC,EACxF,CACJ,CAEO,SAASK,EACdF,EACAH,EACArB,EACM,CACN,GAAIwB,IAAQH,EACV,MAAM,IAAItB,EACRC,GAAW,sBAAsB,KAAK,UAAUwB,CAAG,CAAC,EACtD,CACJ,CAEO,SAASG,EACdC,EACqB,CACrBF,EAAeE,EAAQ,IAAI,EAC3BtB,EAASsB,CAAM,CACjB,CAEO,SAASC,EACdD,EACwB,CACxBH,EAAYG,EAAQ,IAAI,CAC1B,CAWO,IAAME,EACPC,GACHC,GACCd,EAAWc,EAAKD,CAAK,EAEZE,EACPC,GACHF,GACCE,EAAQF,CAAQ,EAKb,SAASG,EAAWC,EAAoB,CAC7C,MAAO,CACL,YAAcC,GAAkB,CAC9BZ,EAAYW,EAAG,MAAM,OAAO,OAAQC,CAAK,CAC3C,EACA,UAAW,IAAM,CACfZ,EAAYW,GAAI,MAAM,OAAO,OAAQ,CAAC,CACxC,EACA,OAAQ,IAAM,CACZvB,EACEuB,EAAG,MAAM,MAAM,SAAW,QAAaA,EAAG,KAAK,MAAM,OAAS,CAChE,CACF,EACA,WAAY,IAAIE,IAAoB,CAClCzB,EACEuB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,KAAMG,GAASrB,EAAWqB,EAAK,UAAWD,CAAI,CAAC,CACjE,CACF,EACA,eAAgB,IAAIA,IAAoB,CACtCzB,EACEuB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,SAAW,GACzBA,EAAG,KAAK,MAAM,KAAMG,GAASrB,EAAWqB,EAAK,UAAWD,CAAI,CAAC,CACjE,CACF,EACA,2BAA4B,IAAIJ,IAA+B,CAC7DrB,EACEuB,EAAG,MAAM,MAAM,SAAW,QAAaA,EAAG,KAAK,MAAM,QAAU,CACjE,EACAvB,EACEuB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,KACXG,GACCA,EAAK,WACLA,EAAK,UAAU,QAAUL,EAAQ,QACjCA,EAAQ,MAAM,CAACM,EAAOC,IAAUD,EAAMD,EAAK,UAAUE,CAAK,CAAC,CAAC,CAChE,CACJ,CACF,EACA,8BAA+B,IAAIP,IAA+B,CAChEZ,EACEc,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,CAAC,EAAG,WAClBA,EAAG,KAAK,MAAM,CAAC,EAAG,UAAU,QAAUF,EAAQ,QAC9CA,EAAQ,MAAM,CAACM,EAAOC,IACpBD,EAAMJ,EAAG,KAAM,MAAM,CAAC,EAAG,UAAUK,CAAK,CAAC,CAC3C,CACJ,CACF,CACF,CACF,CAEO,IAAMC,EAAsBC,IAC1B,CACL,QAAS,IAAMlB,EAAYkB,EAAM,OAAQ,CAAC,EAC1C,QAAUC,GAAmBnB,EAAYkB,EAAM,OAAQC,CAAM,EAC7D,iBAAkB,IAAIvB,IAAe,CACnCR,EAAWQ,EAAM,MAAOwB,GAAOxB,EAAM,KAAMyB,GAAM5B,EAAW2B,EAAIC,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,0BAA2B,IAAIzB,IAAe,CAC5CI,EAAYkB,EAAM,OAAQtB,EAAM,MAAM,EACtCR,EAAW8B,EAAM,MAAOE,GAAOxB,EAAM,KAAMyB,GAAM5B,EAAW2B,EAAIC,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,oCAAsCzB,GAAe,CACnDI,EAAYkB,EAAM,OAAQtB,EAAM,MAAM,EACtCR,EAAW8B,EAAM,MAAOE,GAAOxB,EAAM,KAAMyB,GAAM5B,EAAW2B,EAAIC,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,0BAA4BzB,GAAe,CACzCI,EAAYkB,EAAM,OAAQtB,EAAM,MAAM,EACtC,QAAS0B,EAAI,EAAGA,EAAIJ,EAAM,OAAQI,IAChClC,EAAWK,EAAWyB,EAAMI,CAAC,EAAG1B,EAAM0B,CAAC,CAAC,CAAC,CAE7C,EACA,gBAAkBC,GAAY,CAC5BvB,EAAYkB,EAAM,OAAQ,CAAC,EAC3B9B,EAAWK,EAAWyB,EAAM,CAAC,EAAGK,CAAI,CAAC,CACvC,EACA,SAAWA,GAAY,CACrBnC,EAAW8B,EAAM,KAAMM,GAAM/B,EAAW+B,EAAGD,CAAI,CAAC,CAAC,CACnD,EACA,2BAA6B3B,GAAe,CAC1CR,EACEQ,EACG,IAAKyB,GAAMH,EAAM,OAAQM,GAAM/B,EAAW+B,EAAGH,CAAC,CAAC,EAAE,MAAM,EACvD,OAAQG,GAAMA,IAAM,CAAC,EAAE,SAAW5B,EAAM,MAC7C,CACF,EACA,cAAe,IAAIA,IAAe,CAChCR,EAAW8B,EAAM,KAAMM,GAAM5B,EAAM,KAAMyB,GAAM5B,EAAW+B,EAAGH,CAAC,CAAC,CAAC,CAAC,CACnE,EACA,SAAWZ,GAAkC,CAC3CrB,EAAW8B,EAAM,MAAMT,CAAO,CAAC,CACjC,EACA,WAAaA,GAAkC,CAC7CrB,EAAW8B,EAAM,KAAKT,CAAO,CAAC,CAChC,EACA,cAAe,MACbA,GACkB,CAClB,QAAWd,KAAQuB,EACjB9B,EAAW,MAAMqB,EAAQd,CAAI,CAAC,CAElC,CACF","sourcesContent":["import type { DefaultRecord } from '../typing';\nimport { deepEquals } from '../utils';\n\nexport class AssertionError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\nexport const isSubset = (superObj: unknown, subObj: unknown): boolean => {\n const sup = superObj as DefaultRecord;\n const sub = subObj as DefaultRecord;\n\n assertOk(sup);\n assertOk(sub);\n\n return Object.keys(sub).every((ele: string) => {\n if (typeof sub[ele] == 'object') {\n return isSubset(sup[ele], sub[ele]);\n }\n return sub[ele] === sup[ele];\n });\n};\n\nexport const assertFails = () => {\n throw new AssertionError('That should not ever happened, right?');\n};\n\nexport const assertThrows = (\n fun: () => void,\n errorCheck?: (error: Error) => boolean,\n) => {\n try {\n fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n if (errorCheck) assertTrue(errorCheck(error as Error));\n }\n};\n\nexport const assertMatches = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!isSubset(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSON.stringify(expected)}\\nis not subset of\\n${JSON.stringify(actual)}`,\n );\n};\n\nexport const assertDeepEqual = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!deepEquals(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSON.stringify(expected)}\\nis equals to\\n${JSON.stringify(actual)}`,\n );\n};\n\nexport const assertThat = <T>(item: T) => {\n return {\n isEqualTo: (other: T) => assertTrue(deepEquals(item, other)),\n };\n};\n\nexport function assertFalse(\n condition: boolean,\n message?: string,\n): asserts condition is false {\n if (condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertTrue(\n condition: boolean,\n message?: string,\n): asserts condition is true {\n if (!condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertOk<T>(\n obj: T | null | undefined,\n message?: string,\n): asserts obj is T {\n if (!obj) throw new AssertionError(message ?? `Condition is not truthy`);\n}\n\nexport function assertEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj !== other)\n throw new AssertionError(\n message ??\n `Objects are not equal:\\n ${JSON.stringify(obj)}\\ncompared:\\n${JSON.stringify(other)}`,\n );\n}\n\nexport function assertNotEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj === other)\n throw new AssertionError(\n message ?? `Objects are equal: ${JSON.stringify(obj)}`,\n );\n}\n\nexport function assertIsNotNull<T extends object>(\n result: T | null,\n): asserts result is T {\n assertNotEqual(result, null);\n assertOk(result);\n}\n\nexport function assertIsNull<T extends object>(\n result: T | null,\n): asserts result is null {\n assertEqual(result, null);\n}\n\ntype Call = {\n arguments: unknown[];\n result: unknown;\n target: unknown;\n this: unknown;\n};\n\nexport type ArgumentMatcher = (arg: unknown) => boolean;\n\nexport const argValue =\n <T>(value: T): ArgumentMatcher =>\n (arg) =>\n deepEquals(arg, value);\n\nexport const argMatches =\n <T>(matches: (arg: T) => boolean): ArgumentMatcher =>\n (arg) =>\n matches(arg as T);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MockedFunction = Function & { mock?: { calls: Call[] } };\n\nexport function verifyThat(fn: MockedFunction) {\n return {\n calledTimes: (times: number) => {\n assertEqual(fn.mock?.calls?.length, times);\n },\n notCalled: () => {\n assertEqual(fn?.mock?.calls?.length, 0);\n },\n called: () => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length > 0,\n );\n },\n calledWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledOnceWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length === 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length >= 1,\n );\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some(\n (call) =>\n call.arguments &&\n call.arguments.length >= matches.length &&\n matches.every((match, index) => match(call.arguments[index])),\n ),\n );\n },\n notCalledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertFalse(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls[0]!.arguments &&\n fn.mock.calls[0]!.arguments.length >= matches.length &&\n matches.every((match, index) =>\n match(fn.mock!.calls[0]!.arguments[index]),\n ),\n );\n },\n };\n}\n\nexport const assertThatArray = <T>(array: T[]) => {\n return {\n isEmpty: () => assertEqual(array.length, 0),\n hasSize: (length: number) => assertEqual(array.length, length),\n containsElements: (...other: T[]) => {\n assertTrue(other.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrder: (...other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrderElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n for (let i = 0; i < array.length; i++) {\n assertTrue(deepEquals(array[i], other[i]));\n }\n },\n containsExactly: (elem: T) => {\n assertEqual(array.length, 1);\n assertTrue(deepEquals(array[0], elem));\n },\n contains: (elem: T) => {\n assertTrue(array.some((a) => deepEquals(a, elem)));\n },\n containsOnlyOnceElementsOf: (other: T[]) => {\n assertTrue(\n other\n .map((o) => array.filter((a) => deepEquals(a, o)).length)\n .filter((a) => a === 1).length === other.length,\n );\n },\n containsAnyOf: (...other: T[]) => {\n assertTrue(array.some((a) => other.some((o) => deepEquals(a, o))));\n },\n allMatch: (matches: (item: T) => boolean) => {\n assertTrue(array.every(matches));\n },\n anyMatches: (matches: (item: T) => boolean) => {\n assertTrue(array.some(matches));\n },\n allMatchAsync: async (\n matches: (item: T) => Promise<boolean>,\n ): Promise<void> => {\n for (const item of array) {\n assertTrue(await matches(item));\n }\n },\n };\n};\n"]}
@@ -1,11 +1,11 @@
1
- import{a as l}from"./chunk-B7NWWHCY.mjs";var r=class extends Error{constructor(e){super(e)}},u=(n,e)=>{let t=n,s=e;return Object.keys(s).every(c=>typeof s[c]=="object"?u(t[c],s[c]):s[c]===t[c])},d=()=>{throw new r("That should not ever happened, right?")},T=(n,e)=>{try{throw n(),new r("Function didn't throw expected error")}catch(t){e&&o(e(t))}},k=(n,e,t)=>{if(!u(n,e))throw new r(t??`subObj:
1
+ import{a as l}from"./chunk-B7NWWHCY.mjs";var r=class extends Error{constructor(e){super(e)}},a=(n,e)=>{let t=n,s=e;return u(t),u(s),Object.keys(s).every(c=>typeof s[c]=="object"?a(t[c],s[c]):s[c]===t[c])},d=()=>{throw new r("That should not ever happened, right?")},T=(n,e)=>{try{throw n(),new r("Function didn't throw expected error")}catch(t){e&&o(e(t))}},k=(n,e,t)=>{if(!a(n,e))throw new r(t??`subObj:
2
2
  ${JSON.stringify(e)}
3
3
  is not subset of
4
4
  ${JSON.stringify(n)}`)},f=(n,e,t)=>{if(!l(n,e))throw new r(t??`subObj:
5
5
  ${JSON.stringify(e)}
6
6
  is equals to
7
- ${JSON.stringify(n)}`)},p=n=>({isEqualTo:e=>o(l(n,e))});function a(n,e){if(n)throw new r(e??"Condition is false")}function o(n,e){if(!n)throw new r(e??"Condition is false")}function g(n,e){if(!n)throw new r(e??"Condition is not truthy")}function i(n,e,t){if(n!==e)throw new r(t??`Objects are not equal:
7
+ ${JSON.stringify(n)}`)},p=n=>({isEqualTo:e=>o(l(n,e))});function g(n,e){if(n)throw new r(e??"Condition is false")}function o(n,e){if(!n)throw new r(e??"Condition is false")}function u(n,e){if(!n)throw new r(e??"Condition is not truthy")}function i(n,e,t){if(n!==e)throw new r(t??`Objects are not equal:
8
8
  ${JSON.stringify(n)}
9
9
  compared:
10
- ${JSON.stringify(e)}`)}function m(n,e,t){if(n===e)throw new r(t??`Objects are equal: ${JSON.stringify(n)}`)}function w(n){m(n,null),g(n)}function x(n){i(n,null)}var b=n=>e=>l(e,n),O=n=>e=>n(e);function y(n){return{calledTimes:e=>{i(n.mock?.calls?.length,e)},notCalled:()=>{i(n?.mock?.calls?.length,0)},called:()=>{o(n.mock?.calls.length!==void 0&&n.mock.calls.length>0)},calledWith:(...e)=>{o(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>l(t.arguments,e)))},calledOnceWith:(...e)=>{o(n.mock?.calls.length!==void 0&&n.mock.calls.length===1&&n.mock.calls.some(t=>l(t.arguments,e)))},calledWithArgumentMatching:(...e)=>{o(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1),o(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>t.arguments&&t.arguments.length>=e.length&&e.every((s,c)=>s(t.arguments[c]))))},notCalledWithArgumentMatching:(...e)=>{a(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls[0].arguments&&n.mock.calls[0].arguments.length>=e.length&&e.every((t,s)=>t(n.mock.calls[0].arguments[s])))}}}var E=n=>({isEmpty:()=>i(n.length,0),hasSize:e=>i(n.length,e),containsElements:(...e)=>{o(e.every(t=>e.some(s=>l(t,s))))},containsExactlyInAnyOrder:(...e)=>{i(n.length,e.length),o(n.every(t=>e.some(s=>l(t,s))))},containsExactlyInAnyOrderElementsOf:e=>{i(n.length,e.length),o(n.every(t=>e.some(s=>l(t,s))))},containsExactlyElementsOf:e=>{i(n.length,e.length);for(let t=0;t<n.length;t++)o(l(n[t],e[t]))},containsExactly:e=>{i(n.length,1),o(l(n[0],e))},contains:e=>{o(n.some(t=>l(t,e)))},containsOnlyOnceElementsOf:e=>{o(e.map(t=>n.filter(s=>l(s,t)).length).filter(t=>t===1).length===e.length)},containsAnyOf:(...e)=>{o(n.some(t=>e.some(s=>l(t,s))))},allMatch:e=>{o(n.every(e))},anyMatches:e=>{o(n.some(e))},allMatchAsync:async e=>{for(let t of n)o(await e(t))}});export{r as a,u as b,d as c,T as d,k as e,f,p as g,a as h,o as i,g as j,i as k,m as l,w as m,x as n,b as o,O as p,y as q,E as r};
11
- //# sourceMappingURL=chunk-OLRYVGRO.mjs.map
10
+ ${JSON.stringify(e)}`)}function m(n,e,t){if(n===e)throw new r(t??`Objects are equal: ${JSON.stringify(n)}`)}function w(n){m(n,null),u(n)}function x(n){i(n,null)}var b=n=>e=>l(e,n),O=n=>e=>n(e);function y(n){return{calledTimes:e=>{i(n.mock?.calls?.length,e)},notCalled:()=>{i(n?.mock?.calls?.length,0)},called:()=>{o(n.mock?.calls.length!==void 0&&n.mock.calls.length>0)},calledWith:(...e)=>{o(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>l(t.arguments,e)))},calledOnceWith:(...e)=>{o(n.mock?.calls.length!==void 0&&n.mock.calls.length===1&&n.mock.calls.some(t=>l(t.arguments,e)))},calledWithArgumentMatching:(...e)=>{o(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1),o(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>t.arguments&&t.arguments.length>=e.length&&e.every((s,c)=>s(t.arguments[c]))))},notCalledWithArgumentMatching:(...e)=>{g(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls[0].arguments&&n.mock.calls[0].arguments.length>=e.length&&e.every((t,s)=>t(n.mock.calls[0].arguments[s])))}}}var E=n=>({isEmpty:()=>i(n.length,0),hasSize:e=>i(n.length,e),containsElements:(...e)=>{o(e.every(t=>e.some(s=>l(t,s))))},containsExactlyInAnyOrder:(...e)=>{i(n.length,e.length),o(n.every(t=>e.some(s=>l(t,s))))},containsExactlyInAnyOrderElementsOf:e=>{i(n.length,e.length),o(n.every(t=>e.some(s=>l(t,s))))},containsExactlyElementsOf:e=>{i(n.length,e.length);for(let t=0;t<n.length;t++)o(l(n[t],e[t]))},containsExactly:e=>{i(n.length,1),o(l(n[0],e))},contains:e=>{o(n.some(t=>l(t,e)))},containsOnlyOnceElementsOf:e=>{o(e.map(t=>n.filter(s=>l(s,t)).length).filter(t=>t===1).length===e.length)},containsAnyOf:(...e)=>{o(n.some(t=>e.some(s=>l(t,s))))},allMatch:e=>{o(n.every(e))},anyMatches:e=>{o(n.some(e))},allMatchAsync:async e=>{for(let t of n)o(await e(t))}});export{r as a,a as b,d as c,T as d,k as e,f,p as g,g as h,o as i,u as j,i as k,m as l,w as m,x as n,b as o,O as p,y as q,E as r};
11
+ //# sourceMappingURL=chunk-ZFBWMZ55.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testing/assertions.ts"],"sourcesContent":["import type { DefaultRecord } from '../typing';\nimport { deepEquals } from '../utils';\n\nexport class AssertionError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\nexport const isSubset = (superObj: unknown, subObj: unknown): boolean => {\n const sup = superObj as DefaultRecord;\n const sub = subObj as DefaultRecord;\n\n assertOk(sup);\n assertOk(sub);\n\n return Object.keys(sub).every((ele: string) => {\n if (typeof sub[ele] == 'object') {\n return isSubset(sup[ele], sub[ele]);\n }\n return sub[ele] === sup[ele];\n });\n};\n\nexport const assertFails = () => {\n throw new AssertionError('That should not ever happened, right?');\n};\n\nexport const assertThrows = (\n fun: () => void,\n errorCheck?: (error: Error) => boolean,\n) => {\n try {\n fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n if (errorCheck) assertTrue(errorCheck(error as Error));\n }\n};\n\nexport const assertMatches = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!isSubset(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSON.stringify(expected)}\\nis not subset of\\n${JSON.stringify(actual)}`,\n );\n};\n\nexport const assertDeepEqual = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!deepEquals(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSON.stringify(expected)}\\nis equals to\\n${JSON.stringify(actual)}`,\n );\n};\n\nexport const assertThat = <T>(item: T) => {\n return {\n isEqualTo: (other: T) => assertTrue(deepEquals(item, other)),\n };\n};\n\nexport function assertFalse(\n condition: boolean,\n message?: string,\n): asserts condition is false {\n if (condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertTrue(\n condition: boolean,\n message?: string,\n): asserts condition is true {\n if (!condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertOk<T>(\n obj: T | null | undefined,\n message?: string,\n): asserts obj is T {\n if (!obj) throw new AssertionError(message ?? `Condition is not truthy`);\n}\n\nexport function assertEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj !== other)\n throw new AssertionError(\n message ??\n `Objects are not equal:\\n ${JSON.stringify(obj)}\\ncompared:\\n${JSON.stringify(other)}`,\n );\n}\n\nexport function assertNotEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj === other)\n throw new AssertionError(\n message ?? `Objects are equal: ${JSON.stringify(obj)}`,\n );\n}\n\nexport function assertIsNotNull<T extends object>(\n result: T | null,\n): asserts result is T {\n assertNotEqual(result, null);\n assertOk(result);\n}\n\nexport function assertIsNull<T extends object>(\n result: T | null,\n): asserts result is null {\n assertEqual(result, null);\n}\n\ntype Call = {\n arguments: unknown[];\n result: unknown;\n target: unknown;\n this: unknown;\n};\n\nexport type ArgumentMatcher = (arg: unknown) => boolean;\n\nexport const argValue =\n <T>(value: T): ArgumentMatcher =>\n (arg) =>\n deepEquals(arg, value);\n\nexport const argMatches =\n <T>(matches: (arg: T) => boolean): ArgumentMatcher =>\n (arg) =>\n matches(arg as T);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MockedFunction = Function & { mock?: { calls: Call[] } };\n\nexport function verifyThat(fn: MockedFunction) {\n return {\n calledTimes: (times: number) => {\n assertEqual(fn.mock?.calls?.length, times);\n },\n notCalled: () => {\n assertEqual(fn?.mock?.calls?.length, 0);\n },\n called: () => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length > 0,\n );\n },\n calledWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledOnceWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length === 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length >= 1,\n );\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some(\n (call) =>\n call.arguments &&\n call.arguments.length >= matches.length &&\n matches.every((match, index) => match(call.arguments[index])),\n ),\n );\n },\n notCalledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertFalse(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls[0]!.arguments &&\n fn.mock.calls[0]!.arguments.length >= matches.length &&\n matches.every((match, index) =>\n match(fn.mock!.calls[0]!.arguments[index]),\n ),\n );\n },\n };\n}\n\nexport const assertThatArray = <T>(array: T[]) => {\n return {\n isEmpty: () => assertEqual(array.length, 0),\n hasSize: (length: number) => assertEqual(array.length, length),\n containsElements: (...other: T[]) => {\n assertTrue(other.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrder: (...other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrderElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n for (let i = 0; i < array.length; i++) {\n assertTrue(deepEquals(array[i], other[i]));\n }\n },\n containsExactly: (elem: T) => {\n assertEqual(array.length, 1);\n assertTrue(deepEquals(array[0], elem));\n },\n contains: (elem: T) => {\n assertTrue(array.some((a) => deepEquals(a, elem)));\n },\n containsOnlyOnceElementsOf: (other: T[]) => {\n assertTrue(\n other\n .map((o) => array.filter((a) => deepEquals(a, o)).length)\n .filter((a) => a === 1).length === other.length,\n );\n },\n containsAnyOf: (...other: T[]) => {\n assertTrue(array.some((a) => other.some((o) => deepEquals(a, o))));\n },\n allMatch: (matches: (item: T) => boolean) => {\n assertTrue(array.every(matches));\n },\n anyMatches: (matches: (item: T) => boolean) => {\n assertTrue(array.some(matches));\n },\n allMatchAsync: async (\n matches: (item: T) => Promise<boolean>,\n ): Promise<void> => {\n for (const item of array) {\n assertTrue(await matches(item));\n }\n },\n };\n};\n"],"mappings":"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","names":["AssertionError","message","isSubset","superObj","subObj","sup","sub","assertOk","ele","assertFails","assertThrows","fun","errorCheck","error","assertTrue","assertMatches","actual","expected","assertDeepEqual","deepEquals","assertThat","item","other","assertFalse","condition","obj","assertEqual","assertNotEqual","assertIsNotNull","result","assertIsNull","argValue","value","arg","argMatches","matches","verifyThat","fn","times","args","call","match","index","assertThatArray","array","length","ts","o","i","elem","a"]}
@@ -1,2 +1,2 @@
1
- import{b as s}from"./chunk-RNVC3XMR.mjs";import d from"async-retry";import{TransformStream as c}from"web-streams-polyfill";var b=(t,o=r=>r,a={forever:!0,minTimeout:25},e=new s)=>new c({start(r){d(()=>u(t,r,o,e),a).catch(n=>{r.error(n)})}}).readable,u=async(t,o,a,e)=>{let n=t().getReader();try{let m;do m=await S(n,o,a,e);while(!m)}finally{n.releaseLock()}},S=async(t,o,a,e)=>{let{done:r,value:n}=await t.read();return n&&e.addToBuffer(n),!r&&!e.hasCompleteMessage()?!1:(f(e,a,o),r&&o.terminate(),r)},f=(t,o,a)=>{try{let e=t.decode();if(!e)return;let r=o(e);a.enqueue(r)}catch(e){a.error(new Error(`Decoding error: ${e?.toString()}`))}};export{b as a};
2
- //# sourceMappingURL=chunk-QI3RQAAN.mjs.map
1
+ import{b as s}from"./chunk-TKIRQ76T.mjs";import d from"async-retry";import{TransformStream as c}from"web-streams-polyfill";var b=(t,o=r=>r,a={forever:!0,minTimeout:25},e=new s)=>new c({start(r){d(()=>u(t,r,o,e),a).catch(n=>{r.error(n)})}}).readable,u=async(t,o,a,e)=>{let n=t().getReader();try{let m;do m=await S(n,o,a,e);while(!m)}finally{n.releaseLock()}},S=async(t,o,a,e)=>{let{done:r,value:n}=await t.read();return n&&e.addToBuffer(n),!r&&!e.hasCompleteMessage()?!1:(f(e,a,o),r&&o.terminate(),r)},f=(t,o,a)=>{try{let e=t.decode();if(!e)return;let r=o(e);a.enqueue(r)}catch(e){a.error(new Error(`Decoding error: ${e?.toString()}`))}};export{b as a};
2
+ //# sourceMappingURL=chunk-ZV7YVTI7.mjs.map
package/dist/index.d.mts CHANGED
@@ -6,7 +6,7 @@ export { EventHandler, getInMemoryEventStore } from './eventStore/inMemoryEventS
6
6
  export { JSONParser, Mapper, MapperArgs, ParseError, ParseOptions, StringifyOptions } from './serialization/json/JSONParser.mjs';
7
7
  export { ArgumentMatcher, AssertionError, MockedFunction, argMatches, argValue, assertDeepEqual, assertEqual, assertFails, assertFalse, assertIsNotNull, assertIsNull, assertMatches, assertNotEqual, assertOk, assertThat, assertThatArray, assertThrows, assertTrue, isSubset, verifyThat } from './testing/assertions.mjs';
8
8
  export { DeciderSpecfication, DeciderSpecification, ThenThrows } from './testing/deciderSpecification.mjs';
9
- export { DiscountApplied, PricedProductItem, ProductItemAdded, ShoppingCart, ShoppingCartEvent, evolve, evolveWithMetadata, initialState } from './testing/shoppingCart.domain.mjs';
9
+ export { TestEventStream, WrapEventStore } from './testing/wrapEventStore.mjs';
10
10
  export { Brand, Command, CommandDataOf, CommandMetaDataOf, CommandTypeOf, CreateCommandType, CreateEventType, Decider, DefaultCommandMetadata, DefaultRecord, Event, EventDataOf, EventMetaDataOf, EventTypeOf, Flavour, ReadEvent, ReadEventMetadata, ReadEventMetadataWithGlobalPosition, Workflow, WorkflowCommand, WorkflowEvent, WorkflowOutput, accept, command, complete, error, event, ignore, publish, reply, schedule, send } from './typing/index.mjs';
11
11
  export { Equatable, deepEquals, isEquatable } from './utils/deepEquals.mjs';
12
12
  export { sum } from './utils/iterators.mjs';
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { EventHandler, getInMemoryEventStore } from './eventStore/inMemoryEventS
6
6
  export { JSONParser, Mapper, MapperArgs, ParseError, ParseOptions, StringifyOptions } from './serialization/json/JSONParser.js';
7
7
  export { ArgumentMatcher, AssertionError, MockedFunction, argMatches, argValue, assertDeepEqual, assertEqual, assertFails, assertFalse, assertIsNotNull, assertIsNull, assertMatches, assertNotEqual, assertOk, assertThat, assertThatArray, assertThrows, assertTrue, isSubset, verifyThat } from './testing/assertions.js';
8
8
  export { DeciderSpecfication, DeciderSpecification, ThenThrows } from './testing/deciderSpecification.js';
9
- export { DiscountApplied, PricedProductItem, ProductItemAdded, ShoppingCart, ShoppingCartEvent, evolve, evolveWithMetadata, initialState } from './testing/shoppingCart.domain.js';
9
+ export { TestEventStream, WrapEventStore } from './testing/wrapEventStore.js';
10
10
  export { Brand, Command, CommandDataOf, CommandMetaDataOf, CommandTypeOf, CreateCommandType, CreateEventType, Decider, DefaultCommandMetadata, DefaultRecord, Event, EventDataOf, EventMetaDataOf, EventTypeOf, Flavour, ReadEvent, ReadEventMetadata, ReadEventMetadataWithGlobalPosition, Workflow, WorkflowCommand, WorkflowEvent, WorkflowOutput, accept, command, complete, error, event, ignore, publish, reply, schedule, send } from './typing/index.js';
11
11
  export { Equatable, deepEquals, isEquatable } from './utils/deepEquals.js';
12
12
  export { sum } from './utils/iterators.js';
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-BNCTLP4B.js');var _chunk7JNETS5Jjs = require('./chunk-7JNETS5J.js');var _chunk7BR3VBVDjs = require('./chunk-7BR3VBVD.js');var _chunkWQKN6JXBjs = require('./chunk-WQKN6JXB.js');require('./chunk-6IATZUYD.js');var _chunkFE73T2NSjs = require('./chunk-FE73T2NS.js');var _chunk3JE5DUJ2js = require('./chunk-3JE5DUJ2.js');var _chunkPVFUNWT6js = require('./chunk-PVFUNWT6.js');require('./chunk-ZLASBJGR.js');var _chunkMHB2JU4Ujs = require('./chunk-MHB2JU4U.js');require('./chunk-7FJXUW3D.js');require('./chunk-5BGN2FV4.js');var _chunkKQAFRLJ2js = require('./chunk-KQAFRLJ2.js');var _chunkUFUSYJWUjs = require('./chunk-UFUSYJWU.js');require('./chunk-LOJ6A4AJ.js');require('./chunk-AU2WZCER.js');var _chunkLYKEARRWjs = require('./chunk-LYKEARRW.js');require('./chunk-F7QRI2VL.js');var _chunkTNJCS5RVjs = require('./chunk-TNJCS5RV.js');var _chunkPRYQOCWYjs = require('./chunk-PRYQOCWY.js');require('./chunk-2452BJTJ.js');var _chunk74HCODMEjs = require('./chunk-74HCODME.js');require('./chunk-IJGC6SHP.js');var _chunkVY2C2KCWjs = require('./chunk-VY2C2KCW.js');var _chunkE7KI3V22js = require('./chunk-E7KI3V22.js');exports.AssertionError = _chunkWQKN6JXBjs.a; exports.CommandHandler = _chunkPRYQOCWYjs.a; exports.ConcurrencyError = _chunkE7KI3V22js.l; exports.DeciderCommandHandler = _chunkTNJCS5RVjs.a; exports.DeciderSpecification = _chunk7JNETS5Jjs.a; exports.EmmettError = _chunkE7KI3V22js.k; exports.ExpectedVersionConflictError = _chunkVY2C2KCWjs.f; exports.IllegalStateError = _chunkE7KI3V22js.n; exports.JSONParser = _chunkLYKEARRWjs.b; exports.NO_CONCURRENCY_CHECK = _chunkVY2C2KCWjs.c; exports.NotFoundError = _chunkE7KI3V22js.o; exports.ParseError = _chunkLYKEARRWjs.a; exports.STREAM_DOES_NOT_EXIST = _chunkVY2C2KCWjs.b; exports.STREAM_EXISTS = _chunkVY2C2KCWjs.a; exports.ValidationError = _chunkE7KI3V22js.m; exports.ValidationErrors = _chunkE7KI3V22js.d; exports.accept = _chunkUFUSYJWUjs.h; exports.argMatches = _chunkWQKN6JXBjs.p; exports.argValue = _chunkWQKN6JXBjs.o; exports.assertDeepEqual = _chunkWQKN6JXBjs.f; exports.assertEqual = _chunkWQKN6JXBjs.k; exports.assertExpectedVersionMatchesCurrent = _chunkVY2C2KCWjs.e; exports.assertFails = _chunkWQKN6JXBjs.c; exports.assertFalse = _chunkWQKN6JXBjs.h; exports.assertIsNotNull = _chunkWQKN6JXBjs.m; exports.assertIsNull = _chunkWQKN6JXBjs.n; exports.assertMatches = _chunkWQKN6JXBjs.e; exports.assertNotEmptyString = _chunkE7KI3V22js.g; exports.assertNotEqual = _chunkWQKN6JXBjs.l; exports.assertOk = _chunkWQKN6JXBjs.j; exports.assertPositiveNumber = _chunkE7KI3V22js.h; exports.assertThat = _chunkWQKN6JXBjs.g; exports.assertThatArray = _chunkWQKN6JXBjs.r; exports.assertThrows = _chunkWQKN6JXBjs.d; exports.assertTrue = _chunkWQKN6JXBjs.i; exports.assertUnsignedBigInt = _chunkE7KI3V22js.i; exports.command = _chunkMHB2JU4Ujs.a; exports.complete = _chunkUFUSYJWUjs.e; exports.deepEquals = _chunkPVFUNWT6js.a; exports.error = _chunkUFUSYJWUjs.g; exports.event = _chunkKQAFRLJ2js.a; exports.evolve = _chunk7BR3VBVDjs.a; exports.evolveWithMetadata = _chunk7BR3VBVDjs.b; exports.formatDateToUtcYYYYMMDD = _chunkE7KI3V22js.a; exports.getInMemoryEventStore = _chunk74HCODMEjs.a; exports.ignore = _chunkUFUSYJWUjs.f; exports.initialState = _chunk7BR3VBVDjs.c; exports.isEquatable = _chunkPVFUNWT6js.b; exports.isErrorConstructor = _chunkE7KI3V22js.j; exports.isNumber = _chunkE7KI3V22js.e; exports.isString = _chunkE7KI3V22js.f; exports.isSubset = _chunkWQKN6JXBjs.b; exports.isValidYYYYMMDD = _chunkE7KI3V22js.b; exports.matchesExpectedVersion = _chunkVY2C2KCWjs.d; exports.merge = _chunk3JE5DUJ2js.a; exports.parseDateFromUtcYYYYMMDD = _chunkE7KI3V22js.c; exports.publish = _chunkUFUSYJWUjs.c; exports.reply = _chunkUFUSYJWUjs.a; exports.schedule = _chunkUFUSYJWUjs.d; exports.send = _chunkUFUSYJWUjs.b; exports.sum = _chunkFE73T2NSjs.a; exports.verifyThat = _chunkWQKN6JXBjs.q;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-BNCTLP4B.js');var _chunkTNX525X5js = require('./chunk-TNX525X5.js');var _chunkOIDX2JMHjs = require('./chunk-OIDX2JMH.js');var _chunkVCCKNYOYjs = require('./chunk-VCCKNYOY.js');require('./chunk-6IATZUYD.js');var _chunkPVFUNWT6js = require('./chunk-PVFUNWT6.js');var _chunkFE73T2NSjs = require('./chunk-FE73T2NS.js');var _chunk3JE5DUJ2js = require('./chunk-3JE5DUJ2.js');require('./chunk-ZLASBJGR.js');var _chunkMHB2JU4Ujs = require('./chunk-MHB2JU4U.js');require('./chunk-7FJXUW3D.js');require('./chunk-5BGN2FV4.js');var _chunkKQAFRLJ2js = require('./chunk-KQAFRLJ2.js');var _chunkUFUSYJWUjs = require('./chunk-UFUSYJWU.js');require('./chunk-LOJ6A4AJ.js');require('./chunk-AU2WZCER.js');var _chunkLYKEARRWjs = require('./chunk-LYKEARRW.js');require('./chunk-F7QRI2VL.js');var _chunkTNJCS5RVjs = require('./chunk-TNJCS5RV.js');var _chunkPRYQOCWYjs = require('./chunk-PRYQOCWY.js');require('./chunk-2452BJTJ.js');var _chunk74HCODMEjs = require('./chunk-74HCODME.js');require('./chunk-IJGC6SHP.js');var _chunkVY2C2KCWjs = require('./chunk-VY2C2KCW.js');var _chunkE7KI3V22js = require('./chunk-E7KI3V22.js');exports.AssertionError = _chunkVCCKNYOYjs.a; exports.CommandHandler = _chunkPRYQOCWYjs.a; exports.ConcurrencyError = _chunkE7KI3V22js.l; exports.DeciderCommandHandler = _chunkTNJCS5RVjs.a; exports.DeciderSpecification = _chunkOIDX2JMHjs.a; exports.EmmettError = _chunkE7KI3V22js.k; exports.ExpectedVersionConflictError = _chunkVY2C2KCWjs.f; exports.IllegalStateError = _chunkE7KI3V22js.n; exports.JSONParser = _chunkLYKEARRWjs.b; exports.NO_CONCURRENCY_CHECK = _chunkVY2C2KCWjs.c; exports.NotFoundError = _chunkE7KI3V22js.o; exports.ParseError = _chunkLYKEARRWjs.a; exports.STREAM_DOES_NOT_EXIST = _chunkVY2C2KCWjs.b; exports.STREAM_EXISTS = _chunkVY2C2KCWjs.a; exports.ValidationError = _chunkE7KI3V22js.m; exports.ValidationErrors = _chunkE7KI3V22js.d; exports.WrapEventStore = _chunkTNX525X5js.a; exports.accept = _chunkUFUSYJWUjs.h; exports.argMatches = _chunkVCCKNYOYjs.p; exports.argValue = _chunkVCCKNYOYjs.o; exports.assertDeepEqual = _chunkVCCKNYOYjs.f; exports.assertEqual = _chunkVCCKNYOYjs.k; exports.assertExpectedVersionMatchesCurrent = _chunkVY2C2KCWjs.e; exports.assertFails = _chunkVCCKNYOYjs.c; exports.assertFalse = _chunkVCCKNYOYjs.h; exports.assertIsNotNull = _chunkVCCKNYOYjs.m; exports.assertIsNull = _chunkVCCKNYOYjs.n; exports.assertMatches = _chunkVCCKNYOYjs.e; exports.assertNotEmptyString = _chunkE7KI3V22js.g; exports.assertNotEqual = _chunkVCCKNYOYjs.l; exports.assertOk = _chunkVCCKNYOYjs.j; exports.assertPositiveNumber = _chunkE7KI3V22js.h; exports.assertThat = _chunkVCCKNYOYjs.g; exports.assertThatArray = _chunkVCCKNYOYjs.r; exports.assertThrows = _chunkVCCKNYOYjs.d; exports.assertTrue = _chunkVCCKNYOYjs.i; exports.assertUnsignedBigInt = _chunkE7KI3V22js.i; exports.command = _chunkMHB2JU4Ujs.a; exports.complete = _chunkUFUSYJWUjs.e; exports.deepEquals = _chunkPVFUNWT6js.a; exports.error = _chunkUFUSYJWUjs.g; exports.event = _chunkKQAFRLJ2js.a; exports.formatDateToUtcYYYYMMDD = _chunkE7KI3V22js.a; exports.getInMemoryEventStore = _chunk74HCODMEjs.a; exports.ignore = _chunkUFUSYJWUjs.f; exports.isEquatable = _chunkPVFUNWT6js.b; exports.isErrorConstructor = _chunkE7KI3V22js.j; exports.isNumber = _chunkE7KI3V22js.e; exports.isString = _chunkE7KI3V22js.f; exports.isSubset = _chunkVCCKNYOYjs.b; exports.isValidYYYYMMDD = _chunkE7KI3V22js.b; exports.matchesExpectedVersion = _chunkVY2C2KCWjs.d; exports.merge = _chunk3JE5DUJ2js.a; exports.parseDateFromUtcYYYYMMDD = _chunkE7KI3V22js.c; exports.publish = _chunkUFUSYJWUjs.c; exports.reply = _chunkUFUSYJWUjs.a; exports.schedule = _chunkUFUSYJWUjs.d; exports.send = _chunkUFUSYJWUjs.b; exports.sum = _chunkFE73T2NSjs.a; exports.verifyThat = _chunkVCCKNYOYjs.q;
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import"./chunk-AHXBZPOE.mjs";import{a as W}from"./chunk-NBYRSAVT.mjs";import{a as po,b as to,c as xo}from"./chunk-WB5PNUKG.mjs";import{a as E,b as F,c as G,d as H,e as I,f as J,g as K,h as L,i as M,j as N,k as O,l as P,m as Q,n as R,o as S,p as T,q as U,r as V}from"./chunk-OLRYVGRO.mjs";import"./chunk-3DH3DSMC.mjs";import{a as C}from"./chunk-OBA6MZMG.mjs";import{a as D}from"./chunk-YKFEDBH4.mjs";import{a as A,b as B}from"./chunk-B7NWWHCY.mjs";import"./chunk-YWRV75GA.mjs";import{a as X}from"./chunk-JDYZZRJE.mjs";import"./chunk-3LYVXI5R.mjs";import"./chunk-DOHUIBZQ.mjs";import{a as Y}from"./chunk-YGYVF7JI.mjs";import{a as Z,b as _,c as $,d as oo,e as ro,f as eo,g as fo,h as mo}from"./chunk-GNUOGYD6.mjs";import"./chunk-DIW552TK.mjs";import"./chunk-7JLAVMM3.mjs";import{a as y,b as z}from"./chunk-PKL7KGJ3.mjs";import"./chunk-XLZS42HB.mjs";import{a as w}from"./chunk-NXFNVBXL.mjs";import{a as v}from"./chunk-POWQ3BZ6.mjs";import"./chunk-45ODDXOQ.mjs";import{a as u}from"./chunk-JVPAJ3FU.mjs";import"./chunk-D24KLTN5.mjs";import{a as j,b as k,c as l,d as n,e as q,f as s}from"./chunk-HKDMOB55.mjs";import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i}from"./chunk-KLLSLLHN.mjs";export{E as AssertionError,v as CommandHandler,d as ConcurrencyError,w as DeciderCommandHandler,W as DeciderSpecification,c as EmmettError,s as ExpectedVersionConflictError,h as IllegalStateError,z as JSONParser,l as NO_CONCURRENCY_CHECK,i as NotFoundError,y as ParseError,k as STREAM_DOES_NOT_EXIST,j as STREAM_EXISTS,g as ValidationError,f as ValidationErrors,mo as accept,T as argMatches,S as argValue,J as assertDeepEqual,O as assertEqual,q as assertExpectedVersionMatchesCurrent,G as assertFails,L as assertFalse,Q as assertIsNotNull,R as assertIsNull,I as assertMatches,t as assertNotEmptyString,P as assertNotEqual,N as assertOk,x as assertPositiveNumber,K as assertThat,V as assertThatArray,H as assertThrows,M as assertTrue,a as assertUnsignedBigInt,X as command,ro as complete,A as deepEquals,fo as error,Y as event,po as evolve,to as evolveWithMetadata,o as formatDateToUtcYYYYMMDD,u as getInMemoryEventStore,eo as ignore,xo as initialState,B as isEquatable,b as isErrorConstructor,m as isNumber,p as isString,F as isSubset,r as isValidYYYYMMDD,n as matchesExpectedVersion,D as merge,e as parseDateFromUtcYYYYMMDD,$ as publish,Z as reply,oo as schedule,_ as send,C as sum,U as verifyThat};
1
+ import"./chunk-AHXBZPOE.mjs";import{a as po}from"./chunk-N6X7QWHP.mjs";import{a as W}from"./chunk-EYIJ7ZKY.mjs";import{a as E,b as F,c as G,d as H,e as I,f as J,g as K,h as L,i as M,j as N,k as O,l as P,m as Q,n as R,o as S,p as T,q as U,r as V}from"./chunk-ZFBWMZ55.mjs";import"./chunk-3DH3DSMC.mjs";import{a as A,b as B}from"./chunk-B7NWWHCY.mjs";import{a as C}from"./chunk-OBA6MZMG.mjs";import{a as D}from"./chunk-YKFEDBH4.mjs";import"./chunk-YWRV75GA.mjs";import{a as X}from"./chunk-JDYZZRJE.mjs";import"./chunk-3LYVXI5R.mjs";import"./chunk-DOHUIBZQ.mjs";import{a as Y}from"./chunk-YGYVF7JI.mjs";import{a as Z,b as _,c as $,d as oo,e as ro,f as eo,g as fo,h as mo}from"./chunk-GNUOGYD6.mjs";import"./chunk-DIW552TK.mjs";import"./chunk-7JLAVMM3.mjs";import{a as y,b as z}from"./chunk-PKL7KGJ3.mjs";import"./chunk-XLZS42HB.mjs";import{a as w}from"./chunk-NXFNVBXL.mjs";import{a as v}from"./chunk-POWQ3BZ6.mjs";import"./chunk-45ODDXOQ.mjs";import{a as u}from"./chunk-JVPAJ3FU.mjs";import"./chunk-D24KLTN5.mjs";import{a as j,b as k,c as l,d as n,e as q,f as s}from"./chunk-HKDMOB55.mjs";import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i}from"./chunk-KLLSLLHN.mjs";export{E as AssertionError,v as CommandHandler,d as ConcurrencyError,w as DeciderCommandHandler,W as DeciderSpecification,c as EmmettError,s as ExpectedVersionConflictError,h as IllegalStateError,z as JSONParser,l as NO_CONCURRENCY_CHECK,i as NotFoundError,y as ParseError,k as STREAM_DOES_NOT_EXIST,j as STREAM_EXISTS,g as ValidationError,f as ValidationErrors,po as WrapEventStore,mo as accept,T as argMatches,S as argValue,J as assertDeepEqual,O as assertEqual,q as assertExpectedVersionMatchesCurrent,G as assertFails,L as assertFalse,Q as assertIsNotNull,R as assertIsNull,I as assertMatches,t as assertNotEmptyString,P as assertNotEqual,N as assertOk,x as assertPositiveNumber,K as assertThat,V as assertThatArray,H as assertThrows,M as assertTrue,a as assertUnsignedBigInt,X as command,ro as complete,A as deepEquals,fo as error,Y as event,o as formatDateToUtcYYYYMMDD,u as getInMemoryEventStore,eo as ignore,B as isEquatable,b as isErrorConstructor,m as isNumber,p as isString,F as isSubset,r as isValidYYYYMMDD,n as matchesExpectedVersion,D as merge,e as parseDateFromUtcYYYYMMDD,$ as publish,Z as reply,oo as schedule,_ as send,C as sum,U as verifyThat};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk4LWGKY3Jjs = require('../../chunk-4LWGKY3J.js');require('../../chunk-5JZKD7CB.js');require('../../chunk-ZIBX4FPG.js');require('../../chunk-FNYJ62RO.js');require('../../chunk-2E7KSKKI.js');require('../../chunk-4K5I5WJG.js');exports.CompositeDecoder = _chunk4LWGKY3Jjs.a; exports.DefaultDecoder = _chunk4LWGKY3Jjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkG6LPI3PAjs = require('../../chunk-G6LPI3PA.js');require('../../chunk-2E7KSKKI.js');require('../../chunk-5JZKD7CB.js');require('../../chunk-ZIBX4FPG.js');require('../../chunk-FNYJ62RO.js');require('../../chunk-4K5I5WJG.js');exports.CompositeDecoder = _chunkG6LPI3PAjs.a; exports.DefaultDecoder = _chunkG6LPI3PAjs.b;
2
2
  //# sourceMappingURL=composite.js.map
@@ -1,2 +1,2 @@
1
- import{a,b}from"../../chunk-RNVC3XMR.mjs";import"../../chunk-MR2WVMFM.mjs";import"../../chunk-S3C5CKD5.mjs";import"../../chunk-VTWTSAHB.mjs";import"../../chunk-HKNRGZN2.mjs";import"../../chunk-WCQF2QY4.mjs";export{a as CompositeDecoder,b as DefaultDecoder};
1
+ import{a,b}from"../../chunk-TKIRQ76T.mjs";import"../../chunk-HKNRGZN2.mjs";import"../../chunk-MR2WVMFM.mjs";import"../../chunk-S3C5CKD5.mjs";import"../../chunk-VTWTSAHB.mjs";import"../../chunk-WCQF2QY4.mjs";export{a as CompositeDecoder,b as DefaultDecoder};
2
2
  //# sourceMappingURL=composite.mjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-BP5RXRGL.js');var _chunk4LWGKY3Jjs = require('../../chunk-4LWGKY3J.js');var _chunk5JZKD7CBjs = require('../../chunk-5JZKD7CB.js');var _chunkZIBX4FPGjs = require('../../chunk-ZIBX4FPG.js');var _chunkFNYJ62ROjs = require('../../chunk-FNYJ62RO.js');var _chunk2E7KSKKIjs = require('../../chunk-2E7KSKKI.js');require('../../chunk-4K5I5WJG.js');exports.BinaryJsonDecoder = _chunk2E7KSKKIjs.a; exports.CompositeDecoder = _chunk4LWGKY3Jjs.a; exports.DefaultDecoder = _chunk4LWGKY3Jjs.b; exports.JsonDecoder = _chunk5JZKD7CBjs.a; exports.ObjectDecoder = _chunkZIBX4FPGjs.a; exports.StringDecoder = _chunkFNYJ62ROjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-BP5RXRGL.js');var _chunkG6LPI3PAjs = require('../../chunk-G6LPI3PA.js');var _chunk2E7KSKKIjs = require('../../chunk-2E7KSKKI.js');var _chunk5JZKD7CBjs = require('../../chunk-5JZKD7CB.js');var _chunkZIBX4FPGjs = require('../../chunk-ZIBX4FPG.js');var _chunkFNYJ62ROjs = require('../../chunk-FNYJ62RO.js');require('../../chunk-4K5I5WJG.js');exports.BinaryJsonDecoder = _chunk2E7KSKKIjs.a; exports.CompositeDecoder = _chunkG6LPI3PAjs.a; exports.DefaultDecoder = _chunkG6LPI3PAjs.b; exports.JsonDecoder = _chunk5JZKD7CBjs.a; exports.ObjectDecoder = _chunkZIBX4FPGjs.a; exports.StringDecoder = _chunkFNYJ62ROjs.a;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import"../../chunk-FVA6ACSC.mjs";import{a as e,b as f}from"../../chunk-RNVC3XMR.mjs";import{a as c}from"../../chunk-MR2WVMFM.mjs";import{a as d}from"../../chunk-S3C5CKD5.mjs";import{a as b}from"../../chunk-VTWTSAHB.mjs";import{a}from"../../chunk-HKNRGZN2.mjs";import"../../chunk-WCQF2QY4.mjs";export{a as BinaryJsonDecoder,e as CompositeDecoder,f as DefaultDecoder,c as JsonDecoder,d as ObjectDecoder,b as StringDecoder};
1
+ import"../../chunk-FVA6ACSC.mjs";import{a as e,b as f}from"../../chunk-TKIRQ76T.mjs";import{a}from"../../chunk-HKNRGZN2.mjs";import{a as c}from"../../chunk-MR2WVMFM.mjs";import{a as d}from"../../chunk-S3C5CKD5.mjs";import{a as b}from"../../chunk-VTWTSAHB.mjs";import"../../chunk-WCQF2QY4.mjs";export{a as BinaryJsonDecoder,e as CompositeDecoder,f as DefaultDecoder,c as JsonDecoder,d as ObjectDecoder,b as StringDecoder};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-BP5RXRGL.js');var _chunkUHJAD4TUjs = require('../chunk-UHJAD4TU.js');var _chunkT44377V3js = require('../chunk-T44377V3.js');var _chunk4LWGKY3Jjs = require('../chunk-4LWGKY3J.js');var _chunk5JZKD7CBjs = require('../chunk-5JZKD7CB.js');var _chunkZIBX4FPGjs = require('../chunk-ZIBX4FPG.js');var _chunkFNYJ62ROjs = require('../chunk-FNYJ62RO.js');var _chunk2E7KSKKIjs = require('../chunk-2E7KSKKI.js');var _chunk4K5I5WJGjs = require('../chunk-4K5I5WJG.js');exports.BinaryJsonDecoder = _chunk2E7KSKKIjs.a; exports.CompositeDecoder = _chunk4LWGKY3Jjs.a; exports.DefaultDecoder = _chunk4LWGKY3Jjs.b; exports.JsonDecoder = _chunk5JZKD7CBjs.a; exports.ObjectDecoder = _chunkZIBX4FPGjs.a; exports.StringDecoder = _chunkFNYJ62ROjs.a; exports.collectStream = _chunkUHJAD4TUjs.a; exports.concatUint8Arrays = _chunk4K5I5WJGjs.a; exports.restream = _chunkT44377V3js.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-BP5RXRGL.js');var _chunk7ZSJY377js = require('../chunk-7ZSJY377.js');var _chunkG6LPI3PAjs = require('../chunk-G6LPI3PA.js');var _chunk2E7KSKKIjs = require('../chunk-2E7KSKKI.js');var _chunk5JZKD7CBjs = require('../chunk-5JZKD7CB.js');var _chunkZIBX4FPGjs = require('../chunk-ZIBX4FPG.js');var _chunkFNYJ62ROjs = require('../chunk-FNYJ62RO.js');var _chunk4K5I5WJGjs = require('../chunk-4K5I5WJG.js');var _chunkUHJAD4TUjs = require('../chunk-UHJAD4TU.js');exports.BinaryJsonDecoder = _chunk2E7KSKKIjs.a; exports.CompositeDecoder = _chunkG6LPI3PAjs.a; exports.DefaultDecoder = _chunkG6LPI3PAjs.b; exports.JsonDecoder = _chunk5JZKD7CBjs.a; exports.ObjectDecoder = _chunkZIBX4FPGjs.a; exports.StringDecoder = _chunkFNYJ62ROjs.a; exports.collectStream = _chunkUHJAD4TUjs.a; exports.concatUint8Arrays = _chunk4K5I5WJGjs.a; exports.restream = _chunk7ZSJY377js.a;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import"../chunk-FVA6ACSC.mjs";import{a as r}from"../chunk-7LENV63T.mjs";import{a}from"../chunk-QI3RQAAN.mjs";import{a as t,b as x}from"../chunk-RNVC3XMR.mjs";import{a as m}from"../chunk-MR2WVMFM.mjs";import{a as p}from"../chunk-S3C5CKD5.mjs";import{a as f}from"../chunk-VTWTSAHB.mjs";import{a as e}from"../chunk-HKNRGZN2.mjs";import{a as o}from"../chunk-WCQF2QY4.mjs";export{e as BinaryJsonDecoder,t as CompositeDecoder,x as DefaultDecoder,m as JsonDecoder,p as ObjectDecoder,f as StringDecoder,r as collectStream,o as concatUint8Arrays,a as restream};
1
+ import"../chunk-FVA6ACSC.mjs";import{a}from"../chunk-ZV7YVTI7.mjs";import{a as t,b as x}from"../chunk-TKIRQ76T.mjs";import{a as e}from"../chunk-HKNRGZN2.mjs";import{a as m}from"../chunk-MR2WVMFM.mjs";import{a as p}from"../chunk-S3C5CKD5.mjs";import{a as f}from"../chunk-VTWTSAHB.mjs";import{a as o}from"../chunk-WCQF2QY4.mjs";import{a as r}from"../chunk-7LENV63T.mjs";export{e as BinaryJsonDecoder,t as CompositeDecoder,x as DefaultDecoder,m as JsonDecoder,p as ObjectDecoder,f as StringDecoder,r as collectStream,o as concatUint8Arrays,a as restream};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkT44377V3js = require('../chunk-T44377V3.js');require('../chunk-4LWGKY3J.js');require('../chunk-5JZKD7CB.js');require('../chunk-ZIBX4FPG.js');require('../chunk-FNYJ62RO.js');require('../chunk-2E7KSKKI.js');require('../chunk-4K5I5WJG.js');exports.restream = _chunkT44377V3js.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7ZSJY377js = require('../chunk-7ZSJY377.js');require('../chunk-G6LPI3PA.js');require('../chunk-2E7KSKKI.js');require('../chunk-5JZKD7CB.js');require('../chunk-ZIBX4FPG.js');require('../chunk-FNYJ62RO.js');require('../chunk-4K5I5WJG.js');exports.restream = _chunk7ZSJY377js.a;
2
2
  //# sourceMappingURL=restream.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-QI3RQAAN.mjs";import"../chunk-RNVC3XMR.mjs";import"../chunk-MR2WVMFM.mjs";import"../chunk-S3C5CKD5.mjs";import"../chunk-VTWTSAHB.mjs";import"../chunk-HKNRGZN2.mjs";import"../chunk-WCQF2QY4.mjs";export{a as restream};
1
+ import{a}from"../chunk-ZV7YVTI7.mjs";import"../chunk-TKIRQ76T.mjs";import"../chunk-HKNRGZN2.mjs";import"../chunk-MR2WVMFM.mjs";import"../chunk-S3C5CKD5.mjs";import"../chunk-VTWTSAHB.mjs";import"../chunk-WCQF2QY4.mjs";export{a as restream};
2
2
  //# sourceMappingURL=restream.mjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWQKN6JXBjs = require('../chunk-WQKN6JXB.js');require('../chunk-6IATZUYD.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-PVFUNWT6.js');exports.AssertionError = _chunkWQKN6JXBjs.a; exports.argMatches = _chunkWQKN6JXBjs.p; exports.argValue = _chunkWQKN6JXBjs.o; exports.assertDeepEqual = _chunkWQKN6JXBjs.f; exports.assertEqual = _chunkWQKN6JXBjs.k; exports.assertFails = _chunkWQKN6JXBjs.c; exports.assertFalse = _chunkWQKN6JXBjs.h; exports.assertIsNotNull = _chunkWQKN6JXBjs.m; exports.assertIsNull = _chunkWQKN6JXBjs.n; exports.assertMatches = _chunkWQKN6JXBjs.e; exports.assertNotEqual = _chunkWQKN6JXBjs.l; exports.assertOk = _chunkWQKN6JXBjs.j; exports.assertThat = _chunkWQKN6JXBjs.g; exports.assertThatArray = _chunkWQKN6JXBjs.r; exports.assertThrows = _chunkWQKN6JXBjs.d; exports.assertTrue = _chunkWQKN6JXBjs.i; exports.isSubset = _chunkWQKN6JXBjs.b; exports.verifyThat = _chunkWQKN6JXBjs.q;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkVCCKNYOYjs = require('../chunk-VCCKNYOY.js');require('../chunk-6IATZUYD.js');require('../chunk-PVFUNWT6.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');exports.AssertionError = _chunkVCCKNYOYjs.a; exports.argMatches = _chunkVCCKNYOYjs.p; exports.argValue = _chunkVCCKNYOYjs.o; exports.assertDeepEqual = _chunkVCCKNYOYjs.f; exports.assertEqual = _chunkVCCKNYOYjs.k; exports.assertFails = _chunkVCCKNYOYjs.c; exports.assertFalse = _chunkVCCKNYOYjs.h; exports.assertIsNotNull = _chunkVCCKNYOYjs.m; exports.assertIsNull = _chunkVCCKNYOYjs.n; exports.assertMatches = _chunkVCCKNYOYjs.e; exports.assertNotEqual = _chunkVCCKNYOYjs.l; exports.assertOk = _chunkVCCKNYOYjs.j; exports.assertThat = _chunkVCCKNYOYjs.g; exports.assertThatArray = _chunkVCCKNYOYjs.r; exports.assertThrows = _chunkVCCKNYOYjs.d; exports.assertTrue = _chunkVCCKNYOYjs.i; exports.isSubset = _chunkVCCKNYOYjs.b; exports.verifyThat = _chunkVCCKNYOYjs.q;
2
2
  //# sourceMappingURL=assertions.js.map
@@ -1,2 +1,2 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r}from"../chunk-OLRYVGRO.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-B7NWWHCY.mjs";export{a as AssertionError,p as argMatches,o as argValue,f as assertDeepEqual,k as assertEqual,c as assertFails,h as assertFalse,m as assertIsNotNull,n as assertIsNull,e as assertMatches,l as assertNotEqual,j as assertOk,g as assertThat,r as assertThatArray,d as assertThrows,i as assertTrue,b as isSubset,q as verifyThat};
1
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r}from"../chunk-ZFBWMZ55.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";export{a as AssertionError,p as argMatches,o as argValue,f as assertDeepEqual,k as assertEqual,c as assertFails,h as assertFalse,m as assertIsNotNull,n as assertIsNull,e as assertMatches,l as assertNotEqual,j as assertOk,g as assertThat,r as assertThatArray,d as assertThrows,i as assertTrue,b as isSubset,q as verifyThat};
2
2
  //# sourceMappingURL=assertions.mjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7JNETS5Jjs = require('../chunk-7JNETS5J.js');require('../chunk-WQKN6JXB.js');require('../chunk-6IATZUYD.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-PVFUNWT6.js');require('../chunk-E7KI3V22.js');exports.DeciderSpecification = _chunk7JNETS5Jjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOIDX2JMHjs = require('../chunk-OIDX2JMH.js');require('../chunk-VCCKNYOY.js');require('../chunk-6IATZUYD.js');require('../chunk-PVFUNWT6.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-E7KI3V22.js');exports.DeciderSpecification = _chunkOIDX2JMHjs.a;
2
2
  //# sourceMappingURL=deciderSpecification.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-NBYRSAVT.mjs";import"../chunk-OLRYVGRO.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-KLLSLLHN.mjs";export{a as DeciderSpecification};
1
+ import{a}from"../chunk-EYIJ7ZKY.mjs";import"../chunk-ZFBWMZ55.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-KLLSLLHN.mjs";export{a as DeciderSpecification};
2
2
  //# sourceMappingURL=deciderSpecification.mjs.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7BR3VBVDjs = require('../chunk-7BR3VBVD.js');var _chunkWQKN6JXBjs = require('../chunk-WQKN6JXB.js');require('../chunk-6IATZUYD.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-PVFUNWT6.js');require('../chunk-ZLASBJGR.js');require('../chunk-MHB2JU4U.js');require('../chunk-7FJXUW3D.js');require('../chunk-5BGN2FV4.js');require('../chunk-KQAFRLJ2.js');require('../chunk-UFUSYJWU.js');var _crypto = require('crypto');var _test = require('test');async function C(g,r={getInitialIndex:()=>1n}){return _test.describe.call(void 0, "aggregateStream",async()=>{let t,u=[{evolve:_chunk7BR3VBVDjs.a,info:"evolve with raw event"},{evolve:_chunk7BR3VBVDjs.b,info:"evolve with event and metadata"}];_test.before.call(void 0, async()=>{t=await g()}),_test.after.call(void 0, async()=>{let e=r.teardownHook;e&&await e()});for(let e of u)await _test.it.call(void 0, `When called with 'to' allows time traveling using ${e.info}`,async()=>{let a={productId:"123",quantity:10,price:3},S=10,o=_crypto.randomUUID.call(void 0, );await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"DiscountApplied",data:{percent:S}}]);let p=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:1n}}),v=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:2n}}),c=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:3n}});_chunkWQKN6JXBjs.j.call(void 0, p),_chunkWQKN6JXBjs.j.call(void 0, v),_chunkWQKN6JXBjs.j.call(void 0, c),_chunkWQKN6JXBjs.k.call(void 0, p.currentStreamVersion,r.getInitialIndex()),_chunkWQKN6JXBjs.f.call(void 0, p.state,{productItems:[a],totalAmount:30}),_chunkWQKN6JXBjs.k.call(void 0, v.currentStreamVersion,r.getInitialIndex()+1n),_chunkWQKN6JXBjs.f.call(void 0, v.state,{productItems:[a,a],totalAmount:60}),_chunkWQKN6JXBjs.k.call(void 0, c.currentStreamVersion,r.getInitialIndex()+2n),_chunkWQKN6JXBjs.f.call(void 0, c.state,{productItems:[a,a],totalAmount:54})})})}exports.testAggregateStream = C;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7BR3VBVDjs = require('../chunk-7BR3VBVD.js');var _chunkVCCKNYOYjs = require('../chunk-VCCKNYOY.js');require('../chunk-6IATZUYD.js');require('../chunk-PVFUNWT6.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-ZLASBJGR.js');require('../chunk-MHB2JU4U.js');require('../chunk-7FJXUW3D.js');require('../chunk-5BGN2FV4.js');require('../chunk-KQAFRLJ2.js');require('../chunk-UFUSYJWU.js');var _crypto = require('crypto');var _test = require('test');async function C(g,r={getInitialIndex:()=>1n}){return _test.describe.call(void 0, "aggregateStream",async()=>{let t,u=[{evolve:_chunk7BR3VBVDjs.a,info:"evolve with raw event"},{evolve:_chunk7BR3VBVDjs.b,info:"evolve with event and metadata"}];_test.before.call(void 0, async()=>{t=await g()}),_test.after.call(void 0, async()=>{let e=r.teardownHook;e&&await e()});for(let e of u)await _test.it.call(void 0, `When called with 'to' allows time traveling using ${e.info}`,async()=>{let a={productId:"123",quantity:10,price:3},S=10,o=_crypto.randomUUID.call(void 0, );await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"DiscountApplied",data:{percent:S}}]);let p=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:1n}}),v=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:2n}}),c=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:3n}});_chunkVCCKNYOYjs.j.call(void 0, p),_chunkVCCKNYOYjs.j.call(void 0, v),_chunkVCCKNYOYjs.j.call(void 0, c),_chunkVCCKNYOYjs.k.call(void 0, p.currentStreamVersion,r.getInitialIndex()),_chunkVCCKNYOYjs.f.call(void 0, p.state,{productItems:[a],totalAmount:30}),_chunkVCCKNYOYjs.k.call(void 0, v.currentStreamVersion,r.getInitialIndex()+1n),_chunkVCCKNYOYjs.f.call(void 0, v.state,{productItems:[a,a],totalAmount:60}),_chunkVCCKNYOYjs.k.call(void 0, c.currentStreamVersion,r.getInitialIndex()+2n),_chunkVCCKNYOYjs.f.call(void 0, c.state,{productItems:[a,a],totalAmount:54})})})}exports.testAggregateStream = C;
2
2
  //# sourceMappingURL=features.js.map
@@ -1,2 +1,2 @@
1
- import{a as m,b as l,c as d}from"../chunk-WB5PNUKG.mjs";import{f as n,j as i,k as s}from"../chunk-OLRYVGRO.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-YWRV75GA.mjs";import"../chunk-JDYZZRJE.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-DOHUIBZQ.mjs";import"../chunk-YGYVF7JI.mjs";import"../chunk-GNUOGYD6.mjs";import{randomUUID as I}from"node:crypto";import{after as w,before as y,describe as f,it as E}from"node:test";async function C(g,r={getInitialIndex:()=>1n}){return f("aggregateStream",async()=>{let t,u=[{evolve:m,info:"evolve with raw event"},{evolve:l,info:"evolve with event and metadata"}];y(async()=>{t=await g()}),w(async()=>{let e=r.teardownHook;e&&await e()});for(let e of u)await E(`When called with 'to' allows time traveling using ${e.info}`,async()=>{let a={productId:"123",quantity:10,price:3},S=10,o=I();await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"DiscountApplied",data:{percent:S}}]);let p=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:1n}}),v=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:2n}}),c=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:3n}});i(p),i(v),i(c),s(p.currentStreamVersion,r.getInitialIndex()),n(p.state,{productItems:[a],totalAmount:30}),s(v.currentStreamVersion,r.getInitialIndex()+1n),n(v.state,{productItems:[a,a],totalAmount:60}),s(c.currentStreamVersion,r.getInitialIndex()+2n),n(c.state,{productItems:[a,a],totalAmount:54})})})}export{C as testAggregateStream};
1
+ import{a as m,b as l,c as d}from"../chunk-WB5PNUKG.mjs";import{f as n,j as i,k as s}from"../chunk-ZFBWMZ55.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-YWRV75GA.mjs";import"../chunk-JDYZZRJE.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-DOHUIBZQ.mjs";import"../chunk-YGYVF7JI.mjs";import"../chunk-GNUOGYD6.mjs";import{randomUUID as I}from"node:crypto";import{after as w,before as y,describe as f,it as E}from"node:test";async function C(g,r={getInitialIndex:()=>1n}){return f("aggregateStream",async()=>{let t,u=[{evolve:m,info:"evolve with raw event"},{evolve:l,info:"evolve with event and metadata"}];y(async()=>{t=await g()}),w(async()=>{let e=r.teardownHook;e&&await e()});for(let e of u)await E(`When called with 'to' allows time traveling using ${e.info}`,async()=>{let a={productId:"123",quantity:10,price:3},S=10,o=I();await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"DiscountApplied",data:{percent:S}}]);let p=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:1n}}),v=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:2n}}),c=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:3n}});i(p),i(v),i(c),s(p.currentStreamVersion,r.getInitialIndex()),n(p.state,{productItems:[a],totalAmount:30}),s(v.currentStreamVersion,r.getInitialIndex()+1n),n(v.state,{productItems:[a,a],totalAmount:60}),s(c.currentStreamVersion,r.getInitialIndex()+2n),n(c.state,{productItems:[a,a],totalAmount:54})})})}export{C as testAggregateStream};
2
2
  //# sourceMappingURL=features.mjs.map
@@ -1,6 +1,7 @@
1
1
  export { ArgumentMatcher, AssertionError, MockedFunction, argMatches, argValue, assertDeepEqual, assertEqual, assertFails, assertFalse, assertIsNotNull, assertIsNull, assertMatches, assertNotEqual, assertOk, assertThat, assertThatArray, assertThrows, assertTrue, isSubset, verifyThat } from './assertions.mjs';
2
2
  export { DeciderSpecfication, DeciderSpecification, ThenThrows } from './deciderSpecification.mjs';
3
- export { DiscountApplied, PricedProductItem, ProductItemAdded, ShoppingCart, ShoppingCartEvent, evolve, evolveWithMetadata, initialState } from './shoppingCart.domain.mjs';
3
+ export { TestEventStream, WrapEventStore } from './wrapEventStore.mjs';
4
4
  import '../errors/index.mjs';
5
+ import '../eventStore-CdmvM2NC.mjs';
5
6
  import '../typing/index.mjs';
6
7
  import '../typing/deepReadonly.mjs';
@@ -1,6 +1,7 @@
1
1
  export { ArgumentMatcher, AssertionError, MockedFunction, argMatches, argValue, assertDeepEqual, assertEqual, assertFails, assertFalse, assertIsNotNull, assertIsNull, assertMatches, assertNotEqual, assertOk, assertThat, assertThatArray, assertThrows, assertTrue, isSubset, verifyThat } from './assertions.js';
2
2
  export { DeciderSpecfication, DeciderSpecification, ThenThrows } from './deciderSpecification.js';
3
- export { DiscountApplied, PricedProductItem, ProductItemAdded, ShoppingCart, ShoppingCartEvent, evolve, evolveWithMetadata, initialState } from './shoppingCart.domain.js';
3
+ export { TestEventStream, WrapEventStore } from './wrapEventStore.js';
4
4
  import '../errors/index.js';
5
+ import '../eventStore-BovqZT1r.js';
5
6
  import '../typing/index.js';
6
7
  import '../typing/deepReadonly.js';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-BNCTLP4B.js');var _chunk7JNETS5Jjs = require('../chunk-7JNETS5J.js');var _chunk7BR3VBVDjs = require('../chunk-7BR3VBVD.js');var _chunkWQKN6JXBjs = require('../chunk-WQKN6JXB.js');require('../chunk-6IATZUYD.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-PVFUNWT6.js');require('../chunk-ZLASBJGR.js');require('../chunk-MHB2JU4U.js');require('../chunk-7FJXUW3D.js');require('../chunk-5BGN2FV4.js');require('../chunk-KQAFRLJ2.js');require('../chunk-UFUSYJWU.js');require('../chunk-E7KI3V22.js');exports.AssertionError = _chunkWQKN6JXBjs.a; exports.DeciderSpecification = _chunk7JNETS5Jjs.a; exports.argMatches = _chunkWQKN6JXBjs.p; exports.argValue = _chunkWQKN6JXBjs.o; exports.assertDeepEqual = _chunkWQKN6JXBjs.f; exports.assertEqual = _chunkWQKN6JXBjs.k; exports.assertFails = _chunkWQKN6JXBjs.c; exports.assertFalse = _chunkWQKN6JXBjs.h; exports.assertIsNotNull = _chunkWQKN6JXBjs.m; exports.assertIsNull = _chunkWQKN6JXBjs.n; exports.assertMatches = _chunkWQKN6JXBjs.e; exports.assertNotEqual = _chunkWQKN6JXBjs.l; exports.assertOk = _chunkWQKN6JXBjs.j; exports.assertThat = _chunkWQKN6JXBjs.g; exports.assertThatArray = _chunkWQKN6JXBjs.r; exports.assertThrows = _chunkWQKN6JXBjs.d; exports.assertTrue = _chunkWQKN6JXBjs.i; exports.evolve = _chunk7BR3VBVDjs.a; exports.evolveWithMetadata = _chunk7BR3VBVDjs.b; exports.initialState = _chunk7BR3VBVDjs.c; exports.isSubset = _chunkWQKN6JXBjs.b; exports.verifyThat = _chunkWQKN6JXBjs.q;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-BNCTLP4B.js');var _chunkTNX525X5js = require('../chunk-TNX525X5.js');var _chunkOIDX2JMHjs = require('../chunk-OIDX2JMH.js');var _chunkVCCKNYOYjs = require('../chunk-VCCKNYOY.js');require('../chunk-6IATZUYD.js');require('../chunk-PVFUNWT6.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-ZLASBJGR.js');require('../chunk-MHB2JU4U.js');require('../chunk-7FJXUW3D.js');require('../chunk-5BGN2FV4.js');require('../chunk-KQAFRLJ2.js');require('../chunk-UFUSYJWU.js');require('../chunk-E7KI3V22.js');exports.AssertionError = _chunkVCCKNYOYjs.a; exports.DeciderSpecification = _chunkOIDX2JMHjs.a; exports.WrapEventStore = _chunkTNX525X5js.a; exports.argMatches = _chunkVCCKNYOYjs.p; exports.argValue = _chunkVCCKNYOYjs.o; exports.assertDeepEqual = _chunkVCCKNYOYjs.f; exports.assertEqual = _chunkVCCKNYOYjs.k; exports.assertFails = _chunkVCCKNYOYjs.c; exports.assertFalse = _chunkVCCKNYOYjs.h; exports.assertIsNotNull = _chunkVCCKNYOYjs.m; exports.assertIsNull = _chunkVCCKNYOYjs.n; exports.assertMatches = _chunkVCCKNYOYjs.e; exports.assertNotEqual = _chunkVCCKNYOYjs.l; exports.assertOk = _chunkVCCKNYOYjs.j; exports.assertThat = _chunkVCCKNYOYjs.g; exports.assertThatArray = _chunkVCCKNYOYjs.r; exports.assertThrows = _chunkVCCKNYOYjs.d; exports.assertTrue = _chunkVCCKNYOYjs.i; exports.isSubset = _chunkVCCKNYOYjs.b; exports.verifyThat = _chunkVCCKNYOYjs.q;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import"../chunk-AHXBZPOE.mjs";import{a as s}from"../chunk-NBYRSAVT.mjs";import{a as t,b as u,c as v}from"../chunk-WB5PNUKG.mjs";import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r}from"../chunk-OLRYVGRO.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-YWRV75GA.mjs";import"../chunk-JDYZZRJE.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-DOHUIBZQ.mjs";import"../chunk-YGYVF7JI.mjs";import"../chunk-GNUOGYD6.mjs";import"../chunk-KLLSLLHN.mjs";export{a as AssertionError,s as DeciderSpecification,p as argMatches,o as argValue,f as assertDeepEqual,k as assertEqual,c as assertFails,h as assertFalse,m as assertIsNotNull,n as assertIsNull,e as assertMatches,l as assertNotEqual,j as assertOk,g as assertThat,r as assertThatArray,d as assertThrows,i as assertTrue,t as evolve,u as evolveWithMetadata,v as initialState,b as isSubset,q as verifyThat};
1
+ import"../chunk-AHXBZPOE.mjs";import{a as t}from"../chunk-N6X7QWHP.mjs";import{a as s}from"../chunk-EYIJ7ZKY.mjs";import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r}from"../chunk-ZFBWMZ55.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-YWRV75GA.mjs";import"../chunk-JDYZZRJE.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-DOHUIBZQ.mjs";import"../chunk-YGYVF7JI.mjs";import"../chunk-GNUOGYD6.mjs";import"../chunk-KLLSLLHN.mjs";export{a as AssertionError,s as DeciderSpecification,t as WrapEventStore,p as argMatches,o as argValue,f as assertDeepEqual,k as assertEqual,c as assertFails,h as assertFalse,m as assertIsNotNull,n as assertIsNull,e as assertMatches,l as assertNotEqual,j as assertOk,g as assertThat,r as assertThatArray,d as assertThrows,i as assertTrue,b as isSubset,q as verifyThat};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,19 @@
1
+ import { E as EventStore, d as AppendToStreamResult } from '../eventStore-CdmvM2NC.mjs';
2
+ import { Event } from '../typing/index.mjs';
3
+ import '../errors/index.mjs';
4
+ import '../typing/deepReadonly.mjs';
5
+
6
+ type TestEventStream<EventType extends Event = Event> = [
7
+ string,
8
+ EventType[]
9
+ ];
10
+ declare const WrapEventStore: <StreamVersion = bigint>(eventStore: EventStore<StreamVersion>) => EventStore<StreamVersion, Readonly<{
11
+ eventId: string;
12
+ streamPosition: bigint;
13
+ streamName: string;
14
+ }>> & {
15
+ appendedEvents: Map<string, TestEventStream>;
16
+ setup<EventType extends Event>(streamName: string, events: EventType[]): Promise<AppendToStreamResult<StreamVersion>>;
17
+ };
18
+
19
+ export { type TestEventStream, WrapEventStore };
@@ -0,0 +1,19 @@
1
+ import { E as EventStore, d as AppendToStreamResult } from '../eventStore-BovqZT1r.js';
2
+ import { Event } from '../typing/index.js';
3
+ import '../errors/index.js';
4
+ import '../typing/deepReadonly.js';
5
+
6
+ type TestEventStream<EventType extends Event = Event> = [
7
+ string,
8
+ EventType[]
9
+ ];
10
+ declare const WrapEventStore: <StreamVersion = bigint>(eventStore: EventStore<StreamVersion>) => EventStore<StreamVersion, Readonly<{
11
+ eventId: string;
12
+ streamPosition: bigint;
13
+ streamName: string;
14
+ }>> & {
15
+ appendedEvents: Map<string, TestEventStream>;
16
+ setup<EventType extends Event>(streamName: string, events: EventType[]): Promise<AppendToStreamResult<StreamVersion>>;
17
+ };
18
+
19
+ export { type TestEventStream, WrapEventStore };
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTNX525X5js = require('../chunk-TNX525X5.js');require('../chunk-ZLASBJGR.js');require('../chunk-MHB2JU4U.js');require('../chunk-7FJXUW3D.js');require('../chunk-5BGN2FV4.js');require('../chunk-KQAFRLJ2.js');require('../chunk-UFUSYJWU.js');exports.WrapEventStore = _chunkTNX525X5js.a;
2
+ //# sourceMappingURL=wrapEventStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{a}from"../chunk-N6X7QWHP.mjs";import"../chunk-YWRV75GA.mjs";import"../chunk-JDYZZRJE.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-DOHUIBZQ.mjs";import"../chunk-YGYVF7JI.mjs";import"../chunk-GNUOGYD6.mjs";export{a as WrapEventStore};
2
+ //# sourceMappingURL=wrapEventStore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk6IATZUYDjs = require('../chunk-6IATZUYD.js');var _chunkFE73T2NSjs = require('../chunk-FE73T2NS.js');var _chunk3JE5DUJ2js = require('../chunk-3JE5DUJ2.js');var _chunkPVFUNWT6js = require('../chunk-PVFUNWT6.js');exports.deepEquals = _chunkPVFUNWT6js.a; exports.default = _chunk6IATZUYDjs.a; exports.isEquatable = _chunkPVFUNWT6js.b; exports.merge = _chunk3JE5DUJ2js.a; exports.sum = _chunkFE73T2NSjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk6IATZUYDjs = require('../chunk-6IATZUYD.js');var _chunkPVFUNWT6js = require('../chunk-PVFUNWT6.js');var _chunkFE73T2NSjs = require('../chunk-FE73T2NS.js');var _chunk3JE5DUJ2js = require('../chunk-3JE5DUJ2.js');exports.deepEquals = _chunkPVFUNWT6js.a; exports.default = _chunk6IATZUYDjs.a; exports.isEquatable = _chunkPVFUNWT6js.b; exports.merge = _chunk3JE5DUJ2js.a; exports.sum = _chunkFE73T2NSjs.a;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import{a as e}from"../chunk-3DH3DSMC.mjs";import{a as c}from"../chunk-OBA6MZMG.mjs";import{a as d}from"../chunk-YKFEDBH4.mjs";import{a,b}from"../chunk-B7NWWHCY.mjs";export{a as deepEquals,e as default,b as isEquatable,d as merge,c as sum};
1
+ import{a as e}from"../chunk-3DH3DSMC.mjs";import{a,b}from"../chunk-B7NWWHCY.mjs";import{a as c}from"../chunk-OBA6MZMG.mjs";import{a as d}from"../chunk-YKFEDBH4.mjs";export{a as deepEquals,e as default,b as isEquatable,d as merge,c as sum};
2
2
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@event-driven-io/emmett",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Emmett - Event Sourcing development made simple",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/testing/assertions.ts"],"sourcesContent":["import type { DefaultRecord } from '../typing';\nimport { deepEquals } from '../utils';\n\nexport class AssertionError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\nexport const isSubset = (superObj: unknown, subObj: unknown): boolean => {\n const sup = superObj as DefaultRecord;\n const sub = subObj as DefaultRecord;\n\n return Object.keys(sub).every((ele: string) => {\n if (typeof sub[ele] == 'object') {\n return isSubset(sup[ele], sub[ele]);\n }\n return sub[ele] === sup[ele];\n });\n};\n\nexport const assertFails = () => {\n throw new AssertionError('That should not ever happened, right?');\n};\n\nexport const assertThrows = (\n fun: () => void,\n errorCheck?: (error: Error) => boolean,\n) => {\n try {\n fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n if (errorCheck) assertTrue(errorCheck(error as Error));\n }\n};\n\nexport const assertMatches = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!isSubset(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSON.stringify(expected)}\\nis not subset of\\n${JSON.stringify(actual)}`,\n );\n};\n\nexport const assertDeepEqual = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!deepEquals(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSON.stringify(expected)}\\nis equals to\\n${JSON.stringify(actual)}`,\n );\n};\n\nexport const assertThat = <T>(item: T) => {\n return {\n isEqualTo: (other: T) => assertTrue(deepEquals(item, other)),\n };\n};\n\nexport function assertFalse(\n condition: boolean,\n message?: string,\n): asserts condition is false {\n if (condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertTrue(\n condition: boolean,\n message?: string,\n): asserts condition is true {\n if (!condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertOk<T>(\n obj: T | null | undefined,\n message?: string,\n): asserts obj is T {\n if (!obj) throw new AssertionError(message ?? `Condition is not truthy`);\n}\n\nexport function assertEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj !== other)\n throw new AssertionError(\n message ??\n `Objects are not equal:\\n ${JSON.stringify(obj)}\\ncompared:\\n${JSON.stringify(other)}`,\n );\n}\n\nexport function assertNotEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj === other)\n throw new AssertionError(\n message ?? `Objects are equal: ${JSON.stringify(obj)}`,\n );\n}\n\nexport function assertIsNotNull<T extends object>(\n result: T | null,\n): asserts result is T {\n assertNotEqual(result, null);\n assertOk(result);\n}\n\nexport function assertIsNull<T extends object>(\n result: T | null,\n): asserts result is null {\n assertEqual(result, null);\n}\n\ntype Call = {\n arguments: unknown[];\n result: unknown;\n target: unknown;\n this: unknown;\n};\n\nexport type ArgumentMatcher = (arg: unknown) => boolean;\n\nexport const argValue =\n <T>(value: T): ArgumentMatcher =>\n (arg) =>\n deepEquals(arg, value);\n\nexport const argMatches =\n <T>(matches: (arg: T) => boolean): ArgumentMatcher =>\n (arg) =>\n matches(arg as T);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MockedFunction = Function & { mock?: { calls: Call[] } };\n\nexport function verifyThat(fn: MockedFunction) {\n return {\n calledTimes: (times: number) => {\n assertEqual(fn.mock?.calls?.length, times);\n },\n notCalled: () => {\n assertEqual(fn?.mock?.calls?.length, 0);\n },\n called: () => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length > 0,\n );\n },\n calledWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledOnceWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length === 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length >= 1,\n );\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some(\n (call) =>\n call.arguments &&\n call.arguments.length >= matches.length &&\n matches.every((match, index) => match(call.arguments[index])),\n ),\n );\n },\n notCalledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertFalse(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls[0]!.arguments &&\n fn.mock.calls[0]!.arguments.length >= matches.length &&\n matches.every((match, index) =>\n match(fn.mock!.calls[0]!.arguments[index]),\n ),\n );\n },\n };\n}\n\nexport const assertThatArray = <T>(array: T[]) => {\n return {\n isEmpty: () => assertEqual(array.length, 0),\n hasSize: (length: number) => assertEqual(array.length, length),\n containsElements: (...other: T[]) => {\n assertTrue(other.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrder: (...other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrderElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n for (let i = 0; i < array.length; i++) {\n assertTrue(deepEquals(array[i], other[i]));\n }\n },\n containsExactly: (elem: T) => {\n assertEqual(array.length, 1);\n assertTrue(deepEquals(array[0], elem));\n },\n contains: (elem: T) => {\n assertTrue(array.some((a) => deepEquals(a, elem)));\n },\n containsOnlyOnceElementsOf: (other: T[]) => {\n assertTrue(\n other\n .map((o) => array.filter((a) => deepEquals(a, o)).length)\n .filter((a) => a === 1).length === other.length,\n );\n },\n containsAnyOf: (...other: T[]) => {\n assertTrue(array.some((a) => other.some((o) => deepEquals(a, o))));\n },\n allMatch: (matches: (item: T) => boolean) => {\n assertTrue(array.every(matches));\n },\n anyMatches: (matches: (item: T) => boolean) => {\n assertTrue(array.some(matches));\n },\n allMatchAsync: async (\n matches: (item: T) => Promise<boolean>,\n ): Promise<void> => {\n for (const item of array) {\n assertTrue(await matches(item));\n }\n },\n };\n};\n"],"mappings":"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","names":["AssertionError","message","isSubset","superObj","subObj","sup","sub","ele","assertFails","assertThrows","fun","errorCheck","error","assertTrue","assertMatches","actual","expected","assertDeepEqual","deepEquals","assertThat","item","other","assertFalse","condition","assertOk","obj","assertEqual","assertNotEqual","assertIsNotNull","result","assertIsNull","argValue","value","arg","argMatches","matches","verifyThat","fn","times","args","call","match","index","assertThatArray","array","length","ts","o","i","elem","a"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/testing/assertions.ts"],"names":["AssertionError","message","isSubset","superObj","subObj","sup","sub","ele","assertFails","assertThrows","fun","errorCheck","error","assertTrue","assertMatches","actual","expected","assertDeepEqual","deepEquals","assertThat","item","other","assertFalse","condition","assertOk","obj","assertEqual","assertNotEqual","assertIsNotNull","result","assertIsNull","argValue","value","arg","argMatches","matches","verifyThat","fn","times","args","call","match","index","assertThatArray","array","length","ts","o","i","elem","a"],"mappings":"wCAGO,IAAMA,EAAN,cAA6B,KAAM,CACxC,YAAYC,EAAiB,CAC3B,MAAMA,CAAO,CACf,CACF,EACaC,EAAW,CAACC,EAAmBC,IAA6B,CACvE,IAAMC,EAAMF,EACNG,EAAMF,EAEZ,OAAO,OAAO,KAAKE,CAAG,EAAE,MAAOC,GACzB,OAAOD,EAAIC,CAAG,GAAK,SACdL,EAASG,EAAIE,CAAG,EAAGD,EAAIC,CAAG,CAAC,EAE7BD,EAAIC,CAAG,IAAMF,EAAIE,CAAG,CAC5B,CACH,EAEaC,EAAc,IAAM,CAC/B,MAAM,IAAIR,EAAe,uCAAuC,CAClE,EAEaS,EAAe,CAC1BC,EACAC,IACG,CACH,GAAI,CACF,MAAAD,EAAI,EACE,IAAIV,EAAe,sCAAsC,CACjE,OAASY,EAAO,CACVD,GAAYE,EAAWF,EAAWC,CAAc,CAAC,CACvD,CACF,EAEaE,EAAgB,CAC3BC,EACAC,EACAf,IACG,CACH,GAAI,CAACC,EAASa,EAAQC,CAAQ,EAC5B,MAAM,IAAIhB,EACRC,GACE;AAAA,EAAY,KAAK,UAAUe,CAAQ,CAAC;AAAA;AAAA,EAAuB,KAAK,UAAUD,CAAM,CAAC,EACrF,CACJ,EAEaE,EAAkB,CAC7BF,EACAC,EACAf,IACG,CACH,GAAI,CAACiB,EAAWH,EAAQC,CAAQ,EAC9B,MAAM,IAAIhB,EACRC,GACE;AAAA,EAAY,KAAK,UAAUe,CAAQ,CAAC;AAAA;AAAA,EAAmB,KAAK,UAAUD,CAAM,CAAC,EACjF,CACJ,EAEaI,EAAiBC,IACrB,CACL,UAAYC,GAAaR,EAAWK,EAAWE,EAAMC,CAAK,CAAC,CAC7D,GAGK,SAASC,EACdC,EACAtB,EAC4B,CAC5B,GAAIsB,EAAW,MAAM,IAAIvB,EAAeC,GAAW,oBAAoB,CACzE,CAEO,SAASY,EACdU,EACAtB,EAC2B,CAC3B,GAAI,CAACsB,EAAW,MAAM,IAAIvB,EAAeC,GAAW,oBAAoB,CAC1E,CAEO,SAASuB,EACdC,EACAxB,EACkB,CAClB,GAAI,CAACwB,EAAK,MAAM,IAAIzB,EAAeC,GAAW,yBAAyB,CACzE,CAEO,SAASyB,EACdD,EACAJ,EACApB,EACM,CACN,GAAIwB,IAAQJ,EACV,MAAM,IAAIrB,EACRC,GACE;AAAA,GAA4B,KAAK,UAAUwB,CAAG,CAAC;AAAA;AAAA,EAAgB,KAAK,UAAUJ,CAAK,CAAC,EACxF,CACJ,CAEO,SAASM,EACdF,EACAJ,EACApB,EACM,CACN,GAAIwB,IAAQJ,EACV,MAAM,IAAIrB,EACRC,GAAW,sBAAsB,KAAK,UAAUwB,CAAG,CAAC,EACtD,CACJ,CAEO,SAASG,EACdC,EACqB,CACrBF,EAAeE,EAAQ,IAAI,EAC3BL,EAASK,CAAM,CACjB,CAEO,SAASC,EACdD,EACwB,CACxBH,EAAYG,EAAQ,IAAI,CAC1B,CAWO,IAAME,EACPC,GACHC,GACCf,EAAWe,EAAKD,CAAK,EAEZE,EACPC,GACHF,GACCE,EAAQF,CAAQ,EAKb,SAASG,EAAWC,EAAoB,CAC7C,MAAO,CACL,YAAcC,GAAkB,CAC9BZ,EAAYW,EAAG,MAAM,OAAO,OAAQC,CAAK,CAC3C,EACA,UAAW,IAAM,CACfZ,EAAYW,GAAI,MAAM,OAAO,OAAQ,CAAC,CACxC,EACA,OAAQ,IAAM,CACZxB,EACEwB,EAAG,MAAM,MAAM,SAAW,QAAaA,EAAG,KAAK,MAAM,OAAS,CAChE,CACF,EACA,WAAY,IAAIE,IAAoB,CAClC1B,EACEwB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,KAAMG,GAAStB,EAAWsB,EAAK,UAAWD,CAAI,CAAC,CACjE,CACF,EACA,eAAgB,IAAIA,IAAoB,CACtC1B,EACEwB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,SAAW,GACzBA,EAAG,KAAK,MAAM,KAAMG,GAAStB,EAAWsB,EAAK,UAAWD,CAAI,CAAC,CACjE,CACF,EACA,2BAA4B,IAAIJ,IAA+B,CAC7DtB,EACEwB,EAAG,MAAM,MAAM,SAAW,QAAaA,EAAG,KAAK,MAAM,QAAU,CACjE,EACAxB,EACEwB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,KACXG,GACCA,EAAK,WACLA,EAAK,UAAU,QAAUL,EAAQ,QACjCA,EAAQ,MAAM,CAACM,EAAOC,IAAUD,EAAMD,EAAK,UAAUE,CAAK,CAAC,CAAC,CAChE,CACJ,CACF,EACA,8BAA+B,IAAIP,IAA+B,CAChEb,EACEe,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,CAAC,EAAG,WAClBA,EAAG,KAAK,MAAM,CAAC,EAAG,UAAU,QAAUF,EAAQ,QAC9CA,EAAQ,MAAM,CAACM,EAAOC,IACpBD,EAAMJ,EAAG,KAAM,MAAM,CAAC,EAAG,UAAUK,CAAK,CAAC,CAC3C,CACJ,CACF,CACF,CACF,CAEO,IAAMC,EAAsBC,IAC1B,CACL,QAAS,IAAMlB,EAAYkB,EAAM,OAAQ,CAAC,EAC1C,QAAUC,GAAmBnB,EAAYkB,EAAM,OAAQC,CAAM,EAC7D,iBAAkB,IAAIxB,IAAe,CACnCR,EAAWQ,EAAM,MAAOyB,GAAOzB,EAAM,KAAM0B,GAAM7B,EAAW4B,EAAIC,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,0BAA2B,IAAI1B,IAAe,CAC5CK,EAAYkB,EAAM,OAAQvB,EAAM,MAAM,EACtCR,EAAW+B,EAAM,MAAOE,GAAOzB,EAAM,KAAM0B,GAAM7B,EAAW4B,EAAIC,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,oCAAsC1B,GAAe,CACnDK,EAAYkB,EAAM,OAAQvB,EAAM,MAAM,EACtCR,EAAW+B,EAAM,MAAOE,GAAOzB,EAAM,KAAM0B,GAAM7B,EAAW4B,EAAIC,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,0BAA4B1B,GAAe,CACzCK,EAAYkB,EAAM,OAAQvB,EAAM,MAAM,EACtC,QAAS2B,EAAI,EAAGA,EAAIJ,EAAM,OAAQI,IAChCnC,EAAWK,EAAW0B,EAAMI,CAAC,EAAG3B,EAAM2B,CAAC,CAAC,CAAC,CAE7C,EACA,gBAAkBC,GAAY,CAC5BvB,EAAYkB,EAAM,OAAQ,CAAC,EAC3B/B,EAAWK,EAAW0B,EAAM,CAAC,EAAGK,CAAI,CAAC,CACvC,EACA,SAAWA,GAAY,CACrBpC,EAAW+B,EAAM,KAAMM,GAAMhC,EAAWgC,EAAGD,CAAI,CAAC,CAAC,CACnD,EACA,2BAA6B5B,GAAe,CAC1CR,EACEQ,EACG,IAAK0B,GAAMH,EAAM,OAAQM,GAAMhC,EAAWgC,EAAGH,CAAC,CAAC,EAAE,MAAM,EACvD,OAAQG,GAAMA,IAAM,CAAC,EAAE,SAAW7B,EAAM,MAC7C,CACF,EACA,cAAe,IAAIA,IAAe,CAChCR,EAAW+B,EAAM,KAAMM,GAAM7B,EAAM,KAAM0B,GAAM7B,EAAWgC,EAAGH,CAAC,CAAC,CAAC,CAAC,CACnE,EACA,SAAWZ,GAAkC,CAC3CtB,EAAW+B,EAAM,MAAMT,CAAO,CAAC,CACjC,EACA,WAAaA,GAAkC,CAC7CtB,EAAW+B,EAAM,KAAKT,CAAO,CAAC,CAChC,EACA,cAAe,MACbA,GACkB,CAClB,QAAWf,KAAQwB,EACjB/B,EAAW,MAAMsB,EAAQf,CAAI,CAAC,CAElC,CACF","sourcesContent":["import type { DefaultRecord } from '../typing';\nimport { deepEquals } from '../utils';\n\nexport class AssertionError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\nexport const isSubset = (superObj: unknown, subObj: unknown): boolean => {\n const sup = superObj as DefaultRecord;\n const sub = subObj as DefaultRecord;\n\n return Object.keys(sub).every((ele: string) => {\n if (typeof sub[ele] == 'object') {\n return isSubset(sup[ele], sub[ele]);\n }\n return sub[ele] === sup[ele];\n });\n};\n\nexport const assertFails = () => {\n throw new AssertionError('That should not ever happened, right?');\n};\n\nexport const assertThrows = (\n fun: () => void,\n errorCheck?: (error: Error) => boolean,\n) => {\n try {\n fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n if (errorCheck) assertTrue(errorCheck(error as Error));\n }\n};\n\nexport const assertMatches = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!isSubset(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSON.stringify(expected)}\\nis not subset of\\n${JSON.stringify(actual)}`,\n );\n};\n\nexport const assertDeepEqual = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!deepEquals(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSON.stringify(expected)}\\nis equals to\\n${JSON.stringify(actual)}`,\n );\n};\n\nexport const assertThat = <T>(item: T) => {\n return {\n isEqualTo: (other: T) => assertTrue(deepEquals(item, other)),\n };\n};\n\nexport function assertFalse(\n condition: boolean,\n message?: string,\n): asserts condition is false {\n if (condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertTrue(\n condition: boolean,\n message?: string,\n): asserts condition is true {\n if (!condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertOk<T>(\n obj: T | null | undefined,\n message?: string,\n): asserts obj is T {\n if (!obj) throw new AssertionError(message ?? `Condition is not truthy`);\n}\n\nexport function assertEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj !== other)\n throw new AssertionError(\n message ??\n `Objects are not equal:\\n ${JSON.stringify(obj)}\\ncompared:\\n${JSON.stringify(other)}`,\n );\n}\n\nexport function assertNotEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj === other)\n throw new AssertionError(\n message ?? `Objects are equal: ${JSON.stringify(obj)}`,\n );\n}\n\nexport function assertIsNotNull<T extends object>(\n result: T | null,\n): asserts result is T {\n assertNotEqual(result, null);\n assertOk(result);\n}\n\nexport function assertIsNull<T extends object>(\n result: T | null,\n): asserts result is null {\n assertEqual(result, null);\n}\n\ntype Call = {\n arguments: unknown[];\n result: unknown;\n target: unknown;\n this: unknown;\n};\n\nexport type ArgumentMatcher = (arg: unknown) => boolean;\n\nexport const argValue =\n <T>(value: T): ArgumentMatcher =>\n (arg) =>\n deepEquals(arg, value);\n\nexport const argMatches =\n <T>(matches: (arg: T) => boolean): ArgumentMatcher =>\n (arg) =>\n matches(arg as T);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MockedFunction = Function & { mock?: { calls: Call[] } };\n\nexport function verifyThat(fn: MockedFunction) {\n return {\n calledTimes: (times: number) => {\n assertEqual(fn.mock?.calls?.length, times);\n },\n notCalled: () => {\n assertEqual(fn?.mock?.calls?.length, 0);\n },\n called: () => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length > 0,\n );\n },\n calledWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledOnceWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length === 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length >= 1,\n );\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some(\n (call) =>\n call.arguments &&\n call.arguments.length >= matches.length &&\n matches.every((match, index) => match(call.arguments[index])),\n ),\n );\n },\n notCalledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertFalse(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls[0]!.arguments &&\n fn.mock.calls[0]!.arguments.length >= matches.length &&\n matches.every((match, index) =>\n match(fn.mock!.calls[0]!.arguments[index]),\n ),\n );\n },\n };\n}\n\nexport const assertThatArray = <T>(array: T[]) => {\n return {\n isEmpty: () => assertEqual(array.length, 0),\n hasSize: (length: number) => assertEqual(array.length, length),\n containsElements: (...other: T[]) => {\n assertTrue(other.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrder: (...other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrderElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n for (let i = 0; i < array.length; i++) {\n assertTrue(deepEquals(array[i], other[i]));\n }\n },\n containsExactly: (elem: T) => {\n assertEqual(array.length, 1);\n assertTrue(deepEquals(array[0], elem));\n },\n contains: (elem: T) => {\n assertTrue(array.some((a) => deepEquals(a, elem)));\n },\n containsOnlyOnceElementsOf: (other: T[]) => {\n assertTrue(\n other\n .map((o) => array.filter((a) => deepEquals(a, o)).length)\n .filter((a) => a === 1).length === other.length,\n );\n },\n containsAnyOf: (...other: T[]) => {\n assertTrue(array.some((a) => other.some((o) => deepEquals(a, o))));\n },\n allMatch: (matches: (item: T) => boolean) => {\n assertTrue(array.every(matches));\n },\n anyMatches: (matches: (item: T) => boolean) => {\n assertTrue(array.some(matches));\n },\n allMatchAsync: async (\n matches: (item: T) => Promise<boolean>,\n ): Promise<void> => {\n for (const item of array) {\n assertTrue(await matches(item));\n }\n },\n };\n};\n"]}