@arivlabs/logger 1.5.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const index_1 = require("./index");
4
4
  // Mock pino module
5
5
  jest.mock('pino', () => {
6
+ const createMockDestination = () => ({
7
+ write: jest.fn(),
8
+ end: jest.fn((cb) => cb && cb()),
9
+ flush: jest.fn((cb) => cb && cb()),
10
+ flushSync: jest.fn(),
11
+ destroyed: false,
12
+ minLength: 4096,
13
+ });
6
14
  const createMockLogger = () => ({
7
15
  info: jest.fn(),
8
16
  error: jest.fn(),
@@ -15,20 +23,38 @@ jest.mock('pino', () => {
15
23
  level: 'info',
16
24
  });
17
25
  const pino = jest.fn(() => createMockLogger());
26
+ // Add destination factory that returns a SonicBoom-like object
27
+ pino.destination = jest.fn(() => createMockDestination());
18
28
  pino.stdSerializers = {
19
29
  req: jest.fn(),
20
30
  res: jest.fn(),
21
31
  err: jest.fn(),
22
32
  };
23
- return { default: pino, __esModule: true };
33
+ // Add stdTimeFunctions for timestamp handling
34
+ const stdTimeFunctions = {
35
+ epochTime: () => `,"time":${Date.now()}`,
36
+ unixTime: () => `,"time":${Math.round(Date.now() / 1000.0)}`,
37
+ nullTime: () => '',
38
+ isoTime: () => `,"time":"${new Date(Date.now()).toISOString()}"`,
39
+ isoTimeNano: () => `,"time":"${new Date(Date.now()).toISOString()}"`,
40
+ };
41
+ return { default: pino, __esModule: true, stdTimeFunctions };
24
42
  });
25
- describe('@arivlabs/logger', () => {
43
+ describe('@arivlabs/logger v2.0.0', () => {
44
+ const originalEnv = process.env;
26
45
  beforeEach(() => {
27
46
  jest.clearAllMocks();
47
+ process.env = { ...originalEnv, NODE_ENV: 'test' };
28
48
  });
49
+ afterAll(() => {
50
+ process.env = originalEnv;
51
+ });
52
+ // ===========================================================================
53
+ // BASIC FUNCTIONALITY
54
+ // ===========================================================================
29
55
  describe('createLogger', () => {
30
56
  it('should create a logger with required service name', () => {
31
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
57
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
32
58
  expect(logger).toBeDefined();
33
59
  expect(typeof logger.info).toBe('function');
34
60
  expect(typeof logger.error).toBe('function');
@@ -37,49 +63,38 @@ describe('@arivlabs/logger', () => {
37
63
  expect(typeof logger.trace).toBe('function');
38
64
  expect(typeof logger.fatal).toBe('function');
39
65
  });
40
- it('should accept all valid service names', () => {
41
- const services = [
42
- 'api-gateway',
43
- 'queue-manager',
44
- 'scanner-result-processor',
45
- 'enrichment-processor',
46
- 'lineage-processor',
47
- 'ai-proxy',
48
- 'control-plane',
49
- ];
50
- services.forEach((service) => {
51
- const logger = (0, index_1.createLogger)({ service });
52
- expect(logger).toBeDefined();
53
- });
54
- });
55
- it('should accept custom service names', () => {
56
- const logger = (0, index_1.createLogger)({ service: 'custom-service' });
57
- expect(logger).toBeDefined();
66
+ it('should accept any string as service name', () => {
67
+ const logger1 = (0, index_1.createLogger)({ service: 'service-one' });
68
+ const logger2 = (0, index_1.createLogger)({ service: 'my-custom-service' });
69
+ const logger3 = (0, index_1.createLogger)({ service: 'brand-new-microservice' });
70
+ expect(logger1).toBeDefined();
71
+ expect(logger2).toBeDefined();
72
+ expect(logger3).toBeDefined();
58
73
  });
59
74
  it('should create logger with optional environment', () => {
60
75
  const logger = (0, index_1.createLogger)({
61
- service: 'api-gateway',
76
+ service: 'my-service',
62
77
  environment: 'production',
63
78
  });
64
79
  expect(logger).toBeDefined();
65
80
  });
66
81
  it('should create logger with optional log level', () => {
67
82
  const logger = (0, index_1.createLogger)({
68
- service: 'api-gateway',
83
+ service: 'my-service',
69
84
  level: 'debug',
70
85
  });
71
86
  expect(logger).toBeDefined();
72
87
  });
73
88
  it('should create logger with pretty printing disabled', () => {
74
89
  const logger = (0, index_1.createLogger)({
75
- service: 'api-gateway',
90
+ service: 'my-service',
76
91
  pretty: false,
77
92
  });
78
93
  expect(logger).toBeDefined();
79
94
  });
80
95
  it('should create logger with custom redact paths', () => {
81
96
  const logger = (0, index_1.createLogger)({
82
- service: 'api-gateway',
97
+ service: 'my-service',
83
98
  redact: {
84
99
  paths: ['customSecret', 'user.ssn'],
85
100
  },
@@ -88,7 +103,7 @@ describe('@arivlabs/logger', () => {
88
103
  });
89
104
  it('should create logger with custom redact censor', () => {
90
105
  const logger = (0, index_1.createLogger)({
91
- service: 'api-gateway',
106
+ service: 'my-service',
92
107
  redact: {
93
108
  paths: ['secret'],
94
109
  censor: '***MASKED***',
@@ -96,17 +111,75 @@ describe('@arivlabs/logger', () => {
96
111
  });
97
112
  expect(logger).toBeDefined();
98
113
  });
99
- it('should create logger with redact remove option', () => {
114
+ it('should create logger with custom base fields', () => {
100
115
  const logger = (0, index_1.createLogger)({
101
- service: 'api-gateway',
102
- redact: {
103
- paths: ['secret'],
104
- remove: true,
116
+ service: 'my-service',
117
+ base: {
118
+ version: '1.0.0',
119
+ region: 'us-east-1',
105
120
  },
106
121
  });
107
122
  expect(logger).toBeDefined();
108
123
  });
109
124
  });
125
+ // ===========================================================================
126
+ // ASYNC MODE
127
+ // ===========================================================================
128
+ describe('async mode', () => {
129
+ it('should create logger with async mode explicitly enabled', () => {
130
+ const logger = (0, index_1.createLogger)({
131
+ service: 'my-service',
132
+ enableAsync: true,
133
+ });
134
+ expect(logger).toBeDefined();
135
+ expect(typeof logger.flush).toBe('function');
136
+ expect(typeof logger.shutdown).toBe('function');
137
+ });
138
+ it('should create logger with async mode explicitly disabled', () => {
139
+ const logger = (0, index_1.createLogger)({
140
+ service: 'my-service',
141
+ enableAsync: false,
142
+ });
143
+ expect(logger).toBeDefined();
144
+ });
145
+ it('should create logger with custom async buffer size', () => {
146
+ const logger = (0, index_1.createLogger)({
147
+ service: 'my-service',
148
+ enableAsync: true,
149
+ asyncBufferSize: 8192,
150
+ });
151
+ expect(logger).toBeDefined();
152
+ });
153
+ it('flush() should not throw', () => {
154
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
155
+ expect(() => logger.flush()).not.toThrow();
156
+ });
157
+ it('shutdown() should resolve without error', async () => {
158
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
159
+ await expect(logger.shutdown()).resolves.toBeUndefined();
160
+ });
161
+ });
162
+ // ===========================================================================
163
+ // EXCEPTION HANDLING
164
+ // ===========================================================================
165
+ describe('exception handling', () => {
166
+ it('should not register exception handlers by default', () => {
167
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
168
+ expect(logger).toBeDefined();
169
+ // handleExceptions defaults to false
170
+ });
171
+ it('should accept handleExceptions option', () => {
172
+ // In test mode, handlers are not registered even if requested
173
+ const logger = (0, index_1.createLogger)({
174
+ service: 'my-service',
175
+ handleExceptions: true,
176
+ });
177
+ expect(logger).toBeDefined();
178
+ });
179
+ });
180
+ // ===========================================================================
181
+ // REDACTION DEFAULTS
182
+ // ===========================================================================
110
183
  describe('redaction defaults', () => {
111
184
  it('should have default redact paths for common sensitive fields', () => {
112
185
  expect(index_1.DEFAULT_REDACT_PATHS).toContain('password');
@@ -133,26 +206,28 @@ describe('@arivlabs/logger', () => {
133
206
  expect(index_1.DEFAULT_REDACT_PATHS).toContain('credentials.sessionToken');
134
207
  });
135
208
  });
209
+ // ===========================================================================
210
+ // FLEXIBLE CALLING CONVENTION
211
+ // ===========================================================================
136
212
  describe('flexible calling convention', () => {
137
213
  it('should support intuitive style: logger.info(message, data)', () => {
138
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
139
- // Just verify no error is thrown and the method exists
214
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
140
215
  expect(() => logger.info('Server started', { port: 3000 })).not.toThrow();
141
216
  });
142
217
  it('should support message-only style: logger.info(message)', () => {
143
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
218
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
144
219
  expect(() => logger.info('Server started')).not.toThrow();
145
220
  });
146
221
  it('should support pino native style: logger.info({ msg, data })', () => {
147
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
222
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
148
223
  expect(() => logger.info({ msg: 'Server started', port: 3000 })).not.toThrow();
149
224
  });
150
225
  it('should support pino native style with separate message: logger.info(data, message)', () => {
151
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
226
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
152
227
  expect(() => logger.info({ port: 3000 }, 'Server started')).not.toThrow();
153
228
  });
154
229
  it('should work for all log levels', () => {
155
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
230
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
156
231
  expect(() => logger.trace('Trace message', { data: 1 })).not.toThrow();
157
232
  expect(() => logger.debug('Debug message', { data: 2 })).not.toThrow();
158
233
  expect(() => logger.info('Info message', { data: 3 })).not.toThrow();
@@ -161,63 +236,59 @@ describe('@arivlabs/logger', () => {
161
236
  expect(() => logger.fatal('Fatal message', { data: 6 })).not.toThrow();
162
237
  });
163
238
  it('should accept Error objects with { err } property', () => {
164
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
239
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
165
240
  const testError = new Error('Test error');
166
241
  expect(() => logger.error('Operation failed', { err: testError })).not.toThrow();
167
242
  });
168
243
  it('should accept Error objects with { error } property (auto-converts to err)', () => {
169
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
244
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
170
245
  const testError = new Error('Test error');
171
246
  expect(() => logger.error('Operation failed', { error: testError })).not.toThrow();
172
247
  });
173
- it('should handle both err and error properties together', () => {
174
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
248
+ it('should handle both err and error properties together (err takes precedence)', () => {
249
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
175
250
  const testError = new Error('Test error');
176
- // When both are provided, err takes precedence (error is not converted)
177
251
  expect(() => logger.error('Operation failed', { err: testError, error: 'string' })).not.toThrow();
178
252
  });
179
253
  });
254
+ // ===========================================================================
255
+ // DOMAIN LOGGING
256
+ // ===========================================================================
180
257
  describe('logger.domain()', () => {
181
258
  it('should create a child logger with domain', () => {
182
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
183
- const discoveryLogger = logger.domain('discovery');
184
- expect(discoveryLogger).toBeDefined();
185
- expect(typeof discoveryLogger.info).toBe('function');
186
- expect(typeof discoveryLogger.error).toBe('function');
187
- });
188
- it('should accept all valid domains', () => {
189
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
190
- const domains = [
191
- 'discovery',
192
- 'auth',
193
- 'connectors',
194
- 'inventory',
195
- 'lineage',
196
- 'onboarding',
197
- 'proxy',
198
- 'users',
199
- 'dashboard',
200
- 'internal',
201
- 'storage',
202
- 'email',
203
- 'queue',
204
- 'system',
205
- ];
206
- domains.forEach((domain) => {
207
- const childLogger = logger.domain(domain);
208
- expect(childLogger).toBeDefined();
209
- expect(typeof childLogger.info).toBe('function');
210
- });
259
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
260
+ const domainLogger = logger.domain('auth');
261
+ expect(domainLogger).toBeDefined();
262
+ expect(typeof domainLogger.info).toBe('function');
263
+ expect(typeof domainLogger.error).toBe('function');
264
+ });
265
+ it('should accept any string as domain', () => {
266
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
267
+ const log1 = logger.domain('auth');
268
+ const log2 = logger.domain('my-custom-domain');
269
+ const log3 = logger.domain('brand-new-feature');
270
+ expect(log1).toBeDefined();
271
+ expect(log2).toBeDefined();
272
+ expect(log3).toBeDefined();
211
273
  });
212
274
  it('should return a wrapped logger supporting flexible calls', () => {
213
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
214
- const discoveryLogger = logger.domain('discovery');
215
- expect(() => discoveryLogger.info('Job started', { jobId: '123' })).not.toThrow();
275
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
276
+ const domainLogger = logger.domain('discovery');
277
+ expect(() => domainLogger.info('Job started', { jobId: '123' })).not.toThrow();
278
+ });
279
+ it('should preserve flush and shutdown methods on child loggers', () => {
280
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
281
+ const childLogger = logger.domain('auth');
282
+ expect(typeof childLogger.flush).toBe('function');
283
+ expect(typeof childLogger.shutdown).toBe('function');
216
284
  });
217
285
  });
286
+ // ===========================================================================
287
+ // CONTEXT LOGGING
288
+ // ===========================================================================
218
289
  describe('logger.withContext()', () => {
219
290
  it('should create a child logger with full context', () => {
220
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
291
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
221
292
  const requestLogger = logger.withContext({
222
293
  correlationId: 'abc-123',
223
294
  userId: 'user-456',
@@ -228,64 +299,137 @@ describe('@arivlabs/logger', () => {
228
299
  expect(typeof requestLogger.info).toBe('function');
229
300
  });
230
301
  it('should create a child logger with minimal context', () => {
231
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
302
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
232
303
  const requestLogger = logger.withContext({
233
304
  correlationId: 'abc-123',
234
305
  });
235
306
  expect(requestLogger).toBeDefined();
236
307
  });
237
308
  it('should return a wrapped logger supporting flexible calls', () => {
238
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
309
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
239
310
  const reqLogger = logger.withContext({ correlationId: 'abc-123' });
240
311
  expect(() => reqLogger.error('Request failed', { status: 500 })).not.toThrow();
241
312
  });
242
313
  });
314
+ // ===========================================================================
315
+ // CHILD LOGGING
316
+ // ===========================================================================
243
317
  describe('logger.child()', () => {
244
318
  it('should create a child logger with custom bindings', () => {
245
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
319
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
246
320
  const childLogger = logger.child({ customField: 'value' });
247
321
  expect(childLogger).toBeDefined();
248
322
  expect(typeof childLogger.info).toBe('function');
249
323
  });
324
+ it('should allow chaining child loggers', () => {
325
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
326
+ const child1 = logger.child({ jobId: '123' });
327
+ const child2 = child1.child({ step: 'processing' });
328
+ expect(child2).toBeDefined();
329
+ expect(() => child2.info('Processing step')).not.toThrow();
330
+ });
250
331
  });
251
- describe('type exports', () => {
252
- it('should export ServiceName type', () => {
253
- const service = 'api-gateway';
254
- expect(service).toBe('api-gateway');
332
+ // ===========================================================================
333
+ // PINO ACCESS
334
+ // ===========================================================================
335
+ describe('logger.pino', () => {
336
+ it('should expose underlying pino logger', () => {
337
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
338
+ expect(logger.pino).toBeDefined();
255
339
  });
256
- it('should export LogDomain type', () => {
257
- const domain = 'discovery';
258
- expect(domain).toBe('discovery');
340
+ });
341
+ // ===========================================================================
342
+ // LEVEL MANAGEMENT
343
+ // ===========================================================================
344
+ describe('level management', () => {
345
+ it('should have isLevelEnabled method', () => {
346
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
347
+ expect(typeof logger.isLevelEnabled).toBe('function');
348
+ expect(logger.isLevelEnabled('info')).toBe(true);
349
+ });
350
+ it('should have level property', () => {
351
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
352
+ expect(typeof logger.level).toBe('string');
259
353
  });
354
+ });
355
+ // ===========================================================================
356
+ // BACKWARDS COMPATIBILITY (deprecated helpers)
357
+ // ===========================================================================
358
+ describe('backwards compatibility', () => {
359
+ describe('deprecated helper functions', () => {
360
+ it('createDomainLogger should work', () => {
361
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
362
+ const domainLogger = (0, index_1.createDomainLogger)(logger, 'auth');
363
+ expect(domainLogger).toBeDefined();
364
+ });
365
+ it('createRequestLogger should work', () => {
366
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
367
+ const reqLogger = (0, index_1.createRequestLogger)(logger, 'auth', 'correlation-123', 'user-456', 'tenant-789');
368
+ expect(reqLogger).toBeDefined();
369
+ });
370
+ });
371
+ });
372
+ // ===========================================================================
373
+ // TYPE EXPORTS
374
+ // ===========================================================================
375
+ describe('type exports', () => {
260
376
  it('should export ArivLogger type', () => {
261
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
377
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
262
378
  expect(logger).toBeDefined();
263
379
  });
380
+ it('should allow any string for service name', () => {
381
+ const logger = (0, index_1.createLogger)({ service: 'any-service-name-works' });
382
+ expect(logger).toBeDefined();
383
+ });
384
+ it('should allow any string for domain name', () => {
385
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
386
+ const domainLogger = logger.domain('any-domain-name-works');
387
+ expect(domainLogger).toBeDefined();
388
+ });
264
389
  });
390
+ // ===========================================================================
391
+ // ENVIRONMENT DEFAULTS
392
+ // ===========================================================================
265
393
  describe('environment defaults', () => {
266
- const originalEnv = process.env;
267
394
  beforeEach(() => {
268
395
  process.env = { ...originalEnv };
269
396
  });
270
- afterAll(() => {
271
- process.env = originalEnv;
272
- });
273
397
  it('should default to debug level in development', () => {
274
398
  process.env.NODE_ENV = 'development';
275
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
399
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
276
400
  expect(logger).toBeDefined();
277
401
  });
278
402
  it('should default to info level in production', () => {
279
403
  process.env.NODE_ENV = 'production';
280
404
  const logger = (0, index_1.createLogger)({
281
- service: 'api-gateway',
405
+ service: 'my-service',
282
406
  environment: 'production',
283
407
  });
284
408
  expect(logger).toBeDefined();
285
409
  });
286
410
  it('should respect LOG_LEVEL env variable', () => {
287
411
  process.env.LOG_LEVEL = 'warn';
288
- const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
412
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
413
+ expect(logger).toBeDefined();
414
+ });
415
+ it('should respect ENV variable for environment', () => {
416
+ process.env.ENV = 'staging';
417
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
418
+ expect(logger).toBeDefined();
419
+ });
420
+ it('should default enableAsync to false in development', () => {
421
+ process.env.NODE_ENV = 'development';
422
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
423
+ expect(logger).toBeDefined();
424
+ });
425
+ it('should default enableAsync to false in test', () => {
426
+ process.env.NODE_ENV = 'test';
427
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
428
+ expect(logger).toBeDefined();
429
+ });
430
+ it('should default enableAsync to false when ENV=local', () => {
431
+ process.env.ENV = 'local';
432
+ const logger = (0, index_1.createLogger)({ service: 'my-service' });
289
433
  expect(logger).toBeDefined();
290
434
  });
291
435
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@arivlabs/logger",
3
- "version": "1.5.0",
4
- "description": "Structured logging for Node.js services with CloudWatch support",
3
+ "version": "2.0.0",
4
+ "description": "Structured logging for Node.js services with CloudWatch support, async mode, and automatic sensitive data redaction",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -33,7 +33,7 @@
33
33
  "registry": "https://registry.npmjs.org/"
34
34
  },
35
35
  "dependencies": {
36
- "pino": "^9.6.0"
36
+ "pino": "^10.2.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^22.10.2",
@@ -53,7 +53,9 @@
53
53
  "cloudwatch",
54
54
  "structured-logging",
55
55
  "nodejs",
56
- "typescript"
56
+ "typescript",
57
+ "async-logging",
58
+ "redaction"
57
59
  ],
58
60
  "author": "ArivLabs <hello@arivlabs.com>",
59
61
  "license": "MIT",