@book000/node-utils 1.24.296 → 1.25.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 (43) hide show
  1. package/README.md +28 -0
  2. package/dist/__tests__/error-reporter.test.d.ts +2 -0
  3. package/dist/__tests__/error-reporter.test.d.ts.map +1 -0
  4. package/dist/__tests__/error-reporter.test.js +91 -0
  5. package/dist/__tests__/error-reporter.test.js.map +1 -0
  6. package/dist/__tests__/logger.test.js +80 -0
  7. package/dist/__tests__/logger.test.js.map +1 -1
  8. package/dist/__tests__/sentry-client.test.d.ts +2 -0
  9. package/dist/__tests__/sentry-client.test.d.ts.map +1 -0
  10. package/dist/__tests__/sentry-client.test.js +113 -0
  11. package/dist/__tests__/sentry-client.test.js.map +1 -0
  12. package/dist/__tests__/sentry-release.test.d.ts +2 -0
  13. package/dist/__tests__/sentry-release.test.d.ts.map +1 -0
  14. package/dist/__tests__/sentry-release.test.js +55 -0
  15. package/dist/__tests__/sentry-release.test.js.map +1 -0
  16. package/dist/__tests__/sentry-transport.test.d.ts +2 -0
  17. package/dist/__tests__/sentry-transport.test.d.ts.map +1 -0
  18. package/dist/__tests__/sentry-transport.test.js +122 -0
  19. package/dist/__tests__/sentry-transport.test.js.map +1 -0
  20. package/dist/error-reporter.d.ts +5 -0
  21. package/dist/error-reporter.d.ts.map +1 -0
  22. package/dist/error-reporter.js +55 -0
  23. package/dist/error-reporter.js.map +1 -0
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/logger.d.ts.map +1 -1
  29. package/dist/logger.js +24 -9
  30. package/dist/logger.js.map +1 -1
  31. package/dist/sentry/sentry-client.d.ts +10 -0
  32. package/dist/sentry/sentry-client.d.ts.map +1 -0
  33. package/dist/sentry/sentry-client.js +64 -0
  34. package/dist/sentry/sentry-client.js.map +1 -0
  35. package/dist/sentry/sentry-release.d.ts +2 -0
  36. package/dist/sentry/sentry-release.d.ts.map +1 -0
  37. package/dist/sentry/sentry-release.js +27 -0
  38. package/dist/sentry/sentry-release.js.map +1 -0
  39. package/dist/sentry-transport.d.ts +11 -0
  40. package/dist/sentry-transport.d.ts.map +1 -0
  41. package/dist/sentry-transport.js +84 -0
  42. package/dist/sentry-transport.js.map +1 -0
  43. package/package.json +4 -2
