@crimson-education/browser-logger 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -1,30 +1,30 @@
1
- import { ILogger, Metadata, ReportError, ReportUser, ServiceInfo } from './types';
2
- import { ReporterBreadcrumb, ReporterEvent, TrackedReporterEvent } from './reporters';
3
- import { DatadogReporterConfig } from './reporters/datadogReporter';
4
- import { SentryReporterConfig } from './reporters/sentryReporter';
5
- import { AmplifyReporterConfig } from './reporters/amplifyReporter';
6
- export * from './types';
7
- export declare let logger: ILogger | null;
8
- export declare type ReporterConfig = ServiceInfo & {
9
- sentry?: SentryReporterConfig;
10
- datadog?: DatadogReporterConfig;
11
- amplify?: AmplifyReporterConfig;
12
- gtm?: boolean;
13
- newrelic?: boolean;
14
- };
15
- export declare function init(config: ReporterConfig): void;
16
- export declare function trackEvent(event: ReporterEvent): void;
17
- export declare function addBreadcrumb(breadcrumb: ReporterBreadcrumb): void;
18
- export declare function addMetadata(metadata: Metadata): void;
19
- export declare function setUser(user: ReportUser | null): void;
20
- export declare function setRouteName(routeName: string): void;
21
- export declare function setPageName(pageName: string): void;
22
- export declare function reportError(error: ReportError, metadata?: Metadata): void;
23
- export declare function recordSession(): void;
24
- export declare function recordSessionStop(): void;
25
- export declare function trackEventSinceLastAction(event: ReporterEvent): void;
26
- export declare function getLastTrackedEvent(): TrackedReporterEvent | null;
27
- export declare function createLogger(name?: string, options?: {
28
- metadata?: Metadata;
29
- }): ILogger;
1
+ import { ILogger, Metadata, ReportError, ReportUser, ServiceInfo } from './types';
2
+ import { ReporterBreadcrumb, ReporterEvent, TrackedReporterEvent } from './reporters';
3
+ import { DatadogReporterConfig } from './reporters/datadogReporter';
4
+ import { SentryReporterConfig } from './reporters/sentryReporter';
5
+ import { AmplifyReporterConfig } from './reporters/amplifyReporter';
6
+ export * from './types';
7
+ export declare let logger: ILogger | null;
8
+ export declare type ReporterConfig = ServiceInfo & {
9
+ sentry?: SentryReporterConfig;
10
+ datadog?: DatadogReporterConfig;
11
+ amplify?: AmplifyReporterConfig;
12
+ gtm?: boolean;
13
+ newrelic?: boolean;
14
+ };
15
+ export declare function init(config: ReporterConfig): void;
16
+ export declare function trackEvent(event: ReporterEvent): void;
17
+ export declare function addBreadcrumb(breadcrumb: ReporterBreadcrumb): void;
18
+ export declare function addMetadata(metadata: Metadata): void;
19
+ export declare function setUser(user: ReportUser | null): void;
20
+ export declare function setRouteName(routeName: string): void;
21
+ export declare function setPageName(pageName: string): void;
22
+ export declare function reportError(error: ReportError, metadata?: Metadata): void;
23
+ export declare function recordSession(): void;
24
+ export declare function recordSessionStop(): void;
25
+ export declare function trackEventSinceLastAction(event: ReporterEvent): void;
26
+ export declare function getLastTrackedEvent(): TrackedReporterEvent | null;
27
+ export declare function createLogger(name?: string, options?: {
28
+ metadata?: Metadata;
29
+ }): ILogger;
30
30
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -1,145 +1,145 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- 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;
14
- const utils_1 = require("./utils");
15
- const datadogReporter_1 = require("./reporters/datadogReporter");
16
- const sentryReporter_1 = require("./reporters/sentryReporter");
17
- const gtmReporter_1 = require("./reporters/gtmReporter");
18
- const newrelicReporter_1 = require("./reporters/newrelicReporter");
19
- const amplifyReporter_1 = require("./reporters/amplifyReporter");
20
- __exportStar(require("./types"), exports);
21
- exports.logger = null;
22
- const reporters = [];
23
- let initialized = false;
24
- let ddInitialized = false;
25
- function init(config) {
26
- initialized = true;
27
- if (config.sentry) {
28
- reporters.push(sentryReporter_1.sentryReporter(config, config.sentry));
29
- }
30
- if (config.datadog) {
31
- reporters.push(datadogReporter_1.datadogReporter(config, config.datadog));
32
- ddInitialized = true;
33
- }
34
- if (config.amplify) {
35
- reporters.push(amplifyReporter_1.amplifyReporter(config, config.amplify));
36
- }
37
- if (config.gtm) {
38
- reporters.push(gtmReporter_1.gtmReporter());
39
- }
40
- if (config.newrelic) {
41
- reporters.push(newrelicReporter_1.newrelicReporter(config));
42
- }
43
- if (config.defaultMetadata) {
44
- for (const reporter of reporters) {
45
- reporter.addMetadata(config.defaultMetadata);
46
- }
47
- }
48
- exports.logger = createLogger('Reporter');
49
- }
50
- exports.init = init;
51
- function trackEvent(event) {
52
- for (const reporter of reporters) {
53
- reporter.trackEvent(event);
54
- }
55
- }
56
- exports.trackEvent = trackEvent;
57
- function addBreadcrumb(breadcrumb) {
58
- for (const reporter of reporters) {
59
- reporter.addBreadcrumb(breadcrumb);
60
- }
61
- }
62
- exports.addBreadcrumb = addBreadcrumb;
63
- function addMetadata(metadata) {
64
- for (const reporter of reporters) {
65
- reporter.addMetadata(metadata);
66
- }
67
- }
68
- exports.addMetadata = addMetadata;
69
- function setUser(user) {
70
- for (const reporter of reporters) {
71
- reporter.setUser(user);
72
- }
73
- }
74
- exports.setUser = setUser;
75
- function setRouteName(routeName) {
76
- for (const reporter of reporters) {
77
- reporter.setRouteName(routeName);
78
- }
79
- }
80
- exports.setRouteName = setRouteName;
81
- function setPageName(pageName) {
82
- for (const reporter of reporters) {
83
- reporter.setPageName(pageName);
84
- }
85
- }
86
- exports.setPageName = setPageName;
87
- function reportError(error, metadata) {
88
- for (const reporter of reporters) {
89
- reporter.reportError(error, metadata);
90
- }
91
- }
92
- exports.reportError = reportError;
93
- function recordSession() {
94
- for (const reporter of reporters) {
95
- reporter.recordSession();
96
- }
97
- }
98
- exports.recordSession = recordSession;
99
- function recordSessionStop() {
100
- for (const reporter of reporters) {
101
- reporter.recordSessionStop();
102
- }
103
- }
104
- exports.recordSessionStop = recordSessionStop;
105
- function trackEventSinceLastAction(event) {
106
- const lastEvent = getLastTrackedEvent();
107
- if (lastEvent) {
108
- const duration = new Date().getTime() - lastEvent.occurred.getTime();
109
- trackEvent({
110
- ...event,
111
- metadata: {
112
- ...event.metadata,
113
- lastEventName: lastEvent.message,
114
- timeSinceLastEvent: duration,
115
- },
116
- });
117
- }
118
- else {
119
- trackEvent(event);
120
- }
121
- sessionStorage.setItem('loggerLastEvent', JSON.stringify({ ...event, occurred: new Date() }));
122
- }
123
- exports.trackEventSinceLastAction = trackEventSinceLastAction;
124
- function getLastTrackedEvent() {
125
- const eventStr = sessionStorage.getItem('loggerLastEvent');
126
- if (!eventStr)
127
- return null;
128
- const event = JSON.parse(eventStr);
129
- event.occurred = new Date(event.occurred);
130
- return event;
131
- }
132
- exports.getLastTrackedEvent = getLastTrackedEvent;
133
- function createLogger(name, options) {
134
- if (!initialized) {
135
- throw new Error('You must call init on BrowserLogger before creating a logger');
136
- }
137
- if (ddInitialized) {
138
- return datadogReporter_1.datadogLogger(name, options);
139
- }
140
- else {
141
- return utils_1.consoleLogger(name, options);
142
- }
143
- }
144
- exports.createLogger = createLogger;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ 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;
14
+ const utils_1 = require("./utils");
15
+ const datadogReporter_1 = require("./reporters/datadogReporter");
16
+ const sentryReporter_1 = require("./reporters/sentryReporter");
17
+ const gtmReporter_1 = require("./reporters/gtmReporter");
18
+ const newrelicReporter_1 = require("./reporters/newrelicReporter");
19
+ const amplifyReporter_1 = require("./reporters/amplifyReporter");
20
+ __exportStar(require("./types"), exports);
21
+ exports.logger = null;
22
+ const reporters = [];
23
+ let initialized = false;
24
+ let ddInitialized = false;
25
+ function init(config) {
26
+ initialized = true;
27
+ if (config.sentry) {
28
+ reporters.push(sentryReporter_1.sentryReporter(config, config.sentry));
29
+ }
30
+ if (config.datadog) {
31
+ reporters.push(datadogReporter_1.datadogReporter(config, config.datadog));
32
+ ddInitialized = true;
33
+ }
34
+ if (config.amplify) {
35
+ reporters.push(amplifyReporter_1.amplifyReporter(config, config.amplify));
36
+ }
37
+ if (config.gtm) {
38
+ reporters.push(gtmReporter_1.gtmReporter());
39
+ }
40
+ if (config.newrelic) {
41
+ reporters.push(newrelicReporter_1.newrelicReporter(config));
42
+ }
43
+ if (config.defaultMetadata) {
44
+ for (const reporter of reporters) {
45
+ reporter.addMetadata(config.defaultMetadata);
46
+ }
47
+ }
48
+ exports.logger = createLogger('Reporter');
49
+ }
50
+ exports.init = init;
51
+ function trackEvent(event) {
52
+ for (const reporter of reporters) {
53
+ reporter.trackEvent(event);
54
+ }
55
+ }
56
+ exports.trackEvent = trackEvent;
57
+ function addBreadcrumb(breadcrumb) {
58
+ for (const reporter of reporters) {
59
+ reporter.addBreadcrumb(breadcrumb);
60
+ }
61
+ }
62
+ exports.addBreadcrumb = addBreadcrumb;
63
+ function addMetadata(metadata) {
64
+ for (const reporter of reporters) {
65
+ reporter.addMetadata(metadata);
66
+ }
67
+ }
68
+ exports.addMetadata = addMetadata;
69
+ function setUser(user) {
70
+ for (const reporter of reporters) {
71
+ reporter.setUser(user);
72
+ }
73
+ }
74
+ exports.setUser = setUser;
75
+ function setRouteName(routeName) {
76
+ for (const reporter of reporters) {
77
+ reporter.setRouteName(routeName);
78
+ }
79
+ }
80
+ exports.setRouteName = setRouteName;
81
+ function setPageName(pageName) {
82
+ for (const reporter of reporters) {
83
+ reporter.setPageName(pageName);
84
+ }
85
+ }
86
+ exports.setPageName = setPageName;
87
+ function reportError(error, metadata) {
88
+ for (const reporter of reporters) {
89
+ reporter.reportError(error, metadata);
90
+ }
91
+ }
92
+ exports.reportError = reportError;
93
+ function recordSession() {
94
+ for (const reporter of reporters) {
95
+ reporter.recordSession();
96
+ }
97
+ }
98
+ exports.recordSession = recordSession;
99
+ function recordSessionStop() {
100
+ for (const reporter of reporters) {
101
+ reporter.recordSessionStop();
102
+ }
103
+ }
104
+ exports.recordSessionStop = recordSessionStop;
105
+ function trackEventSinceLastAction(event) {
106
+ const lastEvent = getLastTrackedEvent();
107
+ if (lastEvent) {
108
+ const duration = new Date().getTime() - lastEvent.occurred.getTime();
109
+ trackEvent({
110
+ ...event,
111
+ metadata: {
112
+ ...event.metadata,
113
+ lastEventName: lastEvent.message,
114
+ timeSinceLastEvent: duration,
115
+ },
116
+ });
117
+ }
118
+ else {
119
+ trackEvent(event);
120
+ }
121
+ sessionStorage.setItem('loggerLastEvent', JSON.stringify({ ...event, occurred: new Date() }));
122
+ }
123
+ exports.trackEventSinceLastAction = trackEventSinceLastAction;
124
+ function getLastTrackedEvent() {
125
+ const eventStr = sessionStorage.getItem('loggerLastEvent');
126
+ if (!eventStr)
127
+ return null;
128
+ const event = JSON.parse(eventStr);
129
+ event.occurred = new Date(event.occurred);
130
+ return event;
131
+ }
132
+ exports.getLastTrackedEvent = getLastTrackedEvent;
133
+ function createLogger(name, options) {
134
+ if (!initialized) {
135
+ throw new Error('You must call init on BrowserLogger before creating a logger');
136
+ }
137
+ if (ddInitialized) {
138
+ return datadogReporter_1.datadogLogger(name, options);
139
+ }
140
+ else {
141
+ return utils_1.consoleLogger(name, options);
142
+ }
143
+ }
144
+ exports.createLogger = createLogger;
145
145
  //# sourceMappingURL=index.js.map
