@crimson-education/browser-logger 5.0.3 → 5.0.5

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 CHANGED
@@ -260,6 +260,28 @@ Check out the [`DatadogReporterConfig`](https://github.com/crimson-education/bro
260
260
 
261
261
  This automatically adds a Datadog Log Transport that transmits Log data to Datadog, this can be customized in `DatadogReporterConfig` with `logTransport`, or disabled by setting `logTransport` to `false`.
262
262
 
263
+ If you need to keep browser logs while disabling RUM, or vice versa, use the independent Datadog switches:
264
+
265
+ ```ts
266
+ Logger.init({
267
+ reporters: {
268
+ datadog: {
269
+ applicationId: config.datadogApplicationId,
270
+ clientToken: config.datadogClientToken,
271
+ site: config.datadogSite,
272
+ logsEnabled: true,
273
+ rumEnabled: false,
274
+ logTransport: {
275
+ level: Logger.LogLevel.Info,
276
+ },
277
+ },
278
+ },
279
+ });
280
+ ```
281
+
282
+ `logsEnabled` only affects Datadog Browser Logs and the Datadog log transport. `rumEnabled` only affects Datadog Browser
283
+ RUM, browser actions, view tracking, error reporting, and replay controls.
284
+
263
285
  #### PostHog
264
286
 
265
287
  To configure PostHog, this requires at least `apiKey` and `apiHost`.
@@ -284,6 +306,39 @@ Logger.init({
284
306
  `replaySampleRate` is provided as a compatibility alias for existing Datadog-style config. Values less than or equal to `0` disable session recording at startup, while `Logger.recordSession()` can still enable replay later for allowlisted users.
285
307
 
286
308
  When multiple repos write into the same PostHog project, prefer setting `application` at `Logger.init(...)`. This ensures a stable product-level dimension is present on all events independently of each app's `service` name.
309
+
310
+ #### Filtering technical analytics noise
311
+
312
+ `Logger.trackEvent()` still fans out to every enabled reporter. If a repo wants to keep technical log noise in the log
313
+ reporter while excluding it from Datadog RUM or PostHog, configure `ignoreTrackEventPatterns` explicitly in that
314
+ reporter.
315
+
316
+ Example:
317
+
318
+ ```ts
319
+ Logger.init({
320
+ reporters: {
321
+ datadog: {
322
+ applicationId: config.datadogApplicationId,
323
+ clientToken: config.datadogClientToken,
324
+ site: config.datadogSite,
325
+ ignoreTrackEventPatterns: [
326
+ 'TIM_LOGIN_SUCCESS',
327
+ /^TIM_MESSAGE_RECEIVED:/,
328
+ /^feedback fetch (triggered|deduped inflight|skipped ttl|success)$/,
329
+ ],
330
+ },
331
+ posthog: {
332
+ apiKey: config.posthogApiKey,
333
+ apiHost: config.posthogApiHost,
334
+ ignoreTrackEventPatterns: [
335
+ 'TIM_LOGIN_SUCCESS',
336
+ /^TIM_MESSAGE_RECEIVED:/,
337
+ ],
338
+ },
339
+ },
340
+ });
341
+ ```
287
342
  #### Google Tag Manager
288
343
 
289
344
  To configure GTM, you will need to have loaded the GTM script into your App.
@@ -0,0 +1,2 @@
1
+ export declare function shouldSuppressAnalyticsEvent(message: string, patterns?: (string | RegExp)[]): boolean;
2
+ //# sourceMappingURL=analyticsNoise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyticsNoise.d.ts","sourceRoot":"","sources":["../../src/reporters/analyticsNoise.ts"],"names":[],"mappings":"AAQA,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAMrG"}
@@ -0,0 +1,13 @@
1
+ function patternMatches(message, pattern) {
2
+ if (typeof pattern === 'string') {
3
+ return message === pattern;
4
+ }
5
+ return pattern.test(message);
6
+ }
7
+ export function shouldSuppressAnalyticsEvent(message, patterns) {
8
+ if (!patterns?.length) {
9
+ return false;
10
+ }
11
+ return patterns.some((pattern) => patternMatches(message, pattern));
12
+ }
13
+ //# sourceMappingURL=analyticsNoise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyticsNoise.js","sourceRoot":"","sources":["../../src/reporters/analyticsNoise.ts"],"names":[],"mappings":"AAAA,SAAS,cAAc,CAAC,OAAe,EAAE,OAAwB;IAC/D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,OAAO,KAAK,OAAO,CAAC;KAC5B;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAe,EAAE,QAA8B;IAC1F,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -4,6 +4,16 @@ import { LogsInitConfiguration } from '@datadog/browser-logs';
4
4
  import { DefaultPrivacyLevel, RumInitConfiguration } from '@datadog/browser-rum';
5
5
  import { DatadogLogTransportConfig } from '../logger/datadogTransport';
6
6
  export interface DatadogReporterConfig extends ReporterConfigBase {
7
+ /**
8
+ * Enable Datadog Browser Logs initialization and log transport wiring.
9
+ * Defaults to true.
10
+ */
11
+ logsEnabled?: boolean;
12
+ /**
13
+ * Enable Datadog Browser RUM initialization.
14
+ * Defaults to true.
15
+ */
16
+ rumEnabled?: boolean;
7
17
  /** The RUM application ID. */
8
18
  applicationId: string;
9
19
  /** A Datadog client token (Generated in the RUM Page) */
@@ -1 +1 @@
1
- {"version":3,"file":"datadogReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/datadogReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAMT,WAAW,EACX,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAA4B,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAc,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,EAAE,yBAAyB,EAAoB,MAAM,4BAA4B,CAAC;AA2FzF,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;;OAIG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAE/C;;OAEG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEhD;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IACnD;;OAEG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAErD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7C,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACzC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;CACtC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAuI3F"}
1
+ {"version":3,"file":"datadogReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/datadogReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAMT,WAAW,EACX,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAA4B,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAc,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,EAAE,yBAAyB,EAAoB,MAAM,4BAA4B,CAAC;AA4FzF,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;;OAIG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAE/C;;OAEG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEhD;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IACnD;;OAEG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAErD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7C,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACzC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;CACtC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAqM3F"}
@@ -2,6 +2,7 @@ import { datadogLogs, HandlerType } from '@datadog/browser-logs';
2
2
  import { datadogRum } from '@datadog/browser-rum';
3
3
  import { logTransports } from '../logger';
4
4
  import { datadogTransport } from '../logger/datadogTransport';
5
+ import { shouldSuppressAnalyticsEvent } from './analyticsNoise';
5
6
  // User frustration detection for Datadog Gen2
6
7
  class DatadogFrustrationDetector {
7
8
  config;
@@ -81,12 +82,14 @@ class DatadogFrustrationDetector {
81
82
  }
82
83
  export function datadogReporter(info, config) {
83
84
  const isLocalhost = window.location.hostname === 'localhost';
85
+ const logsEnabled = config.logsEnabled ?? true;
86
+ const rumEnabled = config.rumEnabled ?? true;
84
87
  // Don't forward error logs by default, do enable the log transport by default
85
88
  // forwardErrorsToLogs incorrectly is called forwardConsoleLogs, this is for backwards compatibility
86
89
  const forwardErrorsToLogs = config.forwardConsoleLogs ?? false;
87
90
  const enableLogTransport = config.logTransport !== false;
88
91
  // Only init datadog logs if something is using it.
89
- if (forwardErrorsToLogs === true || enableLogTransport === true) {
92
+ if (logsEnabled && (forwardErrorsToLogs === true || enableLogTransport === true)) {
90
93
  datadogLogs.init({
91
94
  site: config.site,
92
95
  clientToken: config.clientToken,
@@ -104,37 +107,57 @@ export function datadogReporter(info, config) {
104
107
  datadogLogs.logger.setHandler(HandlerType.http);
105
108
  }
106
109
  // Add the datadog log transport
107
- if (enableLogTransport) {
110
+ if (logsEnabled && enableLogTransport) {
108
111
  logTransports.push(datadogTransport(typeof config.logTransport === 'boolean' ? {} : config.logTransport));
109
112
  }
110
- datadogRum.init({
111
- enableExperimentalFeatures: ['feature_flags'],
112
- site: config.site,
113
- clientToken: config.clientToken,
114
- applicationId: config.applicationId,
115
- service: info.service,
116
- env: info.environment,
117
- version: config.version ?? info.version,
118
- usePartitionedCrossSiteSessionCookie: config.usePartitionedCrossSiteSessionCookie,
119
- // Use correct Datadog v6 SDK options
120
- sessionSampleRate: config.sessionSampleRate ?? config.rumSampleRate ?? config.sampleRate ?? 100,
121
- sessionReplaySampleRate: config.sessionReplaySampleRate ?? config.replaySampleRate ?? 100,
122
- // Track interactions (Note: trackFrustrations is not available in Datadog v6)
123
- trackUserInteractions: config.trackUserInteractions ?? config.trackInteractions ?? false,
124
- useSecureSessionCookie: config.useSecureSessionCookie ?? !isLocalhost,
125
- // Note: useCrossSiteSessionCookie is not available in newer Datadog versions
126
- trackSessionAcrossSubdomains: config.trackSessionAcrossSubdomains,
127
- trackViewsManually: config.trackViewsManually ?? false,
128
- actionNameAttribute: config.actionNameAttribute ?? 'data-analytics-name',
129
- beforeSend: config.beforeSend,
130
- defaultPrivacyLevel: config.defaultPrivacyLevel ?? 'mask-user-input',
131
- allowedTracingUrls: config.allowedTracingUrls ?? config.allowedTrackingOrigins,
132
- excludedActivityUrls: config.excludedActivityUrls,
133
- });
134
- // Initialize frustration detector
135
- new DatadogFrustrationDetector(config);
113
+ if (rumEnabled) {
114
+ datadogRum.init({
115
+ enableExperimentalFeatures: ['feature_flags'],
116
+ site: config.site,
117
+ clientToken: config.clientToken,
118
+ applicationId: config.applicationId,
119
+ service: info.service,
120
+ env: info.environment,
121
+ version: config.version ?? info.version,
122
+ usePartitionedCrossSiteSessionCookie: config.usePartitionedCrossSiteSessionCookie,
123
+ // Use correct Datadog v6 SDK options
124
+ sessionSampleRate: config.sessionSampleRate ?? config.rumSampleRate ?? config.sampleRate ?? 100,
125
+ sessionReplaySampleRate: config.sessionReplaySampleRate ?? config.replaySampleRate ?? 100,
126
+ // Track interactions (Note: trackFrustrations is not available in Datadog v6)
127
+ trackUserInteractions: config.trackUserInteractions ?? config.trackInteractions ?? false,
128
+ useSecureSessionCookie: config.useSecureSessionCookie ?? !isLocalhost,
129
+ // Note: useCrossSiteSessionCookie is not available in newer Datadog versions
130
+ trackSessionAcrossSubdomains: config.trackSessionAcrossSubdomains,
131
+ trackViewsManually: config.trackViewsManually ?? false,
132
+ actionNameAttribute: config.actionNameAttribute ?? 'data-analytics-name',
133
+ beforeSend: config.beforeSend,
134
+ defaultPrivacyLevel: config.defaultPrivacyLevel ?? 'mask-user-input',
135
+ allowedTracingUrls: config.allowedTracingUrls ?? config.allowedTrackingOrigins,
136
+ excludedActivityUrls: config.excludedActivityUrls,
137
+ });
138
+ // Initialize frustration detector
139
+ new DatadogFrustrationDetector(config);
140
+ }
141
+ function normalizeErrorForLogs(error) {
142
+ if (error instanceof Error) {
143
+ return {
144
+ message: error.message,
145
+ name: error.name,
146
+ stack: error.stack,
147
+ };
148
+ }
149
+ return {
150
+ message: String(error),
151
+ };
152
+ }
136
153
  const reporter = {
137
154
  trackEvent: function (event) {
155
+ if (!rumEnabled) {
156
+ return;
157
+ }
158
+ if (shouldSuppressAnalyticsEvent(event.message, config.ignoreTrackEventPatterns)) {
159
+ return;
160
+ }
138
161
  datadogRum.addAction(event.message, {
139
162
  level: event.level,
140
163
  ...event.metadata,
@@ -143,6 +166,9 @@ export function datadogReporter(info, config) {
143
166
  });
144
167
  },
145
168
  addBreadcrumb: function (breadcrumb) {
169
+ if (!rumEnabled) {
170
+ return;
171
+ }
146
172
  datadogRum.addAction(breadcrumb.message, {
147
173
  ...breadcrumb.metadata,
148
174
  category: breadcrumb.category,
@@ -151,19 +177,30 @@ export function datadogReporter(info, config) {
151
177
  addMetadata: function (metadata) {
152
178
  for (const [key, value] of Object.entries(metadata)) {
153
179
  if (value !== null) {
154
- datadogRum.setGlobalContextProperty(key, value);
155
- // Note, this will add duplicate context data in logs.
156
- // But this is valuable for logs ingested outside of the browser logger.
157
- datadogLogs.setGlobalContextProperty(key, value);
180
+ if (rumEnabled) {
181
+ datadogRum.setGlobalContextProperty(key, value);
182
+ }
183
+ if (logsEnabled) {
184
+ // Note, this will add duplicate context data in logs.
185
+ // But this is valuable for logs ingested outside of the browser logger.
186
+ datadogLogs.setGlobalContextProperty(key, value);
187
+ }
158
188
  }
159
189
  else {
160
- datadogRum.removeGlobalContextProperty(key);
161
- // But this is valuable for logs ingested outside of the browser logger.
162
- datadogLogs.removeGlobalContextProperty(key);
190
+ if (rumEnabled) {
191
+ datadogRum.removeGlobalContextProperty(key);
192
+ }
193
+ if (logsEnabled) {
194
+ // But this is valuable for logs ingested outside of the browser logger.
195
+ datadogLogs.removeGlobalContextProperty(key);
196
+ }
163
197
  }
164
198
  }
165
199
  },
166
200
  setUser: function (user) {
201
+ if (!rumEnabled) {
202
+ return;
203
+ }
167
204
  if (user) {
168
205
  datadogRum.setUser({
169
206
  ...user,
@@ -177,9 +214,15 @@ export function datadogReporter(info, config) {
177
214
  }
178
215
  },
179
216
  setRouteName: function (routeName) {
217
+ if (!rumEnabled) {
218
+ return;
219
+ }
180
220
  reporter.addMetadata({ routeName });
181
221
  },
182
222
  setPageName: function (pageName) {
223
+ if (!rumEnabled) {
224
+ return;
225
+ }
183
226
  if (config.trackViewsManually) {
184
227
  datadogRum.startView(pageName);
185
228
  }
@@ -188,15 +231,35 @@ export function datadogReporter(info, config) {
188
231
  }
189
232
  },
190
233
  reportError: function (error, metadata) {
191
- datadogRum.addError(error, metadata);
234
+ if (rumEnabled) {
235
+ datadogRum.addError(error, metadata);
236
+ return;
237
+ }
238
+ if (logsEnabled) {
239
+ const normalized = normalizeErrorForLogs(error);
240
+ datadogLogs.logger.error(normalized.message, {
241
+ ...metadata,
242
+ errorName: normalized.name,
243
+ errorStack: normalized.stack,
244
+ });
245
+ }
192
246
  },
193
247
  reportFeatureFlag: function (flag) {
248
+ if (!rumEnabled) {
249
+ return;
250
+ }
194
251
  datadogRum.addFeatureFlagEvaluation(flag.name, flag.value);
195
252
  },
196
253
  recordSession: function () {
254
+ if (!rumEnabled) {
255
+ return;
256
+ }
197
257
  datadogRum.startSessionReplayRecording();
198
258
  },
199
259
  recordSessionStop: function () {
260
+ if (!rumEnabled) {
261
+ return;
262
+ }
200
263
  datadogRum.stopSessionReplayRecording();
201
264
  },
202
265
  };
@@ -1 +1 @@
1
- {"version":3,"file":"datadogReporter.js","sourceRoot":"","sources":["../../src/reporters/datadogReporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datadogReporter.js","sourceRoot":"","sources":["../../src/reporters/datadogReporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=datadogReporter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datadogReporter.test.d.ts","sourceRoot":"","sources":["../../src/reporters/datadogReporter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,163 @@
1
+ jest.mock('@datadog/browser-rum', () => ({
2
+ __esModule: true,
3
+ datadogRum: {
4
+ init: jest.fn(),
5
+ addAction: jest.fn(),
6
+ setGlobalContextProperty: jest.fn(),
7
+ removeGlobalContextProperty: jest.fn(),
8
+ setUser: jest.fn(),
9
+ startView: jest.fn(),
10
+ addError: jest.fn(),
11
+ addFeatureFlagEvaluation: jest.fn(),
12
+ startSessionReplayRecording: jest.fn(),
13
+ stopSessionReplayRecording: jest.fn(),
14
+ },
15
+ DefaultPrivacyLevel: {},
16
+ }));
17
+ jest.mock('@datadog/browser-logs', () => ({
18
+ __esModule: true,
19
+ HandlerType: {
20
+ http: 'http',
21
+ },
22
+ datadogLogs: {
23
+ init: jest.fn(),
24
+ setGlobalContextProperty: jest.fn(),
25
+ removeGlobalContextProperty: jest.fn(),
26
+ logger: {
27
+ setHandler: jest.fn(),
28
+ debug: jest.fn(),
29
+ info: jest.fn(),
30
+ warn: jest.fn(),
31
+ error: jest.fn(),
32
+ },
33
+ },
34
+ }));
35
+ jest.mock('../logger/datadogTransport', () => ({
36
+ __esModule: true,
37
+ datadogTransport: jest.fn(() => ({ log: jest.fn() })),
38
+ }));
39
+ import { datadogLogs } from '@datadog/browser-logs';
40
+ import { datadogRum } from '@datadog/browser-rum';
41
+ import { LogLevel } from '../types';
42
+ import { datadogReporter } from './datadogReporter';
43
+ const datadogLogsMock = datadogLogs;
44
+ const datadogRumMock = datadogRum;
45
+ describe('datadogReporter', () => {
46
+ beforeEach(() => {
47
+ jest.clearAllMocks();
48
+ Object.defineProperty(globalThis, 'window', {
49
+ configurable: true,
50
+ value: {
51
+ location: {
52
+ hostname: 'app.crimsoneducation.org',
53
+ },
54
+ },
55
+ });
56
+ });
57
+ it('can initialize logs without rum', () => {
58
+ const reporter = datadogReporter({
59
+ service: 'crimson-app-frontend',
60
+ application: 'crimson-app',
61
+ environment: 'production',
62
+ version: '1.2.3',
63
+ }, {
64
+ applicationId: 'app-id',
65
+ clientToken: 'client-token',
66
+ site: 'datadoghq.eu',
67
+ rumEnabled: false,
68
+ logsEnabled: true,
69
+ });
70
+ expect(datadogLogsMock.init).toHaveBeenCalled();
71
+ expect(datadogRumMock.init).not.toHaveBeenCalled();
72
+ reporter.addMetadata({
73
+ namespace: 'production',
74
+ clearMe: null,
75
+ });
76
+ expect(datadogLogsMock.setGlobalContextProperty).toHaveBeenCalledWith('namespace', 'production');
77
+ expect(datadogLogsMock.removeGlobalContextProperty).toHaveBeenCalledWith('clearMe');
78
+ expect(datadogRumMock.setGlobalContextProperty).not.toHaveBeenCalled();
79
+ reporter.reportError?.(new Error('broken'), {
80
+ routeName: 'messages',
81
+ });
82
+ expect(datadogLogsMock.logger.error).toHaveBeenCalledWith('broken', expect.objectContaining({
83
+ routeName: 'messages',
84
+ errorName: 'Error',
85
+ errorStack: expect.any(String),
86
+ }));
87
+ expect(datadogRumMock.addError).not.toHaveBeenCalled();
88
+ });
89
+ it('can initialize rum without logs', () => {
90
+ const reporter = datadogReporter({
91
+ service: 'student-center-frontend',
92
+ application: 'core-student-center',
93
+ environment: 'production',
94
+ version: '2.0.0',
95
+ }, {
96
+ applicationId: 'app-id',
97
+ clientToken: 'client-token',
98
+ site: 'datadoghq.eu',
99
+ rumEnabled: true,
100
+ logsEnabled: false,
101
+ });
102
+ expect(datadogRumMock.init).toHaveBeenCalled();
103
+ expect(datadogLogsMock.init).not.toHaveBeenCalled();
104
+ reporter.trackEvent({
105
+ message: 'message-sent',
106
+ metadata: {
107
+ userId: '123',
108
+ },
109
+ });
110
+ expect(datadogRumMock.addAction).toHaveBeenCalledWith('message-sent', expect.objectContaining({ userId: '123' }));
111
+ reporter.reportError?.(new Error('broken'));
112
+ expect(datadogRumMock.addError).toHaveBeenCalled();
113
+ expect(datadogLogsMock.logger.error).not.toHaveBeenCalled();
114
+ });
115
+ it('suppresses configured trackEvent messages from rum actions', () => {
116
+ const reporter = datadogReporter({
117
+ service: 'crimson-app-frontend',
118
+ application: 'crimson-app',
119
+ environment: 'production',
120
+ version: '1.2.3',
121
+ }, {
122
+ applicationId: 'app-id',
123
+ clientToken: 'client-token',
124
+ site: 'datadoghq.eu',
125
+ ignoreTrackEventPatterns: ['TIM_LOGIN_SUCCESS'],
126
+ });
127
+ reporter.trackEvent({
128
+ message: 'TIM_LOGIN_SUCCESS',
129
+ level: LogLevel.Info,
130
+ metadata: {
131
+ userId: '123',
132
+ },
133
+ });
134
+ expect(datadogRumMock.addAction).not.toHaveBeenCalled();
135
+ reporter.trackEvent({
136
+ message: 'message-sent',
137
+ level: LogLevel.Info,
138
+ });
139
+ expect(datadogRumMock.addAction).toHaveBeenCalledWith('message-sent', expect.objectContaining({
140
+ level: LogLevel.Info,
141
+ }));
142
+ });
143
+ it('does not suppress trackEvent messages unless configured', () => {
144
+ const reporter = datadogReporter({
145
+ service: 'crimson-app-frontend',
146
+ application: 'crimson-app',
147
+ environment: 'production',
148
+ version: '1.2.3',
149
+ }, {
150
+ applicationId: 'app-id',
151
+ clientToken: 'client-token',
152
+ site: 'datadoghq.eu',
153
+ });
154
+ reporter.trackEvent({
155
+ message: 'TIM_LOGIN_SUCCESS',
156
+ level: LogLevel.Info,
157
+ });
158
+ expect(datadogRumMock.addAction).toHaveBeenCalledWith('TIM_LOGIN_SUCCESS', expect.objectContaining({
159
+ level: LogLevel.Info,
160
+ }));
161
+ });
162
+ });
163
+ //# sourceMappingURL=datadogReporter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datadogReporter.test.js","sourceRoot":"","sources":["../../src/reporters/datadogReporter.test.ts"],"names":[],"mappings":"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"}
@@ -1 +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,KAAK,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,CAuH3F"}
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;AAKlB,KAAK,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;AAgLD,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,CA0H3F"}
@@ -1,4 +1,5 @@
1
1
  import posthog from 'posthog-js';
2
+ import { shouldSuppressAnalyticsEvent } from './analyticsNoise';
2
3
  function hasActiveUser(user) {
3
4
  if (!user) {
4
5
  return false;
@@ -15,6 +16,17 @@ function getCurrentUrl(captureResult) {
15
16
  }
16
17
  return undefined;
17
18
  }
19
+ function getStringProperty(properties, key) {
20
+ const value = properties?.[key];
21
+ return typeof value === 'string' && value ? value : undefined;
22
+ }
23
+ function routeMatchesPath(routeName, urlPath) {
24
+ const escapedRoute = routeName
25
+ .split('/')
26
+ .map((segment) => (segment.startsWith(':') ? '[^/]+' : segment.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')))
27
+ .join('/');
28
+ return new RegExp(`^${escapedRoute}/?$`).test(urlPath);
29
+ }
18
30
  function getUserRoleValue(user, metadata) {
19
31
  const candidate = user?.userRole ?? user?.role ?? user?.userRoles ?? user?.roles ?? metadata.userRole ?? metadata.userRoles;
20
32
  return normalizeValue(candidate);
@@ -24,7 +36,14 @@ function buildCompatibilityProperties(info, metadata, user, captureResult) {
24
36
  const baseOrigin = typeof window !== 'undefined' ? window.location.origin : 'https://example.invalid';
25
37
  const urlObject = url ? new URL(url, baseOrigin) : null;
26
38
  const urlPath = urlObject?.pathname;
27
- const pageName = typeof metadata.pageName === 'string' ? metadata.pageName : undefined;
39
+ const isPageview = captureResult.event === '$pageview';
40
+ const capturedPageName = getStringProperty(captureResult.properties, 'pageName');
41
+ const metadataPageName = typeof metadata.pageName === 'string' ? metadata.pageName : undefined;
42
+ const pageName = isPageview ? capturedPageName ?? urlPath : metadataPageName;
43
+ const capturedRouteName = getStringProperty(captureResult.properties, 'routeName');
44
+ const metadataRouteName = typeof metadata.routeName === 'string' ? metadata.routeName : undefined;
45
+ const routeName = capturedRouteName ??
46
+ (urlPath && metadataRouteName && routeMatchesPath(metadataRouteName, urlPath) ? metadataRouteName : undefined);
28
47
  return {
29
48
  app_name: String(metadata.application ?? info.application ?? info.service),
30
49
  domain: String(metadata.domain ?? urlObject?.hostname ?? (typeof window !== 'undefined' ? window.location.hostname : '')),
@@ -37,6 +56,7 @@ function buildCompatibilityProperties(info, metadata, user, captureResult) {
37
56
  user_role: getUserRoleValue(user, metadata),
38
57
  url,
39
58
  url_path: urlPath,
59
+ url_path_group: routeName ?? (isPageview ? urlPath : undefined),
40
60
  view_id: posthog.getPageViewId(),
41
61
  view_name: pageName,
42
62
  browser: captureResult.properties?.$browser,
@@ -153,6 +173,9 @@ export function posthogReporter(info, config) {
153
173
  const reporter = {
154
174
  ...config,
155
175
  trackEvent: function (event) {
176
+ if (shouldSuppressAnalyticsEvent(event.message, config.ignoreTrackEventPatterns)) {
177
+ return;
178
+ }
156
179
  posthog.capture(event.message, {
157
180
  message: event.message,
158
181
  level: event.level,
@@ -209,13 +232,13 @@ export function posthogReporter(info, config) {
209
232
  reporter.addMetadata({ routeName });
210
233
  },
211
234
  setPageName: function (pageName) {
235
+ reporter.addMetadata({ pageName });
212
236
  if (manualPageviews) {
213
237
  posthog.capture('$pageview', {
214
238
  pageName,
239
+ routeName: typeof currentMetadata.routeName === 'string' ? currentMetadata.routeName : undefined,
215
240
  });
216
- return;
217
241
  }
218
- reporter.addMetadata({ pageName });
219
242
  },
220
243
  reportError: function (error, metadata) {
221
244
  posthog.captureException(error, {