@aws-amplify/analytics 7.0.16 → 7.0.17-unstable.0d2aa5d.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.
Files changed (120) hide show
  1. package/dist/cjs/providers/kinesis/apis/flushEvents.js +8 -6
  2. package/dist/cjs/providers/kinesis/apis/flushEvents.js.map +1 -1
  3. package/dist/cjs/providers/kinesis/apis/record.js +7 -7
  4. package/dist/cjs/providers/kinesis/apis/record.js.map +1 -1
  5. package/dist/cjs/providers/kinesis/utils/getEventBuffer.js +2 -2
  6. package/dist/cjs/providers/kinesis/utils/getEventBuffer.js.map +1 -1
  7. package/dist/cjs/providers/kinesis-firehose/apis/flushEvents.js +10 -8
  8. package/dist/cjs/providers/kinesis-firehose/apis/flushEvents.js.map +1 -1
  9. package/dist/cjs/providers/kinesis-firehose/apis/record.js +8 -8
  10. package/dist/cjs/providers/kinesis-firehose/apis/record.js.map +1 -1
  11. package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js +2 -2
  12. package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js.map +1 -1
  13. package/dist/cjs/providers/personalize/apis/flushEvents.js +10 -8
  14. package/dist/cjs/providers/personalize/apis/flushEvents.js.map +1 -1
  15. package/dist/cjs/providers/personalize/apis/record.js +14 -14
  16. package/dist/cjs/providers/personalize/apis/record.js.map +1 -1
  17. package/dist/cjs/providers/personalize/utils/autoTrackMedia.js +8 -8
  18. package/dist/cjs/providers/personalize/utils/autoTrackMedia.js.map +1 -1
  19. package/dist/cjs/providers/personalize/utils/getEventBuffer.js +2 -2
  20. package/dist/cjs/providers/personalize/utils/getEventBuffer.js.map +1 -1
  21. package/dist/cjs/providers/pinpoint/apis/flushEvents.js +20 -16
  22. package/dist/cjs/providers/pinpoint/apis/flushEvents.js.map +1 -1
  23. package/dist/cjs/providers/pinpoint/apis/identifyUser.js +1 -1
  24. package/dist/cjs/providers/pinpoint/apis/identifyUser.js.map +1 -1
  25. package/dist/cjs/trackers/PageViewTracker.js +2 -4
  26. package/dist/cjs/trackers/PageViewTracker.js.map +1 -1
  27. package/dist/cjs/utils/resolveCredentials.js +1 -1
  28. package/dist/cjs/utils/resolveCredentials.js.map +1 -1
  29. package/dist/esm/apis/disable.mjs +1 -1
  30. package/dist/esm/apis/enable.mjs +1 -1
  31. package/dist/esm/providers/kinesis/apis/flushEvents.mjs +5 -3
  32. package/dist/esm/providers/kinesis/apis/flushEvents.mjs.map +1 -1
  33. package/dist/esm/providers/kinesis/apis/record.mjs +3 -3
  34. package/dist/esm/providers/kinesis/apis/record.mjs.map +1 -1
  35. package/dist/esm/providers/kinesis/types/inputs.d.ts +2 -2
  36. package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs +3 -3
  37. package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs.map +1 -1
  38. package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs +5 -3
  39. package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs.map +1 -1
  40. package/dist/esm/providers/kinesis-firehose/apis/record.mjs +3 -3
  41. package/dist/esm/providers/kinesis-firehose/apis/record.mjs.map +1 -1
  42. package/dist/esm/providers/kinesis-firehose/types/buffer.d.ts +1 -1
  43. package/dist/esm/providers/kinesis-firehose/types/inputs.d.ts +2 -2
  44. package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs +3 -3
  45. package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs.map +1 -1
  46. package/dist/esm/providers/personalize/apis/flushEvents.mjs +5 -3
  47. package/dist/esm/providers/personalize/apis/flushEvents.mjs.map +1 -1
  48. package/dist/esm/providers/personalize/apis/record.mjs +3 -3
  49. package/dist/esm/providers/personalize/apis/record.mjs.map +1 -1
  50. package/dist/esm/providers/personalize/types/buffer.d.ts +4 -4
  51. package/dist/esm/providers/personalize/types/inputs.d.ts +2 -2
  52. package/dist/esm/providers/personalize/utils/autoTrackMedia.d.ts +2 -2
  53. package/dist/esm/providers/personalize/utils/autoTrackMedia.mjs +8 -8
  54. package/dist/esm/providers/personalize/utils/autoTrackMedia.mjs.map +1 -1
  55. package/dist/esm/providers/personalize/utils/cachedSession.mjs.map +1 -1
  56. package/dist/esm/providers/personalize/utils/getEventBuffer.mjs +3 -3
  57. package/dist/esm/providers/personalize/utils/getEventBuffer.mjs.map +1 -1
  58. package/dist/esm/providers/pinpoint/apis/configureAutoTrack.mjs +1 -1
  59. package/dist/esm/providers/pinpoint/apis/flushEvents.mjs +18 -14
  60. package/dist/esm/providers/pinpoint/apis/flushEvents.mjs.map +1 -1
  61. package/dist/esm/providers/pinpoint/apis/identifyUser.d.ts +1 -1
  62. package/dist/esm/providers/pinpoint/apis/identifyUser.mjs +2 -2
  63. package/dist/esm/providers/pinpoint/apis/identifyUser.mjs.map +1 -1
  64. package/dist/esm/providers/pinpoint/apis/record.mjs.map +1 -1
  65. package/dist/esm/providers/pinpoint/types/inputs.d.ts +1 -1
  66. package/dist/esm/trackers/PageViewTracker.mjs +2 -4
  67. package/dist/esm/trackers/PageViewTracker.mjs.map +1 -1
  68. package/dist/esm/trackers/SessionTracker.mjs.map +1 -1
  69. package/dist/esm/trackers/SessionTracker.native.mjs.map +1 -1
  70. package/dist/esm/types/inputs.d.ts +3 -3
  71. package/dist/esm/types/kinesis.d.ts +2 -2
  72. package/dist/esm/types/trackers.d.ts +7 -7
  73. package/dist/esm/utils/eventBuffer/types.d.ts +3 -5
  74. package/dist/esm/utils/resolveCredentials.mjs +1 -1
  75. package/dist/esm/utils/resolveCredentials.mjs.map +1 -1
  76. package/dist/esm/utils/userAgent.mjs.map +1 -1
  77. package/package.json +110 -110
  78. package/src/errors/assertValidationError.ts +1 -1
  79. package/src/providers/kinesis/apis/flushEvents.ts +7 -4
  80. package/src/providers/kinesis/apis/record.ts +6 -3
  81. package/src/providers/kinesis/types/buffer.ts +1 -0
  82. package/src/providers/kinesis/types/inputs.ts +2 -2
  83. package/src/providers/kinesis/utils/getEventBuffer.ts +22 -21
  84. package/src/providers/kinesis/utils/resolveConfig.ts +4 -1
  85. package/src/providers/kinesis-firehose/apis/flushEvents.ts +7 -4
  86. package/src/providers/kinesis-firehose/apis/record.ts +6 -3
  87. package/src/providers/kinesis-firehose/types/buffer.ts +2 -1
  88. package/src/providers/kinesis-firehose/types/inputs.ts +2 -2
  89. package/src/providers/kinesis-firehose/utils/getEventBuffer.ts +23 -21
  90. package/src/providers/kinesis-firehose/utils/resolveConfig.ts +4 -1
  91. package/src/providers/personalize/apis/flushEvents.ts +7 -4
  92. package/src/providers/personalize/apis/record.ts +8 -5
  93. package/src/providers/personalize/types/buffer.ts +6 -4
  94. package/src/providers/personalize/types/inputs.ts +2 -2
  95. package/src/providers/personalize/utils/autoTrackMedia.ts +34 -26
  96. package/src/providers/personalize/utils/cachedSession.ts +5 -5
  97. package/src/providers/personalize/utils/getEventBuffer.ts +24 -20
  98. package/src/providers/personalize/utils/resolveConfig.ts +4 -2
  99. package/src/providers/pinpoint/apis/configureAutoTrack.ts +5 -2
  100. package/src/providers/pinpoint/apis/flushEvents.ts +8 -5
  101. package/src/providers/pinpoint/apis/identifyUser.ts +3 -2
  102. package/src/providers/pinpoint/apis/record.ts +4 -2
  103. package/src/providers/pinpoint/types/inputs.ts +3 -1
  104. package/src/providers/pinpoint/utils/resolveConfig.ts +1 -0
  105. package/src/providers/pinpoint/utils/resolveCredentials.ts +3 -1
  106. package/src/trackers/EventTracker.ts +7 -6
  107. package/src/trackers/PageViewTracker.ts +8 -13
  108. package/src/trackers/SessionTracker.native.ts +6 -5
  109. package/src/trackers/SessionTracker.ts +6 -5
  110. package/src/types/inputs.ts +6 -5
  111. package/src/types/kinesis.ts +2 -2
  112. package/src/types/trackers.ts +8 -8
  113. package/src/utils/eventBuffer/EventBuffer.ts +3 -2
  114. package/src/utils/eventBuffer/types.ts +3 -5
  115. package/src/utils/groupBy.ts +3 -2
  116. package/src/utils/resolveCredentials.ts +4 -2
  117. package/src/utils/trackerConfigHelpers.native.ts +2 -2
  118. package/src/utils/trackerConfigHelpers.ts +2 -2
  119. package/src/utils/trackerHelpers.ts +1 -2
  120. package/src/utils/userAgent.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PageViewTracker.mjs","sources":["../../../src/trackers/PageViewTracker.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { isBrowser } from '@aws-amplify/core/internals/utils';\nconst logger = new ConsoleLogger('PageViewTracker');\nconst DEFAULT_EVENT_NAME = 'pageView';\nconst DEFAULT_APP_TYPE = 'singlePage';\nconst DEFAULT_URL_PROVIDER = () => {\n return window.location.origin + window.location.pathname;\n};\nconst PREV_URL_STORAGE_KEY = 'aws-amplify-analytics-prevUrl';\nexport class PageViewTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.trackerActive = true;\n this.eventRecorder = eventRecorder;\n this.spaTrackingActive = false;\n this.handleLocationChange = this.handleLocationChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n appType: options?.appType ?? DEFAULT_APP_TYPE,\n attributes: options?.attributes ?? undefined,\n eventName: this.options?.eventName ?? DEFAULT_EVENT_NAME,\n urlProvider: this.options?.urlProvider ?? DEFAULT_URL_PROVIDER,\n };\n // Configure SPA or MPA page view tracking\n if (isBrowser()) {\n if (this.options.appType === 'singlePage') {\n this.setupSPATracking();\n }\n else {\n this.setupMPATracking();\n }\n this.trackerActive = true;\n }\n }\n cleanup() {\n // No-op if document listener is not active\n if (!this.trackerActive) {\n return;\n }\n // Clean up SPA page view listeners\n if (this.spaTrackingActive) {\n window.history.pushState = this.originalPushState;\n window.history.replaceState = this.originalReplaceState;\n this.pushStateProxy?.revoke();\n this.replaceStateProxy?.revoke();\n window.removeEventListener('popstate', this.handleLocationChange);\n this.spaTrackingActive = false;\n }\n }\n setupSPATracking() {\n if (!this.spaTrackingActive) {\n // Configure proxies on History APIs\n this.pushStateProxy = Proxy.revocable(window.history.pushState, {\n apply: (target, thisArg, args) => {\n const proxiedResult = target.apply(thisArg, args);\n this.handleLocationChange();\n return proxiedResult;\n },\n });\n this.replaceStateProxy = Proxy.revocable(window.history.replaceState, {\n apply: (target, thisArg, args) => {\n const proxiedResult = target.apply(thisArg, args);\n this.handleLocationChange();\n return proxiedResult;\n },\n });\n this.originalPushState = window.history.pushState;\n this.originalReplaceState = window.history.replaceState;\n window.history.pushState = this.pushStateProxy.proxy;\n window.history.replaceState = this.replaceStateProxy.proxy;\n window.addEventListener('popstate', this.handleLocationChange);\n sessionStorage.removeItem(PREV_URL_STORAGE_KEY);\n this.spaTrackingActive = true;\n }\n }\n setupMPATracking() {\n this.handleLocationChange();\n }\n handleLocationChange() {\n const currentUrl = this.options.urlProvider();\n const eventName = this.options.eventName || DEFAULT_EVENT_NAME;\n if (this.urlHasChanged()) {\n sessionStorage.setItem(PREV_URL_STORAGE_KEY, currentUrl);\n // Assemble attribute list\n const attributes = Object.assign({\n url: currentUrl,\n }, this.options.attributes);\n logger.debug('Recording automatically tracked page view event', {\n eventName,\n attributes,\n });\n this.eventRecorder(eventName, attributes);\n }\n }\n urlHasChanged() {\n const prevUrl = sessionStorage.getItem(PREV_URL_STORAGE_KEY);\n const currUrl = this.options.urlProvider();\n return currUrl !== prevUrl;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PageViewTracker.mjs","sources":["../../../src/trackers/PageViewTracker.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { isBrowser } from '@aws-amplify/core/internals/utils';\nconst logger = new ConsoleLogger('PageViewTracker');\nconst DEFAULT_EVENT_NAME = 'pageView';\nconst DEFAULT_APP_TYPE = 'singlePage';\nconst DEFAULT_URL_PROVIDER = () => {\n return window.location.origin + window.location.pathname;\n};\nconst PREV_URL_STORAGE_KEY = 'aws-amplify-analytics-prevUrl';\nexport class PageViewTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.trackerActive = true;\n this.eventRecorder = eventRecorder;\n this.spaTrackingActive = false;\n this.handleLocationChange = this.handleLocationChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n appType: options?.appType ?? DEFAULT_APP_TYPE,\n attributes: options?.attributes ?? undefined,\n eventName: this.options?.eventName ?? DEFAULT_EVENT_NAME,\n urlProvider: this.options?.urlProvider ?? DEFAULT_URL_PROVIDER,\n };\n // Configure SPA or MPA page view tracking\n if (isBrowser()) {\n if (this.options.appType === 'singlePage') {\n this.setupSPATracking();\n }\n else {\n this.setupMPATracking();\n }\n this.trackerActive = true;\n }\n }\n cleanup() {\n // No-op if document listener is not active\n if (!this.trackerActive) {\n return;\n }\n // Clean up SPA page view listeners\n if (this.spaTrackingActive) {\n window.history.pushState = this.originalPushState;\n window.history.replaceState = this.originalReplaceState;\n this.pushStateProxy?.revoke();\n this.replaceStateProxy?.revoke();\n window.removeEventListener('popstate', this.handleLocationChange);\n this.spaTrackingActive = false;\n }\n }\n setupSPATracking() {\n if (!this.spaTrackingActive) {\n // Configure proxies on History APIs\n this.pushStateProxy = Proxy.revocable(window.history.pushState, {\n apply: (target, thisArg, args) => {\n target.apply(thisArg, args);\n this.handleLocationChange();\n },\n });\n this.replaceStateProxy = Proxy.revocable(window.history.replaceState, {\n apply: (target, thisArg, args) => {\n target.apply(thisArg, args);\n this.handleLocationChange();\n },\n });\n this.originalPushState = window.history.pushState;\n this.originalReplaceState = window.history.replaceState;\n window.history.pushState = this.pushStateProxy.proxy;\n window.history.replaceState = this.replaceStateProxy.proxy;\n window.addEventListener('popstate', this.handleLocationChange);\n sessionStorage.removeItem(PREV_URL_STORAGE_KEY);\n this.spaTrackingActive = true;\n }\n }\n setupMPATracking() {\n this.handleLocationChange();\n }\n handleLocationChange() {\n const currentUrl = this.options.urlProvider();\n const eventName = this.options.eventName || DEFAULT_EVENT_NAME;\n if (this.urlHasChanged()) {\n sessionStorage.setItem(PREV_URL_STORAGE_KEY, currentUrl);\n // Assemble attribute list\n const attributes = Object.assign({\n url: currentUrl,\n }, this.options.attributes);\n logger.debug('Recording automatically tracked page view event', {\n eventName,\n attributes,\n });\n this.eventRecorder(eventName, attributes);\n }\n }\n urlHasChanged() {\n const prevUrl = sessionStorage.getItem(PREV_URL_STORAGE_KEY);\n const currUrl = this.options.urlProvider();\n return currUrl !== prevUrl;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionTracker.mjs","sources":["../../../src/trackers/SessionTracker.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { sessionListener, SESSION_START_EVENT, SESSION_STOP_EVENT, } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nconst logger = new ConsoleLogger('SessionTracker');\nexport class SessionTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.eventRecorder = eventRecorder;\n this.sessionTrackingActive = false;\n this.initialEventSent = false;\n this.handleStateChange = this.handleStateChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? {},\n };\n // Setup state listeners\n if (!this.sessionTrackingActive) {\n sessionListener.addStateChangeListener(this.handleStateChange, !this.initialEventSent);\n this.sessionTrackingActive = true;\n }\n }\n cleanup() {\n if (this.sessionTrackingActive) {\n sessionListener.removeStateChangeListener(this.handleStateChange);\n }\n this.sessionTrackingActive = false;\n }\n handleStateChange(state) {\n if (state === 'started') {\n this.sessionStarted();\n }\n else {\n this.sessionStopped();\n }\n }\n sessionStarted() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_START_EVENT,\n attributes,\n });\n this.eventRecorder(SESSION_START_EVENT, attributes);\n // NOTE: The initial event will not be re-sent on re-configuration (e.g. to add additional custom attributes)\n if (!this.initialEventSent) {\n this.initialEventSent = true;\n }\n }\n sessionStopped() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_STOP_EVENT,\n attributes,\n });\n this.eventRecorder(SESSION_STOP_EVENT, attributes);\n }\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;AACjD,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACzC,YAAY,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnG,YAAY,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAC9C,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxC,YAAY,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC9E,SAAS;AACT,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,KAAK;AACL,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,mBAAmB;AAC/B,YAAY,UAAU;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC5D;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,kBAAkB;AAC9B,YAAY,UAAU;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAC3D,KAAK;AACL;;;;"}
