@nestjs-transactional/outbox 1.0.0 → 2.0.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 (125) hide show
  1. package/README.md +38 -5
  2. package/dist/api/completed-event-publications.d.ts +2 -2
  3. package/dist/api/completed-event-publications.js +6 -9
  4. package/dist/api/completed-event-publications.js.map +1 -1
  5. package/dist/api/failed-event-publications.d.ts +3 -3
  6. package/dist/api/failed-event-publications.js +10 -13
  7. package/dist/api/failed-event-publications.js.map +1 -1
  8. package/dist/api/incomplete-event-publications.d.ts +3 -3
  9. package/dist/api/incomplete-event-publications.js +11 -14
  10. package/dist/api/incomplete-event-publications.js.map +1 -1
  11. package/dist/decorators/inject-decorators.js +12 -24
  12. package/dist/decorators/inject-decorators.js.map +1 -1
  13. package/dist/decorators/outbox-events-handler.decorator.js +6 -11
  14. package/dist/decorators/outbox-events-handler.decorator.js.map +1 -1
  15. package/dist/dispatcher/data-source-outbox-publisher.d.ts +2 -2
  16. package/dist/dispatcher/data-source-outbox-publisher.js +7 -11
  17. package/dist/dispatcher/data-source-outbox-publisher.js.map +1 -1
  18. package/dist/dispatcher/event-publication-processor.d.ts +5 -5
  19. package/dist/dispatcher/event-publication-processor.js +18 -21
  20. package/dist/dispatcher/event-publication-processor.js.map +1 -1
  21. package/dist/dispatcher/outbox-event-publisher.js +16 -19
  22. package/dist/dispatcher/outbox-event-publisher.js.map +1 -1
  23. package/dist/dispatcher/processor-options.d.ts +1 -1
  24. package/dist/dispatcher/processor-options.js +5 -8
  25. package/dist/dispatcher/processor-options.js.map +1 -1
  26. package/dist/externalization/describe-thrown.d.ts +20 -0
  27. package/dist/externalization/describe-thrown.js +46 -0
  28. package/dist/externalization/describe-thrown.js.map +1 -0
  29. package/dist/externalization/errors.d.ts +1 -1
  30. package/dist/externalization/errors.js +2 -6
  31. package/dist/externalization/errors.js.map +1 -1
  32. package/dist/externalization/event-externalizer.d.ts +1 -1
  33. package/dist/externalization/event-externalizer.js +1 -4
  34. package/dist/externalization/event-externalizer.js.map +1 -1
  35. package/dist/externalization/externalization-registry.d.ts +3 -3
  36. package/dist/externalization/externalization-registry.js +10 -13
  37. package/dist/externalization/externalization-registry.js.map +1 -1
  38. package/dist/externalization/externalized.decorator.js +6 -11
  39. package/dist/externalization/externalized.decorator.js.map +1 -1
  40. package/dist/externalization/types.js +1 -2
  41. package/dist/index.d.ts +43 -40
  42. package/dist/index.js +41 -61
  43. package/dist/index.js.map +1 -1
  44. package/dist/interfaces/outbox-event-handler.interface.js +1 -2
  45. package/dist/module/outbox-processing.module.d.ts +1 -1
  46. package/dist/module/outbox-processing.module.js +12 -9
  47. package/dist/module/outbox-processing.module.js.map +1 -1
  48. package/dist/module/outbox.module.d.ts +15 -8
  49. package/dist/module/outbox.module.js +179 -145
  50. package/dist/module/outbox.module.js.map +1 -1
  51. package/dist/recovery/outbox-cleanup-scheduler.d.ts +56 -0
  52. package/dist/recovery/outbox-cleanup-scheduler.js +136 -0
  53. package/dist/recovery/outbox-cleanup-scheduler.js.map +1 -0
  54. package/dist/recovery/outbox-retry-scheduler.d.ts +2 -2
  55. package/dist/recovery/outbox-retry-scheduler.js +11 -14
  56. package/dist/recovery/outbox-retry-scheduler.js.map +1 -1
  57. package/dist/recovery/staleness-monitor.d.ts +2 -2
  58. package/dist/recovery/staleness-monitor.js +14 -17
  59. package/dist/recovery/staleness-monitor.js.map +1 -1
  60. package/dist/recovery/startup-recovery.d.ts +1 -1
  61. package/dist/recovery/startup-recovery.js +11 -14
  62. package/dist/recovery/startup-recovery.js.map +1 -1
  63. package/dist/registry/event-publication-registry.d.ts +4 -4
  64. package/dist/registry/event-publication-registry.js +17 -20
  65. package/dist/registry/event-publication-registry.js.map +1 -1
  66. package/dist/registry/listener-registry.js +6 -9
  67. package/dist/registry/listener-registry.js.map +1 -1
  68. package/dist/registry/multi-ds-listener-registrar.d.ts +1 -1
  69. package/dist/registry/multi-ds-listener-registrar.js +15 -18
  70. package/dist/registry/multi-ds-listener-registrar.js.map +1 -1
  71. package/dist/registry/outbox-listener-scanner.d.ts +1 -1
  72. package/dist/registry/outbox-listener-scanner.js +23 -27
  73. package/dist/registry/outbox-listener-scanner.js.map +1 -1
  74. package/dist/repository/event-publication-repository.d.ts +14 -3
  75. package/dist/repository/event-publication-repository.js +1 -4
  76. package/dist/repository/event-publication-repository.js.map +1 -1
  77. package/dist/serialization/event-serializer.js +1 -4
  78. package/dist/serialization/event-serializer.js.map +1 -1
  79. package/dist/serialization/event-type-registry.js +5 -8
  80. package/dist/serialization/event-type-registry.js.map +1 -1
  81. package/dist/serialization/event-type-resolver.d.ts +1 -1
  82. package/dist/serialization/event-type-resolver.js +4 -7
  83. package/dist/serialization/event-type-resolver.js.map +1 -1
  84. package/dist/serialization/json-event-serializer.d.ts +2 -2
  85. package/dist/serialization/json-event-serializer.js +10 -13
  86. package/dist/serialization/json-event-serializer.js.map +1 -1
  87. package/dist/shutdown/drain.js +2 -6
  88. package/dist/shutdown/drain.js.map +1 -1
  89. package/dist/testing/assertable-published-events.d.ts +1 -1
  90. package/dist/testing/assertable-published-events.js +8 -13
  91. package/dist/testing/assertable-published-events.js.map +1 -1
  92. package/dist/testing/in-memory-repository.d.ts +3 -3
  93. package/dist/testing/in-memory-repository.js +32 -25
  94. package/dist/testing/in-memory-repository.js.map +1 -1
  95. package/dist/testing/index.d.ts +3 -3
  96. package/dist/testing/index.js +3 -19
  97. package/dist/testing/index.js.map +1 -1
  98. package/dist/testing/published-events.d.ts +3 -3
  99. package/dist/testing/published-events.js +11 -14
  100. package/dist/testing/published-events.js.map +1 -1
  101. package/dist/tokens/index.d.ts +1 -1
  102. package/dist/tokens/index.js +1 -13
  103. package/dist/tokens/index.js.map +1 -1
  104. package/dist/tokens/token-utils.js +10 -21
  105. package/dist/tokens/token-utils.js.map +1 -1
  106. package/dist/types/cleanup-config.d.ts +59 -0
  107. package/dist/types/cleanup-config.js +14 -0
  108. package/dist/types/cleanup-config.js.map +1 -0
  109. package/dist/types/completion-mode.js +2 -5
  110. package/dist/types/completion-mode.js.map +1 -1
  111. package/dist/types/errors.d.ts +1 -1
  112. package/dist/types/errors.js +7 -16
  113. package/dist/types/errors.js.map +1 -1
  114. package/dist/types/event-publication.d.ts +1 -1
  115. package/dist/types/event-publication.js +1 -2
  116. package/dist/types/publication-status.js +2 -5
  117. package/dist/types/publication-status.js.map +1 -1
  118. package/dist/types/resubmission-options.d.ts +1 -1
  119. package/dist/types/resubmission-options.js +1 -5
  120. package/dist/types/resubmission-options.js.map +1 -1
  121. package/dist/types/retry-config.js +3 -6
  122. package/dist/types/retry-config.js.map +1 -1
  123. package/dist/types/staleness-config.js +3 -6
  124. package/dist/types/staleness-config.js.map +1 -1
  125. package/package.json +21 -19
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -11,13 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
11
  return function (target, key) { decorator(target, key, paramIndex); }
