@prodforcode/event-forge-typeorm 1.0.1 → 1.0.3
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/dist/entities/inbox-message.entity.js +12 -12
- package/dist/entities/inbox-message.entity.js.map +1 -1
- package/dist/entities/outbox-message.entity.js +17 -17
- package/dist/entities/outbox-message.entity.js.map +1 -1
- package/dist/repositories/typeorm-outbox.repository.d.ts.map +1 -1
- package/dist/repositories/typeorm-outbox.repository.js +26 -23
- package/dist/repositories/typeorm-outbox.repository.js.map +1 -1
- package/package.json +2 -2
|
@@ -30,7 +30,7 @@ __decorate([
|
|
|
30
30
|
__metadata("design:type", String)
|
|
31
31
|
], InboxMessageEntity.prototype, "id", void 0);
|
|
32
32
|
__decorate([
|
|
33
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
|
|
33
|
+
(0, typeorm_1.Column)({ name: 'message_id', type: 'varchar', length: 255 }),
|
|
34
34
|
__metadata("design:type", String)
|
|
35
35
|
], InboxMessageEntity.prototype, "messageId", void 0);
|
|
36
36
|
__decorate([
|
|
@@ -38,11 +38,11 @@ __decorate([
|
|
|
38
38
|
__metadata("design:type", String)
|
|
39
39
|
], InboxMessageEntity.prototype, "source", void 0);
|
|
40
40
|
__decorate([
|
|
41
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
|
|
41
|
+
(0, typeorm_1.Column)({ name: 'event_type', type: 'varchar', length: 255 }),
|
|
42
42
|
__metadata("design:type", String)
|
|
43
43
|
], InboxMessageEntity.prototype, "eventType", void 0);
|
|
44
44
|
__decorate([
|
|
45
|
-
(0, typeorm_1.Column)({ type: '
|
|
45
|
+
(0, typeorm_1.Column)({ type: 'jsonb' }),
|
|
46
46
|
__metadata("design:type", Object)
|
|
47
47
|
], InboxMessageEntity.prototype, "payload", void 0);
|
|
48
48
|
__decorate([
|
|
@@ -54,27 +54,27 @@ __decorate([
|
|
|
54
54
|
__metadata("design:type", String)
|
|
55
55
|
], InboxMessageEntity.prototype, "status", void 0);
|
|
56
56
|
__decorate([
|
|
57
|
-
(0, typeorm_1.Column)({ type: '
|
|
57
|
+
(0, typeorm_1.Column)({ name: 'processed_at', type: 'timestamptz', nullable: true }),
|
|
58
58
|
__metadata("design:type", Date)
|
|
59
59
|
], InboxMessageEntity.prototype, "processedAt", void 0);
|
|
60
60
|
__decorate([
|
|
61
|
-
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
61
|
+
(0, typeorm_1.Column)({ name: 'error_message', type: 'text', nullable: true }),
|
|
62
62
|
__metadata("design:type", String)
|
|
63
63
|
], InboxMessageEntity.prototype, "errorMessage", void 0);
|
|
64
64
|
__decorate([
|
|
65
|
-
(0, typeorm_1.CreateDateColumn)(),
|
|
65
|
+
(0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
|
|
66
66
|
__metadata("design:type", Date)
|
|
67
67
|
], InboxMessageEntity.prototype, "createdAt", void 0);
|
|
68
68
|
__decorate([
|
|
69
|
-
(0, typeorm_1.CreateDateColumn)(),
|
|
69
|
+
(0, typeorm_1.CreateDateColumn)({ name: 'received_at' }),
|
|
70
70
|
__metadata("design:type", Date)
|
|
71
71
|
], InboxMessageEntity.prototype, "receivedAt", void 0);
|
|
72
72
|
exports.InboxMessageEntity = InboxMessageEntity = __decorate([
|
|
73
73
|
(0, typeorm_1.Entity)('inbox_messages'),
|
|
74
|
-
(0, typeorm_1.Index)(['messageId', 'source'], { unique: true }),
|
|
75
|
-
(0, typeorm_1.Index)(['eventType']),
|
|
76
|
-
(0, typeorm_1.Index)(['status']),
|
|
77
|
-
(0, typeorm_1.Index)(['createdAt']),
|
|
78
|
-
(0, typeorm_1.Index)(['receivedAt'])
|
|
74
|
+
(0, typeorm_1.Index)('idx_inbox_unique', ['messageId', 'source'], { unique: true }),
|
|
75
|
+
(0, typeorm_1.Index)('idx_inbox_event_type', ['eventType']),
|
|
76
|
+
(0, typeorm_1.Index)('idx_inbox_status', ['status']),
|
|
77
|
+
(0, typeorm_1.Index)('idx_inbox_created_at', ['createdAt']),
|
|
78
|
+
(0, typeorm_1.Index)('idx_inbox_received_at', ['receivedAt'])
|
|
79
79
|
], InboxMessageEntity);
|
|
80
80
|
//# sourceMappingURL=inbox-message.entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-message.entity.js","sourceRoot":"","sources":["../../src/entities/inbox-message.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAiF;AACjF,qCAMiB;AAaV,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAE7B,EAAE,CAAS;IAGX,SAAS,CAAS;IAGlB,MAAM,CAAS;IAGf,SAAS,CAAS;IAGlB,OAAO,CAA0B;IAOjC,MAAM,CAAqB;IAG3B,WAAW,CAAQ;IAGnB,YAAY,CAAU;IAGtB,SAAS,CAAO;IAGhB,UAAU,CAAO;CAClB,CAAA;AAlCY,gDAAkB;AAE7B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;8CACpB;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;
|
|
1
|
+
{"version":3,"file":"inbox-message.entity.js","sourceRoot":"","sources":["../../src/entities/inbox-message.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAiF;AACjF,qCAMiB;AAaV,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAE7B,EAAE,CAAS;IAGX,SAAS,CAAS;IAGlB,MAAM,CAAS;IAGf,SAAS,CAAS;IAGlB,OAAO,CAA0B;IAOjC,MAAM,CAAqB;IAG3B,WAAW,CAAQ;IAGnB,YAAY,CAAU;IAGtB,SAAS,CAAO;IAGhB,UAAU,CAAO;CAClB,CAAA;AAlCY,gDAAkB;AAE7B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;8CACpB;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;qDAC3C;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;kDAC1B;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;qDAC3C;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;mDACO;AAOjC;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,qCAAkB;QACxB,OAAO,EAAE,qCAAkB,CAAC,QAAQ;KACrC,CAAC;;kDACyB;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxD,IAAI;uDAAC;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDAC1C;AAGtB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;qDAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAC9B,IAAI;sDAAC;6BAjCN,kBAAkB;IAN9B,IAAA,gBAAM,EAAC,gBAAgB,CAAC;IACxB,IAAA,eAAK,EAAC,kBAAkB,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACpE,IAAA,eAAK,EAAC,sBAAsB,EAAE,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAA,eAAK,EAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAA,eAAK,EAAC,sBAAsB,EAAE,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAA,eAAK,EAAC,uBAAuB,EAAE,CAAC,YAAY,CAAC,CAAC;GAClC,kBAAkB,CAkC9B"}
|
|
@@ -35,23 +35,23 @@ __decorate([
|
|
|
35
35
|
__metadata("design:type", String)
|
|
36
36
|
], OutboxMessageEntity.prototype, "id", void 0);
|
|
37
37
|
__decorate([
|
|
38
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
|
|
38
|
+
(0, typeorm_1.Column)({ name: 'aggregate_type', type: 'varchar', length: 255 }),
|
|
39
39
|
__metadata("design:type", String)
|
|
40
40
|
], OutboxMessageEntity.prototype, "aggregateType", void 0);
|
|
41
41
|
__decorate([
|
|
42
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
|
|
42
|
+
(0, typeorm_1.Column)({ name: 'aggregate_id', type: 'varchar', length: 255 }),
|
|
43
43
|
__metadata("design:type", String)
|
|
44
44
|
], OutboxMessageEntity.prototype, "aggregateId", void 0);
|
|
45
45
|
__decorate([
|
|
46
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
|
|
46
|
+
(0, typeorm_1.Column)({ name: 'event_type', type: 'varchar', length: 255 }),
|
|
47
47
|
__metadata("design:type", String)
|
|
48
48
|
], OutboxMessageEntity.prototype, "eventType", void 0);
|
|
49
49
|
__decorate([
|
|
50
|
-
(0, typeorm_1.Column)({ type: '
|
|
50
|
+
(0, typeorm_1.Column)({ type: 'jsonb' }),
|
|
51
51
|
__metadata("design:type", Object)
|
|
52
52
|
], OutboxMessageEntity.prototype, "payload", void 0);
|
|
53
53
|
__decorate([
|
|
54
|
-
(0, typeorm_1.Column)({ type: '
|
|
54
|
+
(0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
|
|
55
55
|
__metadata("design:type", Object)
|
|
56
56
|
], OutboxMessageEntity.prototype, "metadata", void 0);
|
|
57
57
|
__decorate([
|
|
@@ -63,44 +63,44 @@ __decorate([
|
|
|
63
63
|
__metadata("design:type", String)
|
|
64
64
|
], OutboxMessageEntity.prototype, "status", void 0);
|
|
65
65
|
__decorate([
|
|
66
|
-
(0, typeorm_1.Column)({ type: 'int', default: 0 }),
|
|
66
|
+
(0, typeorm_1.Column)({ name: 'retry_count', type: 'int', default: 0 }),
|
|
67
67
|
__metadata("design:type", Number)
|
|
68
68
|
], OutboxMessageEntity.prototype, "retryCount", void 0);
|
|
69
69
|
__decorate([
|
|
70
|
-
(0, typeorm_1.Column)({ type: 'int', default:
|
|
70
|
+
(0, typeorm_1.Column)({ name: 'max_retries', type: 'int', default: 5 }),
|
|
71
71
|
__metadata("design:type", Number)
|
|
72
72
|
], OutboxMessageEntity.prototype, "maxRetries", void 0);
|
|
73
73
|
__decorate([
|
|
74
|
-
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
74
|
+
(0, typeorm_1.Column)({ name: 'error_message', type: 'text', nullable: true }),
|
|
75
75
|
__metadata("design:type", String)
|
|
76
76
|
], OutboxMessageEntity.prototype, "errorMessage", void 0);
|
|
77
77
|
__decorate([
|
|
78
|
-
(0, typeorm_1.Column)({ type: '
|
|
78
|
+
(0, typeorm_1.Column)({ name: 'scheduled_at', type: 'timestamptz', default: () => 'now()' }),
|
|
79
79
|
__metadata("design:type", Date)
|
|
80
80
|
], OutboxMessageEntity.prototype, "scheduledAt", void 0);
|
|
81
81
|
__decorate([
|
|
82
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
82
|
+
(0, typeorm_1.Column)({ name: 'locked_by', type: 'varchar', length: 255, nullable: true }),
|
|
83
83
|
__metadata("design:type", String)
|
|
84
84
|
], OutboxMessageEntity.prototype, "lockedBy", void 0);
|
|
85
85
|
__decorate([
|
|
86
|
-
(0, typeorm_1.Column)({ type: '
|
|
86
|
+
(0, typeorm_1.Column)({ name: 'locked_at', type: 'timestamptz', nullable: true }),
|
|
87
87
|
__metadata("design:type", Date)
|
|
88
88
|
], OutboxMessageEntity.prototype, "lockedAt", void 0);
|
|
89
89
|
__decorate([
|
|
90
|
-
(0, typeorm_1.CreateDateColumn)(),
|
|
90
|
+
(0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
|
|
91
91
|
__metadata("design:type", Date)
|
|
92
92
|
], OutboxMessageEntity.prototype, "createdAt", void 0);
|
|
93
93
|
__decorate([
|
|
94
|
-
(0, typeorm_1.UpdateDateColumn)(),
|
|
94
|
+
(0, typeorm_1.UpdateDateColumn)({ name: 'updated_at' }),
|
|
95
95
|
__metadata("design:type", Date)
|
|
96
96
|
], OutboxMessageEntity.prototype, "updatedAt", void 0);
|
|
97
97
|
exports.OutboxMessageEntity = OutboxMessageEntity = __decorate([
|
|
98
98
|
(0, typeorm_1.Entity)('outbox_messages'),
|
|
99
|
-
(0, typeorm_1.Index)(['status', 'scheduledAt', 'createdAt'], {
|
|
99
|
+
(0, typeorm_1.Index)('idx_outbox_pending', ['status', 'scheduledAt', 'createdAt'], {
|
|
100
100
|
where: 'status IN (\'pending\', \'failed\')',
|
|
101
101
|
}),
|
|
102
|
-
(0, typeorm_1.Index)(['aggregateType', 'aggregateId']),
|
|
103
|
-
(0, typeorm_1.Index)(['eventType']),
|
|
104
|
-
(0, typeorm_1.Index)(['createdAt'])
|
|
102
|
+
(0, typeorm_1.Index)('idx_outbox_aggregate', ['aggregateType', 'aggregateId']),
|
|
103
|
+
(0, typeorm_1.Index)('idx_outbox_event_type', ['eventType']),
|
|
104
|
+
(0, typeorm_1.Index)('idx_outbox_created_at', ['createdAt'])
|
|
105
105
|
], OutboxMessageEntity);
|
|
106
106
|
//# sourceMappingURL=outbox-message.entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox-message.entity.js","sourceRoot":"","sources":["../../src/entities/outbox-message.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAmF;AACnF,qCAOiB;AAcV,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE9B,EAAE,CAAS;IAGX,aAAa,CAAS;IAGtB,WAAW,CAAS;IAGpB,SAAS,CAAS;IAGlB,OAAO,CAA0B;IAGjC,QAAQ,CAA2B;IAOnC,MAAM,CAAsB;IAG5B,UAAU,CAAS;IAGnB,UAAU,CAAS;IAGnB,YAAY,CAAU;IAGtB,WAAW,CAAQ;IAGnB,QAAQ,CAAU;IAGlB,QAAQ,CAAQ;IAGhB,SAAS,CAAO;IAGhB,SAAS,CAAO;CACjB,CAAA;AAjDY,kDAAmB;AAE9B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;+CACpB;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;
|
|
1
|
+
{"version":3,"file":"outbox-message.entity.js","sourceRoot":"","sources":["../../src/entities/outbox-message.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAmF;AACnF,qCAOiB;AAcV,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE9B,EAAE,CAAS;IAGX,aAAa,CAAS;IAGtB,WAAW,CAAS;IAGpB,SAAS,CAAS;IAGlB,OAAO,CAA0B;IAGjC,QAAQ,CAA2B;IAOnC,MAAM,CAAsB;IAG5B,UAAU,CAAS;IAGnB,UAAU,CAAS;IAGnB,YAAY,CAAU;IAGtB,WAAW,CAAQ;IAGnB,QAAQ,CAAU;IAGlB,QAAQ,CAAQ;IAGhB,SAAS,CAAO;IAGhB,SAAS,CAAO;CACjB,CAAA;AAjDY,kDAAmB;AAE9B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;+CACpB;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;0DAC3C;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;wDAC3C;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;sDAC3C;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;oDACO;AAGjC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACP;AAOnC;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,sCAAmB;QACzB,OAAO,EAAE,sCAAmB,CAAC,OAAO;KACrC,CAAC;;mDAC0B;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;uDACtC;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;uDACtC;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDAC1C;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;8BAChE,IAAI;wDAAC;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDAC1D;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxD,IAAI;qDAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;sDAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;sDAAC;8BAhDL,mBAAmB;IAP/B,IAAA,gBAAM,EAAC,iBAAiB,CAAC;IACzB,IAAA,eAAK,EAAC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE;QACnE,KAAK,EAAE,qCAAqC;KAC7C,CAAC;IACD,IAAA,eAAK,EAAC,sBAAsB,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAA,eAAK,EAAC,uBAAuB,EAAE,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAA,eAAK,EAAC,uBAAuB,EAAE,CAAC,WAAW,CAAC,CAAC;GACjC,mBAAmB,CAiD/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeorm-outbox.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/typeorm-outbox.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAuC,MAAM,SAAS,CAAC;AAS1E,qBAAa,uBAAwB,YAAW,iBAAiB;IAGnD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEhC,UAAU,EAAE,UAAU;IAI7C,MAAM,CACV,GAAG,EAAE,sBAAsB,EAC3B,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,aAAa,CAAC;IAoBnB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"typeorm-outbox.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/typeorm-outbox.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAuC,MAAM,SAAS,CAAC;AAS1E,qBAAa,uBAAwB,YAAW,iBAAiB;IAGnD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;gBAEhC,UAAU,EAAE,UAAU;IAI7C,MAAM,CACV,GAAG,EAAE,sBAAsB,EAC3B,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,aAAa,CAAC;IAoBnB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAwC9E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBnD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5C,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAKlF"}
|
|
@@ -29,29 +29,32 @@ class TypeOrmOutboxRepository {
|
|
|
29
29
|
return saved;
|
|
30
30
|
}
|
|
31
31
|
async fetchAndLockPending(limit, lockerId) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
32
|
+
return this.dataSource.transaction(async (manager) => {
|
|
33
|
+
const now = new Date();
|
|
34
|
+
const query = manager
|
|
35
|
+
.getRepository(outbox_message_entity_1.OutboxMessageEntity)
|
|
36
|
+
.createQueryBuilder('outbox')
|
|
37
|
+
.where('outbox.status IN (:...statuses)', {
|
|
38
|
+
statuses: [event_forge_core_1.OutboxMessageStatus.PENDING, event_forge_core_1.OutboxMessageStatus.FAILED],
|
|
39
|
+
})
|
|
40
|
+
.andWhere('(outbox.scheduledAt IS NULL OR outbox.scheduledAt <= :now)', { now })
|
|
41
|
+
.andWhere('(outbox.lockedAt IS NULL OR outbox.lockedAt < :lockTimeout)', { lockTimeout: new Date(Date.now() - 5 * 60 * 1000) })
|
|
42
|
+
.orderBy('outbox.createdAt', 'ASC')
|
|
43
|
+
.limit(limit)
|
|
44
|
+
.setLock('pessimistic_write')
|
|
45
|
+
.setOnLocked('skip_locked');
|
|
46
|
+
const messages = await query.getMany();
|
|
47
|
+
if (messages.length > 0) {
|
|
48
|
+
const ids = messages.map((m) => m.id);
|
|
49
|
+
await manager.getRepository(outbox_message_entity_1.OutboxMessageEntity).update(ids, {
|
|
50
|
+
status: event_forge_core_1.OutboxMessageStatus.PROCESSING,
|
|
51
|
+
lockedBy: lockerId,
|
|
52
|
+
lockedAt: new Date(),
|
|
53
|
+
});
|
|
54
|
+
return manager.getRepository(outbox_message_entity_1.OutboxMessageEntity).findByIds(ids);
|
|
55
|
+
}
|
|
56
|
+
return [];
|
|
57
|
+
});
|
|
55
58
|
}
|
|
56
59
|
async markPublished(id) {
|
|
57
60
|
await this.repository.update(id, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeorm-outbox.repository.js","sourceRoot":"","sources":["../../src/repositories/typeorm-outbox.repository.ts"],"names":[],"mappings":";;;AAAA,oEAKuC;AACvC,qCAA0E;AAG1E,6EAAwE;AAMxE,MAAa,uBAAuB;IAGL;IAFZ,UAAU,CAAkC;IAE7D,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,2CAAmB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAA2B,EAC3B,kBAA4B;QAE5B,MAAM,aAAa,GAAG,kBAA+C,CAAC;QACtE,MAAM,IAAI,GAAG,aAAa,EAAE,aAAa,CAAC,2CAAmB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;QAElF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC;YAC/B,MAAM,EAAE,sCAAmB,CAAC,OAAO;YACnC,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,QAAgB;QACvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"typeorm-outbox.repository.js","sourceRoot":"","sources":["../../src/repositories/typeorm-outbox.repository.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prodforcode/event-forge-typeorm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "TypeORM adapter for Universal Inbox-Outbox Pattern (PostgreSQL)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"commander": "^14.0.2",
|
|
25
25
|
"typeorm": "^0.3.17",
|
|
26
|
-
"@prodforcode/event-forge-core": "1.0.
|
|
26
|
+
"@prodforcode/event-forge-core": "1.0.3"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/better-sqlite3": "^7.6.8",
|