1
+ {"version":3,"file":"SessionTracker.mjs","sources":["../../../src/trackers/SessionTracker.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { SESSION_START_EVENT, SESSION_STOP_EVENT, sessionListener, } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nconst logger = new ConsoleLogger('SessionTracker');\nexport class SessionTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.eventRecorder = eventRecorder;\n this.sessionTrackingActive = false;\n this.initialEventSent = false;\n this.handleStateChange = this.handleStateChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? {},\n };\n // Setup state listeners\n if (!this.sessionTrackingActive) {\n sessionListener.addStateChangeListener(this.handleStateChange, !this.initialEventSent);\n this.sessionTrackingActive = true;\n }\n }\n cleanup() {\n if (this.sessionTrackingActive) {\n sessionListener.removeStateChangeListener(this.handleStateChange);\n }\n this.sessionTrackingActive = false;\n }\n handleStateChange(state) {\n if (state === 'started') {\n this.sessionStarted();\n }\n else {\n this.sessionStopped();\n }\n }\n sessionStarted() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_START_EVENT,\n attributes,\n });\n this.eventRecorder(SESSION_START_EVENT, attributes);\n // NOTE: The initial event will not be re-sent on re-configuration (e.g. to add additional custom attributes)\n if (!this.initialEventSent) {\n this.initialEventSent = true;\n }\n }\n sessionStopped() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_STOP_EVENT,\n attributes,\n });\n this.eventRecorder(SESSION_STOP_EVENT, attributes);\n }\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;AACjD,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACzC,YAAY,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnG,YAAY,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAC9C,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxC,YAAY,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC9E,SAAS;AACT,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,KAAK;AACL,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,mBAAmB;AAC/B,YAAY,UAAU;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC5D;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,kBAAkB;AAC9B,YAAY,UAAU;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAC3D,KAAK;AACL;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionTracker.native.mjs","sources":["../../../src/trackers/SessionTracker.native.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { sessionListener, SESSION_START_EVENT, SESSION_STOP_EVENT, } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nconst logger = new ConsoleLogger('SessionTracker');\nexport class SessionTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.eventRecorder = eventRecorder;\n this.initialEventSent = false;\n this.sessionTrackingActive = false;\n this.handleStateChange = this.handleStateChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? {},\n };\n // Setup state listeners\n if (!this.sessionTrackingActive) {\n sessionListener.addStateChangeListener(this.handleStateChange, !this.initialEventSent);\n this.sessionTrackingActive = true;\n }\n }\n cleanup() {\n if (this.sessionTrackingActive) {\n sessionListener.removeStateChangeListener(this.handleStateChange);\n }\n this.sessionTrackingActive = false;\n }\n handleStateChange(state) {\n if (state === 'started') {\n this.sessionStarted();\n }\n else {\n this.sessionStopped();\n }\n }\n sessionStarted() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_START_EVENT,\n attributes,\n });\n this.eventRecorder(SESSION_START_EVENT, attributes);\n // NOTE: The initial event will not be re-sent on re-configuration (e.g. to add additional custom attributes)\n if (!this.initialEventSent) {\n this.initialEventSent = true;\n }\n }\n sessionStopped() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_STOP_EVENT,\n attributes,\n });\n this.eventRecorder(SESSION_STOP_EVENT, attributes);\n }\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;AACjD,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACzC,YAAY,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnG,YAAY,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAC9C,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxC,YAAY,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC9E,SAAS;AACT,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,KAAK;AACL,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,mBAAmB;AAC/B,YAAY,UAAU;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC5D;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,kBAAkB;AAC9B,YAAY,UAAU;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAC3D,KAAK;AACL;;;;"}
1
+ {"version":3,"file":"SessionTracker.native.mjs","sources":["../../../src/trackers/SessionTracker.native.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { SESSION_START_EVENT, SESSION_STOP_EVENT, sessionListener, } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nconst logger = new ConsoleLogger('SessionTracker');\nexport class SessionTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.eventRecorder = eventRecorder;\n this.initialEventSent = false;\n this.sessionTrackingActive = false;\n this.handleStateChange = this.handleStateChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? {},\n };\n // Setup state listeners\n if (!this.sessionTrackingActive) {\n sessionListener.addStateChangeListener(this.handleStateChange, !this.initialEventSent);\n this.sessionTrackingActive = true;\n }\n }\n cleanup() {\n if (this.sessionTrackingActive) {\n sessionListener.removeStateChangeListener(this.handleStateChange);\n }\n this.sessionTrackingActive = false;\n }\n handleStateChange(state) {\n if (state === 'started') {\n this.sessionStarted();\n }\n else {\n this.sessionStopped();\n }\n }\n sessionStarted() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_START_EVENT,\n attributes,\n });\n this.eventRecorder(SESSION_START_EVENT, attributes);\n // NOTE: The initial event will not be re-sent on re-configuration (e.g. to add additional custom attributes)\n if (!this.initialEventSent) {\n this.initialEventSent = true;\n }\n }\n sessionStopped() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_STOP_EVENT,\n attributes,\n });\n this.eventRecorder(SESSION_STOP_EVENT, attributes);\n }\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;AACjD,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACzC,YAAY,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnG,YAAY,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAC9C,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxC,YAAY,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC9E,SAAS;AACT,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,KAAK;AACL,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,mBAAmB;AAC/B,YAAY,UAAU;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC5D;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,kBAAkB;AAC9B,YAAY,UAAU;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAC3D,KAAK;AACL;;;;"}
@@ -1,10 +1,10 @@
1
1
  import { UserProfile } from '@aws-amplify/core';
2
2
  import { AnalyticsServiceOptions } from './options';
3
- import { SessionTrackingOptions, PageViewTrackingOptions, EventTrackingOptions } from './trackers';
3
+ import { EventTrackingOptions, PageViewTrackingOptions, SessionTrackingOptions } from './trackers';
4
4
  /**
5
5
  * Input type for `identifyUser`.
6
6
  */
7
- export type AnalyticsIdentifyUserInput<ServiceOptions extends AnalyticsServiceOptions = AnalyticsServiceOptions> = {
7
+ export interface AnalyticsIdentifyUserInput<ServiceOptions extends AnalyticsServiceOptions = AnalyticsServiceOptions> {
8
8
  /**
9
9
  * A User ID associated to the current device.
10
10
  */
@@ -17,7 +17,7 @@ export type AnalyticsIdentifyUserInput<ServiceOptions extends AnalyticsServiceOp
17
17
  * Options to be passed to the API.
18
18
  */
19
19
  options?: ServiceOptions;
20
- };
20
+ }
21
21
  /**
22
22
  * Input type for `configureAutoTrack`.
23
23
  */
@@ -1,7 +1,7 @@
1
- export type KinesisStream = {
1
+ export interface KinesisStream {
2
2
  region: string;
3
3
  streamName: string;
4
- };
4
+ }
5
5
  export type KinesisShard = KinesisStream & {
6
6
  partitionKey: string;
7
7
  };
@@ -1,17 +1,17 @@
1
- export type SessionTrackingOptions = {
1
+ export interface SessionTrackingOptions {
2
2
  attributes?: TrackerAttributes;
3
- };
4
- export type PageViewTrackingOptions = {
3
+ }
4
+ export interface PageViewTrackingOptions {
5
5
  attributes?: TrackerAttributes;
6
6
  eventName?: string;
7
- urlProvider?: () => string;
7
+ urlProvider?(): string;
8
8
  appType?: 'multiPage' | 'singlePage';
9
- };
10
- export type EventTrackingOptions = {
9
+ }
10
+ export interface EventTrackingOptions {
11
11
  attributes?: TrackerAttributes;
12
12
  events?: DOMEvent[];
13
13
  selectorPrefix?: string;
14
- };
14
+ }
15
15
  export type TrackerType = 'event' | 'pageView' | 'session';
16
16
  export type TrackerAttributes = Record<string, string>;
17
17
  export type TrackerEventRecorder = (eventName: string, attributes: TrackerAttributes) => void;
@@ -1,8 +1,6 @@
1
- export interface IAnalyticsClient<T> {
2
- (events: T[]): Promise<T[]>;
3
- }
4
- export type EventBufferConfig = {
1
+ export type IAnalyticsClient<T> = (events: T[]) => Promise<T[]>;
2
+ export interface EventBufferConfig {
5
3
  flushSize: number;
6
4
  flushInterval: number;
7
5
  bufferSize: number;
8
- };
6
+ }
@@ -1,7 +1,7 @@
1
+ import { fetchAuthSession } from '@aws-amplify/core';
1
2
  import '@aws-amplify/core/internals/utils';
2
3
  import { assertValidationError } from '../errors/assertValidationError.mjs';
3
4
  import { AnalyticsValidationErrorCode } from '../errors/validation.mjs';
4
- import { fetchAuthSession } from '@aws-amplify/core';
5
5
 
6
6
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
7
  // SPDX-License-Identifier: Apache-2.0
@@ -1 +1 @@
1
- {"version":3,"file":"resolveCredentials.mjs","sources":["../../../src/utils/resolveCredentials.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AnalyticsValidationErrorCode, assertValidationError } from '../errors';\nimport { fetchAuthSession } from '@aws-amplify/core';\nexport const resolveCredentials = async () => {\n const { credentials, identityId } = await fetchAuthSession();\n assertValidationError(!!credentials, AnalyticsValidationErrorCode.NoCredentials);\n return { credentials, identityId };\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAGY,MAAC,kBAAkB,GAAG,YAAY;AAC9C,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;AACjE,IAAI,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,4BAA4B,CAAC,aAAa,CAAC,CAAC;AACrF,IAAI,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACvC;;;;"}
1
+ {"version":3,"file":"resolveCredentials.mjs","sources":["../../../src/utils/resolveCredentials.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { fetchAuthSession } from '@aws-amplify/core';\nimport { AnalyticsValidationErrorCode, assertValidationError } from '../errors';\nexport const resolveCredentials = async () => {\n const { credentials, identityId } = await fetchAuthSession();\n assertValidationError(!!credentials, AnalyticsValidationErrorCode.NoCredentials);\n return { credentials, identityId };\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAGY,MAAC,kBAAkB,GAAG,YAAY;AAC9C,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;AACjE,IAAI,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,4BAA4B,CAAC,aAAa,CAAC,CAAC;AACrF,IAAI,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACvC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"userAgent.mjs","sources":["../../../src/utils/userAgent.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Category, getAmplifyUserAgentObject, getAmplifyUserAgent, } from '@aws-amplify/core/internals/utils';\nexport function getAnalyticsUserAgent(action) {\n return getAmplifyUserAgentObject({\n category: Category.Analytics,\n action,\n });\n}\nexport function getAnalyticsUserAgentString(action) {\n return getAmplifyUserAgent({\n category: Category.Analytics,\n action,\n });\n}\n"],"names":[],"mappings":";;AAAA;AACA;AAEO,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,OAAO,yBAAyB,CAAC;AACrC,QAAQ,QAAQ,EAAE,QAAQ,CAAC,SAAS;AACpC,QAAQ,MAAM;AACd,KAAK,CAAC,CAAC;AACP,CAAC;AACM,SAAS,2BAA2B,CAAC,MAAM,EAAE;AACpD,IAAI,OAAO,mBAAmB,CAAC;AAC/B,QAAQ,QAAQ,EAAE,QAAQ,CAAC,SAAS;AACpC,QAAQ,MAAM;AACd,KAAK,CAAC,CAAC;AACP;;;;"}
1
+ {"version":3,"file":"userAgent.mjs","sources":["../../../src/utils/userAgent.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Category, getAmplifyUserAgent, getAmplifyUserAgentObject, } from '@aws-amplify/core/internals/utils';\nexport function getAnalyticsUserAgent(action) {\n return getAmplifyUserAgentObject({\n category: Category.Analytics,\n action,\n });\n}\nexport function getAnalyticsUserAgentString(action) {\n return getAmplifyUserAgent({\n category: Category.Analytics,\n action,\n });\n}\n"],"names":[],"mappings":";;AAAA;AACA;AAEO,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,OAAO,yBAAyB,CAAC;AACrC,QAAQ,QAAQ,EAAE,QAAQ,CAAC,SAAS;AACpC,QAAQ,MAAM;AACd,KAAK,CAAC,CAAC;AACP,CAAC;AACM,SAAS,2BAA2B,CAAC,MAAM,EAAE;AACpD,IAAI,OAAO,mBAAmB,CAAC;AAC/B,QAAQ,QAAQ,EAAE,QAAQ,CAAC,SAAS;AACpC,QAAQ,MAAM;AACd,KAAK,CAAC,CAAC;AACP;;;;"}
package/package.json CHANGED
@@ -1,112 +1,112 @@
1
1
  {
2
- "name": "@aws-amplify/analytics",
3
- "version": "7.0.16",
4
- "description": "Analytics category of aws-amplify",
5
- "main": "./dist/cjs/index.js",
6
- "module": "./dist/esm/index.mjs",
7
- "react-native": "./src/index.ts",
8
- "typings": "./dist/esm/index.d.ts",
9
- "sideEffects": false,
10
- "publishConfig": {
11
- "access": "public"
12
- },
13
- "scripts": {
14
- "test": "npm run lint && jest -w 1 --coverage --logHeapUsage",
15
- "test:watch": "tslint 'src/**/*.ts' && jest -w 1 --watch",
16
- "build-with-test": "npm run clean && npm run test && npm run build",
17
- "build:umd": "webpack && webpack --config ./webpack.config.dev.js",
18
- "build:esm-cjs": "rollup -c rollup.config.mjs",
19
- "build:watch": "npm run build:esm-cjs -- --watch",
20
- "build": "npm run clean && npm run build:esm-cjs && npm run build:umd",
21
- "clean": "npm run clean:size && rimraf dist lib lib-esm",
22
- "clean:size": "rimraf dual-publish-tmp tmp*",
23
- "format": "echo \"Not implemented\"",
24
- "lint": "tslint 'src/**/*.ts' && npm run ts-coverage",
25
- "ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 71.4"
26
- },
27
- "typesVersions": {
28
- ">=4.2": {
29
- "pinpoint": [
30
- "./dist/esm/providers/pinpoint/index.d.ts"
31
- ],
32
- "kinesis": [
33
- "./dist/esm/providers/kinesis/index.d.ts"
34
- ],
35
- "kinesis-firehose": [
36
- "./dist/esm/providers/kinesis-firehose/index.d.ts"
37
- ],
38
- "personalize": [
39
- "./dist/esm/providers/personalize/index.d.ts"
40
- ]
41
- }
42
- },
43
- "exports": {
44
- ".": {
45
- "types": "./dist/esm/index.d.ts",
46
- "import": "./dist/esm/index.mjs",
47
- "require": "./dist/cjs/index.js",
48
- "react-native": "./src/index.ts"
49
- },
50
- "./pinpoint": {
51
- "types": "./dist/esm/providers/pinpoint/index.d.ts",
52
- "import": "./dist/esm/providers/pinpoint/index.mjs",
53
- "require": "./dist/cjs/providers/pinpoint/index.js",
54
- "react-native": "./src/providers/pinpoint/index.ts"
55
- },
56
- "./kinesis": {
57
- "types": "./dist/esm/providers/kinesis/index.d.ts",
58
- "import": "./dist/esm/providers/kinesis/index.mjs",
59
- "require": "./dist/cjs/providers/kinesis/index.js",
60
- "react-native": "./src/providers/kinesis/index.ts"
61
- },
62
- "./kinesis-firehose": {
63
- "types": "./dist/esm/providers/kinesis-firehose/index.d.ts",
64
- "import": "./dist/esm/providers/kinesis-firehose/index.mjs",
65
- "require": "./dist/cjs/providers/kinesis-firehose/index.js",
66
- "react-native": "./src/providers/kinesis-firehose/index.ts"
67
- },
68
- "./personalize": {
69
- "types": "./dist/esm/providers/personalize/index.d.ts",
70
- "import": "./dist/esm/providers/personalize/index.mjs",
71
- "require": "./dist/cjs/providers/personalize/index.js",
72
- "react-native": "./src/providers/personalize/index.ts"
73
- },
74
- "./package.json": "./package.json"
75
- },
76
- "repository": {
77
- "type": "git",
78
- "url": "https://github.com/aws-amplify/amplify-js.git"
79
- },
80
- "author": "Amazon Web Services",
81
- "license": "Apache-2.0",
82
- "bugs": {
83
- "url": "https://github.com/aws/aws-amplify/issues"
84
- },
85
- "homepage": "https://aws-amplify.github.io/",
86
- "files": [
87
- "dist/cjs",
88
- "dist/esm",
89
- "src",
90
- "pinpoint",
91
- "kinesis",
92
- "kinesis-firehose",
93
- "personalize"
94
- ],
95
- "dependencies": {
96
- "@aws-sdk/client-firehose": "3.398.0",
97
- "@aws-sdk/client-kinesis": "3.398.0",
98
- "@aws-sdk/client-personalize-events": "3.398.0",
99
- "@smithy/util-utf8": "2.0.0",
100
- "tslib": "^2.5.0"
101
- },
102
- "peerDependencies": {
103
- "@aws-amplify/core": "^6.0.0"
104
- },
105
- "devDependencies": {
106
- "@aws-amplify/core": "6.0.16",
107
- "@aws-amplify/react-native": "1.0.16",
108
- "@aws-sdk/types": "3.398.0",
109
- "typescript": "5.0.2"
110
- },
111
- "gitHead": "0e919f6e759cb94d03e119162b530b32d48f1357"
2
+ "name": "@aws-amplify/analytics",
3
+ "version": "7.0.17-unstable.0d2aa5d.0+0d2aa5d",
4
+ "description": "Analytics category of aws-amplify",
5
+ "main": "./dist/cjs/index.js",
6
+ "module": "./dist/esm/index.mjs",
7
+ "react-native": "./src/index.ts",
8
+ "typings": "./dist/esm/index.d.ts",
9
+ "sideEffects": false,
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "scripts": {
14
+ "test": "npm run lint && jest -w 1 --coverage --logHeapUsage",
15
+ "build-with-test": "npm run clean && npm run test && npm run build",
16
+ "build:umd": "webpack && webpack --config ./webpack.config.dev.js",
17
+ "build:esm-cjs": "rollup -c rollup.config.mjs",
18
+ "build:watch": "npm run build:esm-cjs -- --watch",
19
+ "build": "npm run clean && npm run build:esm-cjs && npm run build:umd",
20
+ "clean": "npm run clean:size && rimraf dist lib lib-esm",
21
+ "clean:size": "rimraf dual-publish-tmp tmp*",
22
+ "format": "echo \"Not implemented\"",
23
+ "lint": "eslint '**/*.{ts,tsx}' && npm run ts-coverage",
24
+ "lint:fix": "eslint '**/*.{ts,tsx}' --fix",
25
+ "ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 71.4"
26
+ },
27
+ "typesVersions": {
28
+ ">=4.2": {
29
+ "pinpoint": [
30
+ "./dist/esm/providers/pinpoint/index.d.ts"
31
+ ],
32
+ "kinesis": [
33
+ "./dist/esm/providers/kinesis/index.d.ts"
34
+ ],
35
+ "kinesis-firehose": [
36
+ "./dist/esm/providers/kinesis-firehose/index.d.ts"
37
+ ],
38
+ "personalize": [
39
+ "./dist/esm/providers/personalize/index.d.ts"
40
+ ]
41
+ }
42
+ },
43
+ "exports": {
44
+ ".": {
45
+ "types": "./dist/esm/index.d.ts",
46
+ "import": "./dist/esm/index.mjs",
47
+ "require": "./dist/cjs/index.js",
48
+ "react-native": "./src/index.ts"
49
+ },
50
+ "./pinpoint": {
51
+ "types": "./dist/esm/providers/pinpoint/index.d.ts",
52
+ "import": "./dist/esm/providers/pinpoint/index.mjs",
53
+ "require": "./dist/cjs/providers/pinpoint/index.js",
54
+ "react-native": "./src/providers/pinpoint/index.ts"
55
+ },
56
+ "./kinesis": {
57
+ "types": "./dist/esm/providers/kinesis/index.d.ts",
58
+ "import": "./dist/esm/providers/kinesis/index.mjs",
59
+ "require": "./dist/cjs/providers/kinesis/index.js",
60
+ "react-native": "./src/providers/kinesis/index.ts"
61
+ },
62
+ "./kinesis-firehose": {
63
+ "types": "./dist/esm/providers/kinesis-firehose/index.d.ts",
64
+ "import": "./dist/esm/providers/kinesis-firehose/index.mjs",
65
+ "require": "./dist/cjs/providers/kinesis-firehose/index.js",
66
+ "react-native": "./src/providers/kinesis-firehose/index.ts"
67
+ },
68
+ "./personalize": {
69
+ "types": "./dist/esm/providers/personalize/index.d.ts",
70
+ "import": "./dist/esm/providers/personalize/index.mjs",
71
+ "require": "./dist/cjs/providers/personalize/index.js",
72
+ "react-native": "./src/providers/personalize/index.ts"
73
+ },
74
+ "./package.json": "./package.json"
75
+ },
76
+ "repository": {
77
+ "type": "git",
78
+ "url": "https://github.com/aws-amplify/amplify-js.git"
79
+ },
80
+ "author": "Amazon Web Services",
81
+ "license": "Apache-2.0",
82
+ "bugs": {
83
+ "url": "https://github.com/aws/aws-amplify/issues"
84
+ },
85
+ "homepage": "https://aws-amplify.github.io/",
86
+ "files": [
87
+ "dist/cjs",
88
+ "dist/esm",
89
+ "src",
90
+ "pinpoint",
91
+ "kinesis",
92
+ "kinesis-firehose",
93
+ "personalize"
94
+ ],
95
+ "dependencies": {
96
+ "@aws-sdk/client-firehose": "3.398.0",
97
+ "@aws-sdk/client-kinesis": "3.398.0",
98
+ "@aws-sdk/client-personalize-events": "3.398.0",
99
+ "@smithy/util-utf8": "2.0.0",
100
+ "tslib": "^2.5.0"
101
+ },
102
+ "peerDependencies": {
103
+ "@aws-amplify/core": "6.0.17-unstable.0d2aa5d.0+0d2aa5d"
104
+ },
105
+ "devDependencies": {
106
+ "@aws-amplify/core": "6.0.17-unstable.0d2aa5d.0+0d2aa5d",
107
+ "@aws-amplify/react-native": "1.0.17-unstable.0d2aa5d.0+0d2aa5d",
108
+ "@aws-sdk/types": "3.398.0",
109
+ "typescript": "5.0.2"
110
+ },
111
+ "gitHead": "0d2aa5d71a6b995e302c7404becd8345763eae43"
112
112
  }
@@ -10,7 +10,7 @@ import { AnalyticsValidationErrorCode, validationErrorMap } from './validation';
10
10
  export function assertValidationError(
11
11
  assertion: boolean,
12
12
  name: AnalyticsValidationErrorCode,
13
- message?: string
13
+ message?: string,
14
14
  ): asserts assertion {
15
15
  const { message: defaultMessage, recoverySuggestion } =
16
16
  validationErrorMap[name];
@@ -1,14 +1,15 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
5
+ import { ConsoleLogger } from '@aws-amplify/core';
6
+
4
7
  import { resolveConfig } from '../utils/resolveConfig';
5
8
  import {
6
9
  getAnalyticsUserAgentString,
7
10
  resolveCredentials,
8
11
  } from '../../../utils';
9
12
  import { getEventBuffer } from '../utils/getEventBuffer';
10
- import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
11
- import { ConsoleLogger } from '@aws-amplify/core';
12
13
 
13
14
  const logger = new ConsoleLogger('Kinesis');
14
15
 
@@ -33,8 +34,10 @@ export const flushEvents = () => {
33
34
  identityId,
34
35
  resendLimit,
35
36
  userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
36
- })
37
+ }),
37
38
  )
38
39
  .then(eventBuffer => eventBuffer.flushAll())
39
- .catch(e => logger.warn('Failed to flush events.', e));
40
+ .catch(e => {
41
+ logger.warn('Failed to flush events.', e);
42
+ });
40
43
  };
@@ -1,6 +1,10 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
+ import { fromUtf8 } from '@smithy/util-utf8';
5
+ import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
6
+ import { ConsoleLogger } from '@aws-amplify/core';
7
+
4
8
  import { RecordInput } from '../types';
5
9
  import { getEventBuffer } from '../utils/getEventBuffer';
6
10
  import { resolveConfig } from '../utils/resolveConfig';
@@ -9,9 +13,7 @@ import {
9
13
  isAnalyticsEnabled,
10
14
  resolveCredentials,
11
15
  } from '../../../utils';
12
- import { fromUtf8 } from '@smithy/util-utf8';
13
- import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
14
- import { ConsoleLogger } from '@aws-amplify/core';
16
+ import { AnalyticsValidationErrorCode } from '../../../errors';
15
17
 
16
18
  const logger = new ConsoleLogger('Kinesis');
17
19
 
@@ -43,6 +45,7 @@ export const record = ({
43
45
  }: RecordInput): void => {
44
46
  if (!isAnalyticsEnabled()) {
45
47
  logger.debug('Analytics is disabled, event will not be recorded.');
48
+
46
49
  return;
47
50
  }
48
51
 
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import { AWSCredentials } from '@aws-amplify/core/internals/utils';
5
+
5
6
  import { EventBufferConfig } from '../../../utils';
6
7
  import { KinesisShard } from '../../../types';
7
8
 
@@ -3,8 +3,8 @@
3
3
 
4
4
  import { KinesisEventData } from '../../../types';
5
5
 
6
- export type RecordInput = {
6
+ export interface RecordInput {
7
7
  streamName: string;
8
8
  partitionKey: string;
9
9
  data: KinesisEventData;
10
- };
10
+ }
@@ -2,16 +2,13 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import {
5
- AWSCredentials,
6
- haveCredentialsChanged
5
+ AWSCredentials,
6
+ haveCredentialsChanged,
7
7
  } from '@aws-amplify/core/internals/utils';
8
8
  import { KinesisClient, PutRecordsCommand } from '@aws-sdk/client-kinesis';
9
+
9
10
  import { KinesisBufferEvent, KinesisEventBufferConfig } from '../types';
10
- import {
11
- EventBuffer,
12
- groupBy,
13
- IAnalyticsClient
14
- } from '../../../utils';
11
+ import { EventBuffer, IAnalyticsClient, groupBy } from '../../../utils';
15
12
 
16
13
  /**
17
14
  * These Records hold cached event buffers and AWS clients.
@@ -26,7 +23,7 @@ const cachedClients: Record<string, [KinesisClient, AWSCredentials]> = {};
26
23
 
27
24
  const createKinesisPutRecordsCommand = (
28
25
  streamName: string,
29
- events: KinesisBufferEvent[]
26
+ events: KinesisBufferEvent[],
30
27
  ): PutRecordsCommand =>
31
28
  new PutRecordsCommand({
32
29
  StreamName: streamName,
@@ -39,23 +36,24 @@ const createKinesisPutRecordsCommand = (
39
36
  const submitEvents = async (
40
37
  events: KinesisBufferEvent[],
41
38
  client: KinesisClient,
42
- resendLimit?: number
39
+ resendLimit?: number,
43
40
  ): Promise<KinesisBufferEvent[]> => {
44
41
  const groupedByStreamName = Object.entries(
45
- groupBy(event => event.streamName, events)
42
+ groupBy(event => event.streamName, events),
46
43
  );
47
44
  const requests = groupedByStreamName
48
- .map(([streamName, events]) =>
49
- createKinesisPutRecordsCommand(streamName, events)
45
+ .map(([streamName, groupedEvents]) =>
46
+ createKinesisPutRecordsCommand(streamName, groupedEvents),
50
47
  )
51
48
  .map(command => client.send(command));
52
49
 
53
50
  const responses = await Promise.allSettled(requests);
54
51
  const failedEvents = responses
55
52
  .map((response, i) =>
56
- response.status === 'rejected' ? groupedByStreamName[i][1] : []
53
+ response.status === 'rejected' ? groupedByStreamName[i][1] : [],
57
54
  )
58
55
  .flat();
56
+
59
57
  return resendLimit
60
58
  ? failedEvents
61
59
  .filter(event => event.retryCount < resendLimit)
@@ -75,12 +73,16 @@ export const getEventBuffer = ({
75
73
  userAgentValue,
76
74
  }: KinesisEventBufferConfig): EventBuffer<KinesisBufferEvent> => {
77
75
  const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');
78
- const [ cachedClient, cachedCredentials ] = cachedClients[sessionIdentityKey] ?? [];
76
+ const [cachedClient, cachedCredentials] =
77
+ cachedClients[sessionIdentityKey] ?? [];
79
78
  let credentialsHaveChanged = false;
80
79
 
81
80
  // Check if credentials have changed for the cached client
82
81
  if (cachedClient) {
83
- credentialsHaveChanged = haveCredentialsChanged(cachedCredentials, credentials);
82
+ credentialsHaveChanged = haveCredentialsChanged(
83
+ cachedCredentials,
84
+ credentials,
85
+ );
84
86
  }
85
87
 
86
88
  if (!eventBufferMap[sessionIdentityKey] || credentialsHaveChanged) {
@@ -92,14 +94,13 @@ export const getEventBuffer = ({
92
94
  region,
93
95
  customUserAgent: userAgentValue,
94
96
  }),
95
- credentials
97
+ credentials,
96
98
  ];
97
99
  }
98
100
 
99
- const [ kinesisClient ] = cachedClients[sessionIdentityKey];
101
+ const [kinesisClient] = cachedClients[sessionIdentityKey];
100
102
 
101
- return events =>
102
- submitEvents(events, kinesisClient, resendLimit);
103
+ return events => submitEvents(events, kinesisClient, resendLimit);
103
104
  };
104
105
 
105
106
  // create new session
@@ -109,12 +110,12 @@ export const getEventBuffer = ({
109
110
  flushSize,
110
111
  bufferSize,
111
112
  },
112
- getKinesisClient
113
+ getKinesisClient,
113
114
  );
114
115
 
115
116
  // release other sessions
116
117
  const releaseSessionKeys = Object.keys(eventBufferMap).filter(
117
- x => x !== sessionIdentityKey
118
+ x => x !== sessionIdentityKey,
118
119
  );
119
120
  for (const releaseSessionKey of releaseSessionKeys) {
120
121
  eventBufferMap[releaseSessionKey].flushAll().finally(() => {