@event-driven-io/emmett 0.20.1-alpha.1 → 0.20.1-alpha.2

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.
package/dist/index.d.cts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { C as ConcurrencyError, E as ErrorConstructor } from './index-D9zse73H.cjs';
2
2
  export { f as EmmettCliPlugin, d as EmmettCliPluginRegistration, j as EmmettError, g as EmmettPlugin, b as EmmettPluginConfig, e as EmmettPluginRegistration, c as EmmettPluginType, a as EmmettPluginsConfig, I as IllegalStateError, N as NotFoundError, V as ValidationError, h as isErrorConstructor, i as isPluginConfig } from './index-D9zse73H.cjs';
3
3
  import retry from 'async-retry';
4
- import streams, { ReadableStream } from '@event-driven-io/emmett-shims';
5
4
  import * as web_streams_polyfill from 'web-streams-polyfill';
5
+ import { TransformStream, ReadableStream } from 'web-streams-polyfill';
6
6
  import 'commander';
7
7
 
8
8
  type Primitive = undefined | null | boolean | string | number | bigint | symbol | Function;
@@ -213,7 +213,7 @@ declare const InMemoryEventStoreDefaultStreamVersion = 0n;
213
213
  declare const getInMemoryEventStore: () => EventStore<DefaultStreamVersionType, ReadEventMetadataWithGlobalPosition>;
214
214
 
215
215
  declare const streamTrackingGlobalPosition: (currentEvents: ReadEvent<Event, ReadEventMetadataWithGlobalPosition>[]) => CaughtUpTransformStream;
