@crimson-education/browser-logger 1.3.0 → 1.4.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.
@@ -9,6 +9,30 @@ export declare type AmplifyReporterConfig = {
9
9
  autoTrackSessions?: boolean;
10
10
  selectorPrefix?: string;
11
11
  ignoreBreadcrumbCategories?: string[];
12
+ buffering?: AmplifyReporterBufferingConfig;
13
+ };
14
+ /**
15
+ * Configuration options for the buffering behavior of Pinpoint's event tracker.
16
+ *
17
+ * @see https://docs.amplify.aws/lib/analytics/getting-started/q/platform/js/#set-up-existing-analytics-backend
18
+ */
19
+ declare type AmplifyReporterBufferingConfig = {
20
+ /** Number of items to buffer for sending. */
21
+ bufferSize?: number;
22
+ /** Number of events sent each time Pinpoint flushes. */
23
+ flushSize?: number;
24
+ /** Interval Pinpoint flushes analytics events. Measured in milliseconds. */
25
+ flushInterval?: number;
26
+ /** The maximum number of times Pinpoint will retry to send an event. */
27
+ resendLimit?: number;
12
28
  };
13
29
  export declare function amplifyReporter(info: ServiceInfo, config: AmplifyReporterConfig): IReporter;
30
+ declare type AttributeMap = Record<string, string[] | null>;
31
+ /**
32
+ * Pinpoint expects `endpoint.attributes` and `endpoint.userAttributes` to have
33
+ * values which are string arrays. This function takes in an object and ensures
34
+ * all of its values are of type `string[]` to appease Pinpoint.
35
+ */
36
+ export declare function asAttributeMap(values: Record<string, string | string[] | null | undefined>): AttributeMap;
37
+ export {};
14
38
  //# 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,CAiG3F"}
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;IACtC,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C,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,CA8F3F;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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.amplifyReporter = void 0;
3
+ exports.asAttributeMap = exports.amplifyReporter = void 0;
4
4
  const aws_amplify_1 = require("aws-amplify");
5
5
  function amplifyReporter(info, config) {
6
6
  var _a;
@@ -8,11 +8,11 @@ function amplifyReporter(info, config) {
8
8
  identityPoolId: config.identityPoolId,
9
9
  region: config.region,
10
10
  });
11
- const allMetadata = {
12
- service: [info.service],
13
- environment: [info.service],
14
- version: [info.version],
15
- };
11
+ const allMetadata = asAttributeMap({
12
+ service: info.service,
13
+ environment: info.service,
14
+ version: info.version,
15
+ });
16
16
  aws_amplify_1.Analytics.configure({
17
17
  appId: config.analyticsAppId,
18
18
  region: config.region,
@@ -20,6 +20,7 @@ function amplifyReporter(info, config) {
20
20
  endpoint: {
21
21
  attributes: allMetadata,
22
22
  },
23
+ ...config.buffering,
23
24
  });
24
25
  if (config.autoTrackPageViews) {
25
26
  aws_amplify_1.Analytics.autoTrack('pageView', {
@@ -60,8 +61,7 @@ function amplifyReporter(info, config) {
60
61
  });
61
62
  },
62
63
  addMetadata: function (metadata) {
63
- const metadataWithStringArrays = Object.entries(metadata).reduce((acc, [key, value]) => ({ ...acc, [key]: Array.isArray(value) ? value : [value] }), {});
64
- Object.assign(allMetadata, metadataWithStringArrays);
64
+ Object.assign(allMetadata, asAttributeMap(metadata));
65
65
  aws_amplify_1.Analytics.updateEndpoint({
66
66
  attributes: allMetadata,
67
67
  });
@@ -71,12 +71,12 @@ function amplifyReporter(info, config) {
71
71
  aws_amplify_1.Analytics.updateEndpoint({
72
72
  userId: (_a = user === null || user === void 0 ? void 0 : user.id) !== null && _a !== void 0 ? _a : '',
73
73
  userAttributes: user
74
- ? {
74
+ ? asAttributeMap({
75
75
  id: user.id,
76
76
  email: user.email,
77
77
  name: (_b = user.name) !== null && _b !== void 0 ? _b : user.email,
78
78
  username: user.username,
79
- }
79
+ })
80
80
  : {},
81
81
  });
82
82
  },
@@ -93,4 +93,25 @@ function amplifyReporter(info, config) {
93
93
  return reporter;
94
94
  }
95
95
  exports.amplifyReporter = amplifyReporter;
96
+ /**
97
+ * Pinpoint expects `endpoint.attributes` and `endpoint.userAttributes` to have
98
+ * values which are string arrays. This function takes in an object and ensures
99
+ * all of its values are of type `string[]` to appease Pinpoint.
100
+ */
101
+ function asAttributeMap(values) {
102
+ const valuesWithStringArrays = {};
103
+ Object.entries(values).forEach(([key, value]) => {
104
+ if (!value) {
105
+ valuesWithStringArrays[key] = null;
106
+ }
107
+ else if (Array.isArray(value)) {
108
+ valuesWithStringArrays[key] = value;
109
+ }
110
+ else {
111
+ valuesWithStringArrays[key] = [value];
112
+ }
113
+ });
114
+ return valuesWithStringArrays;
115
+ }
116
+ exports.asAttributeMap = asAttributeMap;
96
117
  //# 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crimson-education/browser-logger",
3
- "version": "1.3.0",
3
+ "version": "1.4.1",
4
4
  "description": "An abstract logger and reporting utility for browser environments",
5
5
  "scripts": {
6
6
  "prepack": "npm run build",