@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.
- package/README.md +38 -5
- package/dist/api/completed-event-publications.d.ts +2 -2
- package/dist/api/completed-event-publications.js +6 -9
- package/dist/api/completed-event-publications.js.map +1 -1
- package/dist/api/failed-event-publications.d.ts +3 -3
- package/dist/api/failed-event-publications.js +10 -13
- package/dist/api/failed-event-publications.js.map +1 -1
- package/dist/api/incomplete-event-publications.d.ts +3 -3
- package/dist/api/incomplete-event-publications.js +11 -14
- package/dist/api/incomplete-event-publications.js.map +1 -1
- package/dist/decorators/inject-decorators.js +12 -24
- package/dist/decorators/inject-decorators.js.map +1 -1
- package/dist/decorators/outbox-events-handler.decorator.js +6 -11
- package/dist/decorators/outbox-events-handler.decorator.js.map +1 -1
- package/dist/dispatcher/data-source-outbox-publisher.d.ts +2 -2
- package/dist/dispatcher/data-source-outbox-publisher.js +7 -11
- package/dist/dispatcher/data-source-outbox-publisher.js.map +1 -1
- package/dist/dispatcher/event-publication-processor.d.ts +5 -5
- package/dist/dispatcher/event-publication-processor.js +18 -21
- package/dist/dispatcher/event-publication-processor.js.map +1 -1
- package/dist/dispatcher/outbox-event-publisher.js +16 -19
- package/dist/dispatcher/outbox-event-publisher.js.map +1 -1
- package/dist/dispatcher/processor-options.d.ts +1 -1
- package/dist/dispatcher/processor-options.js +5 -8
- package/dist/dispatcher/processor-options.js.map +1 -1
- package/dist/externalization/describe-thrown.d.ts +20 -0
- package/dist/externalization/describe-thrown.js +46 -0
- package/dist/externalization/describe-thrown.js.map +1 -0
- package/dist/externalization/errors.d.ts +1 -1
- package/dist/externalization/errors.js +2 -6
- package/dist/externalization/errors.js.map +1 -1
- package/dist/externalization/event-externalizer.d.ts +1 -1
- package/dist/externalization/event-externalizer.js +1 -4
- package/dist/externalization/event-externalizer.js.map +1 -1
- package/dist/externalization/externalization-registry.d.ts +3 -3
- package/dist/externalization/externalization-registry.js +10 -13
- package/dist/externalization/externalization-registry.js.map +1 -1
- package/dist/externalization/externalized.decorator.js +6 -11
- package/dist/externalization/externalized.decorator.js.map +1 -1
- package/dist/externalization/types.js +1 -2
- package/dist/index.d.ts +43 -40
- package/dist/index.js +41 -61
- package/dist/index.js.map +1 -1
- package/dist/interfaces/outbox-event-handler.interface.js +1 -2
- package/dist/module/outbox-processing.module.d.ts +1 -1
- package/dist/module/outbox-processing.module.js +12 -9
- package/dist/module/outbox-processing.module.js.map +1 -1
- package/dist/module/outbox.module.d.ts +15 -8
- package/dist/module/outbox.module.js +179 -145
- package/dist/module/outbox.module.js.map +1 -1
- package/dist/recovery/outbox-cleanup-scheduler.d.ts +56 -0
- package/dist/recovery/outbox-cleanup-scheduler.js +136 -0
- package/dist/recovery/outbox-cleanup-scheduler.js.map +1 -0
- package/dist/recovery/outbox-retry-scheduler.d.ts +2 -2
- package/dist/recovery/outbox-retry-scheduler.js +11 -14
- package/dist/recovery/outbox-retry-scheduler.js.map +1 -1
- package/dist/recovery/staleness-monitor.d.ts +2 -2
- package/dist/recovery/staleness-monitor.js +14 -17
- package/dist/recovery/staleness-monitor.js.map +1 -1
- package/dist/recovery/startup-recovery.d.ts +1 -1
- package/dist/recovery/startup-recovery.js +11 -14
- package/dist/recovery/startup-recovery.js.map +1 -1
- package/dist/registry/event-publication-registry.d.ts +4 -4
- package/dist/registry/event-publication-registry.js +17 -20
- package/dist/registry/event-publication-registry.js.map +1 -1
- package/dist/registry/listener-registry.js +6 -9
- package/dist/registry/listener-registry.js.map +1 -1
- package/dist/registry/multi-ds-listener-registrar.d.ts +1 -1
- package/dist/registry/multi-ds-listener-registrar.js +15 -18
- package/dist/registry/multi-ds-listener-registrar.js.map +1 -1
- package/dist/registry/outbox-listener-scanner.d.ts +1 -1
- package/dist/registry/outbox-listener-scanner.js +23 -27
- package/dist/registry/outbox-listener-scanner.js.map +1 -1
- package/dist/repository/event-publication-repository.d.ts +14 -3
- package/dist/repository/event-publication-repository.js +1 -4
- package/dist/repository/event-publication-repository.js.map +1 -1
- package/dist/serialization/event-serializer.js +1 -4
- package/dist/serialization/event-serializer.js.map +1 -1
- package/dist/serialization/event-type-registry.js +5 -8
- package/dist/serialization/event-type-registry.js.map +1 -1
- package/dist/serialization/event-type-resolver.d.ts +1 -1
- package/dist/serialization/event-type-resolver.js +4 -7
- package/dist/serialization/event-type-resolver.js.map +1 -1
- package/dist/serialization/json-event-serializer.d.ts +2 -2
- package/dist/serialization/json-event-serializer.js +10 -13
- package/dist/serialization/json-event-serializer.js.map +1 -1
- package/dist/shutdown/drain.js +2 -6
- package/dist/shutdown/drain.js.map +1 -1
- package/dist/testing/assertable-published-events.d.ts +1 -1
- package/dist/testing/assertable-published-events.js +8 -13
- package/dist/testing/assertable-published-events.js.map +1 -1
- package/dist/testing/in-memory-repository.d.ts +3 -3
- package/dist/testing/in-memory-repository.js +32 -25
- package/dist/testing/in-memory-repository.js.map +1 -1
- package/dist/testing/index.d.ts +3 -3
- package/dist/testing/index.js +3 -19
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/published-events.d.ts +3 -3
- package/dist/testing/published-events.js +11 -14
- package/dist/testing/published-events.js.map +1 -1
- package/dist/tokens/index.d.ts +1 -1
- package/dist/tokens/index.js +1 -13
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/token-utils.js +10 -21
- package/dist/tokens/token-utils.js.map +1 -1
- package/dist/types/cleanup-config.d.ts +59 -0
- package/dist/types/cleanup-config.js +14 -0
- package/dist/types/cleanup-config.js.map +1 -0
- package/dist/types/completion-mode.js +2 -5
- package/dist/types/completion-mode.js.map +1 -1
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/errors.js +7 -16
- package/dist/types/errors.js.map +1 -1
- package/dist/types/event-publication.d.ts +1 -1
- package/dist/types/event-publication.js +1 -2
- package/dist/types/publication-status.js +2 -5
- package/dist/types/publication-status.js.map +1 -1
- package/dist/types/resubmission-options.d.ts +1 -1
- package/dist/types/resubmission-options.js +1 -5
- package/dist/types/resubmission-options.js.map +1 -1
- package/dist/types/retry-config.js +3 -6
- package/dist/types/retry-config.js.map +1 -1
- package/dist/types/staleness-config.js +3 -6
- package/dist/types/staleness-config.js.map +1 -1
- package/package.json +21 -19
package/dist/index.js
CHANGED
|
@@ -1,62 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
__exportStar(require("./dispatcher/processor-options"), exports);
|
|
43
|
-
var event_externalizer_1 = require("./externalization/event-externalizer");
|
|
44
|
-
Object.defineProperty(exports, "EVENT_EXTERNALIZER", { enumerable: true, get: function () { return event_externalizer_1.EVENT_EXTERNALIZER; } });
|
|
45
|
-
var errors_1 = require("./externalization/errors");
|
|
46
|
-
Object.defineProperty(exports, "ExternalizationError", { enumerable: true, get: function () { return errors_1.ExternalizationError; } });
|
|
47
|
-
var externalized_decorator_1 = require("./externalization/externalized.decorator");
|
|
48
|
-
Object.defineProperty(exports, "Externalized", { enumerable: true, get: function () { return externalized_decorator_1.Externalized; } });
|
|
49
|
-
Object.defineProperty(exports, "getExternalizedMetadata", { enumerable: true, get: function () { return externalized_decorator_1.getExternalizedMetadata; } });
|
|
50
|
-
Object.defineProperty(exports, "EXTERNALIZED_METADATA", { enumerable: true, get: function () { return externalized_decorator_1.EXTERNALIZED_METADATA; } });
|
|
51
|
-
var externalization_registry_1 = require("./externalization/externalization-registry");
|
|
52
|
-
Object.defineProperty(exports, "ExternalizationRegistry", { enumerable: true, get: function () { return externalization_registry_1.ExternalizationRegistry; } });
|
|
53
|
-
Object.defineProperty(exports, "EXTERNALIZATION_REGISTRY", { enumerable: true, get: function () { return externalization_registry_1.EXTERNALIZATION_REGISTRY; } });
|
|
54
|
-
__exportStar(require("./recovery/staleness-monitor"), exports);
|
|
55
|
-
__exportStar(require("./recovery/outbox-retry-scheduler"), exports);
|
|
56
|
-
__exportStar(require("./api/failed-event-publications"), exports);
|
|
57
|
-
__exportStar(require("./api/incomplete-event-publications"), exports);
|
|
58
|
-
__exportStar(require("./api/completed-event-publications"), exports);
|
|
59
|
-
__exportStar(require("./recovery/startup-recovery"), exports);
|
|
60
|
-
__exportStar(require("./module/outbox.module"), exports);
|
|
61
|
-
__exportStar(require("./module/outbox-processing.module"), exports);
|
|
1
|
+
export * from './types/publication-status.js';
|
|
2
|
+
export * from './types/event-publication.js';
|
|
3
|
+
export * from './types/completion-mode.js';
|
|
4
|
+
export * from './types/resubmission-options.js';
|
|
5
|
+
export * from './types/staleness-config.js';
|
|
6
|
+
export * from './types/cleanup-config.js';
|
|
7
|
+
export * from './types/retry-config.js';
|
|
8
|
+
export * from './types/errors.js';
|
|
9
|
+
export { DEFAULT_DRAIN_TIMEOUT_MS } from './shutdown/drain.js';
|
|
10
|
+
export * from './serialization/event-serializer.js';
|
|
11
|
+
export * from './serialization/event-type-registry.js';
|
|
12
|
+
export * from './serialization/event-type-resolver.js';
|
|
13
|
+
export * from './serialization/json-event-serializer.js';
|
|
14
|
+
export * from './repository/event-publication-repository.js';
|
|
15
|
+
export * from './registry/event-publication-registry.js';
|
|
16
|
+
export * from './registry/listener-registry.js';
|
|
17
|
+
export * from './registry/multi-ds-listener-registrar.js';
|
|
18
|
+
export * from './registry/outbox-listener-scanner.js';
|
|
19
|
+
export * from './decorators/outbox-events-handler.decorator.js';
|
|
20
|
+
export * from './decorators/inject-decorators.js';
|
|
21
|
+
export * from './tokens/index.js';
|
|
22
|
+
export * from './dispatcher/outbox-event-publisher.js';
|
|
23
|
+
export * from './dispatcher/data-source-outbox-publisher.js';
|
|
24
|
+
export * from './dispatcher/event-publication-processor.js';
|
|
25
|
+
export * from './dispatcher/processor-options.js';
|
|
26
|
+
export { EVENT_EXTERNALIZER } from './externalization/event-externalizer.js';
|
|
27
|
+
export { ExternalizationError } from './externalization/errors.js';
|
|
28
|
+
// Exported because every externalizer implementation faces the same
|
|
29
|
+
// problem: broker clients reject with values that are not `Error`s.
|
|
30
|
+
export { describeThrown } from './externalization/describe-thrown.js';
|
|
31
|
+
export { Externalized, getExternalizedMetadata, EXTERNALIZED_METADATA, } from './externalization/externalized.decorator.js';
|
|
32
|
+
export { ExternalizationRegistry, EXTERNALIZATION_REGISTRY, } from './externalization/externalization-registry.js';
|
|
33
|
+
export * from './recovery/staleness-monitor.js';
|
|
34
|
+
export * from './recovery/outbox-cleanup-scheduler.js';
|
|
35
|
+
export * from './recovery/outbox-retry-scheduler.js';
|
|
36
|
+
export * from './api/failed-event-publications.js';
|
|
37
|
+
export * from './api/incomplete-event-publications.js';
|
|
38
|
+
export * from './api/completed-event-publications.js';
|
|
39
|
+
export * from './recovery/startup-recovery.js';
|
|
40
|
+
export * from './module/outbox.module.js';
|
|
41
|
+
export * from './module/outbox-processing.module.js';
|
|
62
42
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,8CAA8C,CAAC;AAE7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,iDAAiD,CAAC;AAChE,cAAc,mCAAmC,CAAC;AAElD,cAAc,mBAAmB,CAAC;AAIlC,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mCAAmC,CAAC;AAIlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,6CAA6C,CAAC;AAKrD,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,+CAA+C,CAAC;AAEvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AAErD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,gCAAgC,CAAC;AAE/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type OnApplicationBootstrap, type OnApplicationShutdown } from '@nestjs/common';
|
|
2
|
-
import { type OutboxProcessingBundle } from './outbox.module';
|
|
2
|
+
import { type OutboxProcessingBundle } from './outbox.module.js';
|
|
3
3
|
/**
|
|
4
4
|
* Auto-starts every configured per-dataSource
|
|
5
5
|
* {@link EventPublicationProcessor} and {@link StalenessMonitor} on
|
|
@@ -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,10 +10,8 @@ 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
|
-
|
|
15
|
-
|
|
16
|
-
const common_1 = require("@nestjs/common");
|
|
17
|
-
const outbox_module_1 = require("./outbox.module");
|
|
13
|
+
import { Inject, Module, } from '@nestjs/common';
|
|
14
|
+
import { OUTBOX_PROCESSING_BUNDLE } from './outbox.module.js';
|
|
18
15
|
/**
|
|
19
16
|
* Auto-starts every configured per-dataSource
|
|
20
17
|
* {@link EventPublicationProcessor} and {@link StalenessMonitor} on
|
|
@@ -52,6 +49,11 @@ let OutboxProcessingModule = class OutboxProcessingModule {
|
|
|
52
49
|
for (const scheduler of this.bundle.retrySchedulers) {
|
|
53
50
|
scheduler.start();
|
|
54
51
|
}
|
|
52
|
+
// Likewise a no-op unless `cleanup.interval > 0` (C4) — retention
|
|
53
|
+
// of completed publications is opt-in, and stays manual otherwise.
|
|
54
|
+
for (const scheduler of this.bundle.cleanupSchedulers) {
|
|
55
|
+
scheduler.start();
|
|
56
|
+
}
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
57
59
|
* Drain every worker before NestJS proceeds with the rest of the
|
|
@@ -74,13 +76,14 @@ let OutboxProcessingModule = class OutboxProcessingModule {
|
|
|
74
76
|
...this.bundle.processors.map((processor) => processor.stop()),
|
|
75
77
|
...this.bundle.monitors.map((monitor) => monitor.stop()),
|
|
76
78
|
...this.bundle.retrySchedulers.map((scheduler) => scheduler.stop()),
|
|
79
|
+
...this.bundle.cleanupSchedulers.map((scheduler) => scheduler.stop()),
|
|
77
80
|
]);
|
|
78
81
|
}
|
|
79
82
|
};
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
(0,
|
|
83
|
-
__param(0, (0, common_1.Inject)(outbox_module_1.OUTBOX_PROCESSING_BUNDLE)),
|
|
83
|
+
OutboxProcessingModule = __decorate([
|
|
84
|
+
Module({}),
|
|
85
|
+
__param(0, Inject(OUTBOX_PROCESSING_BUNDLE)),
|
|
84
86
|
__metadata("design:paramtypes", [Object])
|
|
85
87
|
], OutboxProcessingModule);
|
|
88
|
+
export { OutboxProcessingModule };
|
|
86
89
|
//# sourceMappingURL=outbox-processing.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox-processing.module.js","sourceRoot":"","sources":["../../src/module/outbox-processing.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"outbox-processing.module.js","sourceRoot":"","sources":["../../src/module/outbox-processing.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,MAAM,EACN,MAAM,GAGP,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAA+B,MAAM,oBAAoB,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAGd;IAFnB,YAEmB,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAC9C,CAAC;IAEJ,sBAAsB;QACpB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/C,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,iEAAiE;QACjE,wCAAwC;QACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACpD,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,kEAAkE;QAClE,mEAAmE;QACnE,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtD,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC9D,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACxD,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACnE,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjDY,sBAAsB;IADlC,MAAM,CAAC,EAAE,CAAC;IAGN,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;;GAFxB,sBAAsB,CAiDlC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { type DynamicModule, type InjectionToken, type ModuleMetadata, type Provider, type Type } from '@nestjs/common';
|
|
2
|
-
import { EventPublicationProcessor } from '../dispatcher/event-publication-processor';
|
|
3
|
-
import { type EventPublicationProcessorOptions } from '../dispatcher/processor-options';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { type
|
|
9
|
-
import {
|
|
2
|
+
import { EventPublicationProcessor } from '../dispatcher/event-publication-processor.js';
|
|
3
|
+
import { type EventPublicationProcessorOptions } from '../dispatcher/processor-options.js';
|
|
4
|
+
import { OutboxCleanupScheduler } from '../recovery/outbox-cleanup-scheduler.js';
|
|
5
|
+
import { OutboxRetryScheduler } from '../recovery/outbox-retry-scheduler.js';
|
|
6
|
+
import { StalenessMonitor } from '../recovery/staleness-monitor.js';
|
|
7
|
+
import { StartupRecoveryService } from '../recovery/startup-recovery.js';
|
|
8
|
+
import { type OutboxCleanupConfig } from '../types/cleanup-config.js';
|
|
9
|
+
import { CompletionMode } from '../types/completion-mode.js';
|
|
10
|
+
import { type OutboxRetryConfig } from '../types/retry-config.js';
|
|
11
|
+
import { type StalenessConfig } from '../types/staleness-config.js';
|
|
10
12
|
/**
|
|
11
13
|
* Synchronous options for {@link OutboxModule.forRoot}.
|
|
12
14
|
*
|
|
@@ -43,6 +45,8 @@ export interface OutboxModuleOptions {
|
|
|
43
45
|
readonly staleness?: Partial<StalenessConfig>;
|
|
44
46
|
/** Automatic retry policy for FAILED publications (DD-026). Off unless `maxAttempts > 0`. */
|
|
45
47
|
readonly retry?: Partial<OutboxRetryConfig>;
|
|
48
|
+
/** Retention policy for COMPLETED publications (C4). Off unless `interval > 0`. */
|
|
49
|
+
readonly cleanup?: Partial<OutboxCleanupConfig>;
|
|
46
50
|
readonly republishOnStartup?: boolean;
|
|
47
51
|
readonly startupBatchSize?: number;
|
|
48
52
|
readonly completionMode?: CompletionMode;
|
|
@@ -71,6 +75,8 @@ export interface OutboxModuleAsyncFactoryResult {
|
|
|
71
75
|
readonly staleness?: Partial<StalenessConfig>;
|
|
72
76
|
/** Automatic retry policy for FAILED publications (DD-026). Off unless `maxAttempts > 0`. */
|
|
73
77
|
readonly retry?: Partial<OutboxRetryConfig>;
|
|
78
|
+
/** Retention policy for COMPLETED publications (C4). Off unless `interval > 0`. */
|
|
79
|
+
readonly cleanup?: Partial<OutboxCleanupConfig>;
|
|
74
80
|
readonly republishOnStartup?: boolean;
|
|
75
81
|
readonly startupBatchSize?: number;
|
|
76
82
|
readonly completionMode?: CompletionMode;
|
|
@@ -110,6 +116,7 @@ export interface OutboxProcessingBundle {
|
|
|
110
116
|
readonly processors: readonly EventPublicationProcessor[];
|
|
111
117
|
readonly monitors: readonly StalenessMonitor[];
|
|
112
118
|
readonly retrySchedulers: readonly OutboxRetryScheduler[];
|
|
119
|
+
readonly cleanupSchedulers: readonly OutboxCleanupScheduler[];
|
|
113
120
|
readonly recoveryServices: readonly StartupRecoveryService[];
|
|
114
121
|
}
|
|
115
122
|
/**
|