13
12
  };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.EventPublicationRegistry = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const event_publication_repository_1 = require("../repository/event-publication-repository");
18
- const event_serializer_1 = require("../serialization/event-serializer");
19
- const completion_mode_1 = require("../types/completion-mode");
20
- const publication_status_1 = require("../types/publication-status");
13
+ import { Inject, Injectable } from '@nestjs/common';
14
+ import { EVENT_PUBLICATION_REPOSITORY } from '../repository/event-publication-repository.js';
15
+ import { EVENT_SERIALIZER } from '../serialization/event-serializer.js';
16
+ import { CompletionMode } from '../types/completion-mode.js';
17
+ import { PublicationStatus } from '../types/publication-status.js';
21
18
  /**
22
19
  * Central service that coordinates the event publication lifecycle.
23
20
  *
@@ -80,17 +77,17 @@ let EventPublicationRegistry = class EventPublicationRegistry {
80
77
  * - `DELETE`: delete the row outright;
81
78
  * - `ARCHIVE`: move the row to the archive table (impl-specific).
82
79
  */
83
- async markCompleted(publicationId, mode = completion_mode_1.CompletionMode.UPDATE) {
80
+ async markCompleted(publicationId, mode = CompletionMode.UPDATE) {
84
81
  switch (mode) {
85
- case completion_mode_1.CompletionMode.UPDATE:
86
- await this.repository.updateStatus(publicationId, publication_status_1.PublicationStatus.COMPLETED, {
82
+ case CompletionMode.UPDATE:
83
+ await this.repository.updateStatus(publicationId, PublicationStatus.COMPLETED, {
87
84
  completionDate: new Date(),
88
85
  });
89
86
  return;
90
- case completion_mode_1.CompletionMode.DELETE:
87
+ case CompletionMode.DELETE:
91
88
  await this.repository.delete(publicationId);
92
89
  return;
93
- case completion_mode_1.CompletionMode.ARCHIVE:
90
+ case CompletionMode.ARCHIVE:
94
91
  await this.repository.archiveCompleted(publicationId);
95
92
  return;
96
93
  }
@@ -100,7 +97,7 @@ let EventPublicationRegistry = class EventPublicationRegistry {
100
97
  * operators can triage.
101
98
  */
102
99
  async markFailed(publicationId, reason) {
103
- await this.repository.updateStatus(publicationId, publication_status_1.PublicationStatus.FAILED, {
100
+ await this.repository.updateStatus(publicationId, PublicationStatus.FAILED, {
104
101
  failureReason: reason,
105
102
  });
106
103
  }
@@ -109,7 +106,7 @@ let EventPublicationRegistry = class EventPublicationRegistry {
109
106
  * Stamps `lastResubmissionDate` with the current time.
110
107
  */
111
108
  async markResubmitted(publicationId) {
112
- await this.repository.updateStatus(publicationId, publication_status_1.PublicationStatus.RESUBMITTED, {
109
+ await this.repository.updateStatus(publicationId, PublicationStatus.RESUBMITTED, {
113
110
  lastResubmissionDate: new Date(),
114
111
  });
115
112
  }
@@ -128,11 +125,11 @@ let EventPublicationRegistry = class EventPublicationRegistry {
128
125
  return this.repository.findReadyForProcessing(limit);
129
126
  }
130
127
  };
131
- exports.EventPublicationRegistry = EventPublicationRegistry;
132
- exports.EventPublicationRegistry = EventPublicationRegistry = __decorate([
133
- (0, common_1.Injectable)(),
134
- __param(0, (0, common_1.Inject)(event_publication_repository_1.EVENT_PUBLICATION_REPOSITORY)),
135
- __param(1, (0, common_1.Inject)(event_serializer_1.EVENT_SERIALIZER)),
128
+ EventPublicationRegistry = __decorate([
129
+ Injectable(),
130
+ __param(0, Inject(EVENT_PUBLICATION_REPOSITORY)),
131
+ __param(1, Inject(EVENT_SERIALIZER)),
136
132
  __metadata("design:paramtypes", [Object, Object])
137
133
  ], EventPublicationRegistry);
134
+ export { EventPublicationRegistry };
138
135
  //# sourceMappingURL=event-publication-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-publication-registry.js","sourceRoot":"","sources":["../../src/registry/event-publication-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-publication-registry.js","sourceRoot":"","sources":["../../src/registry/event-publication-registry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE;;;;;;;;;;;;;GAaG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAGhB;IAEA;IAJnB,YAEmB,UAAsC,EAEtC,UAA2B;QAF3B,eAAU,GAAV,UAAU,CAA4B;QAEtC,eAAU,GAAV,UAAU,CAAiB;IAC3C,CAAC;IAEJ;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,WAA8B;QAC1D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,SAAS,GAAI,KAAgB,CAAC,WAAW,CAAC,IAAI,CAAC;QAErD,MAAM,MAAM,GAA0B,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACrE,UAAU;YACV,SAAS;YACT,eAAe,EAAE,UAAU;SAC5B,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,aAAqB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,aAAqB,EACrB,OAAuB,cAAc,CAAC,MAAM;QAE5C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,cAAc,CAAC,MAAM;gBACxB,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,iBAAiB,CAAC,SAAS,EAAE;oBAC7E,cAAc,EAAE,IAAI,IAAI,EAAE;iBAC3B,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,cAAc,CAAC,MAAM;gBACxB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC5C,OAAO;YACT,KAAK,cAAc,CAAC,OAAO;gBACzB,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBACtD,OAAO;QACX,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,aAAqB,EAAE,MAAc;QACpD,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,iBAAiB,CAAC,MAAM,EAAE;YAC1E,aAAa,EAAE,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,aAAqB;QACzC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,iBAAiB,CAAC,WAAW,EAAE;YAC/E,oBAAoB,EAAE,IAAI,IAAI,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,WAA6B;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,sBAAsB,CAAC,KAAa;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AA5GY,wBAAwB;IADpC,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,4BAA4B,CAAC,CAAA;IAEpC,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;;GAJhB,wBAAwB,CA4GpC"}
@@ -1,14 +1,11 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.OutboxListenerRegistry = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const errors_1 = require("../types/errors");
7
+ import { Injectable } from '@nestjs/common';
8
+ import { DuplicateListenerIdError } from '../types/errors.js';
12
9
  /**
13
10
  * Registry of `@OutboxEventsHandler`-annotated classes (and other
14
11
  * programmatically-registered listeners such as those routed from
@@ -31,7 +28,7 @@ let OutboxListenerRegistry = class OutboxListenerRegistry {
31
28
  */
32
29
  register(listener) {
33
30
  if (this.listenersById.has(listener.id)) {
34
- throw new errors_1.DuplicateListenerIdError(listener.id);
31
+ throw new DuplicateListenerIdError(listener.id);
35
32
  }
36
33
  const listeners = this.listenersByEventType.get(listener.eventType) ?? [];
37
34
  listeners.push(listener);
@@ -60,8 +57,8 @@ let OutboxListenerRegistry = class OutboxListenerRegistry {
60
57
  this.listenersById.clear();
61
58
  }
62
59
  };
63
- exports.OutboxListenerRegistry = OutboxListenerRegistry;
64
- exports.OutboxListenerRegistry = OutboxListenerRegistry = __decorate([
65
- (0, common_1.Injectable)()
60
+ OutboxListenerRegistry = __decorate([
61
+ Injectable()
66
62
  ], OutboxListenerRegistry);
63
+ export { OutboxListenerRegistry };
67
64
  //# sourceMappingURL=listener-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listener-registry.js","sourceRoot":"","sources":["../../src/registry/listener-registry.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,4CAA2D;AAoB3D;;;;;;;;;GASG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAChB,oBAAoB,GAAG,IAAI,GAAG,EAAsC,CAAC;IACrE,aAAa,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE7E;;;;;;OAMG;IACH,QAAQ,CAAC,QAAkC;QACzC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,iCAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1E,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAED,iFAAiF;IACjF,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,+DAA+D;IAC/D,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,uEAAuE;IACvE,KAAK;QACH,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF,CAAA;AA9CY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CA8ClC"}
1
+ {"version":3,"file":"listener-registry.js","sourceRoot":"","sources":["../../src/registry/listener-registry.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAoB9D;;;;;;;;;GASG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAChB,oBAAoB,GAAG,IAAI,GAAG,EAAsC,CAAC;IACrE,aAAa,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE7E;;;;;;OAMG;IACH,QAAQ,CAAC,QAAkC;QACzC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1E,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAED,iFAAiF;IACjF,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,+DAA+D;IAC/D,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,uEAAuE;IACvE,KAAK;QACH,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF,CAAA;AA9CY,sBAAsB;IADlC,UAAU,EAAE;GACA,sBAAsB,CA8ClC"}
@@ -1,5 +1,5 @@
1
1
  import { ModuleRef } from '@nestjs/core';
2
- import { type OutboxDataSourceNames } from '../dispatcher/outbox-event-publisher';
2
+ import { type OutboxDataSourceNames } from '../dispatcher/outbox-event-publisher.js';
3
3
  /**
4
4
  * Cross-package shared DI token for the outbox listener registrar
5
5
  * structural port (declared in the cqrs package as
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -12,13 +11,11 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
11
  return function (target, key) { decorator(target, key, paramIndex); }
13
12
  };
14
13
  var MultiDsOutboxListenerRegistrar_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.MultiDsOutboxListenerRegistrar = exports.OUTBOX_LISTENER_REGISTRAR_TOKEN = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const core_1 = require("@nestjs/core");
19
- const outbox_event_publisher_1 = require("../dispatcher/outbox-event-publisher");
20
- const event_type_resolver_1 = require("../serialization/event-type-resolver");
21
- const token_utils_1 = require("../tokens/token-utils");
14
+ import { Inject, Injectable, Logger } from '@nestjs/common';
15
+ import { ModuleRef } from '@nestjs/core';
16
+ import { OUTBOX_DATA_SOURCE_NAMES, } from '../dispatcher/outbox-event-publisher.js';
17
+ import { resolveDataSourceByEventTypeName } from '../serialization/event-type-resolver.js';
18
+ import { getEventTypeRegistryToken, getOutboxListenerRegistryToken, } from '../tokens/token-utils.js';
22
19
  /**
23
20
  * Cross-package shared DI token for the outbox listener registrar
24
21
  * structural port (declared in the cqrs package as
@@ -37,7 +34,7 @@ const token_utils_1 = require("../tokens/token-utils");
37
34
  * `OUTBOX_LISTENER_REGISTRAR` from `@nestjs-transactional/cqrs` for
38
35
  * source-level clarity.
39
36
  */
40
- exports.OUTBOX_LISTENER_REGISTRAR_TOKEN = Symbol.for('@nestjs-transactional/cqrs/outbox-listener-registrar');
37
+ export const OUTBOX_LISTENER_REGISTRAR_TOKEN = Symbol.for('@nestjs-transactional/cqrs/outbox-listener-registrar');
41
38
  /**
42
39
  * Multi-dataSource implementation of the cqrs package's
43
40
  * `OutboxListenerRegistrar` structural port.
@@ -69,7 +66,7 @@ exports.OUTBOX_LISTENER_REGISTRAR_TOKEN = Symbol.for('@nestjs-transactional/cqrs
69
66
  let MultiDsOutboxListenerRegistrar = MultiDsOutboxListenerRegistrar_1 = class MultiDsOutboxListenerRegistrar {
70
67
  moduleRef;
71
68
  dataSourceNames;
72
- logger = new common_1.Logger(MultiDsOutboxListenerRegistrar_1.name);
69
+ logger = new Logger(MultiDsOutboxListenerRegistrar_1.name);
73
70
  constructor(moduleRef, dataSourceNames) {
74
71
  this.moduleRef = moduleRef;
75
72
  this.dataSourceNames = dataSourceNames;
@@ -82,8 +79,8 @@ let MultiDsOutboxListenerRegistrar = MultiDsOutboxListenerRegistrar_1 = class Mu
82
79
  */
83
80
  register(listener) {
84
81
  const eventTypeRegistries = this.collectEventTypeRegistries();
85
- const dataSource = (0, event_type_resolver_1.resolveDataSourceByEventTypeName)(listener.eventType, eventTypeRegistries);
86
- const registry = this.moduleRef.get((0, token_utils_1.getOutboxListenerRegistryToken)(dataSource), { strict: false });
82
+ const dataSource = resolveDataSourceByEventTypeName(listener.eventType, eventTypeRegistries);
83
+ const registry = this.moduleRef.get(getOutboxListenerRegistryToken(dataSource), { strict: false });
87
84
  registry.register(listener);
88
85
  this.logger.debug(`Routed listener id='${listener.id}' for event '${listener.eventType}' → dataSource '${dataSource}'`);
89
86
  }
@@ -97,16 +94,16 @@ let MultiDsOutboxListenerRegistrar = MultiDsOutboxListenerRegistrar_1 = class Mu
97
94
  collectEventTypeRegistries() {
98
95
  const registries = new Map();
99
96
  for (const dataSource of this.dataSourceNames.keys()) {
100
- const registry = this.moduleRef.get((0, token_utils_1.getEventTypeRegistryToken)(dataSource), { strict: false });
97
+ const registry = this.moduleRef.get(getEventTypeRegistryToken(dataSource), { strict: false });
101
98
  registries.set(dataSource, registry);
102
99
  }
103
100
  return registries;
104
101
  }
105
102
  };
106
- exports.MultiDsOutboxListenerRegistrar = MultiDsOutboxListenerRegistrar;
107
- exports.MultiDsOutboxListenerRegistrar = MultiDsOutboxListenerRegistrar = MultiDsOutboxListenerRegistrar_1 = __decorate([
108
- (0, common_1.Injectable)(),
109
- __param(1, (0, common_1.Inject)(outbox_event_publisher_1.OUTBOX_DATA_SOURCE_NAMES)),
110
- __metadata("design:paramtypes", [core_1.ModuleRef, Object])
103
+ MultiDsOutboxListenerRegistrar = MultiDsOutboxListenerRegistrar_1 = __decorate([
104
+ Injectable(),
105
+ __param(1, Inject(OUTBOX_DATA_SOURCE_NAMES)),
106
+ __metadata("design:paramtypes", [ModuleRef, Object])
111
107
  ], MultiDsOutboxListenerRegistrar);
108
+ export { MultiDsOutboxListenerRegistrar };
112
109
  //# sourceMappingURL=multi-ds-listener-registrar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-ds-listener-registrar.js","sourceRoot":"","sources":["../../src/registry/multi-ds-listener-registrar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA4D;AAC5D,uCAAyC;AAEzC,iFAG8C;AAE9C,8EAAwF;AACxF,uDAAkG;AAIlG;;;;;;;;;;;;;;;;;GAiBG;AACU,QAAA,+BAA+B,GAAG,MAAM,CAAC,GAAG,CACvD,sDAAsD,CACvD,CAAC;AAgBF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEI,IAAM,8BAA8B,sCAApC,MAAM,8BAA8B;IAItB;IAEA;IALF,MAAM,GAAG,IAAI,eAAM,CAAC,gCAA8B,CAAC,IAAI,CAAC,CAAC;IAE1E,YACmB,SAAoB,EAEpB,eAAsC;QAFtC,cAAS,GAAT,SAAS,CAAW;QAEpB,oBAAe,GAAf,eAAe,CAAuB;IACtD,CAAC;IAEJ;;;;;OAKG;IACH,QAAQ,CAAC,QAAgC;QACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAA,sDAAgC,EAAC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACjC,IAAA,4CAA8B,EAAC,UAAU,CAAC,EAC1C,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uBAAuB,QAAQ,CAAC,EAAE,gBAAgB,QAAQ,CAAC,SAAS,mBAAmB,UAAU,GAAG,CACrG,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,0BAA0B;QAChC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;QACxD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACjC,IAAA,uCAAyB,EAAC,UAAU,CAAC,EACrC,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;YACF,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAA;AAhDY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,eAAM,EAAC,iDAAwB,CAAC,CAAA;qCADL,gBAAS;GAJ5B,8BAA8B,CAgD1C"}
1
+ {"version":3,"file":"multi-ds-listener-registrar.js","sourceRoot":"","sources":["../../src/registry/multi-ds-listener-registrar.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,wBAAwB,GAEzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAIlC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,GAAG,CACvD,sDAAsD,CACvD,CAAC;AAgBF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEI,IAAM,8BAA8B,sCAApC,MAAM,8BAA8B;IAItB;IAEA;IALF,MAAM,GAAG,IAAI,MAAM,CAAC,gCAA8B,CAAC,IAAI,CAAC,CAAC;IAE1E,YACmB,SAAoB,EAEpB,eAAsC;QAFtC,cAAS,GAAT,SAAS,CAAW;QAEpB,oBAAe,GAAf,eAAe,CAAuB;IACtD,CAAC;IAEJ;;;;;OAKG;IACH,QAAQ,CAAC,QAAgC;QACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,gCAAgC,CAAC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACjC,8BAA8B,CAAC,UAAU,CAAC,EAC1C,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uBAAuB,QAAQ,CAAC,EAAE,gBAAgB,QAAQ,CAAC,SAAS,mBAAmB,UAAU,GAAG,CACrG,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,0BAA0B;QAChC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;QACxD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACjC,yBAAyB,CAAC,UAAU,CAAC,EACrC,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;YACF,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAA;AAhDY,8BAA8B;IAD1C,UAAU,EAAE;IAMR,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;qCADL,SAAS;GAJ5B,8BAA8B,CAgD1C"}
@@ -1,7 +1,7 @@
1
1
  import { type OnModuleInit, type Type } from '@nestjs/common';
2
2
  import { DiscoveryService, ModuleRef } from '@nestjs/core';
3
3
  import { TransactionManager } from '@nestjs-transactional/core';
4
- import { type OutboxDataSourceNames } from '../dispatcher/outbox-event-publisher';
4
+ import { type OutboxDataSourceNames } from '../dispatcher/outbox-event-publisher.js';
5
5
  /**
6
6
  * Bootstrap-time scanner that walks every provider in the running
7
7
  * Nest application, finds classes decorated with
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -12,17 +11,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
11
  return function (target, key) { decorator(target, key, paramIndex); }
13
12
  };
14
13
  var OutboxListenerScanner_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.OutboxListenerScanner = void 0;
17
- exports.composeListenerId = composeListenerId;
18
- const common_1 = require("@nestjs/common");
19
- const core_1 = require("@nestjs/core");
20
- const core_2 = require("@nestjs-transactional/core");
21
- const outbox_events_handler_decorator_1 = require("../decorators/outbox-events-handler.decorator");
22
- const outbox_event_publisher_1 = require("../dispatcher/outbox-event-publisher");
23
- const event_type_resolver_1 = require("../serialization/event-type-resolver");
24
- const token_utils_1 = require("../tokens/token-utils");
25
- const errors_1 = require("../types/errors");
14
+ import { Inject, Injectable, Logger } from '@nestjs/common';
15
+ import { DiscoveryService, ModuleRef } from '@nestjs/core';
16
+ import { PropagationMode, TransactionManager } from '@nestjs-transactional/core';
17
+ import { getOutboxEventsHandlerMetadata } from '../decorators/outbox-events-handler.decorator.js';
18
+ import { OUTBOX_DATA_SOURCE_NAMES, } from '../dispatcher/outbox-event-publisher.js';
19
+ import { resolveDataSourceByEventTypeName } from '../serialization/event-type-resolver.js';
20
+ import { getEventTypeRegistryToken, getOutboxListenerRegistryToken, } from '../tokens/token-utils.js';
21
+ import { OutboxError } from '../types/errors.js';
26
22
  /**
27
23
  * Bootstrap-time scanner that walks every provider in the running
28
24
  * Nest application, finds classes decorated with
@@ -64,7 +60,7 @@ let OutboxListenerScanner = OutboxListenerScanner_1 = class OutboxListenerScanne
64
60
  moduleRef;
65
61
  dataSourceNames;
66
62
  transactionManager;
67
- logger = new common_1.Logger(OutboxListenerScanner_1.name);
63
+ logger = new Logger(OutboxListenerScanner_1.name);
68
64
  constructor(discovery, moduleRef, dataSourceNames, transactionManager) {
69
65
  this.discovery = discovery;
70
66
  this.moduleRef = moduleRef;
@@ -82,7 +78,7 @@ let OutboxListenerScanner = OutboxListenerScanner_1 = class OutboxListenerScanne
82
78
  wrapper.instance === undefined) {
83
79
  continue;
84
80
  }
85
- const metadata = (0, outbox_events_handler_decorator_1.getOutboxEventsHandlerMetadata)(wrapper.metatype);
81
+ const metadata = getOutboxEventsHandlerMetadata(wrapper.metatype);
86
82
  if (metadata === undefined) {
87
83
  continue;
88
84
  }
@@ -99,7 +95,7 @@ let OutboxListenerScanner = OutboxListenerScanner_1 = class OutboxListenerScanne
99
95
  // Defensive — every dataSource in `dataSourceNames` is also
100
96
  // in `listenerRegistries` because both maps are built from
101
97
  // the same Set. Throw rather than silently skip.
102
- throw new errors_1.OutboxError(`@OutboxEventsHandler on ${className}: no OutboxListenerRegistry registered for ` +
98
+ throw new OutboxError(`@OutboxEventsHandler on ${className}: no OutboxListenerRegistry registered for ` +
103
99
  `dataSource '${dataSource}'. This is a framework bug — please open an issue.`);
104
100
  }
105
101
  const boundHandle = rawHandle.bind(instance);
@@ -107,7 +103,7 @@ let OutboxListenerScanner = OutboxListenerScanner_1 = class OutboxListenerScanne
107
103
  const { newTransaction } = metadata;
108
104
  const invoke = async (event) => {
109
105
  if (newTransaction) {
110
- await manager.run({ propagation: core_2.PropagationMode.REQUIRES_NEW }, async () => {
106
+ await manager.run({ propagation: PropagationMode.REQUIRES_NEW }, async () => {
111
107
  await boundHandle(event);
112
108
  });
113
109
  }
@@ -135,7 +131,7 @@ let OutboxListenerScanner = OutboxListenerScanner_1 = class OutboxListenerScanne
135
131
  resolveHandlerDataSource(className, eventTypes, eventTypeRegistries) {
136
132
  const dataSourcePerEvent = new Map();
137
133
  for (const eventType of eventTypes) {
138
- const dataSource = (0, event_type_resolver_1.resolveDataSourceByEventTypeName)(eventType.name, eventTypeRegistries);
134
+ const dataSource = resolveDataSourceByEventTypeName(eventType.name, eventTypeRegistries);
139
135
  dataSourcePerEvent.set(eventType.name, dataSource);
140
136
  }
141
137
  const uniqueDataSources = new Set(dataSourcePerEvent.values());
@@ -143,7 +139,7 @@ let OutboxListenerScanner = OutboxListenerScanner_1 = class OutboxListenerScanne
143
139
  const breakdown = [...dataSourcePerEvent]
144
140
  .map(([eventName, dataSource]) => ` ${eventName} → '${dataSource}'`)
145
141
  .join('\n');
146
- throw new errors_1.OutboxError(`@OutboxEventsHandler on ${className}: events span multiple dataSources:\n${breakdown}\n` +
142
+ throw new OutboxError(`@OutboxEventsHandler on ${className}: events span multiple dataSources:\n${breakdown}\n` +
147
143
  `Handlers must be scoped to a single dataSource. Either:\n` +
148
144
  ` • register the events under the same dataSource (OutboxModule.forFeature(...))\n` +
149
145
  ` • split the handler into separate classes per dataSource\n` +
@@ -157,7 +153,7 @@ let OutboxListenerScanner = OutboxListenerScanner_1 = class OutboxListenerScanne
157
153
  collectEventTypeRegistries() {
158
154
  const registries = new Map();
159
155
  for (const dataSource of this.dataSourceNames.keys()) {
160
- registries.set(dataSource, this.moduleRef.get((0, token_utils_1.getEventTypeRegistryToken)(dataSource), {
156
+ registries.set(dataSource, this.moduleRef.get(getEventTypeRegistryToken(dataSource), {
161
157
  strict: false,
162
158
  }));
163
159
  }
@@ -166,27 +162,27 @@ let OutboxListenerScanner = OutboxListenerScanner_1 = class OutboxListenerScanne
166
162
  collectListenerRegistries() {
167
163
  const registries = new Map();
168
164
  for (const dataSource of this.dataSourceNames.keys()) {
169
- registries.set(dataSource, this.moduleRef.get((0, token_utils_1.getOutboxListenerRegistryToken)(dataSource), {
165
+ registries.set(dataSource, this.moduleRef.get(getOutboxListenerRegistryToken(dataSource), {
170
166
  strict: false,
171
167
  }));
172
168
  }
173
169
  return registries;
174
170
  }
175
171
  };
176
- exports.OutboxListenerScanner = OutboxListenerScanner;
177
- exports.OutboxListenerScanner = OutboxListenerScanner = OutboxListenerScanner_1 = __decorate([
178
- (0, common_1.Injectable)(),
179
- __param(2, (0, common_1.Inject)(outbox_event_publisher_1.OUTBOX_DATA_SOURCE_NAMES)),
180
- __metadata("design:paramtypes", [core_1.DiscoveryService,
181
- core_1.ModuleRef, Object, core_2.TransactionManager])
172
+ OutboxListenerScanner = OutboxListenerScanner_1 = __decorate([
173
+ Injectable(),
174
+ __param(2, Inject(OUTBOX_DATA_SOURCE_NAMES)),
175
+ __metadata("design:paramtypes", [DiscoveryService,
176
+ ModuleRef, Object, TransactionManager])
182
177
  ], OutboxListenerScanner);
178
+ export { OutboxListenerScanner };
183
179
  /**
184
180
  * Compose the stable listener id. Always ends with `#${EventName}`
185
181
  * so a single class handling multiple event types gets distinct ids
186
182
  * — the registry requires globally-unique ids. Exported so consumers
187
183
  * can pre-compute the id for explicit registration / tests.
188
184
  */
189
- function composeListenerId(baseId, eventType) {
185
+ export function composeListenerId(baseId, eventType) {
190
186
  return `${baseId}#${eventType.name}`;
191
187
  }
192
188
  //# sourceMappingURL=outbox-listener-scanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outbox-listener-scanner.js","sourceRoot":"","sources":["../../src/registry/outbox-listener-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbox-listener-scanner.js","sourceRoot":"","sources":["../../src/registry/outbox-listener-scanner.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { EventPublication, NewEventPublication } from '../types/event-publication';
2
- import type { PublicationStatus } from '../types/publication-status';
1
+ import type { EventPublication, NewEventPublication } from '../types/event-publication.js';
2
+ import type { PublicationStatus } from '../types/publication-status.js';
3
3
  /**
4
4
  * Options accepted by {@link EventPublicationRepository.updateStatus}.
5
5
  */
@@ -100,7 +100,18 @@ export interface EventPublicationRepository {
100
100
  * strictly before `beforeDate`. Used by the staleness monitor.
101
101
  */
102
102
  findStale(beforeDate: Date, statuses: PublicationStatus[]): Promise<EventPublication[]>;
103
- /** Find all completed publications, with optional pagination / cutoff. */
103
+ /**
104
+ * Find all completed publications, with optional pagination / cutoff,
105
+ * ordered by `completionDate` **oldest first**.
106
+ *
107
+ * The ordering is part of the contract because `limit` makes it one.
108
+ * A retention job asks for a bounded page and deletes it; if the page
109
+ * came back newest-first, a job that cannot keep up with the
110
+ * completion rate would delete only the recent rows and never reach
111
+ * the old ones, which is the exact opposite of what a retention window
112
+ * promises. Draining from the oldest end degrades correctly instead:
113
+ * falling behind shrinks the backlog, it does not strand its tail.
114
+ */
104
115
  findCompleted(options?: FindCompletedOptions): Promise<EventPublication[]>;
105
116
  /**
106
117
  * Find all incomplete publications (status other than `COMPLETED`).
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EVENT_PUBLICATION_REPOSITORY = void 0;
4
1
  /** DI token for the active {@link EventPublicationRepository}. */
5
- exports.EVENT_PUBLICATION_REPOSITORY = Symbol('EVENT_PUBLICATION_REPOSITORY');
2
+ export const EVENT_PUBLICATION_REPOSITORY = Symbol('EVENT_PUBLICATION_REPOSITORY');
6
3
  //# sourceMappingURL=event-publication-repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-publication-repository.js","sourceRoot":"","sources":["../../src/repository/event-publication-repository.ts"],"names":[],"mappings":";;;AAiJA,kEAAkE;AACrD,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"event-publication-repository.js","sourceRoot":"","sources":["../../src/repository/event-publication-repository.ts"],"names":[],"mappings":"AA4JA,kEAAkE;AAClE,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC"}
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EVENT_SERIALIZER = void 0;
4
1
  /** DI token for the active {@link EventSerializer} implementation. */
5
- exports.EVENT_SERIALIZER = Symbol('EVENT_SERIALIZER');
2
+ export const EVENT_SERIALIZER = Symbol('EVENT_SERIALIZER');
6
3
  //# sourceMappingURL=event-serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-serializer.js","sourceRoot":"","sources":["../../src/serialization/event-serializer.ts"],"names":[],"mappings":";;;AA0BA,sEAAsE;AACzD,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"event-serializer.js","sourceRoot":"","sources":["../../src/serialization/event-serializer.ts"],"names":[],"mappings":"AA0BA,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
@@ -1,13 +1,10 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.EVENT_TYPE_REGISTRY = exports.EventTypeRegistry = void 0;
10
- const common_1 = require("@nestjs/common");
7
+ import { Injectable } from '@nestjs/common';
11
8
  /**
12
9
  * Registry that maps event class names to their constructors so the
13
10
  * serializer can reconstruct class instances from stored JSON payloads.
@@ -70,10 +67,10 @@ let EventTypeRegistry = class EventTypeRegistry {
70
67
  return new Map(this.registry);
71
68
  }
72
69
  };
73
- exports.EventTypeRegistry = EventTypeRegistry;
74
- exports.EventTypeRegistry = EventTypeRegistry = __decorate([
75
- (0, common_1.Injectable)()
70
+ EventTypeRegistry = __decorate([
71
+ Injectable()
76
72
  ], EventTypeRegistry);
73
+ export { EventTypeRegistry };
77
74
  /** DI token for the {@link EventTypeRegistry}. */
78
- exports.EVENT_TYPE_REGISTRY = Symbol('EVENT_TYPE_REGISTRY');
75
+ export const EVENT_TYPE_REGISTRY = Symbol('EVENT_TYPE_REGISTRY');
79
76
  //# sourceMappingURL=event-type-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-type-registry.js","sourceRoot":"","sources":["../../src/serialization/event-type-registry.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAkD;AAElD;;;;;;;;;GASG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACX,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE5D;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAuB;QAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,eAAe,SAAS,CAAC,IAAI,wBAAwB;gBACnD,0DAA0D;gBAC1D,2DAA2D,CAC9D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,2CAA2C;IAC3C,WAAW,CAAC,UAA0B;QACpC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,eAAe,QAAQ,oBAAoB;gBACzC,+DAA+D;gBAC/D,gDAAgD,CACnD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,+EAA+E;IAC/E,MAAM;QACJ,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AA7DY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CA6D7B;AAED,kDAAkD;AACrC,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"event-type-registry.js","sourceRoot":"","sources":["../../src/serialization/event-type-registry.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;GASG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACX,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE5D;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAuB;QAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,eAAe,SAAS,CAAC,IAAI,wBAAwB;gBACnD,0DAA0D;gBAC1D,2DAA2D,CAC9D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,2CAA2C;IAC3C,WAAW,CAAC,UAA0B;QACpC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,QAAgB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,eAAe,QAAQ,oBAAoB;gBACzC,+DAA+D;gBAC/D,gDAAgD,CACnD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,+EAA+E;IAC/E,MAAM;QACJ,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AA7DY,iBAAiB;IAD7B,UAAU,EAAE;GACA,iBAAiB,CA6D7B;;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { EventTypeRegistry } from './event-type-registry';
1
+ import type { EventTypeRegistry } from './event-type-registry.js';
2
2
  /**
3
3
  * Resolve the dataSource that owns a given event-type name by walking
4
4
  * a Map of per-dataSource {@link EventTypeRegistry} instances. Returns
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveDataSourceByEventTypeName = resolveDataSourceByEventTypeName;
4
- const errors_1 = require("../types/errors");
1
+ import { OutboxError } from '../types/errors.js';
5
2
  /**
6
3
  * Resolve the dataSource that owns a given event-type name by walking
7
4
  * a Map of per-dataSource {@link EventTypeRegistry} instances. Returns
@@ -42,7 +39,7 @@ const errors_1 = require("../types/errors");
42
39
  * @throws {OutboxError} when zero or multiple registries contain the
43
40
  * event-type.
44
41
  */
45
- function resolveDataSourceByEventTypeName(eventTypeName, registries) {
42
+ export function resolveDataSourceByEventTypeName(eventTypeName, registries) {
46
43
  const matches = [];
47
44
  for (const [dataSource, registry] of registries) {
48
45
  if (registry.has(eventTypeName)) {
@@ -50,12 +47,12 @@ function resolveDataSourceByEventTypeName(eventTypeName, registries) {
50
47
  }
51
48
  }
52
49
  if (matches.length === 0) {
53
- throw new errors_1.OutboxError(`Event type '${eventTypeName}' is not registered in any dataSource. ` +
50
+ throw new OutboxError(`Event type '${eventTypeName}' is not registered in any dataSource. ` +
54
51
  `Add it to OutboxModule.forFeature([...], { dataSource: '...' }) ` +
55
52
  `in the feature module that owns the event class.`);
56
53
  }
57
54
  if (matches.length > 1) {
58
- throw new errors_1.OutboxError(`Event type '${eventTypeName}' is registered in multiple dataSources ` +
55
+ throw new OutboxError(`Event type '${eventTypeName}' is registered in multiple dataSources ` +
59
56
  `(${matches.join(', ')}). Pass an explicit { dataSource } option to ` +
60
57
  `disambiguate, or register the event in only one dataSource.`);
61
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-type-resolver.js","sourceRoot":"","sources":["../../src/serialization/event-type-resolver.ts"],"names":[],"mappings":";;AA4CA,4EA4BC;AAxED,4CAA8C;AAI9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,SAAgB,gCAAgC,CAC9C,aAAqB,EACrB,UAAkD;IAElD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;QAChD,IAAI,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,oBAAW,CACnB,eAAe,aAAa,yCAAyC;YACnE,kEAAkE;YAClE,kDAAkD,CACrD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,oBAAW,CACnB,eAAe,aAAa,0CAA0C;YACpE,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,+CAA+C;YACrE,6DAA6D,CAChE,CAAC;IACJ,CAAC;IACD,mCAAmC;IACnC,oEAAoE;IACpE,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"event-type-resolver.js","sourceRoot":"","sources":["../../src/serialization/event-type-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,gCAAgC,CAC9C,aAAqB,EACrB,UAAkD;IAElD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;QAChD,IAAI,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,WAAW,CACnB,eAAe,aAAa,yCAAyC;YACnE,kEAAkE;YAClE,kDAAkD,CACrD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,WAAW,CACnB,eAAe,aAAa,0CAA0C;YACpE,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,+CAA+C;YACrE,6DAA6D,CAChE,CAAC;IACJ,CAAC;IACD,mCAAmC;IACnC,oEAAoE;IACpE,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;AACrB,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { EventSerializer } from './event-serializer';
2
- import { EventTypeRegistry } from './event-type-registry';
1
+ import type { EventSerializer } from './event-serializer.js';
2
+ import { EventTypeRegistry } from './event-type-registry.js';
3
3
  /**
4
4
  * Default JSON-based {@link EventSerializer}. Uses `JSON.stringify` for
5
5
  * encoding and `JSON.parse` + `Object.create` for decoding, consulting