@crimson-education/browser-logger 4.1.4 → 5.0.0-beta.10

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.
Files changed (53) hide show
  1. package/README.md +81 -29
  2. package/lib/index.d.ts +1 -1
  3. package/lib/index.d.ts.map +1 -1
  4. package/lib/index.js +22 -41
  5. package/lib/index.js.map +1 -1
  6. package/lib/logger/consoleTransport.d.ts +1 -1
  7. package/lib/logger/consoleTransport.d.ts.map +1 -1
  8. package/lib/logger/consoleTransport.js +16 -22
  9. package/lib/logger/consoleTransport.js.map +1 -1
  10. package/lib/logger/datadogTransport.d.ts +1 -1
  11. package/lib/logger/datadogTransport.d.ts.map +1 -1
  12. package/lib/logger/datadogTransport.js +4 -8
  13. package/lib/logger/datadogTransport.js.map +1 -1
  14. package/lib/logger/index.js +29 -49
  15. package/lib/logger/index.js.map +1 -1
  16. package/lib/logger/index.test.js +16 -18
  17. package/lib/logger/index.test.js.map +1 -1
  18. package/lib/logger/utils.js +4 -9
  19. package/lib/logger/utils.js.map +1 -1
  20. package/lib/reporters/amplifyReporter.d.ts +4 -4
  21. package/lib/reporters/amplifyReporter.d.ts.map +1 -1
  22. package/lib/reporters/amplifyReporter.js +210 -133
  23. package/lib/reporters/amplifyReporter.js.map +1 -1
  24. package/lib/reporters/amplifyReporter.test.js +9 -12
  25. package/lib/reporters/amplifyReporter.test.js.map +1 -1
  26. package/lib/reporters/datadogReporter.d.ts +1 -1
  27. package/lib/reporters/datadogReporter.d.ts.map +1 -1
  28. package/lib/reporters/datadogReporter.js +118 -48
  29. package/lib/reporters/datadogReporter.js.map +1 -1
  30. package/lib/reporters/gtmReporter.d.ts +1 -1
  31. package/lib/reporters/gtmReporter.d.ts.map +1 -1
  32. package/lib/reporters/gtmReporter.js +1 -5
  33. package/lib/reporters/gtmReporter.js.map +1 -1
  34. package/lib/reporters/index.js +46 -71
  35. package/lib/reporters/index.js.map +1 -1
  36. package/lib/reporters/logReporter.js +24 -34
  37. package/lib/reporters/logReporter.js.map +1 -1
  38. package/lib/types/index.js +2 -18
  39. package/lib/types/index.js.map +1 -1
  40. package/lib/types/logger.d.ts +3 -3
  41. package/lib/types/logger.d.ts.map +1 -1
  42. package/lib/types/logger.js +2 -5
  43. package/lib/types/logger.js.map +1 -1
  44. package/lib/types/reporter.d.ts +6 -6
  45. package/lib/types/reporter.d.ts.map +1 -1
  46. package/lib/types/reporter.js +1 -2
  47. package/lib/utils.js +1 -5
  48. package/lib/utils.js.map +1 -1
  49. package/lib/utils.test.js +2 -4
  50. package/lib/utils.test.js.map +1 -1
  51. package/package.json +14 -16
  52. package/src/reporters/amplifyReporter.ts +233 -138
  53. package/src/reporters/datadogReporter.ts +107 -19
@@ -1,33 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const _1 = require(".");
4
- const __1 = require("..");
5
- const reporters_1 = require("../reporters");
6
- const types_1 = require("../types");
1
+ import { createLogger, setLogLevel as setGlobalLogLevel, logTransports, consoleTransport } from '.';
2
+ import { init } from '..';
3
+ import { addMetadata, setUser } from '../reporters';
4
+ import { LogLevel } from '../types';
7
5
  // This isn't actually asserting anything.
8
6
  // But it ensures that the logs look correct, and no errors get thrown.
