@aws-amplify/analytics 0.0.0-unstable-1ca644b-20260128091132
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/README.md +3 -0
- package/dist/cjs/apis/disable.js +16 -0
- package/dist/cjs/apis/disable.js.map +1 -0
- package/dist/cjs/apis/enable.js +15 -0
- package/dist/cjs/apis/enable.js.map +1 -0
- package/dist/cjs/apis/index.js +11 -0
- 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/dist/cjs/errors/assertValidationError.js +22 -0
- package/dist/cjs/errors/assertValidationError.js.map +1 -0
- package/dist/cjs/errors/index.js +14 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/errors/validation.js +44 -0
- package/dist/cjs/errors/validation.js.map +1 -0
- package/dist/cjs/index.js +17 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/providers/kinesis/apis/flushEvents.js +39 -0
- package/dist/cjs/providers/kinesis/apis/flushEvents.js.map +1 -0
- package/dist/cjs/providers/kinesis/apis/index.js +11 -0
- package/dist/cjs/providers/kinesis/apis/index.js.map +1 -0
- package/dist/cjs/providers/kinesis/apis/record.js +69 -0
- package/dist/cjs/providers/kinesis/apis/record.js.map +1 -0
- package/dist/cjs/providers/kinesis/index.js +10 -0
- package/dist/cjs/providers/kinesis/index.js.map +1 -0
- package/dist/cjs/providers/kinesis/types/buffer.js +6 -0
- package/dist/cjs/providers/kinesis/types/buffer.js.map +1 -0
- package/dist/cjs/providers/kinesis/types/index.js +6 -0
- package/dist/cjs/providers/kinesis/types/index.js.map +1 -0
- package/dist/cjs/providers/kinesis/types/inputs.js +6 -0
- package/dist/cjs/providers/kinesis/types/inputs.js.map +1 -0
- package/dist/cjs/providers/kinesis/utils/constants.js +13 -0
- package/dist/cjs/providers/kinesis/utils/constants.js.map +1 -0
- package/dist/cjs/providers/kinesis/utils/getEventBuffer.js +85 -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 +38 -0
- package/dist/cjs/providers/kinesis-firehose/apis/flushEvents.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/apis/index.js +11 -0
- package/dist/cjs/providers/kinesis-firehose/apis/index.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/apis/record.js +62 -0
- package/dist/cjs/providers/kinesis-firehose/apis/record.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/index.js +10 -0
- package/dist/cjs/providers/kinesis-firehose/index.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/types/buffer.js +6 -0
- package/dist/cjs/providers/kinesis-firehose/types/buffer.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/types/index.js +6 -0
- package/dist/cjs/providers/kinesis-firehose/types/index.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/types/inputs.js +6 -0
- package/dist/cjs/providers/kinesis-firehose/types/inputs.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/utils/constants.js +13 -0
- package/dist/cjs/providers/kinesis-firehose/utils/constants.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js +83 -0
- package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js.map +1 -0
- package/dist/cjs/providers/kinesis-firehose/utils/index.js +11 -0
- 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 +37 -0
- package/dist/cjs/providers/personalize/apis/flushEvents.js.map +1 -0
- package/dist/cjs/providers/personalize/apis/index.js +11 -0
- package/dist/cjs/providers/personalize/apis/index.js.map +1 -0
- package/dist/cjs/providers/personalize/apis/record.js +98 -0
- package/dist/cjs/providers/personalize/apis/record.js.map +1 -0
- package/dist/cjs/providers/personalize/index.js +10 -0
- package/dist/cjs/providers/personalize/index.js.map +1 -0
- package/dist/cjs/providers/personalize/types/buffer.js +6 -0
- package/dist/cjs/providers/personalize/types/buffer.js.map +1 -0
- package/dist/cjs/providers/personalize/types/index.js +6 -0
- package/dist/cjs/providers/personalize/types/index.js.map +1 -0
- package/dist/cjs/providers/personalize/types/inputs.js +6 -0
- 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/dist/cjs/providers/personalize/utils/constants.js +14 -0
- package/dist/cjs/providers/personalize/utils/constants.js.map +1 -0
- package/dist/cjs/providers/personalize/utils/getEventBuffer.js +86 -0
- package/dist/cjs/providers/personalize/utils/getEventBuffer.js.map +1 -0
- package/dist/cjs/providers/personalize/utils/index.js +19 -0
- 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/dist/cjs/providers/pinpoint/apis/configureAutoTrack.js +39 -0
- package/dist/cjs/providers/pinpoint/apis/configureAutoTrack.js.map +1 -0
- package/dist/cjs/providers/pinpoint/apis/flushEvents.js +43 -0
- package/dist/cjs/providers/pinpoint/apis/flushEvents.js.map +1 -0
- package/dist/cjs/providers/pinpoint/apis/identifyUser.js +75 -0
- package/dist/cjs/providers/pinpoint/apis/identifyUser.js.map +1 -0
- package/dist/cjs/providers/pinpoint/apis/index.js +15 -0
- package/dist/cjs/providers/pinpoint/apis/index.js.map +1 -0
- package/dist/cjs/providers/pinpoint/apis/record.js +74 -0
- package/dist/cjs/providers/pinpoint/apis/record.js.map +1 -0
- package/dist/cjs/providers/pinpoint/index.js +12 -0
- package/dist/cjs/providers/pinpoint/index.js.map +1 -0
- package/dist/cjs/providers/pinpoint/types/index.js +6 -0
- package/dist/cjs/providers/pinpoint/types/index.js.map +1 -0
- package/dist/cjs/providers/pinpoint/types/inputs.js +6 -0
- package/dist/cjs/providers/pinpoint/types/inputs.js.map +1 -0
- package/dist/cjs/providers/pinpoint/types/options.js +6 -0
- package/dist/cjs/providers/pinpoint/types/options.js.map +1 -0
- package/dist/cjs/providers/pinpoint/utils/index.js +11 -0
- package/dist/cjs/providers/pinpoint/utils/index.js.map +1 -0
- package/dist/cjs/providers/pinpoint/utils/resolveConfig.js +19 -0
- 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/dist/cjs/trackers/EventTracker.js +100 -0
- package/dist/cjs/trackers/EventTracker.js.map +1 -0
- package/dist/cjs/trackers/PageViewTracker.js +112 -0
- package/dist/cjs/trackers/PageViewTracker.js.map +1 -0
- package/dist/cjs/trackers/SessionTracker.js +69 -0
- package/dist/cjs/trackers/SessionTracker.js.map +1 -0
- package/dist/cjs/trackers/SessionTracker.native.js +69 -0
- package/dist/cjs/trackers/SessionTracker.native.js.map +1 -0
- package/dist/cjs/trackers/index.js +13 -0
- 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/dist/cjs/types/kinesis.js +6 -0
- package/dist/cjs/types/kinesis.js.map +1 -0
- package/dist/cjs/types/options.js +6 -0
- package/dist/cjs/types/options.js.map +1 -0
- package/dist/cjs/types/trackers.js +6 -0
- 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/dist/cjs/utils/eventBuffer/index.js +9 -0
- package/dist/cjs/utils/eventBuffer/index.js.map +1 -0
- package/dist/cjs/utils/eventBuffer/types.js +6 -0
- 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/dist/cjs/utils/index.js +24 -0
- 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/dist/cjs/utils/statusHelpers.js +21 -0
- package/dist/cjs/utils/statusHelpers.js.map +1 -0
- package/dist/cjs/utils/trackerConfigHelpers.js +17 -0
- package/dist/cjs/utils/trackerConfigHelpers.js.map +1 -0
- package/dist/cjs/utils/trackerConfigHelpers.native.js +16 -0
- package/dist/cjs/utils/trackerConfigHelpers.native.js.map +1 -0
- package/dist/cjs/utils/trackerHelpers.js +46 -0
- package/dist/cjs/utils/trackerHelpers.js.map +1 -0
- package/dist/cjs/utils/userAgent.js +21 -0
- package/dist/cjs/utils/userAgent.js.map +1 -0
- package/dist/esm/apis/disable.d.ts +8 -0
- package/dist/esm/apis/disable.mjs +22 -0
- package/dist/esm/apis/disable.mjs.map +1 -0
- package/dist/esm/apis/enable.d.ts +7 -0
- package/dist/esm/apis/enable.mjs +21 -0
- package/dist/esm/apis/enable.mjs.map +1 -0
- package/dist/esm/apis/index.d.ts +2 -0
- package/dist/esm/apis/index.mjs +3 -0
- package/dist/esm/apis/index.mjs.map +1 -0
- package/dist/esm/errors/AnalyticsError.d.ts +7 -0
- package/dist/esm/errors/AnalyticsError.mjs +19 -0
- package/dist/esm/errors/AnalyticsError.mjs.map +1 -0
- package/dist/esm/errors/assertValidationError.d.ts +5 -0
- package/dist/esm/errors/assertValidationError.mjs +21 -0
- package/dist/esm/errors/assertValidationError.mjs.map +1 -0
- package/dist/esm/errors/index.d.ts +3 -0
- package/dist/esm/errors/index.mjs +4 -0
- package/dist/esm/errors/index.mjs.map +1 -0
- package/dist/esm/errors/validation.d.ts +12 -0
- package/dist/esm/errors/validation.mjs +42 -0
- package/dist/esm/errors/validation.mjs.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.mjs +9 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/providers/kinesis/apis/flushEvents.d.ts +8 -0
- package/dist/esm/providers/kinesis/apis/flushEvents.mjs +43 -0
- package/dist/esm/providers/kinesis/apis/flushEvents.mjs.map +1 -0
- package/dist/esm/providers/kinesis/apis/index.d.ts +2 -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.d.ts +23 -0
- package/dist/esm/providers/kinesis/apis/record.mjs +74 -0
- package/dist/esm/providers/kinesis/apis/record.mjs.map +1 -0
- package/dist/esm/providers/kinesis/index.d.ts +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.d.ts +15 -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.d.ts +2 -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.d.ts +6 -0
- package/dist/esm/providers/kinesis/types/inputs.mjs +2 -0
- package/dist/esm/providers/kinesis/types/inputs.mjs.map +1 -0
- package/dist/esm/providers/kinesis/utils/constants.d.ts +6 -0
- package/dist/esm/providers/kinesis/utils/constants.mjs +11 -0
- package/dist/esm/providers/kinesis/utils/constants.mjs.map +1 -0
- package/dist/esm/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
- package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs +89 -0
- package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs.map +1 -0
- package/dist/esm/providers/kinesis/utils/resolveConfig.d.ts +7 -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.d.ts +8 -0
- package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs +43 -0
- package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/apis/index.d.ts +2 -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.d.ts +19 -0
- package/dist/esm/providers/kinesis-firehose/apis/record.mjs +68 -0
- package/dist/esm/providers/kinesis-firehose/apis/record.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/index.d.ts +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.d.ts +15 -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.d.ts +2 -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.d.ts +5 -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/dist/esm/providers/kinesis-firehose/utils/constants.d.ts +6 -0
- package/dist/esm/providers/kinesis-firehose/utils/constants.mjs +11 -0
- package/dist/esm/providers/kinesis-firehose/utils/constants.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
- package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs +87 -0
- package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs.map +1 -0
- package/dist/esm/providers/kinesis-firehose/utils/index.d.ts +2 -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.d.ts +7 -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.d.ts +8 -0
- package/dist/esm/providers/personalize/apis/flushEvents.mjs +43 -0
- package/dist/esm/providers/personalize/apis/flushEvents.mjs.map +1 -0
- package/dist/esm/providers/personalize/apis/index.d.ts +2 -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.d.ts +27 -0
- package/dist/esm/providers/personalize/apis/record.mjs +106 -0
- package/dist/esm/providers/personalize/apis/record.mjs.map +1 -0
- package/dist/esm/providers/personalize/index.d.ts +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.d.ts +16 -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.d.ts +2 -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.d.ts +7 -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.d.ts +10 -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.d.ts +5 -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.d.ts +7 -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.d.ts +3 -0
- package/dist/esm/providers/personalize/utils/getEventBuffer.mjs +90 -0
- package/dist/esm/providers/personalize/utils/getEventBuffer.mjs.map +1 -0
- package/dist/esm/providers/personalize/utils/index.d.ts +5 -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.d.ts +7 -0
- package/dist/esm/providers/personalize/utils/resolveConfig.mjs +28 -0
- package/dist/esm/providers/personalize/utils/resolveConfig.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/apis/configureAutoTrack.d.ts +17 -0
- package/dist/esm/providers/pinpoint/apis/configureAutoTrack.mjs +42 -0
- package/dist/esm/providers/pinpoint/apis/configureAutoTrack.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/apis/flushEvents.d.ts +10 -0
- package/dist/esm/providers/pinpoint/apis/flushEvents.mjs +47 -0
- package/dist/esm/providers/pinpoint/apis/flushEvents.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/apis/identifyUser.d.ts +49 -0
- package/dist/esm/providers/pinpoint/apis/identifyUser.mjs +80 -0
- package/dist/esm/providers/pinpoint/apis/identifyUser.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/apis/index.d.ts +4 -0
- package/dist/esm/providers/pinpoint/apis/index.mjs +5 -0
- package/dist/esm/providers/pinpoint/apis/index.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/apis/record.d.ts +32 -0
- package/dist/esm/providers/pinpoint/apis/record.mjs +79 -0
- package/dist/esm/providers/pinpoint/apis/record.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/index.d.ts +2 -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.d.ts +2 -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.d.ts +15 -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.d.ts +5 -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.d.ts +2 -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.d.ts +11 -0
- package/dist/esm/providers/pinpoint/utils/resolveConfig.mjs +19 -0
- package/dist/esm/providers/pinpoint/utils/resolveConfig.mjs.map +1 -0
- package/dist/esm/providers/pinpoint/utils/resolveCredentials.d.ts +7 -0
- package/dist/esm/providers/pinpoint/utils/resolveCredentials.mjs +18 -0
- package/dist/esm/providers/pinpoint/utils/resolveCredentials.mjs.map +1 -0
- package/dist/esm/trackers/EventTracker.d.ts +10 -0
- package/dist/esm/trackers/EventTracker.mjs +98 -0
- package/dist/esm/trackers/EventTracker.mjs.map +1 -0
- package/dist/esm/trackers/PageViewTracker.d.ts +18 -0
- package/dist/esm/trackers/PageViewTracker.mjs +110 -0
- package/dist/esm/trackers/PageViewTracker.mjs.map +1 -0
- package/dist/esm/trackers/SessionTracker.d.ts +13 -0
- package/dist/esm/trackers/SessionTracker.mjs +67 -0
- package/dist/esm/trackers/SessionTracker.mjs.map +1 -0
- package/dist/esm/trackers/SessionTracker.native.d.ts +13 -0
- package/dist/esm/trackers/SessionTracker.native.mjs +67 -0
- package/dist/esm/trackers/SessionTracker.native.mjs.map +1 -0
- package/dist/esm/trackers/index.d.ts +3 -0
- package/dist/esm/trackers/index.mjs +4 -0
- package/dist/esm/trackers/index.mjs.map +1 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/index.mjs +2 -0
- package/dist/esm/types/index.mjs.map +1 -0
- package/dist/esm/types/inputs.d.ts +35 -0
- package/dist/esm/types/inputs.mjs +2 -0
- package/dist/esm/types/inputs.mjs.map +1 -0
- package/dist/esm/types/kinesis.d.ts +8 -0
- package/dist/esm/types/kinesis.mjs +2 -0
- package/dist/esm/types/kinesis.mjs.map +1 -0
- package/dist/esm/types/options.d.ts +4 -0
- package/dist/esm/types/options.mjs +2 -0
- package/dist/esm/types/options.mjs.map +1 -0
- package/dist/esm/types/trackers.d.ts +22 -0
- package/dist/esm/types/trackers.mjs +2 -0
- package/dist/esm/types/trackers.mjs.map +1 -0
- package/dist/esm/utils/eventBuffer/EventBuffer.d.ts +16 -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.d.ts +2 -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.d.ts +6 -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.d.ts +1 -0
- package/dist/esm/utils/groupBy.mjs +11 -0
- package/dist/esm/utils/groupBy.mjs.map +1 -0
- package/dist/esm/utils/index.d.ts +7 -0
- package/dist/esm/utils/index.mjs +8 -0
- package/dist/esm/utils/index.mjs.map +1 -0
- package/dist/esm/utils/resolveCredentials.d.ts +4 -0
- package/dist/esm/utils/resolveCredentials.mjs +15 -0
- package/dist/esm/utils/resolveCredentials.mjs.map +1 -0
- package/dist/esm/utils/statusHelpers.d.ts +6 -0
- package/dist/esm/utils/statusHelpers.mjs +16 -0
- package/dist/esm/utils/statusHelpers.mjs.map +1 -0
- package/dist/esm/utils/trackerConfigHelpers.d.ts +5 -0
- package/dist/esm/utils/trackerConfigHelpers.mjs +17 -0
- package/dist/esm/utils/trackerConfigHelpers.mjs.map +1 -0
- package/dist/esm/utils/trackerConfigHelpers.native.d.ts +5 -0
- package/dist/esm/utils/trackerConfigHelpers.native.mjs +16 -0
- package/dist/esm/utils/trackerConfigHelpers.native.mjs.map +1 -0
- package/dist/esm/utils/trackerHelpers.d.ts +9 -0
- package/dist/esm/utils/trackerHelpers.mjs +46 -0
- package/dist/esm/utils/trackerHelpers.mjs.map +1 -0
- package/dist/esm/utils/userAgent.d.ts +4 -0
- package/dist/esm/utils/userAgent.mjs +19 -0
- package/dist/esm/utils/userAgent.mjs.map +1 -0
- package/kinesis/package.json +8 -0
- package/kinesis-firehose/package.json +8 -0
- package/package.json +110 -0
- package/personalize/package.json +8 -0
- package/pinpoint/package.json +8 -0
- package/src/apis/disable.ts +13 -0
- package/src/apis/enable.ts +12 -0
- package/src/apis/index.ts +5 -0
- package/src/errors/AnalyticsError.ts +21 -0
- package/src/errors/assertValidationError.ts +25 -0
- package/src/errors/index.ts +6 -0
- package/src/errors/validation.ts +43 -0
- package/src/index.ts +14 -0
- package/src/providers/kinesis/apis/flushEvents.ts +43 -0
- package/src/providers/kinesis/apis/index.ts +5 -0
- package/src/providers/kinesis/apis/record.ts +82 -0
- package/src/providers/kinesis/index.ts +4 -0
- package/src/providers/kinesis/types/buffer.ts +21 -0
- package/src/providers/kinesis/types/index.ts +5 -0
- package/src/providers/kinesis/types/inputs.ts +10 -0
- package/src/providers/kinesis/utils/constants.ts +9 -0
- package/src/providers/kinesis/utils/getEventBuffer.ts +130 -0
- package/src/providers/kinesis/utils/resolveConfig.ts +39 -0
- package/src/providers/kinesis-firehose/apis/flushEvents.ts +42 -0
- package/src/providers/kinesis-firehose/apis/index.ts +5 -0
- package/src/providers/kinesis-firehose/apis/record.ts +71 -0
- package/src/providers/kinesis-firehose/index.ts +4 -0
- package/src/providers/kinesis-firehose/types/buffer.ts +21 -0
- package/src/providers/kinesis-firehose/types/index.ts +9 -0
- package/src/providers/kinesis-firehose/types/inputs.ts +9 -0
- package/src/providers/kinesis-firehose/utils/constants.ts +9 -0
- package/src/providers/kinesis-firehose/utils/getEventBuffer.ts +138 -0
- package/src/providers/kinesis-firehose/utils/index.ts +5 -0
- package/src/providers/kinesis-firehose/utils/resolveConfig.ts +39 -0
- package/src/providers/personalize/apis/flushEvents.ts +40 -0
- package/src/providers/personalize/apis/index.ts +5 -0
- package/src/providers/personalize/apis/record.ts +130 -0
- package/src/providers/personalize/index.ts +4 -0
- package/src/providers/personalize/types/buffer.ts +23 -0
- package/src/providers/personalize/types/index.ts +5 -0
- package/src/providers/personalize/types/inputs.ts +11 -0
- package/src/providers/personalize/utils/autoTrackMedia.ts +240 -0
- package/src/providers/personalize/utils/cachedSession.ts +68 -0
- package/src/providers/personalize/utils/constants.ts +12 -0
- package/src/providers/personalize/utils/getEventBuffer.ts +135 -0
- package/src/providers/personalize/utils/index.ts +11 -0
- package/src/providers/personalize/utils/resolveConfig.ts +46 -0
- package/src/providers/pinpoint/apis/configureAutoTrack.ts +54 -0
- package/src/providers/pinpoint/apis/flushEvents.ts +42 -0
- package/src/providers/pinpoint/apis/identifyUser.ts +81 -0
- package/src/providers/pinpoint/apis/index.ts +7 -0
- package/src/providers/pinpoint/apis/record.ts +92 -0
- package/src/providers/pinpoint/index.ts +9 -0
- package/src/providers/pinpoint/types/index.ts +9 -0
- package/src/providers/pinpoint/types/inputs.ts +26 -0
- package/src/providers/pinpoint/types/options.ts +12 -0
- package/src/providers/pinpoint/utils/index.ts +5 -0
- package/src/providers/pinpoint/utils/resolveConfig.ts +21 -0
- package/src/providers/pinpoint/utils/resolveCredentials.ts +22 -0
- package/src/trackers/EventTracker.ts +136 -0
- package/src/trackers/PageViewTracker.ts +155 -0
- package/src/trackers/SessionTracker.native.ts +106 -0
- package/src/trackers/SessionTracker.ts +106 -0
- package/src/trackers/index.ts +6 -0
- package/src/types/index.ts +11 -0
- package/src/types/inputs.ts +53 -0
- package/src/types/kinesis.ts +13 -0
- package/src/types/options.ts +7 -0
- package/src/types/trackers.ts +35 -0
- package/src/utils/eventBuffer/EventBuffer.ts +85 -0
- package/src/utils/eventBuffer/index.ts +5 -0
- package/src/utils/eventBuffer/types.ts +10 -0
- package/src/utils/groupBy.ts +16 -0
- package/src/utils/index.ts +21 -0
- package/src/utils/resolveCredentials.ts +16 -0
- package/src/utils/statusHelpers.ts +17 -0
- package/src/utils/trackerConfigHelpers.native.ts +18 -0
- package/src/utils/trackerConfigHelpers.ts +19 -0
- package/src/utils/trackerHelpers.ts +56 -0
- package/src/utils/userAgent.ts +23 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.autoTrackMedia = void 0;
|
|
7
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
8
|
+
const core_1 = require("@aws-amplify/core");
|
|
9
|
+
var HTML5_MEDIA_EVENT;
|
|
10
|
+
(function (HTML5_MEDIA_EVENT) {
|
|
11
|
+
HTML5_MEDIA_EVENT["PLAY"] = "play";
|
|
12
|
+
HTML5_MEDIA_EVENT["PAUSE"] = "pause";
|
|
13
|
+
HTML5_MEDIA_EVENT["ENDED"] = "Ended";
|
|
14
|
+
})(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {}));
|
|
15
|
+
var MEDIA_TYPE;
|
|
16
|
+
(function (MEDIA_TYPE) {
|
|
17
|
+
MEDIA_TYPE["IFRAME"] = "IFRAME";
|
|
18
|
+
MEDIA_TYPE["VIDEO"] = "VIDEO";
|
|
19
|
+
MEDIA_TYPE["AUDIO"] = "AUDIO";
|
|
20
|
+
})(MEDIA_TYPE || (MEDIA_TYPE = {}));
|
|
21
|
+
var EVENT_TYPE;
|
|
22
|
+
(function (EVENT_TYPE) {
|
|
23
|
+
EVENT_TYPE["PLAY"] = "Play";
|
|
24
|
+
EVENT_TYPE["ENDED"] = "Ended";
|
|
25
|
+
EVENT_TYPE["PAUSE"] = "Pause";
|
|
26
|
+
EVENT_TYPE["TIME_WATCHED"] = "TimeWatched";
|
|
27
|
+
})(EVENT_TYPE || (EVENT_TYPE = {}));
|
|
28
|
+
const logger = new core_1.ConsoleLogger('MediaAutoTrack');
|
|
29
|
+
const startIframeAutoTracking = (element, recordEvent) => {
|
|
30
|
+
let isPlaying = false;
|
|
31
|
+
let player;
|
|
32
|
+
const mediaProperties = () => {
|
|
33
|
+
const duration = Number(parseFloat(player.getDuration()).toFixed(4));
|
|
34
|
+
const currentTime = Number(parseFloat(player.getCurrentTime()).toFixed(4));
|
|
35
|
+
return {
|
|
36
|
+
duration,
|
|
37
|
+
eventValue: Number((currentTime / duration).toFixed(4)),
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
const scriptElement = document.createElement('script');
|
|
41
|
+
scriptElement.type = 'text/javascript';
|
|
42
|
+
scriptElement.src = 'https://www.youtube.com/iframe_api';
|
|
43
|
+
document.body.append(scriptElement);
|
|
44
|
+
const timer = setInterval(() => {
|
|
45
|
+
if (isPlaying && player) {
|
|
46
|
+
recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());
|
|
47
|
+
}
|
|
48
|
+
}, 3000);
|
|
49
|
+
element.addEventListener('unload', () => {
|
|
50
|
+
clearInterval(timer);
|
|
51
|
+
});
|
|
52
|
+
window.onYouTubeIframeAPIReady = () => {
|
|
53
|
+
delete window.onYouTubeIframeAPIReady;
|
|
54
|
+
player = new window.YT.Player(element.id, {
|
|
55
|
+
events: {
|
|
56
|
+
onStateChange: (event) => {
|
|
57
|
+
const iframeEventMapping = {
|
|
58
|
+
0: EVENT_TYPE.ENDED,
|
|
59
|
+
1: EVENT_TYPE.PLAY,
|
|
60
|
+
2: EVENT_TYPE.PAUSE,
|
|
61
|
+
};
|
|
62
|
+
const eventType = iframeEventMapping[event.data];
|
|
63
|
+
switch (eventType) {
|
|
64
|
+
case EVENT_TYPE.ENDED:
|
|
65
|
+
case EVENT_TYPE.PAUSE:
|
|
66
|
+
isPlaying = false;
|
|
67
|
+
break;
|
|
68
|
+
case EVENT_TYPE.PLAY:
|
|
69
|
+
isPlaying = true;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
if (eventType) {
|
|
73
|
+
recordEvent(eventType, mediaProperties());
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
const startHTMLMediaAutoTracking = (element, recordEvent) => {
|
|
81
|
+
let isPlaying = false;
|
|
82
|
+
const mediaProperties = () => ({
|
|
83
|
+
duration: element.duration,
|
|
84
|
+
eventValue: Number((element.currentTime / element.duration).toFixed(4)),
|
|
85
|
+
});
|
|
86
|
+
const timer = setInterval(() => {
|
|
87
|
+
if (isPlaying) {
|
|
88
|
+
recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());
|
|
89
|
+
}
|
|
90
|
+
}, 3000);
|
|
91
|
+
element.addEventListener('unload', () => {
|
|
92
|
+
clearInterval(timer);
|
|
93
|
+
});
|
|
94
|
+
element.addEventListener(HTML5_MEDIA_EVENT.PLAY, () => {
|
|
95
|
+
isPlaying = true;
|
|
96
|
+
recordEvent(EVENT_TYPE.PLAY, mediaProperties());
|
|
97
|
+
});
|
|
98
|
+
element.addEventListener(HTML5_MEDIA_EVENT.PAUSE, () => {
|
|
99
|
+
isPlaying = false;
|
|
100
|
+
recordEvent(EVENT_TYPE.PAUSE, mediaProperties());
|
|
101
|
+
});
|
|
102
|
+
element.addEventListener(HTML5_MEDIA_EVENT.ENDED, () => {
|
|
103
|
+
isPlaying = false;
|
|
104
|
+
recordEvent(EVENT_TYPE.ENDED, mediaProperties());
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
const checkElementLoaded = (interval, maxTries) => {
|
|
108
|
+
let retryCount = 0;
|
|
109
|
+
const wait = () => new Promise(resolve => setTimeout(resolve, interval));
|
|
110
|
+
const check = async (elementId) => {
|
|
111
|
+
if (retryCount >= maxTries) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
const domElement = document.getElementById(elementId);
|
|
115
|
+
if (domElement && domElement.clientHeight) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
retryCount += 1;
|
|
120
|
+
await wait();
|
|
121
|
+
return check(elementId);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
return check;
|
|
125
|
+
};
|
|
126
|
+
const recordEvent = (config, eventBuffer) => (eventType, properties) => {
|
|
127
|
+
// override eventType and merge properties
|
|
128
|
+
eventBuffer.append({
|
|
129
|
+
...config,
|
|
130
|
+
event: {
|
|
131
|
+
...config.event,
|
|
132
|
+
eventType,
|
|
133
|
+
properties: {
|
|
134
|
+
...config.event.properties,
|
|
135
|
+
...properties,
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
timestamp: Date.now(),
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
const autoTrackMedia = async (config, eventBuffer) => {
|
|
142
|
+
const { eventType, properties } = config.event;
|
|
143
|
+
const { domElementId, ...otherProperties } = properties;
|
|
144
|
+
if (!(0, utils_1.isBrowser)()) {
|
|
145
|
+
logger.debug(`${eventType} only for browser`);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (typeof domElementId === 'string' && !domElementId) {
|
|
149
|
+
logger.debug("Missing domElementId field in 'properties' for MediaAutoTrack event type.");
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const elementId = domElementId;
|
|
153
|
+
const isElementLoaded = await checkElementLoaded(500, 5)(elementId);
|
|
154
|
+
if (isElementLoaded) {
|
|
155
|
+
const autoTrackConfigWithoutDomElementId = {
|
|
156
|
+
...config,
|
|
157
|
+
event: {
|
|
158
|
+
...config.event,
|
|
159
|
+
properties: otherProperties,
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
const element = document.getElementById(elementId);
|
|
163
|
+
switch (element?.tagName) {
|
|
164
|
+
case MEDIA_TYPE.IFRAME:
|
|
165
|
+
startIframeAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));
|
|
166
|
+
break;
|
|
167
|
+
case MEDIA_TYPE.VIDEO:
|
|
168
|
+
case MEDIA_TYPE.AUDIO:
|
|
169
|
+
if (element instanceof HTMLMediaElement) {
|
|
170
|
+
startHTMLMediaAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));
|
|
171
|
+
}
|
|
172
|
+
break;
|
|
173
|
+
default:
|
|
174
|
+
logger.debug(`Unsupported DOM element tag: ${element?.tagName}`);
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
logger.debug('Cannot find the media element.');
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
exports.autoTrackMedia = autoTrackMedia;
|
|
183
|
+
//# sourceMappingURL=autoTrackMedia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoTrackMedia.js","sources":["../../../../../src/providers/personalize/utils/autoTrackMedia.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.autoTrackMedia = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nvar HTML5_MEDIA_EVENT;\n(function (HTML5_MEDIA_EVENT) {\n HTML5_MEDIA_EVENT[\"PLAY\"] = \"play\";\n HTML5_MEDIA_EVENT[\"PAUSE\"] = \"pause\";\n HTML5_MEDIA_EVENT[\"ENDED\"] = \"Ended\";\n})(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {}));\nvar MEDIA_TYPE;\n(function (MEDIA_TYPE) {\n MEDIA_TYPE[\"IFRAME\"] = \"IFRAME\";\n MEDIA_TYPE[\"VIDEO\"] = \"VIDEO\";\n MEDIA_TYPE[\"AUDIO\"] = \"AUDIO\";\n})(MEDIA_TYPE || (MEDIA_TYPE = {}));\nvar EVENT_TYPE;\n(function (EVENT_TYPE) {\n EVENT_TYPE[\"PLAY\"] = \"Play\";\n EVENT_TYPE[\"ENDED\"] = \"Ended\";\n EVENT_TYPE[\"PAUSE\"] = \"Pause\";\n EVENT_TYPE[\"TIME_WATCHED\"] = \"TimeWatched\";\n})(EVENT_TYPE || (EVENT_TYPE = {}));\nconst logger = new core_1.ConsoleLogger('MediaAutoTrack');\nconst startIframeAutoTracking = (element, recordEvent) => {\n let isPlaying = false;\n let player;\n const mediaProperties = () => {\n const duration = Number(parseFloat(player.getDuration()).toFixed(4));\n const currentTime = Number(parseFloat(player.getCurrentTime()).toFixed(4));\n return {\n duration,\n eventValue: Number((currentTime / duration).toFixed(4)),\n };\n };\n const scriptElement = document.createElement('script');\n scriptElement.type = 'text/javascript';\n scriptElement.src = 'https://www.youtube.com/iframe_api';\n document.body.append(scriptElement);\n const timer = setInterval(() => {\n if (isPlaying && player) {\n recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());\n }\n }, 3000);\n element.addEventListener('unload', () => {\n clearInterval(timer);\n });\n window.onYouTubeIframeAPIReady = () => {\n delete window.onYouTubeIframeAPIReady;\n player = new window.YT.Player(element.id, {\n events: {\n onStateChange: (event) => {\n const iframeEventMapping = {\n 0: EVENT_TYPE.ENDED,\n 1: EVENT_TYPE.PLAY,\n 2: EVENT_TYPE.PAUSE,\n };\n const eventType = iframeEventMapping[event.data];\n switch (eventType) {\n case EVENT_TYPE.ENDED:\n case EVENT_TYPE.PAUSE:\n isPlaying = false;\n break;\n case EVENT_TYPE.PLAY:\n isPlaying = true;\n break;\n }\n if (eventType) {\n recordEvent(eventType, mediaProperties());\n }\n },\n },\n });\n };\n};\nconst startHTMLMediaAutoTracking = (element, recordEvent) => {\n let isPlaying = false;\n const mediaProperties = () => ({\n duration: element.duration,\n eventValue: Number((element.currentTime / element.duration).toFixed(4)),\n });\n const timer = setInterval(() => {\n if (isPlaying) {\n recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());\n }\n }, 3000);\n element.addEventListener('unload', () => {\n clearInterval(timer);\n });\n element.addEventListener(HTML5_MEDIA_EVENT.PLAY, () => {\n isPlaying = true;\n recordEvent(EVENT_TYPE.PLAY, mediaProperties());\n });\n element.addEventListener(HTML5_MEDIA_EVENT.PAUSE, () => {\n isPlaying = false;\n recordEvent(EVENT_TYPE.PAUSE, mediaProperties());\n });\n element.addEventListener(HTML5_MEDIA_EVENT.ENDED, () => {\n isPlaying = false;\n recordEvent(EVENT_TYPE.ENDED, mediaProperties());\n });\n};\nconst checkElementLoaded = (interval, maxTries) => {\n let retryCount = 0;\n const wait = () => new Promise(resolve => setTimeout(resolve, interval));\n const check = async (elementId) => {\n if (retryCount >= maxTries) {\n return false;\n }\n const domElement = document.getElementById(elementId);\n if (domElement && domElement.clientHeight) {\n return true;\n }\n else {\n retryCount += 1;\n await wait();\n return check(elementId);\n }\n };\n return check;\n};\nconst recordEvent = (config, eventBuffer) => (eventType, properties) => {\n // override eventType and merge properties\n eventBuffer.append({\n ...config,\n event: {\n ...config.event,\n eventType,\n properties: {\n ...config.event.properties,\n ...properties,\n },\n },\n timestamp: Date.now(),\n });\n};\nconst autoTrackMedia = async (config, eventBuffer) => {\n const { eventType, properties } = config.event;\n const { domElementId, ...otherProperties } = properties;\n if (!(0, utils_1.isBrowser)()) {\n logger.debug(`${eventType} only for browser`);\n return;\n }\n if (typeof domElementId === 'string' && !domElementId) {\n logger.debug(\"Missing domElementId field in 'properties' for MediaAutoTrack event type.\");\n return;\n }\n const elementId = domElementId;\n const isElementLoaded = await checkElementLoaded(500, 5)(elementId);\n if (isElementLoaded) {\n const autoTrackConfigWithoutDomElementId = {\n ...config,\n event: {\n ...config.event,\n properties: otherProperties,\n },\n };\n const element = document.getElementById(elementId);\n switch (element?.tagName) {\n case MEDIA_TYPE.IFRAME:\n startIframeAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));\n break;\n case MEDIA_TYPE.VIDEO:\n case MEDIA_TYPE.AUDIO:\n if (element instanceof HTMLMediaElement) {\n startHTMLMediaAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));\n }\n break;\n default:\n logger.debug(`Unsupported DOM element tag: ${element?.tagName}`);\n break;\n }\n }\n else {\n logger.debug('Cannot find the media element.');\n }\n};\nexports.autoTrackMedia = autoTrackMedia;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.updateCachedSession = exports.resolveCachedSession = void 0;
|
|
7
|
+
const core_1 = require("@aws-amplify/core");
|
|
8
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
9
|
+
const PERSONALIZE_CACHE_USERID = '_awsct_uid';
|
|
10
|
+
const PERSONALIZE_CACHE_SESSIONID = '_awsct_sid';
|
|
11
|
+
const DEFAULT_CACHE_PREFIX = 'personalize';
|
|
12
|
+
const DELIMITER = '.';
|
|
13
|
+
const CACHE_EXPIRY_IN_DAYS = 7;
|
|
14
|
+
const normalize = (key) => [key, (0, utils_1.isBrowser)() ? window.location.host : DEFAULT_CACHE_PREFIX].join(DELIMITER);
|
|
15
|
+
const getCache = (key) => core_1.Cache.getItem(normalize(key));
|
|
16
|
+
const setCache = (key, value) => {
|
|
17
|
+
const expiredAt = new Date(Date.now() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS);
|
|
18
|
+
core_1.Cache.setItem(normalize(key), value, {
|
|
19
|
+
expires: expiredAt.getTime(),
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const resolveCachedSession = async () => {
|
|
23
|
+
let sessionId = await getCache(PERSONALIZE_CACHE_SESSIONID);
|
|
24
|
+
if (!sessionId) {
|
|
25
|
+
sessionId = (0, utils_1.amplifyUuid)();
|
|
26
|
+
setCache(PERSONALIZE_CACHE_SESSIONID, sessionId);
|
|
27
|
+
}
|
|
28
|
+
const userId = await getCache(PERSONALIZE_CACHE_USERID);
|
|
29
|
+
return {
|
|
30
|
+
sessionId,
|
|
31
|
+
userId,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
exports.resolveCachedSession = resolveCachedSession;
|
|
35
|
+
const updateCachedSession = (newUserId, currentSessionId, currentUserId) => {
|
|
36
|
+
const isNoCachedSession = !currentSessionId;
|
|
37
|
+
const isSignOutCase = !newUserId && !currentUserId;
|
|
38
|
+
const isSwitchUserCase = !!newUserId && !!currentUserId && newUserId !== currentUserId;
|
|
39
|
+
const isRequireNewSession = isNoCachedSession || isSignOutCase || isSwitchUserCase;
|
|
40
|
+
const isRequireUpdateSession = !!currentSessionId && !currentUserId && !!newUserId;
|
|
41
|
+
if (isRequireNewSession) {
|
|
42
|
+
const newSessionId = (0, utils_1.amplifyUuid)();
|
|
43
|
+
setCache(PERSONALIZE_CACHE_SESSIONID, newSessionId);
|
|
44
|
+
setCache(PERSONALIZE_CACHE_USERID, newUserId);
|
|
45
|
+
}
|
|
46
|
+
else if (isRequireUpdateSession) {
|
|
47
|
+
setCache(PERSONALIZE_CACHE_USERID, newUserId);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.updateCachedSession = updateCachedSession;
|
|
51
|
+
//# sourceMappingURL=cachedSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cachedSession.js","sources":["../../../../../src/providers/personalize/utils/cachedSession.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateCachedSession = exports.resolveCachedSession = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst PERSONALIZE_CACHE_USERID = '_awsct_uid';\nconst PERSONALIZE_CACHE_SESSIONID = '_awsct_sid';\nconst DEFAULT_CACHE_PREFIX = 'personalize';\nconst DELIMITER = '.';\nconst CACHE_EXPIRY_IN_DAYS = 7;\nconst normalize = (key) => [key, (0, utils_1.isBrowser)() ? window.location.host : DEFAULT_CACHE_PREFIX].join(DELIMITER);\nconst getCache = (key) => core_1.Cache.getItem(normalize(key));\nconst setCache = (key, value) => {\n const expiredAt = new Date(Date.now() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS);\n core_1.Cache.setItem(normalize(key), value, {\n expires: expiredAt.getTime(),\n });\n};\nconst resolveCachedSession = async () => {\n let sessionId = await getCache(PERSONALIZE_CACHE_SESSIONID);\n if (!sessionId) {\n sessionId = (0, utils_1.amplifyUuid)();\n setCache(PERSONALIZE_CACHE_SESSIONID, sessionId);\n }\n const userId = await getCache(PERSONALIZE_CACHE_USERID);\n return {\n sessionId,\n userId,\n };\n};\nexports.resolveCachedSession = resolveCachedSession;\nconst updateCachedSession = (newUserId, currentSessionId, currentUserId) => {\n const isNoCachedSession = !currentSessionId;\n const isSignOutCase = !newUserId && !currentUserId;\n const isSwitchUserCase = !!newUserId && !!currentUserId && newUserId !== currentUserId;\n const isRequireNewSession = isNoCachedSession || isSignOutCase || isSwitchUserCase;\n const isRequireUpdateSession = !!currentSessionId && !currentUserId && !!newUserId;\n if (isRequireNewSession) {\n const newSessionId = (0, utils_1.amplifyUuid)();\n setCache(PERSONALIZE_CACHE_SESSIONID, newSessionId);\n setCache(PERSONALIZE_CACHE_USERID, newUserId);\n }\n else if (isRequireUpdateSession) {\n setCache(PERSONALIZE_CACHE_USERID, newUserId);\n }\n};\nexports.updateCachedSession = updateCachedSession;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,GAAG,MAAM;AACnE,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC;AAC5D,MAAM,wBAAwB,GAAG,YAAY;AAC7C,MAAM,2BAA2B,GAAG,YAAY;AAChD,MAAM,oBAAoB,GAAG,aAAa;AAC1C,MAAM,SAAS,GAAG,GAAG;AACrB,MAAM,oBAAoB,GAAG,CAAC;AAC9B,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACxH,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC9D,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACjC,IAAI,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,oBAAoB,CAAC;AAChF,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE;AAChD,QAAQ,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;AACpC,KAAK,CAAC;AACN,CAAC;AACD,MAAM,oBAAoB,GAAG,YAAY;AACzC,IAAI,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC,2BAA2B,CAAC;AAC/D,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,QAAQ,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,GAAG;AAC9C,QAAQ,QAAQ,CAAC,2BAA2B,EAAE,SAAS,CAAC;AACxD,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC;AAC3D,IAAI,OAAO;AACX,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,KAAK;AACL,CAAC;AACD,OAAO,CAAC,oBAAoB,GAAG,oBAAoB;AACnD,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,KAAK;AAC5E,IAAI,MAAM,iBAAiB,GAAG,CAAC,gBAAgB;AAC/C,IAAI,MAAM,aAAa,GAAG,CAAC,SAAS,IAAI,CAAC,aAAa;AACtD,IAAI,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,IAAI,SAAS,KAAK,aAAa;AAC1F,IAAI,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,aAAa,IAAI,gBAAgB;AACtF,IAAI,MAAM,sBAAsB,GAAG,CAAC,CAAC,gBAAgB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS;AACtF,IAAI,IAAI,mBAAmB,EAAE;AAC7B,QAAQ,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,WAAW,GAAG;AACvD,QAAQ,QAAQ,CAAC,2BAA2B,EAAE,YAAY,CAAC;AAC3D,QAAQ,QAAQ,CAAC,wBAAwB,EAAE,SAAS,CAAC;AACrD,IAAI;AACJ,SAAS,IAAI,sBAAsB,EAAE;AACrC,QAAQ,QAAQ,CAAC,wBAAwB,EAAE,SAAS,CAAC;AACrD,IAAI;AACJ,CAAC;AACD,OAAO,CAAC,mBAAmB,GAAG,mBAAmB;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MEDIA_AUTO_TRACK_EVENT_TYPE = exports.IDENTIFY_EVENT_TYPE = exports.PERSONALIZE_FLUSH_SIZE_MAX = exports.DEFAULT_PERSONALIZE_CONFIG = void 0;
|
|
7
|
+
exports.DEFAULT_PERSONALIZE_CONFIG = {
|
|
8
|
+
flushSize: 5,
|
|
9
|
+
flushInterval: 5000,
|
|
10
|
+
};
|
|
11
|
+
exports.PERSONALIZE_FLUSH_SIZE_MAX = 10;
|
|
12
|
+
exports.IDENTIFY_EVENT_TYPE = 'Identify';
|
|
13
|
+
exports.MEDIA_AUTO_TRACK_EVENT_TYPE = 'MediaAutoTrack';
|
|
14
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../../src/providers/personalize/utils/constants.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MEDIA_AUTO_TRACK_EVENT_TYPE = exports.IDENTIFY_EVENT_TYPE = exports.PERSONALIZE_FLUSH_SIZE_MAX = exports.DEFAULT_PERSONALIZE_CONFIG = void 0;\nexports.DEFAULT_PERSONALIZE_CONFIG = {\n flushSize: 5,\n flushInterval: 5000,\n};\nexports.PERSONALIZE_FLUSH_SIZE_MAX = 10;\nexports.IDENTIFY_EVENT_TYPE = 'Identify';\nexports.MEDIA_AUTO_TRACK_EVENT_TYPE = 'MediaAutoTrack';\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,2BAA2B,GAAG,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,GAAG,MAAM;AACpJ,OAAO,CAAC,0BAA0B,GAAG;AACrC,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,aAAa,EAAE,IAAI;AACvB,CAAC;AACD,OAAO,CAAC,0BAA0B,GAAG,EAAE;AACvC,OAAO,CAAC,mBAAmB,GAAG,UAAU;AACxC,OAAO,CAAC,2BAA2B,GAAG,gBAAgB;;"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getEventBuffer = void 0;
|
|
7
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
8
|
+
const client_personalize_events_1 = require("@aws-sdk/client-personalize-events");
|
|
9
|
+
const utils_2 = require("../../../utils");
|
|
10
|
+
/**
|
|
11
|
+
* These Records hold cached event buffers and AWS clients.
|
|
12
|
+
* The hash key is determined by the region and session,
|
|
13
|
+
* consisting of a combined value comprising [region, sessionToken, identityId].
|
|
14
|
+
*
|
|
15
|
+
* Only one active session should exist at any given moment.
|
|
16
|
+
* When a new session is initiated, the previous ones should be released.
|
|
17
|
+
* */
|
|
18
|
+
const eventBufferMap = {};
|
|
19
|
+
const cachedClients = {};
|
|
20
|
+
const DELIMITER = '#';
|
|
21
|
+
const createPutEventsCommand = (ids, events) => {
|
|
22
|
+
const [trackingId, sessionId, userId] = ids.split(DELIMITER);
|
|
23
|
+
return new client_personalize_events_1.PutEventsCommand({
|
|
24
|
+
trackingId,
|
|
25
|
+
sessionId,
|
|
26
|
+
userId,
|
|
27
|
+
eventList: events.map(event => ({
|
|
28
|
+
eventId: event.event.eventId,
|
|
29
|
+
eventType: event.event.eventType,
|
|
30
|
+
properties: JSON.stringify(event.event.properties),
|
|
31
|
+
sentAt: new Date(event.timestamp),
|
|
32
|
+
})),
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const submitEvents = async (events, client) => {
|
|
36
|
+
const groupedByIds = Object.entries((0, utils_2.groupBy)(event => [event.trackingId, event.sessionId, event.userId]
|
|
37
|
+
.filter(id => !!id)
|
|
38
|
+
.join(DELIMITER), events));
|
|
39
|
+
const requests = groupedByIds
|
|
40
|
+
.map(([ids, groupedEvents]) => createPutEventsCommand(ids, groupedEvents))
|
|
41
|
+
.map(command => client.send(command));
|
|
42
|
+
await Promise.allSettled(requests);
|
|
43
|
+
return Promise.resolve([]);
|
|
44
|
+
};
|
|
45
|
+
const getEventBuffer = ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }) => {
|
|
46
|
+
const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');
|
|
47
|
+
const [cachedClient, cachedCredentials] = cachedClients[sessionIdentityKey] ?? [];
|
|
48
|
+
let credentialsHaveChanged = false;
|
|
49
|
+
// Check if credentials have changed for the cached client
|
|
50
|
+
if (cachedClient) {
|
|
51
|
+
credentialsHaveChanged = (0, utils_1.haveCredentialsChanged)(cachedCredentials, credentials);
|
|
52
|
+
}
|
|
53
|
+
if (!eventBufferMap[sessionIdentityKey] || credentialsHaveChanged) {
|
|
54
|
+
const getClient = () => {
|
|
55
|
+
if (!cachedClient || credentialsHaveChanged) {
|
|
56
|
+
cachedClients[sessionIdentityKey] = [
|
|
57
|
+
new client_personalize_events_1.PersonalizeEventsClient({
|
|
58
|
+
region,
|
|
59
|
+
credentials,
|
|
60
|
+
customUserAgent: userAgentValue,
|
|
61
|
+
}),
|
|
62
|
+
credentials,
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
const [personalizeClient] = cachedClients[sessionIdentityKey];
|
|
66
|
+
return events => submitEvents(events, personalizeClient);
|
|
67
|
+
};
|
|
68
|
+
eventBufferMap[sessionIdentityKey] =
|
|
69
|
+
new utils_2.EventBuffer({
|
|
70
|
+
bufferSize,
|
|
71
|
+
flushSize,
|
|
72
|
+
flushInterval,
|
|
73
|
+
}, getClient);
|
|
74
|
+
const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);
|
|
75
|
+
for (const releaseSessionKey of releaseSessionKeys) {
|
|
76
|
+
eventBufferMap[releaseSessionKey].flushAll().finally(() => {
|
|
77
|
+
eventBufferMap[releaseSessionKey].release();
|
|
78
|
+
delete eventBufferMap[releaseSessionKey];
|
|
79
|
+
delete cachedClients[releaseSessionKey];
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return eventBufferMap[sessionIdentityKey];
|
|
84
|
+
};
|
|
85
|
+
exports.getEventBuffer = getEventBuffer;
|
|
86
|
+
//# sourceMappingURL=getEventBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEventBuffer.js","sources":["../../../../../src/providers/personalize/utils/getEventBuffer.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEventBuffer = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst client_personalize_events_1 = require(\"@aws-sdk/client-personalize-events\");\nconst utils_2 = require(\"../../../utils\");\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 client_personalize_events_1.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((0, utils_2.groupBy)(event => [event.trackingId, event.sessionId, event.userId]\n .filter(id => !!id)\n .join(DELIMITER), events));\n const requests = groupedByIds\n .map(([ids, groupedEvents]) => createPutEventsCommand(ids, groupedEvents))\n .map(command => client.send(command));\n await Promise.allSettled(requests);\n return Promise.resolve([]);\n};\nconst getEventBuffer = ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }) => {\n const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');\n const [cachedClient, cachedCredentials] = cachedClients[sessionIdentityKey] ?? [];\n let credentialsHaveChanged = false;\n // Check if credentials have changed for the cached client\n if (cachedClient) {\n credentialsHaveChanged = (0, utils_1.haveCredentialsChanged)(cachedCredentials, credentials);\n }\n if (!eventBufferMap[sessionIdentityKey] || credentialsHaveChanged) {\n const getClient = () => {\n if (!cachedClient || credentialsHaveChanged) {\n cachedClients[sessionIdentityKey] = [\n new client_personalize_events_1.PersonalizeEventsClient({\n region,\n credentials,\n customUserAgent: userAgentValue,\n }),\n credentials,\n ];\n }\n const [personalizeClient] = cachedClients[sessionIdentityKey];\n return events => submitEvents(events, personalizeClient);\n };\n eventBufferMap[sessionIdentityKey] =\n new utils_2.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};\nexports.getEventBuffer = getEventBuffer;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PERSONALIZE_FLUSH_SIZE_MAX = exports.DEFAULT_PERSONALIZE_CONFIG = exports.updateCachedSession = exports.resolveCachedSession = exports.autoTrackMedia = exports.resolveConfig = exports.getEventBuffer = void 0;
|
|
7
|
+
var getEventBuffer_1 = require("./getEventBuffer");
|
|
8
|
+
Object.defineProperty(exports, "getEventBuffer", { enumerable: true, get: function () { return getEventBuffer_1.getEventBuffer; } });
|
|
9
|
+
var resolveConfig_1 = require("./resolveConfig");
|
|
10
|
+
Object.defineProperty(exports, "resolveConfig", { enumerable: true, get: function () { return resolveConfig_1.resolveConfig; } });
|
|
11
|
+
var autoTrackMedia_1 = require("./autoTrackMedia");
|
|
12
|
+
Object.defineProperty(exports, "autoTrackMedia", { enumerable: true, get: function () { return autoTrackMedia_1.autoTrackMedia; } });
|
|
13
|
+
var cachedSession_1 = require("./cachedSession");
|
|
14
|
+
Object.defineProperty(exports, "resolveCachedSession", { enumerable: true, get: function () { return cachedSession_1.resolveCachedSession; } });
|
|
15
|
+
Object.defineProperty(exports, "updateCachedSession", { enumerable: true, get: function () { return cachedSession_1.updateCachedSession; } });
|
|
16
|
+
var constants_1 = require("./constants");
|
|
17
|
+
Object.defineProperty(exports, "DEFAULT_PERSONALIZE_CONFIG", { enumerable: true, get: function () { return constants_1.DEFAULT_PERSONALIZE_CONFIG; } });
|
|
18
|
+
Object.defineProperty(exports, "PERSONALIZE_FLUSH_SIZE_MAX", { enumerable: true, get: function () { return constants_1.PERSONALIZE_FLUSH_SIZE_MAX; } });
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/providers/personalize/utils/index.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PERSONALIZE_FLUSH_SIZE_MAX = exports.DEFAULT_PERSONALIZE_CONFIG = exports.updateCachedSession = exports.resolveCachedSession = exports.autoTrackMedia = exports.resolveConfig = exports.getEventBuffer = void 0;\nvar getEventBuffer_1 = require(\"./getEventBuffer\");\nObject.defineProperty(exports, \"getEventBuffer\", { enumerable: true, get: function () { return getEventBuffer_1.getEventBuffer; } });\nvar resolveConfig_1 = require(\"./resolveConfig\");\nObject.defineProperty(exports, \"resolveConfig\", { enumerable: true, get: function () { return resolveConfig_1.resolveConfig; } });\nvar autoTrackMedia_1 = require(\"./autoTrackMedia\");\nObject.defineProperty(exports, \"autoTrackMedia\", { enumerable: true, get: function () { return autoTrackMedia_1.autoTrackMedia; } });\nvar cachedSession_1 = require(\"./cachedSession\");\nObject.defineProperty(exports, \"resolveCachedSession\", { enumerable: true, get: function () { return cachedSession_1.resolveCachedSession; } });\nObject.defineProperty(exports, \"updateCachedSession\", { enumerable: true, get: function () { return cachedSession_1.updateCachedSession; } });\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"DEFAULT_PERSONALIZE_CONFIG\", { enumerable: true, get: function () { return constants_1.DEFAULT_PERSONALIZE_CONFIG; } });\nObject.defineProperty(exports, \"PERSONALIZE_FLUSH_SIZE_MAX\", { enumerable: true, get: function () { return constants_1.PERSONALIZE_FLUSH_SIZE_MAX; } });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,GAAG,MAAM;AACvN,IAAI,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAClD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACpI,IAAI,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAChD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AACjI,IAAI,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAClD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACpI,IAAI,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAChD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/I,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7I,IAAI,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;AACxC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,4BAA4B,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;AACvJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,4BAA4B,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resolveConfig = void 0;
|
|
7
|
+
const core_1 = require("@aws-amplify/core");
|
|
8
|
+
const errors_1 = require("../../../errors");
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
const resolveConfig = () => {
|
|
11
|
+
const config = core_1.Amplify.getConfig().Analytics?.Personalize;
|
|
12
|
+
const { region, trackingId, flushSize = constants_1.DEFAULT_PERSONALIZE_CONFIG.flushSize, flushInterval = constants_1.DEFAULT_PERSONALIZE_CONFIG.flushInterval, } = {
|
|
13
|
+
...constants_1.DEFAULT_PERSONALIZE_CONFIG,
|
|
14
|
+
...config,
|
|
15
|
+
};
|
|
16
|
+
(0, errors_1.assertValidationError)(!!region, errors_1.AnalyticsValidationErrorCode.NoRegion);
|
|
17
|
+
(0, errors_1.assertValidationError)(!!trackingId, errors_1.AnalyticsValidationErrorCode.NoTrackingId);
|
|
18
|
+
(0, errors_1.assertValidationError)(flushSize <= constants_1.PERSONALIZE_FLUSH_SIZE_MAX, errors_1.AnalyticsValidationErrorCode.InvalidFlushSize, `FlushSize for Personalize should be less or equal than ${constants_1.PERSONALIZE_FLUSH_SIZE_MAX}`);
|
|
19
|
+
return {
|
|
20
|
+
region,
|
|
21
|
+
trackingId,
|
|
22
|
+
bufferSize: flushSize + 1,
|
|
23
|
+
flushSize,
|
|
24
|
+
flushInterval,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
exports.resolveConfig = resolveConfig;
|
|
28
|
+
//# sourceMappingURL=resolveConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveConfig.js","sources":["../../../../../src/providers/personalize/utils/resolveConfig.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveConfig = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst errors_1 = require(\"../../../errors\");\nconst constants_1 = require(\"./constants\");\nconst resolveConfig = () => {\n const config = core_1.Amplify.getConfig().Analytics?.Personalize;\n const { region, trackingId, flushSize = constants_1.DEFAULT_PERSONALIZE_CONFIG.flushSize, flushInterval = constants_1.DEFAULT_PERSONALIZE_CONFIG.flushInterval, } = {\n ...constants_1.DEFAULT_PERSONALIZE_CONFIG,\n ...config,\n };\n (0, errors_1.assertValidationError)(!!region, errors_1.AnalyticsValidationErrorCode.NoRegion);\n (0, errors_1.assertValidationError)(!!trackingId, errors_1.AnalyticsValidationErrorCode.NoTrackingId);\n (0, errors_1.assertValidationError)(flushSize <= constants_1.PERSONALIZE_FLUSH_SIZE_MAX, errors_1.AnalyticsValidationErrorCode.InvalidFlushSize, `FlushSize for Personalize should be less or equal than ${constants_1.PERSONALIZE_FLUSH_SIZE_MAX}`);\n return {\n region,\n trackingId,\n bufferSize: flushSize + 1,\n flushSize,\n flushInterval,\n };\n};\nexports.resolveConfig = resolveConfig;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,aAAa,GAAG,MAAM;AAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;AAC1C,MAAM,aAAa,GAAG,MAAM;AAC5B,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW;AACpE,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,WAAW,CAAC,0BAA0B,CAAC,SAAS,EAAE,aAAa,GAAG,WAAW,CAAC,0BAA0B,CAAC,aAAa,GAAG,GAAG;AACxK,QAAQ,GAAG,WAAW,CAAC,0BAA0B;AACjD,QAAQ,GAAG,MAAM;AACjB,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,4BAA4B,CAAC,QAAQ,CAAC;AACjG,IAAI,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,4BAA4B,CAAC,YAAY,CAAC;AACzG,IAAI,IAAI,QAAQ,CAAC,qBAAqB,EAAE,SAAS,IAAI,WAAW,CAAC,0BAA0B,EAAE,QAAQ,CAAC,4BAA4B,CAAC,gBAAgB,EAAE,CAAC,uDAAuD,EAAE,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACxP,IAAI,OAAO;AACX,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,UAAU,EAAE,SAAS,GAAG,CAAC;AACjC,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,KAAK;AACL,CAAC;AACD,OAAO,CAAC,aAAa,GAAG,aAAa;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configureAutoTrack = void 0;
|
|
7
|
+
const utils_1 = require("../../../utils");
|
|
8
|
+
const record_1 = require("./record");
|
|
9
|
+
// Configured Tracker instances for Pinpoint
|
|
10
|
+
const configuredTrackers = {};
|
|
11
|
+
// Callback that will emit an appropriate event to Pinpoint when required by the Tracker
|
|
12
|
+
const emitTrackingEvent = (eventName, attributes) => {
|
|
13
|
+
(0, record_1.record)({
|
|
14
|
+
name: eventName,
|
|
15
|
+
attributes,
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Configures automatic event tracking for Pinpoint. This API will automatically transmit an analytic event when
|
|
20
|
+
* configured events are detected within your application. This can include: DOM element events (via the `event`
|
|
21
|
+
* tracker), session events (via the `session` tracker), and page view events (via the `pageView` tracker).
|
|
22
|
+
*
|
|
23
|
+
* @deprecated AWS will end support for Amazon Pinpoint on October 30, 2026.
|
|
24
|
+
*
|
|
25
|
+
* @remark Only session tracking is currently supported on React Native.
|
|
26
|
+
*
|
|
27
|
+
* @param {ConfigureAutoTrackInput} params The input object to configure auto track behavior.
|
|
28
|
+
*
|
|
29
|
+
* @throws service: {@link UpdateEndpointException} - Thrown when the underlying Pinpoint service returns an error.
|
|
30
|
+
* @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
|
|
31
|
+
* configuration is incorrect.
|
|
32
|
+
*/
|
|
33
|
+
const configureAutoTrack = (input) => {
|
|
34
|
+
(0, utils_1.validateTrackerConfiguration)(input);
|
|
35
|
+
// Initialize or update this provider's trackers
|
|
36
|
+
(0, utils_1.updateProviderTrackers)(input, emitTrackingEvent, configuredTrackers);
|
|
37
|
+
};
|
|
38
|
+
exports.configureAutoTrack = configureAutoTrack;
|
|
39
|
+
//# sourceMappingURL=configureAutoTrack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureAutoTrack.js","sources":["../../../../../src/providers/pinpoint/apis/configureAutoTrack.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.configureAutoTrack = void 0;\nconst utils_1 = require(\"../../../utils\");\nconst record_1 = require(\"./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 (0, record_1.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 * @deprecated AWS will end support for Amazon Pinpoint on October 30, 2026.\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 */\nconst configureAutoTrack = (input) => {\n (0, utils_1.validateTrackerConfiguration)(input);\n // Initialize or update this provider's trackers\n (0, utils_1.updateProviderTrackers)(input, emitTrackingEvent, configuredTrackers);\n};\nexports.configureAutoTrack = configureAutoTrack;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,kBAAkB,GAAG,MAAM;AACnC,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;AACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;AACpC;AACA,MAAM,kBAAkB,GAAG,EAAE;AAC7B;AACA,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,UAAU,KAAK;AACrD,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;AACzB,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB,GAAG,CAAC,KAAK,KAAK;AACtC,IAAI,IAAI,OAAO,CAAC,4BAA4B,EAAE,KAAK,CAAC;AACpD;AACA,IAAI,IAAI,OAAO,CAAC,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;AACrF,CAAC;AACD,OAAO,CAAC,kBAAkB,GAAG,kBAAkB;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.flushEvents = void 0;
|
|
7
|
+
const pinpoint_1 = require("@aws-amplify/core/internals/providers/pinpoint");
|
|
8
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
9
|
+
const core_1 = require("@aws-amplify/core");
|
|
10
|
+
const utils_2 = require("../utils");
|
|
11
|
+
const utils_3 = require("../../../utils");
|
|
12
|
+
const logger = new core_1.ConsoleLogger('Analytics');
|
|
13
|
+
/**
|
|
14
|
+
* Flushes all buffered Pinpoint events to the service.
|
|
15
|
+
*
|
|
16
|
+
* @deprecated AWS will end support for Amazon Pinpoint on October 30, 2026.
|
|
17
|
+
*
|
|
18
|
+
* @note
|
|
19
|
+
* This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
|
|
20
|
+
* this API may not be included in the flush.
|
|
21
|
+
*/
|
|
22
|
+
const flushEvents = () => {
|
|
23
|
+
const { appId, region, bufferSize, flushSize, flushInterval, resendLimit } = (0, utils_2.resolveConfig)();
|
|
24
|
+
(0, utils_2.resolveCredentials)()
|
|
25
|
+
.then(({ credentials, identityId }) => {
|
|
26
|
+
(0, pinpoint_1.flushEvents)({
|
|
27
|
+
appId,
|
|
28
|
+
region,
|
|
29
|
+
credentials,
|
|
30
|
+
identityId,
|
|
31
|
+
bufferSize,
|
|
32
|
+
flushSize,
|
|
33
|
+
flushInterval,
|
|
34
|
+
resendLimit,
|
|
35
|
+
userAgentValue: (0, utils_3.getAnalyticsUserAgentString)(utils_1.AnalyticsAction.Record),
|
|
36
|
+
});
|
|
37
|
+
})
|
|
38
|
+
.catch(e => {
|
|
39
|
+
logger.warn('Failed to flush events', e);
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
exports.flushEvents = flushEvents;
|
|
43
|
+
//# sourceMappingURL=flushEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flushEvents.js","sources":["../../../../../src/providers/pinpoint/apis/flushEvents.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flushEvents = void 0;\nconst pinpoint_1 = require(\"@aws-amplify/core/internals/providers/pinpoint\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_2 = require(\"../utils\");\nconst utils_3 = require(\"../../../utils\");\nconst logger = new core_1.ConsoleLogger('Analytics');\n/**\n * Flushes all buffered Pinpoint events to the service.\n *\n * @deprecated AWS will end support for Amazon Pinpoint on October 30, 2026.\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 */\nconst flushEvents = () => {\n const { appId, region, bufferSize, flushSize, flushInterval, resendLimit } = (0, utils_2.resolveConfig)();\n (0, utils_2.resolveCredentials)()\n .then(({ credentials, identityId }) => {\n (0, pinpoint_1.flushEvents)({\n appId,\n region,\n credentials,\n identityId,\n bufferSize,\n flushSize,\n flushInterval,\n resendLimit,\n userAgentValue: (0, utils_3.getAnalyticsUserAgentString)(utils_1.AnalyticsAction.Record),\n });\n })\n .catch(e => {\n logger.warn('Failed to flush events', e);\n });\n};\nexports.flushEvents = flushEvents;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,WAAW,GAAG,MAAM;AAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,gDAAgD,CAAC;AAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC;AAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;AACnC,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;AACzC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,MAAM;AAC1B,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,OAAO,CAAC,aAAa,GAAG;AAC7G,IAAI,IAAI,OAAO,CAAC,kBAAkB;AAClC,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AAC/C,QAAQ,IAAI,UAAU,CAAC,WAAW,EAAE;AACpC,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,cAAc,EAAE,IAAI,OAAO,CAAC,2BAA2B,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;AACpG,SAAS,CAAC;AACV,IAAI,CAAC;AACL,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB,QAAQ,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAChD,IAAI,CAAC,CAAC;AACN,CAAC;AACD,OAAO,CAAC,WAAW,GAAG,WAAW;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.identifyUser = void 0;
|
|
7
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
8
|
+
const pinpoint_1 = require("@aws-amplify/core/internals/providers/pinpoint");
|
|
9
|
+
const utils_2 = require("../../../utils");
|
|
10
|
+
const utils_3 = require("../utils");
|
|
11
|
+
/**
|
|
12
|
+
* Sends information about a user to Pinpoint. Sending user information allows you to associate a user to their user
|
|
13
|
+
* profile and activities or actions in your application. Activity can be tracked across devices & platforms by using
|
|
14
|
+
* the same `userId`.
|
|
15
|
+
*
|
|
16
|
+
* @deprecated AWS will end support for Amazon Pinpoint on October 30, 2026.
|
|
17
|
+
*
|
|
18
|
+
* @param {IdentifyUserInput} params The input object used to construct requests sent to Pinpoint's UpdateEndpoint
|
|
19
|
+
* API.
|
|
20
|
+
*
|
|
21
|
+
* @throws service: {@link UpdateEndpointException} - Thrown when the underlying Pinpoint service returns an error.
|
|
22
|
+
* @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
|
|
23
|
+
* configuration is incorrect.
|
|
24
|
+
*
|
|
25
|
+
* @returns A promise that will resolve when the operation is complete.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* // Identify a user with Pinpoint
|
|
30
|
+
* await identifyUser({
|
|
31
|
+
* userId,
|
|
32
|
+
* userProfile: {
|
|
33
|
+
* email: 'userEmail@example.com'
|
|
34
|
+
* customProperties: {
|
|
35
|
+
* phoneNumber: ['555-555-5555'],
|
|
36
|
+
* },
|
|
37
|
+
* }
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* // Identify a user with Pinpoint with some additional demographics
|
|
44
|
+
* await identifyUser({
|
|
45
|
+
* userId,
|
|
46
|
+
* userProfile: {
|
|
47
|
+
* email: 'userEmail@example.com'
|
|
48
|
+
* customProperties: {
|
|
49
|
+
* phoneNumber: ['555-555-5555'],
|
|
50
|
+
* },
|
|
51
|
+
* demographic: {
|
|
52
|
+
* platform: 'ios',
|
|
53
|
+
* timezone: 'America/Los_Angeles'
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* });
|
|
57
|
+
*/
|
|
58
|
+
const identifyUser = async ({ userId, userProfile, options, }) => {
|
|
59
|
+
const { credentials, identityId } = await (0, utils_3.resolveCredentials)();
|
|
60
|
+
const { appId, region } = (0, utils_3.resolveConfig)();
|
|
61
|
+
const { userAttributes } = options ?? {};
|
|
62
|
+
await (0, pinpoint_1.updateEndpoint)({
|
|
63
|
+
appId,
|
|
64
|
+
category: 'Analytics',
|
|
65
|
+
credentials,
|
|
66
|
+
identityId,
|
|
67
|
+
region,
|
|
68
|
+
userAttributes,
|
|
69
|
+
userId,
|
|
70
|
+
userProfile,
|
|
71
|
+
userAgentValue: (0, utils_2.getAnalyticsUserAgentString)(utils_1.AnalyticsAction.IdentifyUser),
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
exports.identifyUser = identifyUser;
|
|
75
|
+
//# sourceMappingURL=identifyUser.js.map
|