@@ -1,14 +1,22 @@
1
- import { IReporter } from '.';
2
- import { ServiceInfo } from '../types';
3
- export declare type AmplifyReporterConfig = {
4
- region: string;
5
- identityPoolId: string;
6
- analyticsAppId: string;
7
- autoTrackPageViews?: boolean;
8
- autoTrackEvents?: boolean;
9
- autoTrackSessions?: boolean;
10
- selectorPrefix?: string;
11
- ignoreBreadcrumbCategories?: string[];
12
- };
13
- export declare function amplifyReporter(info: ServiceInfo, config: AmplifyReporterConfig): IReporter;
1
+ import { IReporter } from '.';
2
+ import { ServiceInfo } from '../types';
3
+ export declare type AmplifyReporterConfig = {
4
+ region: string;
5
+ identityPoolId: string;
6
+ analyticsAppId: string;
7
+ autoTrackPageViews?: boolean;
8
+ autoTrackEvents?: boolean;
9
+ autoTrackSessions?: boolean;
10
+ selectorPrefix?: string;
11
+ ignoreBreadcrumbCategories?: string[];
12
+ };
13
+ export declare function amplifyReporter(info: ServiceInfo, config: AmplifyReporterConfig): IReporter;
14
+ declare type AttributeMap = Record<string, string[] | null>;
15
+ /**
16
+ * Pinpoint expects `endpoint.attributes` and `endpoint.userAttributes` to have
17
+ * values which are string arrays. This function takes in an object and ensures
18
+ * all of its values are of type `string[]` to appease Pinpoint.
19
+ */
20
+ export declare function asAttributeMap(values: Record<string, string | string[] | null | undefined>): AttributeMap;
21
+ export {};
14
22
  //# sourceMappingURL=amplifyReporter.d.ts.map
