@togatherlabs/shared-utils 1.10.0 → 1.14.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.
Files changed (49) hide show
  1. package/dist/constants/index.d.ts +2 -0
  2. package/dist/constants/index.d.ts.map +1 -0
  3. package/dist/constants/index.js +2 -0
  4. package/dist/constants/index.js.map +1 -0
  5. package/dist/constants/sample.d.ts +4 -0
  6. package/dist/constants/sample.d.ts.map +1 -0
  7. package/dist/constants/sample.js +4 -0
  8. package/dist/constants/sample.js.map +1 -0
  9. package/dist/helpers/formatDate.d.ts +2 -0
  10. package/dist/helpers/formatDate.d.ts.map +1 -0
  11. package/dist/helpers/formatDate.js +11 -0
  12. package/dist/helpers/formatDate.js.map +1 -0
  13. package/dist/helpers/index.d.ts +2 -0
  14. package/dist/helpers/index.d.ts.map +1 -0
  15. package/dist/helpers/index.js +2 -0
  16. package/dist/helpers/index.js.map +1 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +4 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/logger/ILogger.d.ts +97 -0
  22. package/dist/logger/ILogger.d.ts.map +1 -0
  23. package/dist/logger/ILogger.js +2 -0
  24. package/dist/logger/ILogger.js.map +1 -0
  25. package/dist/logger/index.d.ts +3 -0
  26. package/dist/logger/index.d.ts.map +1 -0
  27. package/dist/logger/index.js +2 -0
  28. package/dist/logger/index.js.map +1 -0
  29. package/dist/logger/logger.d.ts +54 -0
  30. package/dist/logger/logger.d.ts.map +1 -0
  31. package/dist/logger/logger.js +138 -0
  32. package/dist/logger/logger.js.map +1 -0
  33. package/dist/types/AccountRole.d.ts +9 -0
  34. package/dist/types/AccountRole.d.ts.map +1 -0
  35. package/dist/types/AccountRole.js +8 -0
  36. package/dist/types/AccountRole.js.map +1 -0
  37. package/dist/types/IAccountContext.d.ts +7 -0
  38. package/dist/types/IAccountContext.d.ts.map +1 -0
  39. package/dist/types/IAccountContext.js +2 -0
  40. package/dist/types/IAccountContext.js.map +1 -0
  41. package/dist/types/index.d.ts +4 -0
  42. package/dist/types/index.d.ts.map +1 -0
  43. package/dist/types/index.js +4 -0
  44. package/dist/types/index.js.map +1 -0
  45. package/dist/types/user.d.ts +6 -0
  46. package/dist/types/user.d.ts.map +1 -0
  47. package/dist/types/user.js +2 -0
  48. package/dist/types/user.js.map +1 -0
  49. package/package.json +2 -5
