/** An optimistic-concurrency check failed (stale `expectedVersion` or a lost commit race). */ export class ConcurrencyError extends Error { constructor( readonly stream: string, readonly expectedVersion: number | 'any', readonly actualVersion: number, ) { super(`Concurrency conflict on "${stream}": expected version ${expectedVersion}, actual ${actualVersion}`) this.name = 'ConcurrencyError' } } /** A key argument was passed but is `undefined`/`null`, empty, or not a string/number. */ export class InvalidKeyError extends TypeError { constructor(message: string) { super(message) this.name = 'InvalidKeyError' } }