@@ -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;AAG7D,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;CACvC,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,CA4F3F"}
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;AAG7D,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;CACvC,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,CA4F3F;AAED,aAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,YAAY,CAczG"}
@@ -1,95 +1,116 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.amplifyReporter = void 0;
4
- const aws_amplify_1 = require("aws-amplify");
5
- function amplifyReporter(info, config) {
6
- var _a;
7
- aws_amplify_1.Auth.configure({
8
- identityPoolId: config.identityPoolId,
9
- region: config.region,
10
- });
11
- const allMetadata = {
12
- service: info.service,
13
- environment: info.service,
14
- version: info.version,
15
- };
16
- aws_amplify_1.Analytics.configure({
17
- appId: config.analyticsAppId,
18
- region: config.region,
19
- autoSessionRecord: config.autoTrackSessions,
20
- endpoint: {
21
- attributes: allMetadata,
22
- },
23
- });
24
- if (config.autoTrackPageViews) {
25
- aws_amplify_1.Analytics.autoTrack('pageView', {
26
- enable: true,
27
- eventName: 'pageView',
28
- type: 'SPA',
29
- provider: 'AWSPinpoint',
30
- });
31
- }
32
- if (config.autoTrackEvents) {
33
- aws_amplify_1.Analytics.autoTrack('event', {
34
- enable: true,
35
- selectorPrefix: (_a = config.selectorPrefix) !== null && _a !== void 0 ? _a : 'data-analytics-',
36
- });
37
- }
38
- const reporter = {
39
- trackEvent: function (event) {
40
- aws_amplify_1.Analytics.record({
41
- name: event.message,
42
- attributes: {
43
- ...event.metadata,
44
- ...event.tags,
45
- },
46
- metrics: event.metrics,
47
- });
48
- },
49
- addBreadcrumb: function (breadcrumb) {
50
- var _a;
51
- if (breadcrumb.category && ((_a = config.ignoreBreadcrumbCategories) === null || _a === void 0 ? void 0 : _a.includes(breadcrumb.category))) {
52
- return;
53
- }
54
- reporter.trackEvent({
55
- message: breadcrumb.message,
56
- metadata: {
57
- category: breadcrumb.category,
58
- ...breadcrumb.metadata,
59
- },
60
- });
61
- },
62
- addMetadata: function (metadata) {
63
- Object.assign(allMetadata, metadata);
64
- aws_amplify_1.Analytics.updateEndpoint({
65
- attributes: allMetadata,
66
- });
67
- },
68
- setUser: function (user) {
69
- var _a, _b;
70
- aws_amplify_1.Analytics.updateEndpoint({
71
- userId: (_a = user === null || user === void 0 ? void 0 : user.id) !== null && _a !== void 0 ? _a : '',
72
- userAttributes: user
73
- ? {
74
- id: user.id,
75
- email: user.email,
76
- name: (_b = user.name) !== null && _b !== void 0 ? _b : user.email,
77
- username: user.username,
78
- }
79
- : {},
80
- });
81
- },
82
- setRouteName: function (routeName) {
83
- reporter.addMetadata({ routeName });
84
- },
85
- setPageName: function (pageName) {
86
- reporter.addMetadata({ pageName });
87
- },
88
- reportError: function () { },
89
- recordSession: function () { },
90
- recordSessionStop: function () { },
91
- };
92
- return reporter;
93
- }
94
- exports.amplifyReporter = amplifyReporter;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asAttributeMap = exports.amplifyReporter = void 0;
4
+ const aws_amplify_1 = require("aws-amplify");
5
+ function amplifyReporter(info, config) {
6
+ var _a;
7
+ aws_amplify_1.Auth.configure({
8
+ identityPoolId: config.identityPoolId,
9
+ region: config.region,
10
+ });
11
+ const allMetadata = asAttributeMap({
12
+ service: info.service,
13
+ environment: info.service,
14
+ version: info.version,
15
+ });
16
+ aws_amplify_1.Analytics.configure({
17
+ appId: config.analyticsAppId,
18
+ region: config.region,
19
+ autoSessionRecord: config.autoTrackSessions,
20
+ endpoint: {
21
+ attributes: allMetadata,
22
+ },
23
+ });
24
+ if (config.autoTrackPageViews) {
25
+ aws_amplify_1.Analytics.autoTrack('pageView', {
26
+ enable: true,
27
+ eventName: 'pageView',
28
+ type: 'SPA',
29
+ provider: 'AWSPinpoint',
30
+ });
31
+ }
32
+ if (config.autoTrackEvents) {
33
+ aws_amplify_1.Analytics.autoTrack('event', {
34
+ enable: true,
35
+ selectorPrefix: (_a = config.selectorPrefix) !== null && _a !== void 0 ? _a : 'data-analytics-',
36
+ });
37
+ }
38
+ const reporter = {
39
+ trackEvent: function (event) {
40
+ aws_amplify_1.Analytics.record({
41
+ name: event.message,
42
+ attributes: {
43
+ ...event.metadata,
44
+ ...event.tags,
45
+ },
46
+ metrics: event.metrics,
47
+ });
48
+ },
49
+ addBreadcrumb: function (breadcrumb) {
50
+ var _a;
51
+ if (breadcrumb.category && ((_a = config.ignoreBreadcrumbCategories) === null || _a === void 0 ? void 0 : _a.includes(breadcrumb.category))) {
52
+ return;
53
+ }
54
+ reporter.trackEvent({
55
+ message: breadcrumb.message,
56
+ metadata: {
57
+ category: breadcrumb.category,
58
+ ...breadcrumb.metadata,
59
+ },
60
+ });
61
+ },
62
+ addMetadata: function (metadata) {
63
+ Object.assign(allMetadata, asAttributeMap(metadata));
64
+ aws_amplify_1.Analytics.updateEndpoint({
65
+ attributes: allMetadata,
66
+ });
67
+ },
68
+ setUser: function (user) {
69
+ var _a, _b;
70
+ aws_amplify_1.Analytics.updateEndpoint({
71
+ userId: (_a = user === null || user === void 0 ? void 0 : user.id) !== null && _a !== void 0 ? _a : '',
72
+ userAttributes: user
73
+ ? asAttributeMap({
74
+ id: user.id,
75
+ email: user.email,
76
+ name: (_b = user.name) !== null && _b !== void 0 ? _b : user.email,
77
+ username: user.username,
78
+ })
79
+ : {},
80
+ });
81
+ },
82
+ setRouteName: function (routeName) {
83
+ reporter.addMetadata({ routeName });
84
+ },
85
+ setPageName: function (pageName) {
86
+ reporter.addMetadata({ pageName });
87
+ },
88
+ reportError: function () { },
89
+ recordSession: function () { },
90
+ recordSessionStop: function () { },
91
+ };
92
+ return reporter;
93
+ }
94
+ exports.amplifyReporter = amplifyReporter;
95
+ /**
96
+ * Pinpoint expects `endpoint.attributes` and `endpoint.userAttributes` to have
97
+ * values which are string arrays. This function takes in an object and ensures
98
+ * all of its values are of type `string[]` to appease Pinpoint.
99
+ */
100
+ function asAttributeMap(values) {
101
+ const valuesWithStringArrays = {};
102
+ Object.entries(values).forEach(([key, value]) => {
103
+ if (!value) {
104
+ valuesWithStringArrays[key] = null;
105
+ }
106
+ else if (Array.isArray(value)) {
107
+ valuesWithStringArrays[key] = value;
108
+ }
109
+ else {
110
+ valuesWithStringArrays[key] = [value];
111
+ }
112
+ });
113
+ return valuesWithStringArrays;
114
+ }
115
+ exports.asAttributeMap = asAttributeMap;
95
116
  //# sourceMappingURL=amplifyReporter.js.map
@@ -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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"}