nightingale-sentry 12.1.3 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,41 @@
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
+ # [13.0.0](https://github.com/christophehurpeau/nightingale/compare/v12.1.4...v13.0.0) (2022-11-19)
7
+
8
+
9
+ ### Code Refactoring
10
+
11
+ * drop node 14 and cjs ([9a8ca06](https://github.com/christophehurpeau/nightingale/commit/9a8ca064449ddc0d69e26543e21c2d522536c50a))
12
+
13
+
14
+ ### Features
15
+
16
+ * build for node 16 ([30ae3e9](https://github.com/christophehurpeau/nightingale/commit/30ae3e9c455dbad793c2f704b9d860069dc80c32))
17
+ * **nightingale-sentry:** update to v7 ([0188b65](https://github.com/christophehurpeau/nightingale/commit/0188b65014dcc4a492d9b868e86fb08ee0954b87))
18
+
19
+
20
+ ### BREAKING CHANGES
21
+
22
+ * dropped node 14 and cjs
23
+ * **nightingale-sentry:** remove deprecated token passed in constructor. Use Sentry object instead and init in the app.
24
+ * drop node 14
25
+
26
+
27
+
28
+
29
+
30
+ ## [12.1.4](https://github.com/christophehurpeau/nightingale/compare/v12.1.3...v12.1.4) (2022-02-05)
31
+
32
+
33
+ ### Bug Fixes
34
+
35
+ * cjs build ([2e24ac5](https://github.com/christophehurpeau/nightingale/commit/2e24ac5753ee386c5be9ca56796194ee598f10ff))
36
+
37
+
38
+
39
+
40
+
6
41
  ## [12.1.3](https://github.com/christophehurpeau/nightingale/compare/v12.1.2...v12.1.3) (2022-01-15)
7
42
 
8
43
  **Note:** Version bump only for package nightingale-sentry
package/README.md CHANGED
@@ -8,6 +8,9 @@
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://npmjs.org/package/nightingale-sentry"><img src="https://img.shields.io/npm/v/nightingale-sentry.svg?style=flat-square"></a>
11
+ <a href="https://npmjs.org/package/nightingale-sentry"><img src="https://img.shields.io/npm/dw/nightingale-sentry.svg?style=flat-square"></a>
12
+ <a href="https://npmjs.org/package/nightingale-sentry"><img src="https://img.shields.io/node/v/nightingale-sentry.svg?style=flat-square"></a>
13
+ <a href="https://npmjs.org/package/nightingale-sentry"><img src="https://img.shields.io/npm/types/nightingale-sentry.svg?style=flat-square"></a>
11
14
  </p>
12
15
 
13
16
  ## Install
@@ -2,7 +2,6 @@ import type { addBreadcrumb, captureException, captureMessage } from '@sentry/co
2
2
  import type { User } from '@sentry/types';
3
3
  import { Level } from 'nightingale-levels';
4
4
  import type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';
5
- import 'pob-babel';
6
5
  export interface MetadataWithError extends Metadata {
7
6
  error?: Error;
8
7
  }
@@ -14,7 +13,7 @@ export interface Options {
14
13
  shouldSendAsException?: <T extends MetadataWithError>(record: LogRecord<T>) => boolean;
15
14
  shouldSendAsBreadcrumb?: <T extends Metadata>(record: LogRecord<T>) => boolean;
16
15
  }
17
- interface SentryRequiredMethods {
16
+ export interface SentryRequiredMethods {
18
17
  addBreadcrumb: typeof addBreadcrumb;
19
18
  captureException: typeof captureException;
20
19
  captureMessage: typeof captureMessage;
@@ -22,7 +21,6 @@ interface SentryRequiredMethods {
22
21
  export declare class SentryHandler<S extends SentryRequiredMethods> implements Handler {
23
22
  minLevel: Level;
24
23
  handle: Handle;
25
- constructor(Sentry: string | S, minLevel: Level, options?: Options);
24
+ constructor(Sentry: S, minLevel: Level, options?: Options);
26
25
  }
27
- export {};
28
26
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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;AACtB,OAAO,KAAK,EAAE,IAAI,EAAiB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAgB9E,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,MAAM,WAAW,qBAAqB;IACpC,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,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO;CAI1D"}
@@ -1,53 +1,46 @@
1
1
  import _extends from '@babel/runtime/helpers/esm/extends';
2
- import { Severity } from '@sentry/types';
3
2
  import { Level } from 'nightingale-levels';
4
3
 
5
4
  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
-
5
+ var mapToSentryLevel = (_mapToSentryLevel = {}, _mapToSentryLevel[Level.TRACE] = 'debug', _mapToSentryLevel[Level.DEBUG] = 'debug', _mapToSentryLevel[Level.INFO] = 'info', _mapToSentryLevel[Level.NOTICE] = 'log', _mapToSentryLevel[Level.WARNING] = 'warning', _mapToSentryLevel[Level.ERROR] = 'error', _mapToSentryLevel[Level.CRITICAL] = 'fatal', _mapToSentryLevel[Level.FATAL] = 'fatal', _mapToSentryLevel[Level.EMERGENCY] = 'fatal', _mapToSentryLevel[Level.ALL] = 'error', _mapToSentryLevel);
8
6
  var createHandler = function createHandler(Sentry, _temp) {
9
7
  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
-
8
+ _ref$getUser = _ref.getUser,
9
+ getUser = _ref$getUser === void 0 ? function () {
10
+ return undefined;
11
+ } : _ref$getUser,
12
+ _ref$getTags = _ref.getTags,
13
+ getTags = _ref$getTags === void 0 ? function () {
14
+ return {};
15
+ } : _ref$getTags,
16
+ _ref$getBreadcrumbCat = _ref.getBreadcrumbCategory,
17
+ getBreadcrumbCategory = _ref$getBreadcrumbCat === void 0 ? function () {
18
+ return undefined;
19
+ } : _ref$getBreadcrumbCat,
20
+ _ref$getBreadcrumbTyp = _ref.getBreadcrumbType,
21
+ getBreadcrumbType = _ref$getBreadcrumbTyp === void 0 ? function () {
22
+ return undefined;
23
+ } : _ref$getBreadcrumbTyp,
24
+ _ref$shouldSendAsExce = _ref.shouldSendAsException,
25
+ shouldSendAsException = _ref$shouldSendAsExce === void 0 ? function (record) {
26
+ var _record$metadata;
27
+ return ((_record$metadata = record.metadata) == null ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
28
+ } : _ref$shouldSendAsExce,
29
+ _ref$shouldSendAsBrea = _ref.shouldSendAsBreadcrumb,
30
+ shouldSendAsBreadcrumb = _ref$shouldSendAsBrea === void 0 ? function () {
31
+ return false;
32
+ } : _ref$shouldSendAsBrea;
37
33
  return function (record) {
38
34
  var key = record.key,
39
- level = record.level,
40
- metadata = record.metadata,
41
- extra = record.extra;
42
-
35
+ level = record.level,
36
+ metadata = record.metadata,
37
+ extra = record.extra;
43
38
  if (shouldSendAsException(record)) {
44
39
  var error = (metadata == null ? void 0 : metadata.error) || record.message;
45
-
46
40
  var extraData = _extends({}, metadata, extra);
47
-
48
41
  delete extraData.error;
49
42
  Sentry.captureException(error, {
50
- level: mapToSentryLevel[level] || Severity.Error,
43
+ level: mapToSentryLevel[level] || 'error',
51
44
  user: getUser(record),
52
45
  tags: _extends({
53
46
  loggerKey: key
@@ -56,7 +49,7 @@ var createHandler = function createHandler(Sentry, _temp) {
56
49
  });
57
50
  } else if (shouldSendAsBreadcrumb(record)) {
58
51
  Sentry.addBreadcrumb({
59
- level: mapToSentryLevel[level] || Severity.Error,
52
+ level: mapToSentryLevel[level] || 'error',
60
53
  category: getBreadcrumbCategory(record),
61
54
  type: getBreadcrumbType(record),
62
55
  message: record.message,
@@ -66,7 +59,6 @@ var createHandler = function createHandler(Sentry, _temp) {
66
59
  }
67
60
  };
68
61
  };
69
-
70
62
  var SentryHandler = function SentryHandler(Sentry, minLevel, options) {
71
63
  this.minLevel = minLevel;
72
64
  this.handle = createHandler(Sentry, options);
@@ -1 +1 @@
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
+ {"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 type { User, SeverityLevel } from '@sentry/types';\nimport { Level } from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, SeverityLevel> = {\n [Level.TRACE]: 'debug',\n [Level.DEBUG]: 'debug',\n [Level.INFO]: 'info',\n [Level.NOTICE]: 'log',\n [Level.WARNING]: 'warning',\n [Level.ERROR]: 'error',\n [Level.CRITICAL]: 'fatal',\n [Level.FATAL]: 'fatal',\n [Level.EMERGENCY]: 'fatal',\n // not a level\n [Level.ALL]: '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\nexport interface 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] || '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] || '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: S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n this.handle = createHandler<S>(Sentry, options);\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","DEBUG","INFO","NOTICE","WARNING","ERROR","CRITICAL","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,20 +1,18 @@
1
- import { Severity } from '@sentry/types';
2
1
  import { Level } from 'nightingale-levels';
3
2
 
4
3
  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,
4
+ [Level.TRACE]: 'debug',
5
+ [Level.DEBUG]: 'debug',
6
+ [Level.INFO]: 'info',
7
+ [Level.NOTICE]: 'log',
8
+ [Level.WARNING]: 'warning',
9
+ [Level.ERROR]: 'error',
10
+ [Level.CRITICAL]: 'fatal',
11
+ [Level.FATAL]: 'fatal',
12
+ [Level.EMERGENCY]: 'fatal',
14
13
  // not a level
15
- [Level.ALL]: Severity.Error
14
+ [Level.ALL]: 'error'
16
15
  };
17
-
18
16
  const createHandler = (Sentry, {
19
17
  getUser = () => undefined,
20
18
  getTags = () => ({}),
@@ -22,7 +20,6 @@ const createHandler = (Sentry, {
22
20
  getBreadcrumbType = () => undefined,
23
21
  shouldSendAsException = record => {
24
22
  var _record$metadata;
25
-
26
23
  return ((_record$metadata = record.metadata) === null || _record$metadata === void 0 ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
27
24
  },
28
25
  shouldSendAsBreadcrumb = () => false
@@ -34,15 +31,15 @@ const createHandler = (Sentry, {
34
31
  metadata,
35
32
  extra
36
33
  } = record;
37
-
38
34
  if (shouldSendAsException(record)) {
39
35
  const error = (metadata === null || metadata === void 0 ? void 0 : metadata.error) || record.message;
40
- const extraData = { ...metadata,
36
+ const extraData = {
37
+ ...metadata,
41
38
  ...extra
42
39
  };
43
40
  delete extraData.error;
44
41
  Sentry.captureException(error, {
45
- level: mapToSentryLevel[level] || Severity.Error,
42
+ level: mapToSentryLevel[level] || 'error',
46
43
  user: getUser(record),
47
44
  tags: {
48
45
  loggerKey: key,
@@ -52,7 +49,7 @@ const createHandler = (Sentry, {
52
49
  });
53
50
  } else if (shouldSendAsBreadcrumb(record)) {
54
51
  Sentry.addBreadcrumb({
55
- level: mapToSentryLevel[level] || Severity.Error,
52
+ level: mapToSentryLevel[level] || 'error',
56
53
  category: getBreadcrumbCategory(record),
57
54
  type: getBreadcrumbType(record),
58
55
  message: record.message,
@@ -62,13 +59,11 @@ const createHandler = (Sentry, {
62
59
  }
63
60
  };
64
61
  };
65
-
66
62
  class SentryHandler {
67
63
  constructor(Sentry, minLevel, options) {
68
64
  this.minLevel = minLevel;
69
65
  this.handle = createHandler(Sentry, options);
70
66
  }
71
-
72
67
  }
73
68
 
74
69
  export { SentryHandler };
@@ -1 +1 @@
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":"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"}
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 type { User, SeverityLevel } from '@sentry/types';\nimport { Level } from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, SeverityLevel> = {\n [Level.TRACE]: 'debug',\n [Level.DEBUG]: 'debug',\n [Level.INFO]: 'info',\n [Level.NOTICE]: 'log',\n [Level.WARNING]: 'warning',\n [Level.ERROR]: 'error',\n [Level.CRITICAL]: 'fatal',\n [Level.FATAL]: 'fatal',\n [Level.EMERGENCY]: 'fatal',\n // not a level\n [Level.ALL]: '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\nexport interface 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] || '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] || '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: S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n this.handle = createHandler<S>(Sentry, options);\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","DEBUG","INFO","NOTICE","WARNING","ERROR","CRITICAL","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,21 +1,18 @@
1
- import * as SentryNode from '@sentry/node';
2
- import { Severity } from '@sentry/types';
3
1
  import { Level } from 'nightingale-levels';
4
2
 
5
3
  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,
4
+ [Level.TRACE]: 'debug',
5
+ [Level.DEBUG]: 'debug',
6
+ [Level.INFO]: 'info',
7
+ [Level.NOTICE]: 'log',
8
+ [Level.WARNING]: 'warning',
9
+ [Level.ERROR]: 'error',
10
+ [Level.CRITICAL]: 'fatal',
11
+ [Level.FATAL]: 'fatal',
12
+ [Level.EMERGENCY]: 'fatal',
15
13
  // not a level
16
- [Level.ALL]: Severity.Error
14
+ [Level.ALL]: 'error'
17
15
  };
18
-
19
16
  const createHandler = (Sentry, {
20
17
  getUser = () => undefined,
21
18
  getTags = () => ({}),
@@ -31,15 +28,15 @@ const createHandler = (Sentry, {
31
28
  metadata,
32
29
  extra
33
30
  } = record;
34
-
35
31
  if (shouldSendAsException(record)) {
36
32
  const error = metadata?.error || record.message;
37
- const extraData = { ...metadata,
33
+ const extraData = {
34
+ ...metadata,
38
35
  ...extra
39
36
  };
40
37
  delete extraData.error;
41
38
  Sentry.captureException(error, {
42
- level: mapToSentryLevel[level] || Severity.Error,
39
+ level: mapToSentryLevel[level] || 'error',
43
40
  user: getUser(record),
44
41
  tags: {
45
42
  loggerKey: key,
@@ -49,7 +46,7 @@ const createHandler = (Sentry, {
49
46
  });
50
47
  } else if (shouldSendAsBreadcrumb(record)) {
51
48
  Sentry.addBreadcrumb({
52
- level: mapToSentryLevel[level] || Severity.Error,
49
+ level: mapToSentryLevel[level] || 'error',
53
50
  category: getBreadcrumbCategory(record),
54
51
  type: getBreadcrumbType(record),
55
52
  message: record.message,
@@ -59,23 +56,12 @@ const createHandler = (Sentry, {
59
56
  }
60
57
  };
61
58
  };
62
-
63
59
  class SentryHandler {
64
60
  constructor(Sentry, minLevel, options) {
65
61
  this.minLevel = minLevel;
66
-
67
- if (typeof Sentry === 'string') {
68
- console.warn('nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.');
69
- SentryNode.init({
70
- dsn: Sentry
71
- });
72
- this.handle = createHandler(SentryNode, options);
73
- } else {
74
- this.handle = createHandler(Sentry, options);
75
- }
62
+ this.handle = createHandler(Sentry, options);
76
63
  }
77
-
78
64
  }
79
65
 
80
66
  export { SentryHandler };
81
- //# sourceMappingURL=index-node14.mjs.map
67
+ //# sourceMappingURL=index-node16.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-node16.mjs","sources":["../src/index.ts"],"sourcesContent":["import type {\n addBreadcrumb,\n captureException,\n captureMessage,\n} from '@sentry/core';\nimport type { User, SeverityLevel } from '@sentry/types';\nimport { Level } from 'nightingale-levels';\nimport type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';\n\nconst mapToSentryLevel: Record<Level, SeverityLevel> = {\n [Level.TRACE]: 'debug',\n [Level.DEBUG]: 'debug',\n [Level.INFO]: 'info',\n [Level.NOTICE]: 'log',\n [Level.WARNING]: 'warning',\n [Level.ERROR]: 'error',\n [Level.CRITICAL]: 'fatal',\n [Level.FATAL]: 'fatal',\n [Level.EMERGENCY]: 'fatal',\n // not a level\n [Level.ALL]: '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\nexport interface 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] || '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] || '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: S, minLevel: Level, options?: Options) {\n this.minLevel = minLevel;\n this.handle = createHandler<S>(Sentry, options);\n }\n}\n"],"names":["mapToSentryLevel","Level","TRACE","DEBUG","INFO","NOTICE","WARNING","ERROR","CRITICAL","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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nightingale-sentry",
3
- "version": "12.1.3",
3
+ "version": "13.0.0",
4
4
  "description": "Sentry handler for nightingale",
5
5
  "keywords": [
6
6
  "nightingale",
@@ -16,7 +16,7 @@
16
16
  "homepage": "https://github.com/christophehurpeau/nightingale",
17
17
  "type": "module",
18
18
  "engines": {
19
- "node": "^14.13.1 || >=16.0.0"
19
+ "node": ">=16.0.0"
20
20
  },
21
21
  "browserslist": [
22
22
  "defaults",
@@ -25,65 +25,47 @@
25
25
  "not safari < 10",
26
26
  "not ios_saf < 10"
27
27
  ],
28
- "main": "./dist/index-node14.mjs",
29
- "types": "./dist/index.d.ts",
28
+ "main": "./dist/index-node16.mjs",
29
+ "types": "./dist/definitions/index.d.ts",
30
30
  "module": "./dist/index-browser.es.js",
31
31
  "browser": "./dist/index-browser.es.js",
32
32
  "exports": {
33
33
  "./package.json": "./package.json",
34
34
  ".": {
35
35
  "node": {
36
- "import": "./dist/index-node14.mjs",
37
- "require": "./dist/index-node14.cjs.js"
36
+ "import": "./dist/index-node16.mjs"
38
37
  },
39
38
  "browser": {
40
39
  "browser:modern": {
41
40
  "import": "./dist/index-browsermodern.es.js"
42
41
  },
43
- "import": "./dist/index-browser.es.js",
44
- "require": "./dist/index-browser.cjs.js"
42
+ "import": "./dist/index-browser.es.js"
45
43
  }
46
44
  }
47
45
  },
48
- "module:node": "./dist/index-node14.mjs",
49
- "module:modern-browsers": "./dist/index-browsermodern.es.js",
50
46
  "sideEffects": false,
51
47
  "scripts": {
52
- "build": "pob-build && yarn run build:definitions",
53
- "build:definitions": "tsc -p tsconfig.build.json",
54
- "clean": "rm -Rf dist",
48
+ "build": "yarn clean:build && rollup --config rollup.config.mjs && yarn run build:definitions",
49
+ "build:definitions": "tsc -p",
50
+ "clean": "yarn clean:build",
51
+ "clean:build": "pob-babel-clean-out dist",
55
52
  "lint": "yarn run lint:eslint",
56
- "lint:eslint": "cd ../.. && yarn run eslint --report-unused-disable-directives --resolve-plugins-relative-to . --quiet packages/nightingale-sentry",
57
- "watch": "pob-watch"
58
- },
59
- "prettier": {
60
- "trailingComma": "all",
61
- "singleQuote": true,
62
- "arrowParens": "always"
53
+ "lint:eslint": "yarn ../.. run eslint --report-unused-disable-directives --resolve-plugins-relative-to . --quiet packages/nightingale-sentry",
54
+ "watch": "yarn clean:build && rollup --config rollup.config.mjs --watch"
63
55
  },
56
+ "prettier": "@pob/root/prettier-config",
64
57
  "pob": {
65
58
  "babelEnvs": [
66
59
  {
67
60
  "target": "node",
68
- "version": "14",
69
- "formats": [
70
- "cjs",
71
- "es"
72
- ]
61
+ "version": "16"
73
62
  },
74
63
  {
75
64
  "target": "browser",
76
- "version": "modern",
77
- "formats": [
78
- "es"
79
- ]
65
+ "version": "modern"
80
66
  },
81
67
  {
82
- "target": "browser",
83
- "formats": [
84
- "cjs",
85
- "es"
86
- ]
68
+ "target": "browser"
87
69
  }
88
70
  ],
89
71
  "entries": [
@@ -91,18 +73,18 @@
91
73
  ]
92
74
  },
93
75
  "dependencies": {
94
- "@sentry/core": "^5.0.0 || ^6.1.0",
95
- "@sentry/node": "^5.0.0 || ^6.1.0",
96
- "@sentry/types": "^5.0.0 || ^6.1.0",
97
- "nightingale-levels": "12.1.3",
98
- "nightingale-types": "12.1.3"
76
+ "@sentry/core": "^7.19.0",
77
+ "@sentry/node": "^7.19.0",
78
+ "@sentry/types": "^7.19.0",
79
+ "nightingale-levels": "13.0.0",
80
+ "nightingale-types": "13.0.0"
99
81
  },
100
82
  "devDependencies": {
101
- "@babel/core": "7.16.7",
102
- "@babel/preset-env": "7.16.8",
83
+ "@babel/core": "7.20.2",
84
+ "@babel/preset-env": "7.20.2",
103
85
  "babel-preset-modern-browsers": "15.0.2",
104
- "pob-babel": "29.6.1",
105
- "typescript": "4.5.4"
86
+ "pob-babel": "35.3.0",
87
+ "typescript": "4.9.3"
106
88
  },
107
- "gitHead": "67fdeb8e3c6660b8bfa4eed4b66b2c05876ed9cc"
89
+ "gitHead": "52cf7e3c8762a07891da9dde497ec03298c15654"
108
90
  }
package/src/index.ts CHANGED
@@ -3,25 +3,22 @@ import type {
3
3
  captureException,
4
4
  captureMessage,
5
5
  } from '@sentry/core';
6
- import * as SentryNode from '@sentry/node';
7
- import type { User } from '@sentry/types';
8
- import { Severity } from '@sentry/types';
6
+ import type { User, SeverityLevel } from '@sentry/types';
9
7
  import { Level } from 'nightingale-levels';
10
8
  import type { LogRecord, Handle, Metadata, Handler } from 'nightingale-types';
11
- import 'pob-babel';
12
9
 
13
- const mapToSentryLevel: Record<Level, Severity> = {
14
- [Level.TRACE]: Severity.Debug,
15
- [Level.DEBUG]: Severity.Debug,
16
- [Level.INFO]: Severity.Info,
17
- [Level.NOTICE]: Severity.Log,
18
- [Level.WARNING]: Severity.Warning,
19
- [Level.ERROR]: Severity.Error,
20
- [Level.CRITICAL]: Severity.Critical,
21
- [Level.FATAL]: Severity.Fatal,
22
- [Level.EMERGENCY]: Severity.Critical,
10
+ const mapToSentryLevel: Record<Level, SeverityLevel> = {
11
+ [Level.TRACE]: 'debug',
12
+ [Level.DEBUG]: 'debug',
13
+ [Level.INFO]: 'info',
14
+ [Level.NOTICE]: 'log',
15
+ [Level.WARNING]: 'warning',
16
+ [Level.ERROR]: 'error',
17
+ [Level.CRITICAL]: 'fatal',
18
+ [Level.FATAL]: 'fatal',
19
+ [Level.EMERGENCY]: 'fatal',
23
20
  // not a level
24
- [Level.ALL]: Severity.Error,
21
+ [Level.ALL]: 'error',
25
22
  };
26
23
 
27
24
  export interface MetadataWithError extends Metadata {
@@ -49,7 +46,7 @@ export interface Options {
49
46
  ) => boolean;
50
47
  }
51
48
 
52
- interface SentryRequiredMethods {
49
+ export interface SentryRequiredMethods {
53
50
  addBreadcrumb: typeof addBreadcrumb;
54
51
  captureException: typeof captureException;
55
52
  captureMessage: typeof captureMessage;
@@ -79,7 +76,7 @@ const createHandler = <S extends SentryRequiredMethods>(
79
76
  delete extraData.error;
80
77
 
81
78
  Sentry.captureException(error, {
82
- level: mapToSentryLevel[level] || Severity.Error,
79
+ level: mapToSentryLevel[level] || 'error',
83
80
  user: getUser(record),
84
81
  tags: {
85
82
  loggerKey: key,
@@ -89,7 +86,7 @@ const createHandler = <S extends SentryRequiredMethods>(
89
86
  });
90
87
  } else if (shouldSendAsBreadcrumb(record)) {
91
88
  Sentry.addBreadcrumb({
92
- level: mapToSentryLevel[level] || Severity.Error,
89
+ level: mapToSentryLevel[level] || 'error',
93
90
  category: getBreadcrumbCategory(record),
94
91
  type: getBreadcrumbType(record),
95
92
  message: record.message,
@@ -105,16 +102,8 @@ export class SentryHandler<S extends SentryRequiredMethods> implements Handler {
105
102
 
106
103
  handle: Handle;
107
104
 
108
- constructor(Sentry: string | S, minLevel: Level, options?: Options) {
105
+ constructor(Sentry: S, minLevel: Level, options?: Options) {
109
106
  this.minLevel = minLevel;
110
- if (__POB_TARGET__ === 'node' && typeof Sentry === 'string') {
111
- console.warn(
112
- 'nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.',
113
- );
114
- SentryNode.init({ dsn: Sentry });
115
- this.handle = createHandler(SentryNode, options);
116
- } else {
117
- this.handle = createHandler<S>(Sentry as S, options);
118
- }
107
+ this.handle = createHandler<S>(Sentry, options);
119
108
  }
120
109
  }
@@ -1,84 +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 nightingaleLevels = 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
-
13
- var _mapToSentryLevel;
14
- var mapToSentryLevel = (_mapToSentryLevel = {}, _mapToSentryLevel[nightingaleLevels.Level.TRACE] = types.Severity.Debug, _mapToSentryLevel[nightingaleLevels.Level.DEBUG] = types.Severity.Debug, _mapToSentryLevel[nightingaleLevels.Level.INFO] = types.Severity.Info, _mapToSentryLevel[nightingaleLevels.Level.NOTICE] = types.Severity.Log, _mapToSentryLevel[nightingaleLevels.Level.WARNING] = types.Severity.Warning, _mapToSentryLevel[nightingaleLevels.Level.ERROR] = types.Severity.Error, _mapToSentryLevel[nightingaleLevels.Level.CRITICAL] = types.Severity.Critical, _mapToSentryLevel[nightingaleLevels.Level.FATAL] = types.Severity.Fatal, _mapToSentryLevel[nightingaleLevels.Level.EMERGENCY] = types.Severity.Critical, _mapToSentryLevel[nightingaleLevels.Level.ALL] = types.Severity.Error, _mapToSentryLevel);
15
-
16
- var createHandler = function createHandler(Sentry, _temp) {
17
- var _ref = _temp === void 0 ? {} : _temp,
18
- _ref$getUser = _ref.getUser,
19
- getUser = _ref$getUser === void 0 ? function () {
20
- return undefined;
21
- } : _ref$getUser,
22
- _ref$getTags = _ref.getTags,
23
- getTags = _ref$getTags === void 0 ? function () {
24
- return {};
25
- } : _ref$getTags,
26
- _ref$getBreadcrumbCat = _ref.getBreadcrumbCategory,
27
- getBreadcrumbCategory = _ref$getBreadcrumbCat === void 0 ? function () {
28
- return undefined;
29
- } : _ref$getBreadcrumbCat,
30
- _ref$getBreadcrumbTyp = _ref.getBreadcrumbType,
31
- getBreadcrumbType = _ref$getBreadcrumbTyp === void 0 ? function () {
32
- return undefined;
33
- } : _ref$getBreadcrumbTyp,
34
- _ref$shouldSendAsExce = _ref.shouldSendAsException,
35
- shouldSendAsException = _ref$shouldSendAsExce === void 0 ? function (record) {
36
- var _record$metadata;
37
-
38
- return ((_record$metadata = record.metadata) == null ? void 0 : _record$metadata.error) !== undefined && record.metadata.unhandled !== true;
39
- } : _ref$shouldSendAsExce,
40
- _ref$shouldSendAsBrea = _ref.shouldSendAsBreadcrumb,
41
- shouldSendAsBreadcrumb = _ref$shouldSendAsBrea === void 0 ? function () {
42
- return false;
43
- } : _ref$shouldSendAsBrea;
44
-
45
- return function (record) {
46
- var key = record.key,
47
- level = record.level,
48
- metadata = record.metadata,
49
- extra = record.extra;
50
-
51
- if (shouldSendAsException(record)) {
52
- var error = (metadata == null ? void 0 : metadata.error) || record.message;
53
-
54
- var extraData = _extends__default({}, metadata, extra);
55
-
56
- delete extraData.error;
57
- Sentry.captureException(error, {
58
- level: mapToSentryLevel[level] || types.Severity.Error,
59
- user: getUser(record),
60
- tags: _extends__default({
61
- loggerKey: key
62
- }, getTags(record)),
63
- extra: extraData
64
- });
65
- } else if (shouldSendAsBreadcrumb(record)) {
66
- Sentry.addBreadcrumb({
67
- level: mapToSentryLevel[level] || types.Severity.Error,
68
- category: getBreadcrumbCategory(record),
69
- type: getBreadcrumbType(record),
70
- message: record.message,
71
- data: record.metadata,
72
- timestamp: record.datetime.getTime()
73
- });
74
- }
75
- };
76
- };
77
-
78
- var SentryHandler = function SentryHandler(Sentry, minLevel, options) {
79
- this.minLevel = minLevel;
80
- this.handle = createHandler(Sentry, options);
81
- };
82
-
83
- exports.SentryHandler = SentryHandler;
84
- //# sourceMappingURL=index-browser.cjs.js.map
@@ -1 +0,0 @@
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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"}
@@ -1,99 +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 nightingaleLevels = require('nightingale-levels');
8
-
9
- function _interopNamespace(e) {
10
- if (e && e.__esModule) return e;
11
- const n = Object.create(null);
12
- if (e) {
13
- for (const k in e) {
14
- n[k] = e[k];
15
- }
16
- }
17
- n["default"] = e;
18
- return n;
19
- }
20
-
21
- const SentryNode__namespace = /*#__PURE__*/_interopNamespace(SentryNode);
22
-
23
- const mapToSentryLevel = {
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,
33
- // not a level
34
- [nightingaleLevels.Level.ALL]: types.Severity.Error
35
- };
36
-
37
- const createHandler = (Sentry, {
38
- getUser = () => undefined,
39
- getTags = () => ({}),
40
- getBreadcrumbCategory = () => undefined,
41
- getBreadcrumbType = () => undefined,
42
- shouldSendAsException = record => record.metadata?.error !== undefined && record.metadata.unhandled !== true,
43
- shouldSendAsBreadcrumb = () => false
44
- } = {}) => {
45
- return record => {
46
- const {
47
- key,
48
- level,
49
- metadata,
50
- extra
51
- } = record;
52
-
53
- if (shouldSendAsException(record)) {
54
- const error = metadata?.error || record.message;
55
- const extraData = { ...metadata,
56
- ...extra
57
- };
58
- delete extraData.error;
59
- Sentry.captureException(error, {
60
- level: mapToSentryLevel[level] || types.Severity.Error,
61
- user: getUser(record),
62
- tags: {
63
- loggerKey: key,
64
- ...getTags(record)
65
- },
66
- extra: extraData
67
- });
68
- } else if (shouldSendAsBreadcrumb(record)) {
69
- Sentry.addBreadcrumb({
70
- level: mapToSentryLevel[level] || types.Severity.Error,
71
- category: getBreadcrumbCategory(record),
72
- type: getBreadcrumbType(record),
73
- message: record.message,
74
- data: record.metadata,
75
- timestamp: record.datetime.getTime()
76
- });
77
- }
78
- };
79
- };
80
-
81
- class SentryHandler {
82
- constructor(Sentry, minLevel, options) {
83
- this.minLevel = minLevel;
84
-
85
- if (typeof Sentry === 'string') {
86
- console.warn('nightingale-sentry: Passing DSN directly is deprecated, pass Sentry instead and init in your app.');
87
- SentryNode__namespace.init({
88
- dsn: Sentry
89
- });
90
- this.handle = createHandler(SentryNode__namespace, options);
91
- } else {
92
- this.handle = createHandler(Sentry, options);
93
- }
94
- }
95
-
96
- }
97
-
98
- exports.SentryHandler = SentryHandler;
99
- //# sourceMappingURL=index-node14.cjs.js.map
@@ -1 +0,0 @@
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":"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"}
@@ -1 +0,0 @@
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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"}
@@ -1 +0,0 @@
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/rollup.config.mjs DELETED
@@ -1,3 +0,0 @@
1
- import createRollupConfig from 'pob-babel/createRollupConfig.js';
2
-
3
- export default createRollupConfig({});