@@ -0,0 +1,2 @@
1
+ export * from './sample.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './sample.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const SAMPLE: {
2
+ Char: string;
3
+ };
4
+ //# sourceMappingURL=sample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../src/constants/sample.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;CAElB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const SAMPLE = {
2
+ Char: 'A',
3
+ };
4
+ //# sourceMappingURL=sample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/constants/sample.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,IAAI,EAAE,GAAG;CACT,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function formatDate(date: Date, locale?: string): string;
2
+ //# sourceMappingURL=formatDate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDate.d.ts","sourceRoot":"","sources":["../../src/helpers/formatDate.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,SAAU,GAAG,MAAM,CAU/D"}
@@ -0,0 +1,11 @@
1
+ export function formatDate(date, locale = 'en-IN') {
2
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
3
+ throw new Error('Invalid Date');
4
+ }
5
+ return date.toLocaleDateString(locale, {
6
+ year: 'numeric',
7
+ month: 'short',
8
+ day: 'numeric',
9
+ });
10
+ }
11
+ //# sourceMappingURL=formatDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDate.js","sourceRoot":"","sources":["../../src/helpers/formatDate.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,MAAM,GAAG,OAAO;IACtD,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACtC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACd,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './formatDate.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './formatDate.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './logger/index.js';
2
+ export * from './types/index.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ // Main library exports
2
+ export * from './logger/index.js';
3
+ export * from './types/index.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Logger interface for structured logging.
3
+ */
4
+ export interface ILogger {
5
+ /**
6
+ * Log informational messages
7
+ *
8
+ * @param labels - Context object that can include:
9
+ * - `label`: string | string[] - Categorization labels (e.g., class name, method name, operation type)
10
+ * - Any other contextual data (userId, requestId, etc.)
11
+ * @param msg - Human-readable log message (supports string interpolation with args)
12
+ * @param args - Values for string interpolation in the message (e.g., logger.info({}, 'User %s logged in', userId))
13
+ *
14
+ * @example
15
+ * logger.info({ label: 'UserService' }, 'User created');
16
+ * logger.info({ label: ['UserService', 'createUser'] }, 'Creating user');
17
+ * logger.info({ userId: '123', label: 'UserService.createUser' }, 'User created successfully');
18
+ * logger.info({ label: 'UserService' }, 'User %s created with email %s', userId, email);
19
+ */
20
+ info(labels: object | string, msg?: string, ...args: unknown[]): void;
21
+ /**
22
+ * Log warning messages
23
+ *
24
+ * @param labels - Context object that can include:
25
+ * - `label`: string | string[] - Categorization labels (e.g., class name, method name, operation type)
26
+ * - Any other contextual data (userId, requestId, etc.)
27
+ * @param msg - Human-readable log message (supports string interpolation with args)
28
+ * @param args - Values for string interpolation in the message
29
+ *
30
+ * @example
31
+ * logger.warn({ label: 'RateLimiter' }, 'Rate limit approaching');
32
+ * logger.warn({ userId: '123', label: ['AuthService', 'login'] }, 'Multiple failed attempts');
33
+ * logger.warn({ label: 'RateLimiter' }, 'User %s exceeded %d requests', userId, maxRequests);
34
+ */
35
+ warn(labels: object | string, msg?: string, ...args: unknown[]): void;
36
+ /**
37
+ * Log error messages
38
+ *
39
+ * @param labels - Context object that can include:
40
+ * - `label`: string | string[] - Categorization labels (e.g., class name, method name, operation type)
41
+ * - `err`: Error - The error object for proper serialization
42
+ * - Any other contextual data (userId, requestId, etc.)
43
+ * @param msg - Human-readable log message (supports string interpolation with args)
44
+ * @param args - Values for string interpolation in the message
45
+ *
46
+ * @example
47
+ * logger.error({ err, label: 'DatabaseService' }, 'Connection failed');
48
+ * logger.error({ err, userId: '123', label: ['UserRepository', 'findById'] }, 'Query failed');
49
+ * logger.error({ err, label: 'DatabaseService' }, 'Failed to connect to %s on port %d', host, port);
50
+ */
51
+ error(labels: object | string, msg?: string, ...args: unknown[]): void;
52
+ /**
53
+ * Log debug messages
54
+ *
55
+ * @param labels - Context object that can include:
56
+ * - `label`: string | string[] - Categorization labels (e.g., class name, method name, operation type)
57
+ * - Any other contextual data (userId, requestId, etc.)
58
+ * @param msg - Human-readable log message (supports string interpolation with args)
59
+ * @param args - Values for string interpolation in the message
60
+ *
61
+ * @example
62
+ * logger.debug({ label: 'CacheService' }, 'Cache hit');
63
+ * logger.debug({ cacheKey: 'user:123', label: ['CacheService', 'get'] }, 'Retrieved from cache');
64
+ * logger.debug({ label: 'CacheService' }, 'Cache hit for key %s in %dms', cacheKey, duration);
65
+ */
66
+ debug(labels: object | string, msg?: string, ...args: unknown[]): void;
67
+ /**
68
+ * Log fatal messages (highest severity)
69
+ *
70
+ * @param labels - Context object that can include:
71
+ * - `label`: string | string[] - Categorization labels (e.g., class name, method name, operation type)
72
+ * - `err`: Error - The error object for proper serialization
73
+ * - Any other contextual data (userId, requestId, etc.)
74
+ * @param msg - Human-readable log message (supports string interpolation with args)
75
+ * @param args - Values for string interpolation in the message
76
+ *
77
+ * @example
78
+ * logger.fatal({ err, label: 'Application' }, 'Critical system failure');
79
+ * logger.fatal({ err, label: 'Application' }, 'System crashed after %d retries', retryCount);
80
+ */
81
+ fatal(labels: object | string, msg?: string, ...args: unknown[]): void;
82
+ /**
83
+ * Log trace messages (lowest severity)
84
+ *
85
+ * @param labels - Context object that can include:
86
+ * - `label`: string | string[] - Categorization labels (e.g., class name, method name, operation type)
87
+ * - Any other contextual data (userId, requestId, etc.)
88
+ * @param msg - Human-readable log message (supports string interpolation with args)
89
+ * @param args - Values for string interpolation in the message
90
+ *
91
+ * @example
92
+ * logger.trace({ label: ['UserService', 'createUser', 'validation'] }, 'Validating input');
93
+ * logger.trace({ label: 'UserService' }, 'Step %d: %s', stepNumber, stepName);
94
+ */
95
+ trace(labels: object | string, msg?: string, ...args: unknown[]): void;
96
+ }
97
+ //# sourceMappingURL=ILogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILogger.d.ts","sourceRoot":"","sources":["../../src/logger/ILogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEtE;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEtE;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEvE;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEvE;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEvE;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACvE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ILogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILogger.js","sourceRoot":"","sources":["../../src/logger/ILogger.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { ILogger } from './ILogger.js';
2
+ export { Logger, type LoggerConfig } from './logger.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Logger } from './logger.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { type LoggerOptions } from 'pino';
2
+ import type { ILogger } from './ILogger.js';
3
+ export interface LoggerConfig {
4
+ /** Node environment (e.g., 'development', 'production', 'test') */
5
+ nodeEnv?: string;
6
+ /** Log level (e.g., 'info', 'debug', 'warn', 'error') */
7
+ logLevel?: string;
8
+ /** Service name for log context */
9
+ serviceName?: string;
10
+ /** Hostname override */
11
+ hostname?: string;
12
+ }
13
+ /**
14
+ * Pino logger implementation with configurable options.
15
+ *
16
+ * @example
17
+ * // Minimal - uses defaults
18
+ * const logger = new Logger();
19
+ *
20
+ * @example
21
+ * // With environment config from service
22
+ * const logger = new Logger(undefined, {
23
+ * nodeEnv: process.env.NODE_ENV,
24
+ * logLevel: process.env.LOG_LEVEL,
25
+ * serviceName: process.env.SERVICE_NAME
26
+ * });
27
+ *
28
+ * @example
29
+ * // With custom Pino options
30
+ * const logger = new Logger({
31
+ * level: 'debug',
32
+ * base: { service: 'my-service', version: '1.0.0' }
33
+ * });
34
+ */
35
+ export declare class Logger implements ILogger {
36
+ private logger;
37
+ /**
38
+ * Creates a new Logger instance.
39
+ *
40
+ * @param options - logger options for advanced configuration
41
+ * @param config - Environment configuration passed from the service
42
+ */
43
+ constructor({ options, config }: {
44
+ options?: LoggerOptions;
45
+ config?: LoggerConfig;
46
+ });
47
+ info(labels: object | string, msg?: string, ...args: unknown[]): void;
48
+ warn(labels: object | string, msg?: string, ...args: unknown[]): void;
49
+ error(labels: object | string, msg?: string, ...args: unknown[]): void;
50
+ debug(labels: object | string, msg?: string, ...args: unknown[]): void;
51
+ fatal(labels: object | string, msg?: string, ...args: unknown[]): void;
52
+ trace(labels: object | string, msg?: string, ...args: unknown[]): void;
53
+ }
54
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAa,EAAqC,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAEnF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,YAAY;IAC5B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,MAAO,YAAW,OAAO;IACrC,OAAO,CAAC,MAAM,CAAqB;IAEnC;;;;;OAKG;gBACS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,aAAa,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE;IA8EnF,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIrE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIrE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAItE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAItE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAItE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAGtE"}
@@ -0,0 +1,138 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import pino from 'pino';
11
+ import { injectable } from 'inversify';
12
+ import { hostname } from 'node:os';
13
+ /**
14
+ * Pino logger implementation with configurable options.
15
+ *
16
+ * @example
17
+ * // Minimal - uses defaults
18
+ * const logger = new Logger();
19
+ *
20
+ * @example
21
+ * // With environment config from service
22
+ * const logger = new Logger(undefined, {
23
+ * nodeEnv: process.env.NODE_ENV,
24
+ * logLevel: process.env.LOG_LEVEL,
25
+ * serviceName: process.env.SERVICE_NAME
26
+ * });
27
+ *
28
+ * @example
29
+ * // With custom Pino options
30
+ * const logger = new Logger({
31
+ * level: 'debug',
32
+ * base: { service: 'my-service', version: '1.0.0' }
33
+ * });
34
+ */
35
+ let Logger = class Logger {
36
+ logger;
37
+ /**
38
+ * Creates a new Logger instance.
39
+ *
40
+ * @param options - logger options for advanced configuration
41
+ * @param config - Environment configuration passed from the service
42
+ */
43
+ constructor({ options, config }) {
44
+ const nodeEnv = config?.nodeEnv || 'development';
45
+ const isDevelopment = nodeEnv === 'development';
46
+ const isProduction = nodeEnv === 'production';
47
+ const defaultOptions = {
48
+ level: config?.logLevel || 'info',
49
+ base: {
50
+ pid: process.pid,
51
+ hostname: config?.hostname || hostname(),
52
+ service: config?.serviceName,
53
+ environment: nodeEnv,
54
+ },
55
+ timestamp: pino.stdTimeFunctions.isoTime,
56
+ // Error serialization for proper error logging
57
+ serializers: {
58
+ err: pino.stdSerializers.err,
59
+ error: pino.stdSerializers.err,
60
+ req: pino.stdSerializers.req,
61
+ res: pino.stdSerializers.res,
62
+ },
63
+ // Redact sensitive information in production
64
+ redact: {
65
+ paths: [
66
+ 'password',
67
+ '*.password',
68
+ 'token',
69
+ '*.token',
70
+ 'accessToken',
71
+ '*.accessToken',
72
+ 'refreshToken',
73
+ '*.refreshToken',
74
+ 'secret',
75
+ '*.secret',
76
+ 'authorization',
77
+ '*.authorization',
78
+ 'cookie',
79
+ '*.cookie',
80
+ 'apiKey',
81
+ '*.apiKey',
82
+ ],
83
+ remove: isProduction, // Remove in production, mask in development
84
+ },
85
+ // Pretty printing for development
86
+ transport: isDevelopment
87
+ ? {
88
+ target: 'pino-pretty',
89
+ options: {
90
+ colorize: true,
91
+ translateTime: 'HH:MM:ss Z',
92
+ ignore: 'pid,hostname',
93
+ singleLine: false,
94
+ messageFormat: '{levelLabel} - {msg}',
95
+ },
96
+ }
97
+ : undefined,
98
+ };
99
+ const mergedOptions = {
100
+ ...defaultOptions,
101
+ ...options,
102
+ base: {
103
+ ...defaultOptions.base,
104
+ ...(options?.base || {}),
105
+ },
106
+ serializers: {
107
+ ...defaultOptions.serializers,
108
+ ...(options?.serializers || {}),
109
+ },
110
+ redact: options?.redact !== undefined ? options.redact : defaultOptions.redact,
111
+ };
112
+ this.logger = pino(mergedOptions);
113
+ }
114
+ info(labels, msg, ...args) {
115
+ this.logger.info(labels, msg, ...args);
116
+ }
117
+ warn(labels, msg, ...args) {
118
+ this.logger.warn(labels, msg, ...args);
119
+ }
120
+ error(labels, msg, ...args) {
121
+ this.logger.error(labels, msg, ...args);
122
+ }
123
+ debug(labels, msg, ...args) {
124
+ this.logger.debug(labels, msg, ...args);
125
+ }
126
+ fatal(labels, msg, ...args) {
127
+ this.logger.fatal(labels, msg, ...args);
128
+ }
129
+ trace(labels, msg, ...args) {
130
+ this.logger.trace(labels, msg, ...args);
131
+ }
132
+ };
133
+ Logger = __decorate([
134
+ injectable(),
135
+ __metadata("design:paramtypes", [Object])
136
+ ], Logger);
137
+ export { Logger };
138
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const AccountRole: {
2
+ readonly USER: "USER";
3
+ readonly ADMIN: "ADMIN";
4
+ readonly PARTNER_ADMIN: "PARTNER_ADMIN";
5
+ readonly PARTNER_BRANCH: "PARTNER_BRANCH";
6
+ readonly USER_HOST: "USER_HOST";
7
+ };
8
+ export type AccountRole = (typeof AccountRole)[keyof typeof AccountRole];
9
+ //# sourceMappingURL=AccountRole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountRole.d.ts","sourceRoot":"","sources":["../../src/types/AccountRole.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const AccountRole = {
2
+ USER: 'USER',
3
+ ADMIN: 'ADMIN',
4
+ PARTNER_ADMIN: 'PARTNER_ADMIN',
5
+ PARTNER_BRANCH: 'PARTNER_BRANCH',
6
+ USER_HOST: 'USER_HOST',
7
+ };
8
+ //# sourceMappingURL=AccountRole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountRole.js","sourceRoot":"","sources":["../../src/types/AccountRole.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,SAAS,EAAE,WAAW;CACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { AccountRole } from './AccountRole.js';
2
+ export interface IAccountContext {
3
+ accountId: string;
4
+ fullname: string;
5
+ role?: AccountRole;
6
+ }
7
+ //# sourceMappingURL=IAccountContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAccountContext.d.ts","sourceRoot":"","sources":["../../src/types/IAccountContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IAccountContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAccountContext.js","sourceRoot":"","sources":["../../src/types/IAccountContext.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './user.js';
2
+ export * from './AccountRole.js';
3
+ export * from './IAccountContext.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './user.js';
2
+ export * from './AccountRole.js';
3
+ export * from './IAccountContext.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface UserDTO {
2
+ id: string;
3
+ name: string;
4
+ email: string;
5
+ }
6
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togatherlabs/shared-utils",
3
- "version": "1.10.0",
3
+ "version": "1.14.0",
4
4
  "description": "Shared utilities for Togather services including logger, validators, and common helpers",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -39,17 +39,14 @@
39
39
  "exports": {
40
40
  ".": {
41
41
  "import": "./dist/index.js",
42
- "require": "./dist/index.js",
43
42
  "types": "./dist/index.d.ts"
44
43
  },
45
44
  "./logger": {
46
45
  "import": "./dist/logger/index.js",
47
- "require": "./dist/logger/index.js",
48
46
  "types": "./dist/logger/index.d.ts"
49
47
  }
50
48
  },
51
49
  "dependencies": {
52
- "@tsconfig/node22": "^22.0.5",
53
50
  "inversify": "^7.10.4",
54
51
  "pino": "^10.1.0"
55
52
  },
@@ -59,7 +56,7 @@
59
56
  "@commitlint/config-conventional": "^20.0.0",
60
57
  "@commitlint/cz-commitlint": "^20.1.0",
61
58
  "@commitlint/types": "^20.0.0",
62
- "@types/node": "^24.9.1",
59
+ "@types/node": "^24.10.1",
63
60
  "commitizen": "^4.3.1",
64
61
  "husky": "^9.1.7",
65
62
  "pino-pretty": "^13.1.2",