@ddd-ts-kit/redis 0.7.0 → 0.8.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.
package/README.md CHANGED
@@ -427,8 +427,8 @@ that came back without its data has lost them). For `forConsumer('billing')` sub
427
427
  | dead stream | `integration-events:ordering.order.placed:billing:dead` | one per consumer and type, created by the first dead letter; no group reads it |
428
428
 
429
429
  An entry holds the envelope as JSON in the field `envelope` (`id`, `type`, `version`,
430
- `occurredAt`, `payload`, `traceparent`, `correlationId`) and, beside it, the fields `id`,
431
- `type`, `version`, `traceparent` and `correlation-id`: an operator reads them with `XRANGE`
430
+ `occurredAt`, `payload`, `traceparent`, `correlationId`, `tenantId`) and, beside it, the fields
431
+ `id`, `type`, `version`, `traceparent`, `correlation-id` and `tenant-id`: an operator reads them with `XRANGE`
432
432
  without parsing the body, and any client of the protocol can consume the stream.
433
433
 
434
434
  Two consumers of one type have a group each and both receive every event. Two instances of one
@@ -1,4 +1,4 @@
1
- import type { IntegrationEvent } from '@ddd-ts-kit/kernel';
1
+ import { type IntegrationEvent } from '@ddd-ts-kit/kernel';
2
2
  import type { Entry } from './entry.js';
3
3
  /** The envelope exactly as published, or `undefined` for an entry that does not hold one (poison). */
4
4
  export declare function decode(entry: Entry): IntegrationEvent | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/streams/codec/decode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAaxC,sGAAsG;AACtG,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAgBjE"}
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/streams/codec/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAcxC,sGAAsG;AACtG,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAiBjE"}
@@ -1,3 +1,4 @@
1
+ import { isTenantId } from '@ddd-ts-kit/kernel';
1
2
  import { ENVELOPE_FIELD } from './entry-fields.js';
2
3
  /** The envelope exactly as published, or `undefined` for an entry that does not hold one (poison). */
3
4
  export function decode(entry) {
@@ -13,6 +14,7 @@ export function decode(entry) {
13
14
  payload: body.payload,
14
15
  ...(typeof body.traceparent === 'string' ? { traceparent: body.traceparent } : {}),
15
16
  ...(typeof body.correlationId === 'string' ? { correlationId: body.correlationId } : {}),
17
+ ...(isTenantId(body.tenantId) ? { tenantId: body.tenantId } : {}),
16
18
  };
17
19
  }
18
20
  function parsed(envelope) {
@@ -31,7 +33,9 @@ function isEnvelope(body) {
31
33
  hasText(body, 'type') &&
32
34
  hasText(body, 'occurredAt') &&
33
35
  'version' in body &&
34
- typeof body.version === 'number');
36
+ typeof body.version === 'number' &&
37
+ // A tenant outside the grammar could widen what the consumer reaches: the envelope is poison.
38
+ (!('tenantId' in body) || body.tenantId === undefined || isTenantId(body.tenantId)));
35
39
  }
