nightingale-sentry 11.7.1 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -1
- package/CHANGELOG.md +46 -0
- package/README.md +2 -2
- package/dist/index-browser.cjs.js +16 -6
- package/dist/index-browser.cjs.js.map +1 -1
- package/dist/index-browser.es.js +15 -4
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-browsermodern.es.js +2 -2
- package/dist/index-browsermodern.es.js.map +1 -1
- package/dist/{index-node12.cjs.js → index-node14.cjs.js} +19 -26
- package/dist/index-node14.cjs.js.map +1 -0
- package/dist/{index-node12.mjs → index-node14.mjs} +5 -9
- package/dist/index-node14.mjs.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/package.json +18 -43
- package/rollup.config.mjs +3 -0
- package/src/.eslintrc.json +18 -1
- package/src/index.ts +4 -5
- package/dist/index-browser-dev.cjs.js +0 -85
- package/dist/index-browser-dev.cjs.js.map +0 -1
- package/dist/index-browser-dev.es.js +0 -76
- package/dist/index-browser-dev.es.js.map +0 -1
- package/dist/index-browsermodern-dev.es.js +0 -75
- package/dist/index-browsermodern-dev.es.js.map +0 -1
- package/dist/index-node12-dev.cjs.js +0 -106
- package/dist/index-node12-dev.cjs.js.map +0 -1
- package/dist/index-node12-dev.mjs +0 -85
- package/dist/index-node12-dev.mjs.map +0 -1
- package/dist/index-node12.cjs.js.map +0 -1
- package/dist/index-node12.mjs.map +0 -1
- package/index.js +0 -6
package/.eslintrc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,52 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [12.0.1](https://github.com/christophehurpeau/nightingale/compare/v12.0.0...v12.0.1) (2021-12-12)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package nightingale-sentry
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [12.0.0](https://github.com/christophehurpeau/nightingale/compare/v11.9.0...v12.0.0) (2021-12-11)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Build System
|
|
18
|
+
|
|
19
|
+
* node 14 and remove dev builds ([432ecd1](https://github.com/christophehurpeau/nightingale/commit/432ecd1faafd0419f57dea00fce560e4cccc207f))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* export SentryHandler as named export ([dae462e](https://github.com/christophehurpeau/nightingale/commit/dae462e9cd3ac9dd1593b98d46d2a768daf51049))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### BREAKING CHANGES
|
|
28
|
+
|
|
29
|
+
* requires to import SentryHandler as named import
|
|
30
|
+
* requires node 14
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## [11.7.4](https://github.com/christophehurpeau/nightingale/compare/v11.7.3...v11.7.4) (2021-11-27)
|
|
37
|
+
|
|
38
|
+
**Note:** Version bump only for package nightingale-sentry
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## [11.7.2](https://github.com/christophehurpeau/nightingale/compare/v11.7.1...v11.7.2) (2021-11-27)
|
|
45
|
+
|
|
46
|
+
**Note:** Version bump only for package nightingale-sentry
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
6
52
|
## [11.7.1](https://github.com/christophehurpeau/nightingale/compare/v11.7.0...v11.7.1) (2021-06-29)
|
|
7
53
|
|
|
8
54
|
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
captureMessage,
|
|
27
27
|
} from '@sentry/node';
|
|
28
28
|
import { configure, Level, listenUnhandledErrors } from 'nightingale';
|
|
29
|
-
import SentryHandler from 'nightingale-sentry';
|
|
29
|
+
import { SentryHandler } from 'nightingale-sentry';
|
|
30
30
|
|
|
31
31
|
listenUnhandledErrors();
|
|
32
32
|
|
|
@@ -93,7 +93,7 @@ import {
|
|
|
93
93
|
captureMessage,
|
|
94
94
|
} from '@sentry/browser';
|
|
95
95
|
import { configure, Level } from 'nightingale';
|
|
96
|
-
import SentryHandler from 'nightingale-sentry';
|
|
96
|
+
import { SentryHandler } from 'nightingale-sentry';
|
|
97
97
|
|
|
98
98
|
sentryInit({
|
|
99
99
|
dsn: process.env.NODE_ENV === 'production' ? '__DSN__' : undefined,
|
|
@@ -4,15 +4,25 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _extends = require('@babel/runtime/helpers/esm/extends');
|
|
6
6
|
var types = require('@sentry/types');
|
|
7
|
-
var
|
|
7
|
+
var nightingaleLevels = require('nightingale-levels');
|
|
8
8
|
|
|
9
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e[
|
|
9
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
|
|
10
10
|
|
|
11
11
|
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
12
|
-
var Level__default = /*#__PURE__*/_interopDefaultLegacy(Level);
|
|
13
12
|
|
|
14
|
-
var
|
|
15
|
-
|
|
13
|
+
var mapToSentryLevel = {
|
|
14
|
+
[nightingaleLevels.Level.TRACE]: types.Severity.Debug,
|
|
15
|
+
[nightingaleLevels.Level.DEBUG]: types.Severity.Debug,
|
|
16
|
+
[nightingaleLevels.Level.INFO]: types.Severity.Info,
|
|
17
|
+
[nightingaleLevels.Level.NOTICE]: types.Severity.Log,
|
|
18
|
+
[nightingaleLevels.Level.WARNING]: types.Severity.Warning,
|
|
19
|
+
[nightingaleLevels.Level.ERROR]: types.Severity.Error,
|
|
20
|
+
[nightingaleLevels.Level.CRITICAL]: types.Severity.Critical,
|
|
21
|
+
[nightingaleLevels.Level.FATAL]: types.Severity.Fatal,
|
|
22
|
+
[nightingaleLevels.Level.EMERGENCY]: types.Severity.Critical,
|
|
23
|
+
// not a level
|
|
24
|
+
[nightingaleLevels.Level.ALL]: types.Severity.Error
|
|
25
|
+
};
|
|
16
26
|
|
|
17
27
|
var createHandler = function createHandler(Sentry, _temp) {
|
|
18
28
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
@@ -81,5 +91,5 @@ var SentryHandler = function SentryHandler(Sentry, minLevel, options) {
|
|
|
81
91
|
this.handle = createHandler(Sentry, options);
|
|
82
92
|
};
|
|
83
93
|
|
|
84
|
-
exports.
|
|
94
|
+
exports.SentryHandler = SentryHandler;
|
|
85
95
|
//# sourceMappingURL=index-browser.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser.cjs.js","sources":["../src/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index-browser.cjs.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport { Level } from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\nimport 'pob-babel';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport class SentryHandler<S extends SentryRequiredMethods> implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (__POB_TARGET__ === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","minLevel","options","handle"],"mappings":"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"}
|
package/dist/index-browser.es.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import { Severity } from '@sentry/types';
|
|
3
|
-
import Level from 'nightingale-levels';
|
|
3
|
+
import { Level } from 'nightingale-levels';
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
|
|
5
|
+
var mapToSentryLevel = {
|
|
6
|
+
[Level.TRACE]: Severity.Debug,
|
|
7
|
+
[Level.DEBUG]: Severity.Debug,
|
|
8
|
+
[Level.INFO]: Severity.Info,
|
|
9
|
+
[Level.NOTICE]: Severity.Log,
|
|
10
|
+
[Level.WARNING]: Severity.Warning,
|
|
11
|
+
[Level.ERROR]: Severity.Error,
|
|
12
|
+
[Level.CRITICAL]: Severity.Critical,
|
|
13
|
+
[Level.FATAL]: Severity.Fatal,
|
|
14
|
+
[Level.EMERGENCY]: Severity.Critical,
|
|
15
|
+
// not a level
|
|
16
|
+
[Level.ALL]: Severity.Error
|
|
17
|
+
};
|
|
7
18
|
|
|
8
19
|
var createHandler = function createHandler(Sentry, _temp) {
|
|
9
20
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
@@ -72,5 +83,5 @@ var SentryHandler = function SentryHandler(Sentry, minLevel, options) {
|
|
|
72
83
|
this.handle = createHandler(Sentry, options);
|
|
73
84
|
};
|
|
74
85
|
|
|
75
|
-
export
|
|
86
|
+
export { SentryHandler };
|
|
76
87
|
//# sourceMappingURL=index-browser.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser.es.js","sources":["../src/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index-browser.es.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport { Level } from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\nimport 'pob-babel';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport class SentryHandler<S extends SentryRequiredMethods> implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (__POB_TARGET__ === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","minLevel","options","handle"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Severity } from '@sentry/types';
|
|
2
|
-
import Level from 'nightingale-levels';
|
|
2
|
+
import { Level } from 'nightingale-levels';
|
|
3
3
|
|
|
4
4
|
const mapToSentryLevel = {
|
|
5
5
|
[Level.TRACE]: Severity.Debug,
|
|
@@ -71,5 +71,5 @@ class SentryHandler {
|
|
|
71
71
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
export
|
|
74
|
+
export { SentryHandler };
|
|
75
75
|
//# sourceMappingURL=index-browsermodern.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browsermodern.es.js","sources":["../src/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index-browsermodern.es.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport { Level } from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\nimport 'pob-babel';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport class SentryHandler<S extends SentryRequiredMethods> implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (__POB_TARGET__ === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","constructor","minLevel","options","handle"],"mappings":";;;AAYA,MAAMA,gBAAyC,GAAG;AAChD,GAACC,KAAK,CAACC,KAAP,GAAeC,QAAQ,CAACC,KADwB;AAEhD,GAACH,KAAK,CAACI,KAAP,GAAeF,QAAQ,CAACC,KAFwB;AAGhD,GAACH,KAAK,CAACK,IAAP,GAAcH,QAAQ,CAACI,IAHyB;AAIhD,GAACN,KAAK,CAACO,MAAP,GAAgBL,QAAQ,CAACM,GAJuB;AAKhD,GAACR,KAAK,CAACS,OAAP,GAAiBP,QAAQ,CAACQ,OALsB;AAMhD,GAACV,KAAK,CAACW,KAAP,GAAeT,QAAQ,CAACU,KANwB;AAOhD,GAACZ,KAAK,CAACa,QAAP,GAAkBX,QAAQ,CAACY,QAPqB;AAQhD,GAACd,KAAK,CAACe,KAAP,GAAeb,QAAQ,CAACc,KARwB;AAShD,GAAChB,KAAK,CAACiB,SAAP,GAAmBf,QAAQ,CAACY,QAToB;AAUhD;AACA,GAACd,KAAK,CAACkB,GAAP,GAAahB,QAAQ,CAACU;AAX0B,CAAlD;;AA6CA,MAAMO,aAAa,GAAG,CACpBC,MADoB,EAEpB;AACEC,EAAAA,OAAO,GAAG,MAAMC,SADlB;AAEEC,EAAAA,OAAO,GAAG,OAAO,EAAP,CAFZ;AAGEC,EAAAA,qBAAqB,GAAG,MAAMF,SAHhC;AAIEG,EAAAA,iBAAiB,GAAG,MAAMH,SAJ5B;AAKEI,EAAAA,qBAAqB,GAAwBC,MAArB;AAAA;;AAAA,WACtB,qBAAAA,MAAM,CAACC,QAAP,sEAAiBC,KAAjB,MAA2BP,SAA3B,IACAK,MAAM,CAACC,QAAP,CAAgBE,SAAhB,KAA8B,IAFR;AAAA,GAL1B;AAQEC,EAAAA,sBAAsB,GAAG,MACvB;AATJ,IAUa,EAZO,KAaT;AACX,SAAqCJ,MAA9B,IAAuD;AAC5D,UAAM;AAAEK,MAAAA,GAAF;AAAOC,MAAAA,KAAP;AAAcL,MAAAA,QAAd;AAAwBM,MAAAA;AAAxB,QAAkCP,MAAxC;;AAEA,QAAID,qBAAqB,CAACC,MAAD,CAAzB,EAAmC;AACjC,YAAME,KAAK,GAAG,CAAAD,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEC,KAAV,KAAmBF,MAAM,CAACQ,OAAxC;AAEA,YAAMC,SAAkC,GAAG,EAAE,GAAGR,QAAL;AAAe,WAAGM;AAAlB,OAA3C;AACA,aAAOE,SAAS,CAACP,KAAjB;AAEAT,MAAAA,MAAM,CAACiB,gBAAP,CAAwBR,KAAxB,EAA+B;AAC7BI,QAAAA,KAAK,EAAElC,gBAAgB,CAACkC,KAAD,CAAhB,IAA2B/B,QAAQ,CAACU,KADd;AAE7B0B,QAAAA,IAAI,EAAEjB,OAAO,CAACM,MAAD,CAFgB;AAG7BY,QAAAA,IAAI,EAAE;AACJC,UAAAA,SAAS,EAAER,GADP;AAEJ,aAAGT,OAAO,CAACI,MAAD;AAFN,SAHuB;AAO7BO,QAAAA,KAAK,EAAEE;AAPsB,OAA/B;AASD,KAfD,MAeO,IAAIL,sBAAsB,CAACJ,MAAD,CAA1B,EAAoC;AACzCP,MAAAA,MAAM,CAACqB,aAAP,CAAqB;AACnBR,QAAAA,KAAK,EAAElC,gBAAgB,CAACkC,KAAD,CAAhB,IAA2B/B,QAAQ,CAACU,KADxB;AAEnB8B,QAAAA,QAAQ,EAAElB,qBAAqB,CAACG,MAAD,CAFZ;AAGnBgB,QAAAA,IAAI,EAAElB,iBAAiB,CAACE,MAAD,CAHJ;AAInBQ,QAAAA,OAAO,EAAER,MAAM,CAACQ,OAJG;AAKnBS,QAAAA,IAAI,EAAEjB,MAAM,CAACC,QALM;AAMnBiB,QAAAA,SAAS,EAAElB,MAAM,CAACmB,QAAP,CAAgBC,OAAhB;AANQ,OAArB;AAQD;AACF,GA5BD;AA6BD,CA3CD;;AA6CO,MAAMC,aAAN,CAAwE;AAK7EC,EAAAA,WAAW,CAAC7B,MAAD,EAAqB8B,QAArB,EAAsCC,OAAtC,EAAyD;AAClE,SAAKD,QAAL,GAAgBA,QAAhB;AAQE,SAAKE,MAAL,GAAcjC,aAAa,CAAIC,MAAJ,EAAiB+B,OAAjB,CAA3B;AAEH;;AAhB4E;;;;"}
|
|
@@ -4,37 +4,34 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const SentryNode = require('@sentry/node');
|
|
6
6
|
const types = require('@sentry/types');
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
|
|
7
|
+
const nightingaleLevels = require('nightingale-levels');
|
|
10
8
|
|
|
11
9
|
function _interopNamespace(e) {
|
|
12
10
|
if (e && e.__esModule) return e;
|
|
13
|
-
|
|
11
|
+
const n = Object.create(null);
|
|
14
12
|
if (e) {
|
|
15
|
-
|
|
13
|
+
for (const k in e) {
|
|
16
14
|
n[k] = e[k];
|
|
17
|
-
}
|
|
15
|
+
}
|
|
18
16
|
}
|
|
19
|
-
n[
|
|
17
|
+
n["default"] = e;
|
|
20
18
|
return n;
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
const SentryNode__namespace = /*#__PURE__*/_interopNamespace(SentryNode);
|
|
24
|
-
const Level__default = /*#__PURE__*/_interopDefaultLegacy(Level);
|
|
25
22
|
|
|
26
23
|
const mapToSentryLevel = {
|
|
27
|
-
[
|
|
28
|
-
[
|
|
29
|
-
[
|
|
30
|
-
[
|
|
31
|
-
[
|
|
32
|
-
[
|
|
33
|
-
[
|
|
34
|
-
[
|
|
35
|
-
[
|
|
24
|
+
[nightingaleLevels.Level.TRACE]: types.Severity.Debug,
|
|
25
|
+
[nightingaleLevels.Level.DEBUG]: types.Severity.Debug,
|
|
26
|
+
[nightingaleLevels.Level.INFO]: types.Severity.Info,
|
|
27
|
+
[nightingaleLevels.Level.NOTICE]: types.Severity.Log,
|
|
28
|
+
[nightingaleLevels.Level.WARNING]: types.Severity.Warning,
|
|
29
|
+
[nightingaleLevels.Level.ERROR]: types.Severity.Error,
|
|
30
|
+
[nightingaleLevels.Level.CRITICAL]: types.Severity.Critical,
|
|
31
|
+
[nightingaleLevels.Level.FATAL]: types.Severity.Fatal,
|
|
32
|
+
[nightingaleLevels.Level.EMERGENCY]: types.Severity.Critical,
|
|
36
33
|
// not a level
|
|
37
|
-
[
|
|
34
|
+
[nightingaleLevels.Level.ALL]: types.Severity.Error
|
|
38
35
|
};
|
|
39
36
|
|
|
40
37
|
const createHandler = (Sentry, {
|
|
@@ -42,11 +39,7 @@ const createHandler = (Sentry, {
|
|
|
42
39
|
getTags = () => ({}),
|
|
43
40
|
getBreadcrumbCategory = () => undefined,
|
|
44
41
|
getBreadcrumbType = () => undefined,
|
|
45
|
-
shouldSendAsException = record =>
|
|
46
|
-
var _record$metadata;
|
|
47
|
-
|
|
48
|
-
return ((_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
|
|
49
|
-
},
|
|
42
|
+
shouldSendAsException = record => record.metadata?.error !== undefined && record.metadata.unhandled !== true,
|
|
50
43
|
shouldSendAsBreadcrumb = () => false
|
|
51
44
|
} = {}) => {
|
|
52
45
|
return record => {
|
|
@@ -58,7 +51,7 @@ const createHandler = (Sentry, {
|
|
|
58
51
|
} = record;
|
|
59
52
|
|
|
60
53
|
if (shouldSendAsException(record)) {
|
|
61
|
-
const error =
|
|
54
|
+
const error = metadata?.error || record.message;
|
|
62
55
|
const extraData = { ...metadata,
|
|
63
56
|
...extra
|
|
64
57
|
};
|
|
@@ -102,5 +95,5 @@ class SentryHandler {
|
|
|
102
95
|
|
|
103
96
|
}
|
|
104
97
|
|
|
105
|
-
exports.
|
|
106
|
-
//# sourceMappingURL=index-
|
|
98
|
+
exports.SentryHandler = SentryHandler;
|
|
99
|
+
//# sourceMappingURL=index-node14.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-node14.cjs.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport { Level } from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\nimport 'pob-babel';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport class SentryHandler<S extends SentryRequiredMethods> implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (__POB_TARGET__ === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","constructor","minLevel","options","console","warn","SentryNode","init","dsn","handle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAYA,MAAMA,gBAAyC,GAAG;AAChD,GAACC,uBAAK,CAACC,KAAP,GAAeC,cAAQ,CAACC,KADwB;AAEhD,GAACH,uBAAK,CAACI,KAAP,GAAeF,cAAQ,CAACC,KAFwB;AAGhD,GAACH,uBAAK,CAACK,IAAP,GAAcH,cAAQ,CAACI,IAHyB;AAIhD,GAACN,uBAAK,CAACO,MAAP,GAAgBL,cAAQ,CAACM,GAJuB;AAKhD,GAACR,uBAAK,CAACS,OAAP,GAAiBP,cAAQ,CAACQ,OALsB;AAMhD,GAACV,uBAAK,CAACW,KAAP,GAAeT,cAAQ,CAACU,KANwB;AAOhD,GAACZ,uBAAK,CAACa,QAAP,GAAkBX,cAAQ,CAACY,QAPqB;AAQhD,GAACd,uBAAK,CAACe,KAAP,GAAeb,cAAQ,CAACc,KARwB;AAShD,GAAChB,uBAAK,CAACiB,SAAP,GAAmBf,cAAQ,CAACY,QAToB;AAUhD;AACA,GAACd,uBAAK,CAACkB,GAAP,GAAahB,cAAQ,CAACU;AAX0B,CAAlD;;AA6CA,MAAMO,aAAa,GAAG,CACpBC,MADoB,EAEpB;AACEC,EAAAA,OAAO,GAAG,MAAMC,SADlB;AAEEC,EAAAA,OAAO,GAAG,OAAO,EAAP,CAFZ;AAGEC,EAAAA,qBAAqB,GAAG,MAAMF,SAHhC;AAIEG,EAAAA,iBAAiB,GAAG,MAAMH,SAJ5B;AAKEI,EAAAA,qBAAqB,GAAwBC,MAArB,IACtBA,MAAM,CAACC,QAAP,EAAiBC,KAAjB,KAA2BP,SAA3B,IACAK,MAAM,CAACC,QAAP,CAAgBE,SAAhB,KAA8B,IAPlC;AAQEC,EAAAA,sBAAsB,GAAG,MACvB;AATJ,IAUa,EAZO,KAaT;AACX,SAAqCJ,MAA9B,IAAuD;AAC5D,UAAM;AAAEK,MAAAA,GAAF;AAAOC,MAAAA,KAAP;AAAcL,MAAAA,QAAd;AAAwBM,MAAAA;AAAxB,QAAkCP,MAAxC;;AAEA,QAAID,qBAAqB,CAACC,MAAD,CAAzB,EAAmC;AACjC,YAAME,KAAK,GAAGD,QAAQ,EAAEC,KAAV,IAAmBF,MAAM,CAACQ,OAAxC;AAEA,YAAMC,SAAkC,GAAG,EAAE,GAAGR,QAAL;AAAe,WAAGM;AAAlB,OAA3C;AACA,aAAOE,SAAS,CAACP,KAAjB;AAEAT,MAAAA,MAAM,CAACiB,gBAAP,CAAwBR,KAAxB,EAA+B;AAC7BI,QAAAA,KAAK,EAAElC,gBAAgB,CAACkC,KAAD,CAAhB,IAA2B/B,cAAQ,CAACU,KADd;AAE7B0B,QAAAA,IAAI,EAAEjB,OAAO,CAACM,MAAD,CAFgB;AAG7BY,QAAAA,IAAI,EAAE;AACJC,UAAAA,SAAS,EAAER,GADP;AAEJ,aAAGT,OAAO,CAACI,MAAD;AAFN,SAHuB;AAO7BO,QAAAA,KAAK,EAAEE;AAPsB,OAA/B;AASD,KAfD,MAeO,IAAIL,sBAAsB,CAACJ,MAAD,CAA1B,EAAoC;AACzCP,MAAAA,MAAM,CAACqB,aAAP,CAAqB;AACnBR,QAAAA,KAAK,EAAElC,gBAAgB,CAACkC,KAAD,CAAhB,IAA2B/B,cAAQ,CAACU,KADxB;AAEnB8B,QAAAA,QAAQ,EAAElB,qBAAqB,CAACG,MAAD,CAFZ;AAGnBgB,QAAAA,IAAI,EAAElB,iBAAiB,CAACE,MAAD,CAHJ;AAInBQ,QAAAA,OAAO,EAAER,MAAM,CAACQ,OAJG;AAKnBS,QAAAA,IAAI,EAAEjB,MAAM,CAACC,QALM;AAMnBiB,QAAAA,SAAS,EAAElB,MAAM,CAACmB,QAAP,CAAgBC,OAAhB;AANQ,OAArB;AAQD;AACF,GA5BD;AA6BD,CA3CD;;AA6CO,MAAMC,aAAN,CAAwE;AAK7EC,EAAAA,WAAW,CAAC7B,MAAD,EAAqB8B,QAArB,EAAsCC,OAAtC,EAAyD;AAClE,SAAKD,QAAL,GAAgBA,QAAhB;;AACA,QAAiC,OAAO9B,MAAP,KAAkB,QAAnD,EAA6D;AAC3DgC,MAAAA,OAAO,CAACC,IAAR,CACE,mGADF;AAGAC,MAAAA,qBAAU,CAACC,IAAX,CAAgB;AAAEC,QAAAA,GAAG,EAAEpC;AAAP,OAAhB;AACA,WAAKqC,MAAL,GAActC,aAAa,CAACmC,qBAAD,EAAaH,OAAb,CAA3B;AACD,KAND,MAMO;AACL,WAAKM,MAAL,GAActC,aAAa,CAAIC,MAAJ,EAAiB+B,OAAjB,CAA3B;AACD;AACF;;AAhB4E;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as SentryNode from '@sentry/node';
|
|
2
2
|
import { Severity } from '@sentry/types';
|
|
3
|
-
import Level from 'nightingale-levels';
|
|
3
|
+
import { Level } from 'nightingale-levels';
|
|
4
4
|
|
|
5
5
|
const mapToSentryLevel = {
|
|
6
6
|
[Level.TRACE]: Severity.Debug,
|
|
@@ -21,11 +21,7 @@ const createHandler = (Sentry, {
|
|
|
21
21
|
getTags = () => ({}),
|
|
22
22
|
getBreadcrumbCategory = () => undefined,
|
|
23
23
|
getBreadcrumbType = () => undefined,
|
|
24
|
-
shouldSendAsException = record =>
|
|
25
|
-
var _record$metadata;
|
|
26
|
-
|
|
27
|
-
return ((_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
|
|
28
|
-
},
|
|
24
|
+
shouldSendAsException = record => record.metadata?.error !== undefined && record.metadata.unhandled !== true,
|
|
29
25
|
shouldSendAsBreadcrumb = () => false
|
|
30
26
|
} = {}) => {
|
|
31
27
|
return record => {
|
|
@@ -37,7 +33,7 @@ const createHandler = (Sentry, {
|
|
|
37
33
|
} = record;
|
|
38
34
|
|
|
39
35
|
if (shouldSendAsException(record)) {
|
|
40
|
-
const error =
|
|
36
|
+
const error = metadata?.error || record.message;
|
|
41
37
|
const extraData = { ...metadata,
|
|
42
38
|
...extra
|
|
43
39
|
};
|
|
@@ -81,5 +77,5 @@ class SentryHandler {
|
|
|
81
77
|
|
|
82
78
|
}
|
|
83
79
|
|
|
84
|
-
export
|
|
85
|
-
//# sourceMappingURL=index-
|
|
80
|
+
export { SentryHandler };
|
|
81
|
+
//# sourceMappingURL=index-node14.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-node14.mjs","sources":["../src/index.ts"],"sourcesContent":["import type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport { Level } from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\nimport 'pob-babel';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport class SentryHandler<S extends SentryRequiredMethods> implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (__POB_TARGET__ === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","constructor","minLevel","options","console","warn","SentryNode","init","dsn","handle"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { addBreadcrumb, captureException, captureMessage } from '@sentry/core';
|
|
2
2
|
import type { User } from '@sentry/types';
|
|
3
|
-
import Level from 'nightingale-levels';
|
|
3
|
+
import { Level } from 'nightingale-levels';
|
|
4
4
|
import type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';
|
|
5
|
+
import 'pob-babel';
|
|
5
6
|
export interface MetadataWithError extends Metadata {
|
|
6
7
|
error?: Error;
|
|
7
8
|
}
|
|
@@ -18,7 +19,7 @@ interface SentryRequiredMethods {
|
|
|
18
19
|
captureException: typeof captureException;
|
|
19
20
|
captureMessage: typeof captureMessage;
|
|
20
21
|
}
|
|
21
|
-
export
|
|
22
|
+
export declare class SentryHandler<S extends SentryRequiredMethods> implements Handler {
|
|
22
23
|
minLevel: Level;
|
|
23
24
|
handle: Handle;
|
|
24
25
|
constructor(Sentry: string | S, minLevel: Level, options?: Options);
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,WAAW,CAAC;AAgBnB,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,iBAAiB,EACpC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,KACjB,IAAI,GAAG,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,iBAAiB,EACpC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,KACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,qBAAqB,CAAC,EAAE,CAAC,CAAC,SAAS,QAAQ,EACzC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,KACjB,MAAM,GAAG,SAAS,CAAC;IACxB,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,QAAQ,EACrC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,KACjB,MAAM,GAAG,SAAS,CAAC;IACxB,qBAAqB,CAAC,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAClD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,KACjB,OAAO,CAAC;IACb,sBAAsB,CAAC,EAAE,CAAC,CAAC,SAAS,QAAQ,EAC1C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,KACjB,OAAO,CAAC;CACd;AAED,UAAU,qBAAqB;IAC7B,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,cAAc,EAAE,OAAO,cAAc,CAAC;CACvC;AA+CD,qBAAa,aAAa,CAAC,CAAC,SAAS,qBAAqB,CAAE,YAAW,OAAO;IAC5E,QAAQ,EAAE,KAAK,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;gBAEH,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO;CAYnE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nightingale-sentry",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.1",
|
|
4
4
|
"description": "Sentry handler for nightingale",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nightingale",
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
"directory": "packages/nightingale-sentry"
|
|
15
15
|
},
|
|
16
16
|
"homepage": "https://github.com/christophehurpeau/nightingale",
|
|
17
|
+
"type": "commonjs",
|
|
17
18
|
"engines": {
|
|
18
|
-
"node": ">=
|
|
19
|
+
"node": "^14.13.1 || >=16.0.0"
|
|
19
20
|
},
|
|
20
21
|
"browserslist": [
|
|
21
22
|
"defaults",
|
|
@@ -24,49 +25,35 @@
|
|
|
24
25
|
"not safari < 10",
|
|
25
26
|
"not ios_saf < 10"
|
|
26
27
|
],
|
|
27
|
-
"main": "./index.js",
|
|
28
|
+
"main": "./dist/index-node14.cjs.js",
|
|
28
29
|
"types": "./dist/index.d.ts",
|
|
29
30
|
"module": "./dist/index-browser.es.js",
|
|
30
31
|
"browser": "./dist/index-browser.es.js",
|
|
31
32
|
"exports": {
|
|
33
|
+
"./package.json": "./package.json",
|
|
32
34
|
".": {
|
|
33
35
|
"node": {
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
"require": "./dist/index-node12-dev.cjs.js"
|
|
37
|
-
},
|
|
38
|
-
"import": "./dist/index-node12.mjs",
|
|
39
|
-
"require": "./dist/index-node12.cjs.js"
|
|
36
|
+
"import": "./dist/index-node14.mjs",
|
|
37
|
+
"require": "./dist/index-node14.cjs.js"
|
|
40
38
|
},
|
|
41
39
|
"browser": {
|
|
42
40
|
"browser:modern": {
|
|
43
|
-
"development": {
|
|
44
|
-
"import": "./dist/index-browsermodern-dev.es.js"
|
|
45
|
-
},
|
|
46
41
|
"import": "./dist/index-browsermodern.es.js"
|
|
47
42
|
},
|
|
48
|
-
"development": {
|
|
49
|
-
"import": "./dist/index-browser-dev.es.js",
|
|
50
|
-
"require": "./dist/index-browser-dev.cjs.js"
|
|
51
|
-
},
|
|
52
43
|
"import": "./dist/index-browser.es.js",
|
|
53
44
|
"require": "./dist/index-browser.cjs.js"
|
|
54
45
|
}
|
|
55
46
|
}
|
|
56
47
|
},
|
|
57
|
-
"module:node": "./dist/index-
|
|
58
|
-
"module:node-dev": "./dist/index-node12-dev.mjs",
|
|
59
|
-
"module:browser": "./dist/index-browser.es.js",
|
|
60
|
-
"module:browser-dev": "./dist/index-browser-dev.es.js",
|
|
48
|
+
"module:node": "./dist/index-node14.mjs",
|
|
61
49
|
"module:modern-browsers": "./dist/index-browsermodern.es.js",
|
|
62
|
-
"module:modern-browsers-dev": "./dist/index-browsermodern-dev.es.js",
|
|
63
50
|
"sideEffects": false,
|
|
64
51
|
"scripts": {
|
|
65
52
|
"build": "pob-build && yarn run build:definitions",
|
|
66
53
|
"build:definitions": "tsc -p tsconfig.build.json",
|
|
67
|
-
"clean": "rm -Rf
|
|
54
|
+
"clean": "rm -Rf dist",
|
|
68
55
|
"lint": "yarn run lint:eslint",
|
|
69
|
-
"lint:eslint": "
|
|
56
|
+
"lint:eslint": "cd ../.. && yarn run eslint --report-unused-disable-directives --resolve-plugins-relative-to . --quiet packages/nightingale-sentry",
|
|
70
57
|
"watch": "pob-watch"
|
|
71
58
|
},
|
|
72
59
|
"prettier": {
|
|
@@ -78,7 +65,7 @@
|
|
|
78
65
|
"babelEnvs": [
|
|
79
66
|
{
|
|
80
67
|
"target": "node",
|
|
81
|
-
"version": "
|
|
68
|
+
"version": "14",
|
|
82
69
|
"formats": [
|
|
83
70
|
"cjs",
|
|
84
71
|
"es"
|
|
@@ -107,27 +94,15 @@
|
|
|
107
94
|
"@sentry/core": "^5.0.0 || ^6.1.0",
|
|
108
95
|
"@sentry/node": "^5.0.0 || ^6.1.0",
|
|
109
96
|
"@sentry/types": "^5.0.0 || ^6.1.0",
|
|
110
|
-
"nightingale-levels": "
|
|
111
|
-
"nightingale-types": "
|
|
97
|
+
"nightingale-levels": "12.0.1",
|
|
98
|
+
"nightingale-types": "12.0.1"
|
|
112
99
|
},
|
|
113
100
|
"devDependencies": {
|
|
114
|
-
"@babel/core": "7.
|
|
115
|
-
"@babel/preset-env": "7.
|
|
116
|
-
"@pob/eslint-config": "43.2.0",
|
|
117
|
-
"@pob/eslint-config-node": "43.2.0",
|
|
118
|
-
"@pob/eslint-config-typescript": "43.2.0",
|
|
119
|
-
"@typescript-eslint/eslint-plugin": "4.28.1",
|
|
120
|
-
"@typescript-eslint/parser": "4.28.1",
|
|
121
|
-
"babel-preset-latest-node": "5.5.1",
|
|
101
|
+
"@babel/core": "7.16.0",
|
|
102
|
+
"@babel/preset-env": "7.16.4",
|
|
122
103
|
"babel-preset-modern-browsers": "15.0.2",
|
|
123
|
-
"
|
|
124
|
-
"
|
|
125
|
-
"eslint-plugin-import": "2.23.4",
|
|
126
|
-
"eslint-plugin-node": "11.1.0",
|
|
127
|
-
"eslint-plugin-unicorn": "29.0.0",
|
|
128
|
-
"pob-babel": "27.0.3",
|
|
129
|
-
"rollup": "2.52.3",
|
|
130
|
-
"typescript": "4.3.4"
|
|
104
|
+
"pob-babel": "29.4.2",
|
|
105
|
+
"typescript": "4.5.3"
|
|
131
106
|
},
|
|
132
|
-
"gitHead": "
|
|
107
|
+
"gitHead": "bb3da283ed9e19d2c1dcdb5e130c86b4835d8500"
|
|
133
108
|
}
|
package/src/.eslintrc.json
CHANGED
|
@@ -6,5 +6,22 @@
|
|
|
6
6
|
},
|
|
7
7
|
"plugins": ["@typescript-eslint"],
|
|
8
8
|
"extends": ["@pob/eslint-config-typescript"],
|
|
9
|
-
"ignorePatterns": ["*.d.ts"]
|
|
9
|
+
"ignorePatterns": ["*.d.ts"],
|
|
10
|
+
"overrides": [
|
|
11
|
+
{
|
|
12
|
+
"files": ["**/*.test.ts", "__tests__/**/*.ts"],
|
|
13
|
+
"extends": ["@pob/eslint-config-typescript/test"],
|
|
14
|
+
"env": {
|
|
15
|
+
"jest": true
|
|
16
|
+
},
|
|
17
|
+
"rules": {
|
|
18
|
+
"import/no-extraneous-dependencies": [
|
|
19
|
+
"error",
|
|
20
|
+
{
|
|
21
|
+
"devDependencies": true
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
]
|
|
10
27
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { POB_TARGET } from 'pob-babel';
|
|
2
1
|
import type {
|
|
3
2
|
addBreadcrumb,
|
|
4
3
|
captureException,
|
|
@@ -7,8 +6,9 @@ import type {
|
|
|
7
6
|
import * as SentryNode from '@sentry/node';
|
|
8
7
|
import type { User } from '@sentry/types';
|
|
9
8
|
import { Severity } from '@sentry/types';
|
|
10
|
-
import Level from 'nightingale-levels';
|
|
9
|
+
import { Level } from 'nightingale-levels';
|
|
11
10
|
import type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';
|
|
11
|
+
import 'pob-babel';
|
|
12
12
|
|
|
13
13
|
const mapToSentryLevel: Record<Level, Severity> = {
|
|
14
14
|
[Level.TRACE]: Severity.Debug,
|
|
@@ -100,15 +100,14 @@ const createHandler = <S extends SentryRequiredMethods>(
|
|
|
100
100
|
};
|
|
101
101
|
};
|
|
102
102
|
|
|
103
|
-
export
|
|
104
|
-
implements Handler {
|
|
103
|
+
export class SentryHandler<S extends SentryRequiredMethods> implements Handler {
|
|
105
104
|
minLevel: Level;
|
|
106
105
|
|
|
107
106
|
handle: Handle;
|
|
108
107
|
|
|
109
108
|
constructor(Sentry: string | S, minLevel: Level, options?: Options) {
|
|
110
109
|
this.minLevel = minLevel;
|
|
111
|
-
if (
|
|
110
|
+
if (__POB_TARGET__ === 'node' && typeof Sentry === 'string') {
|
|
112
111
|
console.warn(
|
|
113
112
|
'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',
|
|
114
113
|
);
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _extends = require('@babel/runtime/helpers/esm/extends');
|
|
6
|
-
var types = require('@sentry/types');
|
|
7
|
-
var Level = require('nightingale-levels');
|
|
8
|
-
|
|
9
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
|
|
10
|
-
|
|
11
|
-
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
12
|
-
var Level__default = /*#__PURE__*/_interopDefaultLegacy(Level);
|
|
13
|
-
|
|
14
|
-
var _mapToSentryLevel;
|
|
15
|
-
var mapToSentryLevel = (_mapToSentryLevel = {}, _mapToSentryLevel[Level__default.TRACE] = types.Severity.Debug, _mapToSentryLevel[Level__default.DEBUG] = types.Severity.Debug, _mapToSentryLevel[Level__default.INFO] = types.Severity.Info, _mapToSentryLevel[Level__default.NOTICE] = types.Severity.Log, _mapToSentryLevel[Level__default.WARNING] = types.Severity.Warning, _mapToSentryLevel[Level__default.ERROR] = types.Severity.Error, _mapToSentryLevel[Level__default.CRITICAL] = types.Severity.Critical, _mapToSentryLevel[Level__default.FATAL] = types.Severity.Fatal, _mapToSentryLevel[Level__default.EMERGENCY] = types.Severity.Critical, _mapToSentryLevel[Level__default.ALL] = types.Severity.Error, _mapToSentryLevel);
|
|
16
|
-
|
|
17
|
-
var createHandler = function createHandler(Sentry, _temp) {
|
|
18
|
-
var _ref = _temp === void 0 ? {} : _temp,
|
|
19
|
-
_ref$getUser = _ref.getUser,
|
|
20
|
-
getUser = _ref$getUser === void 0 ? function () {
|
|
21
|
-
return undefined;
|
|
22
|
-
} : _ref$getUser,
|
|
23
|
-
_ref$getTags = _ref.getTags,
|
|
24
|
-
getTags = _ref$getTags === void 0 ? function () {
|
|
25
|
-
return {};
|
|
26
|
-
} : _ref$getTags,
|
|
27
|
-
_ref$getBreadcrumbCat = _ref.getBreadcrumbCategory,
|
|
28
|
-
getBreadcrumbCategory = _ref$getBreadcrumbCat === void 0 ? function () {
|
|
29
|
-
return undefined;
|
|
30
|
-
} : _ref$getBreadcrumbCat,
|
|
31
|
-
_ref$getBreadcrumbTyp = _ref.getBreadcrumbType,
|
|
32
|
-
getBreadcrumbType = _ref$getBreadcrumbTyp === void 0 ? function () {
|
|
33
|
-
return undefined;
|
|
34
|
-
} : _ref$getBreadcrumbTyp,
|
|
35
|
-
_ref$shouldSendAsExce = _ref.shouldSendAsException,
|
|
36
|
-
shouldSendAsException = _ref$shouldSendAsExce === void 0 ? function (record) {
|
|
37
|
-
var _record$metadata;
|
|
38
|
-
|
|
39
|
-
return ((_record$metadata = record.metadata) == null ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
|
|
40
|
-
} : _ref$shouldSendAsExce,
|
|
41
|
-
_ref$shouldSendAsBrea = _ref.shouldSendAsBreadcrumb,
|
|
42
|
-
shouldSendAsBreadcrumb = _ref$shouldSendAsBrea === void 0 ? function () {
|
|
43
|
-
return false;
|
|
44
|
-
} : _ref$shouldSendAsBrea;
|
|
45
|
-
|
|
46
|
-
return function (record) {
|
|
47
|
-
var key = record.key,
|
|
48
|
-
level = record.level,
|
|
49
|
-
metadata = record.metadata,
|
|
50
|
-
extra = record.extra;
|
|
51
|
-
|
|
52
|
-
if (shouldSendAsException(record)) {
|
|
53
|
-
var error = (metadata == null ? void 0 : metadata.error) || record.message;
|
|
54
|
-
|
|
55
|
-
var extraData = _extends__default({}, metadata, extra);
|
|
56
|
-
|
|
57
|
-
delete extraData.error;
|
|
58
|
-
Sentry.captureException(error, {
|
|
59
|
-
level: mapToSentryLevel[level] || types.Severity.Error,
|
|
60
|
-
user: getUser(record),
|
|
61
|
-
tags: _extends__default({
|
|
62
|
-
loggerKey: key
|
|
63
|
-
}, getTags(record)),
|
|
64
|
-
extra: extraData
|
|
65
|
-
});
|
|
66
|
-
} else if (shouldSendAsBreadcrumb(record)) {
|
|
67
|
-
Sentry.addBreadcrumb({
|
|
68
|
-
level: mapToSentryLevel[level] || types.Severity.Error,
|
|
69
|
-
category: getBreadcrumbCategory(record),
|
|
70
|
-
type: getBreadcrumbType(record),
|
|
71
|
-
message: record.message,
|
|
72
|
-
data: record.metadata,
|
|
73
|
-
timestamp: record.datetime.getTime()
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
var SentryHandler = function SentryHandler(Sentry, minLevel, options) {
|
|
80
|
-
this.minLevel = minLevel;
|
|
81
|
-
this.handle = createHandler(Sentry, options);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
exports.default = SentryHandler;
|
|
85
|
-
//# sourceMappingURL=index-browser-dev.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser-dev.cjs.js","sources":["../src/index.ts"],"sourcesContent":["import { POB_TARGET } from 'pob-babel';\nimport type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport Level from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport default class SentryHandler<S extends SentryRequiredMethods>\n implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (POB_TARGET === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","minLevel","options","handle"],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
-
import { Severity } from '@sentry/types';
|
|
3
|
-
import Level from 'nightingale-levels';
|
|
4
|
-
|
|
5
|
-
var _mapToSentryLevel;
|
|
6
|
-
var mapToSentryLevel = (_mapToSentryLevel = {}, _mapToSentryLevel[Level.TRACE] = Severity.Debug, _mapToSentryLevel[Level.DEBUG] = Severity.Debug, _mapToSentryLevel[Level.INFO] = Severity.Info, _mapToSentryLevel[Level.NOTICE] = Severity.Log, _mapToSentryLevel[Level.WARNING] = Severity.Warning, _mapToSentryLevel[Level.ERROR] = Severity.Error, _mapToSentryLevel[Level.CRITICAL] = Severity.Critical, _mapToSentryLevel[Level.FATAL] = Severity.Fatal, _mapToSentryLevel[Level.EMERGENCY] = Severity.Critical, _mapToSentryLevel[Level.ALL] = Severity.Error, _mapToSentryLevel);
|
|
7
|
-
|
|
8
|
-
var createHandler = function createHandler(Sentry, _temp) {
|
|
9
|
-
var _ref = _temp === void 0 ? {} : _temp,
|
|
10
|
-
_ref$getUser = _ref.getUser,
|
|
11
|
-
getUser = _ref$getUser === void 0 ? function () {
|
|
12
|
-
return undefined;
|
|
13
|
-
} : _ref$getUser,
|
|
14
|
-
_ref$getTags = _ref.getTags,
|
|
15
|
-
getTags = _ref$getTags === void 0 ? function () {
|
|
16
|
-
return {};
|
|
17
|
-
} : _ref$getTags,
|
|
18
|
-
_ref$getBreadcrumbCat = _ref.getBreadcrumbCategory,
|
|
19
|
-
getBreadcrumbCategory = _ref$getBreadcrumbCat === void 0 ? function () {
|
|
20
|
-
return undefined;
|
|
21
|
-
} : _ref$getBreadcrumbCat,
|
|
22
|
-
_ref$getBreadcrumbTyp = _ref.getBreadcrumbType,
|
|
23
|
-
getBreadcrumbType = _ref$getBreadcrumbTyp === void 0 ? function () {
|
|
24
|
-
return undefined;
|
|
25
|
-
} : _ref$getBreadcrumbTyp,
|
|
26
|
-
_ref$shouldSendAsExce = _ref.shouldSendAsException,
|
|
27
|
-
shouldSendAsException = _ref$shouldSendAsExce === void 0 ? function (record) {
|
|
28
|
-
var _record$metadata;
|
|
29
|
-
|
|
30
|
-
return ((_record$metadata = record.metadata) == null ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
|
|
31
|
-
} : _ref$shouldSendAsExce,
|
|
32
|
-
_ref$shouldSendAsBrea = _ref.shouldSendAsBreadcrumb,
|
|
33
|
-
shouldSendAsBreadcrumb = _ref$shouldSendAsBrea === void 0 ? function () {
|
|
34
|
-
return false;
|
|
35
|
-
} : _ref$shouldSendAsBrea;
|
|
36
|
-
|
|
37
|
-
return function (record) {
|
|
38
|
-
var key = record.key,
|
|
39
|
-
level = record.level,
|
|
40
|
-
metadata = record.metadata,
|
|
41
|
-
extra = record.extra;
|
|
42
|
-
|
|
43
|
-
if (shouldSendAsException(record)) {
|
|
44
|
-
var error = (metadata == null ? void 0 : metadata.error) || record.message;
|
|
45
|
-
|
|
46
|
-
var extraData = _extends({}, metadata, extra);
|
|
47
|
-
|
|
48
|
-
delete extraData.error;
|
|
49
|
-
Sentry.captureException(error, {
|
|
50
|
-
level: mapToSentryLevel[level] || Severity.Error,
|
|
51
|
-
user: getUser(record),
|
|
52
|
-
tags: _extends({
|
|
53
|
-
loggerKey: key
|
|
54
|
-
}, getTags(record)),
|
|
55
|
-
extra: extraData
|
|
56
|
-
});
|
|
57
|
-
} else if (shouldSendAsBreadcrumb(record)) {
|
|
58
|
-
Sentry.addBreadcrumb({
|
|
59
|
-
level: mapToSentryLevel[level] || Severity.Error,
|
|
60
|
-
category: getBreadcrumbCategory(record),
|
|
61
|
-
type: getBreadcrumbType(record),
|
|
62
|
-
message: record.message,
|
|
63
|
-
data: record.metadata,
|
|
64
|
-
timestamp: record.datetime.getTime()
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
var SentryHandler = function SentryHandler(Sentry, minLevel, options) {
|
|
71
|
-
this.minLevel = minLevel;
|
|
72
|
-
this.handle = createHandler(Sentry, options);
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
export default SentryHandler;
|
|
76
|
-
//# sourceMappingURL=index-browser-dev.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["import { POB_TARGET } from 'pob-babel';\nimport type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport Level from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport default class SentryHandler<S extends SentryRequiredMethods>\n implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (POB_TARGET === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","minLevel","options","handle"],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { Severity } from '@sentry/types';
|
|
2
|
-
import Level from 'nightingale-levels';
|
|
3
|
-
|
|
4
|
-
const mapToSentryLevel = {
|
|
5
|
-
[Level.TRACE]: Severity.Debug,
|
|
6
|
-
[Level.DEBUG]: Severity.Debug,
|
|
7
|
-
[Level.INFO]: Severity.Info,
|
|
8
|
-
[Level.NOTICE]: Severity.Log,
|
|
9
|
-
[Level.WARNING]: Severity.Warning,
|
|
10
|
-
[Level.ERROR]: Severity.Error,
|
|
11
|
-
[Level.CRITICAL]: Severity.Critical,
|
|
12
|
-
[Level.FATAL]: Severity.Fatal,
|
|
13
|
-
[Level.EMERGENCY]: Severity.Critical,
|
|
14
|
-
// not a level
|
|
15
|
-
[Level.ALL]: Severity.Error
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const createHandler = (Sentry, {
|
|
19
|
-
getUser = () => undefined,
|
|
20
|
-
getTags = () => ({}),
|
|
21
|
-
getBreadcrumbCategory = () => undefined,
|
|
22
|
-
getBreadcrumbType = () => undefined,
|
|
23
|
-
shouldSendAsException = record => {
|
|
24
|
-
var _record$metadata;
|
|
25
|
-
|
|
26
|
-
return ((_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
|
|
27
|
-
},
|
|
28
|
-
shouldSendAsBreadcrumb = () => false
|
|
29
|
-
} = {}) => {
|
|
30
|
-
return record => {
|
|
31
|
-
const {
|
|
32
|
-
key,
|
|
33
|
-
level,
|
|
34
|
-
metadata,
|
|
35
|
-
extra
|
|
36
|
-
} = record;
|
|
37
|
-
|
|
38
|
-
if (shouldSendAsException(record)) {
|
|
39
|
-
const error = (metadata === null || metadata === void 0 ? void 0 : metadata.error) || record.message;
|
|
40
|
-
const extraData = { ...metadata,
|
|
41
|
-
...extra
|
|
42
|
-
};
|
|
43
|
-
delete extraData.error;
|
|
44
|
-
Sentry.captureException(error, {
|
|
45
|
-
level: mapToSentryLevel[level] || Severity.Error,
|
|
46
|
-
user: getUser(record),
|
|
47
|
-
tags: {
|
|
48
|
-
loggerKey: key,
|
|
49
|
-
...getTags(record)
|
|
50
|
-
},
|
|
51
|
-
extra: extraData
|
|
52
|
-
});
|
|
53
|
-
} else if (shouldSendAsBreadcrumb(record)) {
|
|
54
|
-
Sentry.addBreadcrumb({
|
|
55
|
-
level: mapToSentryLevel[level] || Severity.Error,
|
|
56
|
-
category: getBreadcrumbCategory(record),
|
|
57
|
-
type: getBreadcrumbType(record),
|
|
58
|
-
message: record.message,
|
|
59
|
-
data: record.metadata,
|
|
60
|
-
timestamp: record.datetime.getTime()
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
class SentryHandler {
|
|
67
|
-
constructor(Sentry, minLevel, options) {
|
|
68
|
-
this.minLevel = minLevel;
|
|
69
|
-
this.handle = createHandler(Sentry, options);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export default SentryHandler;
|
|
75
|
-
//# sourceMappingURL=index-browsermodern-dev.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-browsermodern-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["import { POB_TARGET } from 'pob-babel';\nimport type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport Level from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport default class SentryHandler<S extends SentryRequiredMethods>\n implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (POB_TARGET === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","constructor","minLevel","options","handle"],"mappings":"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"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const SentryNode = require('@sentry/node');
|
|
6
|
-
const types = require('@sentry/types');
|
|
7
|
-
const Level = require('nightingale-levels');
|
|
8
|
-
|
|
9
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
|
|
10
|
-
|
|
11
|
-
function _interopNamespace(e) {
|
|
12
|
-
if (e && e.__esModule) return e;
|
|
13
|
-
var n = Object.create(null);
|
|
14
|
-
if (e) {
|
|
15
|
-
Object.keys(e).forEach(function (k) {
|
|
16
|
-
n[k] = e[k];
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
n['default'] = e;
|
|
20
|
-
return n;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const SentryNode__namespace = /*#__PURE__*/_interopNamespace(SentryNode);
|
|
24
|
-
const Level__default = /*#__PURE__*/_interopDefaultLegacy(Level);
|
|
25
|
-
|
|
26
|
-
const mapToSentryLevel = {
|
|
27
|
-
[Level__default.TRACE]: types.Severity.Debug,
|
|
28
|
-
[Level__default.DEBUG]: types.Severity.Debug,
|
|
29
|
-
[Level__default.INFO]: types.Severity.Info,
|
|
30
|
-
[Level__default.NOTICE]: types.Severity.Log,
|
|
31
|
-
[Level__default.WARNING]: types.Severity.Warning,
|
|
32
|
-
[Level__default.ERROR]: types.Severity.Error,
|
|
33
|
-
[Level__default.CRITICAL]: types.Severity.Critical,
|
|
34
|
-
[Level__default.FATAL]: types.Severity.Fatal,
|
|
35
|
-
[Level__default.EMERGENCY]: types.Severity.Critical,
|
|
36
|
-
// not a level
|
|
37
|
-
[Level__default.ALL]: types.Severity.Error
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const createHandler = (Sentry, {
|
|
41
|
-
getUser = () => undefined,
|
|
42
|
-
getTags = () => ({}),
|
|
43
|
-
getBreadcrumbCategory = () => undefined,
|
|
44
|
-
getBreadcrumbType = () => undefined,
|
|
45
|
-
shouldSendAsException = record => {
|
|
46
|
-
var _record$metadata;
|
|
47
|
-
|
|
48
|
-
return ((_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
|
|
49
|
-
},
|
|
50
|
-
shouldSendAsBreadcrumb = () => false
|
|
51
|
-
} = {}) => {
|
|
52
|
-
return record => {
|
|
53
|
-
const {
|
|
54
|
-
key,
|
|
55
|
-
level,
|
|
56
|
-
metadata,
|
|
57
|
-
extra
|
|
58
|
-
} = record;
|
|
59
|
-
|
|
60
|
-
if (shouldSendAsException(record)) {
|
|
61
|
-
const error = (metadata === null || metadata === void 0 ? void 0 : metadata.error) || record.message;
|
|
62
|
-
const extraData = { ...metadata,
|
|
63
|
-
...extra
|
|
64
|
-
};
|
|
65
|
-
delete extraData.error;
|
|
66
|
-
Sentry.captureException(error, {
|
|
67
|
-
level: mapToSentryLevel[level] || types.Severity.Error,
|
|
68
|
-
user: getUser(record),
|
|
69
|
-
tags: {
|
|
70
|
-
loggerKey: key,
|
|
71
|
-
...getTags(record)
|
|
72
|
-
},
|
|
73
|
-
extra: extraData
|
|
74
|
-
});
|
|
75
|
-
} else if (shouldSendAsBreadcrumb(record)) {
|
|
76
|
-
Sentry.addBreadcrumb({
|
|
77
|
-
level: mapToSentryLevel[level] || types.Severity.Error,
|
|
78
|
-
category: getBreadcrumbCategory(record),
|
|
79
|
-
type: getBreadcrumbType(record),
|
|
80
|
-
message: record.message,
|
|
81
|
-
data: record.metadata,
|
|
82
|
-
timestamp: record.datetime.getTime()
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
class SentryHandler {
|
|
89
|
-
constructor(Sentry, minLevel, options) {
|
|
90
|
-
this.minLevel = minLevel;
|
|
91
|
-
|
|
92
|
-
if (typeof Sentry === 'string') {
|
|
93
|
-
console.warn('nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.');
|
|
94
|
-
SentryNode__namespace.init({
|
|
95
|
-
dsn: Sentry
|
|
96
|
-
});
|
|
97
|
-
this.handle = createHandler(SentryNode__namespace, options);
|
|
98
|
-
} else {
|
|
99
|
-
this.handle = createHandler(Sentry, options);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
exports.default = SentryHandler;
|
|
106
|
-
//# sourceMappingURL=index-node12-dev.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-node12-dev.cjs.js","sources":["../src/index.ts"],"sourcesContent":["import { POB_TARGET } from 'pob-babel';\nimport type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport Level from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport default class SentryHandler<S extends SentryRequiredMethods>\n implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (POB_TARGET === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","constructor","minLevel","options","console","warn","SentryNode","init","dsn","handle"],"mappings":"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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import * as SentryNode from '@sentry/node';
|
|
2
|
-
import { Severity } from '@sentry/types';
|
|
3
|
-
import Level from 'nightingale-levels';
|
|
4
|
-
|
|
5
|
-
const mapToSentryLevel = {
|
|
6
|
-
[Level.TRACE]: Severity.Debug,
|
|
7
|
-
[Level.DEBUG]: Severity.Debug,
|
|
8
|
-
[Level.INFO]: Severity.Info,
|
|
9
|
-
[Level.NOTICE]: Severity.Log,
|
|
10
|
-
[Level.WARNING]: Severity.Warning,
|
|
11
|
-
[Level.ERROR]: Severity.Error,
|
|
12
|
-
[Level.CRITICAL]: Severity.Critical,
|
|
13
|
-
[Level.FATAL]: Severity.Fatal,
|
|
14
|
-
[Level.EMERGENCY]: Severity.Critical,
|
|
15
|
-
// not a level
|
|
16
|
-
[Level.ALL]: Severity.Error
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const createHandler = (Sentry, {
|
|
20
|
-
getUser = () => undefined,
|
|
21
|
-
getTags = () => ({}),
|
|
22
|
-
getBreadcrumbCategory = () => undefined,
|
|
23
|
-
getBreadcrumbType = () => undefined,
|
|
24
|
-
shouldSendAsException = record => {
|
|
25
|
-
var _record$metadata;
|
|
26
|
-
|
|
27
|
-
return ((_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
|
|
28
|
-
},
|
|
29
|
-
shouldSendAsBreadcrumb = () => false
|
|
30
|
-
} = {}) => {
|
|
31
|
-
return record => {
|
|
32
|
-
const {
|
|
33
|
-
key,
|
|
34
|
-
level,
|
|
35
|
-
metadata,
|
|
36
|
-
extra
|
|
37
|
-
} = record;
|
|
38
|
-
|
|
39
|
-
if (shouldSendAsException(record)) {
|
|
40
|
-
const error = (metadata === null || metadata === void 0 ? void 0 : metadata.error) || record.message;
|
|
41
|
-
const extraData = { ...metadata,
|
|
42
|
-
...extra
|
|
43
|
-
};
|
|
44
|
-
delete extraData.error;
|
|
45
|
-
Sentry.captureException(error, {
|
|
46
|
-
level: mapToSentryLevel[level] || Severity.Error,
|
|
47
|
-
user: getUser(record),
|
|
48
|
-
tags: {
|
|
49
|
-
loggerKey: key,
|
|
50
|
-
...getTags(record)
|
|
51
|
-
},
|
|
52
|
-
extra: extraData
|
|
53
|
-
});
|
|
54
|
-
} else if (shouldSendAsBreadcrumb(record)) {
|
|
55
|
-
Sentry.addBreadcrumb({
|
|
56
|
-
level: mapToSentryLevel[level] || Severity.Error,
|
|
57
|
-
category: getBreadcrumbCategory(record),
|
|
58
|
-
type: getBreadcrumbType(record),
|
|
59
|
-
message: record.message,
|
|
60
|
-
data: record.metadata,
|
|
61
|
-
timestamp: record.datetime.getTime()
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
class SentryHandler {
|
|
68
|
-
constructor(Sentry, minLevel, options) {
|
|
69
|
-
this.minLevel = minLevel;
|
|
70
|
-
|
|
71
|
-
if (typeof Sentry === 'string') {
|
|
72
|
-
console.warn('nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.');
|
|
73
|
-
SentryNode.init({
|
|
74
|
-
dsn: Sentry
|
|
75
|
-
});
|
|
76
|
-
this.handle = createHandler(SentryNode, options);
|
|
77
|
-
} else {
|
|
78
|
-
this.handle = createHandler(Sentry, options);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export default SentryHandler;
|
|
85
|
-
//# sourceMappingURL=index-node12-dev.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-node12-dev.mjs","sources":["../src/index.ts"],"sourcesContent":["import { POB_TARGET } from 'pob-babel';\nimport type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport Level from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport default class SentryHandler<S extends SentryRequiredMethods>\n implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (POB_TARGET === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","constructor","minLevel","options","console","warn","SentryNode","init","dsn","handle"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-node12.cjs.js","sources":["../src/index.ts"],"sourcesContent":["import { POB_TARGET } from 'pob-babel';\nimport type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport Level from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport default class SentryHandler<S extends SentryRequiredMethods>\n implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (POB_TARGET === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","constructor","minLevel","options","console","warn","SentryNode","init","dsn","handle"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-node12.mjs","sources":["../src/index.ts"],"sourcesContent":["import { POB_TARGET } from 'pob-babel';\nimport type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport * as SentryNode from '@sentry/node';\nimport type { User } from '@sentry/types';\nimport { Severity } from '@sentry/types';\nimport Level from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, Severity> = {\n [Level.TRACE]: Severity.Debug,\n [Level.DEBUG]: Severity.Debug,\n [Level.INFO]: Severity.Info,\n [Level.NOTICE]: Severity.Log,\n [Level.WARNING]: Severity.Warning,\n [Level.ERROR]: Severity.Error,\n [Level.CRITICAL]: Severity.Critical,\n [Level.FATAL]: Severity.Fatal,\n [Level.EMERGENCY]: Severity.Critical,\n // not a level\n [Level.ALL]: Severity.Error,\n};\n\nexport interface MetadataWithError extends Metadata {\n error?: Error;\n}\n\nexport interface Options {\n getUser?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => User | undefined;\n getTags?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => Record<string, string>;\n getBreadcrumbCategory?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n getBreadcrumbType?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => string | undefined;\n shouldSendAsException?: <T extends MetadataWithError>(\n record: LogRecord<T>,\n ) => boolean;\n shouldSendAsBreadcrumb?: <T extends Metadata>(\n record: LogRecord<T>,\n ) => boolean;\n}\n\ninterface SentryRequiredMethods {\n addBreadcrumb: typeof addBreadcrumb;\n captureException: typeof captureException;\n captureMessage: typeof captureMessage;\n}\n\nconst createHandler = <S extends SentryRequiredMethods>(\n Sentry: S,\n {\n getUser = () => undefined,\n getTags = () => ({}),\n getBreadcrumbCategory = () => undefined,\n getBreadcrumbType = () => undefined,\n shouldSendAsException = <T extends Metadata>(record: LogRecord<T>) =>\n record.metadata?.error !== undefined &&\n record.metadata.unhandled !== true,\n shouldSendAsBreadcrumb = <T extends Metadata>(record: LogRecord<T>) =>\n false,\n }: Options = {},\n): Handle => {\n return <T extends MetadataWithError>(record: LogRecord<T>) => {\n const { key, level, metadata, extra } = record;\n\n if (shouldSendAsException(record)) {\n const error = metadata?.error || record.message;\n\n const extraData: Record<string, unknown> = { ...metadata, ...extra };\n delete extraData.error;\n\n Sentry.captureException(error, {\n level: mapToSentryLevel[level] || Severity.Error,\n user: getUser(record),\n tags: {\n loggerKey: key,\n ...getTags(record),\n },\n extra: extraData,\n });\n } else if (shouldSendAsBreadcrumb(record)) {\n Sentry.addBreadcrumb({\n level: mapToSentryLevel[level] || Severity.Error,\n category: getBreadcrumbCategory(record),\n type: getBreadcrumbType(record),\n message: record.message,\n data: record.metadata,\n timestamp: record.datetime.getTime(),\n });\n }\n };\n};\n\nexport default class SentryHandler<S extends SentryRequiredMethods>\n implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(Sentry: string | S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n if (POB_TARGET === 'node' && typeof Sentry === 'string') {\n console.warn(\n 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',\n );\n SentryNode.init({ dsn: Sentry });\n this.handle = createHandler(SentryNode, options);\n } else {\n this.handle = createHandler<S>(Sentry as S, options);\n }\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","Severity","Debug","DEBUG","INFO","Info","NOTICE","Log","WARNING","Warning","ERROR","Error","CRITICAL","Critical","FATAL","Fatal","EMERGENCY","ALL","createHandler","Sentry","getUser","undefined","getTags","getBreadcrumbCategory","getBreadcrumbType","shouldSendAsException","record","metadata","error","unhandled","shouldSendAsBreadcrumb","key","level","extra","message","extraData","captureException","user","tags","loggerKey","addBreadcrumb","category","type","data","timestamp","datetime","getTime","SentryHandler","constructor","minLevel","options","console","warn","SentryNode","init","dsn","handle"],"mappings":"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"}
|