@crimson-education/browser-logger 1.7.2-beta → 2.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 CHANGED
@@ -8,7 +8,7 @@ An abstract logger and reporting utility for browser environments
8
8
  npm i @crimson-education/browser-logger
9
9
  ```
10
10
 
11
- or
11
+ or
12
12
 
13
13
  ```bash
14
14
  yarn add @crimson-education/browser-logger
@@ -25,14 +25,6 @@ Logger.init({
25
25
  service: 'browser-project',
26
26
  environment: config.environment,
27
27
  version: config.version,
28
- browserHistory: history,
29
-
30
- sentry: {
31
- dsn: config.sentryDsn,
32
- proxyUrl: config.sentryTunnelProxyUrl,
33
- release: config.sentryRelease,
34
- allowUrls: [/subdomain\.crimsoneducation\.org/],
35
- },
36
28
 
37
29
  datadog: {
38
30
  applicationId: config.datadogApplicationId,
package/lib/index.d.ts CHANGED
@@ -1,16 +1,13 @@
1
1
  import { ILogger, Metadata, ReportError, ReportUser, ServiceInfo } from './types';
2
2
  import { ReporterBreadcrumb, ReporterEvent, TrackedReporterEvent } from './reporters';
3
3
  import { DatadogReporterConfig } from './reporters/datadogReporter';
4
- import { SentryReporterConfig } from './reporters/sentryReporter';
5
4
  import { AmplifyReporterConfig } from './reporters/amplifyReporter';
6
5
  export * from './types';
7
6
  export declare let logger: ILogger | null;
8
7
  export declare type ReporterConfig = ServiceInfo & {
9
- sentry?: SentryReporterConfig;
10
8
  datadog?: DatadogReporterConfig;
11
9
  amplify?: AmplifyReporterConfig;
12
10
  gtm?: boolean;
13
- newrelic?: boolean;
14
11
  };
15
12
  export declare function init(config: ReporterConfig): void;
16
13
  export declare function trackEvent(event: ReporterEvent): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAa,kBAAkB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,EAAkC,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAkB,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlF,OAAO,EAAmB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAErF,cAAc,SAAS,CAAC;AAExB,eAAO,IAAI,MAAM,EAAE,OAAO,GAAG,IAAW,CAAC;AAEzC,oBAAY,cAAc,GAAG,WAAW,GAAG;IAEzC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAG9B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAGhC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAGhC,GAAG,CAAC,EAAE,OAAO,CAAC;IAGd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAMF,wBAAgB,IAAI,CAAC,MAAM,EAAE,cAAc,QA+B1C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAIrD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAIlE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAIpD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAIrD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAIpD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAIzE;AAED,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAIxC;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAgBpE;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,GAAG,IAAI,CAOjE;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,CAUtF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAa,kBAAkB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,EAAkC,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,EAAmB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAErF,cAAc,SAAS,CAAC;AAExB,eAAO,IAAI,MAAM,EAAE,OAAO,GAAG,IAAW,CAAC;AAEzC,oBAAY,cAAc,GAAG,WAAW,GAAG;IAEzC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAGhC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAGhC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAMF,wBAAgB,IAAI,CAAC,MAAM,EAAE,cAAc,QAuB1C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAIrD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAIlE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAIpD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAIrD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAIpD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAIlD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAIzE;AAED,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAIxC;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAgBpE;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,GAAG,IAAI,CAOjE;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,CAUtF"}
package/lib/index.js CHANGED
@@ -17,9 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.createLogger = exports.getLastTrackedEvent = exports.trackEventSinceLastAction = exports.recordSessionStop = exports.recordSession = exports.reportError = exports.setPageName = exports.setRouteName = exports.setUser = exports.addMetadata = exports.addBreadcrumb = exports.trackEvent = exports.init = exports.logger = void 0;
18
18
  const utils_1 = require("./utils");
19
19
  const datadogReporter_1 = require("./reporters/datadogReporter");
20
- const sentryReporter_1 = require("./reporters/sentryReporter");
21
20
  const gtmReporter_1 = require("./reporters/gtmReporter");
22
- const newrelicReporter_1 = require("./reporters/newrelicReporter");
23
21
  const amplifyReporter_1 = require("./reporters/amplifyReporter");
24
22
  __exportStar(require("./types"), exports);
25
23
  exports.logger = null;
@@ -28,9 +26,6 @@ let initialized = false;
28
26
  let ddInitialized = false;
29
27
  function init(config) {
30
28
  initialized = true;
31
- if (config.sentry) {
32
- reporters.push((0, sentryReporter_1.sentryReporter)(config, config.sentry));
33
- }
34
29
  if (config.datadog) {
35
30
  reporters.push((0, datadogReporter_1.datadogReporter)(config, config.datadog));
36
31
  ddInitialized = true;
@@ -41,9 +36,6 @@ function init(config) {
41
36
  if (config.gtm) {
42
37
  reporters.push((0, gtmReporter_1.gtmReporter)());
43
38
  }
44
- if (config.newrelic) {
45
- reporters.push((0, newrelicReporter_1.newrelicReporter)(config));
46
- }
47
39
  if (config.defaultMetadata) {
48
40
  for (const reporter of reporters) {
49
41
  reporter.addMetadata(config.defaultMetadata);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"amplifyReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,MAAM,GAAG,CAAC;AACjE,OAAO,EAAwB,WAAW,EAAE,MAAM,UAAU,CAAC;AAI7D,oBAAY,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,8BAA8B,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,aAAK,8BAA8B,GAAG;IACpC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAqG3F;AAED,aAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D;;GAEG;AAEH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,WAAW,UAAO,EAClB,cAAc,GAAE,MAAM,EAAO,GAC5B,YAAY,CAcd;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAE/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,SAAS,GAAE,MAAM,GAAG,SAAqB,EACzC,WAAW,UAAO,GACjB,YAAY,CAsBd;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE;;EAI7G"}
1
+ {"version":3,"file":"amplifyReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,MAAM,GAAG,CAAC;AACjE,OAAO,EAAwB,WAAW,EAAE,MAAM,UAAU,CAAC;AAI7D,oBAAY,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,8BAA8B,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,aAAK,8BAA8B,GAAG;IACpC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAyG3F;AAED,aAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D;;GAEG;AAEH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,WAAW,UAAO,EAClB,cAAc,GAAE,MAAM,EAAO,GAC5B,YAAY,CAcd;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAE/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,SAAS,GAAE,MAAM,GAAG,SAAqB,EACzC,WAAW,UAAO,GACjB,YAAY,CAsBd;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE;;EAI7G"}
@@ -8,8 +8,8 @@ function amplifyReporter(info, config) {
8
8
  auth_1.Auth.configure({
9
9
  region: config.region,
10
10
  identityPoolId: config.identityPoolId,
11
- ...(config.userPoolId && { userPoolId: config.userPoolId }),
12
- ...(config.userPoolWebClientId && { userPoolWebClientId: config.userPoolWebClientId }),
11
+ userPoolId: config.userPoolId,
12
+ userPoolWebClientId: config.userPoolWebClientId,
13
13
  });
14
14
  const allMetadata = asAttributeMap({
15
15
  appName: info.service,
@@ -69,6 +69,8 @@ function amplifyReporter(info, config) {
69
69
  Object.assign(allMetadata, asAttributeMap(metadata, true, config.ignoreMetadataPatterns));
70
70
  analytics_1.Analytics.updateEndpoint({
71
71
  attributes: allMetadata,
72
+ }).catch(() => {
73
+ // Swallow; see: https://crimsonhq.slack.com/archives/G4UN6Q4KF/p1648599302847539
72
74
  });
73
75
  },
74
76
  setUser: function (user) {
@@ -83,6 +85,8 @@ function amplifyReporter(info, config) {
83
85
  username: user.username,
84
86
  })
85
87
  : {},
88
+ }).catch(() => {
89
+ // Swallow; see: https://crimsonhq.slack.com/archives/G4UN6Q4KF/p1648599302847539
86
90
  });
87
91
  },
88
92
  setRouteName: function (routeName) {
@@ -1 +1 @@
1
- {"version":3,"file":"amplifyReporter.js","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amplifyReporter.js","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crimson-education/browser-logger",
3
- "version": "1.7.2-beta",
3
+ "version": "2.0.1",
4
4
  "description": "An abstract logger and reporting utility for browser environments",
5
5
  "scripts": {
6
6
  "prepack": "npm run build",
@@ -28,26 +28,24 @@
28
28
  "homepage": "https://github.com/crimson-education/browser-logger#readme",
29
29
  "dependencies": {
30
30
  "@aws-amplify/analytics": "^5.2.1",
31
- "@aws-amplify/auth": "^3.4.34",
31
+ "@aws-amplify/auth": "^4.4.3",
32
32
  "@datadog/browser-logs": "^4.4.0",
33
- "@datadog/browser-rum": "^4.4.0",
34
- "@sentry/react": "^6.17.9",
35
- "@sentry/tracing": "^6.17.9"
33
+ "@datadog/browser-rum": "^4.4.0"
36
34
  },
37
35
  "devDependencies": {
38
36
  "@crimson-education/eslint-config": "^2.1.0",
39
- "@types/new-relic-browser": "^0.1212.1",
40
37
  "@types/jest": "^27.0.3",
41
38
  "eslint": "^7.20.0",
42
39
  "eslint-config-prettier": "^8.3.0",
43
40
  "eslint-plugin-jest": "^25.3.2",
44
- "rimraf": "^3.0.2",
45
- "typescript": "^4.1.2",
46
41
  "jest": "^27.4.3",
47
- "ts-jest": "^27.1.1"
42
+ "rimraf": "^3.0.2",
43
+ "ts-jest": "^27.1.1",
44
+ "typescript": "^4.1.2"
48
45
  },
49
46
  "files": [
50
- "lib"
47
+ "lib",
48
+ "src"
51
49
  ],
52
50
  "main": "lib/index.js"
53
- }
51
+ }
package/src/index.ts ADDED
@@ -0,0 +1,143 @@
1
+ import { ILogger, Metadata, ReportError, ReportUser, ServiceInfo } from './types';
2
+ import { IReporter, ReporterBreadcrumb, ReporterEvent, TrackedReporterEvent } from './reporters';
3
+ import { consoleLogger } from './utils';
4
+ import { datadogLogger, datadogReporter, DatadogReporterConfig } from './reporters/datadogReporter';
5
+ import { gtmReporter } from './reporters/gtmReporter';
6
+ import { amplifyReporter, AmplifyReporterConfig } from './reporters/amplifyReporter';
7
+
8
+ export * from './types';
9
+
10
+ export let logger: ILogger | null = null;
11
+
12
+ export type ReporterConfig = ServiceInfo & {
13
+ // Datadog
14
+ datadog?: DatadogReporterConfig;
15
+
16
+ // Amplify/Pinpoint
17
+ amplify?: AmplifyReporterConfig;
18
+
19
+ // Google Tag Manager
20
+ gtm?: boolean;
21
+ };
22
+
23
+ const reporters: IReporter[] = [];
24
+ let initialized = false;
25
+ let ddInitialized = false;
26
+
27
+ export function init(config: ReporterConfig) {
28
+ initialized = true;
29
+
30
+ if (config.datadog) {
31
+ reporters.push(datadogReporter(config, config.datadog));
32
+ ddInitialized = true;
33
+ }
34
+
35
+ if (config.amplify) {
36
+ reporters.push(amplifyReporter(config, config.amplify));
37
+ }
38
+
39
+ if (config.gtm) {
40
+ reporters.push(gtmReporter());
41
+ }
42
+
43
+ if (config.defaultMetadata) {
44
+ for (const reporter of reporters) {
45
+ reporter.addMetadata(config.defaultMetadata);
46
+ }
47
+ }
48
+
49
+ logger = createLogger('Reporter');
50
+ }
51
+
52
+ export function trackEvent(event: ReporterEvent): void {
53
+ for (const reporter of reporters) {
54
+ reporter.trackEvent(event);
55
+ }
56
+ }
57
+
58
+ export function addBreadcrumb(breadcrumb: ReporterBreadcrumb): void {
59
+ for (const reporter of reporters) {
60
+ reporter.addBreadcrumb(breadcrumb);
61
+ }
62
+ }
63
+
64
+ export function addMetadata(metadata: Metadata): void {
65
+ for (const reporter of reporters) {
66
+ reporter.addMetadata(metadata);
67
+ }
68
+ }
69
+
70
+ export function setUser(user: ReportUser | null): void {
71
+ for (const reporter of reporters) {
72
+ reporter.setUser(user);
73
+ }
74
+ }
75
+
76
+ export function setRouteName(routeName: string): void {
77
+ for (const reporter of reporters) {
78
+ reporter.setRouteName(routeName);
79
+ }
80
+ }
81
+
82
+ export function setPageName(pageName: string): void {
83
+ for (const reporter of reporters) {
84
+ reporter.setPageName(pageName);
85
+ }
86
+ }
87
+
88
+ export function reportError(error: ReportError, metadata?: Metadata): void {
89
+ for (const reporter of reporters) {
90
+ reporter.reportError(error, metadata);
91
+ }
92
+ }
93
+
94
+ export function recordSession(): void {
95
+ for (const reporter of reporters) {
96
+ reporter.recordSession();
97
+ }
98
+ }
99
+
100
+ export function recordSessionStop(): void {
101
+ for (const reporter of reporters) {
102
+ reporter.recordSessionStop();
103
+ }
104
+ }
105
+
106
+ export function trackEventSinceLastAction(event: ReporterEvent): void {
107
+ const lastEvent = getLastTrackedEvent();
108
+ if (lastEvent) {
109
+ const duration = new Date().getTime() - lastEvent.occurred.getTime();
110
+ trackEvent({
111
+ ...event,
112
+ metadata: {
113
+ ...event.metadata,
114
+ lastEventName: lastEvent.message,
115
+ timeSinceLastEvent: duration,
116
+ },
117
+ });
118
+ } else {
119
+ trackEvent(event);
120
+ }
121
+ sessionStorage.setItem('loggerLastEvent', JSON.stringify({ ...event, occurred: new Date() }));
122
+ }
123
+
124
+ export function getLastTrackedEvent(): TrackedReporterEvent | null {
125
+ const eventStr = sessionStorage.getItem('loggerLastEvent');
126
+ if (!eventStr) return null;
127
+
128
+ const event: TrackedReporterEvent = JSON.parse(eventStr);
129
+ event.occurred = new Date(event.occurred);
130
+ return event;
131
+ }
132
+
133
+ export function createLogger(name?: string, options?: { metadata?: Metadata }): ILogger {
134
+ if (!initialized) {
135
+ throw new Error('You must call init on BrowserLogger before creating a logger');
136
+ }
137
+
138
+ if (ddInitialized) {
139
+ return datadogLogger(name, options);
140
+ } else {
141
+ return consoleLogger(name, options);
142
+ }
143
+ }
@@ -0,0 +1,74 @@
1
+ import { asAttributeMap, filterAttributeMap } from './amplifyReporter';
2
+
3
+ describe('amplifyReporter', () => {
4
+ it('should convert all attribute values to arrays of strings', () => {
5
+ const testMetadata = { a: 'a', d: ['e', 'f'] };
6
+ const attributeMap = asAttributeMap(testMetadata);
7
+
8
+ expect(attributeMap.a).toEqual(['a']);
9
+ expect(attributeMap.d).toEqual(['e', 'f']);
10
+ });
11
+
12
+ it('should handle undefined / null attributes', () => {
13
+ const testMetadata = { a: null, d: undefined };
14
+ const attributeMap = asAttributeMap(testMetadata);
15
+
16
+ expect(attributeMap.a).toBeNull();
17
+ expect(attributeMap.d).toBeNull();
18
+ });
19
+
20
+ it('should flatten hierarchies', () => {
21
+ const testMetadata = { foo: { bar: 'baz' } };
22
+ const attributeMap = asAttributeMap(testMetadata);
23
+
24
+ expect(attributeMap['foo.bar']).toEqual(['baz']);
25
+ });
26
+
27
+ it('should stringify non-string array members', () => {
28
+ const testMetadata = { foo: 5, bar: [{ baz: 'maz' }] };
29
+ const attributeMap = asAttributeMap(testMetadata);
30
+
31
+ expect(attributeMap.foo).toEqual(['5']);
32
+ expect(typeof attributeMap.bar?.[0]).toEqual('string');
33
+ });
34
+
35
+ it('should truncate attribute names', () => {
36
+ const testMetadata = { thisIsAVeryVeryLongAttributeNameThatNeedsToBeTruncated: 5 };
37
+ const attributeMap = asAttributeMap(testMetadata);
38
+
39
+ expect(attributeMap.___VeryVeryLongAttributeNameThatNeedsToBeTruncated).toEqual(['5']);
40
+ });
41
+
42
+ it('should truncate attribute values', () => {
43
+ const testMetadata = {
44
+ a: 'ThisIsAVeryLongStringThatNeedsToBeTruncatedTo100CharsOrElseThereWillBeAProblemWithSendingTheBeautifulDataToPinpoint',
45
+ };
46
+ const attributeMap = asAttributeMap(testMetadata);
47
+
48
+ expect(attributeMap.a).toEqual([
49
+ 'ThisIsAVeryLongStringThatNeedsToBeTruncatedTo100CharsOrElseThereWillBeAProblemWithSendingTheBeautifu',
50
+ ]);
51
+ });
52
+
53
+ it('should not group values into arrays when groupValues===false', () => {
54
+ const testMetadata = {
55
+ a: '5',
56
+ };
57
+
58
+ const attributeMap = asAttributeMap(testMetadata, false);
59
+ expect(attributeMap.a).toEqual('5');
60
+ });
61
+
62
+ it('should remove attributes which match the ignore patterns', () => {
63
+ const inputAttributeMap = {
64
+ includeme: '5',
65
+ excludeme: 'false',
66
+ differentProp: 'boo',
67
+ };
68
+
69
+ const filtered = filterAttributeMap(inputAttributeMap, [/exclude/g, /Prop/g]);
70
+ expect(filtered['includeme']).toBeTruthy();
71
+ expect(filtered['excludeme']).toBeFalsy();
72
+ expect(filtered['differentProp']).toBeFalsy();
73
+ });
74
+ });
@@ -0,0 +1,208 @@
1
+ import { IReporter, ReporterBreadcrumb, ReporterEvent } from '.';
2
+ import { Metadata, ReportUser, ServiceInfo } from '../types';
3
+ import { Auth } from '@aws-amplify/auth';
4
+ import { Analytics } from '@aws-amplify/analytics';
5
+
6
+ export type AmplifyReporterConfig = {
7
+ region: string;
8
+ identityPoolId: string;
9
+ analyticsAppId: string;
10
+ autoTrackPageViews?: boolean;
11
+ autoTrackEvents?: boolean;
12
+ autoTrackSessions?: boolean;
13
+ selectorPrefix?: string;
14
+ ignoreBreadcrumbCategories?: string[];
15
+ buffering?: AmplifyReporterBufferingConfig;
16
+ userPoolId?: string;
17
+ userPoolWebClientId?: string;
18
+ ignoreMetadataPatterns?: RegExp[];
19
+ };
20
+
21
+ /**
22
+ * Configuration options for the buffering behavior of Pinpoint's event tracker.
23
+ *
24
+ * @see https://docs.amplify.aws/lib/analytics/getting-started/q/platform/js/#set-up-existing-analytics-backend
25
+ */
26
+ type AmplifyReporterBufferingConfig = {
27
+ /** Number of items to buffer for sending. */
28
+ bufferSize?: number;
29
+ /** Number of events sent each time Pinpoint flushes. */
30
+ flushSize?: number;
31
+ /** Interval Pinpoint flushes analytics events. Measured in milliseconds. */
32
+ flushInterval?: number;
33
+ /** The maximum number of times Pinpoint will retry to send an event. */
34
+ resendLimit?: number;
35
+ };
36
+
37
+ export function amplifyReporter(info: ServiceInfo, config: AmplifyReporterConfig): IReporter {
38
+ Auth.configure({
39
+ region: config.region,
40
+ identityPoolId: config.identityPoolId,
41
+ userPoolId: config.userPoolId,
42
+ userPoolWebClientId: config.userPoolWebClientId,
43
+ });
44
+
45
+ const allMetadata = asAttributeMap({
46
+ appName: info.service,
47
+ service: info.service,
48
+ domain: window.location.host,
49
+ environment: info.service,
50
+ version: info.version,
51
+ });
52
+
53
+ Analytics.configure({
54
+ region: config.region,
55
+ appId: config.analyticsAppId,
56
+ autoSessionRecord: config.autoTrackSessions,
57
+ endpoint: {
58
+ attributes: allMetadata,
59
+ },
60
+ ...config.buffering,
61
+ });
62
+
63
+ if (config.autoTrackPageViews) {
64
+ Analytics.autoTrack('pageView', {
65
+ enable: true,
66
+ eventName: 'pageView',
67
+ type: 'SPA',
68
+ provider: 'AWSPinpoint',
69
+ });
70
+ }
71
+
72
+ if (config.autoTrackEvents) {
73
+ Analytics.autoTrack('event', {
74
+ enable: true,
75
+ selectorPrefix: config.selectorPrefix ?? 'data-analytics-',
76
+ });
77
+ }
78
+
79
+ const reporter: IReporter = {
80
+ trackEvent: function (event: ReporterEvent): void {
81
+ Analytics.record({
82
+ name: event.message,
83
+ attributes: asAttributeMap(
84
+ {
85
+ ...event.metadata,
86
+ ...event.tags,
87
+ },
88
+ false,
89
+ config.ignoreMetadataPatterns,
90
+ ) as Record<string, string>,
91
+ metrics: event.metrics,
92
+ });
93
+ },
94
+ addBreadcrumb: function (breadcrumb: ReporterBreadcrumb): void {
95
+ if (breadcrumb.category && config.ignoreBreadcrumbCategories?.includes(breadcrumb.category)) {
96
+ return;
97
+ }
98
+
99
+ reporter.trackEvent({
100
+ message: breadcrumb.message,
101
+ metadata: {
102
+ category: breadcrumb.category,
103
+ ...breadcrumb.metadata,
104
+ },
105
+ });
106
+ },
107
+ addMetadata: function (metadata: Metadata): void {
108
+ Object.assign(allMetadata, asAttributeMap(metadata, true, config.ignoreMetadataPatterns));
109
+ Analytics.updateEndpoint({
110
+ attributes: allMetadata,
111
+ }).catch(() => {
112
+ // Swallow; see: https://crimsonhq.slack.com/archives/G4UN6Q4KF/p1648599302847539
113
+ });
114
+ },
115
+ setUser: function (user: ReportUser | null): void {
116
+ Analytics.updateEndpoint({
117
+ userId: user?.id ?? '',
118
+ userAttributes: user
119
+ ? asAttributeMap({
120
+ id: user.id,
121
+ email: user.email,
122
+ name: user.name ?? user.email,
123
+ username: user.username,
124
+ })
125
+ : {},
126
+ }).catch(() => {
127
+ // Swallow; see: https://crimsonhq.slack.com/archives/G4UN6Q4KF/p1648599302847539
128
+ });
129
+ },
130
+ setRouteName: function (routeName: string): void {
131
+ reporter.addMetadata({ routeName });
132
+ },
133
+ setPageName: function (pageName: string): void {
134
+ reporter.addMetadata({ pageName });
135
+ },
136
+ reportError: function (): void {},
137
+ recordSession: function (): void {},
138
+ recordSessionStop: function (): void {},
139
+ };
140
+
141
+ return reporter;
142
+ }
143
+
144
+ type AttributeMap = Record<string, string[] | string | null>;
145
+
146
+ /**
147
+ * Pinpoint has strict attribute name and value length limits
148
+ */
149
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
150
+ export function asAttributeMap(
151
+ values: Record<string, any>,
152
+ groupValues = true,
153
+ ignorePatterns: RegExp[] = [],
154
+ ): AttributeMap {
155
+ const attributeMap = buildAttributeMap(values, undefined, groupValues);
156
+ const filteredAttributeMap = filterAttributeMap(attributeMap, ignorePatterns);
157
+
158
+ const checkedEntries = Object.entries(filteredAttributeMap).map(([key, value]) => {
159
+ const truncatedKey = key.length > 50 ? `___${key.slice(-47)}` : key;
160
+ const truncatedValue = Array.isArray(value)
161
+ ? value?.map((val) => val.slice(0, 100)) ?? null
162
+ : value?.slice(0, 100) ?? null;
163
+
164
+ return [truncatedKey, truncatedValue];
165
+ });
166
+
167
+ return Object.fromEntries(checkedEntries);
168
+ }
169
+
170
+ /**
171
+ * Pinpoint expects `endpoint.attributes` and `endpoint.userAttributes` to have
172
+ * values which are string arrays. This function takes in an object and ensures
173
+ * all of its values are of type `string[]` to appease Pinpoint.
174
+ */
175
+ export function buildAttributeMap(
176
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
177
+ values: Record<string, any>,
178
+ parentKey: string | undefined = undefined,
179
+ groupValues = true,
180
+ ): AttributeMap {
181
+ const valuesWithStringArrays: AttributeMap = {};
182
+
183
+ Object.entries(values).forEach(([key, value]) => {
184
+ const combinedKey = parentKey ? [parentKey, key].join('.') : key;
185
+
186
+ if (!value) {
187
+ valuesWithStringArrays[combinedKey] = null;
188
+ } else if (groupValues && Array.isArray(value)) {
189
+ valuesWithStringArrays[combinedKey] = value.map((element) =>
190
+ typeof element === 'string' ? element : JSON.stringify(element),
191
+ );
192
+ } else if (typeof value === 'object') {
193
+ const flattenedAttribute = buildAttributeMap(value, combinedKey, groupValues);
194
+ Object.assign(valuesWithStringArrays, flattenedAttribute);
195
+ } else {
196
+ const stringValue = typeof value === 'string' ? value : JSON.stringify(value);
197
+ valuesWithStringArrays[combinedKey] = groupValues ? [stringValue] : stringValue;
198
+ }
199
+ });
200
+
201
+ return valuesWithStringArrays;
202
+ }
203
+
204
+ export function filterAttributeMap(attributes: AttributeMap | Record<string, string>, ignorePatterns: RegExp[]) {
205
+ const entries = Object.entries(attributes);
206
+
207
+ return Object.fromEntries(entries.filter(([key]) => !ignorePatterns.some((pattern) => pattern.test(key))));
208
+ }
@@ -0,0 +1,208 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { IReporter, ReporterBreadcrumb, ReporterEvent } from '.';
3
+ import { Metadata, Profiler, ReportError, ReportUser, ServiceInfo } from '../types';
4
+ import { datadogLogs, HandlerType, StatusType } from '@datadog/browser-logs';
5
+ import { datadogRum, DefaultPrivacyLevel } from '@datadog/browser-rum';
6
+ import { ILogger, LogLevel } from '..';
7
+
8
+ export type DatadogReporterConfig = {
9
+ applicationId: string;
10
+ clientToken: string;
11
+ version?: string;
12
+ site?: string;
13
+ proxyUrl?: string;
14
+ forwardConsoleLogs?: boolean;
15
+ trackInteractions?: boolean;
16
+ sampleRate?: number;
17
+ replaySampleRate?: number;
18
+ defaultPrivacyLevel?: DefaultPrivacyLevel;
19
+ useSecureSessionCookie?: boolean;
20
+ useCrossSiteSessionCookie?: boolean;
21
+ allowedTracingOrigins?: (string | RegExp)[];
22
+ trackSessionAcrossSubdomains?: boolean;
23
+ actionNameAttribute?: string;
24
+ trackViewsManually?: boolean;
25
+ };
26
+
27
+ function getDatadogStatusType(level: LogLevel): StatusType {
28
+ switch (level) {
29
+ case LogLevel.Error:
30
+ return StatusType.error;
31
+
32
+ case LogLevel.Warn:
33
+ return StatusType.warn;
34
+
35
+ case LogLevel.Info:
36
+ return StatusType.info;
37
+
38
+ case LogLevel.Debug:
39
+ default:
40
+ return StatusType.debug;
41
+ }
42
+ }
43
+
44
+ export function datadogReporter(info: ServiceInfo, config: DatadogReporterConfig): IReporter {
45
+ const isLocalhost = window.location.hostname === 'localhost';
46
+
47
+ datadogLogs.init({
48
+ site: config.site,
49
+ proxyUrl: config.proxyUrl,
50
+ clientToken: config.clientToken,
51
+ service: info.service,
52
+ env: info.environment,
53
+ version: config.version ?? info.version,
54
+
55
+ useSecureSessionCookie: config.useSecureSessionCookie ?? !isLocalhost,
56
+ useCrossSiteSessionCookie: config.useCrossSiteSessionCookie ?? false,
57
+ trackSessionAcrossSubdomains: config.trackSessionAcrossSubdomains,
58
+
59
+ forwardErrorsToLogs: config.forwardConsoleLogs ?? false,
60
+ });
61
+
62
+ datadogRum.init({
63
+ site: config.site,
64
+ proxyUrl: config.proxyUrl,
65
+ clientToken: config.clientToken,
66
+ applicationId: config.applicationId,
67
+ service: info.service,
68
+ env: info.environment,
69
+ version: config.version ?? info.version,
70
+
71
+ useSecureSessionCookie: config.useSecureSessionCookie ?? !isLocalhost,
72
+ useCrossSiteSessionCookie: config.useCrossSiteSessionCookie ?? false,
73
+ trackSessionAcrossSubdomains: config.trackSessionAcrossSubdomains,
74
+
75
+ // Set sampleRate to 100 to capture 100%
76
+ // of transactions for performance monitoring.
77
+ sampleRate: config.sampleRate ?? 100,
78
+ replaySampleRate: config.replaySampleRate ?? 100,
79
+ trackInteractions: config.trackInteractions ?? false,
80
+ defaultPrivacyLevel: config.defaultPrivacyLevel ?? 'mask-user-input',
81
+ allowedTracingOrigins: config.allowedTracingOrigins,
82
+ actionNameAttribute: config.actionNameAttribute ?? 'data-analytics-name',
83
+ trackViewsManually: config.trackViewsManually ?? false,
84
+ });
85
+
86
+ const reporter: IReporter = {
87
+ trackEvent: function (event: ReporterEvent): void {
88
+ const context = {
89
+ level: event.level,
90
+ ...event.metadata,
91
+ ...event.tags,
92
+ ...event.metrics,
93
+ };
94
+ datadogRum.addAction(event.message, context);
95
+ datadogLogs.logger?.log(event.message, context, getDatadogStatusType(event.level ?? LogLevel.Info));
96
+ },
97
+ addBreadcrumb: function (breadcrumb: ReporterBreadcrumb): void {
98
+ const context = {
99
+ ...breadcrumb.metadata,
100
+ category: breadcrumb.category,
101
+ };
102
+ datadogRum.addAction(breadcrumb.message, context);
103
+ },
104
+ addMetadata: function (metadata: Metadata): void {
105
+ for (const [key, value] of Object.entries(metadata)) {
106
+ if (value !== null) {
107
+ datadogRum.addRumGlobalContext(key, value);
108
+ datadogLogs.addLoggerGlobalContext(key, value);
109
+ } else {
110
+ datadogRum.removeRumGlobalContext(key);
111
+ datadogLogs.removeLoggerGlobalContext(key);
112
+ }
113
+ }
114
+ },
115
+ setUser: function (user: ReportUser | null): void {
116
+ if (user) {
117
+ datadogRum.setUser({
118
+ id: user.id,
119
+ email: user.email,
120
+ name: user.name ?? user.email,
121
+ });
122
+
123
+ datadogLogs.addLoggerGlobalContext('user_id', user.id);
124
+ datadogLogs.addLoggerGlobalContext('user_email', user.email);
125
+ datadogLogs.addLoggerGlobalContext('user_username', user.username);
126
+ } else {
127
+ datadogRum.removeUser();
128
+
129
+ datadogLogs.removeLoggerGlobalContext('user_id');
130
+ datadogLogs.removeLoggerGlobalContext('user_email');
131
+ datadogLogs.removeLoggerGlobalContext('user_username');
132
+ }
133
+ },
134
+ setRouteName: function (routeName: string): void {
135
+ reporter.addMetadata({ routeName });
136
+ },
137
+ setPageName: function (pageName: string): void {
138
+ if (config.trackViewsManually) {
139
+ datadogRum.startView(pageName);
140
+ } else {
141
+ reporter.addMetadata({ pageName });
142
+ }
143
+ },
144
+ reportError: function (error: ReportError, metadata?: Metadata): void {
145
+ // Note, datadog should pick up the console error above
146
+ datadogRum.addError(error, metadata);
147
+ },
148
+ recordSession: function (): void {
149
+ datadogRum.startSessionReplayRecording();
150
+ },
151
+ recordSessionStop: function (): void {
152
+ datadogRum.stopSessionReplayRecording();
153
+ },
154
+ };
155
+ return reporter;
156
+ }
157
+
158
+ export function datadogLogger(name?: string, options?: { metadata?: Metadata }): ILogger {
159
+ const loggerName = name ?? 'root';
160
+ const ddLogger = datadogLogs.createLogger(loggerName, {
161
+ context: options?.metadata,
162
+ });
163
+ // Send to datadog and console.
164
+ ddLogger.setHandler([HandlerType.http, HandlerType.console]);
165
+
166
+ const logger: ILogger = {
167
+ startTimer: function (): Profiler {
168
+ const start = new Date();
169
+
170
+ return {
171
+ logger: this,
172
+ done: ({ message, level } = {}) => {
173
+ const duration = new Date().getTime() - start.getTime();
174
+ logger[level ?? LogLevel.Info](message ?? 'Timer Completed', { duration });
175
+ return true;
176
+ },
177
+ };
178
+ },
179
+ child: function (metadata?: Metadata, name?: string): ILogger {
180
+ return datadogLogger(name ?? `${loggerName}.child`, metadata);
181
+ },
182
+ log: (level: LogLevel, message: string, metadata?: any) => {
183
+ switch (level) {
184
+ case LogLevel.Debug:
185
+ ddLogger.debug(message, metadata);
186
+ break;
187
+
188
+ case LogLevel.Info:
189
+ ddLogger.info(message, metadata);
190
+ break;
191
+
192
+ case LogLevel.Warn:
193
+ ddLogger.warn(message, metadata);
194
+ break;
195
+
196
+ case LogLevel.Error:
197
+ ddLogger.error(message, metadata);
198
+ break;
199
+ }
200
+ return logger;
201
+ },
202
+ debug: (message: string, metadata?: any) => logger.log(LogLevel.Debug, message, metadata),
203
+ info: (message: string, metadata?: any) => logger.log(LogLevel.Info, message, metadata),
204
+ warn: (message: string, metadata?: any) => logger.log(LogLevel.Warn, message, metadata),
205
+ error: (message: string, metadata?: any) => logger.log(LogLevel.Error, message, metadata),
206
+ };
207
+ return logger;
208
+ }
@@ -0,0 +1,47 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { IReporter, ReporterBreadcrumb, ReporterEvent } from '.';
3
+ import { Metadata, ReportUser } from '../types';
4
+
5
+ declare global {
6
+ interface Window {
7
+ dataLayer?: Record<string, any>[];
8
+ }
9
+ }
10
+
11
+ export function gtmReporter(): IReporter {
12
+ const reporter: IReporter = {
13
+ addMetadata: function (metadata: Metadata): void {
14
+ window.dataLayer?.push(metadata);
15
+ },
16
+ trackEvent: function (event: ReporterEvent): void {
17
+ reporter.addMetadata({
18
+ ...event.metadata,
19
+ ...event.tags,
20
+ ...event.metrics,
21
+ event: event.message,
22
+ level: event.level,
23
+ });
24
+ },
25
+ addBreadcrumb: function (breadcrumb: ReporterBreadcrumb): void {
26
+ reporter.addMetadata({
27
+ ...breadcrumb.metadata,
28
+ event: breadcrumb.message,
29
+ });
30
+ },
31
+ setUser: function (user: ReportUser | null): void {
32
+ if (user) {
33
+ reporter.addMetadata({ user });
34
+ }
35
+ },
36
+ setRouteName: function (routeName: string): void {
37
+ reporter.addMetadata({ routeName });
38
+ },
39
+ setPageName: function (pageName: string): void {
40
+ reporter.addMetadata({ pageName });
41
+ },
42
+ reportError: function (): void {},
43
+ recordSession: function (): void {},
44
+ recordSessionStop: function (): void {},
45
+ };
46
+ return reporter;
47
+ }
@@ -0,0 +1,32 @@
1
+ import { LogLevel } from '..';
2
+ import { Metadata, Metrics, ReportError, ReportUser } from '../types';
3
+
4
+ export interface ReporterEvent {
5
+ level?: LogLevel;
6
+ message: string;
7
+ metadata?: Metadata | undefined;
8
+ tags?: Metadata | undefined;
9
+ metrics?: Metrics | undefined;
10
+ }
11
+
12
+ export interface TrackedReporterEvent extends ReporterEvent {
13
+ occurred: Date;
14
+ }
15
+
16
+ export interface ReporterBreadcrumb {
17
+ message: string;
18
+ category?: string | undefined;
19
+ metadata?: Metadata | undefined;
20
+ }
21
+
22
+ export interface IReporter {
23
+ trackEvent(event: ReporterEvent): void;
24
+ addBreadcrumb(breadcrumb: ReporterBreadcrumb): void;
25
+ addMetadata(metadata: Metadata): void;
26
+ setUser(user: ReportUser | null): void;
27
+ setRouteName(routeName: string): void;
28
+ setPageName(pageName: string): void;
29
+ reportError(error: ReportError, metadata?: Metadata): void;
30
+ recordSession(): void;
31
+ recordSessionStop(): void;
32
+ }
package/src/types.ts ADDED
@@ -0,0 +1,50 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export type Metadata = Record<string, any>;
3
+
4
+ export type Metrics = Record<string, number>;
5
+
6
+ export type ServiceInfo = {
7
+ service: string;
8
+ environment: string;
9
+ version: string;
10
+ defaultMetadata?: Metadata;
11
+ };
12
+
13
+ export type ReportUser = { id: string; email?: string; username?: string; name?: string };
14
+
15
+ export type ReportError = Error | string;
16
+
17
+ export enum LogLevel {
18
+ Debug = 'debug',
19
+ Info = 'info',
20
+ Warn = 'warn',
21
+ Error = 'error',
22
+ }
23
+
24
+ export interface LogLevelMethod {
25
+ (message: string, metadata?: any): ILogger;
26
+ (message: string, ...meta: any[]): ILogger;
27
+ (message: any): ILogger;
28
+ }
29
+
30
+ export interface LogMethod {
31
+ (level: LogLevel, message: string, metadata?: any): ILogger;
32
+ (level: LogLevel, message: string, ...meta: any[]): ILogger;
33
+ (level: LogLevel, message: any): ILogger;
34
+ }
35
+
36
+ export interface Profiler {
37
+ logger: ILogger;
38
+ done(info?: { message?: string; level?: LogLevel }): boolean;
39
+ }
40
+
41
+ export interface ILogger {
42
+ startTimer(): Profiler;
43
+ child(metadata?: Metadata, name?: string): ILogger;
44
+
45
+ log: LogMethod;
46
+ debug: LogLevelMethod;
47
+ info: LogLevelMethod;
48
+ warn: LogLevelMethod;
49
+ error: LogLevelMethod;
50
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,50 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { ILogger, Profiler, LogMethod, LogLevelMethod, Metadata, LogLevel } from '.';
4
+
5
+ export function consoleLogger(name?: string, options?: { metadata?: Metadata }): ILogger {
6
+ const logger: ILogger = {
7
+ startTimer(): Profiler {
8
+ const start = new Date();
9
+
10
+ return {
11
+ logger: this,
12
+ done: (args) => {
13
+ const duration = new Date().getTime() - start.getTime();
14
+ logger[args?.level ?? LogLevel.Info](`${args?.message ?? 'Timer'} completed in: ${duration}`);
15
+ return true;
16
+ },
17
+ };
18
+ },
19
+
20
+ child(metadata?: Record<string, any>, name?: string): ILogger {
21
+ return consoleLogger(name, { metadata });
22
+ },
23
+
24
+ log: (level: LogLevel, message: string, metadata?: any) => {
25
+ return logger[level](message, message);
26
+ },
27
+
28
+ debug: (...args: any[]) => {
29
+ console.debug(...args);
30
+ return logger;
31
+ },
32
+
33
+ info: (...args: any[]) => {
34
+ console.log(...args);
35
+ return logger;
36
+ },
37
+
38
+ warn: (...args: any[]) => {
39
+ console.warn(...args);
40
+ return logger;
41
+ },
42
+
43
+ error: (...args: any[]) => {
44
+ console.error(...args);
45
+ return logger;
46
+ },
47
+ };
48
+
49
+ return logger;
50
+ }
@@ -1,4 +0,0 @@
1
- import { IReporter } from '.';
2
- import { ServiceInfo } from '../types';
3
- export declare function newrelicReporter(info: ServiceInfo): IReporter;
4
- //# sourceMappingURL=newrelicReporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"newrelicReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/newrelicReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,MAAM,GAAG,CAAC;AACjE,OAAO,EAAqC,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAyC7D"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.newrelicReporter = void 0;
4
- function newrelicReporter(info) {
5
- var _a;
6
- const newrelic = window.newrelic;
7
- (_a = newrelic === null || newrelic === void 0 ? void 0 : newrelic.addRelease) === null || _a === void 0 ? void 0 : _a.call(newrelic, info.service, info.version);
8
- const reporter = {
9
- trackEvent: function (event) {
10
- var _a;
11
- (_a = newrelic === null || newrelic === void 0 ? void 0 : newrelic.addPageAction) === null || _a === void 0 ? void 0 : _a.call(newrelic, event.message, {
12
- ...event.metadata,
13
- ...event.tags,
14
- ...event.metrics,
15
- ...(event.level ? { level: event.level } : {}),
16
- });
17
- },
18
- addBreadcrumb: function (breadcrumb) {
19
- var _a;
20
- (_a = newrelic === null || newrelic === void 0 ? void 0 : newrelic.addPageAction) === null || _a === void 0 ? void 0 : _a.call(newrelic, breadcrumb.message, {
21
- ...breadcrumb.metadata,
22
- ...(breadcrumb.category ? { category: breadcrumb.category } : {}),
23
- });
24
- },
25
- addMetadata: function (metadata) {
26
- var _a;
27
- for (const [key, value] of Object.entries(metadata)) {
28
- (_a = newrelic === null || newrelic === void 0 ? void 0 : newrelic.setCustomAttribute) === null || _a === void 0 ? void 0 : _a.call(newrelic, key, value);
29
- }
30
- },
31
- setUser: function (user) {
32
- reporter.addMetadata({ user });
33
- },
34
- setRouteName: function (routeName) {
35
- var _a;
36
- (_a = newrelic === null || newrelic === void 0 ? void 0 : newrelic.setCurrentRouteName) === null || _a === void 0 ? void 0 : _a.call(newrelic, routeName);
37
- },
38
- setPageName: function (pageName) {
39
- var _a;
40
- (_a = newrelic === null || newrelic === void 0 ? void 0 : newrelic.setPageViewName) === null || _a === void 0 ? void 0 : _a.call(newrelic, pageName);
41
- },
42
- reportError: function (error, metadata) {
43
- var _a;
44
- (_a = newrelic === null || newrelic === void 0 ? void 0 : newrelic.noticeError) === null || _a === void 0 ? void 0 : _a.call(newrelic, error, metadata);
45
- },
46
- recordSession: function () { },
47
- recordSessionStop: function () { },
48
- };
49
- return reporter;
50
- }
51
- exports.newrelicReporter = newrelicReporter;
52
- //# sourceMappingURL=newrelicReporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"newrelicReporter.js","sourceRoot":"","sources":["../../src/reporters/newrelicReporter.ts"],"names":[],"mappings":";;;AAGA,SAAgB,gBAAgB,CAAC,IAAiB;;IAChD,MAAM,QAAQ,GAAwC,MAAM,CAAC,QAAQ,CAAC;IACtE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,yDAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAc;QAC1B,UAAU,EAAE,UAAU,KAAoB;;YACxC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,yDAAG,KAAK,CAAC,OAAO,EAAE;gBACvC,GAAG,KAAK,CAAC,QAAQ;gBACjB,GAAG,KAAK,CAAC,IAAI;gBACb,GAAG,KAAK,CAAC,OAAO;gBAChB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC;QACD,aAAa,EAAE,UAAU,UAA8B;;YACrD,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,yDAAG,UAAU,CAAC,OAAO,EAAE;gBAC5C,GAAG,UAAU,CAAC,QAAQ;gBACtB,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClE,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,UAAU,QAAkB;;YACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACnD,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,kBAAkB,yDAAG,GAAG,EAAE,KAAK,CAAC,CAAC;aAC5C;QACH,CAAC;QACD,OAAO,EAAE,UAAU,IAAuB;YACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,YAAY,EAAE,UAAU,SAAiB;;YACvC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,mBAAmB,yDAAG,SAAS,CAAC,CAAC;QAC7C,CAAC;QACD,WAAW,EAAE,UAAU,QAAgB;;YACrC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,eAAe,yDAAG,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,WAAW,EAAE,UAAU,KAAkB,EAAE,QAAmB;;YAC5D,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,yDAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,aAAa,EAAE,cAAmB,CAAC;QACnC,iBAAiB,EAAE,cAAmB,CAAC;KACxC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAzCD,4CAyCC"}
@@ -1,11 +0,0 @@
1
- import { IReporter } from '.';
2
- import { ServiceInfo } from '../types';
3
- export declare type SentryReporterConfig = {
4
- dsn: string;
5
- release?: string;
6
- proxyUrl?: string;
7
- allowUrls?: (string | RegExp)[];
8
- sampleRate?: number;
9
- };
10
- export declare function sentryReporter(info: ServiceInfo, config: SentryReporterConfig): IReporter;
11
- //# sourceMappingURL=sentryReporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sentryReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/sentryReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,MAAM,GAAG,CAAC;AACjE,OAAO,EAAqC,WAAW,EAAE,MAAM,UAAU,CAAC;AAM1E,oBAAY,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAmBF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,GAAG,SAAS,CAgEzF"}
@@ -1,107 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.sentryReporter = void 0;
27
- const Sentry = __importStar(require("@sentry/react"));
28
- const tracing_1 = require("@sentry/tracing");
29
- const __1 = require("..");
30
- const react_1 = require("@sentry/react");
31
- function getSentrySeverity(level) {
32
- switch (level) {
33
- case __1.LogLevel.Error:
34
- return react_1.Severity.Error;
35
- case __1.LogLevel.Warn:
36
- return react_1.Severity.Warning;
37
- case __1.LogLevel.Info:
38
- return react_1.Severity.Info;
39
- case __1.LogLevel.Debug:
40
- default:
41
- return react_1.Severity.Debug;
42
- }
43
- }
44
- function sentryReporter(info, config) {
45
- var _a, _b;
46
- Sentry.init({
47
- dsn: config.dsn,
48
- tunnel: config.proxyUrl,
49
- integrations: [new tracing_1.Integrations.BrowserTracing()],
50
- allowUrls: config.allowUrls,
51
- environment: info.environment,
52
- release: (_a = config.release) !== null && _a !== void 0 ? _a : info.version,
53
- // Set tracesSampleRate to 1.0 to capture 100%
54
- // of transactions for performance monitoring.
55
- tracesSampleRate: (_b = config.sampleRate) !== null && _b !== void 0 ? _b : 1.0,
56
- });
57
- const reporter = {
58
- trackEvent: function (event) {
59
- Sentry.captureEvent({
60
- level: event.level ? getSentrySeverity(event.level) : undefined,
61
- message: event.message,
62
- extra: {
63
- ...event.metadata,
64
- ...event.metrics,
65
- },
66
- tags: event.tags,
67
- });
68
- },
69
- addBreadcrumb: function (breadcrumb) {
70
- Sentry.addBreadcrumb({
71
- category: breadcrumb.category,
72
- message: breadcrumb.message,
73
- data: breadcrumb.metadata,
74
- });
75
- },
76
- addMetadata: function (metadata) {
77
- Sentry.setExtras(metadata);
78
- },
79
- setUser: function (user) {
80
- var _a;
81
- Sentry.setUser(user
82
- ? {
83
- id: user.id,
84
- email: user.email,
85
- name: (_a = user.name) !== null && _a !== void 0 ? _a : user.email,
86
- username: user.username,
87
- }
88
- : null);
89
- },
90
- setRouteName: function (routeName) {
91
- Sentry.setTag('routeName', routeName);
92
- },
93
- setPageName: function (pageName) {
94
- Sentry.setTag('pageName', pageName);
95
- },
96
- reportError: function (error, metadata) {
97
- Sentry.captureException(error, {
98
- extra: metadata,
99
- });
100
- },
101
- recordSession: function () { },
102
- recordSessionStop: function () { },
103
- };
104
- return reporter;
105
- }
106
- exports.sentryReporter = sentryReporter;
107
- //# sourceMappingURL=sentryReporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sentryReporter.js","sourceRoot":"","sources":["../../src/reporters/sentryReporter.ts"],"names":[],"mappings":"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"}