@aws-amplify/analytics 7.0.1-console-preview.d745d43.0 → 7.0.1-mjs-test.6f5dab7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{lib → dist/cjs}/apis/disable.js +4 -2
- package/dist/cjs/apis/disable.js.map +1 -0
- package/{lib → dist/cjs}/apis/enable.js +4 -2
- package/dist/cjs/apis/enable.js.map +1 -0
- package/{lib → dist/cjs}/apis/index.js +3 -1
- package/dist/cjs/apis/index.js.map +1 -0
- package/dist/cjs/errors/AnalyticsError.js +21 -0
- package/dist/cjs/errors/AnalyticsError.js.map +1 -0
- package/{lib → dist/cjs}/errors/assertValidationError.js +9 -7
- package/dist/cjs/errors/assertValidationError.js.map +1 -0
- package/{lib → dist/cjs}/errors/index.js +3 -1
- package/dist/cjs/errors/index.js.map +1 -0
- package/{lib → dist/cjs}/errors/validation.js +13 -12
- package/dist/cjs/errors/validation.js.map +1 -0
- package/{lib → dist/cjs}/index.js +3 -1
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/providers/kinesis/apis/flushEvents.js +37 -0
- package/dist/cjs/providers/kinesis/apis/flushEvents.js.map +1 -0
- package/{lib → dist/cjs}/providers/kinesis/apis/index.js +3 -1
- package/dist/cjs/providers/kinesis/apis/index.js.map +1 -0
- package/dist/cjs/providers/kinesis/apis/record.js +48 -0
- package/dist/cjs/providers/kinesis/apis/record.js.map +1 -0
- package/{lib/providers/personalize → dist/cjs/providers/kinesis}/index.js +3 -1
- package/dist/cjs/providers/kinesis/index.js.map +1 -0
- package/{lib → dist/cjs}/providers/kinesis/types/buffer.js +3 -1
- package/dist/cjs/providers/kinesis/types/buffer.js.map +1 -0
- package/{lib/providers/kinesis-firehose → dist/cjs/providers/kinesis}/types/index.js +3 -1
- package/dist/cjs/providers/kinesis/types/index.js.map +1 -0
- package/{lib/providers/personalize → dist/cjs/providers/kinesis}/types/inputs.js +3 -1
- package/dist/cjs/providers/kinesis/types/inputs.js.map +1 -0
- package/{lib → dist/cjs}/providers/kinesis/utils/constants.js +3 -1
- package/dist/cjs/providers/kinesis/utils/constants.js.map +1 -0
- package/dist/cjs/providers/kinesis/utils/getEventBuffer.js +74 -0
- package/dist/cjs/providers/kinesis/utils/getEventBuffer.js.map +1 -0
- package/dist/cjs/providers/kinesis/utils/resolveConfig.js +27 -0
- package/dist/cjs/providers/kinesis/utils/resolveConfig.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/apis/flushEvents.js +36 -0
- package/dist/cjs/providers/kinesis-firehose/apis/flushEvents.js.map +1 -0
- package/{lib/providers/personalize → dist/cjs/providers/kinesis-firehose}/apis/index.js +3 -1
- package/dist/cjs/providers/kinesis-firehose/apis/index.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/apis/record.js +45 -0
- package/dist/cjs/providers/kinesis-firehose/apis/record.js.map +1 -0
- package/{lib → dist/cjs}/providers/kinesis-firehose/index.js +3 -1
- package/dist/cjs/providers/kinesis-firehose/index.js.map +1 -0
- package/{lib/providers/personalize → dist/cjs/providers/kinesis-firehose}/types/buffer.js +3 -1
- package/dist/cjs/providers/kinesis-firehose/types/buffer.js.map +1 -0
- package/{lib/providers/kinesis → dist/cjs/providers/kinesis-firehose}/types/index.js +3 -1
- package/dist/cjs/providers/kinesis-firehose/types/index.js.map +1 -0
- package/{lib/providers/kinesis → dist/cjs/providers/kinesis-firehose}/types/inputs.js +3 -1
- package/dist/cjs/providers/kinesis-firehose/types/inputs.js.map +1 -0
- package/{lib → dist/cjs}/providers/kinesis-firehose/utils/constants.js +3 -1
- package/dist/cjs/providers/kinesis-firehose/utils/constants.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js +73 -0
- package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js.map +1 -0
- package/{lib → dist/cjs}/providers/kinesis-firehose/utils/index.js +3 -1
- package/dist/cjs/providers/kinesis-firehose/utils/index.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/utils/resolveConfig.js +27 -0
- package/dist/cjs/providers/kinesis-firehose/utils/resolveConfig.js.map +1 -0
- package/dist/cjs/providers/personalize/apis/flushEvents.js +35 -0
- package/dist/cjs/providers/personalize/apis/flushEvents.js.map +1 -0
- package/{lib/providers/kinesis-firehose → dist/cjs/providers/personalize}/apis/index.js +3 -1
- package/dist/cjs/providers/personalize/apis/index.js.map +1 -0
- package/dist/cjs/providers/personalize/apis/record.js +73 -0
- package/dist/cjs/providers/personalize/apis/record.js.map +1 -0
- package/{lib/providers/kinesis → dist/cjs/providers/personalize}/index.js +3 -1
- package/dist/cjs/providers/personalize/index.js.map +1 -0
- package/{lib/providers/kinesis-firehose → dist/cjs/providers/personalize}/types/buffer.js +3 -1
- package/dist/cjs/providers/personalize/types/buffer.js.map +1 -0
- package/{lib → dist/cjs}/providers/personalize/types/index.js +3 -1
- package/dist/cjs/providers/personalize/types/index.js.map +1 -0
- package/{lib/providers/kinesis-firehose → dist/cjs/providers/personalize}/types/inputs.js +3 -1
- package/dist/cjs/providers/personalize/types/inputs.js.map +1 -0
- package/dist/cjs/providers/personalize/utils/autoTrackMedia.js +183 -0
- package/dist/cjs/providers/personalize/utils/autoTrackMedia.js.map +1 -0
- package/dist/cjs/providers/personalize/utils/cachedSession.js +51 -0
- package/dist/cjs/providers/personalize/utils/cachedSession.js.map +1 -0
- package/{lib → dist/cjs}/providers/personalize/utils/constants.js +3 -1
- package/dist/cjs/providers/personalize/utils/constants.js.map +1 -0
- package/dist/cjs/providers/personalize/utils/getEventBuffer.js +75 -0
- package/dist/cjs/providers/personalize/utils/getEventBuffer.js.map +1 -0
- package/{lib → dist/cjs}/providers/personalize/utils/index.js +3 -1
- package/dist/cjs/providers/personalize/utils/index.js.map +1 -0
- package/dist/cjs/providers/personalize/utils/resolveConfig.js +28 -0
- package/dist/cjs/providers/personalize/utils/resolveConfig.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/apis/configureAutoTrack.js +9 -7
- package/dist/cjs/providers/pinpoint/apis/configureAutoTrack.js.map +1 -0
- package/dist/cjs/providers/pinpoint/apis/flushEvents.js +27 -0
- package/dist/cjs/providers/pinpoint/apis/flushEvents.js.map +1 -0
- package/{lib/providers/pinpoint/apis/identifyUser.d.ts → dist/cjs/providers/pinpoint/apis/identifyUser.js} +28 -2
- package/dist/cjs/providers/pinpoint/apis/identifyUser.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/apis/index.js +3 -1
- package/dist/cjs/providers/pinpoint/apis/index.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/apis/record.js +18 -17
- package/dist/cjs/providers/pinpoint/apis/record.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/index.js +3 -1
- package/dist/cjs/providers/pinpoint/index.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/types/index.js +3 -1
- package/dist/cjs/providers/pinpoint/types/index.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/types/inputs.js +3 -1
- package/dist/cjs/providers/pinpoint/types/inputs.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/types/options.js +3 -1
- package/dist/cjs/providers/pinpoint/types/options.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/utils/index.js +3 -1
- package/dist/cjs/providers/pinpoint/utils/index.js.map +1 -0
- package/{lib → dist/cjs}/providers/pinpoint/utils/resolveConfig.js +8 -7
- package/dist/cjs/providers/pinpoint/utils/resolveConfig.js.map +1 -0
- package/dist/cjs/providers/pinpoint/utils/resolveCredentials.js +18 -0
- package/dist/cjs/providers/pinpoint/utils/resolveCredentials.js.map +1 -0
- package/{lib → dist/cjs}/setupTests.js +4 -2
- package/dist/cjs/setupTests.js.map +1 -0
- package/dist/cjs/trackers/EventTracker.js +100 -0
- package/dist/cjs/trackers/EventTracker.js.map +1 -0
- package/{lib → dist/cjs}/trackers/PageViewTracker.js +44 -46
- package/dist/cjs/trackers/PageViewTracker.js.map +1 -0
- package/{lib → dist/cjs}/trackers/SessionTracker.js +28 -32
- package/dist/cjs/trackers/SessionTracker.js.map +1 -0
- package/{lib → dist/cjs}/trackers/SessionTracker.native.js +28 -32
- package/dist/cjs/trackers/SessionTracker.native.js.map +1 -0
- package/{lib → dist/cjs}/trackers/index.js +3 -1
- package/dist/cjs/trackers/index.js.map +1 -0
- package/dist/cjs/types/index.js +6 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/inputs.js +6 -0
- package/dist/cjs/types/inputs.js.map +1 -0
- package/{lib → dist/cjs}/types/kinesis.js +3 -1
- package/dist/cjs/types/kinesis.js.map +1 -0
- package/{lib → dist/cjs}/types/options.js +3 -1
- package/dist/cjs/types/options.js.map +1 -0
- package/{lib → dist/cjs}/types/trackers.js +3 -1
- package/dist/cjs/types/trackers.js.map +1 -0
- package/dist/cjs/utils/eventBuffer/EventBuffer.js +65 -0
- package/dist/cjs/utils/eventBuffer/EventBuffer.js.map +1 -0
- package/{lib → dist/cjs}/utils/eventBuffer/index.js +3 -1
- package/dist/cjs/utils/eventBuffer/index.js.map +1 -0
- package/{lib → dist/cjs}/utils/eventBuffer/types.js +3 -1
- package/dist/cjs/utils/eventBuffer/types.js.map +1 -0
- package/dist/cjs/utils/groupBy.js +14 -0
- package/dist/cjs/utils/groupBy.js.map +1 -0
- package/{lib → dist/cjs}/utils/index.js +3 -1
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/resolveCredentials.js +15 -0
- package/dist/cjs/utils/resolveCredentials.js.map +1 -0
- package/{lib → dist/cjs}/utils/statusHelpers.js +7 -5
- package/dist/cjs/utils/statusHelpers.js.map +1 -0
- package/{lib → dist/cjs}/utils/trackerConfigHelpers.js +5 -3
- package/dist/cjs/utils/trackerConfigHelpers.js.map +1 -0
- package/{lib → dist/cjs}/utils/trackerConfigHelpers.native.js +5 -3
- package/dist/cjs/utils/trackerConfigHelpers.native.js.map +1 -0
- package/{lib → dist/cjs}/utils/trackerHelpers.js +8 -6
- package/dist/cjs/utils/trackerHelpers.js.map +1 -0
- package/{lib → dist/cjs}/utils/userAgent.js +6 -4
- package/dist/cjs/utils/userAgent.js.map +1 -0
- package/dist/esm/apis/disable.mjs +22 -0
- package/dist/esm/apis/disable.mjs.map +1 -0
- package/dist/esm/apis/enable.mjs +21 -0
- package/dist/esm/apis/enable.mjs.map +1 -0
- package/dist/esm/apis/index.mjs +3 -0
- package/dist/esm/apis/index.mjs.map +1 -0
- package/dist/esm/errors/AnalyticsError.mjs +19 -0
- package/dist/esm/errors/AnalyticsError.mjs.map +1 -0
- package/dist/esm/errors/assertValidationError.mjs +21 -0
- package/dist/esm/errors/assertValidationError.mjs.map +1 -0
- package/dist/esm/errors/index.mjs +4 -0
- package/dist/esm/errors/index.mjs.map +1 -0
- package/{lib-esm/errors/validation.js → dist/esm/errors/validation.mjs} +14 -12
- package/dist/esm/errors/validation.mjs.map +1 -0
- package/dist/esm/index.mjs +9 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis/apis/flushEvents.mjs +41 -0
- package/dist/esm/providers/kinesis/apis/flushEvents.mjs.map +1 -0
- package/dist/esm/providers/kinesis/apis/index.mjs +3 -0
- package/dist/esm/providers/kinesis/apis/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis/apis/record.mjs +53 -0
- package/dist/esm/providers/kinesis/apis/record.mjs.map +1 -0
- package/dist/esm/providers/kinesis/index.mjs +3 -0
- package/dist/esm/providers/kinesis/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis/types/buffer.mjs +2 -0
- package/dist/esm/providers/kinesis/types/buffer.mjs.map +1 -0
- package/dist/esm/providers/kinesis/types/index.mjs +2 -0
- package/dist/esm/providers/kinesis/types/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis/types/inputs.mjs +2 -0
- package/dist/esm/providers/kinesis/types/inputs.mjs.map +1 -0
- package/{lib-esm/providers/kinesis-firehose/utils/constants.js → dist/esm/providers/kinesis/utils/constants.mjs} +4 -1
- package/dist/esm/providers/kinesis/utils/constants.mjs.map +1 -0
- package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs +79 -0
- package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs.map +1 -0
- package/dist/esm/providers/kinesis/utils/resolveConfig.mjs +27 -0
- package/dist/esm/providers/kinesis/utils/resolveConfig.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs +41 -0
- package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/apis/index.mjs +3 -0
- package/dist/esm/providers/kinesis-firehose/apis/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/apis/record.mjs +51 -0
- package/dist/esm/providers/kinesis-firehose/apis/record.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/index.mjs +3 -0
- package/dist/esm/providers/kinesis-firehose/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/types/buffer.mjs +2 -0
- package/dist/esm/providers/kinesis-firehose/types/buffer.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/types/index.mjs +2 -0
- package/dist/esm/providers/kinesis-firehose/types/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/types/inputs.mjs +2 -0
- package/dist/esm/providers/kinesis-firehose/types/inputs.mjs.map +1 -0
- package/{lib-esm/providers/kinesis/utils/constants.js → dist/esm/providers/kinesis-firehose/utils/constants.mjs} +4 -1
- package/dist/esm/providers/kinesis-firehose/utils/constants.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs +78 -0
- package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/utils/index.mjs +3 -0
- package/dist/esm/providers/kinesis-firehose/utils/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/utils/resolveConfig.mjs +27 -0
- package/dist/esm/providers/kinesis-firehose/utils/resolveConfig.mjs.map +1 -0
- package/dist/esm/providers/personalize/apis/flushEvents.mjs +41 -0
- package/dist/esm/providers/personalize/apis/flushEvents.mjs.map +1 -0
- package/dist/esm/providers/personalize/apis/index.mjs +3 -0
- package/dist/esm/providers/personalize/apis/index.mjs.map +1 -0
- package/dist/esm/providers/personalize/apis/record.mjs +81 -0
- package/dist/esm/providers/personalize/apis/record.mjs.map +1 -0
- package/dist/esm/providers/personalize/index.mjs +3 -0
- package/dist/esm/providers/personalize/index.mjs.map +1 -0
- package/dist/esm/providers/personalize/types/buffer.mjs +2 -0
- package/dist/esm/providers/personalize/types/buffer.mjs.map +1 -0
- package/dist/esm/providers/personalize/types/index.mjs +2 -0
- package/dist/esm/providers/personalize/types/index.mjs.map +1 -0
- package/dist/esm/providers/personalize/types/inputs.mjs +2 -0
- package/dist/esm/providers/personalize/types/inputs.mjs.map +1 -0
- package/dist/esm/providers/personalize/utils/autoTrackMedia.mjs +181 -0
- package/dist/esm/providers/personalize/utils/autoTrackMedia.mjs.map +1 -0
- package/dist/esm/providers/personalize/utils/cachedSession.mjs +48 -0
- package/dist/esm/providers/personalize/utils/cachedSession.mjs.map +1 -0
- package/dist/esm/providers/personalize/utils/constants.mjs +12 -0
- package/dist/esm/providers/personalize/utils/constants.mjs.map +1 -0
- package/dist/esm/providers/personalize/utils/getEventBuffer.mjs +80 -0
- package/dist/esm/providers/personalize/utils/getEventBuffer.mjs.map +1 -0
- package/dist/esm/providers/personalize/utils/index.mjs +6 -0
- package/dist/esm/providers/personalize/utils/index.mjs.map +1 -0
- package/dist/esm/providers/personalize/utils/resolveConfig.mjs +34 -0
- package/dist/esm/providers/personalize/utils/resolveConfig.mjs.map +1 -0
- package/{lib-esm/providers/pinpoint/apis/configureAutoTrack.js → dist/esm/providers/pinpoint/apis/configureAutoTrack.mjs} +15 -6
- package/dist/esm/providers/pinpoint/apis/configureAutoTrack.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/apis/flushEvents.mjs +31 -0
- package/dist/esm/providers/pinpoint/apis/flushEvents.mjs.map +1 -0
- package/{lib-esm/providers/pinpoint/apis/identifyUser.js → dist/esm/providers/pinpoint/apis/identifyUser.mjs} +29 -30
- package/dist/esm/providers/pinpoint/apis/identifyUser.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/apis/index.mjs +5 -0
- package/dist/esm/providers/pinpoint/apis/index.mjs.map +1 -0
- package/{lib-esm/providers/pinpoint/apis/record.js → dist/esm/providers/pinpoint/apis/record.mjs} +27 -17
- package/dist/esm/providers/pinpoint/apis/record.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/index.mjs +5 -0
- package/dist/esm/providers/pinpoint/index.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/types/index.mjs +2 -0
- package/dist/esm/providers/pinpoint/types/index.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/types/inputs.mjs +2 -0
- package/dist/esm/providers/pinpoint/types/inputs.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/types/options.mjs +2 -0
- package/dist/esm/providers/pinpoint/types/options.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/utils/index.mjs +3 -0
- package/dist/esm/providers/pinpoint/utils/index.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/utils/resolveConfig.mjs +19 -0
- package/dist/esm/providers/pinpoint/utils/resolveConfig.mjs.map +1 -0
- package/{lib-esm → dist/esm}/providers/pinpoint/utils/resolveCredentials.d.ts +1 -1
- package/dist/esm/providers/pinpoint/utils/resolveCredentials.mjs +18 -0
- package/dist/esm/providers/pinpoint/utils/resolveCredentials.mjs.map +1 -0
- package/{lib-esm/setupTests.js → dist/esm/setupTests.mjs} +2 -2
- package/dist/esm/setupTests.mjs.map +1 -0
- package/dist/esm/trackers/EventTracker.mjs +98 -0
- package/dist/esm/trackers/EventTracker.mjs.map +1 -0
- package/{lib-esm/trackers/PageViewTracker.js → dist/esm/trackers/PageViewTracker.mjs} +44 -45
- package/dist/esm/trackers/PageViewTracker.mjs.map +1 -0
- package/{lib-esm/trackers/SessionTracker.native.js → dist/esm/trackers/SessionTracker.mjs} +27 -30
- package/dist/esm/trackers/SessionTracker.mjs.map +1 -0
- package/{lib-esm/trackers/SessionTracker.js → dist/esm/trackers/SessionTracker.native.mjs} +27 -30
- package/dist/esm/trackers/SessionTracker.native.mjs.map +1 -0
- package/dist/esm/trackers/index.mjs +4 -0
- package/dist/esm/trackers/index.mjs.map +1 -0
- package/dist/esm/types/index.mjs +2 -0
- package/dist/esm/types/index.mjs.map +1 -0
- package/dist/esm/types/inputs.mjs +2 -0
- package/dist/esm/types/inputs.mjs.map +1 -0
- package/dist/esm/types/kinesis.mjs +2 -0
- package/dist/esm/types/kinesis.mjs.map +1 -0
- package/dist/esm/types/options.mjs +2 -0
- package/dist/esm/types/options.mjs.map +1 -0
- package/dist/esm/types/trackers.mjs +2 -0
- package/dist/esm/types/trackers.mjs.map +1 -0
- package/dist/esm/utils/eventBuffer/EventBuffer.mjs +63 -0
- package/dist/esm/utils/eventBuffer/EventBuffer.mjs.map +1 -0
- package/dist/esm/utils/eventBuffer/index.mjs +2 -0
- package/dist/esm/utils/eventBuffer/index.mjs.map +1 -0
- package/dist/esm/utils/eventBuffer/types.mjs +2 -0
- package/dist/esm/utils/eventBuffer/types.mjs.map +1 -0
- package/dist/esm/utils/groupBy.mjs +11 -0
- package/dist/esm/utils/groupBy.mjs.map +1 -0
- package/dist/esm/utils/index.mjs +8 -0
- package/dist/esm/utils/index.mjs.map +1 -0
- package/{lib-esm → dist/esm}/utils/resolveCredentials.d.ts +1 -1
- package/dist/esm/utils/resolveCredentials.mjs +15 -0
- package/dist/esm/utils/resolveCredentials.mjs.map +1 -0
- package/dist/esm/utils/statusHelpers.mjs +16 -0
- package/dist/esm/utils/statusHelpers.mjs.map +1 -0
- package/dist/esm/utils/trackerConfigHelpers.mjs +17 -0
- package/dist/esm/utils/trackerConfigHelpers.mjs.map +1 -0
- package/dist/esm/utils/trackerConfigHelpers.native.mjs +16 -0
- package/dist/esm/utils/trackerConfigHelpers.native.mjs.map +1 -0
- package/{lib-esm/utils/trackerHelpers.js → dist/esm/utils/trackerHelpers.mjs} +11 -5
- package/dist/esm/utils/trackerHelpers.mjs.map +1 -0
- package/dist/esm/utils/userAgent.mjs +19 -0
- package/dist/esm/utils/userAgent.mjs.map +1 -0
- package/kinesis/package.json +5 -4
- package/kinesis-firehose/package.json +5 -4
- package/package.json +45 -40
- package/personalize/package.json +5 -4
- package/pinpoint/package.json +5 -4
- package/src/providers/kinesis/utils/getEventBuffer.ts +6 -7
- package/src/providers/kinesis-firehose/utils/getEventBuffer.ts +6 -7
- package/src/providers/personalize/utils/getEventBuffer.ts +6 -7
- package/src/trackers/SessionTracker.native.ts +2 -3
- package/src/trackers/SessionTracker.ts +2 -3
- package/lib/apis/disable.d.ts +0 -8
- package/lib/apis/enable.d.ts +0 -7
- package/lib/apis/index.d.ts +0 -2
- package/lib/errors/AnalyticsError.d.ts +0 -7
- package/lib/errors/AnalyticsError.js +0 -23
- package/lib/errors/assertValidationError.d.ts +0 -5
- package/lib/errors/index.d.ts +0 -3
- package/lib/errors/validation.d.ts +0 -12
- package/lib/index.d.ts +0 -3
- package/lib/providers/kinesis/apis/flushEvents.d.ts +0 -8
- package/lib/providers/kinesis/apis/flushEvents.js +0 -38
- package/lib/providers/kinesis/apis/index.d.ts +0 -2
- package/lib/providers/kinesis/apis/record.d.ts +0 -2
- package/lib/providers/kinesis/apis/record.js +0 -48
- package/lib/providers/kinesis/index.d.ts +0 -1
- package/lib/providers/kinesis/types/buffer.d.ts +0 -15
- package/lib/providers/kinesis/types/index.d.ts +0 -2
- package/lib/providers/kinesis/types/inputs.d.ts +0 -6
- package/lib/providers/kinesis/utils/constants.d.ts +0 -6
- package/lib/providers/kinesis/utils/getEventBuffer.d.ts +0 -3
- package/lib/providers/kinesis/utils/getEventBuffer.js +0 -103
- package/lib/providers/kinesis/utils/resolveConfig.d.ts +0 -7
- package/lib/providers/kinesis/utils/resolveConfig.js +0 -24
- package/lib/providers/kinesis-firehose/apis/flushEvents.d.ts +0 -8
- package/lib/providers/kinesis-firehose/apis/flushEvents.js +0 -37
- package/lib/providers/kinesis-firehose/apis/index.d.ts +0 -2
- package/lib/providers/kinesis-firehose/apis/record.d.ts +0 -2
- package/lib/providers/kinesis-firehose/apis/record.js +0 -45
- package/lib/providers/kinesis-firehose/index.d.ts +0 -1
- package/lib/providers/kinesis-firehose/types/buffer.d.ts +0 -15
- package/lib/providers/kinesis-firehose/types/index.d.ts +0 -2
- package/lib/providers/kinesis-firehose/types/inputs.d.ts +0 -5
- package/lib/providers/kinesis-firehose/utils/constants.d.ts +0 -6
- package/lib/providers/kinesis-firehose/utils/getEventBuffer.d.ts +0 -3
- package/lib/providers/kinesis-firehose/utils/getEventBuffer.js +0 -100
- package/lib/providers/kinesis-firehose/utils/index.d.ts +0 -2
- package/lib/providers/kinesis-firehose/utils/resolveConfig.d.ts +0 -7
- package/lib/providers/kinesis-firehose/utils/resolveConfig.js +0 -24
- package/lib/providers/personalize/apis/flushEvents.d.ts +0 -8
- package/lib/providers/personalize/apis/flushEvents.js +0 -36
- package/lib/providers/personalize/apis/index.d.ts +0 -2
- package/lib/providers/personalize/apis/record.d.ts +0 -2
- package/lib/providers/personalize/apis/record.js +0 -87
- package/lib/providers/personalize/index.d.ts +0 -1
- package/lib/providers/personalize/types/buffer.d.ts +0 -16
- package/lib/providers/personalize/types/index.d.ts +0 -2
- package/lib/providers/personalize/types/inputs.d.ts +0 -7
- package/lib/providers/personalize/utils/autoTrackMedia.d.ts +0 -10
- package/lib/providers/personalize/utils/autoTrackMedia.js +0 -183
- package/lib/providers/personalize/utils/cachedSession.d.ts +0 -5
- package/lib/providers/personalize/utils/cachedSession.js +0 -61
- package/lib/providers/personalize/utils/constants.d.ts +0 -7
- package/lib/providers/personalize/utils/getEventBuffer.d.ts +0 -3
- package/lib/providers/personalize/utils/getEventBuffer.js +0 -100
- package/lib/providers/personalize/utils/index.d.ts +0 -5
- package/lib/providers/personalize/utils/resolveConfig.d.ts +0 -7
- package/lib/providers/personalize/utils/resolveConfig.js +0 -25
- package/lib/providers/pinpoint/apis/configureAutoTrack.d.ts +0 -15
- package/lib/providers/pinpoint/apis/flushEvents.d.ts +0 -8
- package/lib/providers/pinpoint/apis/flushEvents.js +0 -28
- package/lib/providers/pinpoint/apis/identifyUser.js +0 -83
- package/lib/providers/pinpoint/apis/index.d.ts +0 -4
- package/lib/providers/pinpoint/apis/record.d.ts +0 -30
- package/lib/providers/pinpoint/index.d.ts +0 -2
- package/lib/providers/pinpoint/types/index.d.ts +0 -2
- package/lib/providers/pinpoint/types/inputs.d.ts +0 -15
- package/lib/providers/pinpoint/types/options.d.ts +0 -5
- package/lib/providers/pinpoint/utils/index.d.ts +0 -2
- package/lib/providers/pinpoint/utils/resolveConfig.d.ts +0 -7
- package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +0 -7
- package/lib/providers/pinpoint/utils/resolveCredentials.js +0 -24
- package/lib/setupTests.d.ts +0 -1
- package/lib/trackers/EventTracker.d.ts +0 -10
- package/lib/trackers/EventTracker.js +0 -104
- package/lib/trackers/PageViewTracker.d.ts +0 -18
- package/lib/trackers/SessionTracker.d.ts +0 -13
- package/lib/trackers/SessionTracker.native.d.ts +0 -13
- package/lib/trackers/index.d.ts +0 -3
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/types/index.d.ts +0 -3
- package/lib/types/index.js +0 -4
- package/lib/types/inputs.d.ts +0 -35
- package/lib/types/inputs.js +0 -4
- package/lib/types/kinesis.d.ts +0 -8
- package/lib/types/options.d.ts +0 -4
- package/lib/types/trackers.d.ts +0 -22
- package/lib/utils/eventBuffer/EventBuffer.d.ts +0 -16
- package/lib/utils/eventBuffer/EventBuffer.js +0 -91
- package/lib/utils/eventBuffer/index.d.ts +0 -2
- package/lib/utils/eventBuffer/types.d.ts +0 -8
- package/lib/utils/groupBy.d.ts +0 -1
- package/lib/utils/groupBy.js +0 -15
- package/lib/utils/index.d.ts +0 -7
- package/lib/utils/resolveCredentials.d.ts +0 -4
- package/lib/utils/resolveCredentials.js +0 -21
- package/lib/utils/statusHelpers.d.ts +0 -6
- package/lib/utils/trackerConfigHelpers.d.ts +0 -5
- package/lib/utils/trackerConfigHelpers.native.d.ts +0 -5
- package/lib/utils/trackerHelpers.d.ts +0 -9
- package/lib/utils/userAgent.d.ts +0 -4
- package/lib-esm/apis/disable.js +0 -11
- package/lib-esm/apis/enable.js +0 -10
- package/lib-esm/apis/index.js +0 -4
- package/lib-esm/errors/AnalyticsError.js +0 -20
- package/lib-esm/errors/assertValidationError.js +0 -17
- package/lib-esm/errors/index.js +0 -5
- package/lib-esm/index.js +0 -5
- package/lib-esm/providers/kinesis/apis/flushEvents.js +0 -34
- package/lib-esm/providers/kinesis/apis/index.js +0 -4
- package/lib-esm/providers/kinesis/apis/record.js +0 -44
- package/lib-esm/providers/kinesis/index.js +0 -3
- package/lib-esm/providers/kinesis/types/buffer.js +0 -3
- package/lib-esm/providers/kinesis/types/index.js +0 -3
- package/lib-esm/providers/kinesis/types/inputs.js +0 -3
- package/lib-esm/providers/kinesis/utils/getEventBuffer.js +0 -99
- package/lib-esm/providers/kinesis/utils/resolveConfig.js +0 -20
- package/lib-esm/providers/kinesis-firehose/apis/flushEvents.js +0 -33
- package/lib-esm/providers/kinesis-firehose/apis/index.js +0 -4
- package/lib-esm/providers/kinesis-firehose/apis/record.js +0 -41
- package/lib-esm/providers/kinesis-firehose/index.js +0 -3
- package/lib-esm/providers/kinesis-firehose/types/buffer.js +0 -3
- package/lib-esm/providers/kinesis-firehose/types/index.js +0 -3
- package/lib-esm/providers/kinesis-firehose/types/inputs.js +0 -3
- package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.js +0 -96
- package/lib-esm/providers/kinesis-firehose/utils/index.js +0 -4
- package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.js +0 -20
- package/lib-esm/providers/personalize/apis/flushEvents.js +0 -32
- package/lib-esm/providers/personalize/apis/index.js +0 -4
- package/lib-esm/providers/personalize/apis/record.js +0 -83
- package/lib-esm/providers/personalize/index.js +0 -3
- package/lib-esm/providers/personalize/types/buffer.js +0 -3
- package/lib-esm/providers/personalize/types/index.js +0 -3
- package/lib-esm/providers/personalize/types/inputs.js +0 -3
- package/lib-esm/providers/personalize/utils/autoTrackMedia.js +0 -179
- package/lib-esm/providers/personalize/utils/cachedSession.js +0 -56
- package/lib-esm/providers/personalize/utils/constants.js +0 -9
- package/lib-esm/providers/personalize/utils/getEventBuffer.js +0 -96
- package/lib-esm/providers/personalize/utils/index.js +0 -7
- package/lib-esm/providers/personalize/utils/resolveConfig.js +0 -21
- package/lib-esm/providers/pinpoint/apis/flushEvents.js +0 -24
- package/lib-esm/providers/pinpoint/apis/index.js +0 -6
- package/lib-esm/providers/pinpoint/index.js +0 -3
- package/lib-esm/providers/pinpoint/types/index.js +0 -3
- package/lib-esm/providers/pinpoint/types/inputs.js +0 -3
- package/lib-esm/providers/pinpoint/types/options.js +0 -3
- package/lib-esm/providers/pinpoint/utils/index.js +0 -4
- package/lib-esm/providers/pinpoint/utils/resolveConfig.js +0 -14
- package/lib-esm/providers/pinpoint/utils/resolveCredentials.js +0 -20
- package/lib-esm/trackers/EventTracker.js +0 -101
- package/lib-esm/trackers/index.js +0 -5
- package/lib-esm/tsconfig.tsbuildinfo +0 -1
- package/lib-esm/types/index.js +0 -3
- package/lib-esm/types/inputs.js +0 -3
- package/lib-esm/types/kinesis.js +0 -3
- package/lib-esm/types/options.js +0 -3
- package/lib-esm/types/trackers.js +0 -3
- package/lib-esm/utils/eventBuffer/EventBuffer.js +0 -88
- package/lib-esm/utils/eventBuffer/index.js +0 -3
- package/lib-esm/utils/eventBuffer/types.js +0 -3
- package/lib-esm/utils/groupBy.js +0 -11
- package/lib-esm/utils/index.js +0 -9
- package/lib-esm/utils/resolveCredentials.js +0 -17
- package/lib-esm/utils/statusHelpers.js +0 -13
- package/lib-esm/utils/trackerConfigHelpers.js +0 -11
- package/lib-esm/utils/trackerConfigHelpers.native.js +0 -10
- package/lib-esm/utils/userAgent.js +0 -15
- /package/{lib-esm → dist/esm}/apis/disable.d.ts +0 -0
- /package/{lib-esm → dist/esm}/apis/enable.d.ts +0 -0
- /package/{lib-esm → dist/esm}/apis/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/errors/AnalyticsError.d.ts +0 -0
- /package/{lib-esm → dist/esm}/errors/assertValidationError.d.ts +0 -0
- /package/{lib-esm → dist/esm}/errors/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/errors/validation.d.ts +0 -0
- /package/{lib-esm → dist/esm}/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/apis/flushEvents.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/apis/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/apis/record.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/types/buffer.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/types/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/types/inputs.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/utils/constants.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/utils/getEventBuffer.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis/utils/resolveConfig.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/apis/flushEvents.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/apis/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/apis/record.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/types/buffer.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/types/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/types/inputs.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/utils/constants.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/utils/getEventBuffer.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/utils/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/kinesis-firehose/utils/resolveConfig.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/apis/flushEvents.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/apis/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/apis/record.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/types/buffer.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/types/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/types/inputs.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/utils/autoTrackMedia.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/utils/cachedSession.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/utils/constants.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/utils/getEventBuffer.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/utils/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/personalize/utils/resolveConfig.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/apis/configureAutoTrack.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/apis/flushEvents.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/apis/identifyUser.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/apis/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/apis/record.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/types/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/types/inputs.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/types/options.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/utils/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/providers/pinpoint/utils/resolveConfig.d.ts +0 -0
- /package/{lib-esm → dist/esm}/setupTests.d.ts +0 -0
- /package/{lib-esm → dist/esm}/trackers/EventTracker.d.ts +0 -0
- /package/{lib-esm → dist/esm}/trackers/PageViewTracker.d.ts +0 -0
- /package/{lib-esm → dist/esm}/trackers/SessionTracker.d.ts +0 -0
- /package/{lib-esm → dist/esm}/trackers/SessionTracker.native.d.ts +0 -0
- /package/{lib-esm → dist/esm}/trackers/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/types/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/types/inputs.d.ts +0 -0
- /package/{lib-esm → dist/esm}/types/kinesis.d.ts +0 -0
- /package/{lib-esm → dist/esm}/types/options.d.ts +0 -0
- /package/{lib-esm → dist/esm}/types/trackers.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/eventBuffer/EventBuffer.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/eventBuffer/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/eventBuffer/types.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/groupBy.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/statusHelpers.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/trackerConfigHelpers.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/trackerConfigHelpers.native.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/trackerHelpers.d.ts +0 -0
- /package/{lib-esm → dist/esm}/utils/userAgent.d.ts +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import '@aws-amplify/core/internals/utils';
|
|
2
|
+
import '../../../errors/validation.mjs';
|
|
3
|
+
import '@aws-amplify/core';
|
|
4
|
+
import { groupBy } from '../../../utils/groupBy.mjs';
|
|
5
|
+
import { EventBuffer } from '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
6
|
+
import '../../../trackers/EventTracker.mjs';
|
|
7
|
+
import '../../../trackers/PageViewTracker.mjs';
|
|
8
|
+
import '../../../trackers/SessionTracker.mjs';
|
|
9
|
+
import { PersonalizeEventsClient, PutEventsCommand } from '@aws-sdk/client-personalize-events';
|
|
10
|
+
|
|
11
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
12
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
13
|
+
/**
|
|
14
|
+
* These Records hold cached event buffers and AWS clients.
|
|
15
|
+
* The hash key is determined by the region and session,
|
|
16
|
+
* consisting of a combined value comprising [region, sessionToken, identityId].
|
|
17
|
+
*
|
|
18
|
+
* Only one active session should exist at any given moment.
|
|
19
|
+
* When a new session is initiated, the previous ones should be released.
|
|
20
|
+
* */
|
|
21
|
+
const eventBufferMap = {};
|
|
22
|
+
const cachedClients = {};
|
|
23
|
+
const DELIMITER = '#';
|
|
24
|
+
const createPutEventsCommand = (ids, events) => {
|
|
25
|
+
const [trackingId, sessionId, userId] = ids.split(DELIMITER);
|
|
26
|
+
return new PutEventsCommand({
|
|
27
|
+
trackingId,
|
|
28
|
+
sessionId,
|
|
29
|
+
userId,
|
|
30
|
+
eventList: events.map(event => ({
|
|
31
|
+
eventId: event.event.eventId,
|
|
32
|
+
eventType: event.event.eventType,
|
|
33
|
+
properties: JSON.stringify(event.event.properties),
|
|
34
|
+
sentAt: new Date(event.timestamp),
|
|
35
|
+
})),
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
const submitEvents = async (events, client) => {
|
|
39
|
+
const groupedByIds = Object.entries(groupBy(event => [event.trackingId, event.sessionId, event.userId]
|
|
40
|
+
.filter(id => !!id)
|
|
41
|
+
.join(DELIMITER), events));
|
|
42
|
+
const requests = groupedByIds
|
|
43
|
+
.map(([ids, events]) => createPutEventsCommand(ids, events))
|
|
44
|
+
.map(command => client.send(command));
|
|
45
|
+
await Promise.allSettled(requests);
|
|
46
|
+
return Promise.resolve([]);
|
|
47
|
+
};
|
|
48
|
+
const getEventBuffer = ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }) => {
|
|
49
|
+
const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');
|
|
50
|
+
if (!eventBufferMap[sessionIdentityKey]) {
|
|
51
|
+
const getClient = () => {
|
|
52
|
+
if (!cachedClients[sessionIdentityKey]) {
|
|
53
|
+
cachedClients[sessionIdentityKey] = new PersonalizeEventsClient({
|
|
54
|
+
region,
|
|
55
|
+
credentials,
|
|
56
|
+
customUserAgent: userAgentValue,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return events => submitEvents(events, cachedClients[sessionIdentityKey]);
|
|
60
|
+
};
|
|
61
|
+
eventBufferMap[sessionIdentityKey] =
|
|
62
|
+
new EventBuffer({
|
|
63
|
+
bufferSize,
|
|
64
|
+
flushSize,
|
|
65
|
+
flushInterval,
|
|
66
|
+
}, getClient);
|
|
67
|
+
const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);
|
|
68
|
+
for (const releaseSessionKey of releaseSessionKeys) {
|
|
69
|
+
eventBufferMap[releaseSessionKey].flushAll().finally(() => {
|
|
70
|
+
eventBufferMap[releaseSessionKey].release();
|
|
71
|
+
delete eventBufferMap[releaseSessionKey];
|
|
72
|
+
delete cachedClients[releaseSessionKey];
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return eventBufferMap[sessionIdentityKey];
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export { getEventBuffer };
|
|
80
|
+
//# sourceMappingURL=getEventBuffer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/personalize/utils/getEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { EventBuffer, groupBy } from '../../../utils';\nimport { PersonalizeEventsClient, PutEventsCommand, } from '@aws-sdk/client-personalize-events';\n/**\n * These Records hold cached event buffers and AWS clients.\n * The hash key is determined by the region and session,\n * consisting of a combined value comprising [region, sessionToken, identityId].\n *\n * Only one active session should exist at any given moment.\n * When a new session is initiated, the previous ones should be released.\n * */\nconst eventBufferMap = {};\nconst cachedClients = {};\nconst DELIMITER = '#';\nconst createPutEventsCommand = (ids, events) => {\n const [trackingId, sessionId, userId] = ids.split(DELIMITER);\n return new PutEventsCommand({\n trackingId,\n sessionId,\n userId,\n eventList: events.map(event => ({\n eventId: event.event.eventId,\n eventType: event.event.eventType,\n properties: JSON.stringify(event.event.properties),\n sentAt: new Date(event.timestamp),\n })),\n });\n};\nconst submitEvents = async (events, client) => {\n const groupedByIds = Object.entries(groupBy(event => [event.trackingId, event.sessionId, event.userId]\n .filter(id => !!id)\n .join(DELIMITER), events));\n const requests = groupedByIds\n .map(([ids, events]) => createPutEventsCommand(ids, events))\n .map(command => client.send(command));\n await Promise.allSettled(requests);\n return Promise.resolve([]);\n};\nexport const getEventBuffer = ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }) => {\n const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');\n if (!eventBufferMap[sessionIdentityKey]) {\n const getClient = () => {\n if (!cachedClients[sessionIdentityKey]) {\n cachedClients[sessionIdentityKey] = new PersonalizeEventsClient({\n region,\n credentials,\n customUserAgent: userAgentValue,\n });\n }\n return events => submitEvents(events, cachedClients[sessionIdentityKey]);\n };\n eventBufferMap[sessionIdentityKey] =\n new EventBuffer({\n bufferSize,\n flushSize,\n flushInterval,\n }, getClient);\n const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);\n for (const releaseSessionKey of releaseSessionKeys) {\n eventBufferMap[releaseSessionKey].flushAll().finally(() => {\n eventBufferMap[releaseSessionKey].release();\n delete eventBufferMap[releaseSessionKey];\n delete cachedClients[releaseSessionKey];\n });\n }\n }\n return eventBufferMap[sessionIdentityKey];\n};\n"],"names":[],"mappings":";;;;;;;;;;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK;AAChD,IAAI,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjE,IAAI,OAAO,IAAI,gBAAgB,CAAC;AAChC,QAAQ,UAAU;AAClB,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;AACxC,YAAY,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;AACxC,YAAY,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;AAC5C,YAAY,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AAC9D,YAAY,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7C,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,MAAM,KAAK;AAC/C,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;AAC1G,SAAS,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAC3B,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACnC,IAAI,MAAM,QAAQ,GAAG,YAAY;AACjC,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACpE,SAAS,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvC,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AACU,MAAC,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK;AAC9H,IAAI,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/E,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;AAC7C,QAAQ,MAAM,SAAS,GAAG,MAAM;AAChC,YAAY,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE;AACpD,gBAAgB,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,uBAAuB,CAAC;AAChF,oBAAoB,MAAM;AAC1B,oBAAoB,WAAW;AAC/B,oBAAoB,eAAe,EAAE,cAAc;AACnD,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,OAAO,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACrF,SAAS,CAAC;AACV,QAAQ,cAAc,CAAC,kBAAkB,CAAC;AAC1C,YAAY,IAAI,WAAW,CAAC;AAC5B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,aAAa;AAC7B,aAAa,EAAE,SAAS,CAAC,CAAC;AAC1B,QAAQ,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,kBAAkB,CAAC,CAAC;AACzG,QAAQ,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE;AAC5D,YAAY,cAAc,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM;AACvE,gBAAgB,cAAc,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5D,gBAAgB,OAAO,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACzD,gBAAgB,OAAO,aAAa,CAAC,iBAAiB,CAAC,CAAC;AACxD,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,IAAI,OAAO,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAC9C;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { getEventBuffer } from './getEventBuffer.mjs';
|
|
2
|
+
export { resolveConfig } from './resolveConfig.mjs';
|
|
3
|
+
export { autoTrackMedia } from './autoTrackMedia.mjs';
|
|
4
|
+
export { resolveCachedSession, updateCachedSession } from './cachedSession.mjs';
|
|
5
|
+
export { DEFAULT_PERSONALIZE_CONFIG, PERSONALIZE_FLUSH_SIZE_MAX } from './constants.mjs';
|
|
6
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Amplify } from '@aws-amplify/core';
|
|
2
|
+
import '@aws-amplify/core/internals/utils';
|
|
3
|
+
import { assertValidationError } from '../../../errors/assertValidationError.mjs';
|
|
4
|
+
import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
|
|
5
|
+
import '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
6
|
+
import '../../../trackers/EventTracker.mjs';
|
|
7
|
+
import '../../../trackers/PageViewTracker.mjs';
|
|
8
|
+
import '../../../trackers/SessionTracker.mjs';
|
|
9
|
+
import '@aws-sdk/client-personalize-events';
|
|
10
|
+
import './autoTrackMedia.mjs';
|
|
11
|
+
import { DEFAULT_PERSONALIZE_CONFIG, PERSONALIZE_FLUSH_SIZE_MAX } from './constants.mjs';
|
|
12
|
+
|
|
13
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
14
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
const resolveConfig = () => {
|
|
16
|
+
const config = Amplify.getConfig().Analytics?.Personalize;
|
|
17
|
+
const { region, trackingId, flushSize = DEFAULT_PERSONALIZE_CONFIG.flushSize, flushInterval = DEFAULT_PERSONALIZE_CONFIG.flushInterval, } = {
|
|
18
|
+
...DEFAULT_PERSONALIZE_CONFIG,
|
|
19
|
+
...config,
|
|
20
|
+
};
|
|
21
|
+
assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
|
|
22
|
+
assertValidationError(!!trackingId, AnalyticsValidationErrorCode.NoTrackingId);
|
|
23
|
+
assertValidationError(flushSize <= PERSONALIZE_FLUSH_SIZE_MAX, AnalyticsValidationErrorCode.InvalidFlushSize, `FlushSize for Personalize should be less or equal than ${PERSONALIZE_FLUSH_SIZE_MAX}`);
|
|
24
|
+
return {
|
|
25
|
+
region,
|
|
26
|
+
trackingId,
|
|
27
|
+
bufferSize: flushSize + 1,
|
|
28
|
+
flushSize,
|
|
29
|
+
flushInterval,
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { resolveConfig };
|
|
34
|
+
//# sourceMappingURL=resolveConfig.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveConfig.mjs","sources":["../../../../../src/providers/personalize/utils/resolveConfig.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';\nimport { DEFAULT_PERSONALIZE_CONFIG, PERSONALIZE_FLUSH_SIZE_MAX } from './';\nexport const resolveConfig = () => {\n const config = Amplify.getConfig().Analytics?.Personalize;\n const { region, trackingId, flushSize = DEFAULT_PERSONALIZE_CONFIG.flushSize, flushInterval = DEFAULT_PERSONALIZE_CONFIG.flushInterval, } = {\n ...DEFAULT_PERSONALIZE_CONFIG,\n ...config,\n };\n assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);\n assertValidationError(!!trackingId, AnalyticsValidationErrorCode.NoTrackingId);\n assertValidationError(flushSize <= PERSONALIZE_FLUSH_SIZE_MAX, AnalyticsValidationErrorCode.InvalidFlushSize, `FlushSize for Personalize should be less or equal than ${PERSONALIZE_FLUSH_SIZE_MAX}`);\n return {\n region,\n trackingId,\n bufferSize: flushSize + 1,\n flushSize,\n flushInterval,\n };\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAIY,MAAC,aAAa,GAAG,MAAM;AACnC,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AAC9D,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,aAAa,GAAG,0BAA0B,CAAC,aAAa,GAAG,GAAG;AAChJ,QAAQ,GAAG,0BAA0B;AACrC,QAAQ,GAAG,MAAM;AACjB,KAAK,CAAC;AACN,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AAC3E,IAAI,qBAAqB,CAAC,CAAC,CAAC,UAAU,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC;AACnF,IAAI,qBAAqB,CAAC,SAAS,IAAI,0BAA0B,EAAE,4BAA4B,CAAC,gBAAgB,EAAE,CAAC,uDAAuD,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAC1M,IAAI,OAAO;AACX,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,UAAU,EAAE,SAAS,GAAG,CAAC;AACjC,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,KAAK,CAAC;AACN;;;;"}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
+
import '@aws-amplify/core/internals/utils';
|
|
2
|
+
import '../../../errors/validation.mjs';
|
|
3
|
+
import '@aws-amplify/core';
|
|
4
|
+
import '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
5
|
+
import { updateProviderTrackers } from '../../../utils/trackerHelpers.mjs';
|
|
6
|
+
import { validateTrackerConfiguration } from '../../../utils/trackerConfigHelpers.mjs';
|
|
7
|
+
import { record } from './record.mjs';
|
|
8
|
+
|
|
1
9
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
10
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { updateProviderTrackers, validateTrackerConfiguration, } from '../../../utils';
|
|
4
|
-
import { record } from './record';
|
|
5
11
|
// Configured Tracker instances for Pinpoint
|
|
6
|
-
|
|
12
|
+
const configuredTrackers = {};
|
|
7
13
|
// Callback that will emit an appropriate event to Pinpoint when required by the Tracker
|
|
8
|
-
|
|
14
|
+
const emitTrackingEvent = (eventName, attributes) => {
|
|
9
15
|
record({
|
|
10
16
|
name: eventName,
|
|
11
|
-
attributes
|
|
17
|
+
attributes,
|
|
12
18
|
});
|
|
13
19
|
};
|
|
14
20
|
/**
|
|
@@ -24,8 +30,11 @@ var emitTrackingEvent = function (eventName, attributes) {
|
|
|
24
30
|
* @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
|
|
25
31
|
* configuration is incorrect.
|
|
26
32
|
*/
|
|
27
|
-
|
|
33
|
+
const configureAutoTrack = (input) => {
|
|
28
34
|
validateTrackerConfiguration(input);
|
|
29
35
|
// Initialize or update this provider's trackers
|
|
30
36
|
updateProviderTrackers(input, emitTrackingEvent, configuredTrackers);
|
|
31
37
|
};
|
|
38
|
+
|
|
39
|
+
export { configureAutoTrack };
|
|
40
|
+
//# sourceMappingURL=configureAutoTrack.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureAutoTrack.mjs","sources":["../../../../../src/providers/pinpoint/apis/configureAutoTrack.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { updateProviderTrackers, validateTrackerConfiguration, } from '../../../utils';\nimport { record } from './record';\n// Configured Tracker instances for Pinpoint\nconst configuredTrackers = {};\n// Callback that will emit an appropriate event to Pinpoint when required by the Tracker\nconst emitTrackingEvent = (eventName, attributes) => {\n record({\n name: eventName,\n attributes,\n });\n};\n/**\n * Configures automatic event tracking for Pinpoint. This API will automatically transmit an analytic event when\n * configured events are detected within your application. This can include: DOM element events (via the `event`\n * tracker), session events (via the `session` tracker), and page view events (via the `pageView` tracker).\n *\n * @remark Only session tracking is currently supported on React Native.\n *\n * @param {ConfigureAutoTrackInput} params The input object to configure auto track behavior.\n *\n * @throws service: {@link UpdateEndpointException} - Thrown when the underlying Pinpoint service returns an error.\n * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library\n * configuration is incorrect.\n */\nexport const configureAutoTrack = (input) => {\n validateTrackerConfiguration(input);\n // Initialize or update this provider's trackers\n updateProviderTrackers(input, emitTrackingEvent, configuredTrackers);\n};\n"],"names":[],"mappings":";;;;;;;;AAAA;AACA;AAGA;AACA,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B;AACA,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,UAAU,KAAK;AACrD,IAAI,MAAM,CAAC;AACX,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,UAAU;AAClB,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,kBAAkB,GAAG,CAAC,KAAK,KAAK;AAC7C,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAC;AACxC;AACA,IAAI,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AACzE;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { resolveConfig } from '../utils/resolveConfig.mjs';
|
|
2
|
+
import { resolveCredentials } from '../utils/resolveCredentials.mjs';
|
|
3
|
+
import { flushEvents as flushEvents$1 } from '@aws-amplify/core/internals/providers/pinpoint';
|
|
4
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
5
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
6
|
+
import '../../../errors/validation.mjs';
|
|
7
|
+
import '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
8
|
+
import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
|
|
9
|
+
import '../../../trackers/EventTracker.mjs';
|
|
10
|
+
import '../../../trackers/PageViewTracker.mjs';
|
|
11
|
+
import '../../../trackers/SessionTracker.mjs';
|
|
12
|
+
|
|
13
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
14
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
const logger = new ConsoleLogger('Analytics');
|
|
16
|
+
/**
|
|
17
|
+
* Flushes all buffered Pinpoint events to the service.
|
|
18
|
+
*
|
|
19
|
+
* @note
|
|
20
|
+
* This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
|
|
21
|
+
* this API may not be included in the flush.
|
|
22
|
+
*/
|
|
23
|
+
const flushEvents = () => {
|
|
24
|
+
const { appId, region } = resolveConfig();
|
|
25
|
+
resolveCredentials()
|
|
26
|
+
.then(({ credentials, identityId }) => flushEvents$1(appId, region, credentials, identityId, getAnalyticsUserAgentString(AnalyticsAction.Record)))
|
|
27
|
+
.catch(e => logger.warn('Failed to flush events', e));
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { flushEvents };
|
|
31
|
+
//# sourceMappingURL=flushEvents.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/pinpoint/apis/flushEvents.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { resolveConfig, resolveCredentials } from '../utils';\nimport { flushEvents as flushEventsCore } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { getAnalyticsUserAgentString } from '../../../utils';\nconst logger = new ConsoleLogger('Analytics');\n/**\n * Flushes all buffered Pinpoint events to the service.\n *\n * @note\n * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking\n * this API may not be included in the flush.\n */\nexport const flushEvents = () => {\n const { appId, region } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => flushEventsCore(appId, region, credentials, identityId, getAnalyticsUserAgentString(AnalyticsAction.Record)))\n .catch(e => logger.warn('Failed to flush events', e));\n};\n"],"names":["flushEventsCore"],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9C,IAAI,kBAAkB,EAAE;AACxB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAKA,aAAe,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5J,SAAS,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D;;;;"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
import { updateEndpoint } from '@aws-amplify/core/internals/providers/pinpoint';
|
|
3
|
+
import '../../../errors/validation.mjs';
|
|
4
|
+
import '@aws-amplify/core';
|
|
5
|
+
import '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
6
|
+
import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
|
|
7
|
+
import '../../../trackers/EventTracker.mjs';
|
|
8
|
+
import '../../../trackers/PageViewTracker.mjs';
|
|
9
|
+
import '../../../trackers/SessionTracker.mjs';
|
|
10
|
+
import { resolveConfig } from '../utils/resolveConfig.mjs';
|
|
11
|
+
import { resolveCredentials } from '../utils/resolveCredentials.mjs';
|
|
12
|
+
|
|
1
13
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
14
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { __awaiter, __generator } from "tslib";
|
|
4
|
-
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
5
|
-
import { updateEndpoint, } from '@aws-amplify/core/internals/providers/pinpoint';
|
|
6
|
-
import { getAnalyticsUserAgentString } from '../../../utils';
|
|
7
|
-
import { resolveConfig, resolveCredentials } from '../utils';
|
|
8
15
|
/**
|
|
9
16
|
* Sends information about a user to Pinpoint. Sending user information allows you to associate a user to their user
|
|
10
17
|
* profile and activities or actions in your application. Activity can be tracked across devices & platforms by using
|
|
@@ -50,30 +57,22 @@ import { resolveConfig, resolveCredentials } from '../utils';
|
|
|
50
57
|
* }
|
|
51
58
|
* });
|
|
52
59
|
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
credentials: credentials,
|
|
68
|
-
identityId: identityId,
|
|
69
|
-
region: region,
|
|
70
|
-
userAttributes: userAttributes,
|
|
71
|
-
userId: userId,
|
|
72
|
-
userProfile: userProfile,
|
|
73
|
-
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.IdentifyUser),
|
|
74
|
-
});
|
|
75
|
-
return [2 /*return*/];
|
|
76
|
-
}
|
|
77
|
-
});
|
|
60
|
+
const identifyUser = async ({ userId, userProfile, options, }) => {
|
|
61
|
+
const { credentials, identityId } = await resolveCredentials();
|
|
62
|
+
const { appId, region } = resolveConfig();
|
|
63
|
+
const { userAttributes } = options ?? {};
|
|
64
|
+
updateEndpoint({
|
|
65
|
+
appId,
|
|
66
|
+
category: 'Analytics',
|
|
67
|
+
credentials,
|
|
68
|
+
identityId,
|
|
69
|
+
region,
|
|
70
|
+
userAttributes,
|
|
71
|
+
userId,
|
|
72
|
+
userProfile,
|
|
73
|
+
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.IdentifyUser),
|
|
78
74
|
});
|
|
79
75
|
};
|
|
76
|
+
|
|
77
|
+
export { identifyUser };
|
|
78
|
+
//# sourceMappingURL=identifyUser.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifyUser.mjs","sources":["../../../../../src/providers/pinpoint/apis/identifyUser.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { updateEndpoint, } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { getAnalyticsUserAgentString } from '../../../utils';\nimport { resolveConfig, resolveCredentials } from '../utils';\n/**\n * Sends information about a user to Pinpoint. Sending user information allows you to associate a user to their user\n * profile and activities or actions in your application. Activity can be tracked across devices & platforms by using\n * the same `userId`.\n *\n * @param {IdentifyUserParameters} params The input object used to construct requests sent to Pinpoint's UpdateEndpoint\n * API.\n *\n * @throws service: {@link UpdateEndpointException} - Thrown when the underlying Pinpoint service returns an error.\n * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library\n * configuration is incorrect.\n *\n * @returns A promise that will resolve when the operation is complete.\n *\n * @example\n * ```ts\n * // Identify a user with Pinpoint\n * await identifyUser({\n * userId,\n * userProfile: {\n * email: 'userEmail@example.com'\n * customProperties: {\n * phoneNumber: ['555-555-5555'],\n * },\n * }\n * });\n * ```\n *\n * @example\n * ```ts\n * // Identify a user with Pinpoint with some additional demographics\n * await identifyUser({\n * userId,\n * userProfile: {\n * email: 'userEmail@example.com'\n * customProperties: {\n * phoneNumber: ['555-555-5555'],\n * },\n * demographic: {\n * platform: 'ios',\n * timezone: 'America/Los_Angeles'\n * }\n * }\n * });\n */\nexport const identifyUser = async ({ userId, userProfile, options, }) => {\n const { credentials, identityId } = await resolveCredentials();\n const { appId, region } = resolveConfig();\n const { userAttributes } = options ?? {};\n updateEndpoint({\n appId,\n category: 'Analytics',\n credentials,\n identityId,\n region,\n userAttributes,\n userId,\n userProfile,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.IdentifyUser),\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,YAAY,GAAG,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,KAAK;AACzE,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAC;AACnE,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9C,IAAI,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AAC7C,IAAI,cAAc,CAAC;AACnB,QAAQ,KAAK;AACb,QAAQ,QAAQ,EAAE,WAAW;AAC7B,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,cAAc;AACtB,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,YAAY,CAAC;AACjF,KAAK,CAAC,CAAC;AACP;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
package/{lib-esm/providers/pinpoint/apis/record.js → dist/esm/providers/pinpoint/apis/record.mjs}
RENAMED
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
import { ConsoleLogger, Hub } from '@aws-amplify/core';
|
|
2
|
+
import { AMPLIFY_SYMBOL, AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
3
|
+
import { record as record$1 } from '@aws-amplify/core/internals/providers/pinpoint';
|
|
4
|
+
import { assertValidationError } from '../../../errors/assertValidationError.mjs';
|
|
5
|
+
import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
|
|
6
|
+
import '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
7
|
+
import { isAnalyticsEnabled } from '../../../utils/statusHelpers.mjs';
|
|
8
|
+
import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
|
|
9
|
+
import '../../../trackers/EventTracker.mjs';
|
|
10
|
+
import '../../../trackers/PageViewTracker.mjs';
|
|
11
|
+
import '../../../trackers/SessionTracker.mjs';
|
|
12
|
+
import { resolveConfig } from '../utils/resolveConfig.mjs';
|
|
13
|
+
import { resolveCredentials } from '../utils/resolveCredentials.mjs';
|
|
14
|
+
|
|
1
15
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
16
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import { AMPLIFY_SYMBOL, AnalyticsAction, } from '@aws-amplify/core/internals/utils';
|
|
5
|
-
import { record as recordCore } from '@aws-amplify/core/internals/providers/pinpoint';
|
|
6
|
-
import { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';
|
|
7
|
-
import { getAnalyticsUserAgentString, isAnalyticsEnabled, } from '../../../utils';
|
|
8
|
-
import { resolveConfig, resolveCredentials } from '../utils';
|
|
9
|
-
var logger = new ConsoleLogger('Analytics');
|
|
17
|
+
const logger = new ConsoleLogger('Analytics');
|
|
10
18
|
/**
|
|
11
19
|
* Records an Analytic event to Pinpoint. Events will be buffered and periodically sent to Pinpoint.
|
|
12
20
|
*
|
|
@@ -35,29 +43,31 @@ var logger = new ConsoleLogger('Analytics');
|
|
|
35
43
|
* })
|
|
36
44
|
* ```
|
|
37
45
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
const record = (input) => {
|
|
47
|
+
const { appId, region } = resolveConfig();
|
|
40
48
|
if (!isAnalyticsEnabled()) {
|
|
41
49
|
logger.debug('Analytics is disabled, event will not be recorded.');
|
|
42
50
|
return;
|
|
43
51
|
}
|
|
44
52
|
assertValidationError(!!input.name, AnalyticsValidationErrorCode.NoEventName);
|
|
45
53
|
resolveCredentials()
|
|
46
|
-
.then(
|
|
47
|
-
var credentials = _a.credentials, identityId = _a.identityId;
|
|
54
|
+
.then(({ credentials, identityId }) => {
|
|
48
55
|
Hub.dispatch('analytics', { event: 'record', data: input, message: 'Recording Analytics event' }, 'Analytics', AMPLIFY_SYMBOL);
|
|
49
|
-
|
|
50
|
-
appId
|
|
56
|
+
record$1({
|
|
57
|
+
appId,
|
|
51
58
|
category: 'Analytics',
|
|
52
|
-
credentials
|
|
59
|
+
credentials,
|
|
53
60
|
event: input,
|
|
54
|
-
identityId
|
|
55
|
-
region
|
|
61
|
+
identityId,
|
|
62
|
+
region,
|
|
56
63
|
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
57
64
|
});
|
|
58
65
|
})
|
|
59
|
-
.catch(
|
|
66
|
+
.catch(e => {
|
|
60
67
|
// An error occured while fetching credentials or persisting the event to the buffer
|
|
61
68
|
logger.warn('Failed to record event.', e);
|
|
62
69
|
});
|
|
63
70
|
};
|
|
71
|
+
|
|
72
|
+
export { record };
|
|
73
|
+
//# sourceMappingURL=record.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.mjs","sources":["../../../../../src/providers/pinpoint/apis/record.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub, ConsoleLogger } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL, AnalyticsAction, } from '@aws-amplify/core/internals/utils';\nimport { record as recordCore } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, } from '../../../utils';\nimport { resolveConfig, resolveCredentials } from '../utils';\nconst logger = new ConsoleLogger('Analytics');\n/**\n * Records an Analytic event to Pinpoint. Events will be buffered and periodically sent to Pinpoint.\n *\n * @param {RecordInput} params The input object used to construct the request.\n *\n * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library\n * configuration is incorrect.\n *\n * @example\n * ```ts\n * // Send an event to Pinpoint\n * record({ name: eventName })\n * ```\n *\n * @example\n * ```ts\n * // Send an event to Pinpoint with metrics & custom attributes\n * record({\n * name: eventName,\n * attributes: {\n * 'my-attribute': attributeValue\n * },\n * metrics: {\n * 'my-metric': metricValue\n * }\n * })\n * ```\n */\nexport const record = (input) => {\n const { appId, region } = resolveConfig();\n if (!isAnalyticsEnabled()) {\n logger.debug('Analytics is disabled, event will not be recorded.');\n return;\n }\n assertValidationError(!!input.name, AnalyticsValidationErrorCode.NoEventName);\n resolveCredentials()\n .then(({ credentials, identityId }) => {\n Hub.dispatch('analytics', { event: 'record', data: input, message: 'Recording Analytics event' }, 'Analytics', AMPLIFY_SYMBOL);\n recordCore({\n appId,\n category: 'Analytics',\n credentials,\n event: input,\n identityId,\n region,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n })\n .catch(e => {\n // An error occured while fetching credentials or persisting the event to the buffer\n logger.warn('Failed to record event.', e);\n });\n};\n"],"names":["recordCore"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAOA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,KAAK,KAAK;AACjC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC3E,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,4BAA4B,CAAC,WAAW,CAAC,CAAC;AAClF,IAAI,kBAAkB,EAAE;AACxB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AAC/C,QAAQ,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AACvI,QAAQA,QAAU,CAAC;AACnB,YAAY,KAAK;AACjB,YAAY,QAAQ,EAAE,WAAW;AACjC,YAAY,WAAW;AACvB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,UAAU;AACtB,YAAY,MAAM;AAClB,YAAY,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC/E,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;AAClD,KAAK,CAAC,CAAC;AACP;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputs.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Amplify } from '@aws-amplify/core';
|
|
2
|
+
import '@aws-amplify/core/internals/utils';
|
|
3
|
+
import { assertValidationError } from '../../../errors/assertValidationError.mjs';
|
|
4
|
+
import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
|
|
5
|
+
|
|
6
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
const resolveConfig = () => {
|
|
12
|
+
const { appId, region } = Amplify.getConfig().Analytics?.Pinpoint ?? {};
|
|
13
|
+
assertValidationError(!!appId, AnalyticsValidationErrorCode.NoAppId);
|
|
14
|
+
assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
|
|
15
|
+
return { appId, region };
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { resolveConfig };
|
|
19
|
+
//# sourceMappingURL=resolveConfig.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveConfig.mjs","sources":["../../../../../src/providers/pinpoint/utils/resolveConfig.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';\n/**\n * @internal\n */\nexport const resolveConfig = () => {\n const { appId, region } = Amplify.getConfig().Analytics?.Pinpoint ?? {};\n assertValidationError(!!appId, AnalyticsValidationErrorCode.NoAppId);\n assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);\n return { appId, region };\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAGA;AACA;AACA;AACY,MAAC,aAAa,GAAG,MAAM;AACnC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;AAC5E,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACzE,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AAC3E,IAAI,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC7B;;;;"}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* @internal
|
|
3
3
|
*/
|
|
4
4
|
export declare const resolveCredentials: () => Promise<{
|
|
5
|
-
credentials: import("@aws-amplify/core/
|
|
5
|
+
credentials: import("@aws-amplify/core/internals/utils").AWSCredentials;
|
|
6
6
|
identityId: string | undefined;
|
|
7
7
|
}>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { fetchAuthSession } from '@aws-amplify/core';
|
|
2
|
+
import '@aws-amplify/core/internals/utils';
|
|
3
|
+
import { assertValidationError } from '../../../errors/assertValidationError.mjs';
|
|
4
|
+
import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
|
|
5
|
+
|
|
6
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
const resolveCredentials = async () => {
|
|
12
|
+
const { credentials, identityId } = await fetchAuthSession();
|
|
13
|
+
assertValidationError(!!credentials, AnalyticsValidationErrorCode.NoCredentials);
|
|
14
|
+
return { credentials, identityId };
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { resolveCredentials };
|
|
18
|
+
//# sourceMappingURL=resolveCredentials.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveCredentials.mjs","sources":["../../../../../src/providers/pinpoint/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';\n/**\n * @internal\n */\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;AAGA;AACA;AACA;AACY,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,7 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
3
|
+
const anyGlobal = global;
|
|
5
4
|
anyGlobal.navigator = anyGlobal.navigator || {};
|
|
6
5
|
// @ts-ignore
|
|
7
6
|
anyGlobal.navigator.sendBeacon = anyGlobal.navigator.sendBeacon || jest.fn();
|
|
7
|
+
//# sourceMappingURL=setupTests.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupTests.mjs","sources":["../../src/setupTests.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst anyGlobal = global;\nanyGlobal.navigator = anyGlobal.navigator || {};\n// @ts-ignore\nanyGlobal.navigator.sendBeacon = anyGlobal.navigator.sendBeacon || jest.fn();\n"],"names":[],"mappings":"AACA;AACA;AACA,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC;AAChD;AACA,SAAS,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
2
|
+
import { isBrowser } from '@aws-amplify/core/internals/utils';
|
|
3
|
+
|
|
4
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
const DEFAULT_EVENTS = ['click'];
|
|
7
|
+
const DEFAULT_SELECTOR_PREFIX = 'data-amplify-analytics-';
|
|
8
|
+
const DEFAULT_EVENT_NAME = 'event'; // Default event name as sent to the analytics provider
|
|
9
|
+
const logger = new ConsoleLogger('EventTracker');
|
|
10
|
+
class EventTracker {
|
|
11
|
+
constructor(eventRecorder, options) {
|
|
12
|
+
this.options = {};
|
|
13
|
+
this.trackerActive = false;
|
|
14
|
+
this.eventRecorder = eventRecorder;
|
|
15
|
+
this.handleDocEvent = this.handleDocEvent.bind(this);
|
|
16
|
+
this.configure(eventRecorder, options);
|
|
17
|
+
}
|
|
18
|
+
configure(eventRecorder, options) {
|
|
19
|
+
this.eventRecorder = eventRecorder;
|
|
20
|
+
// Clean up any existing listeners
|
|
21
|
+
this.cleanup();
|
|
22
|
+
// Apply defaults
|
|
23
|
+
this.options = {
|
|
24
|
+
attributes: options?.attributes ?? undefined,
|
|
25
|
+
events: options?.events ?? DEFAULT_EVENTS,
|
|
26
|
+
selectorPrefix: options?.selectorPrefix ?? DEFAULT_SELECTOR_PREFIX,
|
|
27
|
+
};
|
|
28
|
+
// Register event listeners
|
|
29
|
+
if (isBrowser()) {
|
|
30
|
+
this.options.events?.forEach(targetEvent => {
|
|
31
|
+
document.addEventListener(targetEvent, this.handleDocEvent, {
|
|
32
|
+
capture: true,
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
this.trackerActive = true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
cleanup() {
|
|
39
|
+
// No-op if document listener is not active
|
|
40
|
+
if (!this.trackerActive) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Clean up event listeners
|
|
44
|
+
this.options.events?.forEach(targetEvent => {
|
|
45
|
+
document.removeEventListener(targetEvent, this.handleDocEvent, {
|
|
46
|
+
capture: true,
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
handleDocEvent(event) {
|
|
51
|
+
/**
|
|
52
|
+
* Example DOM element:
|
|
53
|
+
*
|
|
54
|
+
* ```
|
|
55
|
+
* <button
|
|
56
|
+
* data-amplify-analytics-on="click"
|
|
57
|
+
* data-amplify-analytics-name="click"
|
|
58
|
+
* data-amplify-analytics-attrs="attr1:attr1_value,attr2:attr2_value"
|
|
59
|
+
* />
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
const triggerSelector = `[${this.options.selectorPrefix}on]`;
|
|
63
|
+
const attrSelector = `${this.options.selectorPrefix}attrs`;
|
|
64
|
+
const eventNameSelector = `${this.options.selectorPrefix}name`;
|
|
65
|
+
const eventSource = event.target;
|
|
66
|
+
// Validate that the triggering event type is being tracked
|
|
67
|
+
if (!this.options.events?.includes(event.type)) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (eventSource instanceof HTMLElement) {
|
|
71
|
+
const target = eventSource.closest(triggerSelector);
|
|
72
|
+
if (target) {
|
|
73
|
+
// Parse event name from the element
|
|
74
|
+
const eventName = target.getAttribute(eventNameSelector) || DEFAULT_EVENT_NAME;
|
|
75
|
+
// Parse attributes from the element
|
|
76
|
+
const elementAttributes = {};
|
|
77
|
+
const rawElementAttributes = target.getAttribute(attrSelector);
|
|
78
|
+
rawElementAttributes?.split(/\s*,\s*/).forEach(attr => {
|
|
79
|
+
const tmp = attr.trim().split(/\s*:\s*/);
|
|
80
|
+
elementAttributes[tmp[0]] = tmp[1];
|
|
81
|
+
});
|
|
82
|
+
// Assemble final list of attributes
|
|
83
|
+
const attributes = Object.assign({
|
|
84
|
+
type: event.type,
|
|
85
|
+
target: `${target.localName} with id ${target.id}`,
|
|
86
|
+
}, this.options.attributes, elementAttributes);
|
|
87
|
+
logger.debug('Recording automatically tracked DOM event', {
|
|
88
|
+
eventName,
|
|
89
|
+
attributes,
|
|
90
|
+
});
|
|
91
|
+
this.eventRecorder(eventName, attributes);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { EventTracker };
|
|
98
|
+
//# sourceMappingURL=EventTracker.mjs.map
|