@kronos-ts/app 0.3.4 → 0.4.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/dist/app.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { StateModule } from "@kronos-ts/modelling";
2
- import type { CommandHandlerDefinition, QueryHandlerDefinition, EventProcessorModule, CommandGateway, QueryGateway, CommandMessage, QueryMessage, EventMessage, DispatchInterceptor, HandlerInterceptor, HandlerEnhancerDefinition } from "@kronos-ts/messaging";
2
+ import type { CommandHandlerDefinition, QueryHandlerDefinition, EventProcessorModule, CommandGateway, QueryGateway, CommandMessage, QueryMessage, EventMessage, DispatchInterceptor, HandlerInterceptor, HandlerEnhancerDefinition, CorrelationDataProvider } from "@kronos-ts/messaging";
3
3
  import type { SnapshotPolicy, SnapshotStore } from "@kronos-ts/eventsourcing";
4
4
  import { type KronosComponents, type SlotName } from "./components.js";
5
5
  import { SlotRegistry, type SlotFactory, type SlotMeta } from "./slot-registry.js";
@@ -74,6 +74,19 @@ export interface App {
74
74
  * in the existing intercepting wrapper.
75
75
  */
76
76
  handlerInterceptor(fn: HandlerInterceptor): App;
77
+ /**
78
+ * Register one or more correlation data providers. The providers feed both
79
+ * the command/query handler "extract" interceptor and the per-event seeding
80
+ * in every event processor, and their output is applied to outgoing
81
+ * commands/events (and appended events) via the correlation dispatch
82
+ * interceptor + event appender. This is the single place correlation lineage
83
+ * is configured — registering here makes an event handler's outgoing messages
84
+ * inherit the triggering event's correlationId/causationId.
85
+ *
86
+ * Multiple calls accumulate. When none are registered, the framework defaults
87
+ * to a single `messageOriginProvider()`. Returns App for chaining.
88
+ */
89
+ correlationDataProvider(...providers: CorrelationDataProvider[]): App;
77
90
  /**
78
91
  * Plan 09-01 (D-86): accumulator for HandlerEnhancerDefinition. Mirrors the
79
92
  * Phase 6 dispatch-interceptor accumulator pattern. Multiple registrations
@@ -140,6 +153,8 @@ export interface AppState {
140
153
  readonly queryDispatchInterceptors: DispatchInterceptor<QueryMessage>[];
141
154
  readonly eventDispatchInterceptors: DispatchInterceptor<EventMessage>[];
142
155
  readonly handlerInterceptors: HandlerInterceptor[];
156
+ /** Correlation data providers; defaults to [messageOriginProvider()] at start when empty. */
157
+ readonly correlationDataProviders: CorrelationDataProvider[];
143
158
  /** Plan 09-01 (D-86): accumulator composed via multiHandlerEnhancerDefinition at start. */
144
159
  readonly handlerEnhancers: HandlerEnhancerDefinition[];
145
160
  readonly startHooks: Array<{
@@ -201,6 +216,7 @@ export declare class AppImpl implements App {
201
216
  queryDispatchInterceptor(fn: DispatchInterceptor<QueryMessage>): App;
202
217
  eventDispatchInterceptor(fn: DispatchInterceptor<EventMessage>): App;
203
218
  handlerInterceptor(fn: HandlerInterceptor): App;
219
+ correlationDataProvider(...providers: CorrelationDataProvider[]): App;
204
220
  handlerEnhancer(def: HandlerEnhancerDefinition): App;
205
221
  onStart(stage: LifecycleStage, fn: LifecycleHook): App;
206
222
  onStop(stage: LifecycleStage, fn: LifecycleHook): App;
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createStateManager } from "@kronos-ts/modelling";
2
- import { registerCommandHandlersNatively, registerQueryHandlersNatively, createCommandGateway, createQueryGateway, createTrackingEventProcessor, createSubscribingEventProcessor, multiHandlerEnhancerDefinition, } from "@kronos-ts/messaging";
2
+ import { registerCommandHandlersNatively, registerQueryHandlersNatively, createCommandGateway, createQueryGateway, createTrackingEventProcessor, createSubscribingEventProcessor, multiHandlerEnhancerDefinition, messageOriginProvider, correlationDataHandlerInterceptor, correlationDataDispatchInterceptor, } from "@kronos-ts/messaging";
3
3
  import { createEventSourcedRepository } from "@kronos-ts/eventsourcing";
4
4
  import { ALL_SLOTS } from "./components.js";
5
5
  import { SlotRegistry } from "./slot-registry.js";
@@ -58,6 +58,7 @@ export class AppImpl {
58
58
  queryDispatchInterceptors: [],
59
59
  eventDispatchInterceptors: [],
60
60
  handlerInterceptors: [],
61
+ correlationDataProviders: [],
61
62
  handlerEnhancers: [],
62
63
  startHooks: [],
63
64
  stopHooks: [],
@@ -176,6 +177,11 @@ export class AppImpl {
176
177
  this._state.handlerInterceptors.push(fn);
177
178
  return this;
178
179
  }
180
+ correlationDataProvider(...providers) {
181
+ this.guard();
182
+ this._state.correlationDataProviders.push(...providers);
183
+ return this;
184
+ }
179
185
  handlerEnhancer(def) {
180
186
  this.guard();
181
187
  this._state.handlerEnhancers.push(def);
@@ -220,6 +226,23 @@ export class AppImpl {
220
226
  // 2. Mark started AFTER extensions ran (so extensions can mutate) but BEFORE slot resolution
221
227
  // (so resolved factories can't trigger fluent calls — defensive).
222
228
  this._started = true;
229
+ // 2b. Resolve correlation lineage from one source. Providers default to a
230
+ // single messageOriginProvider() when the app registered none. Wire the
231
+ // "extract" handler interceptor (command/query) and the "apply" dispatch
232
+ // interceptors (command/query/event) into the accumulators BEFORE
233
+ // decorators are applied below, so the intercepting wrappers pick them
234
+ // up. Event processors receive the same providers in step 5e and seed
235
+ // per-event; the event appender applies the resulting data to appended
236
+ // events. The interceptors no-op outside a UnitOfWork, so primary
237
+ // gateway dispatches are unaffected — only handler-to-handler flows
238
+ // carry lineage.
239
+ const correlationProviders = this._state.correlationDataProviders.length > 0
240
+ ? this._state.correlationDataProviders
241
+ : [messageOriginProvider()];
242
+ this._state.handlerInterceptors.push(correlationDataHandlerInterceptor(correlationProviders));
243
+ this._state.commandDispatchInterceptors.push(correlationDataDispatchInterceptor());
244
+ this._state.queryDispatchInterceptors.push(correlationDataDispatchInterceptor());
245
+ this._state.eventDispatchInterceptors.push(correlationDataDispatchInterceptor());
223
246
  // 3. Build the lazy Resolved proxy and EAGERLY resolve all 8 slots up-front
224
247
  // (Pitfall 1 — interleaving slot resolution with configurer registration creates stale-cache hazards).
225
248
  const resolved = buildResolved(this._state.slotRegistry);
@@ -323,6 +346,7 @@ export class AppImpl {
323
346
  commandBus: built.commandBus,
324
347
  queryBus: built.queryBus,
325
348
  eventScheduler: built.eventScheduler,
349
+ correlationDataProviders: correlationProviders,
326
350
  unitOfWorkRunner: proc.unitOfWorkRunner ?? built.unitOfWorkFactory,
327
351
  errorHandler: proc.errorHandler,
328
352
  handlerEnhancer: composedHandlerEnhancer,
@@ -337,6 +361,7 @@ export class AppImpl {
337
361
  commandBus: built.commandBus,
338
362
  queryBus: built.queryBus,
339
363
  eventScheduler: built.eventScheduler,
364
+ correlationDataProviders: correlationProviders,
340
365
  unitOfWorkRunner: proc.unitOfWorkRunner ?? built.unitOfWorkFactory,
341
366
  // Plan 09-01 (D-84): per-processor override wins, otherwise fall
342
367
  // back to the resolved tokenStore slot so the default in-memory
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"kronos.d.ts","sourceRoot":"","sources":["../src/kronos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAW,KAAK,GAAG,EAAE,MAAM,UAAU,CAAA;AAE5C,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAGxE;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAKlC,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAC/C,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClC,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAA;IACnC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,GAAG,CAsDzD"}
1
+ {"version":3,"file":"kronos.d.ts","sourceRoot":"","sources":["../src/kronos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EAIrB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAW,KAAK,GAAG,EAAE,MAAM,UAAU,CAAA;AAE5C,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAGxE;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAKlC,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAC/C,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClC,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAA;IACnC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,GAAG,CA8DzD"}
package/dist/kronos.js CHANGED
@@ -41,6 +41,12 @@ export function kronos(partial) {
41
41
  const wrapped = createInterceptingCommandBus(inner);
42
42
  for (const fn of app._state.commandDispatchInterceptors)
43
43
  wrapped.registerDispatchInterceptor(fn);
44
+ // `app.handlerInterceptor()` registers bus-agnostic `HandlerInterceptor<Message>`s.
45
+ // Since `Message.kind` was added, `HandlerInterceptor<Message>` is no longer assignable
46
+ // to `HandlerInterceptor<CommandMessage>` (the `next` callback is contravariant). The
47
+ // adaptation is sound: the bus only ever drives `next` with its own CommandMessage, so a
48
+ // generic interceptor that forwards what it received stays within bounds. Direct
49
+ // registrants via `commandBus.registerHandlerInterceptor` keep the strict CommandMessage type.
44
50
  for (const fn of app._state.handlerInterceptors)
45
51
  wrapped.registerHandlerInterceptor(fn);
46
52
  return wrapped;
@@ -49,6 +55,8 @@ export function kronos(partial) {
49
55
  const wrapped = createInterceptingQueryBus(inner);
50
56
  for (const fn of app._state.queryDispatchInterceptors)
51
57
  wrapped.registerDispatchInterceptor(fn);
58
+ // See the command-bus fan-out above: bus-agnostic interceptors are adapted onto the
59
+ // typed QueryMessage bus; the bus only drives `next` with its own QueryMessage.
52
60
  for (const fn of app._state.handlerInterceptors)
53
61
  wrapped.registerHandlerInterceptor(fn);
54
62
  return wrapped;
@@ -1 +1 @@
1
- {"version":3,"file":"kronos.js","sourceRoot":"","sources":["../src/kronos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kronos.js","sourceRoot":"","sources":["../src/kronos.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kronos-ts/app",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "description": "Application container for Kronos — the kronos() builder, lifecycle, and extensions.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -51,9 +51,9 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@kronos-ts/common": "0.1.1",
54
- "@kronos-ts/messaging": "0.5.1",
55
- "@kronos-ts/eventsourcing": "0.2.1",
56
- "@kronos-ts/modelling": "0.2.4",
54
+ "@kronos-ts/messaging": "0.6.0",
55
+ "@kronos-ts/eventsourcing": "0.2.2",
56
+ "@kronos-ts/modelling": "0.2.5",
57
57
  "zod": "^4.3.6"
58
58
  }
59
59
  }
package/src/app.ts CHANGED
@@ -16,6 +16,7 @@ import type {
16
16
  SubscribingEventProcessor,
17
17
  StreamableEventSource,
18
18
  SubscribableEventSource,
19
+ CorrelationDataProvider,
19
20
  } from "@kronos-ts/messaging"
20
21
  import {
21
22
  registerCommandHandlersNatively,
@@ -25,6 +26,9 @@ import {
25
26
  createTrackingEventProcessor,
26
27
  createSubscribingEventProcessor,
27
28
  multiHandlerEnhancerDefinition,
29
+ messageOriginProvider,
30
+ correlationDataHandlerInterceptor,
31
+ correlationDataDispatchInterceptor,
28
32
  } from "@kronos-ts/messaging"
29
33
  import { createEventSourcedRepository } from "@kronos-ts/eventsourcing"
30
34
  import type { SnapshotPolicy, SnapshotStore } from "@kronos-ts/eventsourcing"
@@ -123,6 +127,19 @@ export interface App {
123
127
  * in the existing intercepting wrapper.
124
128
  */
125
129
  handlerInterceptor(fn: HandlerInterceptor): App
130
+ /**
131
+ * Register one or more correlation data providers. The providers feed both
132
+ * the command/query handler "extract" interceptor and the per-event seeding
133
+ * in every event processor, and their output is applied to outgoing
134
+ * commands/events (and appended events) via the correlation dispatch
135
+ * interceptor + event appender. This is the single place correlation lineage
136
+ * is configured — registering here makes an event handler's outgoing messages
137
+ * inherit the triggering event's correlationId/causationId.
138
+ *
139
+ * Multiple calls accumulate. When none are registered, the framework defaults
140
+ * to a single `messageOriginProvider()`. Returns App for chaining.
141
+ */
142
+ correlationDataProvider(...providers: CorrelationDataProvider[]): App
126
143
  /**
127
144
  * Plan 09-01 (D-86): accumulator for HandlerEnhancerDefinition. Mirrors the
128
145
  * Phase 6 dispatch-interceptor accumulator pattern. Multiple registrations
@@ -188,6 +205,8 @@ export interface AppState {
188
205
  readonly queryDispatchInterceptors: DispatchInterceptor<QueryMessage>[]
189
206
  readonly eventDispatchInterceptors: DispatchInterceptor<EventMessage>[]
190
207
  readonly handlerInterceptors: HandlerInterceptor[]
208
+ /** Correlation data providers; defaults to [messageOriginProvider()] at start when empty. */
209
+ readonly correlationDataProviders: CorrelationDataProvider[]
191
210
  /** Plan 09-01 (D-86): accumulator composed via multiHandlerEnhancerDefinition at start. */
192
211
  readonly handlerEnhancers: HandlerEnhancerDefinition[]
193
212
  readonly startHooks: Array<{ stage: LifecycleStage; fn: LifecycleHook }>
@@ -250,6 +269,7 @@ export class AppImpl implements App {
250
269
  queryDispatchInterceptors: [],
251
270
  eventDispatchInterceptors: [],
252
271
  handlerInterceptors: [],
272
+ correlationDataProviders: [],
253
273
  handlerEnhancers: [],
254
274
  startHooks: [],
255
275
  stopHooks: [],
@@ -399,6 +419,12 @@ export class AppImpl implements App {
399
419
  return this
400
420
  }
401
421
 
422
+ correlationDataProvider(...providers: CorrelationDataProvider[]): App {
423
+ this.guard()
424
+ this._state.correlationDataProviders.push(...providers)
425
+ return this
426
+ }
427
+
402
428
  handlerEnhancer(def: HandlerEnhancerDefinition): App {
403
429
  this.guard()
404
430
  this._state.handlerEnhancers.push(def)
@@ -451,6 +477,25 @@ export class AppImpl implements App {
451
477
  // (so resolved factories can't trigger fluent calls — defensive).
452
478
  this._started = true
453
479
 
480
+ // 2b. Resolve correlation lineage from one source. Providers default to a
481
+ // single messageOriginProvider() when the app registered none. Wire the
482
+ // "extract" handler interceptor (command/query) and the "apply" dispatch
483
+ // interceptors (command/query/event) into the accumulators BEFORE
484
+ // decorators are applied below, so the intercepting wrappers pick them
485
+ // up. Event processors receive the same providers in step 5e and seed
486
+ // per-event; the event appender applies the resulting data to appended
487
+ // events. The interceptors no-op outside a UnitOfWork, so primary
488
+ // gateway dispatches are unaffected — only handler-to-handler flows
489
+ // carry lineage.
490
+ const correlationProviders =
491
+ this._state.correlationDataProviders.length > 0
492
+ ? this._state.correlationDataProviders
493
+ : [messageOriginProvider()]
494
+ this._state.handlerInterceptors.push(correlationDataHandlerInterceptor(correlationProviders))
495
+ this._state.commandDispatchInterceptors.push(correlationDataDispatchInterceptor())
496
+ this._state.queryDispatchInterceptors.push(correlationDataDispatchInterceptor())
497
+ this._state.eventDispatchInterceptors.push(correlationDataDispatchInterceptor())
498
+
454
499
  // 3. Build the lazy Resolved proxy and EAGERLY resolve all 8 slots up-front
455
500
  // (Pitfall 1 — interleaving slot resolution with configurer registration creates stale-cache hazards).
456
501
  const resolved = buildResolved(this._state.slotRegistry)
@@ -575,6 +620,7 @@ export class AppImpl implements App {
575
620
  commandBus: built.commandBus,
576
621
  queryBus: built.queryBus,
577
622
  eventScheduler: built.eventScheduler,
623
+ correlationDataProviders: correlationProviders,
578
624
  unitOfWorkRunner: proc.unitOfWorkRunner ?? built.unitOfWorkFactory,
579
625
  errorHandler: proc.errorHandler,
580
626
  handlerEnhancer: composedHandlerEnhancer,
@@ -590,6 +636,7 @@ export class AppImpl implements App {
590
636
  commandBus: built.commandBus,
591
637
  queryBus: built.queryBus,
592
638
  eventScheduler: built.eventScheduler,
639
+ correlationDataProviders: correlationProviders,
593
640
  unitOfWorkRunner: proc.unitOfWorkRunner ?? built.unitOfWorkFactory,
594
641
  // Plan 09-01 (D-84): per-processor override wins, otherwise fall
595
642
  // back to the resolved tokenStore slot so the default in-memory
package/src/kronos.ts CHANGED
@@ -3,6 +3,9 @@ import type {
3
3
  CommandHandlerDefinition,
4
4
  QueryHandlerDefinition,
5
5
  EventProcessorModule,
6
+ HandlerInterceptor,
7
+ CommandMessage,
8
+ QueryMessage,
6
9
  } from "@kronos-ts/messaging"
7
10
  import {
8
11
  createInterceptingCommandBus,
@@ -87,7 +90,13 @@ export function kronos(partial?: KronosPartialConfig): App {
87
90
  (inner, _resolved) => {
88
91
  const wrapped = createInterceptingCommandBus(inner)
89
92
  for (const fn of app._state.commandDispatchInterceptors) wrapped.registerDispatchInterceptor(fn)
90
- for (const fn of app._state.handlerInterceptors) wrapped.registerHandlerInterceptor(fn)
93
+ // `app.handlerInterceptor()` registers bus-agnostic `HandlerInterceptor<Message>`s.
94
+ // Since `Message.kind` was added, `HandlerInterceptor<Message>` is no longer assignable
95
+ // to `HandlerInterceptor<CommandMessage>` (the `next` callback is contravariant). The
96
+ // adaptation is sound: the bus only ever drives `next` with its own CommandMessage, so a
97
+ // generic interceptor that forwards what it received stays within bounds. Direct
98
+ // registrants via `commandBus.registerHandlerInterceptor` keep the strict CommandMessage type.
99
+ for (const fn of app._state.handlerInterceptors) wrapped.registerHandlerInterceptor(fn as HandlerInterceptor<CommandMessage>)
91
100
  return wrapped
92
101
  },
93
102
  )
@@ -96,7 +105,9 @@ export function kronos(partial?: KronosPartialConfig): App {
96
105
  (inner, _resolved) => {
97
106
  const wrapped = createInterceptingQueryBus(inner)
98
107
  for (const fn of app._state.queryDispatchInterceptors) wrapped.registerDispatchInterceptor(fn)
99
- for (const fn of app._state.handlerInterceptors) wrapped.registerHandlerInterceptor(fn)
108
+ // See the command-bus fan-out above: bus-agnostic interceptors are adapted onto the
109
+ // typed QueryMessage bus; the bus only drives `next` with its own QueryMessage.
110
+ for (const fn of app._state.handlerInterceptors) wrapped.registerHandlerInterceptor(fn as HandlerInterceptor<QueryMessage>)
100
111
  return wrapped
101
112
  },
102
113
  )