216
- declare class CaughtUpTransformStream extends streams.TransformStream<ReadEvent<Event, ReadEventMetadataWithGlobalPosition>, ReadEvent<Event, ReadEventMetadataWithGlobalPosition> | GlobalSubscriptionEvent> {
216
+ declare class CaughtUpTransformStream extends TransformStream<ReadEvent<Event, ReadEventMetadataWithGlobalPosition>, ReadEvent<Event, ReadEventMetadataWithGlobalPosition> | GlobalSubscriptionEvent> {
217
217
  private _currentPosition;
218
218
  private _logPosition;
219
219
  constructor(events: ReadEvent<Event, ReadEventMetadataWithGlobalPosition>[]);
@@ -411,7 +411,7 @@ declare const streamGenerators: {
411
411
 
412
412
  declare const restream: <Source = unknown, Transformed = Source, StreamType = Source>(createSourceStream: () => ReadableStream<StreamType>, transform?: (input: Source) => Transformed, retryOptions?: AsyncRetryOptions, decoder?: Decoder<StreamType, Source>) => ReadableStream<Transformed>;
413
413
 
414
- declare class NotifyAboutNoActiveReadersStream<Item> extends streams.TransformStream<Item, Item> {
414
+ declare class NotifyAboutNoActiveReadersStream<Item> extends TransformStream<Item, Item> {
415
415
  private onNoActiveReaderCallback;
416
416
  private checkInterval;
417
417
  readonly streamId: string;
@@ -426,19 +426,19 @@ declare class NotifyAboutNoActiveReadersStream<Item> extends streams.TransformSt
426
426
  private checkNoActiveReader;
427
427
  }
428
428
 
429
- declare class ReduceTransformStream<I, O> extends streams.TransformStream<I, O> {
429
+ declare class ReduceTransformStream<I, O> extends TransformStream<I, O> {
430
430
  private accumulator;
431
431
  private reducer;
432
432
  constructor(reducer: (accumulator: O, chunk: I) => O, initialValue: O);
433
433
  }
434
434
 
435
- declare class SkipTransformStream<T> extends streams.TransformStream<T, T> {
435
+ declare class SkipTransformStream<T> extends TransformStream<T, T> {
436
436
  private count;
437
437
  private skip;
438
438
  constructor(skip: number);
439
439
  }
440
440
 
441
- declare class TakeTransformStream<T> extends streams.TransformStream<T, T> {
441
+ declare class TakeTransformStream<T> extends TransformStream<T, T> {
442
442
  private count;
443
443
  private limit;
444
444
  constructor(limit: number);
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { C as ConcurrencyError, E as ErrorConstructor } from './index-D9zse73H.js';
2
2
  export { f as EmmettCliPlugin, d as EmmettCliPluginRegistration, j as EmmettError, g as EmmettPlugin, b as EmmettPluginConfig, e as EmmettPluginRegistration, c as EmmettPluginType, a as EmmettPluginsConfig, I as IllegalStateError, N as NotFoundError, V as ValidationError, h as isErrorConstructor, i as isPluginConfig } from './index-D9zse73H.js';
3
3
  import retry from 'async-retry';
4
- import streams, { ReadableStream } from '@event-driven-io/emmett-shims';
5
4
  import * as web_streams_polyfill from 'web-streams-polyfill';
5
+ import { TransformStream, ReadableStream } from 'web-streams-polyfill';
6
6
  import 'commander';
7
7
 
8
8
  type Primitive = undefined | null | boolean | string | number | bigint | symbol | Function;
@@ -213,7 +213,7 @@ declare const InMemoryEventStoreDefaultStreamVersion = 0n;
213
213
  declare const getInMemoryEventStore: () => EventStore<DefaultStreamVersionType, ReadEventMetadataWithGlobalPosition>;
214
214
 
215
215
  declare const streamTrackingGlobalPosition: (currentEvents: ReadEvent<Event, ReadEventMetadataWithGlobalPosition>[]) => CaughtUpTransformStream;
216
- declare class CaughtUpTransformStream extends streams.TransformStream<ReadEvent<Event, ReadEventMetadataWithGlobalPosition>, ReadEvent<Event, ReadEventMetadataWithGlobalPosition> | GlobalSubscriptionEvent> {
216
+ declare class CaughtUpTransformStream extends TransformStream<ReadEvent<Event, ReadEventMetadataWithGlobalPosition>, ReadEvent<Event, ReadEventMetadataWithGlobalPosition> | GlobalSubscriptionEvent> {
217
217
  private _currentPosition;
218
218
  private _logPosition;
219
219
  constructor(events: ReadEvent<Event, ReadEventMetadataWithGlobalPosition>[]);
@@ -411,7 +411,7 @@ declare const streamGenerators: {
411
411
 
412
412
  declare const restream: <Source = unknown, Transformed = Source, StreamType = Source>(createSourceStream: () => ReadableStream<StreamType>, transform?: (input: Source) => Transformed, retryOptions?: AsyncRetryOptions, decoder?: Decoder<StreamType, Source>) => ReadableStream<Transformed>;
413
413
 
414
- declare class NotifyAboutNoActiveReadersStream<Item> extends streams.TransformStream<Item, Item> {
414
+ declare class NotifyAboutNoActiveReadersStream<Item> extends TransformStream<Item, Item> {
415
415
  private onNoActiveReaderCallback;
416
416
  private checkInterval;
417
417
  readonly streamId: string;
@@ -426,19 +426,19 @@ declare class NotifyAboutNoActiveReadersStream<Item> extends streams.TransformSt
426
426
  private checkNoActiveReader;
427
427
  }
428
428
 
429
- declare class ReduceTransformStream<I, O> extends streams.TransformStream<I, O> {
429
+ declare class ReduceTransformStream<I, O> extends TransformStream<I, O> {
430
430
  private accumulator;
431
431
  private reducer;
432
432
  constructor(reducer: (accumulator: O, chunk: I) => O, initialValue: O);
433
433
  }
434
434
 
435
- declare class SkipTransformStream<T> extends streams.TransformStream<T, T> {
435
+ declare class SkipTransformStream<T> extends TransformStream<T, T> {
436
436
  private count;
437
437
  private skip;
438
438
  constructor(skip: number);
439
439
  }
440
440
 
441
- declare class TakeTransformStream<T> extends streams.TransformStream<T, T> {
441
+ declare class TakeTransformStream<T> extends TransformStream<T, T> {
442
442
  private count;
443
443
  private limit;
444
444
  constructor(limit: number);
package/dist/index.js CHANGED
@@ -1,17 +1,17 @@
1
- import{a as Ue,b as $e,c as Je,d as Ke,e as Xe,f as Le,g as Ye,h as ze,i as Qe,j as K,k as H,l as X,m as Ze,n as et,o as tt,p as rt}from"./chunk-6TXKRKDJ.js";var L=t=>"withSession"in t,Y=t=>({withSession:e=>e({eventStore:t,close:()=>Promise.resolve()})});var ot=(t,e,r)=>({type:t,data:e,metadata:r});var z=(t,e,r)=>({type:t,data:e,metadata:r});var it=t=>({kind:"Reply",message:t}),mt=t=>({kind:"Send",message:t}),dt=t=>({kind:"Publish",message:t}),pt=(t,e)=>({kind:"Schedule",message:t,when:e}),lt=()=>({kind:"Complete"}),ct=t=>({kind:"Ignore",reason:t}),ut=t=>({kind:"Error",reason:t}),ft=()=>({kind:"Accept"});var j="__emt:GlobalStreamCaughtUp",Q=t=>t.type===j,Ct=t=>e=>e.type===j&&e.metadata?.globalPosition>=t,F=t=>z(j,t,{globalPosition:t.globalPosition}),Rt=t=>Q(t),bt=t=>!Q(t);var he="STREAM_EXISTS",N="STREAM_DOES_NOT_EXIST",O="NO_CONCURRENCY_CHECK",Ce=(t,e,r)=>e===O?!0:e==N?t===r:e==he?t!==r:t===e,W=(t,e,r)=>{if(e??=O,!Ce(t,e,r))throw new D(t,e)},D=class t extends X{constructor(e,r){super(e?.toString(),r?.toString()),Object.setPrototypeOf(this,t.prototype)}},Z=t=>t instanceof D;import{v4 as Ve}from"uuid";import{ReadableStream as Re,TransformStream as be,WritableStream as De}from"web-streams-polyfill";var Oe={ReadableStream:Re,WritableStream:De,TransformStream:be};var Vt=typeof process<"u"&&process.versions!=null&&process.versions.bun!=null,_;globalThis&&globalThis.WritableStream&&globalThis.ReadableStream&&globalThis.TransformStream?_=globalThis:_=Oe;var s=_;var ee=t=>new G(t),G=class extends s.TransformStream{_currentPosition;_logPosition;constructor(e){super({start:r=>{let n=0n;for(let o of e)r.enqueue(o),n=o.metadata.globalPosition;r.enqueue(F({globalPosition:n}))},transform:(r,n)=>{this._currentPosition=r.metadata.globalPosition,n.enqueue(r),!(this._currentPosition<this._logPosition)&&n.enqueue(F({globalPosition:this._currentPosition}))}}),this._currentPosition=this._logPosition=e.length>0?e[e.length-1].metadata.globalPosition:0n}set logPosition(e){this._logPosition=e}};import{v4 as Me}from"uuid";import{v4 as we}from"uuid";var w=(t,e={})=>new E(t,e),E=class extends s.TransformStream{constructor(r,n={}){super({cancel:o=>{console.log("Stream was canceled. Reason:",o),this.stopChecking()}});this.onNoActiveReaderCallback=r;this.streamId=n?.streamId??we(),this.onNoActiveReaderCallback=r,this.startChecking(n?.intervalCheckInMs??20)}checkInterval=null;streamId;_isStopped=!1;get hasActiveSubscribers(){return!this._isStopped}startChecking(r){this.checkInterval=setInterval(()=>{this.checkNoActiveReader()},r)}stopChecking(){this.checkInterval&&(clearInterval(this.checkInterval),this.checkInterval=null,this._isStopped=!0,this.onNoActiveReaderCallback(this))}checkNoActiveReader(){!this.readable.locked&&!this._isStopped&&this.stopChecking()}};var te=async(t,e)=>{if(t.writable.locked)return!1;let r=t.writable.getWriter();if(await r.ready,!t.readable.locked)return!1;try{for(let n of e)await r.write(n)}catch(n){console.log(n)}finally{await r.close()}return!0};var re=()=>{let t=[],e=new Map;return{notify:async r=>{if(r.length!==0){t.push(...r);for(let n of e.values())n.logPosition=r[r.length-1].metadata.globalPosition,await te(n,r)}},stream:()=>{let r=Me(),n=ee(t);return e.set(r,n),n.readable.pipeThrough(w(o=>{e.has(o.streamId)&&e.delete(o.streamId)},{streamId:r}))}}};var x=0n,or=()=>{let t=new Map,e=re(),r=()=>Array.from(t.values()).map(n=>n.length).reduce((n,o)=>n+o,0);return{async aggregateStream(n,o){let{evolve:a,initialState:m,read:d}=o,c=await this.readStream(n,d),v=c?.events??[];return{currentStreamVersion:BigInt(v.length),state:v.reduce(a,m()),streamExists:c.streamExists}},readStream:(n,o)=>{let a=t.get(n),m=a?BigInt(a.length):x;W(m,o?.expectedStreamVersion,x);let d=Number(o&&"from"in o?o.from:0),c=Number(o&&"to"in o?o.to:o&&"maxCount"in o&&o.maxCount?o.from+o.maxCount:a?.length??1),v=a!==void 0&&a.length>0?a.map(y=>y).slice(d,c):[],T={currentStreamVersion:m,events:v,streamExists:a!==void 0&&a.length>0};return Promise.resolve(T)},appendToStream:async(n,o,a)=>{let m=t.get(n)??[],d=m.length>0?BigInt(m.length):x;W(d,a?.expectedStreamVersion,x);let c=o.map((y,S)=>({...y,metadata:{...y.metadata??{},streamName:n,eventId:Ve(),streamPosition:BigInt(m.length+S+1),globalPosition:BigInt(r()+S+1)}})),v=BigInt(c.slice(-1)[0].metadata.streamPosition);return t.set(n,[...m,...c]),await e.notify(c),{nextExpectedStreamVersion:v,createdNewStream:d===x}}}};var p=(t,e)=>{if(Pe(t))return t.equals(e);if(Array.isArray(t))return Array.isArray(e)&&t.length===e.length&&t.every((o,a)=>p(o,e[a]));if(typeof t!="object"||typeof e!="object"||t===null||e===null)return t===e;if(Array.isArray(e))return!1;let r=Object.keys(t),n=Object.keys(e);if(r.length!==n.length||!r.every(o=>n.includes(o)))return!1;for(let o in t){if(t[o]instanceof Function&&e[o]instanceof Function)continue;if(!p(t[o],e[o]))return!1}return!0},Pe=t=>t&&typeof t=="object"&&"equals"in t&&typeof t.equals=="function";var ur=t=>{let e,r,n=0;do({value:e,done:r}=t.next()),n+=e||0;while(!r);return n};var yr=(t,e,r,n,o=()=>{})=>{let a=!1,m=t.map(d=>r(d)?(a=!0,n(d)):d).filter(d=>d!==void 0).map(d=>{if(!d)throw Error("That should not happen");return d});return!a&&o()!==void 0?[...t,e]:m};import ke from"async-retry";var ne={retries:0},M=async(t,e)=>e===void 0||e.retries===0?t():ke(async r=>{try{return await t()}catch(n){throw e?.shouldRetryError&&!e.shouldRetryError(n)&&r(n),n}},e??{retries:0});var oe={retries:3,minTimeout:100,factor:1.5,shouldRetryError:Z},Ae=t=>t===void 0?ne:"onVersionConflict"in t?typeof t.onVersionConflict=="boolean"?oe:typeof t.onVersionConflict=="number"?{...oe,retries:t.onVersionConflict}:t.onVersionConflict:t,ae=t=>async(e,r,n,o)=>M(async()=>await Ie(e,async({eventStore:m})=>{let{evolve:d,initialState:c}=t,T=(t.mapToStreamId??(ge=>ge))(r),y=await m.aggregateStream(T,{evolve:d,initialState:c,read:{expectedStreamVersion:o?.expectedStreamVersion??O}}),S=y.state,J=y.currentStreamVersion,I=await n(S),b=Array.isArray(I)?I:[I];if(b.length===0)return{newEvents:[],newState:S,nextExpectedStreamVersion:J,createdNewStream:!1};let xe=o?.expectedStreamVersion??(y.streamExists?J:N);return{...await m.appendToStream(T,b,{...o,expectedStreamVersion:xe}),newEvents:b,newState:b.reduce(d,S)}}),Ae(o&&"retry"in o?o.retry:t.retry)),Ie=(t,e)=>(L(t)?t:Y(t)).withSession(e);var wr=t=>async(e,r,n,o)=>{let{decide:a,...m}=t;return ae(m)(e,r,d=>a(n,d),o)};var Hr=()=>{let t=new Map,e=[];return{send:async r=>{let n=t.get(r.type);if(n===void 0||n.length===0)throw new H(`No handler registered for command ${r.type}!`);let o=n[0];await o(r)},publish:async r=>{let n=t.get(r.type)??[];for(let o of n)await o(r)},schedule:(r,n)=>{e=[...e,{message:r,options:n}]},handle:(r,...n)=>{let o=[...t.keys()].filter(a=>n.includes(a));if(o.length>0)throw new H(`Cannot register handler for commands ${o.join(", ")} as they're already registered!`);for(let a of n)t.set(a,[r])},subscribe(r,...n){for(let o of n)t.has(o)||t.set(o,[]),t.set(o,[...t.get(o)??[],r])},dequeue:()=>{let r=e;return e=[],r}}};var Fr=t=>t,He=t=>t.map(e=>({type:"inline",projection:e})),je=t=>t.map(e=>({type:"async",projection:e})),Nr={inline:He,async:je};var q=class extends Error{constructor(e){super(`Cannot parse! ${e}`)}},u={stringify:(t,e)=>JSON.stringify(e?.map?e.map(t):t,(r,n)=>typeof n=="bigint"?n.toString():n),parse:(t,e)=>{let r=JSON.parse(t,e?.reviver);if(e?.typeCheck&&!e?.typeCheck(r))throw new q(t);return e?.map?e.map(r):r}};var B=t=>{let e=t.reduce((o,a)=>o+a.length,0),r=new Uint8Array(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return r};var Jr=async t=>{let e=[];for await(let r of t)e.push(r);return e};var V=class{buffer=[];addToBuffer(e){this.buffer.push(e)}clearBuffer(){this.buffer=[]}hasCompleteMessage(){let e=B(this.buffer);return new TextDecoder().decode(e).includes(`
2
- `)}decode(){if(!this.hasCompleteMessage())return null;let e=B(this.buffer),r=new TextDecoder().decode(e),n=r.indexOf(`
3
- `);if(n===-1)return null;let o=r.slice(0,n),a=new Uint8Array(e.buffer,n+1);return this.buffer=a.byteLength>0?[a]:[],JSON.parse(o)}};var P=class{constructor(e){this.transform=e;this.transform=e}buffer=[];addToBuffer(e){this.buffer.push(e)}clearBuffer(){this.buffer=[]}hasCompleteMessage(){return this.buffer.some(e=>e.includes(`
1
+ import{a as Ye,b as ze,c as Qe,d as Ze,e as et,f as tt,g as rt,h as nt,i as ot,j as $,k as I,l as J,m as at,n as st,o as it,p as mt}from"./chunk-6TXKRKDJ.js";var K=t=>"withSession"in t,X=t=>({withSession:e=>e({eventStore:t,close:()=>Promise.resolve()})});var pt=(t,e,r)=>({type:t,data:e,metadata:r});var L=(t,e,r)=>({type:t,data:e,metadata:r});var ut=t=>({kind:"Reply",message:t}),ft=t=>({kind:"Send",message:t}),yt=t=>({kind:"Publish",message:t}),vt=(t,e)=>({kind:"Schedule",message:t,when:e}),Et=()=>({kind:"Complete"}),St=t=>({kind:"Ignore",reason:t}),Tt=t=>({kind:"Error",reason:t}),xt=()=>({kind:"Accept"});var H="__emt:GlobalStreamCaughtUp",Y=t=>t.type===H,Mt=t=>e=>e.type===H&&e.metadata?.globalPosition>=t,j=t=>L(H,t,{globalPosition:t.globalPosition}),Vt=t=>Y(t),Pt=t=>!Y(t);var xe="STREAM_EXISTS",F="STREAM_DOES_NOT_EXIST",D="NO_CONCURRENCY_CHECK",ge=(t,e,r)=>e===D?!0:e==F?t===r:e==xe?t!==r:t===e,N=(t,e,r)=>{if(e??=D,!ge(t,e,r))throw new b(t,e)},b=class t extends J{constructor(e,r){super(e?.toString(),r?.toString()),Object.setPrototypeOf(this,t.prototype)}},z=t=>t instanceof b;import{v4 as De}from"uuid";import{TransformStream as he}from"web-streams-polyfill";var Q=t=>new _(t),_=class extends he{_currentPosition;_logPosition;constructor(e){super({start:r=>{let n=0n;for(let o of e)r.enqueue(o),n=o.metadata.globalPosition;r.enqueue(j({globalPosition:n}))},transform:(r,n)=>{this._currentPosition=r.metadata.globalPosition,n.enqueue(r),!(this._currentPosition<this._logPosition)&&n.enqueue(j({globalPosition:this._currentPosition}))}}),this._currentPosition=this._logPosition=e.length>0?e[e.length-1].metadata.globalPosition:0n}set logPosition(e){this._logPosition=e}};import{v4 as be}from"uuid";import{v4 as Ce}from"uuid";import{TransformStream as Re}from"web-streams-polyfill";var O=(t,e={})=>new S(t,e),S=class extends Re{constructor(r,n={}){super({cancel:o=>{console.log("Stream was canceled. Reason:",o),this.stopChecking()}});this.onNoActiveReaderCallback=r;this.streamId=n?.streamId??Ce(),this.onNoActiveReaderCallback=r,this.startChecking(n?.intervalCheckInMs??20)}checkInterval=null;streamId;_isStopped=!1;get hasActiveSubscribers(){return!this._isStopped}startChecking(r){this.checkInterval=setInterval(()=>{this.checkNoActiveReader()},r)}stopChecking(){this.checkInterval&&(clearInterval(this.checkInterval),this.checkInterval=null,this._isStopped=!0,this.onNoActiveReaderCallback(this))}checkNoActiveReader(){!this.readable.locked&&!this._isStopped&&this.stopChecking()}};var Z=async(t,e)=>{if(t.writable.locked)return!1;let r=t.writable.getWriter();if(await r.ready,!t.readable.locked)return!1;try{for(let n of e)await r.write(n)}catch(n){console.log(n)}finally{await r.close()}return!0};var ee=()=>{let t=[],e=new Map;return{notify:async r=>{if(r.length!==0){t.push(...r);for(let n of e.values())n.logPosition=r[r.length-1].metadata.globalPosition,await Z(n,r)}},stream:()=>{let r=be(),n=Q(t);return e.set(r,n),n.readable.pipeThrough(O(o=>{e.has(o.streamId)&&e.delete(o.streamId)},{streamId:r}))}}};var T=0n,ir=()=>{let t=new Map,e=ee(),r=()=>Array.from(t.values()).map(n=>n.length).reduce((n,o)=>n+o,0);return{async aggregateStream(n,o){let{evolve:a,initialState:i,read:m}=o,l=await this.readStream(n,m),y=l?.events??[];return{currentStreamVersion:BigInt(y.length),state:y.reduce(a,i()),streamExists:l.streamExists}},readStream:(n,o)=>{let a=t.get(n),i=a?BigInt(a.length):T;N(i,o?.expectedStreamVersion,T);let m=Number(o&&"from"in o?o.from:0),l=Number(o&&"to"in o?o.to:o&&"maxCount"in o&&o.maxCount?o.from+o.maxCount:a?.length??1),y=a!==void 0&&a.length>0?a.map(f=>f).slice(m,l):[],E={currentStreamVersion:i,events:y,streamExists:a!==void 0&&a.length>0};return Promise.resolve(E)},appendToStream:async(n,o,a)=>{let i=t.get(n)??[],m=i.length>0?BigInt(i.length):T;N(m,a?.expectedStreamVersion,T);let l=o.map((f,v)=>({...f,metadata:{...f.metadata??{},streamName:n,eventId:De(),streamPosition:BigInt(i.length+v+1),globalPosition:BigInt(r()+v+1)}})),y=BigInt(l.slice(-1)[0].metadata.streamPosition);return t.set(n,[...i,...l]),await e.notify(l),{nextExpectedStreamVersion:y,createdNewStream:m===T}}}};var d=(t,e)=>{if(Oe(t))return t.equals(e);if(Array.isArray(t))return Array.isArray(e)&&t.length===e.length&&t.every((o,a)=>d(o,e[a]));if(typeof t!="object"||typeof e!="object"||t===null||e===null)return t===e;if(Array.isArray(e))return!1;let r=Object.keys(t),n=Object.keys(e);if(r.length!==n.length||!r.every(o=>n.includes(o)))return!1;for(let o in t){if(t[o]instanceof Function&&e[o]instanceof Function)continue;if(!d(t[o],e[o]))return!1}return!0},Oe=t=>t&&typeof t=="object"&&"equals"in t&&typeof t.equals=="function";var vr=t=>{let e,r,n=0;do({value:e,done:r}=t.next()),n+=e||0;while(!r);return n};var Sr=(t,e,r,n,o=()=>{})=>{let a=!1,i=t.map(m=>r(m)?(a=!0,n(m)):m).filter(m=>m!==void 0).map(m=>{if(!m)throw Error("That should not happen");return m});return!a&&o()!==void 0?[...t,e]:i};import we from"async-retry";var te={retries:0},w=async(t,e)=>e===void 0||e.retries===0?t():we(async r=>{try{return await t()}catch(n){throw e?.shouldRetryError&&!e.shouldRetryError(n)&&r(n),n}},e??{retries:0});var re={retries:3,minTimeout:100,factor:1.5,shouldRetryError:z},Me=t=>t===void 0?te:"onVersionConflict"in t?typeof t.onVersionConflict=="boolean"?re:typeof t.onVersionConflict=="number"?{...re,retries:t.onVersionConflict}:t.onVersionConflict:t,ne=t=>async(e,r,n,o)=>w(async()=>await Ve(e,async({eventStore:i})=>{let{evolve:m,initialState:l}=t,E=(t.mapToStreamId??(Te=>Te))(r),f=await i.aggregateStream(E,{evolve:m,initialState:l,read:{expectedStreamVersion:o?.expectedStreamVersion??D}}),v=f.state,B=f.currentStreamVersion,A=await n(v),R=Array.isArray(A)?A:[A];if(R.length===0)return{newEvents:[],newState:v,nextExpectedStreamVersion:B,createdNewStream:!1};let Se=o?.expectedStreamVersion??(f.streamExists?B:F);return{...await i.appendToStream(E,R,{...o,expectedStreamVersion:Se}),newEvents:R,newState:R.reduce(m,v)}}),Me(o&&"retry"in o?o.retry:t.retry)),Ve=(t,e)=>(K(t)?t:X(t)).withSession(e);var Pr=t=>async(e,r,n,o)=>{let{decide:a,...i}=t;return ne(i)(e,r,m=>a(n,m),o)};var Nr=()=>{let t=new Map,e=[];return{send:async r=>{let n=t.get(r.type);if(n===void 0||n.length===0)throw new I(`No handler registered for command ${r.type}!`);let o=n[0];await o(r)},publish:async r=>{let n=t.get(r.type)??[];for(let o of n)await o(r)},schedule:(r,n)=>{e=[...e,{message:r,options:n}]},handle:(r,...n)=>{let o=[...t.keys()].filter(a=>n.includes(a));if(o.length>0)throw new I(`Cannot register handler for commands ${o.join(", ")} as they're already registered!`);for(let a of n)t.set(a,[r])},subscribe(r,...n){for(let o of n)t.has(o)||t.set(o,[]),t.set(o,[...t.get(o)??[],r])},dequeue:()=>{let r=e;return e=[],r}}};var Wr=t=>t,Pe=t=>t.map(e=>({type:"inline",projection:e})),ke=t=>t.map(e=>({type:"async",projection:e})),Gr={inline:Pe,async:ke};var W=class extends Error{constructor(e){super(`Cannot parse! ${e}`)}},c={stringify:(t,e)=>JSON.stringify(e?.map?e.map(t):t,(r,n)=>typeof n=="bigint"?n.toString():n),parse:(t,e)=>{let r=JSON.parse(t,e?.reviver);if(e?.typeCheck&&!e?.typeCheck(r))throw new W(t);return e?.map?e.map(r):r}};var G=t=>{let e=t.reduce((o,a)=>o+a.length,0),r=new Uint8Array(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return r};var Lr=async t=>{let e=[];for await(let r of t)e.push(r);return e};var M=class{buffer=[];addToBuffer(e){this.buffer.push(e)}clearBuffer(){this.buffer=[]}hasCompleteMessage(){let e=G(this.buffer);return new TextDecoder().decode(e).includes(`
2
+ `)}decode(){if(!this.hasCompleteMessage())return null;let e=G(this.buffer),r=new TextDecoder().decode(e),n=r.indexOf(`
3
+ `);if(n===-1)return null;let o=r.slice(0,n),a=new Uint8Array(e.buffer,n+1);return this.buffer=a.byteLength>0?[a]:[],JSON.parse(o)}};var V=class{constructor(e){this.transform=e;this.transform=e}buffer=[];addToBuffer(e){this.buffer.push(e)}clearBuffer(){this.buffer=[]}hasCompleteMessage(){return this.buffer.some(e=>e.includes(`
4
4
  `))}decode(){let e=this.buffer.join("");if(!this.hasCompleteMessage()){if(e.trim().length>0)throw new Error("Unterminated string in JSON at position");return null}let r=e.indexOf(`
5
- `),n=e.slice(0,r).trim();return this.buffer=[e.slice(r+1)],this.transform(n)}};var k=class extends P{constructor(){super(e=>JSON.parse(e))}};var A=class{buffer=null;addToBuffer(e){this.buffer=e}clearBuffer(){this.buffer=null}hasCompleteMessage(){return this.buffer!==null}decode(){if(!this.hasCompleteMessage()||!this.buffer)return null;let e=this.buffer;return this.clearBuffer(),e}};var U=class{constructor(e){this.decoders=e}decoderFor(e){let r=this.decoders.find(n=>n[0](e));return r?r[1]:null}addToBuffer(e){this.decoderFor(e)?.addToBuffer(e)}clearBuffer(){for(let e of this.decoders.map(r=>r[1]))e.clearBuffer()}hasCompleteMessage(){return this.decoders.some(e=>e[1].hasCompleteMessage())}decode(){return this.decoders.map(r=>r[1]).find(r=>r.hasCompleteMessage())?.decode()??null}},g=class extends U{constructor(){super([[e=>typeof e=="string",new k],[e=>e instanceof Uint8Array,new V],[e=>typeof e=="object",new A]])}};var se=t=>new s.ReadableStream({start(e){for(let r of t)e.enqueue(r);e.close()}});var fn={fromArray:se};var ie=t=>new s.TransformStream({transform(e,r){t(e)&&r.enqueue(e)}});var me=t=>new s.TransformStream({transform(e,r){r.enqueue(t(e))}});var de=(t,e)=>new h(t,e),h=class extends s.TransformStream{accumulator;reducer;constructor(e,r){super({transform:n=>{this.accumulator=this.reducer(this.accumulator,n)},flush:n=>{n.enqueue(this.accumulator),n.terminate()}}),this.accumulator=r,this.reducer=e}};var pe=(t,e,r={forever:!0,minTimeout:25})=>new s.TransformStream({start(n){M(()=>Fe(t,e,n),r).catch(o=>{n.error(o)})}}),Fe=async(t,e,r)=>{let o=t().getReader();try{let a;do{let m=await o.read();a=m.done,await e(m,r),a&&r.terminate()}while(!a)}finally{o.releaseLock()}};var le=t=>new C(t),C=class extends s.TransformStream{count=0;skip;constructor(e){super({transform:(r,n)=>{this.count++,this.count>this.skip&&n.enqueue(r)}}),this.skip=e}};var ce=t=>new s.TransformStream({transform(e,r){r.enqueue(e),t(e)&&r.terminate()}});var ue=t=>new s.TransformStream({async transform(e,r){if(!t(e)){r.enqueue(e);return}await Promise.resolve(),r.terminate()}});var fe=t=>new R(t),R=class extends s.TransformStream{count=0;limit;constructor(e){super({transform:(r,n)=>{this.count<this.limit?(this.count++,n.enqueue(r)):n.terminate()}}),this.limit=e}};var ye=t=>new s.TransformStream({start(e){let r=setTimeout(()=>{e.terminate()},t),n=e.terminate.bind(e);e.terminate=()=>{clearTimeout(r),n()}},transform(e,r){r.enqueue(e)}});var ve={filter:ie,take:fe,TakeTransformStream:R,skip:le,SkipTransformStream:C,map:me,notifyAboutNoActiveReadersStream:w,NotifyAboutNoActiveReadersStream:E,reduce:de,ReduceTransformStream:h,retry:pe,stopAfter:ce,stopOn:ue,waitAtMost:ye};var{retry:Ne}=ve,Ln=(t,e=o=>o,r={forever:!0,minTimeout:25},n=new g)=>Ne(t,We(e,n),r).readable,We=(t=r=>r,e=new g)=>(r,n)=>{let{done:o,value:a}=r;a&&e.addToBuffer(a),!(!o&&!e.hasCompleteMessage())&&_e(e,t,n)},_e=(t,e,r)=>{try{let n=t.decode();if(!n)return;let o=e(n);r.enqueue(o)}catch(n){r.error(new Error(`Decoding error: ${n?.toString()}`))}};var l=class extends Error{constructor(e){super(e)}},Se=(t,e)=>{let r=t,n=e;return $(r),$(n),Object.keys(n).every(o=>typeof n[o]=="object"?Se(r[o],n[o]):n[o]===r[o])},so=t=>{throw new l(t??"That should not ever happened, right?")},io=async(t,e)=>{try{throw await t(),new l("Function didn't throw expected error")}catch(r){let n=r;return e&&i(e(n)),n}},mo=(t,e)=>{try{throw t(),new l("Function didn't throw expected error")}catch(r){let n=r;return e&&i(e(n)),n}},po=async(t,e)=>{try{throw await t,new l("Function didn't throw expected error")}catch(r){if(!e)return;e instanceof Error?Ge(r,e):i(e(r))}},Te=(t,e,r)=>{if(!Se(t,e))throw new l(r??`subObj:
6
- ${u.stringify(e)}
5
+ `),n=e.slice(0,r).trim();return this.buffer=[e.slice(r+1)],this.transform(n)}};var P=class extends V{constructor(){super(e=>JSON.parse(e))}};var k=class{buffer=null;addToBuffer(e){this.buffer=e}clearBuffer(){this.buffer=null}hasCompleteMessage(){return this.buffer!==null}decode(){if(!this.hasCompleteMessage()||!this.buffer)return null;let e=this.buffer;return this.clearBuffer(),e}};var q=class{constructor(e){this.decoders=e}decoderFor(e){let r=this.decoders.find(n=>n[0](e));return r?r[1]:null}addToBuffer(e){this.decoderFor(e)?.addToBuffer(e)}clearBuffer(){for(let e of this.decoders.map(r=>r[1]))e.clearBuffer()}hasCompleteMessage(){return this.decoders.some(e=>e[1].hasCompleteMessage())}decode(){return this.decoders.map(r=>r[1]).find(r=>r.hasCompleteMessage())?.decode()??null}},x=class extends q{constructor(){super([[e=>typeof e=="string",new P],[e=>e instanceof Uint8Array,new M],[e=>typeof e=="object",new k]])}};import{ReadableStream as Ae}from"web-streams-polyfill";var oe=t=>new Ae({start(e){for(let r of t)e.enqueue(r);e.close()}});var En={fromArray:oe};import"web-streams-polyfill";import{TransformStream as Ie}from"web-streams-polyfill";var ae=t=>new Ie({transform(e,r){t(e)&&r.enqueue(e)}});import{TransformStream as He}from"web-streams-polyfill";var se=t=>new He({transform(e,r){r.enqueue(t(e))}});import{TransformStream as je}from"web-streams-polyfill";var ie=(t,e)=>new g(t,e),g=class extends je{accumulator;reducer;constructor(e,r){super({transform:n=>{this.accumulator=this.reducer(this.accumulator,n)},flush:n=>{n.enqueue(this.accumulator),n.terminate()}}),this.accumulator=r,this.reducer=e}};import{TransformStream as Fe}from"web-streams-polyfill";var me=(t,e,r={forever:!0,minTimeout:25})=>new Fe({start(n){w(()=>Ne(t,e,n),r).catch(o=>{n.error(o)})}}),Ne=async(t,e,r)=>{let o=t().getReader();try{let a;do{let i=await o.read();a=i.done,await e(i,r),a&&r.terminate()}while(!a)}finally{o.releaseLock()}};import{TransformStream as _e}from"web-streams-polyfill";var de=t=>new h(t),h=class extends _e{count=0;skip;constructor(e){super({transform:(r,n)=>{this.count++,this.count>this.skip&&n.enqueue(r)}}),this.skip=e}};import{TransformStream as We}from"web-streams-polyfill";var pe=t=>new We({transform(e,r){r.enqueue(e),t(e)&&r.terminate()}});import{TransformStream as Ge}from"web-streams-polyfill";var le=t=>new Ge({async transform(e,r){if(!t(e)){r.enqueue(e);return}await Promise.resolve(),r.terminate()}});import{TransformStream as qe}from"web-streams-polyfill";var ce=t=>new C(t),C=class extends qe{count=0;limit;constructor(e){super({transform:(r,n)=>{this.count<this.limit?(this.count++,n.enqueue(r)):n.terminate()}}),this.limit=e}};import{TransformStream as Ue}from"web-streams-polyfill";var ue=t=>new Ue({start(e){let r=setTimeout(()=>{e.terminate()},t),n=e.terminate.bind(e);e.terminate=()=>{clearTimeout(r),n()}},transform(e,r){r.enqueue(e)}});var fe={filter:ae,take:ce,TakeTransformStream:C,skip:de,SkipTransformStream:h,map:se,notifyAboutNoActiveReadersStream:O,NotifyAboutNoActiveReadersStream:S,reduce:ie,ReduceTransformStream:g,retry:me,stopAfter:pe,stopOn:le,waitAtMost:ue};var{retry:Be}=fe,Qn=(t,e=o=>o,r={forever:!0,minTimeout:25},n=new x)=>Be(t,$e(e,n),r).readable,$e=(t=r=>r,e=new x)=>(r,n)=>{let{done:o,value:a}=r;a&&e.addToBuffer(a),!(!o&&!e.hasCompleteMessage())&&Je(e,t,n)},Je=(t,e,r)=>{try{let n=t.decode();if(!n)return;let o=e(n);r.enqueue(o)}catch(n){r.error(new Error(`Decoding error: ${n?.toString()}`))}};var p=class extends Error{constructor(e){super(e)}},ye=(t,e)=>{let r=t,n=e;return U(r),U(n),Object.keys(n).every(o=>typeof n[o]=="object"?ye(r[o],n[o]):n[o]===r[o])},po=t=>{throw new p(t??"That should not ever happened, right?")},lo=async(t,e)=>{try{throw await t(),new p("Function didn't throw expected error")}catch(r){let n=r;return e&&s(e(n)),n}},co=(t,e)=>{try{throw t(),new p("Function didn't throw expected error")}catch(r){let n=r;return e&&s(e(n)),n}},uo=async(t,e)=>{try{throw await t,new p("Function didn't throw expected error")}catch(r){if(!e)return;e instanceof Error?Ke(r,e):s(e(r))}},ve=(t,e,r)=>{if(!ye(t,e))throw new p(r??`subObj:
6
+ ${c.stringify(e)}
7
7
  is not subset of
8
- ${u.stringify(t)}`)},Ge=(t,e,r)=>{if(!p(t,e))throw new l(r??`subObj:
9
- ${u.stringify(e)}
8
+ ${c.stringify(t)}`)},Ke=(t,e,r)=>{if(!d(t,e))throw new p(r??`subObj:
9
+ ${c.stringify(e)}
10
10
  is not equal to
11
- ${u.stringify(t)}`)},lo=(t,e,r)=>{if(p(t,e))throw new l(r??`subObj:
12
- ${u.stringify(e)}
11
+ ${c.stringify(t)}`)},fo=(t,e,r)=>{if(d(t,e))throw new p(r??`subObj:
12
+ ${c.stringify(e)}
13
13
  is equals to
14
- ${u.stringify(t)}`)},co=t=>({isEqualTo:e=>i(p(t,e))});function qe(t,e){if(t)throw new l(e??"Condition is false")}function i(t,e){if(!t)throw new l(e??"Condition is false")}function $(t,e){if(!t)throw new l(e??"Condition is not truthy")}function f(t,e,r){if(t!==e)throw new l(`${r??"Objects are not equal"}:
15
- Expected: ${u.stringify(t)}
16
- Actual:${u.stringify(e)}`)}function Ee(t,e,r){if(t===e)throw new l(r??`Objects are equal: ${u.stringify(t)}`)}function uo(t){Ee(t,null),$(t)}function fo(t){f(t,null)}var yo=t=>e=>p(e,t),vo=t=>e=>t(e);function So(t){return{calledTimes:e=>{f(t.mock?.calls?.length,e)},notCalled:()=>{f(t?.mock?.calls?.length,0)},called:()=>{i(t.mock?.calls.length!==void 0&&t.mock.calls.length>0)},calledWith:(...e)=>{i(t.mock?.calls.length!==void 0&&t.mock.calls.length>=1&&t.mock.calls.some(r=>p(r.arguments,e)))},calledOnceWith:(...e)=>{i(t.mock?.calls.length!==void 0&&t.mock.calls.length===1&&t.mock.calls.some(r=>p(r.arguments,e)))},calledWithArgumentMatching:(...e)=>{i(t.mock?.calls.length!==void 0&&t.mock.calls.length>=1),i(t.mock?.calls.length!==void 0&&t.mock.calls.length>=1&&t.mock.calls.some(r=>r.arguments&&r.arguments.length>=e.length&&e.every((n,o)=>n(r.arguments[o]))))},notCalledWithArgumentMatching:(...e)=>{qe(t.mock?.calls.length!==void 0&&t.mock.calls.length>=1&&t.mock.calls[0].arguments&&t.mock.calls[0].arguments.length>=e.length&&e.every((r,n)=>r(t.mock.calls[0].arguments[n])))}}}var To=t=>({isEmpty:()=>f(t.length,0),isNotEmpty:()=>Ee(t.length,0),hasSize:e=>f(t.length,e),containsElements:(...e)=>{i(e.every(r=>e.some(n=>p(r,n))))},containsExactlyInAnyOrder:(...e)=>{f(t.length,e.length),i(t.every(r=>e.some(n=>p(r,n))))},containsExactlyInAnyOrderElementsOf:e=>{f(t.length,e.length),i(t.every(r=>e.some(n=>p(r,n))))},containsExactlyElementsOf:e=>{f(t.length,e.length);for(let r=0;r<t.length;r++)i(p(t[r],e[r]))},containsExactly:e=>{f(t.length,1),i(p(t[0],e))},contains:e=>{i(t.some(r=>p(r,e)))},containsOnlyOnceElementsOf:e=>{i(e.map(r=>t.filter(n=>p(n,r)).length).filter(r=>r===1).length===e.length)},containsAnyOf:(...e)=>{i(t.some(r=>e.some(n=>p(r,n))))},allMatch:e=>{i(t.every(e))},anyMatches:e=>{i(t.some(e))},allMatchAsync:async e=>{for(let r of t)i(await e(r))}});var ho={for:t=>e=>({when:r=>{let n=()=>{let a=(Array.isArray(e)?e:[e]).reduce(t.evolve,t.initialState());return t.decide(r,a)};return{then:o=>{let a=n(),m=Array.isArray(a)?a:[a],d=Array.isArray(o)?o:[o];Te(m,d)},thenThrows:(...o)=>{try{throw n(),new l("Handler did not fail as expected")}catch(a){if(a instanceof l)throw a;if(o.length===0)return;if(!K(o[0])){i(o[0](a),`Error didn't match the error condition: ${a?.toString()}`);return}i(a instanceof o[0],`Caught error is not an instance of the expected type: ${a?.toString()}`),o[1]&&i(o[1](a),`Error didn't match the error condition: ${a?.toString()}`)}}}}})};var bo=t=>{let e=new Map;return{async aggregateStream(r,n){return t.aggregateStream(r,n)},readStream(r,n){return t.readStream(r,n)},appendToStream:async(r,n,o)=>{let a=await t.appendToStream(r,n,o),m=e.get(r)??[r,[]];return e.set(r,[r,[...m[1],...n]]),a},appendedEvents:e,setup:async(r,n)=>t.appendToStream(r,n)}};export{l as AssertionError,V as BinaryJsonDecoder,G as CaughtUpTransformStream,ae as CommandHandler,oe as CommandHandlerStreamVersionConflictRetryOptions,U as CompositeDecoder,X as ConcurrencyError,wr as DeciderCommandHandler,ho as DeciderSpecification,g as DefaultDecoder,H as EmmettError,D as ExpectedVersionConflictError,j as GlobalStreamCaughtUpType,et as IllegalStateError,x as InMemoryEventStoreDefaultStreamVersion,u as JSONParser,k as JsonDecoder,O as NO_CONCURRENCY_CHECK,ne as NoRetries,tt as NotFoundError,A as ObjectDecoder,q as ParseError,N as STREAM_DOES_NOT_EXIST,he as STREAM_EXISTS,re as StreamingCoordinator,P as StringDecoder,Ze as ValidationError,Ke as ValidationErrors,bo as WrapEventStore,ft as accept,vo as argMatches,yo as argValue,Ge as assertDeepEqual,f as assertEqual,W as assertExpectedVersionMatchesCurrent,so as assertFails,qe as assertFalse,uo as assertIsNotNull,fo as assertIsNull,Te as assertMatches,lo as assertNotDeepEqual,Ye as assertNotEmptyString,Ee as assertNotEqual,$ as assertOk,ze as assertPositiveNumber,po as assertRejects,co as assertThat,To as assertThatArray,mo as assertThrows,io as assertThrowsAsync,i as assertTrue,Qe as assertUnsignedBigInt,je as asyncProjections,M as asyncRetry,L as canCreateEventStoreSession,Ct as caughtUpEventFrom,Jr as collect,ot as command,lt as complete,B as concatUint8Arrays,p as deepEquals,ut as error,z as event,Ue as formatDateToUtcYYYYMMDD,or as getInMemoryEventStore,Hr as getInMemoryMessageBus,F as globalStreamCaughtUp,ct as ignore,He as inlineProjections,Pe as isEquatable,K as isErrorConstructor,Z as isExpectedVersionConflictError,Q as isGlobalStreamCaughtUp,bt as isNotInternalEvent,Xe as isNumber,rt as isPluginConfig,Le as isString,Rt as isSubscriptionEvent,Se as isSubset,$e as isValidYYYYMMDD,Ce as matchesExpectedVersion,yr as merge,Y as nulloSessionFactory,Je as parseDateFromUtcYYYYMMDD,Fr as projection,Nr as projections,dt as publish,it as reply,Ln as restream,pt as schedule,mt as send,fn as streamGenerators,ee as streamTrackingGlobalPosition,ve as streamTransformations,ur as sum,So as verifyThat};
14
+ ${c.stringify(t)}`)},yo=t=>({isEqualTo:e=>s(d(t,e))});function Xe(t,e){if(t)throw new p(e??"Condition is false")}function s(t,e){if(!t)throw new p(e??"Condition is false")}function U(t,e){if(!t)throw new p(e??"Condition is not truthy")}function u(t,e,r){if(t!==e)throw new p(`${r??"Objects are not equal"}:
15
+ Expected: ${c.stringify(t)}
16
+ Actual:${c.stringify(e)}`)}function Ee(t,e,r){if(t===e)throw new p(r??`Objects are equal: ${c.stringify(t)}`)}function vo(t){Ee(t,null),U(t)}function Eo(t){u(t,null)}var So=t=>e=>d(e,t),To=t=>e=>t(e);function xo(t){return{calledTimes:e=>{u(t.mock?.calls?.length,e)},notCalled:()=>{u(t?.mock?.calls?.length,0)},called:()=>{s(t.mock?.calls.length!==void 0&&t.mock.calls.length>0)},calledWith:(...e)=>{s(t.mock?.calls.length!==void 0&&t.mock.calls.length>=1&&t.mock.calls.some(r=>d(r.arguments,e)))},calledOnceWith:(...e)=>{s(t.mock?.calls.length!==void 0&&t.mock.calls.length===1&&t.mock.calls.some(r=>d(r.arguments,e)))},calledWithArgumentMatching:(...e)=>{s(t.mock?.calls.length!==void 0&&t.mock.calls.length>=1),s(t.mock?.calls.length!==void 0&&t.mock.calls.length>=1&&t.mock.calls.some(r=>r.arguments&&r.arguments.length>=e.length&&e.every((n,o)=>n(r.arguments[o]))))},notCalledWithArgumentMatching:(...e)=>{Xe(t.mock?.calls.length!==void 0&&t.mock.calls.length>=1&&t.mock.calls[0].arguments&&t.mock.calls[0].arguments.length>=e.length&&e.every((r,n)=>r(t.mock.calls[0].arguments[n])))}}}var go=t=>({isEmpty:()=>u(t.length,0),isNotEmpty:()=>Ee(t.length,0),hasSize:e=>u(t.length,e),containsElements:(...e)=>{s(e.every(r=>e.some(n=>d(r,n))))},containsExactlyInAnyOrder:(...e)=>{u(t.length,e.length),s(t.every(r=>e.some(n=>d(r,n))))},containsExactlyInAnyOrderElementsOf:e=>{u(t.length,e.length),s(t.every(r=>e.some(n=>d(r,n))))},containsExactlyElementsOf:e=>{u(t.length,e.length);for(let r=0;r<t.length;r++)s(d(t[r],e[r]))},containsExactly:e=>{u(t.length,1),s(d(t[0],e))},contains:e=>{s(t.some(r=>d(r,e)))},containsOnlyOnceElementsOf:e=>{s(e.map(r=>t.filter(n=>d(n,r)).length).filter(r=>r===1).length===e.length)},containsAnyOf:(...e)=>{s(t.some(r=>e.some(n=>d(r,n))))},allMatch:e=>{s(t.every(e))},anyMatches:e=>{s(t.some(e))},allMatchAsync:async e=>{for(let r of t)s(await e(r))}});var bo={for:t=>e=>({when:r=>{let n=()=>{let a=(Array.isArray(e)?e:[e]).reduce(t.evolve,t.initialState());return t.decide(r,a)};return{then:o=>{let a=n(),i=Array.isArray(a)?a:[a],m=Array.isArray(o)?o:[o];ve(i,m)},thenThrows:(...o)=>{try{throw n(),new p("Handler did not fail as expected")}catch(a){if(a instanceof p)throw a;if(o.length===0)return;if(!$(o[0])){s(o[0](a),`Error didn't match the error condition: ${a?.toString()}`);return}s(a instanceof o[0],`Caught error is not an instance of the expected type: ${a?.toString()}`),o[1]&&s(o[1](a),`Error didn't match the error condition: ${a?.toString()}`)}}}}})};var wo=t=>{let e=new Map;return{async aggregateStream(r,n){return t.aggregateStream(r,n)},readStream(r,n){return t.readStream(r,n)},appendToStream:async(r,n,o)=>{let a=await t.appendToStream(r,n,o),i=e.get(r)??[r,[]];return e.set(r,[r,[...i[1],...n]]),a},appendedEvents:e,setup:async(r,n)=>t.appendToStream(r,n)}};export{p as AssertionError,M as BinaryJsonDecoder,_ as CaughtUpTransformStream,ne as CommandHandler,re as CommandHandlerStreamVersionConflictRetryOptions,q as CompositeDecoder,J as ConcurrencyError,Pr as DeciderCommandHandler,bo as DeciderSpecification,x as DefaultDecoder,I as EmmettError,b as ExpectedVersionConflictError,H as GlobalStreamCaughtUpType,st as IllegalStateError,T as InMemoryEventStoreDefaultStreamVersion,c as JSONParser,P as JsonDecoder,D as NO_CONCURRENCY_CHECK,te as NoRetries,it as NotFoundError,k as ObjectDecoder,W as ParseError,F as STREAM_DOES_NOT_EXIST,xe as STREAM_EXISTS,ee as StreamingCoordinator,V as StringDecoder,at as ValidationError,Ze as ValidationErrors,wo as WrapEventStore,xt as accept,To as argMatches,So as argValue,Ke as assertDeepEqual,u as assertEqual,N as assertExpectedVersionMatchesCurrent,po as assertFails,Xe as assertFalse,vo as assertIsNotNull,Eo as assertIsNull,ve as assertMatches,fo as assertNotDeepEqual,rt as assertNotEmptyString,Ee as assertNotEqual,U as assertOk,nt as assertPositiveNumber,uo as assertRejects,yo as assertThat,go as assertThatArray,co as assertThrows,lo as assertThrowsAsync,s as assertTrue,ot as assertUnsignedBigInt,ke as asyncProjections,w as asyncRetry,K as canCreateEventStoreSession,Mt as caughtUpEventFrom,Lr as collect,pt as command,Et as complete,G as concatUint8Arrays,d as deepEquals,Tt as error,L as event,Ye as formatDateToUtcYYYYMMDD,ir as getInMemoryEventStore,Nr as getInMemoryMessageBus,j as globalStreamCaughtUp,St as ignore,Pe as inlineProjections,Oe as isEquatable,$ as isErrorConstructor,z as isExpectedVersionConflictError,Y as isGlobalStreamCaughtUp,Pt as isNotInternalEvent,et as isNumber,mt as isPluginConfig,tt as isString,Vt as isSubscriptionEvent,ye as isSubset,ze as isValidYYYYMMDD,ge as matchesExpectedVersion,Sr as merge,X as nulloSessionFactory,Qe as parseDateFromUtcYYYYMMDD,Wr as projection,Gr as projections,yt as publish,ut as reply,Qn as restream,vt as schedule,ft as send,En as streamGenerators,Q as streamTrackingGlobalPosition,fe as streamTransformations,vr as sum,xo as verifyThat};
17
17
  //# sourceMappingURL=index.js.map