36
40
  function hasText(body, field) {
37
41
  const value = Reflect.get(body, field);
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/streams/codec/decode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYnD,sGAAsG;AACtG,MAAM,UAAU,MAAM,CAAC,KAAY;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IAEtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,QAA4B;IAC1C,IAAI,CAAC;QACH,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;QACnB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;QAC3B,SAAS,IAAI,IAAI;QACjB,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;IAC1C,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEhD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/streams/codec/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAanD,sGAAsG;AACtG,MAAM,UAAU,MAAM,CAAC,KAAY;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IAEtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,QAA4B;IAC1C,IAAI,CAAC;QACH,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;QACnB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;QAC3B,SAAS,IAAI,IAAI;QACjB,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAChC,8FAA8F;QAC9F,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACpF,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;IAC1C,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEhD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../../src/streams/codec/encode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAU3D;;;GAGG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAaxD"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../../src/streams/codec/encode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAW3D;;;GAGG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAcxD"}
@@ -1,4 +1,4 @@
1
- import { CORRELATION_FIELD, ENVELOPE_FIELD, EVENT_ID_FIELD, EVENT_TYPE_FIELD, EVENT_VERSION_FIELD, TRACEPARENT_FIELD, } from './entry-fields.js';
1
+ import { CORRELATION_FIELD, ENVELOPE_FIELD, EVENT_ID_FIELD, EVENT_TYPE_FIELD, EVENT_VERSION_FIELD, TENANT_FIELD, TRACEPARENT_FIELD, } from './entry-fields.js';
2
2
  /**
3
3
  * The fields of an entry: the whole envelope as JSON, so any client of the protocol can
4
4
  * consume it, and beside it what an operator, a tracer or a filter needs without parsing it.
@@ -13,6 +13,7 @@ export function encode(event) {
13
13
  String(event.version),
14
14
  ...(event.traceparent === undefined ? [] : [TRACEPARENT_FIELD, event.traceparent]),
15
15
  ...(event.correlationId === undefined ? [] : [CORRELATION_FIELD, event.correlationId]),
16
+ ...(event.tenantId === undefined ? [] : [TENANT_FIELD, event.tenantId]),
16
17
  ENVELOPE_FIELD,
17
18
  JSON.stringify(event),
18
19
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/streams/codec/encode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAuB;IAC5C,OAAO;QACL,cAAc;QACd,KAAK,CAAC,EAAE;QACR,gBAAgB;QAChB,KAAK,CAAC,IAAI;QACV,mBAAmB;QACnB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACrB,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAClF,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACtF,cAAc;QACd,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/streams/codec/encode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAuB;IAC5C,OAAO;QACL,cAAc;QACd,KAAK,CAAC,EAAE;QACR,gBAAgB;QAChB,KAAK,CAAC,IAAI;QACV,mBAAmB;QACnB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACrB,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAClF,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACtF,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,cAAc;QACd,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KACtB,CAAC;AACJ,CAAC"}
@@ -4,6 +4,7 @@ export declare const EVENT_TYPE_FIELD = "type";
4
4
  export declare const EVENT_VERSION_FIELD = "version";
5
5
  export declare const TRACEPARENT_FIELD = "traceparent";
6
6
  export declare const CORRELATION_FIELD = "correlation-id";
7
+ export declare const TENANT_FIELD = "tenant-id";
7
8
  export declare const REPLAY_FOR_FIELD = "replay-for";
8
9
  export declare const ERROR_CODE_FIELD = "error-code";
9
10
  export declare const DEAD_REASON_FIELD = "dead-reason";
@@ -1 +1 @@
1
- {"version":3,"file":"entry-fields.d.ts","sourceRoot":"","sources":["../../../src/streams/codec/entry-fields.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"entry-fields.d.ts","sourceRoot":"","sources":["../../../src/streams/codec/entry-fields.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,cAAc,aAAa,CAAC"}
@@ -4,6 +4,7 @@ export const EVENT_TYPE_FIELD = 'type';
4
4
  export const EVENT_VERSION_FIELD = 'version';
5
5
  export const TRACEPARENT_FIELD = 'traceparent';
6
6
  export const CORRELATION_FIELD = 'correlation-id';
7
+ export const TENANT_FIELD = 'tenant-id';
7
8
  export const REPLAY_FOR_FIELD = 'replay-for';
8
9
  export const ERROR_CODE_FIELD = 'error-code';
9
10
  export const DEAD_REASON_FIELD = 'dead-reason';
@@ -1 +1 @@
1
- {"version":3,"file":"entry-fields.js","sourceRoot":"","sources":["../../../src/streams/codec/entry-fields.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"entry-fields.js","sourceRoot":"","sources":["../../../src/streams/codec/entry-fields.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-ts-kit/redis",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Adapters of the kernel ports on the Redis protocol (Redis, Dragonfly, Valkey): cache, distributed lock, rate limiter, relay wake-up signal, and an integration event provider on Redis Streams.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -34,11 +34,11 @@
34
34
  "dist"
35
35
  ],
36
36
  "dependencies": {
37
- "@ddd-ts-kit/kernel": "0.7.0"
37
+ "@ddd-ts-kit/kernel": "0.8.0"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "ioredis": "^5.0.0 || ^6.0.0",
41
- "@ddd-ts-kit/testing": "0.7.0"
41
+ "@ddd-ts-kit/testing": "0.8.0"
42
42
  },
43
43
  "peerDependenciesMeta": {
44
44
  "@ddd-ts-kit/testing": {
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "devDependencies": {
49
49
  "ioredis": "^6.0.0",
50
- "@ddd-ts-kit/events": "0.7.0",
51
- "@ddd-ts-kit/testing": "0.7.0"
50
+ "@ddd-ts-kit/events": "0.8.0",
51
+ "@ddd-ts-kit/testing": "0.8.0"
52
52
  }
53
53
  }