@crimson-education/browser-logger 5.0.1-beta.3 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +127 -73
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +47 -19
- package/lib/index.js.map +1 -1
- package/lib/logger/consoleTransport.d.ts +1 -1
- package/lib/logger/consoleTransport.d.ts.map +1 -1
- package/lib/logger/consoleTransport.js +22 -16
- package/lib/logger/consoleTransport.js.map +1 -1
- package/lib/logger/datadogTransport.d.ts +1 -1
- package/lib/logger/datadogTransport.d.ts.map +1 -1
- package/lib/logger/datadogTransport.js +8 -4
- package/lib/logger/datadogTransport.js.map +1 -1
- package/lib/logger/index.js +49 -29
- package/lib/logger/index.js.map +1 -1
- package/lib/logger/index.test.js +18 -16
- package/lib/logger/index.test.js.map +1 -1
- package/lib/logger/utils.js +9 -4
- package/lib/logger/utils.js.map +1 -1
- package/lib/reporters/amplifyReporter.d.ts +86 -0
- package/lib/reporters/amplifyReporter.d.ts.map +1 -0
- package/lib/reporters/amplifyReporter.js +225 -0
- package/lib/reporters/amplifyReporter.js.map +1 -0
- package/lib/reporters/amplifyReporter.test.d.ts +2 -0
- package/lib/reporters/amplifyReporter.test.d.ts.map +1 -0
- package/lib/reporters/amplifyReporter.test.js +51 -0
- package/lib/reporters/amplifyReporter.test.js.map +1 -0
- package/lib/reporters/datadogReporter.d.ts +1 -13
- package/lib/reporters/datadogReporter.d.ts.map +1 -1
- package/lib/reporters/datadogReporter.js +49 -122
- package/lib/reporters/datadogReporter.js.map +1 -1
- package/lib/reporters/gtmReporter.d.ts +1 -1
- package/lib/reporters/gtmReporter.d.ts.map +1 -1
- package/lib/reporters/gtmReporter.js +5 -1
- package/lib/reporters/gtmReporter.js.map +1 -1
- package/lib/reporters/index.js +71 -46
- package/lib/reporters/index.js.map +1 -1
- package/lib/reporters/logReporter.js +34 -24
- package/lib/reporters/logReporter.js.map +1 -1
- package/lib/reporters/posthogReporter.d.ts +51 -0
- package/lib/reporters/posthogReporter.d.ts.map +1 -0
- package/lib/reporters/posthogReporter.js +254 -0
- package/lib/reporters/posthogReporter.js.map +1 -0
- package/lib/reporters/posthogReporter.test.d.ts +2 -0
- package/lib/reporters/posthogReporter.test.d.ts.map +1 -0
- package/lib/reporters/posthogReporter.test.js +197 -0
- package/lib/reporters/posthogReporter.test.js.map +1 -0
- package/lib/types/index.js +18 -2
- package/lib/types/index.js.map +1 -1
- package/lib/types/logger.d.ts +3 -3
- package/lib/types/logger.d.ts.map +1 -1
- package/lib/types/logger.js +5 -2
- package/lib/types/logger.js.map +1 -1
- package/lib/types/reporter.d.ts +20 -6
- package/lib/types/reporter.d.ts.map +1 -1
- package/lib/types/reporter.js +2 -1
- package/lib/utils.js +5 -1
- package/lib/utils.js.map +1 -1
- package/lib/utils.test.js +4 -2
- package/lib/utils.test.js.map +1 -1
- package/package.json +17 -11
- package/src/index.ts +11 -0
- package/src/reporters/amplifyReporter.test.ts +61 -0
- package/src/reporters/amplifyReporter.ts +344 -0
- package/src/reporters/datadogReporter.ts +22 -133
- package/src/reporters/posthogReporter.test.ts +244 -0
- package/src/reporters/posthogReporter.ts +374 -0
- package/src/types/reporter.ts +16 -0
package/lib/reporters/index.js
CHANGED
|
@@ -1,54 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordSessionStop = exports.recordSession = exports.reportFeatureFlag = exports.reportError = exports.setPageName = exports.setRouteName = exports.setUser = exports.addMetadata = exports.addBreadcrumb = exports.getLastTrackedEvent = exports.trackEventSinceLastAction = exports.trackEvent = exports.setEventLevel = exports.globalEventLevel = exports.reporters = void 0;
|
|
4
|
+
const utils_1 = require("../logger/utils");
|
|
5
|
+
const utils_2 = require("../utils");
|
|
6
|
+
exports.reporters = {};
|
|
5
7
|
/**
|
|
6
8
|
* Sets the global event level.
|
|
7
9
|
*/
|
|
8
|
-
|
|
9
|
-
globalEventLevel = level
|
|
10
|
+
function setEventLevel(level) {
|
|
11
|
+
exports.globalEventLevel = level !== null && level !== void 0 ? level : undefined;
|
|
10
12
|
}
|
|
13
|
+
exports.setEventLevel = setEventLevel;
|
|
11
14
|
/**
|
|
12
15
|
* Gets reporters, optionally with filters.
|
|
13
16
|
* @param filters Filters to remove or specify specific reporters.
|
|
14
17
|
* @returns Selected reporters, or all registered reporters.
|
|
15
18
|
*/
|
|
16
19
|
function getReporters(filters) {
|
|
17
|
-
let result = Object.entries(reporters);
|
|
18
|
-
if (filters
|
|
19
|
-
result = result.filter(([key]) => !filters
|
|
20
|
+
let result = Object.entries(exports.reporters);
|
|
21
|
+
if (filters === null || filters === void 0 ? void 0 : filters.excludeReporters) {
|
|
22
|
+
result = result.filter(([key]) => { var _a; return !((_a = filters === null || filters === void 0 ? void 0 : filters.excludeReporters) === null || _a === void 0 ? void 0 : _a.includes(key)); });
|
|
20
23
|
}
|
|
21
|
-
if (filters
|
|
22
|
-
result = result.filter(([key]) => filters
|
|
24
|
+
if (filters === null || filters === void 0 ? void 0 : filters.toReporters) {
|
|
25
|
+
result = result.filter(([key]) => { var _a; return (_a = filters === null || filters === void 0 ? void 0 : filters.toReporters) === null || _a === void 0 ? void 0 : _a.includes(key); });
|
|
23
26
|
}
|
|
24
27
|
return result.map(([, reporter]) => reporter);
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
30
|
* Tracks an Analytics event.
|
|
28
31
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
function trackEvent(event) {
|
|
33
|
+
var _a;
|
|
34
|
+
if (exports.globalEventLevel && event.level && !(0, utils_1.isAboveLevel)(event.level, exports.globalEventLevel)) {
|
|
31
35
|
return;
|
|
32
36
|
}
|
|
33
37
|
for (const reporter of getReporters(event)) {
|
|
34
|
-
if (reporter.endpoints
|
|
38
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.trackEvent) === false) {
|
|
35
39
|
continue;
|
|
36
40
|
}
|
|
37
|
-
else if (reporter.eventLevel && event.level && !isAboveLevel(event.level, reporter.eventLevel)) {
|
|
41
|
+
else if (reporter.eventLevel && event.level && !(0, utils_1.isAboveLevel)(event.level, reporter.eventLevel)) {
|
|
38
42
|
return;
|
|
39
43
|
}
|
|
40
44
|
const reporterEvent = { ...event };
|
|
41
|
-
reporterEvent.metadata = filterReporterMetadata(event.metadata, reporter);
|
|
42
|
-
reporterEvent.metrics = filterReporterMetadata(event.metrics, reporter);
|
|
43
|
-
reporterEvent.tags = filterReporterMetadata(event.tags, reporter);
|
|
45
|
+
reporterEvent.metadata = (0, utils_2.filterReporterMetadata)(event.metadata, reporter);
|
|
46
|
+
reporterEvent.metrics = (0, utils_2.filterReporterMetadata)(event.metrics, reporter);
|
|
47
|
+
reporterEvent.tags = (0, utils_2.filterReporterMetadata)(event.tags, reporter);
|
|
44
48
|
reporter.trackEvent(reporterEvent);
|
|
45
49
|
}
|
|
46
50
|
}
|
|
51
|
+
exports.trackEvent = trackEvent;
|
|
47
52
|
/**
|
|
48
53
|
* Tracks an Analytics event, recording the time since the last event, if available.
|
|
49
54
|
*/
|
|
50
|
-
|
|
51
|
-
if (globalEventLevel && event.level && !isAboveLevel(event.level, globalEventLevel)) {
|
|
55
|
+
function trackEventSinceLastAction(event) {
|
|
56
|
+
if (exports.globalEventLevel && event.level && !(0, utils_1.isAboveLevel)(event.level, exports.globalEventLevel)) {
|
|
52
57
|
return;
|
|
53
58
|
}
|
|
54
59
|
const lastEvent = getLastTrackedEvent();
|
|
@@ -68,10 +73,11 @@ export function trackEventSinceLastAction(event) {
|
|
|
68
73
|
}
|
|
69
74
|
sessionStorage.setItem('loggerLastEvent', JSON.stringify({ ...event, occurred: new Date() }));
|
|
70
75
|
}
|
|
76
|
+
exports.trackEventSinceLastAction = trackEventSinceLastAction;
|
|
71
77
|
/**
|
|
72
78
|
* Gets the last tracked event, if available.
|
|
73
79
|
*/
|
|
74
|
-
|
|
80
|
+
function getLastTrackedEvent() {
|
|
75
81
|
const eventStr = sessionStorage.getItem('loggerLastEvent');
|
|
76
82
|
if (!eventStr)
|
|
77
83
|
return null;
|
|
@@ -79,126 +85,145 @@ export function getLastTrackedEvent() {
|
|
|
79
85
|
event.occurred = new Date(event.occurred);
|
|
80
86
|
return event;
|
|
81
87
|
}
|
|
88
|
+
exports.getLastTrackedEvent = getLastTrackedEvent;
|
|
82
89
|
/**
|
|
83
90
|
* Breadcrumbs to create a trail of events that happened prior to an issue.
|
|
84
91
|
* These events are very similar to traditional logs, but can record more rich structured data.
|
|
85
92
|
*/
|
|
86
|
-
|
|
93
|
+
function addBreadcrumb(breadcrumb) {
|
|
94
|
+
var _a, _b;
|
|
87
95
|
for (const reporter of getReporters(breadcrumb)) {
|
|
88
|
-
if (reporter.endpoints
|
|
96
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.addBreadcrumb) === false) {
|
|
89
97
|
continue;
|
|
90
98
|
}
|
|
91
|
-
else if (breadcrumb.category && reporter.ignoreBreadcrumbCategories
|
|
99
|
+
else if (breadcrumb.category && ((_b = reporter.ignoreBreadcrumbCategories) === null || _b === void 0 ? void 0 : _b.includes(breadcrumb.category))) {
|
|
92
100
|
continue;
|
|
93
101
|
}
|
|
94
102
|
const reporterBreadcrumb = { ...breadcrumb };
|
|
95
|
-
reporterBreadcrumb.metadata = filterReporterMetadata(breadcrumb.metadata, reporter);
|
|
103
|
+
reporterBreadcrumb.metadata = (0, utils_2.filterReporterMetadata)(breadcrumb.metadata, reporter);
|
|
96
104
|
reporter.addBreadcrumb(reporterBreadcrumb);
|
|
97
105
|
}
|
|
98
106
|
}
|
|
107
|
+
exports.addBreadcrumb = addBreadcrumb;
|
|
99
108
|
/**
|
|
100
109
|
* Adds global metadata to all events and logs.
|
|
101
110
|
* @param metadata Metadata to add.
|
|
102
111
|
* @param filters Optional filters to specify which reporters to add metadata to.
|
|
103
112
|
*/
|
|
104
|
-
|
|
113
|
+
function addMetadata(metadata, filters) {
|
|
114
|
+
var _a;
|
|
105
115
|
for (const reporter of getReporters(filters)) {
|
|
106
|
-
if (reporter.endpoints
|
|
116
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.addMetadata) === false) {
|
|
107
117
|
continue;
|
|
108
118
|
}
|
|
109
|
-
reporter.addMetadata(filterReporterMetadata(metadata, reporter));
|
|
119
|
+
reporter.addMetadata((0, utils_2.filterReporterMetadata)(metadata, reporter));
|
|
110
120
|
}
|
|
111
121
|
}
|
|
122
|
+
exports.addMetadata = addMetadata;
|
|
112
123
|
/**
|
|
113
124
|
* Sets the user information in Analytics.
|
|
114
125
|
* @param user User information, or null to clear.
|
|
115
126
|
* @param filters Optional filters to specify which reporters to set the user for.
|
|
116
127
|
*/
|
|
117
|
-
|
|
128
|
+
function setUser(user, filters) {
|
|
129
|
+
var _a;
|
|
118
130
|
for (const reporter of getReporters(filters)) {
|
|
119
|
-
if (reporter.endpoints
|
|
131
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.setUser) === false) {
|
|
120
132
|
continue;
|
|
121
133
|
}
|
|
122
134
|
reporter.setUser(user);
|
|
123
135
|
}
|
|
124
136
|
}
|
|
137
|
+
exports.setUser = setUser;
|
|
125
138
|
/**
|
|
126
139
|
* Sets the route name in Analytics.
|
|
127
140
|
* Some Analytics services use this differentiate SPA Route vs Page changes.
|
|
128
141
|
* @param routeName Name of the Route.
|
|
129
142
|
* @param filters Optional filters to specify which reporters to set the route name for.
|
|
130
143
|
*/
|
|
131
|
-
|
|
144
|
+
function setRouteName(routeName, filters) {
|
|
145
|
+
var _a;
|
|
132
146
|
for (const reporter of getReporters(filters)) {
|
|
133
|
-
if (reporter.endpoints
|
|
147
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.setRouteName) === false) {
|
|
134
148
|
continue;
|
|
135
149
|
}
|
|
136
150
|
reporter.setRouteName(routeName);
|
|
137
151
|
}
|
|
138
152
|
}
|
|
153
|
+
exports.setRouteName = setRouteName;
|
|
139
154
|
/**
|
|
140
155
|
* Sets the page name in Analytics.
|
|
141
156
|
* @param pageName Name of the Page.
|
|
142
157
|
* @param filters Optional filters to specify which reporters to set the page name for.
|
|
143
158
|
*/
|
|
144
|
-
|
|
159
|
+
function setPageName(pageName, filters) {
|
|
160
|
+
var _a;
|
|
145
161
|
for (const reporter of getReporters(filters)) {
|
|
146
|
-
if (reporter.endpoints
|
|
162
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.setPageName) === false) {
|
|
147
163
|
continue;
|
|
148
164
|
}
|
|
149
165
|
reporter.setPageName(pageName);
|
|
150
166
|
}
|
|
151
167
|
}
|
|
168
|
+
exports.setPageName = setPageName;
|
|
152
169
|
/**
|
|
153
170
|
* Reports an Error in Reporters that support error tracking.
|
|
154
171
|
* @param error Error data.
|
|
155
172
|
* @param metadata Metadata to add to the error.
|
|
156
173
|
* @param filters Optional filters to specify which reporters to report the error to.
|
|
157
174
|
*/
|
|
158
|
-
|
|
175
|
+
function reportError(error, metadata, filters) {
|
|
176
|
+
var _a, _b;
|
|
159
177
|
for (const reporter of getReporters(filters)) {
|
|
160
|
-
if (reporter.endpoints
|
|
178
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.reportError) === false) {
|
|
161
179
|
continue;
|
|
162
180
|
}
|
|
163
|
-
reporter.reportError
|
|
181
|
+
(_b = reporter.reportError) === null || _b === void 0 ? void 0 : _b.call(reporter, error, (0, utils_2.filterReporterMetadata)(metadata, reporter));
|
|
164
182
|
}
|
|
165
183
|
}
|
|
184
|
+
exports.reportError = reportError;
|
|
166
185
|
/**
|
|
167
186
|
* Report a feature flag evaluation, e.g. for surfacing in Datadog RUM.
|
|
168
187
|
*
|
|
169
188
|
* @param flag Details about the feature flag evaluation
|
|
170
189
|
* @param filters Filters to specify which reporters to start a session recording for.
|
|
171
190
|
*/
|
|
172
|
-
|
|
191
|
+
function reportFeatureFlag(flag, filters) {
|
|
192
|
+
var _a, _b;
|
|
173
193
|
for (const reporter of getReporters(filters)) {
|
|
174
|
-
if (reporter.endpoints
|
|
194
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.reportFeatureFlag) === false) {
|
|
175
195
|
continue;
|
|
176
196
|
}
|
|
177
|
-
reporter.reportFeatureFlag
|
|
197
|
+
(_b = reporter.reportFeatureFlag) === null || _b === void 0 ? void 0 : _b.call(reporter, flag);
|
|
178
198
|
}
|
|
179
199
|
}
|
|
200
|
+
exports.reportFeatureFlag = reportFeatureFlag;
|
|
180
201
|
/**
|
|
181
202
|
* Starts a session recording in Analytics, e.g. RUM Session Replay
|
|
182
203
|
* @param filters Optional filters to specify which reporters to start a session recording for.
|
|
183
204
|
*/
|
|
184
|
-
|
|
205
|
+
function recordSession(filters) {
|
|
206
|
+
var _a, _b;
|
|
185
207
|
for (const reporter of getReporters(filters)) {
|
|
186
|
-
if (reporter.endpoints
|
|
208
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.recordSession) === false) {
|
|
187
209
|
continue;
|
|
188
210
|
}
|
|
189
|
-
reporter.recordSession
|
|
211
|
+
(_b = reporter.recordSession) === null || _b === void 0 ? void 0 : _b.call(reporter);
|
|
190
212
|
}
|
|
191
213
|
}
|
|
214
|
+
exports.recordSession = recordSession;
|
|
192
215
|
/**
|
|
193
216
|
* Stops a session recording in Analytics, e.g. RUM Session Replay
|
|
194
217
|
* @param filters Optional filters to specify which reporters to stop a session recording for.
|
|
195
218
|
*/
|
|
196
|
-
|
|
219
|
+
function recordSessionStop(filters) {
|
|
220
|
+
var _a, _b;
|
|
197
221
|
for (const reporter of getReporters(filters)) {
|
|
198
|
-
if (reporter.endpoints
|
|
222
|
+
if (((_a = reporter.endpoints) === null || _a === void 0 ? void 0 : _a.recordSessionStop) === false) {
|
|
199
223
|
continue;
|
|
200
224
|
}
|
|
201
|
-
reporter.recordSessionStop
|
|
225
|
+
(_b = reporter.recordSessionStop) === null || _b === void 0 ? void 0 : _b.call(reporter);
|
|
202
226
|
}
|
|
203
227
|
}
|
|
228
|
+
exports.recordSessionStop = recordSessionStop;
|
|
204
229
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logReporter = void 0;
|
|
4
|
+
const logger_1 = require("../logger");
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
function logReporter(info, config) {
|
|
4
7
|
const reporter = {
|
|
5
8
|
...config,
|
|
6
9
|
trackEvent(event) {
|
|
10
|
+
var _a, _b, _c, _d, _e;
|
|
7
11
|
// config.trackEventLevel and config.level overrides event.level here, as it is an override, while config.trackEventDefaultLevel is a fallback.
|
|
8
|
-
const level = event.level
|
|
9
|
-
logger.log(level, event.message, {
|
|
10
|
-
...(event.metadata
|
|
11
|
-
...(event.metrics
|
|
12
|
-
...(event.tags
|
|
12
|
+
const level = (_b = (_a = event.level) !== null && _a !== void 0 ? _a : config.trackEventDefaultLevel) !== null && _b !== void 0 ? _b : types_1.LogLevel.Info;
|
|
13
|
+
logger_1.logger.log(level, event.message, {
|
|
14
|
+
...((_c = event.metadata) !== null && _c !== void 0 ? _c : {}),
|
|
15
|
+
...((_d = event.metrics) !== null && _d !== void 0 ? _d : {}),
|
|
16
|
+
...((_e = event.tags) !== null && _e !== void 0 ? _e : {}),
|
|
13
17
|
});
|
|
14
18
|
},
|
|
15
19
|
addBreadcrumb(breadcrumb) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
var _a, _b;
|
|
21
|
+
const level = (_a = config.addBreadcrumbLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Info;
|
|
22
|
+
logger_1.logger.log(level, breadcrumb.message, {
|
|
23
|
+
...((_b = breadcrumb.metadata) !== null && _b !== void 0 ? _b : {}),
|
|
19
24
|
category: breadcrumb.category,
|
|
20
25
|
});
|
|
21
26
|
},
|
|
22
27
|
addMetadata(metadata) {
|
|
23
|
-
Object.assign(
|
|
28
|
+
Object.assign(logger_1.globalMetadata, metadata);
|
|
24
29
|
},
|
|
25
30
|
setUser(user) {
|
|
26
|
-
Object.assign(
|
|
31
|
+
Object.assign(logger_1.globalMetadata, { user });
|
|
27
32
|
},
|
|
28
33
|
setRouteName(routeName) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
var _a;
|
|
35
|
+
Object.assign(logger_1.globalMetadata, { routeName });
|
|
36
|
+
const level = (_a = config.setRouteNameLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Debug;
|
|
37
|
+
logger_1.logger.log(level, `Route changed to ${routeName}`);
|
|
32
38
|
},
|
|
33
39
|
setPageName(pageName) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
var _a;
|
|
41
|
+
Object.assign(logger_1.globalMetadata, { pageName });
|
|
42
|
+
const level = (_a = config.setPageNameLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Debug;
|
|
43
|
+
logger_1.logger.log(level, `Page changed to ${pageName}`);
|
|
37
44
|
},
|
|
38
45
|
reportError(error, metadata) {
|
|
39
|
-
logger.error(typeof error === 'string' ? error : error.message, { ...metadata, error });
|
|
46
|
+
logger_1.logger.error(typeof error === 'string' ? error : error.message, { ...metadata, error });
|
|
40
47
|
},
|
|
41
48
|
recordSession() {
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
var _a;
|
|
50
|
+
const level = (_a = config.recordSessionLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Debug;
|
|
51
|
+
logger_1.logger.log(level, 'Recording Session');
|
|
44
52
|
},
|
|
45
53
|
recordSessionStop() {
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
var _a;
|
|
55
|
+
const level = (_a = config.recordSessionStopLevel) !== null && _a !== void 0 ? _a : types_1.LogLevel.Debug;
|
|
56
|
+
logger_1.logger.log(level, 'Recording Session Stopping');
|
|
48
57
|
},
|
|
49
58
|
};
|
|
50
59
|
return reporter;
|
|
51
60
|
}
|
|
61
|
+
exports.logReporter = logReporter;
|
|
52
62
|
//# sourceMappingURL=logReporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logReporter.js","sourceRoot":"","sources":["../../src/reporters/logReporter.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"logReporter.js","sourceRoot":"","sources":["../../src/reporters/logReporter.ts"],"names":[],"mappings":";;;AAAA,sCAAwE;AACxE,oCAAgF;AAmChF,SAAgB,WAAW,CAAC,IAAiB,EAAE,MAAyB;IACtE,MAAM,QAAQ,GAAc;QAC1B,GAAG,MAAM;QACT,UAAU,CAAC,KAAK;;YACd,+IAA+I;YAC/I,MAAM,KAAK,GAAG,MAAA,MAAA,KAAK,CAAC,KAAK,mCAAI,MAAM,CAAC,sBAAsB,mCAAI,gBAAQ,CAAC,IAAI,CAAC;YAC5E,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;gBAC/B,GAAG,CAAC,MAAA,KAAK,CAAC,QAAQ,mCAAI,EAAE,CAAC;gBACzB,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;aACtB,CAAC,CAAC;QACL,CAAC;QACD,aAAa,CAAC,UAAU;;YACtB,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,kBAAkB,mCAAI,gBAAQ,CAAC,IAAI,CAAC;YACzD,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE;gBACpC,GAAG,CAAC,MAAA,UAAU,CAAC,QAAQ,mCAAI,EAAE,CAAC;gBAC9B,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,QAAQ;YAClB,MAAM,CAAC,MAAM,CAAC,uBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,IAAI;YACV,MAAM,CAAC,MAAM,CAAC,uBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,YAAY,CAAC,SAAS;;YACpB,MAAM,CAAC,MAAM,CAAC,uBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,iBAAiB,mCAAI,gBAAQ,CAAC,KAAK,CAAC;YACzD,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,oBAAoB,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,WAAW,CAAC,QAAQ;;YAClB,MAAM,CAAC,MAAM,CAAC,uBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,gBAAQ,CAAC,KAAK,CAAC;YACxD,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,WAAW,CAAC,KAAK,EAAE,QAAQ;YACzB,eAAM,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,aAAa;;YACX,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,kBAAkB,mCAAI,gBAAQ,CAAC,KAAK,CAAC;YAC1D,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACzC,CAAC;QACD,iBAAiB;;YACf,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,sBAAsB,mCAAI,gBAAQ,CAAC,KAAK,CAAC;YAC9D,eAAM,CAAC,GAAG,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAjDD,kCAiDC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { PostHogConfig, Properties } from 'posthog-js';
|
|
2
|
+
import { IReporter, Metadata, ReporterConfigBase, ServiceInfo } from '../types';
|
|
3
|
+
declare type PostHogReporterSdkConfig = Partial<Omit<PostHogConfig, 'api_host' | 'autocapture' | 'before_send' | 'bootstrap' | 'capture_pageleave' | 'capture_pageview' | 'cross_subdomain_cookie' | 'debug' | 'defaults' | 'disable_session_recording' | 'loaded' | 'person_profiles' | 'persistence' | 'persistence_name'>>;
|
|
4
|
+
export interface PostHogReporterConfig extends ReporterConfigBase {
|
|
5
|
+
/** The PostHog project API key. */
|
|
6
|
+
apiKey: string;
|
|
7
|
+
/** The PostHog ingest host, e.g. https://eu.i.posthog.com */
|
|
8
|
+
apiHost: string;
|
|
9
|
+
/** Optional PostHog bootstrap config. */
|
|
10
|
+
bootstrap?: PostHogConfig['bootstrap'];
|
|
11
|
+
/** Optional PostHog SDK defaults mode. */
|
|
12
|
+
defaults?: PostHogConfig['defaults'];
|
|
13
|
+
/** Optional PostHog before-send hook. */
|
|
14
|
+
beforeSend?: PostHogConfig['before_send'];
|
|
15
|
+
/** Controls PostHog autocapture. Defaults to true. */
|
|
16
|
+
autocapture?: PostHogConfig['autocapture'];
|
|
17
|
+
/** Controls automatic pageview capture. Defaults to history_change for SPAs. */
|
|
18
|
+
capturePageview?: PostHogConfig['capture_pageview'];
|
|
19
|
+
/** Controls automatic pageleave capture. Defaults to if_capture_pageview. */
|
|
20
|
+
capturePageleave?: PostHogConfig['capture_pageleave'];
|
|
21
|
+
/** Share cookies across subdomains. Defaults to true. */
|
|
22
|
+
crossSubdomainCookie?: PostHogConfig['cross_subdomain_cookie'];
|
|
23
|
+
/** PostHog persistence mode. */
|
|
24
|
+
persistence?: PostHogConfig['persistence'];
|
|
25
|
+
/** Optional persistence name. */
|
|
26
|
+
persistenceName?: PostHogConfig['persistence_name'];
|
|
27
|
+
/** Enable PostHog debug mode. */
|
|
28
|
+
debug?: PostHogConfig['debug'];
|
|
29
|
+
/** Controls when person processing happens. Defaults to identified_only. */
|
|
30
|
+
personProfiles?: PostHogConfig['person_profiles'];
|
|
31
|
+
/** Disable session recording at startup. */
|
|
32
|
+
disableSessionRecording?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Compatibility alias for Datadog-style replay gating.
|
|
35
|
+
* Values <= 0 disable recording at startup; values > 0 leave it enabled.
|
|
36
|
+
*/
|
|
37
|
+
replaySampleRate?: number;
|
|
38
|
+
/**
|
|
39
|
+
* When true, automatic pageview capture is disabled and `Logger.setPageName()`
|
|
40
|
+
* will emit manual `$pageview` events instead.
|
|
41
|
+
*/
|
|
42
|
+
trackViewsManually?: boolean;
|
|
43
|
+
/** Optional PostHog loaded callback. */
|
|
44
|
+
loaded?: PostHogConfig['loaded'];
|
|
45
|
+
/** Optional raw PostHog SDK overrides for advanced use cases. */
|
|
46
|
+
sdkConfig?: PostHogReporterSdkConfig;
|
|
47
|
+
}
|
|
48
|
+
export declare function normalizeProperties(metadata?: Metadata): Properties | undefined;
|
|
49
|
+
export declare function posthogReporter(info: ServiceInfo, config: PostHogReporterConfig): IReporter;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=posthogReporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posthogReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/posthogReporter.ts"],"names":[],"mappings":"AAAA,OAAgB,EAA+B,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EACL,SAAS,EACT,QAAQ,EAGR,kBAAkB,EAIlB,WAAW,EACZ,MAAM,UAAU,CAAC;AAIlB,aAAK,wBAAwB,GAAG,OAAO,CACrC,IAAI,CACF,aAAa,EACX,UAAU,GACV,aAAa,GACb,aAAa,GACb,WAAW,GACX,mBAAmB,GACnB,kBAAkB,GAClB,wBAAwB,GACxB,OAAO,GACP,UAAU,GACV,2BAA2B,GAC3B,QAAQ,GACR,iBAAiB,GACjB,aAAa,GACb,kBAAkB,CACrB,CACF,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,yCAAyC;IACzC,UAAU,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC1C,sDAAsD;IACtD,WAAW,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,gFAAgF;IAChF,eAAe,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACpD,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACtD,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC/D,gCAAgC;IAChC,WAAW,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,iCAAiC;IACjC,eAAe,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACpD,iCAAiC;IACjC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClD,4CAA4C;IAC5C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wCAAwC;IACxC,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,iEAAiE;IACjE,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAyJD,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAc/E;AAcD,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAkH3F"}
|