@woltz/rich-domain 1.9.0 → 1.9.1

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/cjs/core/domain-event.d.ts +3 -0
  2. package/dist/cjs/core/domain-event.d.ts.map +1 -1
  3. package/dist/cjs/core/domain-event.js +8 -1
  4. package/dist/cjs/core/domain-event.js.map +1 -1
  5. package/dist/cjs/criteria.d.ts +1 -1
  6. package/dist/cjs/index.d.ts +1 -1
  7. package/dist/cjs/index.d.ts.map +1 -1
  8. package/dist/cjs/types/index.d.ts +1 -0
  9. package/dist/cjs/types/index.d.ts.map +1 -1
  10. package/dist/cjs/types/index.js +1 -0
  11. package/dist/cjs/types/index.js.map +1 -1
  12. package/dist/cjs/types/outbox-store.d.ts +91 -0
  13. package/dist/cjs/types/outbox-store.d.ts.map +1 -0
  14. package/dist/cjs/types/outbox-store.js +3 -0
  15. package/dist/cjs/types/outbox-store.js.map +1 -0
  16. package/dist/esm/core/domain-event.d.ts +3 -0
  17. package/dist/esm/core/domain-event.d.ts.map +1 -1
  18. package/dist/esm/core/domain-event.js +5 -1
  19. package/dist/esm/core/domain-event.js.map +1 -1
  20. package/dist/esm/criteria.d.ts +1 -1
  21. package/dist/esm/index.d.ts +1 -1
  22. package/dist/esm/index.d.ts.map +1 -1
  23. package/dist/esm/types/index.d.ts +1 -0
  24. package/dist/esm/types/index.d.ts.map +1 -1
  25. package/dist/esm/types/index.js +1 -0
  26. package/dist/esm/types/index.js.map +1 -1
  27. package/dist/esm/types/outbox-store.d.ts +91 -0
  28. package/dist/esm/types/outbox-store.d.ts.map +1 -0
  29. package/dist/esm/types/outbox-store.js +2 -0
  30. package/dist/esm/types/outbox-store.js.map +1 -0
  31. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  32. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  33. package/dist/tsconfig.types.tsbuildinfo +1 -1
  34. package/dist/types/core/domain-event.d.ts +3 -0
  35. package/dist/types/core/domain-event.d.ts.map +1 -1
  36. package/dist/types/criteria.d.ts +1 -1
  37. package/dist/types/index.d.ts +1 -1
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/types/types/index.d.ts +1 -0
  40. package/dist/types/types/index.d.ts.map +1 -1
  41. package/dist/types/types/outbox-store.d.ts +91 -0
  42. package/dist/types/types/outbox-store.d.ts.map +1 -0
  43. package/package.json +1 -1
  44. package/dist/cjs/t.d.ts +0 -2
  45. package/dist/cjs/t.d.ts.map +0 -1
  46. package/dist/cjs/t.js +0 -96
  47. package/dist/cjs/t.js.map +0 -1
  48. package/dist/esm/t.d.ts +0 -2
  49. package/dist/esm/t.d.ts.map +0 -1
  50. package/dist/esm/t.js +0 -94
  51. package/dist/esm/t.js.map +0 -1
  52. package/dist/types/t.d.ts +0 -2
  53. package/dist/types/t.d.ts.map +0 -1
