@crimson-education/browser-logger 3.0.5 → 3.0.6
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/lib/index.d.ts +12 -12
- package/lib/index.js +69 -69
- package/lib/logger/consoleTransport.d.ts +36 -36
- package/lib/logger/consoleTransport.js +80 -80
- package/lib/logger/datadogTransport.d.ts +7 -7
- package/lib/logger/datadogTransport.js +20 -20
- package/lib/logger/index.d.ts +15 -15
- package/lib/logger/index.js +147 -147
- package/lib/logger/index.test.d.ts +1 -1
- package/lib/logger/index.test.js +59 -59
- package/lib/logger/utils.d.ts +14 -14
- package/lib/logger/utils.js +31 -31
- package/lib/reporters/amplifyReporter.d.ts +85 -85
- package/lib/reporters/amplifyReporter.js +222 -222
- package/lib/reporters/amplifyReporter.test.d.ts +1 -1
- package/lib/reporters/amplifyReporter.test.js +50 -50
- package/lib/reporters/datadogReporter.d.ts +89 -85
- package/lib/reporters/datadogReporter.d.ts.map +1 -1
- package/lib/reporters/datadogReporter.js +125 -124
- package/lib/reporters/datadogReporter.js.map +1 -1
- package/lib/reporters/gtmReporter.d.ts +8 -8
- package/lib/reporters/gtmReporter.js +56 -56
- package/lib/reporters/index.d.ts +66 -66
- package/lib/reporters/index.js +212 -212
- package/lib/reporters/logReporter.d.ts +34 -34
- package/lib/reporters/logReporter.js +61 -61
- package/lib/types/index.d.ts +2 -2
- package/lib/types/index.js +18 -18
- package/lib/types/logger.d.ts +77 -77
- package/lib/types/logger.js +10 -10
- package/lib/types/reporter.d.ts +154 -154
- package/lib/types/reporter.js +2 -2
- package/lib/utils.d.ts +9 -9
- package/lib/utils.js +31 -31
- package/lib/utils.test.d.ts +1 -1
- package/lib/utils.test.js +31 -31
- package/package.json +4 -4
- package/src/reporters/datadogReporter.ts +5 -0
package/lib/types/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./logger"), exports);
|
|
18
|
-
__exportStar(require("./reporter"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./logger"), exports);
|
|
18
|
+
__exportStar(require("./reporter"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
package/lib/types/logger.d.ts
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
export declare type Metadata = Record<string, any>;
|
|
2
|
-
/**
|
|
3
|
-
* Options to Customize the Logger
|
|
4
|
-
*/
|
|
5
|
-
export declare type LoggerOptions = {
|
|
6
|
-
/**
|
|
7
|
-
* The min log level for events to be sent to the logger.
|
|
8
|
-
*/
|
|
9
|
-
logLevel?: LogLevel;
|
|
10
|
-
/**
|
|
11
|
-
* Metadata to add to all logs.
|
|
12
|
-
*/
|
|
13
|
-
metadata?: Metadata;
|
|
14
|
-
};
|
|
15
|
-
export declare enum LogLevel {
|
|
16
|
-
Debug = "debug",
|
|
17
|
-
Info = "info",
|
|
18
|
-
Warn = "warn",
|
|
19
|
-
Error = "error"
|
|
20
|
-
}
|
|
21
|
-
export interface LogLevelMethod {
|
|
22
|
-
(message: string, metadata?: Metadata): ILogger;
|
|
23
|
-
(message: string, ...meta: any[]): ILogger;
|
|
24
|
-
(message: any): ILogger;
|
|
25
|
-
}
|
|
26
|
-
export interface LogMethod {
|
|
27
|
-
(level: LogLevel, message: string, metadata?: Metadata): ILogger;
|
|
28
|
-
(level: LogLevel, message: string, ...meta: any[]): ILogger;
|
|
29
|
-
(level: LogLevel, message: any): ILogger;
|
|
30
|
-
(message: Record<string, any>): ILogger;
|
|
31
|
-
}
|
|
32
|
-
export interface Profiler {
|
|
33
|
-
logger: ILogger;
|
|
34
|
-
done(info?: {
|
|
35
|
-
message?: string;
|
|
36
|
-
level?: LogLevel;
|
|
37
|
-
metadata?: Metadata;
|
|
38
|
-
}): boolean;
|
|
39
|
-
}
|
|
40
|
-
export declare type StructuredLog = {
|
|
41
|
-
level: LogLevel;
|
|
42
|
-
message: any;
|
|
43
|
-
[key: string]: any;
|
|
44
|
-
};
|
|
45
|
-
export interface LogTransportConfigBase {
|
|
46
|
-
/**
|
|
47
|
-
* The min log level for logs to be sent.
|
|
48
|
-
*/
|
|
49
|
-
logLevel?: LogLevel;
|
|
50
|
-
/**
|
|
51
|
-
* Ignore specific metadata keys from being sent.
|
|
52
|
-
* This can be a regular expression, or a string to exact match.
|
|
53
|
-
* This is useful to prevent data of no use for the logger, or if the data keys are too long.
|
|
54
|
-
*/
|
|
55
|
-
ignoreMetadataPatterns?: (string | RegExp)[];
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* A logger interface that is used to transport logs to a destination
|
|
59
|
-
*/
|
|
60
|
-
export interface ILogTransport extends LogTransportConfigBase {
|
|
61
|
-
/**
|
|
62
|
-
* Inbound log event to transport.
|
|
63
|
-
*/
|
|
64
|
-
log: (logInfo: StructuredLog) => void;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* A Logger is a service that can receive log messages.
|
|
68
|
-
*/
|
|
69
|
-
export interface ILogger {
|
|
70
|
-
startTimer(): Profiler;
|
|
71
|
-
child(metadata?: Metadata, name?: string): ILogger;
|
|
72
|
-
log: LogMethod;
|
|
73
|
-
debug: LogLevelMethod;
|
|
74
|
-
info: LogLevelMethod;
|
|
75
|
-
warn: LogLevelMethod;
|
|
76
|
-
error: LogLevelMethod;
|
|
77
|
-
}
|
|
1
|
+
export declare type Metadata = Record<string, any>;
|
|
2
|
+
/**
|
|
3
|
+
* Options to Customize the Logger
|
|
4
|
+
*/
|
|
5
|
+
export declare type LoggerOptions = {
|
|
6
|
+
/**
|
|
7
|
+
* The min log level for events to be sent to the logger.
|
|
8
|
+
*/
|
|
9
|
+
logLevel?: LogLevel;
|
|
10
|
+
/**
|
|
11
|
+
* Metadata to add to all logs.
|
|
12
|
+
*/
|
|
13
|
+
metadata?: Metadata;
|
|
14
|
+
};
|
|
15
|
+
export declare enum LogLevel {
|
|
16
|
+
Debug = "debug",
|
|
17
|
+
Info = "info",
|
|
18
|
+
Warn = "warn",
|
|
19
|
+
Error = "error"
|
|
20
|
+
}
|
|
21
|
+
export interface LogLevelMethod {
|
|
22
|
+
(message: string, metadata?: Metadata): ILogger;
|
|
23
|
+
(message: string, ...meta: any[]): ILogger;
|
|
24
|
+
(message: any): ILogger;
|
|
25
|
+
}
|
|
26
|
+
export interface LogMethod {
|
|
27
|
+
(level: LogLevel, message: string, metadata?: Metadata): ILogger;
|
|
28
|
+
(level: LogLevel, message: string, ...meta: any[]): ILogger;
|
|
29
|
+
(level: LogLevel, message: any): ILogger;
|
|
30
|
+
(message: Record<string, any>): ILogger;
|
|
31
|
+
}
|
|
32
|
+
export interface Profiler {
|
|
33
|
+
logger: ILogger;
|
|
34
|
+
done(info?: {
|
|
35
|
+
message?: string;
|
|
36
|
+
level?: LogLevel;
|
|
37
|
+
metadata?: Metadata;
|
|
38
|
+
}): boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare type StructuredLog = {
|
|
41
|
+
level: LogLevel;
|
|
42
|
+
message: any;
|
|
43
|
+
[key: string]: any;
|
|
44
|
+
};
|
|
45
|
+
export interface LogTransportConfigBase {
|
|
46
|
+
/**
|
|
47
|
+
* The min log level for logs to be sent.
|
|
48
|
+
*/
|
|
49
|
+
logLevel?: LogLevel;
|
|
50
|
+
/**
|
|
51
|
+
* Ignore specific metadata keys from being sent.
|
|
52
|
+
* This can be a regular expression, or a string to exact match.
|
|
53
|
+
* This is useful to prevent data of no use for the logger, or if the data keys are too long.
|
|
54
|
+
*/
|
|
55
|
+
ignoreMetadataPatterns?: (string | RegExp)[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A logger interface that is used to transport logs to a destination
|
|
59
|
+
*/
|
|
60
|
+
export interface ILogTransport extends LogTransportConfigBase {
|
|
61
|
+
/**
|
|
62
|
+
* Inbound log event to transport.
|
|
63
|
+
*/
|
|
64
|
+
log: (logInfo: StructuredLog) => void;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A Logger is a service that can receive log messages.
|
|
68
|
+
*/
|
|
69
|
+
export interface ILogger {
|
|
70
|
+
startTimer(): Profiler;
|
|
71
|
+
child(metadata?: Metadata, name?: string): ILogger;
|
|
72
|
+
log: LogMethod;
|
|
73
|
+
debug: LogLevelMethod;
|
|
74
|
+
info: LogLevelMethod;
|
|
75
|
+
warn: LogLevelMethod;
|
|
76
|
+
error: LogLevelMethod;
|
|
77
|
+
}
|
|
78
78
|
//# sourceMappingURL=logger.d.ts.map
|
package/lib/types/logger.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LogLevel = void 0;
|
|
4
|
-
var LogLevel;
|
|
5
|
-
(function (LogLevel) {
|
|
6
|
-
LogLevel["Debug"] = "debug";
|
|
7
|
-
LogLevel["Info"] = "info";
|
|
8
|
-
LogLevel["Warn"] = "warn";
|
|
9
|
-
LogLevel["Error"] = "error";
|
|
10
|
-
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogLevel = void 0;
|
|
4
|
+
var LogLevel;
|
|
5
|
+
(function (LogLevel) {
|
|
6
|
+
LogLevel["Debug"] = "debug";
|
|
7
|
+
LogLevel["Info"] = "info";
|
|
8
|
+
LogLevel["Warn"] = "warn";
|
|
9
|
+
LogLevel["Error"] = "error";
|
|
10
|
+
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
11
11
|
//# sourceMappingURL=logger.js.map
|
package/lib/types/reporter.d.ts
CHANGED
|
@@ -1,155 +1,155 @@
|
|
|
1
|
-
import { AmplifyReporterConfig } from '../reporters/amplifyReporter';
|
|
2
|
-
import { DatadogReporterConfig } from '../reporters/datadogReporter';
|
|
3
|
-
import { GTMReporterConfig } from '../reporters/gtmReporter';
|
|
4
|
-
import { LogReporterConfig } from '../reporters/logReporter';
|
|
5
|
-
import { LogLevel, Metadata } from './logger';
|
|
6
|
-
export declare type ReporterConfigurations = {
|
|
7
|
-
/**
|
|
8
|
-
* Log reporter configuration.
|
|
9
|
-
* If not set, it will default to everything enabled.
|
|
10
|
-
*/
|
|
11
|
-
log?: boolean | LogReporterConfig;
|
|
12
|
-
/**
|
|
13
|
-
* Datadog reporter configuration.
|
|
14
|
-
* If not set, the datadog reporter will not be used.
|
|
15
|
-
*/
|
|
16
|
-
datadog?: DatadogReporterConfig;
|
|
17
|
-
/**
|
|
18
|
-
* Amplify/Pinpoint reporter configuration.
|
|
19
|
-
* If not set, the amplify reporter will not be used.
|
|
20
|
-
*/
|
|
21
|
-
amplify?: AmplifyReporterConfig;
|
|
22
|
-
/**
|
|
23
|
-
* Google Tag Manager reporter configuration.
|
|
24
|
-
* If not set, the gtm reporter will not be used.
|
|
25
|
-
*/
|
|
26
|
-
gtm?: true | GTMReporterConfig;
|
|
27
|
-
};
|
|
28
|
-
export declare type ReporterType = keyof ReporterConfigurations;
|
|
29
|
-
export declare type Metrics = Record<string, number>;
|
|
30
|
-
export declare type ServiceInfo = {
|
|
31
|
-
/** The Application's name. */
|
|
32
|
-
service: string;
|
|
33
|
-
/** The Application's Environment */
|
|
34
|
-
environment: string;
|
|
35
|
-
/** The Application's Version. */
|
|
36
|
-
version: string;
|
|
37
|
-
/**
|
|
38
|
-
* Default metadata to add to Reporter events.
|
|
39
|
-
*/
|
|
40
|
-
defaultMetadata?: Metadata;
|
|
41
|
-
/**
|
|
42
|
-
* The min log level for logs to be sent to the logger.
|
|
43
|
-
*/
|
|
44
|
-
logLevel?: LogLevel;
|
|
45
|
-
/**
|
|
46
|
-
* The min event level for events to be sent to reporters.
|
|
47
|
-
*/
|
|
48
|
-
eventLevel?: LogLevel;
|
|
49
|
-
};
|
|
50
|
-
export declare type ReportUser = {
|
|
51
|
-
id: string;
|
|
52
|
-
email?: string;
|
|
53
|
-
username?: string;
|
|
54
|
-
name?: string;
|
|
55
|
-
};
|
|
56
|
-
export declare type ReportError = Error | string;
|
|
57
|
-
export interface ReporterFilters {
|
|
58
|
-
/**
|
|
59
|
-
* Send only to these Reporters.
|
|
60
|
-
*/
|
|
61
|
-
toReporters?: ReporterType[];
|
|
62
|
-
/**
|
|
63
|
-
* Don't send to these Reporters.
|
|
64
|
-
*/
|
|
65
|
-
excludeReporters?: ReporterType[];
|
|
66
|
-
}
|
|
67
|
-
export interface ReporterEvent extends ReporterFilters {
|
|
68
|
-
/**
|
|
69
|
-
* The Severity of this event.
|
|
70
|
-
*/
|
|
71
|
-
level?: LogLevel;
|
|
72
|
-
/**
|
|
73
|
-
* The event message/name.
|
|
74
|
-
*/
|
|
75
|
-
message: string;
|
|
76
|
-
/**
|
|
77
|
-
* Event metadata.
|
|
78
|
-
*/
|
|
79
|
-
metadata?: Metadata | undefined;
|
|
80
|
-
/**
|
|
81
|
-
* Event tags, if supported by the Reporter. (Otherwise, they will be added to metadata)
|
|
82
|
-
*/
|
|
83
|
-
tags?: Metadata | undefined;
|
|
84
|
-
/**
|
|
85
|
-
* Event metrics, if supported by the Reporter. (Otherwise, they will be added to metadata)
|
|
86
|
-
* Metrics are numbers, and are used for aggregations.
|
|
87
|
-
*/
|
|
88
|
-
metrics?: Metrics | undefined;
|
|
89
|
-
}
|
|
90
|
-
export interface TrackedReporterEvent extends ReporterEvent {
|
|
91
|
-
/**
|
|
92
|
-
* The time this event was created.
|
|
93
|
-
*/
|
|
94
|
-
occurred: Date;
|
|
95
|
-
}
|
|
96
|
-
export interface ReporterBreadcrumb extends ReporterFilters {
|
|
97
|
-
/**
|
|
98
|
-
* The breadcrumb event message/name.
|
|
99
|
-
*/
|
|
100
|
-
message: string;
|
|
101
|
-
/**
|
|
102
|
-
* The category of this breadcrumb (Useful for filtering out in specific reporters).
|
|
103
|
-
*/
|
|
104
|
-
category?: string | undefined;
|
|
105
|
-
/**
|
|
106
|
-
* Breadcrumb metadata.
|
|
107
|
-
*/
|
|
108
|
-
metadata?: Metadata | undefined;
|
|
109
|
-
}
|
|
110
|
-
export interface ReporterConfigBase {
|
|
111
|
-
/**
|
|
112
|
-
* Enable/Disable reporter endpoints from being called.
|
|
113
|
-
*/
|
|
114
|
-
endpoints?: {
|
|
115
|
-
trackEvent?: boolean;
|
|
116
|
-
addMetadata?: boolean;
|
|
117
|
-
addBreadcrumb?: boolean;
|
|
118
|
-
setUser?: boolean;
|
|
119
|
-
setRouteName?: boolean;
|
|
120
|
-
setPageName?: boolean;
|
|
121
|
-
reportError?: boolean;
|
|
122
|
-
recordSession?: boolean;
|
|
123
|
-
recordSessionStop?: boolean;
|
|
124
|
-
};
|
|
125
|
-
/**
|
|
126
|
-
* The min event level for events to be sent to the reporter.
|
|
127
|
-
*/
|
|
128
|
-
eventLevel?: LogLevel;
|
|
129
|
-
/**
|
|
130
|
-
* Categories of breadcrumbs to ignore sending to the reporter.
|
|
131
|
-
* This is useful to prevent data of no use for that reporter.
|
|
132
|
-
*/
|
|
133
|
-
ignoreBreadcrumbCategories?: string[];
|
|
134
|
-
/**
|
|
135
|
-
* Ignore specific metadata keys from being sent to the reporter.
|
|
136
|
-
* This can be a regular expression, or a string to exact match.
|
|
137
|
-
* This is useful to prevent data of no use for the reporter, or if the data keys are too long.
|
|
138
|
-
*/
|
|
139
|
-
ignoreMetadataPatterns?: (string | RegExp)[];
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* A Reporter is a service that can receive Analytics data.
|
|
143
|
-
*/
|
|
144
|
-
export interface IReporter extends ReporterConfigBase {
|
|
145
|
-
trackEvent(event: ReporterEvent): void;
|
|
146
|
-
addBreadcrumb(breadcrumb: ReporterBreadcrumb): void;
|
|
147
|
-
addMetadata(metadata: Metadata): void;
|
|
148
|
-
setUser(user: ReportUser | null): void;
|
|
149
|
-
setRouteName(routeName: string): void;
|
|
150
|
-
setPageName(pageName: string): void;
|
|
151
|
-
reportError?(error: ReportError, metadata?: Metadata): void;
|
|
152
|
-
recordSession?(): void;
|
|
153
|
-
recordSessionStop?(): void;
|
|
154
|
-
}
|
|
1
|
+
import { AmplifyReporterConfig } from '../reporters/amplifyReporter';
|
|
2
|
+
import { DatadogReporterConfig } from '../reporters/datadogReporter';
|
|
3
|
+
import { GTMReporterConfig } from '../reporters/gtmReporter';
|
|
4
|
+
import { LogReporterConfig } from '../reporters/logReporter';
|
|
5
|
+
import { LogLevel, Metadata } from './logger';
|
|
6
|
+
export declare type ReporterConfigurations = {
|
|
7
|
+
/**
|
|
8
|
+
* Log reporter configuration.
|
|
9
|
+
* If not set, it will default to everything enabled.
|
|
10
|
+
*/
|
|
11
|
+
log?: boolean | LogReporterConfig;
|
|
12
|
+
/**
|
|
13
|
+
* Datadog reporter configuration.
|
|
14
|
+
* If not set, the datadog reporter will not be used.
|
|
15
|
+
*/
|
|
16
|
+
datadog?: DatadogReporterConfig;
|
|
17
|
+
/**
|
|
18
|
+
* Amplify/Pinpoint reporter configuration.
|
|
19
|
+
* If not set, the amplify reporter will not be used.
|
|
20
|
+
*/
|
|
21
|
+
amplify?: AmplifyReporterConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Google Tag Manager reporter configuration.
|
|
24
|
+
* If not set, the gtm reporter will not be used.
|
|
25
|
+
*/
|
|
26
|
+
gtm?: true | GTMReporterConfig;
|
|
27
|
+
};
|
|
28
|
+
export declare type ReporterType = keyof ReporterConfigurations;
|
|
29
|
+
export declare type Metrics = Record<string, number>;
|
|
30
|
+
export declare type ServiceInfo = {
|
|
31
|
+
/** The Application's name. */
|
|
32
|
+
service: string;
|
|
33
|
+
/** The Application's Environment */
|
|
34
|
+
environment: string;
|
|
35
|
+
/** The Application's Version. */
|
|
36
|
+
version: string;
|
|
37
|
+
/**
|
|
38
|
+
* Default metadata to add to Reporter events.
|
|
39
|
+
*/
|
|
40
|
+
defaultMetadata?: Metadata;
|
|
41
|
+
/**
|
|
42
|
+
* The min log level for logs to be sent to the logger.
|
|
43
|
+
*/
|
|
44
|
+
logLevel?: LogLevel;
|
|
45
|
+
/**
|
|
46
|
+
* The min event level for events to be sent to reporters.
|
|
47
|
+
*/
|
|
48
|
+
eventLevel?: LogLevel;
|
|
49
|
+
};
|
|
50
|
+
export declare type ReportUser = {
|
|
51
|
+
id: string;
|
|
52
|
+
email?: string;
|
|
53
|
+
username?: string;
|
|
54
|
+
name?: string;
|
|
55
|
+
};
|
|
56
|
+
export declare type ReportError = Error | string;
|
|
57
|
+
export interface ReporterFilters {
|
|
58
|
+
/**
|
|
59
|
+
* Send only to these Reporters.
|
|
60
|
+
*/
|
|
61
|
+
toReporters?: ReporterType[];
|
|
62
|
+
/**
|
|
63
|
+
* Don't send to these Reporters.
|
|
64
|
+
*/
|
|
65
|
+
excludeReporters?: ReporterType[];
|
|
66
|
+
}
|
|
67
|
+
export interface ReporterEvent extends ReporterFilters {
|
|
68
|
+
/**
|
|
69
|
+
* The Severity of this event.
|
|
70
|
+
*/
|
|
71
|
+
level?: LogLevel;
|
|
72
|
+
/**
|
|
73
|
+
* The event message/name.
|
|
74
|
+
*/
|
|
75
|
+
message: string;
|
|
76
|
+
/**
|
|
77
|
+
* Event metadata.
|
|
78
|
+
*/
|
|
79
|
+
metadata?: Metadata | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Event tags, if supported by the Reporter. (Otherwise, they will be added to metadata)
|
|
82
|
+
*/
|
|
83
|
+
tags?: Metadata | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Event metrics, if supported by the Reporter. (Otherwise, they will be added to metadata)
|
|
86
|
+
* Metrics are numbers, and are used for aggregations.
|
|
87
|
+
*/
|
|
88
|
+
metrics?: Metrics | undefined;
|
|
89
|
+
}
|
|
90
|
+
export interface TrackedReporterEvent extends ReporterEvent {
|
|
91
|
+
/**
|
|
92
|
+
* The time this event was created.
|
|
93
|
+
*/
|
|
94
|
+
occurred: Date;
|
|
95
|
+
}
|
|
96
|
+
export interface ReporterBreadcrumb extends ReporterFilters {
|
|
97
|
+
/**
|
|
98
|
+
* The breadcrumb event message/name.
|
|
99
|
+
*/
|
|
100
|
+
message: string;
|
|
101
|
+
/**
|
|
102
|
+
* The category of this breadcrumb (Useful for filtering out in specific reporters).
|
|
103
|
+
*/
|
|
104
|
+
category?: string | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Breadcrumb metadata.
|
|
107
|
+
*/
|
|
108
|
+
metadata?: Metadata | undefined;
|
|
109
|
+
}
|
|
110
|
+
export interface ReporterConfigBase {
|
|
111
|
+
/**
|
|
112
|
+
* Enable/Disable reporter endpoints from being called.
|
|
113
|
+
*/
|
|
114
|
+
endpoints?: {
|
|
115
|
+
trackEvent?: boolean;
|
|
116
|
+
addMetadata?: boolean;
|
|
117
|
+
addBreadcrumb?: boolean;
|
|
118
|
+
setUser?: boolean;
|
|
119
|
+
setRouteName?: boolean;
|
|
120
|
+
setPageName?: boolean;
|
|
121
|
+
reportError?: boolean;
|
|
122
|
+
recordSession?: boolean;
|
|
123
|
+
recordSessionStop?: boolean;
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* The min event level for events to be sent to the reporter.
|
|
127
|
+
*/
|
|
128
|
+
eventLevel?: LogLevel;
|
|
129
|
+
/**
|
|
130
|
+
* Categories of breadcrumbs to ignore sending to the reporter.
|
|
131
|
+
* This is useful to prevent data of no use for that reporter.
|
|
132
|
+
*/
|
|
133
|
+
ignoreBreadcrumbCategories?: string[];
|
|
134
|
+
/**
|
|
135
|
+
* Ignore specific metadata keys from being sent to the reporter.
|
|
136
|
+
* This can be a regular expression, or a string to exact match.
|
|
137
|
+
* This is useful to prevent data of no use for the reporter, or if the data keys are too long.
|
|
138
|
+
*/
|
|
139
|
+
ignoreMetadataPatterns?: (string | RegExp)[];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* A Reporter is a service that can receive Analytics data.
|
|
143
|
+
*/
|
|
144
|
+
export interface IReporter extends ReporterConfigBase {
|
|
145
|
+
trackEvent(event: ReporterEvent): void;
|
|
146
|
+
addBreadcrumb(breadcrumb: ReporterBreadcrumb): void;
|
|
147
|
+
addMetadata(metadata: Metadata): void;
|
|
148
|
+
setUser(user: ReportUser | null): void;
|
|
149
|
+
setRouteName(routeName: string): void;
|
|
150
|
+
setPageName(pageName: string): void;
|
|
151
|
+
reportError?(error: ReportError, metadata?: Metadata): void;
|
|
152
|
+
recordSession?(): void;
|
|
153
|
+
recordSessionStop?(): void;
|
|
154
|
+
}
|
|
155
155
|
//# sourceMappingURL=reporter.d.ts.map
|
package/lib/types/reporter.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
//# sourceMappingURL=reporter.js.map
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IReporter, Metadata } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Recursively filter reporter metadata.
|
|
4
|
-
* @param metadata Deep Metadata to filter.
|
|
5
|
-
* @param reporter Reporter with filter config.
|
|
6
|
-
* @param prefix Prefix for recusring nested metadata.
|
|
7
|
-
* @returns Filtered metadata.
|
|
8
|
-
*/
|
|
9
|
-
export declare function filterReporterMetadata<TMetadata extends Metadata | undefined>(metadata: TMetadata, reporter: Pick<IReporter, 'ignoreMetadataPatterns'>, prefix?: string): TMetadata;
|
|
1
|
+
import { IReporter, Metadata } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Recursively filter reporter metadata.
|
|
4
|
+
* @param metadata Deep Metadata to filter.
|
|
5
|
+
* @param reporter Reporter with filter config.
|
|
6
|
+
* @param prefix Prefix for recusring nested metadata.
|
|
7
|
+
* @returns Filtered metadata.
|
|
8
|
+
*/
|
|
9
|
+
export declare function filterReporterMetadata<TMetadata extends Metadata | undefined>(metadata: TMetadata, reporter: Pick<IReporter, 'ignoreMetadataPatterns'>, prefix?: string): TMetadata;
|
|
10
10
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.filterReporterMetadata = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Recursively filter reporter metadata.
|
|
6
|
-
* @param metadata Deep Metadata to filter.
|
|
7
|
-
* @param reporter Reporter with filter config.
|
|
8
|
-
* @param prefix Prefix for recusring nested metadata.
|
|
9
|
-
* @returns Filtered metadata.
|
|
10
|
-
*/
|
|
11
|
-
function filterReporterMetadata(metadata, reporter, prefix) {
|
|
12
|
-
const ignorePatterns = reporter.ignoreMetadataPatterns;
|
|
13
|
-
// No metadata, or no patterns.
|
|
14
|
-
if (metadata === undefined || !ignorePatterns) {
|
|
15
|
-
return metadata;
|
|
16
|
-
}
|
|
17
|
-
const entries = Object.entries(metadata);
|
|
18
|
-
return Object.fromEntries(entries
|
|
19
|
-
.filter(([key]) => {
|
|
20
|
-
const fullKey = prefix ? prefix + key : key;
|
|
21
|
-
return !ignorePatterns.some((pattern) => typeof pattern === 'string' ? pattern === fullKey : pattern.test(fullKey));
|
|
22
|
-
})
|
|
23
|
-
.map(([key, value]) => {
|
|
24
|
-
if (typeof value === 'object' && value !== null) {
|
|
25
|
-
const fullKey = prefix ? prefix + key : key;
|
|
26
|
-
return [key, filterReporterMetadata(value, reporter, `${fullKey}.`)];
|
|
27
|
-
}
|
|
28
|
-
return [key, value];
|
|
29
|
-
}));
|
|
30
|
-
}
|
|
31
|
-
exports.filterReporterMetadata = filterReporterMetadata;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.filterReporterMetadata = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Recursively filter reporter metadata.
|
|
6
|
+
* @param metadata Deep Metadata to filter.
|
|
7
|
+
* @param reporter Reporter with filter config.
|
|
8
|
+
* @param prefix Prefix for recusring nested metadata.
|
|
9
|
+
* @returns Filtered metadata.
|
|
10
|
+
*/
|
|
11
|
+
function filterReporterMetadata(metadata, reporter, prefix) {
|
|
12
|
+
const ignorePatterns = reporter.ignoreMetadataPatterns;
|
|
13
|
+
// No metadata, or no patterns.
|
|
14
|
+
if (metadata === undefined || !ignorePatterns) {
|
|
15
|
+
return metadata;
|
|
16
|
+
}
|
|
17
|
+
const entries = Object.entries(metadata);
|
|
18
|
+
return Object.fromEntries(entries
|
|
19
|
+
.filter(([key]) => {
|
|
20
|
+
const fullKey = prefix ? prefix + key : key;
|
|
21
|
+
return !ignorePatterns.some((pattern) => typeof pattern === 'string' ? pattern === fullKey : pattern.test(fullKey));
|
|
22
|
+
})
|
|
23
|
+
.map(([key, value]) => {
|
|
24
|
+
if (typeof value === 'object' && value !== null) {
|
|
25
|
+
const fullKey = prefix ? prefix + key : key;
|
|
26
|
+
return [key, filterReporterMetadata(value, reporter, `${fullKey}.`)];
|
|
27
|
+
}
|
|
28
|
+
return [key, value];
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
exports.filterReporterMetadata = filterReporterMetadata;
|
|
32
32
|
//# sourceMappingURL=utils.js.map
|
package/lib/utils.test.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=utils.test.d.ts.map
|