@message-queue-toolkit/core 24.2.0 → 25.1.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 +375 -25
- package/dist/events/DomainEventEmitter.js +1 -1
- package/dist/events/DomainEventEmitter.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/payload-store/JsonStreamStringifySerializer.d.ts +1 -1
- package/dist/queues/AbstractQueueService.d.ts +15 -3
- package/dist/queues/AbstractQueueService.js +51 -17
- package/dist/queues/AbstractQueueService.js.map +1 -1
- package/dist/queues/HandlerContainer.d.ts +36 -11
- package/dist/queues/HandlerContainer.js +69 -21
- package/dist/queues/HandlerContainer.js.map +1 -1
- package/dist/queues/HandlerSpy.d.ts +26 -3
- package/dist/queues/HandlerSpy.js +40 -8
- package/dist/queues/HandlerSpy.js.map +1 -1
- package/dist/queues/MessageSchemaContainer.d.ts +52 -6
- package/dist/queues/MessageSchemaContainer.js +126 -18
- package/dist/queues/MessageSchemaContainer.js.map +1 -1
- package/dist/queues/MessageTypeResolver.d.ts +154 -0
- package/dist/queues/MessageTypeResolver.js +82 -0
- package/dist/queues/MessageTypeResolver.js.map +1 -0
- package/dist/types/MessageQueueTypes.d.ts +2 -1
- package/dist/types/queueOptionsTypes.d.ts +148 -3
- package/dist/types/queueOptionsTypes.js +16 -1
- package/dist/types/queueOptionsTypes.js.map +1 -1
- package/dist/utils/startupResourcePollingUtils.d.ts +59 -0
- package/dist/utils/startupResourcePollingUtils.js +199 -0
- package/dist/utils/startupResourcePollingUtils.js.map +1 -0
- package/package.json +5 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { types } from 'node:util';
|
|
2
2
|
import { resolveGlobalErrorLogObject, stringValueSerializer, } from '@lokalise/node-core';
|
|
3
3
|
import { MESSAGE_DEDUPLICATION_OPTIONS_SCHEMA, } from '@message-queue-toolkit/schemas';
|
|
4
|
+
import { getProperty, setProperty } from 'dot-prop';
|
|
4
5
|
import { isAcquireLockTimeoutError, } from "../message-deduplication/AcquireLockTimeoutError.js";
|
|
5
6
|
import { DEFAULT_MESSAGE_DEDUPLICATION_OPTIONS, DeduplicationRequesterEnum, noopReleasableLock, } from "../message-deduplication/messageDeduplicationTypes.js";
|
|
6
7
|
import { jsonStreamStringifySerializer } from "../payload-store/JsonStreamStringifySerializer.js";
|
|
@@ -9,8 +10,9 @@ import { isDestroyable, isMultiPayloadStoreConfig } from "../payload-store/paylo
|
|
|
9
10
|
import { isRetryDateExceeded } from "../utils/dateUtils.js";
|
|
10
11
|
import { streamWithKnownSizeToString } from "../utils/streamUtils.js";
|
|
11
12
|
import { toDatePreprocessor } from "../utils/toDateProcessor.js";
|
|
12
|
-
import { resolveHandlerSpy } from "./HandlerSpy.js";
|
|
13
|
+
import { resolveHandlerSpy, TYPE_NOT_RESOLVED } from "./HandlerSpy.js";
|
|
13
14
|
import { MessageSchemaContainer } from "./MessageSchemaContainer.js";
|
|
15
|
+
import { isMessageTypePathConfig, resolveMessageType, } from "./MessageTypeResolver.js";
|
|
14
16
|
export class AbstractQueueService {
|
|
15
17
|
/**
|
|
16
18
|
* Used to keep track of the number of `retryLater` results received for a message to be able to
|
|
@@ -33,7 +35,10 @@ export class AbstractQueueService {
|
|
|
33
35
|
errorReporter;
|
|
34
36
|
logger;
|
|
35
37
|
messageIdField;
|
|
36
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Configuration for resolving message types.
|
|
40
|
+
*/
|
|
41
|
+
messageTypeResolver;
|
|
37
42
|
logMessages;
|
|
38
43
|
creationConfig;
|
|
39
44
|
locatorConfig;
|
|
@@ -54,7 +59,7 @@ export class AbstractQueueService {
|
|
|
54
59
|
this.logger = logger;
|
|
55
60
|
this.messageMetricsManager = messageMetricsManager;
|
|
56
61
|
this.messageIdField = options.messageIdField ?? 'id';
|
|
57
|
-
this.
|
|
62
|
+
this.messageTypeResolver = options.messageTypeResolver;
|
|
58
63
|
this.messageTimestampField = options.messageTimestampField ?? 'timestamp';
|
|
59
64
|
this.messageDeduplicationIdField = options.messageDeduplicationIdField ?? 'deduplicationId';
|
|
60
65
|
this.messageDeduplicationOptionsField =
|
|
@@ -74,24 +79,45 @@ export class AbstractQueueService {
|
|
|
74
79
|
this.isInitted = false;
|
|
75
80
|
}
|
|
76
81
|
resolveConsumerMessageSchemaContainer(options) {
|
|
77
|
-
const messageSchemas = options.handlers.map((entry) =>
|
|
82
|
+
const messageSchemas = options.handlers.map((entry) => ({
|
|
83
|
+
schema: entry.schema,
|
|
84
|
+
messageType: entry.messageType,
|
|
85
|
+
}));
|
|
78
86
|
const messageDefinitions = options.handlers
|
|
79
|
-
.
|
|
80
|
-
.
|
|
87
|
+
.filter((entry) => entry.definition !== undefined)
|
|
88
|
+
.map((entry) => ({
|
|
89
|
+
// biome-ignore lint/style/noNonNullAssertion: filtered above
|
|
90
|
+
definition: entry.definition,
|
|
91
|
+
messageType: entry.messageType,
|
|
92
|
+
}));
|
|
81
93
|
return new MessageSchemaContainer({
|
|
82
|
-
|
|
94
|
+
messageTypeResolver: options.messageTypeResolver,
|
|
83
95
|
messageSchemas,
|
|
84
96
|
messageDefinitions,
|
|
85
97
|
});
|
|
86
98
|
}
|
|
87
99
|
resolvePublisherMessageSchemaContainer(options) {
|
|
88
|
-
const messageSchemas = options.messageSchemas;
|
|
100
|
+
const messageSchemas = options.messageSchemas.map((schema) => ({ schema }));
|
|
89
101
|
return new MessageSchemaContainer({
|
|
90
|
-
|
|
102
|
+
messageTypeResolver: options.messageTypeResolver,
|
|
91
103
|
messageSchemas,
|
|
92
104
|
messageDefinitions: [],
|
|
93
105
|
});
|
|
94
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Resolves message type from message data and optional attributes using messageTypeResolver.
|
|
109
|
+
*
|
|
110
|
+
* @param messageData - The parsed message data
|
|
111
|
+
* @param messageAttributes - Optional message-level attributes (e.g., PubSub attributes)
|
|
112
|
+
* @returns The resolved message type, or undefined if not configured
|
|
113
|
+
*/
|
|
114
|
+
resolveMessageTypeFromMessage(messageData, messageAttributes) {
|
|
115
|
+
if (this.messageTypeResolver) {
|
|
116
|
+
const context = { messageData, messageAttributes };
|
|
117
|
+
return resolveMessageType(this.messageTypeResolver, context);
|
|
118
|
+
}
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
95
121
|
/**
|
|
96
122
|
* Format message for logging
|
|
97
123
|
*/
|
|
@@ -117,10 +143,14 @@ export class AbstractQueueService {
|
|
|
117
143
|
handleMessageProcessed(params) {
|
|
118
144
|
const { message, processingResult, messageId } = params;
|
|
119
145
|
const messageProcessingEndTimestamp = Date.now();
|
|
146
|
+
// Resolve message type once and pass to spy for consistent type resolution
|
|
147
|
+
const messageType = message
|
|
148
|
+
? (this.resolveMessageTypeFromMessage(message) ?? TYPE_NOT_RESOLVED)
|
|
149
|
+
: TYPE_NOT_RESOLVED;
|
|
120
150
|
this._handlerSpy?.addProcessedMessage({
|
|
121
151
|
message,
|
|
122
152
|
processingResult,
|
|
123
|
-
}, messageId);
|
|
153
|
+
}, messageId, messageType);
|
|
124
154
|
const debugLoggingEnabled = this.logMessages && this.logger.isLevelEnabled('debug');
|
|
125
155
|
if (!debugLoggingEnabled && !this.messageMetricsManager)
|
|
126
156
|
return;
|
|
@@ -136,10 +166,7 @@ export class AbstractQueueService {
|
|
|
136
166
|
// @ts-expect-error
|
|
137
167
|
const resolvedMessageId = message?.[this.messageIdField] ?? messageId;
|
|
138
168
|
const messageTimestamp = message ? this.tryToExtractTimestamp(message)?.getTime() : undefined;
|
|
139
|
-
const messageType = message
|
|
140
|
-
? // @ts-ignore
|
|
141
|
-
message[this.messageTypeField]
|
|
142
|
-
: undefined;
|
|
169
|
+
const messageType = message ? this.resolveMessageTypeFromMessage(message) : undefined;
|
|
143
170
|
const messageDeduplicationId = message && this.messageDeduplicationIdField in message
|
|
144
171
|
? // @ts-ignore
|
|
145
172
|
message[this.messageDeduplicationId]
|
|
@@ -356,7 +383,7 @@ export class AbstractQueueService {
|
|
|
356
383
|
}
|
|
357
384
|
}
|
|
358
385
|
// Return message with both new and legacy formats for backward compatibility
|
|
359
|
-
|
|
386
|
+
const result = {
|
|
360
387
|
// Extended payload reference format
|
|
361
388
|
payloadRef: {
|
|
362
389
|
id: payloadId,
|
|
@@ -369,14 +396,21 @@ export class AbstractQueueService {
|
|
|
369
396
|
// @ts-expect-error
|
|
370
397
|
[this.messageIdField]: message[this.messageIdField],
|
|
371
398
|
// @ts-expect-error
|
|
372
|
-
[this.messageTypeField]: message[this.messageTypeField],
|
|
373
|
-
// @ts-expect-error
|
|
374
399
|
[this.messageTimestampField]: message[this.messageTimestampField],
|
|
375
400
|
// @ts-expect-error
|
|
376
401
|
[this.messageDeduplicationIdField]: message[this.messageDeduplicationIdField],
|
|
377
402
|
// @ts-expect-error
|
|
378
403
|
[this.messageDeduplicationOptionsField]: message[this.messageDeduplicationOptionsField],
|
|
379
404
|
};
|
|
405
|
+
// Preserve message type field if using messageTypePath resolver (supports nested paths)
|
|
406
|
+
if (this.messageTypeResolver && isMessageTypePathConfig(this.messageTypeResolver)) {
|
|
407
|
+
const messageTypePath = this.messageTypeResolver.messageTypePath;
|
|
408
|
+
const typeValue = getProperty(message, messageTypePath);
|
|
409
|
+
if (typeValue !== undefined) {
|
|
410
|
+
setProperty(result, messageTypePath, typeValue);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
return result;
|
|
380
414
|
}
|
|
381
415
|
/**
|
|
382
416
|
* Retrieve previously offloaded message payload using provided pointer payload.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractQueueService.js","sourceRoot":"","sources":["../../lib/queues/AbstractQueueService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAKL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,oCAAoC,GAErC,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EAEL,yBAAyB,GAC1B,MAAM,qDAAqD,CAAA;AAC5D,OAAO,EACL,qCAAqC,EAErC,0BAA0B,EAE1B,kBAAkB,GAEnB,MAAM,uDAAuD,CAAA;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACjG,OAAO,EACL,wCAAwC,GAGzC,MAAM,oDAAoD,CAAA;AAM3D,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAShG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAUhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAiBpE,MAAM,OAAgB,oBAAoB;IAaxC;;;OAGG;IACc,2BAA2B,GAAG,0BAA0B,CAAA;IACzE;;;OAGG;IACgB,qBAAqB,CAAQ;IAChD;;OAEG;IACgB,2BAA2B,CAAA;IAC9C;;OAEG;IACgB,gCAAgC,CAAQ;IACxC,aAAa,CAAe;IAC/B,MAAM,CAAc;IACjB,cAAc,CAAQ;IACtB,gBAAgB,CAAQ;IACxB,WAAW,CAAS;IACpB,cAAc,CAAqB;IACnC,aAAa,CAAmB;IAChC,cAAc,CAAiB;IAC/B,kBAAkB,CAEkB;IACpC,0BAA0B,CAA6B;IACvD,qBAAqB,CAA+C;IACpE,WAAW,CAAoC;IAExD,SAAS,CAAS;IAE5B,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,YACE,EAAE,aAAa,EAAE,MAAM,EAAE,qBAAqB,EAAoB,EAClE,OAAoB;QAEpB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAElD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAA;QACpD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAA;QAChD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,WAAW,CAAA;QACzE,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,IAAI,iBAAiB,CAAA;QAC3F,IAAI,CAAC,gCAAgC;YACnC,OAAO,CAAC,gCAAgC,IAAI,sBAAsB,CAAA;QACpE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB;YAClD,CAAC,CAAC;gBACE,UAAU,EAAE,6BAA6B;gBACzC,GAAG,OAAO,CAAC,kBAAkB;aAC9B;YACH,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAA;QAEpE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAwB,OAAO,CAAC,CAAA;QACpE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACxB,CAAC;IAES,qCAAqC,CAAC,OAG/C;QACC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACpE,MAAM,kBAAkB,GAA4B,OAAO,CAAC,QAAQ;aACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;aAChC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;QAEzC,OAAO,IAAI,sBAAsB,CAAwB;YACvD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,cAAc;YACd,kBAAkB;SACnB,CAAC,CAAA;IACJ,CAAC;IAES,sCAAsC,CAAC,OAGhD;QACC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAE7C,OAAO,IAAI,sBAAsB,CAAwB;YACvD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,cAAc;YACd,kBAAkB,EAAE,EAAE;SACvB,CAAC,CAAA;IACJ,CAAC;IAUD;;OAEG;IACO,iBAAiB,CAAC,OAA8B,EAAE,YAAoB;QAC9E,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,eAAwB;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IACpC,CAAC;IAES,WAAW,CAAC,GAAY,EAAE,OAAiC;QACnE,MAAM,SAAS,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAChB,GAAG,SAAS;YACZ,GAAG,OAAO;SACX,CAAC,CAAA;QACF,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAES,sBAAsB,CAAC,MAMhC;QACC,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;QACvD,MAAM,6BAA6B,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEhD,IAAI,CAAC,WAAW,EAAE,mBAAmB,CACnC;YACE,OAAO;YACP,gBAAgB;SACjB,EACD,SAAS,CACV,CAAA;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACnF,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,qBAAqB;YAAE,OAAM;QAE/D,MAAM,wBAAwB,GAAG,IAAI,CAAC,+BAA+B,CACnE,OAAO,EACP,gBAAgB,EAChB,MAAM,CAAC,+BAA+B,EACtC,6BAA6B,EAC7B,MAAM,CAAC,SAAS,EAChB,SAAS,CACV,CAAA;QACD,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,wBAAwB,EAAE,qBAAqB,CAAC,wBAAwB,CAAC,EAAE,EAC7E,+BAA+B,wBAAwB,CAAC,SAAS,EAAE,CACpE,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAEO,+BAA+B,CACrC,OAAqC,EACrC,gBAAyC,EACzC,+BAAuC,EACvC,6BAAqC,EACrC,SAAiB,EACjB,SAAkB;QAElB,mBAAmB;QACnB,MAAM,iBAAiB,GAAuB,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,SAAS,CAAA;QAEzF,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7F,MAAM,WAAW,GACf,OAAO,IAAI,IAAI,CAAC,gBAAgB,IAAI,OAAO;YACzC,CAAC,CAAC,aAAa;gBACb,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAChC,CAAC,CAAC,SAAS,CAAA;QACf,MAAM,sBAAsB,GAC1B,OAAO,IAAI,IAAI,CAAC,2BAA2B,IAAI,OAAO;YACpD,CAAC,CAAC,aAAa;gBACb,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;YACtC,CAAC,CAAC,SAAS,CAAA;QAEf,OAAO;YACL,gBAAgB;YAChB,SAAS,EAAE,iBAAiB,IAAI,cAAc;YAC9C,WAAW;YACX,SAAS;YACT,OAAO;YACP,gBAAgB;YAChB,sBAAsB;YACtB,+BAA+B;YAC/B,6BAA6B;SAC9B,CAAA;IACH,CAAC;IAES,0BAA0B,CAClC,WAAoF,EACpF,OAA8B;QAE9B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAsB,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,IAAI,CAAC;gBACH,MAAM,gBAAgB,GAAG,EAAsB,CAAA;gBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CACnC,WAAW,EACX,OAAO,EACP,CAAC,EACD,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CAAA;gBACD,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAY,CAAC,CAAA;YACtB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAES,KAAK,CAAC,yBAAyB,CACvC,OAEa,EACb,OAA8B,EAC9B,gBAAkC,EAClC,gBAAkC;QAElC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,mBAAmB;YACnB,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,SAAS;aAClB,CAAA;QACH,CAAC;QAED,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;IACnE,CAAC;IAED,eAAe,CAAC,OAA8B,EAAE,gBAAwB;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAA;QACnE,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IAC1D,CAAC;IAES,6BAA6B,CAAC,OAA8B;QACpE,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE9D,kDAAkD;QAClD,mBAAmB;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7B,CAAC;IAES,wBAAwB,CAAC,OAA8B;QAC/D,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA,CAAC,sCAAsC;QAEzE;;;WAGG;QACH,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,mBAAmB;YACnB,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,uCAAuC,CAAC,CAAA;QACxF,CAAC;QAED;;WAEG;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;QACjE,mBAAmB;QACnB,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC;YAC3C,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEzD,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,qBAAqB,CAAC,OAA8B;QAC1D,IAAI,IAAI,CAAC,qBAAqB,IAAI,OAAO,EAAE,CAAC;YAC1C,mBAAmB;YACnB,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA;YACnE,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,qBAAqB,eAAe,CAAC,CAAA;YAC/D,CAAC;YAED,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,2BAA2B,CAAC,OAA8B;QAChE,IACE,IAAI,CAAC,2BAA2B,IAAI,OAAO;YAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,KAAK,QAAQ,EAC7D,CAAC;YACD,mBAAmB;YACnB,OAAO,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAWS,qCAAqC,CAC7C,WAAoF,EACpF,gBAAkC,EAClC,OAA8B,EAC9B,KAAa,EACb,gBAAkC,EAClC,OAA0E,EAC1E,MAA4B;QAE5B,OAAO,CAAC,gBAAkC,EAAE,EAAE;YAC5C,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,gBAAgB,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,WAAW,CAAC,KAAK,CAAE,CACjB,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,CAAC,qCAAqC,CACxC,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,KAAK,GAAG,CAAC,EACT,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CACF,CAAA;YACH,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAsBD;;;;;OAKG;IACK,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,yBAAyB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAA;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACvD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,mBAAmB,SAAS,0DAA0D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/I,CAAA;YACH,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QAC7B,CAAC;QAED,6BAA6B;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAA;IAC/F,CAAC;IAED;;OAEG;IACK,0BAA0B,CAChC,MAA0D,EAC1D,UAAsB;QAEtB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,IAAI,KAAK,CACd,UAAU,UAAU,CAAC,KAAK,kFAAkF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpJ;iBACF,CAAA;YACH,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,CAAA;QACxD,CAAC;QAED,qFAAqF;QACrF,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1C,OAAO;gBACL,KAAK,EAAE,IAAI,KAAK,CACd,UAAU,UAAU,CAAC,KAAK,mEAAmE,MAAM,CAAC,SAAS,KAAK;oBAChH,gGAAgG;oBAChG,+FAA+F,CAClG;aACF,CAAA;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,CAAA;IACtE,CAAC;IAED;;OAEG;IACK,6BAA6B,CACnC,MAA0D,EAC1D,aAAqB;QAErB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBACjC,OAAO;oBACL,KAAK,EAAE,IAAI,KAAK,CACd,6MAA6M,CAC9M;iBACF,CAAA;YACH,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;YACxD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,IAAI,KAAK,CACd,2BAA2B,MAAM,CAAC,oBAAoB,0DAA0D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxJ;iBACF,CAAA;YACH,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAA;IACtE,CAAC;IAED;;;;;OAKG;IACK,oBAAoB,CAC1B,UAAkC,EAClC,aAAiC;QAEjC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAA;QAChE,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAA;QACnF,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI,KAAK,CACd,sFAAsF,CACvF;SACF,CAAA;IACH,CAAC;IAED;;;;;;;;;OASG;IACO,KAAK,CAAC,6BAA6B,CAC3C,OAA8B,EAC9B,aAA2B;QAE3B,IACE,CAAC,IAAI,CAAC,kBAAkB;YACxB,aAAa,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAC/D,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QACxD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAErF,IAAI,SAAiB,CAAA;QACrB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QACzD,CAAC;gBAAS,CAAC;YACT,IAAI,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAA;YACnC,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,OAAO;YACL,oCAAoC;YACpC,UAAU,EAAE;gBACV,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,iBAAiB,CAAC,IAAI;aAC7B;YACD,2CAA2C;YAC3C,uBAAuB,EAAE,SAAS;YAClC,oBAAoB,EAAE,iBAAiB,CAAC,IAAI;YAC5C,mBAAmB;YACnB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;YACnD,mBAAmB;YACnB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACvD,mBAAmB;YACnB,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;YACjE,mBAAmB;YACnB,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;YAC7E,mBAAmB;YACnB,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC;SACxF,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,+BAA+B,CAC7C,mCAA4C;QAE5C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO;gBACL,KAAK,EAAE,IAAI,KAAK,CACd,4EAA4E,CAC7E;aACF,CAAA;QACH,CAAC;QAED,MAAM,yBAAyB,GAAG,wCAAwC,CAAC,SAAS,CAClF,mCAAmC,CACpC,CAAA;QACD,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO;gBACL,KAAK,EAAE,IAAI,KAAK,CAAC,gEAAgE,EAAE;oBACjF,KAAK,EAAE,yBAAyB,CAAC,KAAK;iBACvC,CAAC;aACH,CAAA;QACH,CAAC;QAED,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAA;QAEpD,6BAA6B;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAC3C,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,uBAAuB,CACtC,CAAA;QACD,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,CAAA;QAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,IAAI,aAAa,CAAC,oBAAoB,CAAA;QACxF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,IAAI,KAAK,CACd,kGAAkG,CACnG;aACF,CAAA;QACH,CAAC;QAED,+CAA+C;QAC/C,MAAM,kCAAkC,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QACjF,IAAI,kCAAkC,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO;gBACL,KAAK,EAAE,IAAI,KAAK,CAAC,oBAAoB,SAAS,6BAA6B,CAAC;aAC7E,CAAA;QACH,CAAC;QAED,MAAM,gCAAgC,GAAG,MAAM,2BAA2B,CACxE,kCAAkC,EAClC,WAAW,CACZ,CAAA;QACD,IAAI,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE,CAAA;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,8CAA8C,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC3F,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,mBAAmB,CACjC,OAA8B,EAC9B,SAAiC;QAEjC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAW,CAAA;QACzE,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAAwD,CAAA;QAEzF,IAAI,CAAC;YACH,OAAO,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAC3D,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,eAAe,EAAE,CAC7C,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACrB,yFAAyF;YACzF,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,kBAAkB,CAChC,OAA8B,EAC9B,SAAiC;QAEjC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;QAChC,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAW,CAAA;QACzE,MAAM,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC,oCAAoC,CAAC,OAAO,CAAC,CAAA;QACzF,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAAwD,CAAA;QAEzF,IAAI,CAAC;YACH,MAAM,yBAAyB,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,cAAc,CAC3F,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,eAAe,EAAE,EAC5C,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACxB,0BAA0B,CAC3B,CAAA;YAED,OAAO,EAAE,YAAY,EAAE,CAAC,yBAAyB,EAAE,CAAA;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACrB,yFAAyF;YACzF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;QAChC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,qBAAqB,CACnC,OAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;QACvC,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAW,CAAA;QACzE,MAAM,oBAAoB,GAAG,IAAI,CAAC,oCAAoC,CAAC,OAAO,CAAC,CAAA;QAC/E,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAAwD,CAAA;QAEzF,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,WAAW,CAChF,GAAG,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,eAAe,EAAE,EACtE,oBAAoB,CACrB,CAAA;QAED,IAAI,iBAAiB,CAAC,KAAK,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;QACvC,CAAC;QAED,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAES,gCAAgC,CAAC,OAA8B;QACvE,OAAO,CAAC,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;IACvF,CAAC;IAES,yBAAyB,CAAC,OAA8B;QAChE,mBAAmB;QACnB,OAAO,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IAClD,CAAC;IAEO,oCAAoC,CAC1C,OAA8B;QAE9B,MAAM,aAAa,GAAG,oCAAoC,CAAC,SAAS;QAClE,mBAAmB;QACnB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,IAAI,EAAE,CACrD,CAAA;QAED,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,EACtC,GAAG,IAAI,CAAC,gCAAgC,uEAAuE,CAChH,CAAA;YAED,OAAO,qCAAqC,CAAA;QAC9C,CAAC;QAED,OAAO;YACL,GAAG,qCAAqC;YACxC,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAC/E;SACF,CAAA;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"AbstractQueueService.js","sourceRoot":"","sources":["../../lib/queues/AbstractQueueService.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { CommonEventDefinition } from '@message-queue-toolkit/schemas';
|
|
|
3
3
|
import type { ZodSchema } from 'zod/v4';
|
|
4
4
|
import type { DoNotProcessMessageError } from '../errors/DoNotProcessError.ts';
|
|
5
5
|
import type { RetryMessageLaterError } from '../errors/RetryMessageLaterError.ts';
|
|
6
|
+
import { type MessageTypeResolverConfig } from './MessageTypeResolver.ts';
|
|
6
7
|
export type PreHandlingOutputs<PrehandlerOutput = undefined, BarrierOutput = undefined> = {
|
|
7
8
|
preHandlerOutput: PrehandlerOutput;
|
|
8
9
|
barrierOutput: BarrierOutput;
|
|
@@ -22,6 +23,12 @@ export type BarrierCallback<MessagePayloadSchema extends object, ExecutionContex
|
|
|
22
23
|
export type Prehandler<MessagePayloadSchema extends object, ExecutionContext, PrehandlerOutput> = (message: MessagePayloadSchema, context: ExecutionContext, preHandlerOutput: Partial<PrehandlerOutput>, next: (result: PrehandlerResult) => void) => void;
|
|
23
24
|
export declare const defaultLogFormatter: <MessagePayloadSchema>(message: MessagePayloadSchema) => MessagePayloadSchema;
|
|
24
25
|
export type HandlerConfigOptions<MessagePayloadSchema extends object, ExecutionContext, PrehandlerOutput, BarrierOutput> = {
|
|
26
|
+
/**
|
|
27
|
+
* Explicit message type for this handler.
|
|
28
|
+
* Required when using a custom resolver function that cannot extract types from schemas.
|
|
29
|
+
* Optional when using messageTypePath or literal resolver modes.
|
|
30
|
+
*/
|
|
31
|
+
messageType?: string;
|
|
25
32
|
messageLogFormatter?: LogFormatter<MessagePayloadSchema>;
|
|
26
33
|
preHandlerBarrier?: BarrierCallback<MessagePayloadSchema, ExecutionContext, PrehandlerOutput, BarrierOutput>;
|
|
27
34
|
preHandlers?: Prehandler<MessagePayloadSchema, ExecutionContext, PrehandlerOutput>[];
|
|
@@ -29,6 +36,11 @@ export type HandlerConfigOptions<MessagePayloadSchema extends object, ExecutionC
|
|
|
29
36
|
export declare class MessageHandlerConfig<const MessagePayloadSchema extends object, const ExecutionContext, const PrehandlerOutput = undefined, const BarrierOutput = unknown> {
|
|
30
37
|
readonly schema: ZodSchema<MessagePayloadSchema>;
|
|
31
38
|
readonly definition?: CommonEventDefinition;
|
|
39
|
+
/**
|
|
40
|
+
* Explicit message type for this handler, if provided.
|
|
41
|
+
* Used for routing when type cannot be extracted from schema.
|
|
42
|
+
*/
|
|
43
|
+
readonly messageType?: string;
|
|
32
44
|
readonly handler: Handler<MessagePayloadSchema, ExecutionContext, PrehandlerOutput, BarrierOutput>;
|
|
33
45
|
readonly messageLogFormatter: LogFormatter<MessagePayloadSchema>;
|
|
34
46
|
readonly preHandlerBarrier?: BarrierCallback<MessagePayloadSchema, ExecutionContext, PrehandlerOutput, BarrierOutput>;
|
|
@@ -81,23 +93,36 @@ export declare class MessageHandlerConfigBuilder<MessagePayloadSchemas extends o
|
|
|
81
93
|
export type Handler<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput = undefined, BarrierOutput = undefined> = (message: MessagePayloadSchemas, context: ExecutionContext, preHandlingOutputs: PreHandlingOutputs<PrehandlerOutput, BarrierOutput>, definition?: CommonEventDefinition) => Promise<Either<'retryLater', 'success'>>;
|
|
82
94
|
export type HandlerContainerOptions<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput = undefined> = {
|
|
83
95
|
messageHandlers: MessageHandlerConfig<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput>[];
|
|
84
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Configuration for resolving message types.
|
|
98
|
+
*/
|
|
99
|
+
messageTypeResolver?: MessageTypeResolverConfig;
|
|
85
100
|
};
|
|
86
|
-
/**
|
|
87
|
-
* Use this constant as `messageTypeField` value when your consumer should accept
|
|
88
|
-
* all message types without routing by type. When used, a single handler will
|
|
89
|
-
* process all incoming messages regardless of their type field value.
|
|
90
|
-
*/
|
|
91
|
-
export declare const NO_MESSAGE_TYPE_FIELD = "";
|
|
92
101
|
export declare class HandlerContainer<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput = undefined> {
|
|
93
102
|
private readonly messageHandlers;
|
|
94
|
-
private readonly
|
|
103
|
+
private readonly messageTypeResolver?;
|
|
95
104
|
constructor(options: HandlerContainerOptions<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput>);
|
|
96
105
|
/**
|
|
97
106
|
* Resolves a handler for the given message type.
|
|
98
|
-
* When messageTypeField is NO_MESSAGE_TYPE_FIELD (empty string), pass undefined as messageType
|
|
99
|
-
* to get the default handler.
|
|
100
107
|
*/
|
|
101
|
-
resolveHandler<PrehandlerOutput = undefined, BarrierOutput = undefined>(messageType: string
|
|
108
|
+
resolveHandler<PrehandlerOutput = undefined, BarrierOutput = undefined>(messageType: string): MessageHandlerConfig<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput, BarrierOutput>;
|
|
109
|
+
/**
|
|
110
|
+
* Resolves message type from message data and optional attributes using the configured resolver.
|
|
111
|
+
*
|
|
112
|
+
* @param messageData - The parsed message data
|
|
113
|
+
* @param messageAttributes - Optional message-level attributes (e.g., PubSub attributes)
|
|
114
|
+
* @returns The resolved message type
|
|
115
|
+
* @throws Error if message type cannot be resolved
|
|
116
|
+
*/
|
|
117
|
+
resolveMessageType(messageData: unknown, messageAttributes?: Record<string, unknown>): string;
|
|
118
|
+
/**
|
|
119
|
+
* Gets the field path used for extracting message type from schemas during registration.
|
|
120
|
+
* Returns undefined for literal or custom resolver modes.
|
|
121
|
+
*/
|
|
122
|
+
private getMessageTypePathForSchema;
|
|
123
|
+
/**
|
|
124
|
+
* Gets the literal message type if configured.
|
|
125
|
+
*/
|
|
126
|
+
private getLiteralMessageType;
|
|
102
127
|
private resolveHandlerMap;
|
|
103
128
|
}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { isCommonEventDefinition } from '@message-queue-toolkit/schemas';
|
|
2
|
+
import { extractMessageTypeFromSchema, isMessageTypeLiteralConfig, isMessageTypePathConfig, resolveMessageType, } from "./MessageTypeResolver.js";
|
|
2
3
|
export const defaultLogFormatter = (message) => message;
|
|
3
4
|
export class MessageHandlerConfig {
|
|
4
5
|
schema;
|
|
5
6
|
definition;
|
|
7
|
+
/**
|
|
8
|
+
* Explicit message type for this handler, if provided.
|
|
9
|
+
* Used for routing when type cannot be extracted from schema.
|
|
10
|
+
*/
|
|
11
|
+
messageType;
|
|
6
12
|
handler;
|
|
7
13
|
messageLogFormatter;
|
|
8
14
|
preHandlerBarrier;
|
|
@@ -10,6 +16,7 @@ export class MessageHandlerConfig {
|
|
|
10
16
|
constructor(schema, handler, options, eventDefinition) {
|
|
11
17
|
this.schema = schema;
|
|
12
18
|
this.definition = eventDefinition;
|
|
19
|
+
this.messageType = options?.messageType;
|
|
13
20
|
this.handler = handler;
|
|
14
21
|
this.messageLogFormatter = options?.messageLogFormatter ?? defaultLogFormatter;
|
|
15
22
|
this.preHandlerBarrier = options?.preHandlerBarrier;
|
|
@@ -73,45 +80,86 @@ export class MessageHandlerConfigBuilder {
|
|
|
73
80
|
return this.configs;
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Use this constant as `messageTypeField` value when your consumer should accept
|
|
78
|
-
* all message types without routing by type. When used, a single handler will
|
|
79
|
-
* process all incoming messages regardless of their type field value.
|
|
80
|
-
*/
|
|
81
|
-
export const NO_MESSAGE_TYPE_FIELD = '';
|
|
82
|
-
const DEFAULT_HANDLER_KEY = 'NO_MESSAGE_TYPE';
|
|
83
83
|
export class HandlerContainer {
|
|
84
84
|
messageHandlers;
|
|
85
|
-
|
|
85
|
+
messageTypeResolver;
|
|
86
86
|
constructor(options) {
|
|
87
|
-
this.
|
|
87
|
+
this.messageTypeResolver = options.messageTypeResolver;
|
|
88
88
|
this.messageHandlers = this.resolveHandlerMap(options.messageHandlers);
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Resolves a handler for the given message type.
|
|
92
|
-
* When messageTypeField is NO_MESSAGE_TYPE_FIELD (empty string), pass undefined as messageType
|
|
93
|
-
* to get the default handler.
|
|
94
92
|
*/
|
|
95
93
|
resolveHandler(messageType) {
|
|
96
|
-
const
|
|
97
|
-
const handler = this.messageHandlers[handlerKey];
|
|
94
|
+
const handler = this.messageHandlers[messageType];
|
|
98
95
|
if (!handler) {
|
|
99
|
-
throw new Error(`Unsupported message type: ${
|
|
96
|
+
throw new Error(`Unsupported message type: ${messageType}`);
|
|
100
97
|
}
|
|
101
98
|
// @ts-expect-error
|
|
102
99
|
return handler;
|
|
103
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Resolves message type from message data and optional attributes using the configured resolver.
|
|
103
|
+
*
|
|
104
|
+
* @param messageData - The parsed message data
|
|
105
|
+
* @param messageAttributes - Optional message-level attributes (e.g., PubSub attributes)
|
|
106
|
+
* @returns The resolved message type
|
|
107
|
+
* @throws Error if message type cannot be resolved
|
|
108
|
+
*/
|
|
109
|
+
resolveMessageType(messageData, messageAttributes) {
|
|
110
|
+
if (this.messageTypeResolver) {
|
|
111
|
+
const context = { messageData, messageAttributes };
|
|
112
|
+
return resolveMessageType(this.messageTypeResolver, context);
|
|
113
|
+
}
|
|
114
|
+
throw new Error('Unable to resolve message type: messageTypeResolver is not configured');
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Gets the field path used for extracting message type from schemas during registration.
|
|
118
|
+
* Returns undefined for literal or custom resolver modes.
|
|
119
|
+
*/
|
|
120
|
+
getMessageTypePathForSchema() {
|
|
121
|
+
if (this.messageTypeResolver && isMessageTypePathConfig(this.messageTypeResolver)) {
|
|
122
|
+
return this.messageTypeResolver.messageTypePath;
|
|
123
|
+
}
|
|
124
|
+
// For literal or custom resolver, we don't extract type from schema
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Gets the literal message type if configured.
|
|
129
|
+
*/
|
|
130
|
+
getLiteralMessageType() {
|
|
131
|
+
if (this.messageTypeResolver && isMessageTypeLiteralConfig(this.messageTypeResolver)) {
|
|
132
|
+
return this.messageTypeResolver.literal;
|
|
133
|
+
}
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
104
136
|
resolveHandlerMap(supportedHandlers) {
|
|
137
|
+
const literalType = this.getLiteralMessageType();
|
|
138
|
+
const messageTypePath = this.getMessageTypePathForSchema();
|
|
105
139
|
return supportedHandlers.reduce((acc, entry) => {
|
|
106
|
-
// When messageTypeField is empty (NO_MESSAGE_TYPE_FIELD), use DEFAULT_HANDLER_KEY
|
|
107
|
-
// This allows a single handler to process all message types
|
|
108
140
|
let messageType;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
messageType = entry.
|
|
141
|
+
// Priority 1: Explicit messageType on the handler config
|
|
142
|
+
if (entry.messageType) {
|
|
143
|
+
messageType = entry.messageType;
|
|
144
|
+
}
|
|
145
|
+
// Priority 2: Literal type from resolver config (same for all handlers)
|
|
146
|
+
else if (literalType) {
|
|
147
|
+
messageType = literalType;
|
|
148
|
+
}
|
|
149
|
+
// Priority 3: Extract type from schema shape using the field path
|
|
150
|
+
else if (messageTypePath) {
|
|
151
|
+
// @ts-expect-error - ZodSchema has shape property at runtime
|
|
152
|
+
messageType = extractMessageTypeFromSchema(entry.schema, messageTypePath);
|
|
153
|
+
}
|
|
154
|
+
if (!messageType) {
|
|
155
|
+
throw new Error('Unable to determine message type for handler at registration time. ' +
|
|
156
|
+
'Either provide explicit messageType in handler options (required for custom resolver functions), ' +
|
|
157
|
+
'use a literal resolver, or ensure the schema has a literal type field matching messageTypePath.');
|
|
158
|
+
}
|
|
159
|
+
if (acc[messageType]) {
|
|
160
|
+
throw new Error(`Duplicate handler for message type: ${messageType}`);
|
|
112
161
|
}
|
|
113
|
-
|
|
114
|
-
acc[handlerKey] = entry;
|
|
162
|
+
acc[messageType] = entry;
|
|
115
163
|
return acc;
|
|
116
164
|
}, {});
|
|
117
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerContainer.js","sourceRoot":"","sources":["../../lib/queues/HandlerContainer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"HandlerContainer.js","sourceRoot":"","sources":["../../lib/queues/HandlerContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
import type { MessageProcessingResult, MessageProcessingResultStatus } from '../types/MessageQueueTypes.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Symbol that can be used in place of a message type value in `waitForMessage` or `checkForMessage`
|
|
4
|
+
* to match messages regardless of their type. Useful when using custom message type resolvers
|
|
5
|
+
* where the type may not be available in the message payload itself.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* // Match any message with a specific ID, regardless of type
|
|
9
|
+
* await spy.waitForMessage({ id: '123', type: ANY_MESSAGE_TYPE })
|
|
10
|
+
*/
|
|
11
|
+
export declare const ANY_MESSAGE_TYPE: unique symbol;
|
|
12
|
+
/**
|
|
13
|
+
* Symbol used to indicate that the message type could not be resolved.
|
|
14
|
+
* Typically used when message parsing failed before type resolution could occur.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* // For failed message parsing
|
|
18
|
+
* spy.addProcessedMessage({ message: null, processingResult }, messageId, TYPE_NOT_RESOLVED)
|
|
19
|
+
*/
|
|
20
|
+
export declare const TYPE_NOT_RESOLVED: unique symbol;
|
|
2
21
|
export type HandlerSpyParams = {
|
|
3
22
|
bufferSize?: number;
|
|
4
23
|
messageIdField?: string;
|
|
5
|
-
messageTypeField?: string;
|
|
6
24
|
};
|
|
7
25
|
export type SpyResultInput<MessagePayloadSchemas extends object> = {
|
|
8
26
|
message: MessagePayloadSchemas | null;
|
|
@@ -21,7 +39,6 @@ export declare class HandlerSpy<MessagePayloadSchemas extends object> {
|
|
|
21
39
|
name: string;
|
|
22
40
|
private readonly messageBuffer;
|
|
23
41
|
private readonly messageIdField;
|
|
24
|
-
private readonly messageTypeField;
|
|
25
42
|
private readonly spyPromises;
|
|
26
43
|
constructor(params?: HandlerSpyParams);
|
|
27
44
|
private messageMatchesFilter;
|
|
@@ -30,7 +47,13 @@ export declare class HandlerSpy<MessagePayloadSchemas extends object> {
|
|
|
30
47
|
waitForMessage<T extends MessagePayloadSchemas>(expectedFields: DeepPartial<T>, status?: MessageProcessingResultStatus): Promise<SpyResultOutput<T>>;
|
|
31
48
|
clear(): void;
|
|
32
49
|
getAllReceivedMessages(): SpyResultOutput<MessagePayloadSchemas>[];
|
|
33
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Add a processed message to the spy buffer.
|
|
52
|
+
* @param processingResult - The processing result containing the message and status
|
|
53
|
+
* @param messageId - Optional message ID override (used if message parsing failed)
|
|
54
|
+
* @param messageType - The resolved message type, or TYPE_NOT_RESOLVED symbol if type couldn't be determined
|
|
55
|
+
*/
|
|
56
|
+
addProcessedMessage(processingResult: SpyResultInput<MessagePayloadSchemas>, messageId: string | undefined, messageType: string | typeof TYPE_NOT_RESOLVED): void;
|
|
34
57
|
}
|
|
35
58
|
export declare function resolveHandlerSpy<T extends object>(queueOptions: {
|
|
36
59
|
handlerSpy?: HandlerSpy<object> | HandlerSpyParams | boolean;
|
|
@@ -2,6 +2,25 @@ import { randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { isObject } from '@lokalise/node-core';
|
|
3
3
|
import { Fifo } from 'toad-cache';
|
|
4
4
|
import { objectMatches } from "../utils/matchUtils.js";
|
|
5
|
+
/**
|
|
6
|
+
* Symbol that can be used in place of a message type value in `waitForMessage` or `checkForMessage`
|
|
7
|
+
* to match messages regardless of their type. Useful when using custom message type resolvers
|
|
8
|
+
* where the type may not be available in the message payload itself.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // Match any message with a specific ID, regardless of type
|
|
12
|
+
* await spy.waitForMessage({ id: '123', type: ANY_MESSAGE_TYPE })
|
|
13
|
+
*/
|
|
14
|
+
export const ANY_MESSAGE_TYPE = Symbol('ANY_MESSAGE_TYPE');
|
|
15
|
+
/**
|
|
16
|
+
* Symbol used to indicate that the message type could not be resolved.
|
|
17
|
+
* Typically used when message parsing failed before type resolution could occur.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // For failed message parsing
|
|
21
|
+
* spy.addProcessedMessage({ message: null, processingResult }, messageId, TYPE_NOT_RESOLVED)
|
|
22
|
+
*/
|
|
23
|
+
export const TYPE_NOT_RESOLVED = Symbol('TYPE_NOT_RESOLVED');
|
|
5
24
|
export function isHandlerSpy(value) {
|
|
6
25
|
return (isObject(value) &&
|
|
7
26
|
(value instanceof HandlerSpy || value.name === 'HandlerSpy'));
|
|
@@ -11,18 +30,22 @@ export class HandlerSpy {
|
|
|
11
30
|
// biome-ignore lint/suspicious/noExplicitAny: This is expected
|
|
12
31
|
messageBuffer;
|
|
13
32
|
messageIdField;
|
|
14
|
-
messageTypeField;
|
|
15
33
|
spyPromises;
|
|
16
34
|
constructor(params = {}) {
|
|
17
35
|
this.messageBuffer = new Fifo(params.bufferSize ?? 100);
|
|
18
36
|
// @ts-expect-error
|
|
19
37
|
this.messageIdField = params.messageIdField ?? 'id';
|
|
20
|
-
// @ts-expect-error
|
|
21
|
-
this.messageTypeField = params.messageTypeField ?? 'type';
|
|
22
38
|
this.spyPromises = [];
|
|
23
39
|
}
|
|
24
40
|
messageMatchesFilter(spyResult, fields, status) {
|
|
25
|
-
|
|
41
|
+
// Handle ANY_MESSAGE_TYPE symbol - if any field value is ANY_MESSAGE_TYPE, skip matching that field
|
|
42
|
+
const fieldsToMatch = { ...fields };
|
|
43
|
+
for (const [key, value] of Object.entries(fieldsToMatch)) {
|
|
44
|
+
if (value === ANY_MESSAGE_TYPE) {
|
|
45
|
+
delete fieldsToMatch[key];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return (objectMatches(fieldsToMatch, spyResult.message) &&
|
|
26
49
|
(!status || spyResult.processingResult.status === status));
|
|
27
50
|
}
|
|
28
51
|
waitForMessageWithId(id, status) {
|
|
@@ -59,17 +82,26 @@ export class HandlerSpy {
|
|
|
59
82
|
getAllReceivedMessages() {
|
|
60
83
|
return Object.values(this.messageBuffer.items).map((item) => item.value);
|
|
61
84
|
}
|
|
62
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Add a processed message to the spy buffer.
|
|
87
|
+
* @param processingResult - The processing result containing the message and status
|
|
88
|
+
* @param messageId - Optional message ID override (used if message parsing failed)
|
|
89
|
+
* @param messageType - The resolved message type, or TYPE_NOT_RESOLVED symbol if type couldn't be determined
|
|
90
|
+
*/
|
|
91
|
+
addProcessedMessage(processingResult, messageId, messageType) {
|
|
63
92
|
const resolvedMessageId = processingResult.message?.[this.messageIdField] ?? messageId ?? randomUUID();
|
|
64
|
-
|
|
65
|
-
|
|
93
|
+
// Use provided messageType, converting TYPE_NOT_RESOLVED symbol to string for storage
|
|
94
|
+
const resolvedMessageType = messageType === TYPE_NOT_RESOLVED ? 'TYPE_NOT_RESOLVED' : messageType;
|
|
95
|
+
// If we failed to parse message, let's store id and type at least for debugging
|
|
66
96
|
const resolvedProcessingResult = processingResult.message
|
|
67
97
|
? processingResult
|
|
68
98
|
: {
|
|
69
99
|
...processingResult,
|
|
70
100
|
message: {
|
|
71
101
|
[this.messageIdField]: messageId,
|
|
72
|
-
|
|
102
|
+
type: resolvedMessageType === 'TYPE_NOT_RESOLVED'
|
|
103
|
+
? 'FAILED_TO_RESOLVE'
|
|
104
|
+
: resolvedMessageType,
|
|
73
105
|
},
|
|
74
106
|
};
|
|
75
107
|
const cacheId = `${resolvedMessageId}-${Date.now()}-${(Math.random() + 1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerSpy.js","sourceRoot":"","sources":["../../lib/queues/HandlerSpy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAMjC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"HandlerSpy.js","sourceRoot":"","sources":["../../lib/queues/HandlerSpy.ts"],"names":[],"mappings":"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"}
|