@@ -12,6 +12,9 @@ export declare abstract class DomainEvent<P> implements IDomainEvent<P> {
12
12
  * Get the event name (defaults to class name)
13
13
  */
14
14
  get eventName(): string;
15
+ /**
16
+ * Generate a UUID v4
17
+ */
15
18
  private generateEventId;
16
19
  toJSON(): {
17
20
  eventId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"domain-event.d.ts","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC;;GAEG;AACH,8BAAsB,WAAW,CAAC,CAAC,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAC7D,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,UAAU,EAAE,IAAI,CAAC;IACjC,SAAgB,OAAO,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,CAAC;IAMtB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,OAAO,CAAC,eAAe;IAIvB,MAAM;;;;;;CAQP"}
1
+ {"version":3,"file":"domain-event.d.ts","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGlC;;GAEG;AACH,8BAAsB,WAAW,CAAC,CAAC,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAC7D,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,UAAU,EAAE,IAAI,CAAC;IACjC,SAAgB,OAAO,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,CAAC;IAMtB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB,MAAM;;;;;;CAQP"}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.DomainEvent = void 0;
7
+ const crypto_1 = __importDefault(require("../utils/crypto"));
4
8
  /**
5
9
  * Base class for domain events
6
10
  */
@@ -20,8 +24,11 @@ class DomainEvent {
20
24
  get eventName() {
21
25
  return this.constructor.name;
22
26
  }
27
+ /**
28
+ * Generate a UUID v4
29
+ */
23
30
  generateEventId() {
24
- return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
31
+ return (0, crypto_1.default)();
25
32
  }
26
33
  toJSON() {
27
34
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAsB,WAAW;IACf,OAAO,CAAS;IAChB,UAAU,CAAO;IACjB,OAAO,CAAI;IAC3B,MAAM,CAAU,SAAS,CAAU;IAEnC,YAAY,OAAU;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEO,eAAe;QACrB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AA/BD,kCA+BC"}
1
+ {"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":";;;;;;AACA,6DAAmC;AAEnC;;GAEG;AACH,MAAsB,WAAW;IACf,OAAO,CAAS;IAChB,UAAU,CAAO;IACjB,OAAO,CAAI;IAC3B,MAAM,CAAU,SAAS,CAAU;IAEnC,YAAY,OAAU;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,OAAO,IAAA,gBAAI,GAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAlCD,kCAkCC"}
@@ -37,7 +37,7 @@ export declare class Criteria<T = any> {
37
37
  toJSON(): {
38
38
  filters: {
39
39
  field: FieldPath<T>;
40
- operator: "in" | "notIn" | "isNull" | "isNotNull" | "equals" | "notEquals" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "between" | "contains" | "startsWith" | "endsWith";
40
+ operator: "equals" | "notEquals" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "contains" | "startsWith" | "endsWith" | "in" | "notIn" | "between" | "isNull" | "isNotNull";
41
41
  value: any;
42
42
  options: CriteriaOptions | undefined;
43
43
  }[];
@@ -6,5 +6,5 @@ export { isValidOperatorForType } from "./utils/criteria-operator-validation.js"
6
6
  export { ARRAY_OPERATORS, BOOLEAN_OPERATORS, DATE_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS, FILTER_OPERATORS, } from "./constants.js";
7
7
  export { Id, Entity, Aggregate, ValueObject, AggregateChanges, DomainEvent, } from "./core/index.js";
8
8
  export { type PaginatedJsonResult, type CollectionConfig, Repository, Mapper, UnitOfWork, PaginatedResult, ReadRepository, WriteAndRead, WriteRepository, BaseTransactionContext, EntitySchemaRegistry, } from "./repository/index.js";
9
- export type { EntityHooks, Filter, EntityValidation, IDomainEvent, VOValidation, VOHooks, ValidationConfig, Primitive, TransactionContext, PaginationMeta, Pagination, OrderDirection, Order, IUnitOfWork, FieldPath, FilterOperator, Search, FilterValueFor, PathValue, OperatorsForType, DateOperators, NumberOperators, BatchDeleteOperation, BatchCreateOperation, BatchUpdateOperation, BatchOperations, BatchCreateItem, BatchUpdateItem, BatchDeleteItem, StringOperators, BooleanOperators, ArrayOperators, CriteriaOptions, IDomainEventBus, } from "./types/index.js";
9
+ export type { EntityHooks, Filter, EntityValidation, IDomainEvent, VOValidation, VOHooks, ValidationConfig, Primitive, TransactionContext, PaginationMeta, Pagination, OrderDirection, Order, IUnitOfWork, FieldPath, FilterOperator, Search, FilterValueFor, PathValue, OperatorsForType, DateOperators, NumberOperators, BatchDeleteOperation, BatchCreateOperation, BatchUpdateOperation, BatchOperations, BatchCreateItem, BatchUpdateItem, BatchDeleteItem, StringOperators, BooleanOperators, ArrayOperators, CriteriaOptions, IDomainEventBus, IOutboxStore, OutboxEntryData, OutboxFetchResult, OutboxStatus, } from "./types/index.js";
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,EAAE,EACF,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,UAAU,EACV,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,cAAc,EACd,KAAK,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,EAAE,EACF,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,UAAU,EACV,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,cAAc,EACd,KAAK,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,kBAAkB,CAAC"}
@@ -6,4 +6,5 @@ export * from "./unit-of-work.js";
6
6
  export * from "./domain-event.js";
7
7
  export * from "./change-tracker.js";
8
8
  export * from "./event-bus.js";
9
+ export * from "./outbox-store.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
@@ -22,4 +22,5 @@ __exportStar(require("./unit-of-work.js"), exports);
22
22
  __exportStar(require("./domain-event.js"), exports);
23
23
  __exportStar(require("./change-tracker.js"), exports);
24
24
  __exportStar(require("./event-bus.js"), exports);
25
+ __exportStar(require("./outbox-store.js"), exports);
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,uDAAqC;AACrC,6CAA2B;AAC3B,oDAAkC;AAClC,oDAAkC;AAClC,sDAAoC;AACpC,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,uDAAqC;AACrC,6CAA2B;AAC3B,oDAAkC;AAClC,oDAAkC;AAClC,sDAAoC;AACpC,iDAA+B;AAC/B,oDAAkC"}
@@ -0,0 +1,91 @@
1
+ import { IDomainEvent } from "./domain-event.js";
2
+ /**
3
+ * Possible statuses for an outbox entry.
4
+ *
5
+ * - `pending`: The event has been persisted but not yet published.
6
+ * - `published`: The event has been successfully published to the message broker.
7
+ * - `failed`: The event failed to publish after the maximum number of retries.
8
+ */
9
+ export type OutboxStatus = "pending" | "published" | "failed";
10
+ /**
11
+ * The data shape of a single outbox entry returned by {@link IOutboxStore.fetchPending}.
12
+ * This is the flat wire format — no class logic, just data.
13
+ */
14
+ export interface OutboxEntryData {
15
+ /** The event's own `eventId`, used as the primary key of the outbox table. */
16
+ id: string;
17
+ /** The event class name (e.g. `"OrderPlaced"`). */
18
+ eventName: string;
19
+ /** The event payload (the `P` generic from `DomainEvent<P>`). */
20
+ payload: unknown;
21
+ /** When the domain event was originally created. */
22
+ occurredOn: Date;
23
+ /** Current publish status. */
24
+ status: OutboxStatus;
25
+ /** Number of publish attempts so far. */
26
+ retries: number;
27
+ /** Error message from the most recent failed publish attempt, if any. */
28
+ lastError: string | null;
29
+ /** When this outbox row was inserted. */
30
+ createdAt: Date;
31
+ }
32
+ /**
33
+ * Result returned by {@link IOutboxStore.fetchPending}.
34
+ */
35
+ export interface OutboxFetchResult {
36
+ entries: OutboxEntryData[];
37
+ }
38
+ /**
39
+ * Minimal, framework-agnostic contract for an outbox persistence store.
40
+ *
41
+ * Implementations exist for Prisma, Drizzle, TypeORM, and raw SQL.
42
+ * The interface lives in `@woltz/rich-domain` (core) so that the
43
+ * `@woltz/rich-domain-outbox` package can depend on it without
44
+ * coupling to any specific ORM or database.
45
+ */
46
+ export interface IOutboxStore {
47
+ /**
48
+ * Persist one or more domain events to the outbox table.
49
+ *
50
+ * MUST be called within the same database transaction as the aggregate write
51
+ * so that both succeed or both roll back together.
52
+ *
53
+ * Each event's `eventId` becomes the primary key (`id`) of the outbox row.
54
+ * The `status` column is always set to `"pending"` initially.
55
+ *
56
+ * @param events - The domain events to persist.
57
+ * @param tx - Optional ORM-specific transaction context (e.g. a Prisma interactive tx client, a Drizzle tx, or a TypeORM EntityManager).
58
+ */
59
+ save(events: IDomainEvent[], tx?: unknown): Promise<void>;
60
+ /**
61
+ * Fetch a batch of events whose status is still `"pending"`.
62
+ * Entries are returned in insertion order (oldest first) so that
63
+ * earlier events are retried before later ones.
64
+ *
65
+ * The publisher calls this periodically and attempts to publish each entry.
66
+ * On success it calls {@link markPublished}; on failure it calls {@link markFailed}.
67
+ *
68
+ * @param batchSize - Maximum number of entries to return. Default 50.
69
+ * @returns A result object containing the matching entries.
70
+ */
71
+ fetchPending(batchSize?: number): Promise<OutboxFetchResult>;
72
+ /**
73
+ * Mark an outbox entry as successfully published.
74
+ *
75
+ * Mapping: `UPDATE outbox SET status = 'published' WHERE id = :eventId`
76
+ *
77
+ * @param id - The event's `eventId` (same value used as the outbox primary key).
78
+ */
79
+ markPublished(id: string): Promise<void>;
80
+ /**
81
+ * Mark an outbox entry as failed, incrementing its retry counter
82
+ * and recording the error that caused the failure.
83
+ *
84
+ * Mapping: `UPDATE outbox SET status = 'failed', retries = retries + 1, lastError = :error WHERE id = :eventId`
85
+ *
86
+ * @param id - The event's `eventId`.
87
+ * @param error - The error message.
88
+ */
89
+ markFailed(id: string, error: string): Promise<void>;
90
+ }
91
+ //# sourceMappingURL=outbox-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox-store.d.ts","sourceRoot":"","sources":["../../../src/types/outbox-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,UAAU,EAAE,IAAI,CAAC;IACjB,8BAA8B;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yCAAyC;IACzC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7D;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=outbox-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox-store.js","sourceRoot":"","sources":["../../../src/types/outbox-store.ts"],"names":[],"mappings":""}
@@ -12,6 +12,9 @@ export declare abstract class DomainEvent<P> implements IDomainEvent<P> {
12
12
  * Get the event name (defaults to class name)
13
13
  */
14
14
  get eventName(): string;
15
+ /**
16
+ * Generate a UUID v4
17
+ */
15
18
  private generateEventId;
16
19
  toJSON(): {
17
20
  eventId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"domain-event.d.ts","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC;;GAEG;AACH,8BAAsB,WAAW,CAAC,CAAC,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAC7D,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,UAAU,EAAE,IAAI,CAAC;IACjC,SAAgB,OAAO,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,CAAC;IAMtB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,OAAO,CAAC,eAAe;IAIvB,MAAM;;;;;;CAQP"}
1
+ {"version":3,"file":"domain-event.d.ts","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGlC;;GAEG;AACH,8BAAsB,WAAW,CAAC,CAAC,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAC7D,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,UAAU,EAAE,IAAI,CAAC;IACjC,SAAgB,OAAO,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,CAAC;IAMtB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB,MAAM;;;;;;CAQP"}
@@ -1,3 +1,4 @@
1
+ import UUID from "../utils/crypto";
1
2
  /**
2
3
  * Base class for domain events
3
4
  */
@@ -17,8 +18,11 @@ export class DomainEvent {
17
18
  get eventName() {
18
19
  return this.constructor.name;
19
20
  }
21
+ /**
22
+ * Generate a UUID v4
23
+ */
20
24
  generateEventId() {
21
- return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
25
+ return UUID();
22
26
  }
23
27
  toJSON() {
24
28
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAgB,WAAW;IACf,OAAO,CAAS;IAChB,UAAU,CAAO;IACjB,OAAO,CAAI;IAC3B,MAAM,CAAU,SAAS,CAAU;IAEnC,YAAY,OAAU;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEO,eAAe;QACrB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAEnC;;GAEG;AACH,MAAM,OAAgB,WAAW;IACf,OAAO,CAAS;IAChB,UAAU,CAAO;IACjB,OAAO,CAAI;IAC3B,MAAM,CAAU,SAAS,CAAU;IAEnC,YAAY,OAAU;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
@@ -37,7 +37,7 @@ export declare class Criteria<T = any> {
37
37
  toJSON(): {
38
38
  filters: {
39
39
  field: FieldPath<T>;
40
- operator: "in" | "notIn" | "isNull" | "isNotNull" | "equals" | "notEquals" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "between" | "contains" | "startsWith" | "endsWith";
40
+ operator: "equals" | "notEquals" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "contains" | "startsWith" | "endsWith" | "in" | "notIn" | "between" | "isNull" | "isNotNull";
41
41
  value: any;
42
42
  options: CriteriaOptions | undefined;
43
43
  }[];
@@ -6,5 +6,5 @@ export { isValidOperatorForType } from "./utils/criteria-operator-validation.js"
6
6
  export { ARRAY_OPERATORS, BOOLEAN_OPERATORS, DATE_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS, FILTER_OPERATORS, } from "./constants.js";
7
7
  export { Id, Entity, Aggregate, ValueObject, AggregateChanges, DomainEvent, } from "./core/index.js";
8
8
  export { type PaginatedJsonResult, type CollectionConfig, Repository, Mapper, UnitOfWork, PaginatedResult, ReadRepository, WriteAndRead, WriteRepository, BaseTransactionContext, EntitySchemaRegistry, } from "./repository/index.js";
9
- export type { EntityHooks, Filter, EntityValidation, IDomainEvent, VOValidation, VOHooks, ValidationConfig, Primitive, TransactionContext, PaginationMeta, Pagination, OrderDirection, Order, IUnitOfWork, FieldPath, FilterOperator, Search, FilterValueFor, PathValue, OperatorsForType, DateOperators, NumberOperators, BatchDeleteOperation, BatchCreateOperation, BatchUpdateOperation, BatchOperations, BatchCreateItem, BatchUpdateItem, BatchDeleteItem, StringOperators, BooleanOperators, ArrayOperators, CriteriaOptions, IDomainEventBus, } from "./types/index.js";
9
+ export type { EntityHooks, Filter, EntityValidation, IDomainEvent, VOValidation, VOHooks, ValidationConfig, Primitive, TransactionContext, PaginationMeta, Pagination, OrderDirection, Order, IUnitOfWork, FieldPath, FilterOperator, Search, FilterValueFor, PathValue, OperatorsForType, DateOperators, NumberOperators, BatchDeleteOperation, BatchCreateOperation, BatchUpdateOperation, BatchOperations, BatchCreateItem, BatchUpdateItem, BatchDeleteItem, StringOperators, BooleanOperators, ArrayOperators, CriteriaOptions, IDomainEventBus, IOutboxStore, OutboxEntryData, OutboxFetchResult, OutboxStatus, } from "./types/index.js";
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,EAAE,EACF,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,UAAU,EACV,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,cAAc,EACd,KAAK,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,EAAE,EACF,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,UAAU,EACV,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,cAAc,EACd,KAAK,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,kBAAkB,CAAC"}
@@ -6,4 +6,5 @@ export * from "./unit-of-work.js";
6
6
  export * from "./domain-event.js";
7
7
  export * from "./change-tracker.js";
8
8
  export * from "./event-bus.js";
9
+ export * from "./outbox-store.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
@@ -6,4 +6,5 @@ export * from "./unit-of-work.js";
6
6
  export * from "./domain-event.js";
7
7
  export * from "./change-tracker.js";
8
8
  export * from "./event-bus.js";
9
+ export * from "./outbox-store.js";
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,91 @@
1
+ import { IDomainEvent } from "./domain-event.js";
2
+ /**
3
+ * Possible statuses for an outbox entry.
4
+ *
5
+ * - `pending`: The event has been persisted but not yet published.
6
+ * - `published`: The event has been successfully published to the message broker.
7
+ * - `failed`: The event failed to publish after the maximum number of retries.
8
+ */
9
+ export type OutboxStatus = "pending" | "published" | "failed";
10
+ /**
11
+ * The data shape of a single outbox entry returned by {@link IOutboxStore.fetchPending}.
12
+ * This is the flat wire format — no class logic, just data.
13
+ */
14
+ export interface OutboxEntryData {
15
+ /** The event's own `eventId`, used as the primary key of the outbox table. */
16
+ id: string;
17
+ /** The event class name (e.g. `"OrderPlaced"`). */
18
+ eventName: string;
19
+ /** The event payload (the `P` generic from `DomainEvent<P>`). */
20
+ payload: unknown;
21
+ /** When the domain event was originally created. */
22
+ occurredOn: Date;
23
+ /** Current publish status. */
24
+ status: OutboxStatus;
25
+ /** Number of publish attempts so far. */
26
+ retries: number;
27
+ /** Error message from the most recent failed publish attempt, if any. */
28
+ lastError: string | null;
29
+ /** When this outbox row was inserted. */
30
+ createdAt: Date;
31
+ }
32
+ /**
33
+ * Result returned by {@link IOutboxStore.fetchPending}.
34
+ */
35
+ export interface OutboxFetchResult {
36
+ entries: OutboxEntryData[];
37
+ }
38
+ /**
39
+ * Minimal, framework-agnostic contract for an outbox persistence store.
40
+ *
41
+ * Implementations exist for Prisma, Drizzle, TypeORM, and raw SQL.
42
+ * The interface lives in `@woltz/rich-domain` (core) so that the
43
+ * `@woltz/rich-domain-outbox` package can depend on it without
44
+ * coupling to any specific ORM or database.
45
+ */
46
+ export interface IOutboxStore {
47
+ /**
48
+ * Persist one or more domain events to the outbox table.
49
+ *
50
+ * MUST be called within the same database transaction as the aggregate write
51
+ * so that both succeed or both roll back together.
52
+ *
53
+ * Each event's `eventId` becomes the primary key (`id`) of the outbox row.
54
+ * The `status` column is always set to `"pending"` initially.
55
+ *
56
+ * @param events - The domain events to persist.
57
+ * @param tx - Optional ORM-specific transaction context (e.g. a Prisma interactive tx client, a Drizzle tx, or a TypeORM EntityManager).
58
+ */
59
+ save(events: IDomainEvent[], tx?: unknown): Promise<void>;
60
+ /**
61
+ * Fetch a batch of events whose status is still `"pending"`.
62
+ * Entries are returned in insertion order (oldest first) so that
63
+ * earlier events are retried before later ones.
64
+ *
65
+ * The publisher calls this periodically and attempts to publish each entry.
66
+ * On success it calls {@link markPublished}; on failure it calls {@link markFailed}.
67
+ *
68
+ * @param batchSize - Maximum number of entries to return. Default 50.
69
+ * @returns A result object containing the matching entries.
70
+ */
71
+ fetchPending(batchSize?: number): Promise<OutboxFetchResult>;
72
+ /**
73
+ * Mark an outbox entry as successfully published.
74
+ *
75
+ * Mapping: `UPDATE outbox SET status = 'published' WHERE id = :eventId`
76
+ *
77
+ * @param id - The event's `eventId` (same value used as the outbox primary key).
78
+ */
79
+ markPublished(id: string): Promise<void>;
80
+ /**
81
+ * Mark an outbox entry as failed, incrementing its retry counter
82
+ * and recording the error that caused the failure.
83
+ *
84
+ * Mapping: `UPDATE outbox SET status = 'failed', retries = retries + 1, lastError = :error WHERE id = :eventId`
85
+ *
86
+ * @param id - The event's `eventId`.
87
+ * @param error - The error message.
88
+ */
89
+ markFailed(id: string, error: string): Promise<void>;
90
+ }
91
+ //# sourceMappingURL=outbox-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox-store.d.ts","sourceRoot":"","sources":["../../../src/types/outbox-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,UAAU,EAAE,IAAI,CAAC;IACjB,8BAA8B;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yCAAyC;IACzC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7D;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=outbox-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox-store.js","sourceRoot":"","sources":["../../../src/types/outbox-store.ts"],"names":[],"mappings":""}