@leaflink/snitch 1.3.1 → 1.3.3
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/dist/index.d.ts +8 -7
- package/dist/index.js.map +1 -1
- package/dist/transports/console.d.ts +2 -2
- package/dist/transports/console.js.map +1 -1
- package/dist/transports/datadog.d.ts +2 -2
- package/dist/transports/datadog.js +3 -0
- package/dist/transports/datadog.js.map +1 -1
- package/dist/transports/sentry.d.ts +12 -4
- package/dist/transports/sentry.js +35 -17
- package/dist/transports/sentry.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
|
|
2
|
-
type LogMessage =
|
|
3
|
-
type
|
|
2
|
+
export type LogMessage = string | typeof Error | unknown | object;
|
|
3
|
+
export type LogMeta = Record<string, unknown> | typeof Error | unknown | object;
|
|
4
|
+
export type LogFunction = (message: LogMessage, meta: LogMeta, level: LogLevel) => void;
|
|
4
5
|
export interface Transport {
|
|
5
6
|
level: LogLevel;
|
|
6
7
|
log: LogFunction;
|
|
@@ -11,11 +12,11 @@ export declare class Logger {
|
|
|
11
12
|
transports: Transport[];
|
|
12
13
|
});
|
|
13
14
|
private _log;
|
|
14
|
-
debug(message: LogMessage, meta?:
|
|
15
|
-
info(message: LogMessage, meta?:
|
|
16
|
-
log(message: LogMessage, meta?:
|
|
17
|
-
warn(message: LogMessage, meta?:
|
|
18
|
-
error(message: LogMessage, meta?:
|
|
15
|
+
debug(message: LogMessage, meta?: LogMeta): void;
|
|
16
|
+
info(message: LogMessage, meta?: LogMeta): void;
|
|
17
|
+
log(message: LogMessage, meta?: LogMeta): void;
|
|
18
|
+
warn(message: LogMessage, meta?: LogMeta): void;
|
|
19
|
+
error(message: LogMessage, meta?: LogMeta): void;
|
|
19
20
|
addTransport(transport: Transport): void;
|
|
20
21
|
clearTransports(): void;
|
|
21
22
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAcF,MAAM,OAAO,MAAM;IACjB,UAAU,CAAc;IAExB,YAAY,IAAkC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAC3C,CAAC;IAEO,IAAI,CAAC,KAAe,EAAE,OAAmB,EAAE,IAAc;QAC/D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC5C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAAc;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAAc;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,OAAmB,EAAE,IAAc;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,IAAc;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAmB,EAAE,IAAc;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,eAAe,MAAM,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { LogLevel, Transport } from '../index.js';
|
|
1
|
+
import { LogLevel, LogMessage, LogMeta, Transport } from '../index.js';
|
|
2
2
|
export interface ConsoleTransportOptions {
|
|
3
3
|
level?: LogLevel;
|
|
4
4
|
}
|
|
5
5
|
export declare class ConsoleTransport implements Transport {
|
|
6
6
|
level: LogLevel;
|
|
7
|
-
log: (message:
|
|
7
|
+
log: (message: LogMessage, meta: LogMeta, level: LogLevel) => void;
|
|
8
8
|
constructor(opts?: ConsoleTransportOptions);
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/transports/console.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/transports/console.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,CAAgE;IAEnE,YAAY,IAA8B;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAClC,QAAQ,KAAK,EAAE;gBACb,KAAK,OAAO;oBACV,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBAClC,MAAM;gBACR,KAAK,OAAO;oBACV,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBACnC,MAAM;gBACR;oBACE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;aACpC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { datadogLogs } from '@datadog/browser-logs';
|
|
2
|
-
import { LogLevel, Transport } from '../index.js';
|
|
2
|
+
import { LogFunction, LogLevel, Transport } from '../index.js';
|
|
3
3
|
export interface DatadogTransportOptions {
|
|
4
4
|
level?: LogLevel;
|
|
5
5
|
datadogLogsInstance: typeof datadogLogs;
|
|
6
6
|
}
|
|
7
7
|
export declare class DatadogTransport implements Transport {
|
|
8
8
|
level: LogLevel;
|
|
9
|
-
log:
|
|
9
|
+
log: LogFunction;
|
|
10
10
|
constructor(opts: DatadogTransportOptions);
|
|
11
11
|
}
|
|
@@ -9,6 +9,9 @@ export class DatadogTransport {
|
|
|
9
9
|
// Datadog logger has an optional third error param for exception handling
|
|
10
10
|
opts.datadogLogsInstance.logger[level](message.message, meta, message);
|
|
11
11
|
}
|
|
12
|
+
else if (typeof message === 'string' && meta instanceof Error) {
|
|
13
|
+
opts.datadogLogsInstance.logger[level](message, {}, meta);
|
|
14
|
+
}
|
|
12
15
|
else if (typeof message === 'string') {
|
|
13
16
|
opts.datadogLogsInstance.logger[level](message, meta);
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/transports/datadog.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,
|
|
1
|
+
{"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/transports/datadog.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;YACvC,+DAA+D;YAC/D,IAAI,OAAO,YAAY,KAAK,EAAE;gBAC5B,0EAA0E;gBAC1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAc,EAAE,OAAO,CAAC,CAAC;aAClF;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,YAAY,KAAK,EAAE;gBAC/D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;aAC3D;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAc,CAAC,CAAC;aACjE;iBAAM;gBACL,2FAA2F;gBAC3F,0GAA0G;gBAC1G,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAc,CAAC,CAAC;aACjF;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
import { LogLevel, Transport } from '../index.js';
|
|
1
|
+
import { LogFunction, LogLevel, LogMeta, Transport } from '../index.js';
|
|
2
2
|
export interface SentryTransportOptions {
|
|
3
3
|
level?: LogLevel;
|
|
4
4
|
sentryInstance: {
|
|
5
|
-
captureMessage: (message: string, sentryMeta: Record<string, unknown> | undefined) => void;
|
|
6
|
-
captureException: (message: object, sentryMeta: Record<string, unknown> | undefined) => void;
|
|
5
|
+
captureMessage: (message: string, sentryMeta: Record<string, unknown> | unknown | undefined) => void;
|
|
6
|
+
captureException: (message: object, sentryMeta: Record<string, unknown> | unknown | undefined) => void;
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
+
export type SentryMeta = LogMeta & {
|
|
10
|
+
level?: string;
|
|
11
|
+
extra?: Record<string, unknown>;
|
|
12
|
+
tags?: Record<string, unknown>;
|
|
13
|
+
contexts?: Record<string, unknown>;
|
|
14
|
+
user?: Record<string, unknown>;
|
|
15
|
+
fingerprint?: string[];
|
|
16
|
+
};
|
|
9
17
|
export declare class SentryTransport implements Transport {
|
|
10
18
|
level: LogLevel;
|
|
11
|
-
log:
|
|
19
|
+
log: LogFunction;
|
|
12
20
|
constructor(opts: SentryTransportOptions);
|
|
13
21
|
}
|
|
@@ -9,30 +9,48 @@ export class SentryTransport {
|
|
|
9
9
|
log;
|
|
10
10
|
constructor(opts) {
|
|
11
11
|
this.level = opts.level || 'error';
|
|
12
|
-
this.log = (message, meta,
|
|
12
|
+
this.log = (message, meta, logLevel) => {
|
|
13
13
|
// There's a handful of well defined context properties in sentry:
|
|
14
14
|
// https://docs.sentry.io/platforms/javascript/enriching-events/context/#passing-context-directly
|
|
15
15
|
// If the metadata you pass is not one of these, we will automatically put it into extra for
|
|
16
16
|
// you, which is just a dumping ground for contextual metadata that sentry normalizes for you.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
17
|
+
if (meta &&
|
|
18
|
+
typeof meta === 'object' &&
|
|
19
|
+
!Array.isArray(meta) &&
|
|
20
|
+
Object.getPrototypeOf(meta) === Object.prototype) {
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
22
|
+
const { tags, extra, contexts, user, level, fingerprint, ...customMeta } = meta || {};
|
|
23
|
+
const extraSentry = {
|
|
24
|
+
...(extra && typeof extra === 'object' ? extra : {}),
|
|
25
|
+
...(customMeta && typeof customMeta === 'object' ? customMeta : {}),
|
|
26
|
+
};
|
|
27
|
+
const sentryMeta = {
|
|
28
|
+
level: SentryErrorLevelMap[logLevel],
|
|
29
|
+
extra: extraSentry,
|
|
30
|
+
tags,
|
|
31
|
+
contexts,
|
|
32
|
+
user,
|
|
33
|
+
fingerprint,
|
|
34
|
+
};
|
|
35
|
+
if (typeof message === 'string') {
|
|
36
|
+
opts.sentryInstance.captureMessage(message, sentryMeta);
|
|
37
|
+
}
|
|
38
|
+
else if (message instanceof Error) {
|
|
39
|
+
opts.sentryInstance.captureException(message, sentryMeta);
|
|
40
|
+
}
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
31
43
|
if (typeof message === 'string') {
|
|
32
|
-
opts.sentryInstance.captureMessage(message,
|
|
44
|
+
opts.sentryInstance.captureMessage(message, meta);
|
|
45
|
+
}
|
|
46
|
+
else if (message instanceof Error) {
|
|
47
|
+
opts.sentryInstance.captureException(message, meta);
|
|
48
|
+
}
|
|
49
|
+
else if (meta instanceof Error) {
|
|
50
|
+
opts.sentryInstance.captureException(meta, meta);
|
|
33
51
|
}
|
|
34
52
|
else {
|
|
35
|
-
opts.sentryInstance.
|
|
53
|
+
opts.sentryInstance.captureMessage(JSON.stringify(message), meta);
|
|
36
54
|
}
|
|
37
55
|
};
|
|
38
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../src/transports/sentry.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../src/transports/sentry.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAmBF,MAAM,OAAO,eAAe;IAC1B,KAAK,CAAW;IAChB,GAAG,CAAc;IAEjB,YAAY,IAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACrC,kEAAkE;YAClE,iGAAiG;YACjG,4FAA4F;YAC5F,8FAA8F;YAC9F,IACE,IAAI;gBACJ,OAAO,IAAI,KAAK,QAAQ;gBACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,EAChD;gBACA,6DAA6D;gBAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAI,IAAmB,IAAI,EAAE,CAAC;gBACtG,MAAM,WAAW,GAAG;oBAClB,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpE,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC;oBACpC,KAAK,EAAE,WAAW;oBAClB,IAAI;oBACJ,QAAQ;oBACR,IAAI;oBACJ,WAAW;iBACZ,CAAC;gBAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;oBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBACzD;qBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;oBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBAC3D;gBACD,OAAO;aACR;YAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACnD;iBAAM,IAAI,OAAO,YAAY,KAAK,EAAE;gBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACrD;iBAAM,IAAI,IAAI,YAAY,KAAK,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAClD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;aACnE;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|