package/README.md CHANGED
@@ -75,6 +75,34 @@ function main() {
75
75
  main()
76
76
  ```
77
77
 
78
+ ### Sentry (GlitchTip) integration for error reporting
79
+
80
+ `Logger` automatically forwards `error`/`warn` logs (and the existing `unhandledRejection` / `uncaughtException` process hooks) to a Sentry-compatible endpoint (e.g. self-hosted [GlitchTip](https://glitchtip.com/)) when the `SENTRY_DSN` environment variable is set. No code changes are required on the consuming side beyond upgrading `@book000/node-utils` and setting the environment variable.
81
+
82
+ ```typescript
83
+ import { Logger } from '@book000/node-utils'
84
+
85
+ // SENTRY_DSN が設定されていれば、以下の error() 呼び出しは自動的に GlitchTip へ転送される
86
+ const logger = Logger.configure('main')
87
+ logger.error('Something went wrong', new Error('boom'))
88
+ ```
89
+
90
+ | Environment variable | Required | Default | Description |
91
+ |---|---|---|---|
92
+ | `SENTRY_DSN` | No (opt-in) | none | When unset, `SentryTransport` / `ErrorReporter` are fully no-op |
93
+ | `SENTRY_ENVIRONMENT` | No | `process.env.NODE_ENV ?? 'production'` | Sentry `environment` tag |
94
+ | `SENTRY_LOG_LEVEL` | No | `warn` | Minimum Winston log level forwarded by `SentryTransport` |
95
+ | `SENTRY_RELEASE` | No | auto-detected `<name>@<version>` from the consuming app's `package.json` | Overrides the auto-detected `release` tag |
96
+
97
+ For explicit, opt-in error reporting outside of `Logger` (e.g. attaching custom tags), use `ErrorReporter`:
98
+
99
+ ```typescript
100
+ import { ErrorReporter } from '@book000/node-utils'
101
+
102
+ ErrorReporter.configure()
103
+ ErrorReporter.captureException(new Error('boom'), { userId: '123' })
104
+ ```
105
+
78
106
  ### Send message to Discord
79
107
 
80
108
  You can send messages to the Discord using the Discord Bot or the Discord Webhook.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=error-reporter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-reporter.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/error-reporter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const Sentry = __importStar(require("@sentry/node"));
37
+ const error_reporter_1 = require("../error-reporter");
38
+ const sentry_client_1 = require("../sentry/sentry-client");
39
+ jest.mock('@sentry/node', () => ({
40
+ captureException: jest.fn(),
41
+ }));
42
+ jest.mock('../sentry/sentry-client', () => ({
43
+ ensureSentryInitialized: jest.fn(),
44
+ isSentryInitialized: jest.fn().mockReturnValue(false),
45
+ }));
46
+ describe('ErrorReporter', () => {
47
+ const originalEnvironment = process.env;
48
+ beforeEach(() => {
49
+ jest.clearAllMocks();
50
+ process.env = { ...originalEnvironment };
51
+ delete process.env.SENTRY_DSN;
52
+ delete process.env.SENTRY_ENVIRONMENT;
53
+ });
54
+ afterEach(() => {
55
+ process.env = originalEnvironment;
56
+ });
57
+ describe('configure', () => {
58
+ it('should not call ensureSentryInitialized when SENTRY_DSN is unset', () => {
59
+ error_reporter_1.ErrorReporter.configure();
60
+ expect(sentry_client_1.ensureSentryInitialized).not.toHaveBeenCalled();
61
+ });
62
+ it('should call ensureSentryInitialized with SENTRY_DSN/SENTRY_ENVIRONMENT when set', () => {
63
+ process.env.SENTRY_DSN = 'https://example.com/1';
64
+ process.env.SENTRY_ENVIRONMENT = 'staging';
65
+ error_reporter_1.ErrorReporter.configure();
66
+ expect(sentry_client_1.ensureSentryInitialized).toHaveBeenCalledWith({
67
+ dsn: 'https://example.com/1',
68
+ environment: 'staging',
69
+ });
70
+ });
71
+ });
72
+ describe('captureException', () => {
73
+ it('should not call Sentry.captureException when not initialized', () => {
74
+ ;
75
+ sentry_client_1.isSentryInitialized.mockReturnValue(false);
76
+ error_reporter_1.ErrorReporter.captureException(new Error('boom'));
77
+ expect(Sentry.captureException).not.toHaveBeenCalled();
78
+ });
79
+ it('should call Sentry.captureException with context when initialized', () => {
80
+ ;
81
+ sentry_client_1.isSentryInitialized.mockReturnValue(true);
82
+ const error = new Error('boom');
83
+ const context = { userId: '123' };
84
+ error_reporter_1.ErrorReporter.captureException(error, context);
85
+ expect(Sentry.captureException).toHaveBeenCalledWith(error, {
86
+ extra: context,
87
+ });
88
+ });
89
+ });
90
+ });
91
+ //# sourceMappingURL=error-reporter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-reporter.test.js","sourceRoot":"","sources":["../../src/__tests__/error-reporter.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsC;AACtC,sDAAiD;AACjD,2DAGgC;AAEhC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;CAC5B,CAAC,CAAC,CAAA;AAEH,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,uBAAuB,EAAE,IAAI,CAAC,EAAE,EAAE;IAClC,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;CACtD,CAAC,CAAC,CAAA;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAA;IAEvC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAA;QACxC,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;QAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,GAAG,mBAAmB,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,8BAAa,CAAC,SAAS,EAAE,CAAA;YAEzB,MAAM,CAAC,uCAAuB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QACxD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;YACzF,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,uBAAuB,CAAA;YAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAA;YAE1C,8BAAa,CAAC,SAAS,EAAE,CAAA;YAEzB,MAAM,CAAC,uCAAuB,CAAC,CAAC,oBAAoB,CAAC;gBACnD,GAAG,EAAE,uBAAuB;gBAC5B,WAAW,EAAE,SAAS;aACvB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,CAAC;YAAC,mCAAiC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAE1D,8BAAa,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAEjD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QACxD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,CAAC;YAAC,mCAAiC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YACzD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;YAC/B,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YAEjC,8BAAa,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAE9C,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE;gBAC1D,KAAK,EAAE,OAAO;aACf,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -7,6 +40,8 @@ const logger_1 = require("../logger");
7
40
  const winston_1 = __importDefault(require("winston"));
8
41
  const winston_daily_rotate_file_1 = __importDefault(require("winston-daily-rotate-file"));
9
42
  const moment_timezone_1 = __importDefault(require("moment-timezone"));
43
+ const Sentry = __importStar(require("@sentry/node"));
44
+ const sentry_transport_1 = require("../sentry-transport");
10
45
  jest.mock('winston', () => {
11
46
  const mockFormat = {
12
47
  combine: jest.fn().mockReturnValue('combined-format'),
@@ -36,6 +71,14 @@ jest.mock('winston', () => {
36
71
  };
37
72
  });
38
73
  jest.mock('winston-daily-rotate-file');
74
+ jest.mock('../sentry-transport', () => ({
75
+ SentryTransport: jest.fn().mockImplementation(() => ({
76
+ log: jest.fn(),
77
+ })),
78
+ }));
79
+ jest.mock('@sentry/node', () => ({
80
+ close: jest.fn().mockResolvedValue(true),
81
+ }));
39
82
  jest.mock('cycle', () => ({
40
83
  decycle: jest.fn((object) => object),
41
84
  }));
@@ -64,6 +107,8 @@ describe('Logger', () => {
64
107
  delete process.env.LOG_FILE_MAX_AGE;
65
108
  delete process.env.LOG_FILE_FORMAT;
66
109
  delete process.env.TZ;
110
+ delete process.env.SENTRY_DSN;
111
+ delete process.env.SENTRY_LOG_LEVEL;
67
112
  });
68
113
  afterEach(() => {
69
114
  process.env = originalEnvironment;
@@ -207,6 +252,25 @@ describe('Logger', () => {
207
252
  const objectStackResult = printfCallback(objectStackInfo);
208
253
  expect(objectStackResult).toContain('{"trace":"stack trace"}');
209
254
  });
255
+ it('should not add SentryTransport when SENTRY_DSN is unset', () => {
256
+ delete process.env.SENTRY_DSN;
257
+ logger_1.Logger.configure('test');
258
+ expect(sentry_transport_1.SentryTransport).not.toHaveBeenCalled();
259
+ });
260
+ it('should add SentryTransport when SENTRY_DSN is set', () => {
261
+ process.env.SENTRY_DSN = 'https://example.com/1';
262
+ logger_1.Logger.configure('test');
263
+ expect(sentry_transport_1.SentryTransport).toHaveBeenCalledWith(expect.objectContaining({
264
+ dsn: 'https://example.com/1',
265
+ level: 'warn',
266
+ }));
267
+ });
268
+ it('should use SENTRY_LOG_LEVEL for the SentryTransport level when provided', () => {
269
+ process.env.SENTRY_DSN = 'https://example.com/1';
270
+ process.env.SENTRY_LOG_LEVEL = 'error';
271
+ logger_1.Logger.configure('test');
272
+ expect(sentry_transport_1.SentryTransport).toHaveBeenCalledWith(expect.objectContaining({ level: 'error' }));
273
+ });
210
274
  });
211
275
  describe('getTimestamp', () => {
212
276
  it('should use TZ environment variable when provided and valid', () => {
@@ -272,6 +336,22 @@ describe('Logger', () => {
272
336
  expect(mockWinstonLogger.error).toHaveBeenCalledWith('Error message', error);
273
337
  });
274
338
  });
339
+ describe('closeAll with Sentry', () => {
340
+ beforeEach(() => {
341
+ delete process.env.SENTRY_DSN;
342
+ });
343
+ it('should not call Sentry.close when SENTRY_DSN is unset', () => {
344
+ logger_1.Logger.configure('sentry-close-test');
345
+ logger_1.Logger.closeAll();
346
+ expect(Sentry.close).not.toHaveBeenCalled();
347
+ });
348
+ it('should call Sentry.close(2000) when SENTRY_DSN is set', () => {
349
+ process.env.SENTRY_DSN = 'https://example.com/1';
350
+ logger_1.Logger.configure('sentry-close-test');
351
+ logger_1.Logger.closeAll();
352
+ expect(Sentry.close).toHaveBeenCalledWith(2000);
353
+ });
354
+ });
275
355
  describe('process event handlers', () => {
276
356
  it('should register events for unhandledRejection and uncaughtException', () => {
277
357
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../src/__tests__/logger.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../src/__tests__/logger.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sentry-client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-client.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/sentry-client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mockSentryInit = jest.fn();
4
+ jest.mock('@sentry/node', () => ({
5
+ init: mockSentryInit,
6
+ }));
7
+ jest.mock('../sentry/sentry-release', () => ({
8
+ detectAppRelease: jest.fn().mockReturnValue('detected-app@1.0.0'),
9
+ }));
10
+ function freshSentryClient() {
11
+ return require('../sentry/sentry-client');
12
+ }
13
+ describe('sentry-client', () => {
14
+ const originalEnvironment = process.env;
15
+ beforeEach(() => {
16
+ jest.clearAllMocks();
17
+ jest.resetModules();
18
+ process.env = { ...originalEnvironment };
19
+ delete process.env.NODE_ENV;
20
+ delete process.env.SENTRY_RELEASE;
21
+ });
22
+ afterEach(() => {
23
+ process.env = originalEnvironment;
24
+ });
25
+ describe('ensureSentryInitialized', () => {
26
+ it('should call Sentry.init with the given dsn and environment', () => {
27
+ const fresh = freshSentryClient();
28
+ fresh.ensureSentryInitialized({
29
+ dsn: 'https://example.com/1',
30
+ environment: 'staging',
31
+ });
32
+ expect(mockSentryInit).toHaveBeenCalledWith(expect.objectContaining({
33
+ dsn: 'https://example.com/1',
34
+ environment: 'staging',
35
+ }));
36
+ });
37
+ it('should call Sentry.init only once across multiple invocations', () => {
38
+ const fresh = freshSentryClient();
39
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
40
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/2' });
41
+ expect(mockSentryInit).toHaveBeenCalledTimes(1);
42
+ });
43
+ it('should call Sentry.init again after resetSentryInitialized', () => {
44
+ const fresh = freshSentryClient();
45
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
46
+ fresh.resetSentryInitialized();
47
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/2' });
48
+ expect(mockSentryInit).toHaveBeenCalledTimes(2);
49
+ });
50
+ it('should filter out OnUncaughtException and OnUnhandledRejection integrations', () => {
51
+ const fresh = freshSentryClient();
52
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
53
+ const calls = mockSentryInit.mock.calls;
54
+ const initOptions = calls[0][0];
55
+ const filtered = initOptions.integrations([
56
+ { name: 'OnUncaughtException' },
57
+ { name: 'OnUnhandledRejection' },
58
+ { name: 'Http' },
59
+ ]);
60
+ expect(filtered).toEqual([{ name: 'Http' }]);
61
+ });
62
+ it('should prefer SENTRY_RELEASE env var over detectAppRelease', () => {
63
+ process.env.SENTRY_RELEASE = 'env-app@2.0.0';
64
+ const fresh = freshSentryClient();
65
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
66
+ expect(mockSentryInit).toHaveBeenCalledWith(expect.objectContaining({ release: 'env-app@2.0.0' }));
67
+ });
68
+ it('should fall back to detectAppRelease when SENTRY_RELEASE is unset', () => {
69
+ const fresh = freshSentryClient();
70
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
71
+ expect(mockSentryInit).toHaveBeenCalledWith(expect.objectContaining({ release: 'detected-app@1.0.0' }));
72
+ });
73
+ it('should default environment to NODE_ENV when not provided', () => {
74
+ process.env.NODE_ENV = 'test-environment';
75
+ const fresh = freshSentryClient();
76
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
77
+ expect(mockSentryInit).toHaveBeenCalledWith(expect.objectContaining({ environment: 'test-environment' }));
78
+ });
79
+ it('should default environment to production when NODE_ENV is unset', () => {
80
+ const fresh = freshSentryClient();
81
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
82
+ expect(mockSentryInit).toHaveBeenCalledWith(expect.objectContaining({ environment: 'production' }));
83
+ });
84
+ });
85
+ describe('isSentryInitialized', () => {
86
+ it('should return false before ensureSentryInitialized is called', () => {
87
+ const fresh = freshSentryClient();
88
+ expect(fresh.isSentryInitialized()).toBe(false);
89
+ });
90
+ it('should return true after ensureSentryInitialized is called', () => {
91
+ const fresh = freshSentryClient();
92
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
93
+ expect(fresh.isSentryInitialized()).toBe(true);
94
+ });
95
+ it('should return false after resetSentryInitialized is called', () => {
96
+ const fresh = freshSentryClient();
97
+ fresh.ensureSentryInitialized({ dsn: 'https://example.com/1' });
98
+ fresh.resetSentryInitialized();
99
+ expect(fresh.isSentryInitialized()).toBe(false);
100
+ });
101
+ });
102
+ describe('toSeverityLevel', () => {
103
+ it('should map "warn" to "warning"', () => {
104
+ const fresh = freshSentryClient();
105
+ expect(fresh.toSeverityLevel('warn')).toBe('warning');
106
+ });
107
+ it.each(['fatal', 'error', 'log', 'info', 'debug'])('should pass "%s" through unchanged', (level) => {
108
+ const fresh = freshSentryClient();
109
+ expect(fresh.toSeverityLevel(level)).toBe(level);
110
+ });
111
+ });
112
+ });
113
+ //# sourceMappingURL=sentry-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-client.test.js","sourceRoot":"","sources":["../../src/__tests__/sentry-client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sentry-release.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-release.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/sentry-release.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_fs_1 = __importDefault(require("node:fs"));
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const sentry_release_1 = require("../sentry/sentry-release");
9
+ jest.mock('node:fs');
10
+ describe('detectAppRelease', () => {
11
+ const originalCwd = process.cwd.bind(process);
12
+ beforeEach(() => {
13
+ jest.clearAllMocks();
14
+ process.cwd = jest.fn().mockReturnValue('/app');
15
+ });
16
+ afterEach(() => {
17
+ process.cwd = originalCwd;
18
+ });
19
+ it('should return undefined when package.json does not exist', () => {
20
+ ;
21
+ node_fs_1.default.existsSync.mockReturnValue(false);
22
+ const result = (0, sentry_release_1.detectAppRelease)();
23
+ expect(result).toBeUndefined();
24
+ expect(node_fs_1.default.existsSync).toHaveBeenCalledWith(node_path_1.default.join('/app', 'package.json'));
25
+ });
26
+ it('should return undefined when version field is missing', () => {
27
+ ;
28
+ node_fs_1.default.existsSync.mockReturnValue(true);
29
+ node_fs_1.default.readFileSync.mockReturnValue(JSON.stringify({ name: 'my-app' }));
30
+ const result = (0, sentry_release_1.detectAppRelease)();
31
+ expect(result).toBeUndefined();
32
+ });
33
+ it('should return undefined when package.json parsing fails', () => {
34
+ ;
35
+ node_fs_1.default.existsSync.mockReturnValue(true);
36
+ node_fs_1.default.readFileSync.mockReturnValue('{ invalid json');
37
+ const result = (0, sentry_release_1.detectAppRelease)();
38
+ expect(result).toBeUndefined();
39
+ });
40
+ it('should return "<name>@<version>" when both fields are present', () => {
41
+ ;
42
+ node_fs_1.default.existsSync.mockReturnValue(true);
43
+ node_fs_1.default.readFileSync.mockReturnValue(JSON.stringify({ name: 'my-app', version: '1.2.3' }));
44
+ const result = (0, sentry_release_1.detectAppRelease)();
45
+ expect(result).toBe('my-app@1.2.3');
46
+ });
47
+ it('should return only the version when name field is missing', () => {
48
+ ;
49
+ node_fs_1.default.existsSync.mockReturnValue(true);
50
+ node_fs_1.default.readFileSync.mockReturnValue(JSON.stringify({ version: '1.2.3' }));
51
+ const result = (0, sentry_release_1.detectAppRelease)();
52
+ expect(result).toBe('1.2.3');
53
+ });
54
+ });
55
+ //# sourceMappingURL=sentry-release.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-release.test.js","sourceRoot":"","sources":["../../src/__tests__/sentry-release.test.ts"],"names":[],"mappings":";;;;;AAAA,sDAAwB;AACxB,0DAA4B;AAC5B,6DAA2D;AAE3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAEpB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAE7C,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,GAAG,WAAW,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,CAAC;QAAC,iBAAE,CAAC,UAAwB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAEpD,MAAM,MAAM,GAAG,IAAA,iCAAgB,GAAE,CAAA;QAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;QAC9B,MAAM,CAAC,iBAAE,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACxC,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAClC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,CAAC;QAAC,iBAAE,CAAC,UAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAClD;QAAC,iBAAE,CAAC,YAA0B,CAAC,eAAe,CAC7C,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACnC,CAAA;QAED,MAAM,MAAM,GAAG,IAAA,iCAAgB,GAAE,CAAA;QAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,CAAC;QAAC,iBAAE,CAAC,UAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAClD;QAAC,iBAAE,CAAC,YAA0B,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;QAEjE,MAAM,MAAM,GAAG,IAAA,iCAAgB,GAAE,CAAA;QAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,CAAC;QAAC,iBAAE,CAAC,UAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAClD;QAAC,iBAAE,CAAC,YAA0B,CAAC,eAAe,CAC7C,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CACrD,CAAA;QAED,MAAM,MAAM,GAAG,IAAA,iCAAgB,GAAE,CAAA;QAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,CAAC;QAAC,iBAAE,CAAC,UAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAClD;QAAC,iBAAE,CAAC,YAA0B,CAAC,eAAe,CAC7C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CACrC,CAAA;QAED,MAAM,MAAM,GAAG,IAAA,iCAAgB,GAAE,CAAA;QAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sentry-transport.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-transport.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/sentry-transport.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const Sentry = __importStar(require("@sentry/node"));
37
+ const sentry_transport_1 = require("../sentry-transport");
38
+ const sentry_client_1 = require("../sentry/sentry-client");
39
+ jest.mock('@sentry/node', () => ({
40
+ captureException: jest.fn(),
41
+ captureMessage: jest.fn(),
42
+ flush: jest.fn().mockResolvedValue(true),
43
+ }));
44
+ jest.mock('../sentry/sentry-client', () => ({
45
+ ensureSentryInitialized: jest.fn(),
46
+ toSeverityLevel: jest.fn((level) => level === 'warn' ? 'warning' : level),
47
+ }));
48
+ describe('SentryTransport', () => {
49
+ let transport;
50
+ beforeEach(() => {
51
+ jest.clearAllMocks();
52
+ transport = new sentry_transport_1.SentryTransport({ dsn: 'https://example.com/1' });
53
+ });
54
+ it('should call ensureSentryInitialized with the given options on construction', () => {
55
+ expect(sentry_client_1.ensureSentryInitialized).toHaveBeenCalledWith({
56
+ dsn: 'https://example.com/1',
57
+ });
58
+ });
59
+ it('should call captureException when level is error and stack is present', (done) => {
60
+ transport.log({ level: 'error', message: 'boom', stack: 'Error: boom\n at x' }, () => {
61
+ expect(Sentry.captureException).toHaveBeenCalledWith(expect.objectContaining({
62
+ message: 'boom',
63
+ stack: 'Error: boom\n at x',
64
+ }));
65
+ done();
66
+ });
67
+ });
68
+ it('should preserve the original error name parsed from the stack', (done) => {
69
+ transport.log({
70
+ level: 'error',
71
+ message: 'boom',
72
+ stack: 'TypeError: boom\n at x',
73
+ }, () => {
74
+ expect(Sentry.captureException).toHaveBeenCalledWith(expect.objectContaining({ name: 'TypeError' }));
75
+ done();
76
+ });
77
+ });
78
+ it('should emit an "error" event when Sentry.flush rejects', async () => {
79
+ ;
80
+ Sentry.flush.mockRejectedValueOnce(new Error('network'));
81
+ const onError = jest.fn();
82
+ transport.on('error', onError);
83
+ const callback = jest.fn();
84
+ transport.log({ level: 'error', message: 'boom' }, callback);
85
+ await Promise.resolve();
86
+ await Promise.resolve();
87
+ expect(onError).toHaveBeenCalledWith(expect.any(Error));
88
+ expect(callback).toHaveBeenCalled();
89
+ });
90
+ it('should call captureMessage with "error" severity when level is error and no stack', (done) => {
91
+ transport.log({ level: 'error', message: 'boom' }, () => {
92
+ expect(Sentry.captureMessage).toHaveBeenCalledWith('boom', 'error');
93
+ done();
94
+ });
95
+ });
96
+ it('should call captureMessage with "warning" severity when level is warn', () => {
97
+ const callback = jest.fn();
98
+ transport.log({ level: 'warn', message: 'careful' }, callback);
99
+ expect(Sentry.captureMessage).toHaveBeenCalledWith('careful', 'warning');
100
+ });
101
+ it('should await Sentry.flush before invoking callback for error level', async () => {
102
+ const callback = jest.fn();
103
+ transport.log({ level: 'error', message: 'boom' }, callback);
104
+ expect(callback).not.toHaveBeenCalled();
105
+ expect(Sentry.flush).toHaveBeenCalledWith(2000);
106
+ await Promise.resolve();
107
+ await Promise.resolve();
108
+ expect(callback).toHaveBeenCalled();
109
+ });
110
+ it('should invoke callback synchronously without flush for non-error levels', () => {
111
+ const callback = jest.fn();
112
+ transport.log({ level: 'info', message: 'hello' }, callback);
113
+ expect(Sentry.flush).not.toHaveBeenCalled();
114
+ expect(callback).toHaveBeenCalled();
115
+ });
116
+ it('should not call captureException or captureMessage for info level', () => {
117
+ transport.log({ level: 'info', message: 'hello' }, jest.fn());
118
+ expect(Sentry.captureException).not.toHaveBeenCalled();
119
+ expect(Sentry.captureMessage).not.toHaveBeenCalled();
120
+ });
121
+ });
122
+ //# sourceMappingURL=sentry-transport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-transport.test.js","sourceRoot":"","sources":["../../src/__tests__/sentry-transport.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class ErrorReporter {
2
+ static configure(): void;
3
+ static captureException(error: Error, context?: Record<string, unknown>): void;
4
+ }
5
+ //# sourceMappingURL=error-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-reporter.d.ts","sourceRoot":"","sources":["../src/error-reporter.ts"],"names":[],"mappings":"AAYA,qBAAa,aAAa;WAIV,SAAS,IAAI,IAAI;WAgBjB,gBAAgB,CAC5B,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI;CAIR"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ErrorReporter = void 0;
37
+ const Sentry = __importStar(require("@sentry/node"));
38
+ const sentry_client_1 = require("./sentry/sentry-client");
39
+ class ErrorReporter {
40
+ static configure() {
41
+ if (!process.env.SENTRY_DSN)
42
+ return;
43
+ (0, sentry_client_1.ensureSentryInitialized)({
44
+ dsn: process.env.SENTRY_DSN,
45
+ environment: process.env.SENTRY_ENVIRONMENT,
46
+ });
47
+ }
48
+ static captureException(error, context) {
49
+ if (!(0, sentry_client_1.isSentryInitialized)())
50
+ return;
51
+ Sentry.captureException(error, { extra: context });
52
+ }
53
+ }
54
+ exports.ErrorReporter = ErrorReporter;
55
+ //# sourceMappingURL=error-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-reporter.js","sourceRoot":"","sources":["../src/error-reporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsC;AACtC,0DAG+B;AAQ/B,MAAa,aAAa;IAIjB,MAAM,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;YAAE,OAAM;QACnC,IAAA,uCAAuB,EAAC;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;YAC3B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SAC5C,CAAC,CAAA;IACJ,CAAC;IAUM,MAAM,CAAC,gBAAgB,CAC5B,KAAY,EACZ,OAAiC;QAEjC,IAAI,CAAC,IAAA,mCAAmB,GAAE;YAAE,OAAM;QAClC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACpD,CAAC;CACF;AA3BD,sCA2BC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from './config';
2
2
  export * from './discord';
3
+ export * from './error-reporter';
3
4
  export * from './logger';
5
+ export * from './sentry-transport';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -16,5 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./config"), exports);
18
18
  __exportStar(require("./discord"), exports);
19
+ __exportStar(require("./error-reporter"), exports);
19
20
  __exportStar(require("./logger"), exports);
21
+ __exportStar(require("./sentry-transport"), exports);
20
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,4CAAyB;AACzB,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,4CAAyB;AACzB,mDAAgC;AAChC,2CAAwB;AACxB,qDAAkC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAkBA,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAA4B;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,OAAO;IAUA,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAUhE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAU/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAU1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;WAyBpC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;WA+GnC,QAAQ,IAAI,IAAI;IAO9B,MAAM,CAAC,YAAY,IAAI,MAAM,MAAM;CAKpC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAqBA,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAA4B;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,OAAO;IAUA,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAUhE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAU/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAU1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;WAyBpC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;WA0HnC,QAAQ,IAAI,IAAI;IAe9B,MAAM,CAAC,YAAY,IAAI,MAAM,MAAM;CAKpC"}
package/dist/logger.js CHANGED
@@ -41,6 +41,9 @@ const winston_1 = __importStar(require("winston"));
41
41
  const winston_daily_rotate_file_1 = __importDefault(require("winston-daily-rotate-file"));
42
42
  const cycle_1 = __importDefault(require("cycle"));
43
43
  const moment_timezone_1 = __importDefault(require("moment-timezone"));
44
+ const Sentry = __importStar(require("@sentry/node"));
45
+ const sentry_transport_1 = require("./sentry-transport");
46
+ const sentry_client_1 = require("./sentry/sentry-client");
44
47
  const getTimestampFormatter = () => {
45
48
  const timezone = process.env.TZ && moment_timezone_1.default.tz.zone(process.env.TZ)
46
49
  ? process.env.TZ
@@ -137,15 +140,21 @@ class Logger {
137
140
  format: fileFormat,
138
141
  auditFile: `${logDirectory}/audit.json`,
139
142
  });
140
- const logger = winston_1.default.createLogger({
141
- transports: [
142
- new winston_1.default.transports.Console({
143
- level: logLevel,
144
- format: consoleFormat,
145
- }),
146
- transportRotateFile,
147
- ],
148
- });
143
+ const transports = [
144
+ new winston_1.default.transports.Console({
145
+ level: logLevel,
146
+ format: consoleFormat,
147
+ }),
148
+ transportRotateFile,
149
+ ];
150
+ if (process.env.SENTRY_DSN) {
151
+ transports.push(new sentry_transport_1.SentryTransport({
152
+ level: process.env.SENTRY_LOG_LEVEL ?? 'warn',
153
+ dsn: process.env.SENTRY_DSN,
154
+ environment: process.env.SENTRY_ENVIRONMENT,
155
+ }));
156
+ }
157
+ const logger = winston_1.default.createLogger({ transports });
149
158
  const instance = new Logger(logger);
150
159
  this.cache.set(category, instance);
151
160
  return instance;
@@ -155,6 +164,12 @@ class Logger {
155
164
  instance.logger.close();
156
165
  }
157
166
  this.cache.clear();
167
+ if (process.env.SENTRY_DSN) {
168
+ Sentry.close(2000).catch((error) => {
169
+ console.error('Failed to close Sentry client', error);
170
+ });
171
+ (0, sentry_client_1.resetSentryInitialized)();
172
+ }
158
173
  }
159
174
  static getTimestamp() {
160
175
  return getTimestampFormatter;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as Sentry from '@sentry/node';
2
+ export interface SentryClientOptions {
3
+ dsn: string;
4
+ environment?: string;
5
+ }
6
+ export declare function ensureSentryInitialized(options: SentryClientOptions): void;
7
+ export declare function toSeverityLevel(level: string): Sentry.SeverityLevel;
8
+ export declare function isSentryInitialized(): boolean;
9
+ export declare function resetSentryInitialized(): void;
10
+ //# sourceMappingURL=sentry-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-client.d.ts","sourceRoot":"","sources":["../../src/sentry/sentry-client.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAGtC,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAcD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAgB1E;AAWD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,aAAa,CAEnE;AAOD,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAQD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ensureSentryInitialized = ensureSentryInitialized;
37
+ exports.toSeverityLevel = toSeverityLevel;
38
+ exports.isSentryInitialized = isSentryInitialized;
39
+ exports.resetSentryInitialized = resetSentryInitialized;
40
+ const Sentry = __importStar(require("@sentry/node"));
41
+ const sentry_release_1 = require("./sentry-release");
42
+ let initialized = false;
43
+ function ensureSentryInitialized(options) {
44
+ if (initialized)
45
+ return;
46
+ Sentry.init({
47
+ dsn: options.dsn,
48
+ environment: options.environment ?? process.env.NODE_ENV ?? 'production',
49
+ release: process.env.SENTRY_RELEASE ?? (0, sentry_release_1.detectAppRelease)(),
50
+ integrations: (integrations) => integrations.filter((integration) => integration.name !== 'OnUncaughtException' &&
51
+ integration.name !== 'OnUnhandledRejection'),
52
+ });
53
+ initialized = true;
54
+ }
55
+ function toSeverityLevel(level) {
56
+ return level === 'warn' ? 'warning' : level;
57
+ }
58
+ function isSentryInitialized() {
59
+ return initialized;
60
+ }
61
+ function resetSentryInitialized() {
62
+ initialized = false;
63
+ }
64
+ //# sourceMappingURL=sentry-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-client.js","sourceRoot":"","sources":["../../src/sentry/sentry-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,0DAgBC;AAWD,0CAEC;AAOD,kDAEC;AAQD,wDAEC;AApED,qDAAsC;AACtC,qDAAmD;AAUnD,IAAI,WAAW,GAAG,KAAK,CAAA;AASvB,SAAgB,uBAAuB,CAAC,OAA4B;IAClE,IAAI,WAAW;QAAE,OAAM;IACvB,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY;QACxE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAA,iCAAgB,GAAE;QAGzD,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE,CAC7B,YAAY,CAAC,MAAM,CACjB,CAAC,WAAW,EAAE,EAAE,CACd,WAAW,CAAC,IAAI,KAAK,qBAAqB;YAC1C,WAAW,CAAC,IAAI,KAAK,sBAAsB,CAC9C;KACJ,CAAC,CAAA;IACF,WAAW,GAAG,IAAI,CAAA;AACpB,CAAC;AAWD,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,KAA8B,CAAA;AACvE,CAAC;AAOD,SAAgB,mBAAmB;IACjC,OAAO,WAAW,CAAA;AACpB,CAAC;AAQD,SAAgB,sBAAsB;IACpC,WAAW,GAAG,KAAK,CAAA;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function detectAppRelease(): string | undefined;
2
+ //# sourceMappingURL=sentry-release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-release.d.ts","sourceRoot":"","sources":["../../src/sentry/sentry-release.ts"],"names":[],"mappings":"AAiBA,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAkBrD"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detectAppRelease = detectAppRelease;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ function detectAppRelease() {
10
+ const packageJsonPath = node_path_1.default.join(process.cwd(), 'package.json');
11
+ if (!node_fs_1.default.existsSync(packageJsonPath)) {
12
+ return undefined;
13
+ }
14
+ try {
15
+ const packageJson = JSON.parse(node_fs_1.default.readFileSync(packageJsonPath, 'utf8'));
16
+ if (!packageJson.version) {
17
+ return undefined;
18
+ }
19
+ return packageJson.name
20
+ ? `${packageJson.name}@${packageJson.version}`
21
+ : packageJson.version;
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ //# sourceMappingURL=sentry-release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-release.js","sourceRoot":"","sources":["../../src/sentry/sentry-release.ts"],"names":[],"mappings":";;;;;AAiBA,4CAkBC;AA7BD,sDAAwB;AACxB,0DAA4B;AAU5B,SAAgB,gBAAgB;IAC9B,MAAM,eAAe,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IAChE,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,iBAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CACF,CAAA;QACxC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,WAAW,CAAC,IAAI;YACrB,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE;YAC9C,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import TransportStream from 'winston-transport';
2
+ export interface SentryTransportOptions extends TransportStream.TransportStreamOptions {
3
+ dsn: string;
4
+ environment?: string;
5
+ }
6
+ export declare class SentryTransport extends TransportStream {
7
+ constructor(options: SentryTransportOptions);
8
+ log(info: Record<string, unknown>, callback: () => void): void;
9
+ private toError;
10
+ }
11
+ //# sourceMappingURL=sentry-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-transport.d.ts","sourceRoot":"","sources":["../src/sentry-transport.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAS/C,MAAM,WAAW,sBACf,SAAQ,eAAe,CAAC,sBAAsB;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAOD,qBAAa,eAAgB,SAAQ,eAAe;gBACtC,OAAO,EAAE,sBAAsB;IAW3C,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IA2B9D,OAAO,CAAC,OAAO;CAchB"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.SentryTransport = void 0;
40
+ const Sentry = __importStar(require("@sentry/node"));
41
+ const winston_transport_1 = __importDefault(require("winston-transport"));
42
+ const sentry_client_1 = require("./sentry/sentry-client");
43
+ class SentryTransport extends winston_transport_1.default {
44
+ constructor(options) {
45
+ super(options);
46
+ (0, sentry_client_1.ensureSentryInitialized)(options);
47
+ }
48
+ log(info, callback) {
49
+ setImmediate(() => this.emit('logged', info));
50
+ const { level, message, ...rest } = info;
51
+ const messageText = typeof message === 'string' ? message : String(message);
52
+ if (level === 'error' && typeof rest.stack === 'string') {
53
+ Sentry.captureException(this.toError(messageText, rest.stack));
54
+ }
55
+ else if (level === 'error' || level === 'warn') {
56
+ Sentry.captureMessage(messageText, (0, sentry_client_1.toSeverityLevel)(level));
57
+ }
58
+ if (level === 'error') {
59
+ Sentry.flush(2000)
60
+ .catch((error) => {
61
+ this.emit('error', error);
62
+ })
63
+ .finally(() => {
64
+ callback();
65
+ });
66
+ return;
67
+ }
68
+ callback();
69
+ }
70
+ toError(message, stack) {
71
+ const error = new Error(message);
72
+ const firstLine = stack.split('\n', 1)[0];
73
+ const name = firstLine.includes(': ')
74
+ ? firstLine.slice(0, firstLine.indexOf(': '))
75
+ : undefined;
76
+ if (name) {
77
+ Object.defineProperty(error, 'name', { value: name, configurable: true });
78
+ }
79
+ Object.defineProperty(error, 'stack', { value: stack, configurable: true });
80
+ return error;
81
+ }
82
+ }
83
+ exports.SentryTransport = SentryTransport;
84
+ //# sourceMappingURL=sentry-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-transport.js","sourceRoot":"","sources":["../src/sentry-transport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsC;AACtC,0EAA+C;AAC/C,0DAG+B;AAgB/B,MAAa,eAAgB,SAAQ,2BAAe;IAClD,YAAY,OAA+B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAA,uCAAuB,EAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAQD,GAAG,CAAC,IAA6B,EAAE,QAAoB;QACrD,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QAE7C,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;QACxC,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3E,IAAI,KAAK,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAChE,CAAC;aAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,IAAA,+BAAe,EAAC,KAAK,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAEtB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;iBACf,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAGxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3B,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,QAAQ,EAAE,CAAA;YACZ,CAAC,CAAC,CAAA;YACJ,OAAM;QACR,CAAC;QACD,QAAQ,EAAE,CAAA;IACZ,CAAC;IAEO,OAAO,CAAC,OAAe,EAAE,KAAa;QAC5C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAGhC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AArDD,0CAqDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@book000/node-utils",
3
- "version": "1.24.296",
3
+ "version": "1.25.0",
4
4
  "description": "Self-Utility library",
5
5
  "homepage": "https://github.com/book000/node-utils",
6
6
  "bugs": {
@@ -18,11 +18,13 @@
18
18
  "url": "git@github.com:book000/node-utils.git"
19
19
  },
20
20
  "dependencies": {
21
+ "@sentry/node": "10.67.0",
21
22
  "cycle": "1.0.3",
22
23
  "jsonc-parser": "3.3.1",
23
24
  "moment-timezone": "0.6.2",
24
25
  "winston": "3.19.0",
25
- "winston-daily-rotate-file": "5.0.0"
26
+ "winston-daily-rotate-file": "5.0.0",
27
+ "winston-transport": "4.9.0"
26
28
  },
27
29
  "devDependencies": {
28
30
  "@book000/eslint-config": "1.16.14",