9
7
  describe('logger', () => {
10
- const logger = (0, _1.createLogger)({
8
+ const logger = createLogger({
11
9
  metadata: {
12
10
  service: 'test',
13
11
  },
14
12
  });
15
13
  // Manually set the log transports.
16
- _1.logTransports.length = 0;
17
- const transport = (0, _1.consoleTransport)({
14
+ logTransports.length = 0;
15
+ const transport = consoleTransport({
18
16
  // So we can see everything.
19
17
  ignoreMetadataPatterns: [],
20
18
  });
21
- _1.logTransports.push(transport);
19
+ logTransports.push(transport);
22
20
  it('should log', async () => {
23
21
  logger.log({
24
22
  level: 'info',
25
23
  message: 'data',
26
24
  });
27
25
  logger.log({ data: 'obj' });
28
- logger.log(types_1.LogLevel.Debug, 'level, message', { data: 'obj' });
29
- logger.log(types_1.LogLevel.Debug, 'level, message, metadata', { data: 'obj' });
30
- (0, __1.init)({
26
+ logger.log(LogLevel.Debug, 'level, message', { data: 'obj' });
27
+ logger.log(LogLevel.Debug, 'level, message, metadata', { data: 'obj' });
28
+ init({
31
29
  service: 'test-service',
32
30
  environment: 'test',
33
31
  version: 'no-version',
@@ -41,17 +39,17 @@ describe('logger', () => {
41
39
  const timer = logger.startTimer();
42
40
  await new Promise((resolve) => setTimeout(resolve, 1000));
43
41
  timer.done({ message: 'timer done', metadata: { id: 1 } });
44
- (0, _1.setLogLevel)(types_1.LogLevel.Info);
45
- (0, reporters_1.addMetadata)({ global: 'metadata' });
42
+ setGlobalLogLevel(LogLevel.Info);
43
+ addMetadata({ global: 'metadata' });
46
44
  logger.debug('You should not see this');
47
45
  logger.info('You should see this with { global: "metadata" }');
48
- (0, _1.setLogLevel)(null);
49
- (0, reporters_1.setUser)({
46
+ setGlobalLogLevel(null);
47
+ setUser({
50
48
  id: '123',
51
49
  email: 'test@example.com',
52
50
  });
53
51
  logger.debug('debug call, user metadata');
54
- transport.logLevel = types_1.LogLevel.Info;
52
+ transport.logLevel = LogLevel.Info;
55
53
  logger.debug('You should not see this');
56
54
  logger.info('You should see this');
57
55
  transport.logLevel = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/logger/index.test.ts"],"names":[],"mappings":";;AAAA,wBAAoG;AACpG,0BAA0B;AAC1B,4CAAoD;AACpD,oCAAoC;AAEpC,0CAA0C;AAC1C,uEAAuE;AACvE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,MAAM,MAAM,GAAG,IAAA,eAAY,EAAC;QAC1B,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM;SAChB;KACF,CAAC,CAAC;IAEH,mCAAmC;IACnC,gBAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,MAAM,SAAS,GAAG,IAAA,mBAAgB,EAAC;QACjC,4BAA4B;QAC5B,sBAAsB,EAAE,EAAE;KAC3B,CAAC,CAAC;IACH,gBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE9B,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,CAAC,GAAG,CAAC;YACT,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,gBAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,gBAAQ,CAAC,KAAK,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAExE,IAAA,QAAI,EAAC;YACH,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,YAAY;YACrB,eAAe,EAAE;gBACf,WAAW,EAAE,MAAM;aACpB;SACF,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtC,UAAU,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAEzE,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3D,IAAA,cAAiB,EAAC,gBAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,IAAA,uBAAW,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAEpC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAE/D,IAAA,cAAiB,EAAC,IAAI,CAAC,CAAC;QACxB,IAAA,mBAAO,EAAC;YACN,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,kBAAkB;SAC1B,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE1C,SAAS,CAAC,QAAQ,GAAG,gBAAQ,CAAC,IAAI,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/logger/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLogMessage = exports.isAboveLevel = void 0;
4
- const types_1 = require("../types");
1
+ import { LogLevel } from '../types';
5
2
  /**
6
3
  * Checks if a log level is above the global log level.
7
4
  * @param level The log level to check
8
5
  * @param checkLevel THe log level to check against
9
6
  * @returns Is above the checkLevel?
10
7
  */
11
- function isAboveLevel(level, checkLevel) {
12
- const levels = [types_1.LogLevel.Debug, types_1.LogLevel.Info, types_1.LogLevel.Warn, types_1.LogLevel.Error];
8
+ export function isAboveLevel(level, checkLevel) {
9
+ const levels = [LogLevel.Debug, LogLevel.Info, LogLevel.Warn, LogLevel.Error];
13
10
  return levels.indexOf(level) >= levels.indexOf(checkLevel);
14
11
  }
15
- exports.isAboveLevel = isAboveLevel;
16
12
  /**
17
13
  * Ensures a message output is a string.
18
14
  * @param message The message to assert is/convert to a string
19
15
  * @returns The message as a string
20
16
  */
21
- function getLogMessage(message) {
17
+ export function getLogMessage(message) {
22
18
  if (typeof message === 'string') {
23
19
  return message;
24
20
  }
@@ -28,5 +24,4 @@ function getLogMessage(message) {
28
24
  }
29
25
  return String(message);
30
26
  }
31
- exports.getLogMessage = getLogMessage;
32
27
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/logger/utils.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AAEpC;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAe,EAAE,UAAoB;IAChE,MAAM,MAAM,GAAG,CAAC,gBAAQ,CAAC,KAAK,EAAE,gBAAQ,CAAC,IAAI,EAAE,gBAAQ,CAAC,IAAI,EAAE,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7D,CAAC;AAHD,oCAGC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAY;IACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,OAAO,CAAC;KAChB;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;QACnD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC7B;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AATD,sCASC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/logger/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAe,EAAE,UAAoB;IAChE,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAY;IACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,OAAO,CAAC;KAChB;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;QACnD,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC7B;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { IReporter, Metadata, ReporterConfigBase, ServiceInfo } from '../types';
2
- declare type AttributeMap = Record<string, string[] | string | null>;
3
- declare type AmplifyAutoTrackSource = 'pageView' | 'event' | 'session';
2
+ type AttributeMap = Record<string, string[] | string | null>;
3
+ type AmplifyAutoTrackSource = 'pageView' | 'event' | 'session';
4
4
  export interface AmplifyReporterConfig extends ReporterConfigBase {
5
5
  /**
6
6
  * AWS Region for Amplify.
@@ -10,7 +10,7 @@ export interface AmplifyReporterConfig extends ReporterConfigBase {
10
10
  * The Identity Pool Id to use for reporting, if set to false, Auth.configure is not called.
11
11
  * This must be called manually for the reporter to work.
12
12
  */
13
- identityPoolId: string | false;
13
+ identityPoolId: string;
14
14
  /**
15
15
  * The Pinpoint App Id to report to.
16
16
  */
@@ -61,7 +61,7 @@ export interface AmplifyReporterConfig extends ReporterConfigBase {
61
61
  *
62
62
  * @see https://docs.amplify.aws/lib/analytics/getting-started/q/platform/js/#set-up-existing-analytics-backend
63
63
  */
64
- declare type AmplifyReporterBufferingConfig = {
64
+ type AmplifyReporterBufferingConfig = {
65
65
  /** Number of items to buffer for sending. */
66
66
  bufferSize?: number;
67
67
  /** Number of events sent each time Pinpoint flushes. */
@@ -1 +1 @@
1
- {"version":3,"file":"amplifyReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,SAAS,EACT,QAAQ,EAER,kBAAkB,EAGlB,WAAW,EACZ,MAAM,UAAU,CAAC;AAIlB,aAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D,aAAK,sBAAsB,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,KAAK,CAAC;IAC/B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,eAAe,CAAC,CAAC,MAAM,EAAE,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEvE;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C;AAED;;;;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,CA8H3F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,UAAO,GAAG,YAAY,CAqBhG;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,SAAS,GAAE,MAAM,GAAG,SAAqB,EACzC,WAAW,UAAO,GACjB,YAAY,CAsBd"}
1
+ {"version":3,"file":"amplifyReporter.d.ts","sourceRoot":"","sources":["../../src/reporters/amplifyReporter.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,SAAS,EACT,QAAQ,EAER,kBAAkB,EAGlB,WAAW,EACZ,MAAM,UAAU,CAAC;AAMlB,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D,KAAK,sBAAsB,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAkI/D,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,eAAe,CAAC,CAAC,MAAM,EAAE,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEvE;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,8BAA8B,CAAC;CAC5C;AAED;;;;GAIG;AACH,KAAK,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,CAuF3F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,UAAO,GAAG,YAAY,CAqBhG;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,SAAS,GAAE,MAAM,GAAG,SAAqB,EACzC,WAAW,UAAO,GACjB,YAAY,CA2Bd"}
@@ -1,24 +1,135 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildAttributeMap = exports.asAttributeMap = exports.amplifyReporter = void 0;
4
- const auth_1 = require("@aws-amplify/auth");
5
- const analytics_1 = require("@aws-amplify/analytics");
6
- const protocol_http_1 = require("@aws-sdk/protocol-http");
7
- const logger_1 = require("../logger");
8
- function amplifyReporter(info, config) {
9
- var _a;
10
- if (config.identityPoolId !== false) {
11
- auth_1.Auth.configure({
12
- region: config.region,
13
- identityPoolId: config.identityPoolId,
14
- userPoolId: config.userPoolId,
15
- userPoolWebClientId: config.userPoolWebClientId,
1
+ import { identifyUser, record } from '@aws-amplify/analytics';
2
+ import { logger } from '../logger';
3
+ // Note: fetchAuthSession was previously imported but unused; removing to satisfy linter
4
+ import { Amplify } from 'aws-amplify';
5
+ // Auto-tracking implementation for Gen2
6
+ class AmplifyAutoTracker {
7
+ config;
8
+ allMetadata;
9
+ currentUser = null;
10
+ sessionStartTime = Date.now();
11
+ pageViewCount = 0;
12
+ lastPageUrl = window.location.href;
13
+ isPageVisible = !document.hidden;
14
+ constructor(config, allMetadata) {
15
+ this.config = config;
16
+ this.allMetadata = allMetadata;
17
+ this.setupEventListeners();
18
+ }
19
+ setupEventListeners() {
20
+ // Page visibility tracking
21
+ document.addEventListener('visibilitychange', () => {
22
+ this.isPageVisible = !document.hidden;
23
+ if (this.config.autoTrackSessions) {
24
+ this.trackSessionState();
25
+ }
26
+ });
27
+ // Page view tracking
28
+ if (this.config.autoTrackPageViews) {
29
+ this.trackPageView();
30
+ // Track route changes for SPAs
31
+ let currentUrl = window.location.href;
32
+ const observer = new MutationObserver(() => {
33
+ if (window.location.href !== currentUrl) {
34
+ currentUrl = window.location.href;
35
+ this.trackPageView();
36
+ }
37
+ });
38
+ observer.observe(document.body, { childList: true, subtree: true });
39
+ }
40
+ // User interaction tracking
41
+ if (this.config.autoTrackEvents) {
42
+ this.setupInteractionTracking();
43
+ }
44
+ }
45
+ trackPageView() {
46
+ this.pageViewCount++;
47
+ const pageViewEvent = {
48
+ message: 'Page View',
49
+ metadata: {
50
+ url: window.location.href,
51
+ title: document.title,
52
+ referrer: document.referrer,
53
+ pageViewCount: this.pageViewCount,
54
+ ...this.getAutoTrackMetadata('pageView'),
55
+ },
56
+ };
57
+ record({
58
+ name: pageViewEvent.message,
59
+ attributes: asAttributeMap(pageViewEvent.metadata, false),
16
60
  });
17
61
  }
18
- const wrapAutoTrackMiddleware = (source) => {
19
- const { beforeAutoTrack } = config;
20
- return typeof beforeAutoTrack === 'function' ? () => { var _a; return (_a = beforeAutoTrack(source)) !== null && _a !== void 0 ? _a : {}; } : undefined;
21
- };
62
+ trackSessionState() {
63
+ const sessionDuration = Date.now() - this.sessionStartTime;
64
+ const sessionEvent = {
65
+ message: this.isPageVisible ? 'Session Active' : 'Session Inactive',
66
+ metadata: {
67
+ sessionDuration,
68
+ isVisible: this.isPageVisible,
69
+ ...this.getAutoTrackMetadata('session'),
70
+ },
71
+ };
72
+ record({
73
+ name: sessionEvent.message,
74
+ attributes: asAttributeMap(sessionEvent.metadata, false),
75
+ });
76
+ }
77
+ setupInteractionTracking() {
78
+ const selectorPrefix = this.config.selectorPrefix ?? 'data-analytics-';
79
+ document.addEventListener('click', (event) => {
80
+ const target = event.target;
81
+ if (!target)
82
+ return;
83
+ // Find the closest element with analytics attributes
84
+ const analyticsElement = target.closest(`[${selectorPrefix}name]`);
85
+ if (!analyticsElement)
86
+ return;
87
+ const analyticsName = analyticsElement.getAttribute(`${selectorPrefix}name`);
88
+ if (!analyticsName)
89
+ return;
90
+ const interactionEvent = {
91
+ message: 'User Interaction',
92
+ metadata: {
93
+ elementName: analyticsName,
94
+ elementType: target.tagName.toLowerCase(),
95
+ elementText: target.textContent?.slice(0, 100),
96
+ interactionType: 'click',
97
+ ...this.getAutoTrackMetadata('event'),
98
+ },
99
+ };
100
+ record({
101
+ name: interactionEvent.message,
102
+ attributes: asAttributeMap(interactionEvent.metadata, false),
103
+ });
104
+ });
105
+ }
106
+ getAutoTrackMetadata(source) {
107
+ const { beforeAutoTrack } = this.config;
108
+ return typeof beforeAutoTrack === 'function' ? (beforeAutoTrack(source) ?? {}) : {};
109
+ }
110
+ setUser(user) {
111
+ this.currentUser = user;
112
+ }
113
+ updateMetadata(metadata) {
114
+ Object.assign(this.allMetadata, metadata);
115
+ }
116
+ }
117
+ export function amplifyReporter(info, config) {
118
+ Amplify.configure({
119
+ Auth: {
120
+ Cognito: {
121
+ identityPoolId: config.identityPoolId,
122
+ allowGuestAccess: true,
123
+ },
124
+ },
125
+ Analytics: {
126
+ Pinpoint: {
127
+ appId: config.analyticsAppId,
128
+ region: config.region,
129
+ ...config.buffering,
130
+ },
131
+ },
132
+ });
22
133
  const allMetadata = asAttributeMap({
23
134
  appName: info.service,
24
135
  service: info.service,
@@ -26,51 +137,20 @@ function amplifyReporter(info, config) {
26
137
  environment: info.environment,
27
138
  version: info.version,
28
139
  });
29
- analytics_1.Analytics.configure({
30
- region: config.region,
31
- appId: config.analyticsAppId,
32
- endpoint: {
33
- attributes: allMetadata,
34
- },
35
- ...config.buffering,
36
- });
37
- // Session autotracking is enabled by default for backwards compatibility reasons, so we _must_
38
- // call this unconditionally to ensure we opt out of session tracking when `autoTrackSessions` isn't set
39
- // See: https://docs.amplify.aws/lib/analytics/autotrack/q/platform/js/#session-tracking
40
- analytics_1.Analytics.autoTrack('session', {
41
- enable: config.autoTrackSessions === true,
42
- attributes: wrapAutoTrackMiddleware('session'),
43
- });
44
- if (config.autoTrackPageViews) {
45
- analytics_1.Analytics.autoTrack('pageView', {
46
- enable: true,
47
- eventName: 'pageView',
48
- type: 'SPA',
49
- provider: 'AWSPinpoint',
50
- attributes: wrapAutoTrackMiddleware('pageView'),
51
- });
52
- }
53
- if (config.autoTrackEvents) {
54
- analytics_1.Analytics.autoTrack('event', {
55
- enable: true,
56
- selectorPrefix: (_a = config.selectorPrefix) !== null && _a !== void 0 ? _a : 'data-analytics-',
57
- attributes: wrapAutoTrackMiddleware('event'),
58
- });
59
- }
140
+ // Initialize auto-tracker for Gen2
141
+ const autoTracker = new AmplifyAutoTracker(config, allMetadata);
60
142
  if (config.proxyUrl) {
61
- installPinpointProxy(new URL(config.proxyUrl));
143
+ // installPinpointProxy(new URL(config.proxyUrl));
62
144
  }
63
145
  const reporter = {
64
146
  trackEvent: function (event) {
65
- analytics_1.Analytics.record({
147
+ record({
66
148
  name: event.message,
67
149
  attributes: asAttributeMap({
68
150
  ...event.metadata,
69
151
  ...event.tags,
70
152
  }, false),
71
153
  metrics: event.metrics,
72
- }).catch(() => {
73
- // Swallow; see: https://crimsonhq.slack.com/archives/G4UN6Q4KF/p1648599302847539
74
154
  });
75
155
  },
76
156
  addBreadcrumb: function (breadcrumb) {
@@ -84,33 +164,25 @@ function amplifyReporter(info, config) {
84
164
  },
85
165
  addMetadata: function (metadata) {
86
166
  Object.assign(allMetadata, asAttributeMap(metadata, true));
87
- analytics_1.Analytics.updateEndpoint({
88
- attributes: allMetadata,
89
- }).catch(() => {
90
- // Swallow; see: https://crimsonhq.slack.com/archives/G4UN6Q4KF/p1648599302847539
91
- });
167
+ autoTracker.updateMetadata(asAttributeMap(metadata, true));
168
+ // Note: updateEndpoint is not available in Amplify v7
169
+ // Metadata updates would need to be handled differently
92
170
  },
93
171
  setUser: function (user) {
94
- var _a, _b;
95
172
  const userMetadata = user
96
173
  ? asAttributeMap({
97
174
  userId: user.id,
98
175
  })
99
176
  : {};
100
177
  Object.assign(allMetadata, asAttributeMap(userMetadata, true));
101
- analytics_1.Analytics.updateEndpoint({
102
- userId: (_a = user === null || user === void 0 ? void 0 : user.id) !== null && _a !== void 0 ? _a : '',
103
- attributes: allMetadata,
104
- userAttributes: user
105
- ? asAttributeMap({
106
- id: user.id,
107
- email: user.email,
108
- name: (_b = user.name) !== null && _b !== void 0 ? _b : user.email,
109
- username: user.username,
110
- })
111
- : {},
112
- }).catch(() => {
113
- // Swallow; see: https://crimsonhq.slack.com/archives/G4UN6Q4KF/p1648599302847539
178
+ autoTracker.setUser(user);
179
+ // Note: updateEndpoint is not available in Amplify v7
180
+ // User updates would need to be handled differently
181
+ identifyUser({
182
+ userId: user?.id ?? '',
183
+ userProfile: {
184
+ email: user?.email,
185
+ },
114
186
  });
115
187
  },
116
188
  setRouteName: function (routeName) {
@@ -122,41 +194,43 @@ function amplifyReporter(info, config) {
122
194
  };
123
195
  return reporter;
124
196
  }
125
- exports.amplifyReporter = amplifyReporter;
126
197
  /**
127
198
  * Pinpoint has strict attribute name and value length limits
128
199
  */
129
- function asAttributeMap(values, groupValues = true) {
200
+ export function asAttributeMap(values, groupValues = true) {
130
201
  const attributeMap = buildAttributeMap(values, undefined, groupValues);
131
202
  const checkedEntries = Object.entries(attributeMap).map(([key, value]) => {
132
- var _a, _b;
133
203
  const truncatedKey = key.length > 50 ? `___${key.slice(-47)}` : key;
134
204
  const truncatedValue = Array.isArray(value)
135
- ? (_a = value === null || value === void 0 ? void 0 : value.map((val) => val.slice(0, 100))) !== null && _a !== void 0 ? _a : null
136
- : (_b = value === null || value === void 0 ? void 0 : value.slice(0, 100)) !== null && _b !== void 0 ? _b : null;
205
+ ? (value?.map((val) => val.slice(0, 100)) ?? null)
206
+ : (value?.slice(0, 100) ?? null);
137
207
  return [truncatedKey, truncatedValue];
138
208
  });
139
209
  // Pinpoint only accepts 40 attributes
140
210
  if (checkedEntries.length > 40) {
141
- logger_1.logger.error(`Amplify only allows 40 attributes per event, truncating to 40 attributes`, {
211
+ logger.error(`Amplify only allows 40 attributes per event, truncating to 40 attributes`, {
142
212
  attributes: checkedEntries,
143
213
  });
144
214
  checkedEntries.length = 40;
145
215
  }
146
216
  return Object.fromEntries(checkedEntries);
147
217
  }
148
- exports.asAttributeMap = asAttributeMap;
149
218
  /**
150
219
  * Pinpoint expects `endpoint.attributes` and `endpoint.userAttributes` to have
151
220
  * values which are string arrays. This function takes in an object and ensures
152
221
  * all of its values are of type `string[]` to appease Pinpoint.
153
222
  */
154
- function buildAttributeMap(values, parentKey = undefined, groupValues = true) {
223
+ export function buildAttributeMap(values, parentKey = undefined, groupValues = true) {
155
224
  const valuesWithStringArrays = {};
156
225
  Object.entries(values).forEach(([key, value]) => {
157
226
  const combinedKey = parentKey ? [parentKey, key].join('.') : key;
158
- if (!value) {
159
- valuesWithStringArrays[combinedKey] = null;
227
+ // Only treat undefined or null as empty; avoid converting falsy values like ''/0/false to null
228
+ if (value === undefined || value === null) {
229
+ // For event attributes (groupValues === false), Pinpoint rejects null values.
230
+ // In that case we omit the key entirely to avoid "Event attribute value can not be null".
231
+ if (groupValues) {
232
+ valuesWithStringArrays[combinedKey] = null;
233
+ }
160
234
  }
161
235
  else if (groupValues && Array.isArray(value)) {
162
236
  valuesWithStringArrays[combinedKey] = value.map((element) => typeof element === 'string' ? element : JSON.stringify(element));
@@ -172,54 +246,57 @@ function buildAttributeMap(values, parentKey = undefined, groupValues = true) {
172
246
  });
173
247
  return valuesWithStringArrays;
174
248
  }
175
- exports.buildAttributeMap = buildAttributeMap;
176
- function installPinpointProxy(proxyUrl) {
177
- // No public API for overriding where the Pinpoint client sends events to... 🤮
178
- // In theory you can pass in an `endpoint` to the Pinpoint client's constructor like any other AWS
179
- // client, but Amplify's analytics doesn't expose anything we can use to get an endpoint threaded
180
- // down to the Pinpoint client's constructor.
181
- //
182
- // The Pinpoint client _also_ isn't available synchronously because it is instantiated when events
183
- // get sent out, and then reconfigured whenever the API credentials change. We need to hook `_initClients`
184
- // to ensure that the Pinpoint client being used is always patched with our custom endpoint.
185
- const provider = analytics_1.Analytics.getPluggable('AWSPinpoint');
186
- if (!provider || typeof provider._initClients !== 'function') {
187
- logger_1.logger.error('Installation of the Pinpoint proxy failed. This likely means the internals of the @aws-amplify/analytics package have changed.');
188
- return;
189
- }
190
- const originalInitClients = provider._initClients;
191
- const requestMiddleware = (next) => async (args) => {
192
- const pinpointClient = provider.pinpointClient;
193
- if (pinpointClient && proxyUrl.pathname !== '/' && protocol_http_1.HttpRequest.isInstance(args.request)) {
194
- // Add proxyUrl.pathname to final request url if it was provided
195
- const shouldStripSlash = proxyUrl.pathname.endsWith('/');
196
- args.request.path = `${proxyUrl.pathname}${args.request.path.slice(shouldStripSlash ? 1 : 0)}`;
197
- // Wrap request body so the proxy has signing info
198
- if (typeof args.request.body === 'string') {
199
- const credentials = await pinpointClient.config.credentials();
200
- args.request.body = JSON.stringify({
201
- credentials,
202
- data: JSON.parse(args.request.body),
203
- });
204
- }
205
- }
206
- return next(args);
207
- };
208
- provider._initClients = async (credentials) => {
209
- const result = await originalInitClients.call(provider, credentials);
210
- const pinpointClient = provider.pinpointClient;
211
- if (pinpointClient) {
212
- pinpointClient.config.endpoint = () => Promise.resolve({
213
- hostname: proxyUrl.hostname,
214
- // Passing proxyUrl.pathname here doesn't work; it gets overridden
215
- path: '/',
216
- port: undefined,
217
- protocol: proxyUrl.protocol,
218
- });
219
- pinpointClient.middlewareStack.remove(requestMiddleware);
220
- pinpointClient.middlewareStack.add(requestMiddleware, { step: 'finalizeRequest' });
221
- }
222
- return result;
223
- };
224
- }
249
+ // function installPinpointProxy(proxyUrl: URL) {
250
+ // // No public API for overriding where the Pinpoint client sends events to... 🤮
251
+ // // In theory you can pass in an `endpoint` to the Pinpoint client's constructor like any other AWS
252
+ // // client, but Amplify's analytics doesn't expose anything we can use to get an endpoint threaded
253
+ // // down to the Pinpoint client's constructor.
254
+ // //
255
+ // // The Pinpoint client _also_ isn't available synchronously because it is instantiated when events
256
+ // // get sent out, and then reconfigured whenever the API credentials change. We need to hook `_initClients`
257
+ // // to ensure that the Pinpoint client being used is always patched with our custom endpoint.
258
+ // const provider = (globalThis as any).Analytics?.getPluggable?.('AWSPinpoint') as any;
259
+ // if (!provider || typeof provider._initClients !== 'function') {
260
+ // logger.error(
261
+ // 'Installation of the Pinpoint proxy failed. This likely means the internals of the @aws-amplify/analytics package have changed.',
262
+ // );
263
+ // return;
264
+ // }
265
+ // const originalInitClients = provider._initClients;
266
+ // const requestMiddleware: FinalizeRequestMiddleware<ServiceInputTypes, ServiceOutputTypes> =
267
+ // (next) => async (args) => {
268
+ // const pinpointClient = provider.pinpointClient as PinpointClient | undefined;
269
+ // if (pinpointClient && proxyUrl.pathname !== '/' && HttpRequest.isInstance(args.request)) {
270
+ // // Add proxyUrl.pathname to final request url if it was provided
271
+ // const shouldStripSlash = proxyUrl.pathname.endsWith('/');
272
+ // args.request.path = `${proxyUrl.pathname}${args.request.path.slice(shouldStripSlash ? 1 : 0)}`;
273
+ // // Wrap request body so the proxy has signing info
274
+ // if (typeof args.request.body === 'string') {
275
+ // const credentials = await pinpointClient.config.credentials();
276
+ // args.request.body = JSON.stringify({
277
+ // credentials,
278
+ // data: JSON.parse(args.request.body),
279
+ // });
280
+ // }
281
+ // }
282
+ // return next(args);
283
+ // };
284
+ // provider._initClients = async (credentials: unknown) => {
285
+ // const result = await originalInitClients.call(provider, credentials);
286
+ // const pinpointClient = provider.pinpointClient as PinpointClient | undefined;
287
+ // if (pinpointClient) {
288
+ // pinpointClient.config.endpoint = (): Promise<Endpoint> =>
289
+ // Promise.resolve({
290
+ // hostname: proxyUrl.hostname,
291
+ // // Passing proxyUrl.pathname here doesn't work; it gets overridden
292
+ // path: '/',
293
+ // port: undefined,
294
+ // protocol: proxyUrl.protocol,
295
+ // });
296
+ // pinpointClient.middlewareStack.remove(requestMiddleware);
297
+ // pinpointClient.middlewareStack.add(requestMiddleware, { step: 'finalizeRequest' });
298
+ // }
299
+ // return result;
300
+ // };
301
+ // }
225
302
  //# 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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"}