syntropylog 0.7.2 → 0.7.4

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 CHANGED
@@ -556,13 +556,13 @@ describe('UserService', () => {
556
556
  - **[syntropylog](https://www.npmjs.com/package/syntropylog)** - Core framework
557
557
  - **[@syntropylog/adapters](https://www.npmjs.com/package/@syntropylog/adapters)** - HTTP and broker adapters
558
558
  - **[@syntropylog/types](https://www.npmjs.com/package/@syntropylog/types)** - TypeScript types
559
- - **[syntropylog-examples](https://github.com/Syntropysoft/syntropylog-examples-)** - 32 complete examples
559
+ - **[syntropylog-examples](https://github.com/Syntropysoft/syntropylog-examples)** - 32 complete examples
560
560
 
561
561
  ## 🚀 Examples
562
562
 
563
563
  Complete examples demonstrating SyntropyLog features:
564
564
 
565
- ### ✅ **Complete & Tested (00-13, 20-24, 28-32)**
565
+ ### ✅ **Complete & Tested (00-15, 20-24, 28-32)**
566
566
 
567
567
  #### **🎯 Beginner Friendly (00-09)**
568
568
  - **00**: Basic Setup - Simple initialization and logging
@@ -576,11 +576,13 @@ Complete examples demonstrating SyntropyLog features:
576
576
  - **08**: Serialization - Custom data formatting and masking
577
577
  - **09**: Testing - Unit tests with SyntropyLogMock
578
578
 
579
- #### **🌐 HTTP Framework Integration (10-13)**
579
+ #### **🌐 HTTP Framework Integration (10-15)**
580
580
  - **10**: Express.js - Traditional Express server with context
581
581
  - **11**: Koa.js - Modern Koa server with middleware
582
- - **12**: Express + Redis + Axios - Complete microservice with caching
583
- - **13**: Fastify + Redis - High-performance Fastify with automatic context propagation
582
+ - **12**: Express + Redis + Axios - Complete microservice with caching *(Reviewed and Fixed)*
583
+ - **13**: Fastify + Redis - High-performance Fastify with automatic context propagation *(Reviewed and Fixed)*
584
+ - **14**: NestJS Integration - Enterprise-grade framework with decorators
585
+ - **15**: Hapi.js Integration - Enterprise server with plugin architecture
584
586
 
585
587
  #### **📡 Message Brokers (20-24)**
586
588
  - **20**: Kafka Integration - Event streaming with correlation
@@ -596,8 +598,8 @@ Complete examples demonstrating SyntropyLog features:
596
598
  - **31**: Serializer Testing - Custom serializer validation
597
599
  - **32**: Transport Spies - Testing log outputs and formats
598
600
 
599
- ### 🚧 **In Development (14-19, 25-27)**
600
- - **14-19**: Advanced Framework Features - NestJS, Hapi, custom serializers
601
+ ### 🚧 **In Development (16-19, 25-27)**
602
+ - **16-19**: Advanced Framework Features - Custom serializers, advanced patterns
601
603
  - **25-27**: Enterprise Patterns - Production configuration, advanced context
602
604
 
603
605
  ### **🎯 Quick Start Examples**
@@ -617,7 +619,7 @@ Complete examples demonstrating SyntropyLog features:
617
619
  - **Vitest**: Example 28 (recommended)
618
620
  - **Jest**: Example 29
619
621
 
620
- [View all examples →](https://github.com/Syntropysoft/syntropylog-examples-)
622
+ [View all examples →](https://github.com/Syntropysoft/syntropylog-examples)
621
623
 
622
624
  ## 🤝 Contributing
623
625
 
@@ -55,6 +55,8 @@ export class InstrumentedBrokerClient {
55
55
  if (!message.headers) {
56
56
  message.headers = {};
57
57
  }
58
+ // Get current correlation ID from the active context (only if it exists, don't generate new)
59
+ const currentCorrelationId = (this.contextManager.get(this.contextManager.getCorrelationIdHeaderName()) || this.contextManager.get('correlationId'));
58
60
  // 1. Inject context into headers based on the configuration.
59
61
  if (this.config.propagate?.includes('*')) {
60
62
  // Wildcard behavior: Propagate the entire context map.
@@ -90,11 +92,10 @@ export class InstrumentedBrokerClient {
90
92
  }
91
93
  }
92
94
  }
93
- // Always propagate correlation and transaction IDs, as they are fundamental.
94
- const correlationId = this.contextManager.getCorrelationId();
95
- if (correlationId) {
95
+ // Only propagate correlation ID if it exists in the context (don't generate new)
96
+ if (currentCorrelationId) {
96
97
  message.headers[this.contextManager.getCorrelationIdHeaderName()] =
97
- correlationId;
98
+ currentCorrelationId;
98
99
  }
99
100
  const transactionId = this.contextManager.getTransactionId();
100
101
  if (transactionId) {
@@ -106,6 +107,7 @@ export class InstrumentedBrokerClient {
106
107
  messageId: message.headers?.['id'] instanceof Buffer
107
108
  ? message.headers?.['id'].toString()
108
109
  : message.headers?.['id'],
110
+ correlationId: currentCorrelationId, // Log the correlation ID being used
109
111
  }, 'Publishing message...');
110
112
  await this.adapter.publish(topic, message);
111
113
  this.logger.info({
@@ -113,6 +115,7 @@ export class InstrumentedBrokerClient {
113
115
  messageId: message.headers?.['id'] instanceof Buffer
114
116
  ? message.headers?.['id'].toString()
115
117
  : message.headers?.['id'],
118
+ correlationId: currentCorrelationId, // Log the correlation ID being used
116
119
  }, 'Message published successfully.');
117
120
  }
118
121
  /**
@@ -127,15 +130,47 @@ export class InstrumentedBrokerClient {
127
130
  this.logger.info({ topic }, 'Subscribing to topic...');
128
131
  // Wrap the user's handler to implement automatic context propagation.
129
132
  const instrumentedHandler = async (message, controls) => {
130
- // Restore context from all headers found in the message.
131
- // This is more robust as it doesn't assume which headers are present.
132
- await this.contextManager.run(async () => {
133
+ // Get correlation ID from message headers first
134
+ const messageCorrelationId = message.headers?.[this.contextManager.getCorrelationIdHeaderName()];
135
+ // Get current correlation ID from context (but don't generate new one if not exists)
136
+ const currentCorrelationId = this.contextManager.get(this.contextManager.getCorrelationIdHeaderName());
137
+ // If message has different correlation ID, restore context from message
138
+ if (messageCorrelationId &&
139
+ messageCorrelationId !== currentCorrelationId) {
140
+ await this.contextManager.run(async () => {
141
+ if (message.headers) {
142
+ for (const key in message.headers) {
143
+ this.contextManager.set(key, message.headers[key]);
144
+ }
145
+ }
146
+ // Use the message correlation ID for logging instead of generating a new one
147
+ const correlationId = messageCorrelationId;
148
+ this.logger.info({ topic, correlationId }, 'Received message.');
149
+ // Also wrap the lifecycle controls to add logging for ack/nack actions.
150
+ const instrumentedControls = {
151
+ ack: async () => {
152
+ await controls.ack();
153
+ this.logger.debug({ topic, correlationId }, 'Message acknowledged (ack).');
154
+ },
155
+ nack: async (requeue) => {
156
+ await controls.nack(requeue);
157
+ this.logger.warn({ topic, correlationId, requeue }, 'Message negatively acknowledged (nack).');
158
+ },
159
+ };
160
+ // Execute the original user-provided handler.
161
+ await handler(message, instrumentedControls);
162
+ });
163
+ }
164
+ else {
165
+ // Use current context, just set message headers if needed
133
166
  if (message.headers) {
134
167
  for (const key in message.headers) {
135
168
  this.contextManager.set(key, message.headers[key]);
136
169
  }
137
170
  }
138
- const correlationId = this.contextManager.getCorrelationId();
171
+ // Use the message correlation ID if available, otherwise use current context (but don't generate new one)
172
+ const correlationId = messageCorrelationId ||
173
+ this.contextManager.get(this.contextManager.getCorrelationIdHeaderName());
139
174
  this.logger.info({ topic, correlationId }, 'Received message.');
140
175
  // Also wrap the lifecycle controls to add logging for ack/nack actions.
141
176
  const instrumentedControls = {
@@ -150,7 +185,7 @@ export class InstrumentedBrokerClient {
150
185
  };
151
186
  // Execute the original user-provided handler.
152
187
  await handler(message, instrumentedControls);
153
- });
188
+ }
154
189
  };
155
190
  await this.adapter.subscribe(topic, instrumentedHandler);
156
191
  this.logger.info({ topic }, 'Successfully subscribed to topic.');
@@ -1 +1 @@
1
- {"version":3,"file":"InstrumentedBrokerClient.js","sourceRoot":"","sources":["../../src/brokers/InstrumentedBrokerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstrumentedBrokerClient.js","sourceRoot":"","sources":["../../src/brokers/InstrumentedBrokerClient.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,8 @@ class InstrumentedBrokerClient {
52
52
  if (!message.headers) {
53
53
  message.headers = {};
54
54
  }
55
+ // Get current correlation ID from the active context (only if it exists, don't generate new)
56
+ const currentCorrelationId = (this.contextManager.get(this.contextManager.getCorrelationIdHeaderName()) || this.contextManager.get('correlationId'));
55
57
  // 1. Inject context into headers based on the configuration.
56
58
  if (this.config.propagate?.includes('*')) {
57
59
  // Wildcard behavior: Propagate the entire context map.
@@ -87,11 +89,10 @@ class InstrumentedBrokerClient {
87
89
  }
88
90
  }
89
91
  }
90
- // Always propagate correlation and transaction IDs, as they are fundamental.
91
- const correlationId = this.contextManager.getCorrelationId();
92
- if (correlationId) {
92
+ // Only propagate correlation ID if it exists in the context (don't generate new)
93
+ if (currentCorrelationId) {
93
94
  message.headers[this.contextManager.getCorrelationIdHeaderName()] =
94
- correlationId;
95
+ currentCorrelationId;
95
96
  }
96
97
  const transactionId = this.contextManager.getTransactionId();
97
98
  if (transactionId) {
@@ -103,6 +104,7 @@ class InstrumentedBrokerClient {
103
104
  messageId: message.headers?.['id'] instanceof Buffer
104
105
  ? message.headers?.['id'].toString()
105
106
  : message.headers?.['id'],
107
+ correlationId: currentCorrelationId, // Log the correlation ID being used
106
108
  }, 'Publishing message...');
107
109
  await this.adapter.publish(topic, message);
108
110
  this.logger.info({
@@ -110,6 +112,7 @@ class InstrumentedBrokerClient {
110
112
  messageId: message.headers?.['id'] instanceof Buffer
111
113
  ? message.headers?.['id'].toString()
112
114
  : message.headers?.['id'],
115
+ correlationId: currentCorrelationId, // Log the correlation ID being used
113
116
  }, 'Message published successfully.');
114
117
  }
115
118
  /**
@@ -124,15 +127,47 @@ class InstrumentedBrokerClient {
124
127
  this.logger.info({ topic }, 'Subscribing to topic...');
125
128
  // Wrap the user's handler to implement automatic context propagation.
126
129
  const instrumentedHandler = async (message, controls) => {
127
- // Restore context from all headers found in the message.
128
- // This is more robust as it doesn't assume which headers are present.
129
- await this.contextManager.run(async () => {
130
+ // Get correlation ID from message headers first
131
+ const messageCorrelationId = message.headers?.[this.contextManager.getCorrelationIdHeaderName()];
132
+ // Get current correlation ID from context (but don't generate new one if not exists)
133
+ const currentCorrelationId = this.contextManager.get(this.contextManager.getCorrelationIdHeaderName());
134
+ // If message has different correlation ID, restore context from message
135
+ if (messageCorrelationId &&
136
+ messageCorrelationId !== currentCorrelationId) {
137
+ await this.contextManager.run(async () => {
138
+ if (message.headers) {
139
+ for (const key in message.headers) {
140
+ this.contextManager.set(key, message.headers[key]);
141
+ }
142
+ }
143
+ // Use the message correlation ID for logging instead of generating a new one
144
+ const correlationId = messageCorrelationId;
145
+ this.logger.info({ topic, correlationId }, 'Received message.');
146
+ // Also wrap the lifecycle controls to add logging for ack/nack actions.
147
+ const instrumentedControls = {
148
+ ack: async () => {
149
+ await controls.ack();
150
+ this.logger.debug({ topic, correlationId }, 'Message acknowledged (ack).');
151
+ },
152
+ nack: async (requeue) => {
153
+ await controls.nack(requeue);
154
+ this.logger.warn({ topic, correlationId, requeue }, 'Message negatively acknowledged (nack).');
155
+ },
156
+ };
157
+ // Execute the original user-provided handler.
158
+ await handler(message, instrumentedControls);
159
+ });
160
+ }
161
+ else {
162
+ // Use current context, just set message headers if needed
130
163
  if (message.headers) {
131
164
  for (const key in message.headers) {
132
165
  this.contextManager.set(key, message.headers[key]);
133
166
  }
134
167
  }
135
- const correlationId = this.contextManager.getCorrelationId();
168
+ // Use the message correlation ID if available, otherwise use current context (but don't generate new one)
169
+ const correlationId = messageCorrelationId ||
170
+ this.contextManager.get(this.contextManager.getCorrelationIdHeaderName());
136
171
  this.logger.info({ topic, correlationId }, 'Received message.');
137
172
  // Also wrap the lifecycle controls to add logging for ack/nack actions.
138
173
  const instrumentedControls = {
@@ -147,7 +182,7 @@ class InstrumentedBrokerClient {
147
182
  };
148
183
  // Execute the original user-provided handler.
149
184
  await handler(message, instrumentedControls);
150
- });
185
+ }
151
186
  };
152
187
  await this.adapter.subscribe(topic, instrumentedHandler);
153
188
  this.logger.info({ topic }, 'Successfully subscribed to topic.');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/brokers/InstrumentedBrokerClient.ts","../../src/internal-types.ts","../../src/types.ts","../../src/brokers/BrokerManager.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/brokers/InstrumentedBrokerClient.ts","../../src/internal-types.ts","../../src/types.ts","../../src/brokers/BrokerManager.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":";;AAgBA;;;;AAIG;MACU,wBAAwB,CAAA;AAGnC;;;;;;AAMG;AACH,IAAA,WAAA,CACmB,OAAuB,EACvB,MAAe,EACf,cAA+B,EAC/B,MAA4B,EAAA;QAH5B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAS;QACf,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;QAC/B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAsB;AAE7C,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;KACzC;AAED;;;;AAIG;AACI,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AAC5C,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;KACvD;AAED;;;;AAIG;AACI,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;AACjD,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;KAC5D;AAED;;;;;;;AAOG;AACI,IAAA,MAAM,OAAO,CAAC,KAAa,EAAE,OAAsB,EAAA;AACxD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACpB,YAAA,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;SACtB;;QAGD,MAAM,oBAAoB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CACnD,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,CACjD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAuB,CAAC;;QAErE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;;YAExC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AACnD,YAAA,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;AAC/B,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE;AAC5D,oBAAA,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACjC,oBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvD,wBAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;qBAC9B;iBACF;aACF;SACF;AAAM,aAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;;YAExE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvD,oBAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC9B;aACF;SACF;AAAM,aAAA,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;;YAE3C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AACnD,YAAA,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;AAC/B,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE;AAC5D,oBAAA,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACjC,oBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;;AAEvD,wBAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;qBAC9B;iBACF;aACF;SACF;;QAGD,IAAI,oBAAoB,EAAE;YACxB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,CAAC;AAC/D,gBAAA,oBAAoB,CAAC;SACxB;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAC7D,IAAI,aAAa,EAAE;YACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,CAAC;AAC/D,gBAAA,aAAa,CAAC;SACjB;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;YACE,KAAK;YACL,SAAS,EACP,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,MAAM;kBACrC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE;AACpC,kBAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,aAAa,EAAE,oBAAoB;SAC7B,EACR,uBAAuB,CACxB,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;YACE,KAAK;YACL,SAAS,EACP,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,MAAM;kBACrC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE;AACpC,kBAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,aAAa,EAAE,oBAAoB;SAC7B,EACR,iCAAiC,CAClC,CAAC;KACH;AAED;;;;;;;AAOG;AACI,IAAA,MAAM,SAAS,CACpB,KAAa,EACb,OAAuB,EAAA;QAEvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,yBAAyB,CAAC,CAAC;;QAGvD,MAAM,mBAAmB,GAAmB,OAAO,OAAO,EAAE,QAAQ,KAAI;;AAEtE,YAAA,MAAM,oBAAoB,GACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,CAAC,CAAC;;AAGtE,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAClD,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,CACvC,CAAC;;AAGZ,YAAA,IACE,oBAAoB;gBACpB,oBAAoB,KAAK,oBAAoB,EAC7C;gBACA,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAW;AACvC,oBAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,wBAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;AACjC,4BAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;yBACpD;qBACF;;oBAGD,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC3C,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,aAAa,EAAS,EAC/B,mBAAmB,CACpB,CAAC;;AAGF,oBAAA,MAAM,oBAAoB,GAA6B;wBACrD,GAAG,EAAE,YAAW;AACd,4BAAA,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;AACrB,4BAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,KAAK,EAAE,aAAa,EAAS,EAC/B,6BAA6B,CAC9B,CAAC;yBACH;AACD,wBAAA,IAAI,EAAE,OAAO,OAAO,KAAI;AACtB,4BAAA,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,4BAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAS,EACxC,yCAAyC,CAC1C,CAAC;yBACH;qBACF,CAAC;;AAGF,oBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAC/C,iBAAC,CAAC,CAAC;aACJ;iBAAM;;AAEL,gBAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,oBAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;AACjC,wBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;qBACpD;iBACF;;gBAGD,MAAM,aAAa,GACjB,oBAAoB;AACnB,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACtB,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAAE,CACtC,CAAC;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAS,EAAE,mBAAmB,CAAC,CAAC;;AAGvE,gBAAA,MAAM,oBAAoB,GAA6B;oBACrD,GAAG,EAAE,YAAW;AACd,wBAAA,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;AACrB,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,KAAK,EAAE,aAAa,EAAS,EAC/B,6BAA6B,CAC9B,CAAC;qBACH;AACD,oBAAA,IAAI,EAAE,OAAO,OAAO,KAAI;AACtB,wBAAA,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAS,EACxC,yCAAyC,CAC1C,CAAC;qBACH;iBACF,CAAC;;AAGF,gBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;aAC9C;AACH,SAAC,CAAC;QAEF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,mCAAmC,CAAC,CAAC;KAClE;AACF;;ACjQD;;;;;AAKG;AAgBH;;;AAGG;AACG,SAAU,gBAAgB,CAAC,KAAc,EAAA;AAC7C,IAAA,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;SAC3B,CAAC;KACH;AACD,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB;;AClCA;;;;AAIG;AA+CH;;ACnDA;;;;;AAKG;AAqBH;;;;;AAKG;MACU,aAAa,CAAA;AAOxB,IAAA,WAAA,CACE,MAA4B,EAC5B,MAAe,EACf,cAA+B,EAAA;AAThB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAoC,CAAC;AAWvE,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACtC;AAEM,IAAA,MAAM,IAAI,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAChE,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kEAAkE,CACnE,CAAC;YACF,OAAO;SACR;AAED,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAChD,OAAO,cAAc,KAAI;AACvB,YAAA,IAAI;AACF,gBAAA,MAAM,MAAM,GAAG,IAAI,wBAAwB,CACzC,cAAc,CAAC,OAAO,EACtB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc,EACnB,cAAc,CACf,CAAC;AACF,gBAAA,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,CAA2B,wBAAA,EAAA,cAAc,CAAC,YAAY,CAAuC,qCAAA,CAAA,CAC9F,CAAC;gBAEF,IAAI,cAAc,CAAC,YAAY,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,CAAoC,iCAAA,EAAA,cAAc,CAAC,YAAY,CAAE,CAAA,CAClE,CAAC;AACF,oBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;iBAC/B;aACF;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qCAAqC,cAAc,CAAC,YAAY,CAAA,EAAA,CAAI,EACpE,gBAAgB,CAAC,KAAK,CAAC,CACxB,CAAC;aACH;AACH,SAAC,CACF,CAAC;AAEF,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAEpC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE;AACpD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAC3D,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,CAA0E,uEAAA,EAAA,SAAS,CAAE,CAAA,CACtF,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;SACtC;KACF;AAEM,IAAA,WAAW,CAAC,IAAa,EAAA;QAC9B,MAAM,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;QAChE,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;SACH;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CACb,qCAAqC,YAAY,CAAA,0CAAA,CAA4C,CAC9F,CAAC;SACH;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEM,IAAA,MAAM,QAAQ,GAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAC9D,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CACpC,CAAC;AACF,QAAA,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;KAC5C;AACF;;;;;"}
@@ -437,8 +437,8 @@ declare const brokerConfigSchema: z.ZodOptional<z.ZodObject<{
437
437
  /**
438
438
  * @file src/config.ts
439
439
  * @description Defines and exports the configuration types for the library.
440
- * These types are inferred directly from the Zod schemas defined in `config.schema.ts`,
441
- * ensuring that static types and runtime validation are always in sync.
440
+ * These types are now explicitly defined for better TypeScript intellisense and autocompletion,
441
+ * while still using Zod schemas for runtime validation.
442
442
  */
443
443
 
444
444
  /**
@@ -50,6 +50,8 @@ class InstrumentedBrokerClient {
50
50
  if (!message.headers) {
51
51
  message.headers = {};
52
52
  }
53
+ // Get current correlation ID from the active context (only if it exists, don't generate new)
54
+ const currentCorrelationId = (this.contextManager.get(this.contextManager.getCorrelationIdHeaderName()) || this.contextManager.get('correlationId'));
53
55
  // 1. Inject context into headers based on the configuration.
54
56
  if (this.config.propagate?.includes('*')) {
55
57
  // Wildcard behavior: Propagate the entire context map.
@@ -85,11 +87,10 @@ class InstrumentedBrokerClient {
85
87
  }
86
88
  }
87
89
  }
88
- // Always propagate correlation and transaction IDs, as they are fundamental.
89
- const correlationId = this.contextManager.getCorrelationId();
90
- if (correlationId) {
90
+ // Only propagate correlation ID if it exists in the context (don't generate new)
91
+ if (currentCorrelationId) {
91
92
  message.headers[this.contextManager.getCorrelationIdHeaderName()] =
92
- correlationId;
93
+ currentCorrelationId;
93
94
  }
94
95
  const transactionId = this.contextManager.getTransactionId();
95
96
  if (transactionId) {
@@ -101,6 +102,7 @@ class InstrumentedBrokerClient {
101
102
  messageId: message.headers?.['id'] instanceof Buffer
102
103
  ? message.headers?.['id'].toString()
103
104
  : message.headers?.['id'],
105
+ correlationId: currentCorrelationId, // Log the correlation ID being used
104
106
  }, 'Publishing message...');
105
107
  await this.adapter.publish(topic, message);
106
108
  this.logger.info({
@@ -108,6 +110,7 @@ class InstrumentedBrokerClient {
108
110
  messageId: message.headers?.['id'] instanceof Buffer
109
111
  ? message.headers?.['id'].toString()
110
112
  : message.headers?.['id'],
113
+ correlationId: currentCorrelationId, // Log the correlation ID being used
111
114
  }, 'Message published successfully.');
112
115
  }
113
116
  /**
@@ -122,15 +125,47 @@ class InstrumentedBrokerClient {
122
125
  this.logger.info({ topic }, 'Subscribing to topic...');
123
126
  // Wrap the user's handler to implement automatic context propagation.
124
127
  const instrumentedHandler = async (message, controls) => {
125
- // Restore context from all headers found in the message.
126
- // This is more robust as it doesn't assume which headers are present.
127
- await this.contextManager.run(async () => {
128
+ // Get correlation ID from message headers first
129
+ const messageCorrelationId = message.headers?.[this.contextManager.getCorrelationIdHeaderName()];
130
+ // Get current correlation ID from context (but don't generate new one if not exists)
131
+ const currentCorrelationId = this.contextManager.get(this.contextManager.getCorrelationIdHeaderName());
132
+ // If message has different correlation ID, restore context from message
133
+ if (messageCorrelationId &&
134
+ messageCorrelationId !== currentCorrelationId) {
135
+ await this.contextManager.run(async () => {
136
+ if (message.headers) {
137
+ for (const key in message.headers) {
138
+ this.contextManager.set(key, message.headers[key]);
139
+ }
140
+ }
141
+ // Use the message correlation ID for logging instead of generating a new one
142
+ const correlationId = messageCorrelationId;
143
+ this.logger.info({ topic, correlationId }, 'Received message.');
144
+ // Also wrap the lifecycle controls to add logging for ack/nack actions.
145
+ const instrumentedControls = {
146
+ ack: async () => {
147
+ await controls.ack();
148
+ this.logger.debug({ topic, correlationId }, 'Message acknowledged (ack).');
149
+ },
150
+ nack: async (requeue) => {
151
+ await controls.nack(requeue);
152
+ this.logger.warn({ topic, correlationId, requeue }, 'Message negatively acknowledged (nack).');
153
+ },
154
+ };
155
+ // Execute the original user-provided handler.
156
+ await handler(message, instrumentedControls);
157
+ });
158
+ }
159
+ else {
160
+ // Use current context, just set message headers if needed
128
161
  if (message.headers) {
129
162
  for (const key in message.headers) {
130
163
  this.contextManager.set(key, message.headers[key]);
131
164
  }
132
165
  }
133
- const correlationId = this.contextManager.getCorrelationId();
166
+ // Use the message correlation ID if available, otherwise use current context (but don't generate new one)
167
+ const correlationId = messageCorrelationId ||
168
+ this.contextManager.get(this.contextManager.getCorrelationIdHeaderName());
134
169
  this.logger.info({ topic, correlationId }, 'Received message.');
135
170
  // Also wrap the lifecycle controls to add logging for ack/nack actions.
136
171
  const instrumentedControls = {
@@ -145,7 +180,7 @@ class InstrumentedBrokerClient {
145
180
  };
146
181
  // Execute the original user-provided handler.
147
182
  await handler(message, instrumentedControls);
148
- });
183
+ }
149
184
  };
150
185
  await this.adapter.subscribe(topic, instrumentedHandler);
151
186
  this.logger.info({ topic }, 'Successfully subscribed to topic.');
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/brokers/InstrumentedBrokerClient.ts","../../src/internal-types.ts","../../src/types.ts","../../src/brokers/BrokerManager.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/brokers/InstrumentedBrokerClient.ts","../../src/internal-types.ts","../../src/types.ts","../../src/brokers/BrokerManager.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @file src/config.ts
3
3
  * @description Defines and exports the configuration types for the library.
4
- * These types are inferred directly from the Zod schemas defined in `config.schema.ts`,
5
- * ensuring that static types and runtime validation are always in sync.
4
+ * These types are now explicitly defined for better TypeScript intellisense and autocompletion,
5
+ * while still using Zod schemas for runtime validation.
6
6
  */
7
7
  export {};
8
8
  //# sourceMappingURL=config.js.map
@@ -389,8 +389,8 @@ declare const httpInstanceConfigSchema: z.ZodObject<{
389
389
  /**
390
390
  * @file src/config.ts
391
391
  * @description Defines and exports the configuration types for the library.
392
- * These types are inferred directly from the Zod schemas defined in `config.schema.ts`,
393
- * ensuring that static types and runtime validation are always in sync.
392
+ * These types are now explicitly defined for better TypeScript intellisense and autocompletion,
393
+ * while still using Zod schemas for runtime validation.
394
394
  */
395
395
 
396
396
  /**
package/dist/index.cjs CHANGED
@@ -1931,6 +1931,8 @@ class InstrumentedBrokerClient {
1931
1931
  if (!message.headers) {
1932
1932
  message.headers = {};
1933
1933
  }
1934
+ // Get current correlation ID from the active context (only if it exists, don't generate new)
1935
+ const currentCorrelationId = (this.contextManager.get(this.contextManager.getCorrelationIdHeaderName()) || this.contextManager.get('correlationId'));
1934
1936
  // 1. Inject context into headers based on the configuration.
1935
1937
  if (this.config.propagate?.includes('*')) {
1936
1938
  // Wildcard behavior: Propagate the entire context map.
@@ -1966,11 +1968,10 @@ class InstrumentedBrokerClient {
1966
1968
  }
1967
1969
  }
1968
1970
  }
1969
- // Always propagate correlation and transaction IDs, as they are fundamental.
1970
- const correlationId = this.contextManager.getCorrelationId();
1971
- if (correlationId) {
1971
+ // Only propagate correlation ID if it exists in the context (don't generate new)
1972
+ if (currentCorrelationId) {
1972
1973
  message.headers[this.contextManager.getCorrelationIdHeaderName()] =
1973
- correlationId;
1974
+ currentCorrelationId;
1974
1975
  }
1975
1976
  const transactionId = this.contextManager.getTransactionId();
1976
1977
  if (transactionId) {
@@ -1982,6 +1983,7 @@ class InstrumentedBrokerClient {
1982
1983
  messageId: message.headers?.['id'] instanceof Buffer
1983
1984
  ? message.headers?.['id'].toString()
1984
1985
  : message.headers?.['id'],
1986
+ correlationId: currentCorrelationId, // Log the correlation ID being used
1985
1987
  }, 'Publishing message...');
1986
1988
  await this.adapter.publish(topic, message);
1987
1989
  this.logger.info({
@@ -1989,6 +1991,7 @@ class InstrumentedBrokerClient {
1989
1991
  messageId: message.headers?.['id'] instanceof Buffer
1990
1992
  ? message.headers?.['id'].toString()
1991
1993
  : message.headers?.['id'],
1994
+ correlationId: currentCorrelationId, // Log the correlation ID being used
1992
1995
  }, 'Message published successfully.');
1993
1996
  }
1994
1997
  /**
@@ -2003,15 +2006,47 @@ class InstrumentedBrokerClient {
2003
2006
  this.logger.info({ topic }, 'Subscribing to topic...');
2004
2007
  // Wrap the user's handler to implement automatic context propagation.
2005
2008
  const instrumentedHandler = async (message, controls) => {
2006
- // Restore context from all headers found in the message.
2007
- // This is more robust as it doesn't assume which headers are present.
2008
- await this.contextManager.run(async () => {
2009
+ // Get correlation ID from message headers first
2010
+ const messageCorrelationId = message.headers?.[this.contextManager.getCorrelationIdHeaderName()];
2011
+ // Get current correlation ID from context (but don't generate new one if not exists)
2012
+ const currentCorrelationId = this.contextManager.get(this.contextManager.getCorrelationIdHeaderName());
2013
+ // If message has different correlation ID, restore context from message
2014
+ if (messageCorrelationId &&
2015
+ messageCorrelationId !== currentCorrelationId) {
2016
+ await this.contextManager.run(async () => {
2017
+ if (message.headers) {
2018
+ for (const key in message.headers) {
2019
+ this.contextManager.set(key, message.headers[key]);
2020
+ }
2021
+ }
2022
+ // Use the message correlation ID for logging instead of generating a new one
2023
+ const correlationId = messageCorrelationId;
2024
+ this.logger.info({ topic, correlationId }, 'Received message.');
2025
+ // Also wrap the lifecycle controls to add logging for ack/nack actions.
2026
+ const instrumentedControls = {
2027
+ ack: async () => {
2028
+ await controls.ack();
2029
+ this.logger.debug({ topic, correlationId }, 'Message acknowledged (ack).');
2030
+ },
2031
+ nack: async (requeue) => {
2032
+ await controls.nack(requeue);
2033
+ this.logger.warn({ topic, correlationId, requeue }, 'Message negatively acknowledged (nack).');
2034
+ },
2035
+ };
2036
+ // Execute the original user-provided handler.
2037
+ await handler(message, instrumentedControls);
2038
+ });
2039
+ }
2040
+ else {
2041
+ // Use current context, just set message headers if needed
2009
2042
  if (message.headers) {
2010
2043
  for (const key in message.headers) {
2011
2044
  this.contextManager.set(key, message.headers[key]);
2012
2045
  }
2013
2046
  }
2014
- const correlationId = this.contextManager.getCorrelationId();
2047
+ // Use the message correlation ID if available, otherwise use current context (but don't generate new one)
2048
+ const correlationId = messageCorrelationId ||
2049
+ this.contextManager.get(this.contextManager.getCorrelationIdHeaderName());
2015
2050
  this.logger.info({ topic, correlationId }, 'Received message.');
2016
2051
  // Also wrap the lifecycle controls to add logging for ack/nack actions.
2017
2052
  const instrumentedControls = {
@@ -2026,7 +2061,7 @@ class InstrumentedBrokerClient {
2026
2061
  };
2027
2062
  // Execute the original user-provided handler.
2028
2063
  await handler(message, instrumentedControls);
2029
- });
2064
+ }
2030
2065
  };
2031
2066
  await this.adapter.subscribe(topic, instrumentedHandler);
2032
2067
  this.logger.info({ topic }, 'Successfully subscribed to topic.');