@aws-amplify/analytics 7.0.1-preview-testing.be90020.0 → 7.0.1-ssr-api.df60e41.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/kinesis/package.json +7 -0
- package/kinesis-firehose/package.json +7 -0
- package/lib/apis/disable.d.ts +8 -0
- package/lib/apis/disable.js +14 -0
- package/lib/apis/enable.d.ts +7 -0
- package/lib/apis/enable.js +13 -0
- package/lib/apis/index.d.ts +2 -0
- package/lib/apis/index.js +9 -0
- package/lib/errors/AnalyticsError.d.ts +2 -2
- package/lib/errors/AnalyticsError.js +7 -11
- package/lib/errors/assertValidationError.d.ts +1 -1
- package/lib/errors/assertValidationError.js +9 -5
- package/lib/errors/validation.d.ts +5 -2
- package/lib/errors/validation.js +22 -11
- package/lib/index.d.ts +2 -1
- package/lib/index.js +6 -1
- package/lib/providers/kinesis/apis/flushEvents.d.ts +8 -0
- package/lib/providers/kinesis/apis/flushEvents.js +35 -0
- package/lib/providers/kinesis/apis/index.d.ts +2 -0
- package/lib/providers/kinesis/apis/index.js +9 -0
- package/lib/providers/kinesis/apis/record.d.ts +2 -0
- package/lib/providers/kinesis/apis/record.js +46 -0
- package/lib/providers/kinesis/index.d.ts +1 -0
- package/lib/providers/kinesis/index.js +8 -0
- package/lib/providers/kinesis/types/buffer.d.ts +15 -0
- package/lib/providers/kinesis/types/buffer.js +4 -0
- package/lib/providers/kinesis/types/index.d.ts +2 -0
- package/lib/providers/kinesis/types/index.js +4 -0
- package/lib/providers/kinesis/types/inputs.d.ts +6 -0
- package/lib/providers/kinesis/types/inputs.js +4 -0
- package/lib/providers/kinesis/utils/constants.d.ts +6 -0
- package/lib/providers/kinesis/utils/constants.js +11 -0
- package/lib/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
- package/lib/providers/kinesis/utils/getEventBuffer.js +72 -0
- package/lib/providers/kinesis/utils/resolveConfig.d.ts +7 -0
- package/lib/providers/kinesis/utils/resolveConfig.js +25 -0
- package/lib/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
- package/lib/providers/kinesis-firehose/apis/flushEvents.js +34 -0
- package/lib/providers/kinesis-firehose/apis/index.d.ts +2 -0
- package/lib/providers/kinesis-firehose/apis/index.js +9 -0
- package/lib/providers/kinesis-firehose/apis/record.d.ts +2 -0
- package/lib/providers/kinesis-firehose/apis/record.js +43 -0
- package/lib/providers/kinesis-firehose/index.d.ts +1 -0
- package/lib/providers/kinesis-firehose/index.js +8 -0
- package/lib/providers/kinesis-firehose/types/buffer.d.ts +15 -0
- package/lib/providers/kinesis-firehose/types/index.d.ts +2 -0
- package/lib/providers/kinesis-firehose/types/index.js +4 -0
- package/lib/providers/kinesis-firehose/types/inputs.d.ts +5 -0
- package/lib/providers/kinesis-firehose/types/inputs.js +4 -0
- package/lib/providers/kinesis-firehose/utils/constants.d.ts +6 -0
- package/lib/providers/kinesis-firehose/utils/constants.js +11 -0
- package/lib/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
- package/lib/providers/kinesis-firehose/utils/getEventBuffer.js +71 -0
- package/lib/providers/kinesis-firehose/utils/index.d.ts +2 -0
- package/lib/providers/kinesis-firehose/utils/index.js +9 -0
- package/lib/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
- package/lib/providers/kinesis-firehose/utils/resolveConfig.js +25 -0
- package/lib/providers/personalize/apis/flushEvents.d.ts +8 -0
- package/lib/providers/personalize/apis/flushEvents.js +33 -0
- package/lib/providers/personalize/apis/index.d.ts +2 -0
- package/lib/providers/personalize/apis/index.js +9 -0
- package/lib/providers/personalize/apis/record.d.ts +2 -0
- package/lib/providers/personalize/apis/record.js +71 -0
- package/lib/providers/personalize/index.d.ts +1 -0
- package/lib/providers/personalize/index.js +8 -0
- package/lib/providers/personalize/types/buffer.d.ts +16 -0
- package/lib/providers/personalize/types/buffer.js +4 -0
- package/lib/providers/personalize/types/index.d.ts +2 -0
- package/lib/providers/personalize/types/index.js +4 -0
- package/lib/providers/personalize/types/inputs.d.ts +7 -0
- package/lib/providers/personalize/types/inputs.js +4 -0
- package/lib/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
- package/lib/providers/personalize/utils/autoTrackMedia.js +181 -0
- package/lib/providers/personalize/utils/cachedSession.d.ts +5 -0
- package/lib/providers/personalize/utils/cachedSession.js +49 -0
- package/lib/providers/personalize/utils/constants.d.ts +7 -0
- package/lib/providers/personalize/utils/constants.js +12 -0
- package/lib/providers/personalize/utils/getEventBuffer.d.ts +3 -0
- package/lib/providers/personalize/utils/getEventBuffer.js +73 -0
- package/lib/providers/personalize/utils/index.d.ts +5 -0
- package/lib/providers/personalize/utils/index.js +17 -0
- package/lib/providers/personalize/utils/resolveConfig.d.ts +7 -0
- package/lib/providers/personalize/utils/resolveConfig.js +26 -0
- package/lib/providers/pinpoint/apis/configureAutoTrack.d.ts +15 -0
- package/lib/providers/pinpoint/apis/configureAutoTrack.js +35 -0
- package/lib/providers/pinpoint/apis/flushEvents.d.ts +8 -0
- package/lib/providers/pinpoint/apis/flushEvents.js +25 -0
- package/lib/providers/pinpoint/apis/identifyUser.d.ts +7 -5
- package/lib/providers/pinpoint/apis/identifyUser.js +24 -32
- package/lib/providers/pinpoint/apis/index.d.ts +2 -0
- package/lib/providers/pinpoint/apis/index.js +5 -1
- package/lib/providers/pinpoint/apis/record.d.ts +8 -14
- package/lib/providers/pinpoint/apis/record.js +31 -34
- package/lib/providers/pinpoint/index.d.ts +2 -2
- package/lib/providers/pinpoint/index.js +3 -1
- package/lib/providers/pinpoint/types/index.d.ts +2 -2
- package/lib/providers/pinpoint/types/index.js +0 -3
- package/lib/providers/pinpoint/types/inputs.d.ts +8 -17
- package/lib/providers/pinpoint/types/options.d.ts +5 -0
- package/lib/providers/pinpoint/types/options.js +4 -0
- package/lib/providers/pinpoint/utils/resolveConfig.js +5 -6
- package/lib/providers/pinpoint/utils/resolveCredentials.d.ts +1 -6
- package/lib/providers/pinpoint/utils/resolveCredentials.js +7 -15
- package/lib/setupTests.js +1 -1
- package/lib/trackers/EventTracker.d.ts +10 -0
- package/lib/trackers/EventTracker.js +98 -0
- package/lib/trackers/PageViewTracker.d.ts +18 -0
- package/lib/trackers/PageViewTracker.js +112 -0
- package/lib/trackers/SessionTracker.d.ts +13 -0
- package/lib/trackers/SessionTracker.js +67 -0
- package/lib/trackers/SessionTracker.native.d.ts +13 -0
- package/lib/trackers/SessionTracker.native.js +67 -0
- package/lib/trackers/index.d.ts +3 -0
- package/lib/trackers/index.js +11 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/index.d.ts +3 -1
- package/lib/types/index.js +0 -2
- package/lib/types/inputs.d.ts +35 -0
- package/lib/types/inputs.js +4 -0
- package/lib/types/kinesis.d.ts +8 -0
- package/lib/types/kinesis.js +4 -0
- package/lib/types/options.d.ts +4 -0
- package/lib/types/options.js +4 -0
- package/lib/types/trackers.d.ts +22 -0
- package/lib/types/trackers.js +4 -0
- package/lib/utils/eventBuffer/EventBuffer.d.ts +16 -0
- package/lib/utils/eventBuffer/EventBuffer.js +63 -0
- package/lib/utils/eventBuffer/index.d.ts +2 -0
- package/lib/utils/eventBuffer/index.js +7 -0
- package/lib/utils/eventBuffer/types.d.ts +8 -0
- package/lib/utils/eventBuffer/types.js +4 -0
- package/lib/utils/groupBy.d.ts +1 -0
- package/lib/utils/groupBy.js +12 -0
- package/lib/utils/index.d.ts +7 -0
- package/lib/utils/index.js +22 -0
- package/lib/utils/resolveCredentials.d.ts +4 -0
- package/lib/utils/resolveCredentials.js +13 -0
- package/lib/utils/statusHelpers.d.ts +6 -0
- package/lib/utils/statusHelpers.js +19 -0
- package/lib/utils/trackerConfigHelpers.d.ts +5 -0
- package/lib/utils/trackerConfigHelpers.js +15 -0
- package/lib/utils/trackerConfigHelpers.native.d.ts +5 -0
- package/lib/utils/trackerConfigHelpers.native.js +14 -0
- package/lib/utils/trackerHelpers.d.ts +9 -0
- package/lib/utils/trackerHelpers.js +44 -0
- package/lib/utils/userAgent.js +3 -3
- package/lib-esm/apis/disable.d.ts +8 -0
- package/lib-esm/apis/disable.js +11 -0
- package/lib-esm/apis/enable.d.ts +7 -0
- package/lib-esm/apis/enable.js +10 -0
- package/lib-esm/apis/index.d.ts +2 -0
- package/lib-esm/apis/index.js +4 -0
- package/lib-esm/errors/AnalyticsError.d.ts +2 -2
- package/lib-esm/errors/AnalyticsError.js +7 -12
- package/lib-esm/errors/assertValidationError.d.ts +1 -1
- package/lib-esm/errors/assertValidationError.js +7 -3
- package/lib-esm/errors/validation.d.ts +5 -2
- package/lib-esm/errors/validation.js +22 -11
- package/lib-esm/index.d.ts +2 -1
- package/lib-esm/index.js +2 -1
- package/lib-esm/providers/kinesis/apis/flushEvents.d.ts +8 -0
- package/lib-esm/providers/kinesis/apis/flushEvents.js +31 -0
- package/lib-esm/providers/kinesis/apis/index.d.ts +2 -0
- package/lib-esm/providers/kinesis/apis/index.js +4 -0
- package/lib-esm/providers/kinesis/apis/record.d.ts +2 -0
- package/lib-esm/providers/kinesis/apis/record.js +42 -0
- package/lib-esm/providers/kinesis/index.d.ts +1 -0
- package/lib-esm/providers/kinesis/index.js +3 -0
- package/lib-esm/providers/kinesis/types/buffer.d.ts +15 -0
- package/lib-esm/providers/kinesis/types/buffer.js +3 -0
- package/lib-esm/providers/kinesis/types/index.d.ts +2 -0
- package/lib-esm/providers/kinesis/types/index.js +3 -0
- package/lib-esm/providers/kinesis/types/inputs.d.ts +6 -0
- package/lib-esm/providers/kinesis/types/inputs.js +3 -0
- package/lib-esm/providers/kinesis/utils/constants.d.ts +6 -0
- package/lib-esm/providers/kinesis/utils/constants.js +8 -0
- package/lib-esm/providers/kinesis/utils/getEventBuffer.d.ts +3 -0
- package/lib-esm/providers/kinesis/utils/getEventBuffer.js +68 -0
- package/lib-esm/providers/kinesis/utils/resolveConfig.d.ts +7 -0
- package/lib-esm/providers/kinesis/utils/resolveConfig.js +21 -0
- package/lib-esm/providers/kinesis-firehose/apis/flushEvents.d.ts +8 -0
- package/lib-esm/providers/kinesis-firehose/apis/flushEvents.js +30 -0
- package/lib-esm/providers/kinesis-firehose/apis/index.d.ts +2 -0
- package/lib-esm/providers/kinesis-firehose/apis/index.js +4 -0
- package/lib-esm/providers/kinesis-firehose/apis/record.d.ts +2 -0
- package/lib-esm/providers/kinesis-firehose/apis/record.js +39 -0
- package/lib-esm/providers/kinesis-firehose/index.d.ts +1 -0
- package/lib-esm/providers/kinesis-firehose/index.js +3 -0
- package/lib-esm/providers/kinesis-firehose/types/buffer.d.ts +15 -0
- package/lib-esm/providers/kinesis-firehose/types/index.d.ts +2 -0
- package/lib-esm/providers/kinesis-firehose/types/index.js +3 -0
- package/lib-esm/providers/kinesis-firehose/types/inputs.d.ts +5 -0
- package/lib-esm/providers/kinesis-firehose/types/inputs.js +3 -0
- package/lib-esm/providers/kinesis-firehose/utils/constants.d.ts +6 -0
- package/lib-esm/providers/kinesis-firehose/utils/constants.js +8 -0
- package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.d.ts +3 -0
- package/lib-esm/providers/kinesis-firehose/utils/getEventBuffer.js +67 -0
- package/lib-esm/providers/kinesis-firehose/utils/index.d.ts +2 -0
- package/lib-esm/providers/kinesis-firehose/utils/index.js +4 -0
- package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.d.ts +7 -0
- package/lib-esm/providers/kinesis-firehose/utils/resolveConfig.js +21 -0
- package/lib-esm/providers/personalize/apis/flushEvents.d.ts +8 -0
- package/lib-esm/providers/personalize/apis/flushEvents.js +29 -0
- package/lib-esm/providers/personalize/apis/index.d.ts +2 -0
- package/lib-esm/providers/personalize/apis/index.js +4 -0
- package/lib-esm/providers/personalize/apis/record.d.ts +2 -0
- package/lib-esm/providers/personalize/apis/record.js +67 -0
- package/lib-esm/providers/personalize/index.d.ts +1 -0
- package/lib-esm/providers/personalize/index.js +3 -0
- package/lib-esm/providers/personalize/types/buffer.d.ts +16 -0
- package/lib-esm/providers/personalize/types/buffer.js +3 -0
- package/lib-esm/providers/personalize/types/index.d.ts +2 -0
- package/lib-esm/providers/personalize/types/index.js +3 -0
- package/lib-esm/providers/personalize/types/inputs.d.ts +7 -0
- package/lib-esm/providers/personalize/types/inputs.js +3 -0
- package/lib-esm/providers/personalize/utils/autoTrackMedia.d.ts +10 -0
- package/lib-esm/providers/personalize/utils/autoTrackMedia.js +177 -0
- package/lib-esm/providers/personalize/utils/cachedSession.d.ts +5 -0
- package/lib-esm/providers/personalize/utils/cachedSession.js +44 -0
- package/lib-esm/providers/personalize/utils/constants.d.ts +7 -0
- package/lib-esm/providers/personalize/utils/constants.js +9 -0
- package/lib-esm/providers/personalize/utils/getEventBuffer.d.ts +3 -0
- package/lib-esm/providers/personalize/utils/getEventBuffer.js +69 -0
- package/lib-esm/providers/personalize/utils/index.d.ts +5 -0
- package/lib-esm/providers/personalize/utils/index.js +7 -0
- package/lib-esm/providers/personalize/utils/resolveConfig.d.ts +7 -0
- package/lib-esm/providers/personalize/utils/resolveConfig.js +22 -0
- package/lib-esm/providers/pinpoint/apis/configureAutoTrack.d.ts +15 -0
- package/lib-esm/providers/pinpoint/apis/configureAutoTrack.js +31 -0
- package/lib-esm/providers/pinpoint/apis/flushEvents.d.ts +8 -0
- package/lib-esm/providers/pinpoint/apis/flushEvents.js +21 -0
- package/lib-esm/providers/pinpoint/apis/identifyUser.d.ts +7 -5
- package/lib-esm/providers/pinpoint/apis/identifyUser.js +22 -30
- package/lib-esm/providers/pinpoint/apis/index.d.ts +2 -0
- package/lib-esm/providers/pinpoint/apis/index.js +2 -0
- package/lib-esm/providers/pinpoint/apis/record.d.ts +8 -14
- package/lib-esm/providers/pinpoint/apis/record.js +26 -29
- package/lib-esm/providers/pinpoint/index.d.ts +2 -2
- package/lib-esm/providers/pinpoint/index.js +1 -1
- package/lib-esm/providers/pinpoint/types/index.d.ts +2 -2
- package/lib-esm/providers/pinpoint/types/index.js +1 -1
- package/lib-esm/providers/pinpoint/types/inputs.d.ts +8 -17
- package/lib-esm/providers/pinpoint/types/options.d.ts +5 -0
- package/lib-esm/providers/pinpoint/types/options.js +3 -0
- package/lib-esm/providers/pinpoint/utils/resolveConfig.js +3 -4
- package/lib-esm/providers/pinpoint/utils/resolveCredentials.d.ts +1 -6
- package/lib-esm/providers/pinpoint/utils/resolveCredentials.js +5 -13
- package/lib-esm/setupTests.js +1 -1
- package/lib-esm/trackers/EventTracker.d.ts +10 -0
- package/lib-esm/trackers/EventTracker.js +94 -0
- package/lib-esm/trackers/PageViewTracker.d.ts +18 -0
- package/lib-esm/trackers/PageViewTracker.js +108 -0
- package/lib-esm/trackers/SessionTracker.d.ts +13 -0
- package/lib-esm/trackers/SessionTracker.js +63 -0
- package/lib-esm/trackers/SessionTracker.native.d.ts +13 -0
- package/lib-esm/trackers/SessionTracker.native.js +63 -0
- package/lib-esm/trackers/index.d.ts +3 -0
- package/lib-esm/trackers/index.js +5 -0
- package/lib-esm/tsconfig.tsbuildinfo +1 -1
- package/lib-esm/types/index.d.ts +3 -1
- package/lib-esm/types/index.js +1 -1
- package/lib-esm/types/inputs.d.ts +35 -0
- package/lib-esm/types/inputs.js +3 -0
- package/lib-esm/types/kinesis.d.ts +8 -0
- package/lib-esm/types/kinesis.js +3 -0
- package/lib-esm/types/options.d.ts +4 -0
- package/lib-esm/types/options.js +3 -0
- package/lib-esm/types/trackers.d.ts +22 -0
- package/lib-esm/types/trackers.js +3 -0
- package/lib-esm/utils/eventBuffer/EventBuffer.d.ts +16 -0
- package/lib-esm/utils/eventBuffer/EventBuffer.js +59 -0
- package/lib-esm/utils/eventBuffer/index.d.ts +2 -0
- package/lib-esm/utils/eventBuffer/index.js +3 -0
- package/lib-esm/utils/eventBuffer/types.d.ts +8 -0
- package/lib-esm/utils/eventBuffer/types.js +3 -0
- package/lib-esm/utils/groupBy.d.ts +1 -0
- package/lib-esm/utils/groupBy.js +8 -0
- package/lib-esm/utils/index.d.ts +7 -0
- package/lib-esm/utils/index.js +9 -0
- package/lib-esm/utils/resolveCredentials.d.ts +4 -0
- package/lib-esm/utils/resolveCredentials.js +9 -0
- package/lib-esm/utils/statusHelpers.d.ts +6 -0
- package/lib-esm/utils/statusHelpers.js +13 -0
- package/lib-esm/utils/trackerConfigHelpers.d.ts +5 -0
- package/lib-esm/utils/trackerConfigHelpers.js +11 -0
- package/lib-esm/utils/trackerConfigHelpers.native.d.ts +5 -0
- package/lib-esm/utils/trackerConfigHelpers.native.js +10 -0
- package/lib-esm/utils/trackerHelpers.d.ts +9 -0
- package/lib-esm/utils/trackerHelpers.js +40 -0
- package/lib-esm/utils/userAgent.js +2 -2
- package/package.json +39 -12
- package/personalize/package.json +7 -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 +5 -2
- package/src/errors/assertValidationError.ts +9 -3
- package/src/errors/validation.ts +16 -4
- package/src/index.ts +4 -0
- package/src/providers/kinesis/apis/flushEvents.ts +40 -0
- package/src/providers/kinesis/apis/index.ts +5 -0
- package/src/providers/kinesis/apis/record.ts +58 -0
- package/src/providers/kinesis/index.ts +4 -0
- package/src/providers/kinesis/types/buffer.ts +20 -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 +109 -0
- package/src/providers/kinesis/utils/resolveConfig.ts +36 -0
- package/src/providers/kinesis-firehose/apis/flushEvents.ts +39 -0
- package/src/providers/kinesis-firehose/apis/index.ts +5 -0
- package/src/providers/kinesis-firehose/apis/record.ts +51 -0
- package/src/providers/kinesis-firehose/index.ts +4 -0
- package/src/providers/kinesis-firehose/types/buffer.ts +20 -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 +117 -0
- package/src/providers/kinesis-firehose/utils/index.ts +5 -0
- package/src/providers/kinesis-firehose/utils/resolveConfig.ts +36 -0
- package/src/providers/personalize/apis/flushEvents.ts +37 -0
- package/src/providers/personalize/apis/index.ts +5 -0
- package/src/providers/personalize/apis/record.ts +102 -0
- package/src/providers/personalize/index.ts +4 -0
- package/src/providers/personalize/types/buffer.ts +21 -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 +232 -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 +110 -0
- package/src/providers/personalize/utils/index.ts +11 -0
- package/src/providers/personalize/utils/resolveConfig.ts +41 -0
- package/src/providers/pinpoint/apis/configureAutoTrack.ts +49 -0
- package/src/providers/pinpoint/apis/flushEvents.ts +32 -0
- package/src/providers/pinpoint/apis/identifyUser.ts +20 -12
- package/src/providers/pinpoint/apis/index.ts +2 -0
- package/src/providers/pinpoint/apis/record.ts +31 -23
- package/src/providers/pinpoint/index.ts +6 -2
- package/src/providers/pinpoint/types/index.ts +6 -2
- package/src/providers/pinpoint/types/inputs.ts +11 -17
- package/src/providers/pinpoint/types/options.ts +12 -0
- package/src/trackers/EventTracker.ts +135 -0
- package/src/trackers/PageViewTracker.ts +160 -0
- package/src/trackers/SessionTracker.native.ts +105 -0
- package/src/trackers/SessionTracker.ts +105 -0
- package/src/trackers/index.ts +6 -0
- package/src/types/index.ts +8 -1
- package/src/types/inputs.ts +52 -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 +84 -0
- package/src/utils/eventBuffer/index.ts +5 -0
- package/src/utils/eventBuffer/types.ts +12 -0
- package/src/utils/groupBy.ts +12 -0
- package/src/utils/index.ts +21 -0
- package/src/utils/resolveCredentials.ts +14 -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 +57 -0
- package/lib/providers/pinpoint/types/errors.d.ts +0 -9
- package/lib/providers/pinpoint/types/errors.js +0 -15
- package/lib/types/analytics.d.ts +0 -50
- package/lib-esm/providers/pinpoint/types/errors.d.ts +0 -9
- package/lib-esm/providers/pinpoint/types/errors.js +0 -12
- package/lib-esm/types/analytics.d.ts +0 -50
- package/src/providers/pinpoint/types/errors.ts +0 -12
- package/src/types/analytics.ts +0 -70
- /package/lib/{types/analytics.js → providers/kinesis-firehose/types/buffer.js} +0 -0
- /package/lib-esm/{types/analytics.js → providers/kinesis-firehose/types/buffer.js} +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { getEventBuffer } from '../utils/getEventBuffer';
|
|
4
|
+
import { resolveConfig } from '../utils/resolveConfig';
|
|
5
|
+
import { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';
|
|
6
|
+
import { fromUtf8 } from '@smithy/util-utf8';
|
|
7
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
8
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
9
|
+
const logger = new ConsoleLogger('Kinesis');
|
|
10
|
+
export const record = ({ streamName, partitionKey, data, }) => {
|
|
11
|
+
if (!isAnalyticsEnabled()) {
|
|
12
|
+
logger.debug('Analytics is disabled, event will not be recorded.');
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const timestamp = Date.now();
|
|
16
|
+
const { region, bufferSize, flushSize, flushInterval, resendLimit } = resolveConfig();
|
|
17
|
+
resolveCredentials()
|
|
18
|
+
.then(({ credentials, identityId }) => {
|
|
19
|
+
const buffer = getEventBuffer({
|
|
20
|
+
region,
|
|
21
|
+
bufferSize,
|
|
22
|
+
flushSize,
|
|
23
|
+
flushInterval,
|
|
24
|
+
credentials,
|
|
25
|
+
identityId,
|
|
26
|
+
resendLimit,
|
|
27
|
+
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
28
|
+
});
|
|
29
|
+
buffer.append({
|
|
30
|
+
region,
|
|
31
|
+
streamName,
|
|
32
|
+
partitionKey,
|
|
33
|
+
event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),
|
|
34
|
+
timestamp,
|
|
35
|
+
retryCount: 0,
|
|
36
|
+
});
|
|
37
|
+
})
|
|
38
|
+
.catch(e => {
|
|
39
|
+
// An error occured while fetching credentials or persisting the event to the buffer
|
|
40
|
+
logger.warn('Failed to record event.', e);
|
|
41
|
+
});
|
|
42
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { record, flushEvents } from './apis';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AWSCredentials } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
import { EventBufferConfig } from '../../../utils';
|
|
3
|
+
import { KinesisShard } from '../../../types';
|
|
4
|
+
export type KinesisBufferEvent = KinesisShard & {
|
|
5
|
+
event: Uint8Array;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
retryCount: number;
|
|
8
|
+
};
|
|
9
|
+
export type KinesisEventBufferConfig = EventBufferConfig & {
|
|
10
|
+
region: string;
|
|
11
|
+
credentials: AWSCredentials;
|
|
12
|
+
identityId?: string;
|
|
13
|
+
resendLimit?: number;
|
|
14
|
+
userAgentValue?: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { KinesisBufferEvent, KinesisEventBufferConfig } from '../types';
|
|
2
|
+
import { EventBuffer } from '../../../utils';
|
|
3
|
+
export declare const getEventBuffer: ({ region, flushInterval, flushSize, bufferSize, credentials, identityId, resendLimit, userAgentValue, }: KinesisEventBufferConfig) => EventBuffer<KinesisBufferEvent>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { EventBuffer, groupBy } from '../../../utils';
|
|
4
|
+
import { KinesisClient, PutRecordsCommand } from '@aws-sdk/client-kinesis';
|
|
5
|
+
/**
|
|
6
|
+
* These Records hold cached event buffers and AWS clients.
|
|
7
|
+
* The hash key is determined by the region and session,
|
|
8
|
+
* consisting of a combined value comprising [region, sessionToken, identityId].
|
|
9
|
+
*
|
|
10
|
+
* Only one active session should exist at any given moment.
|
|
11
|
+
* When a new session is initiated, the previous ones should be released.
|
|
12
|
+
* */
|
|
13
|
+
const eventBufferMap = {};
|
|
14
|
+
const cachedClients = {};
|
|
15
|
+
const createKinesisPutRecordsCommand = (streamName, events) => new PutRecordsCommand({
|
|
16
|
+
StreamName: streamName,
|
|
17
|
+
Records: events.map(event => ({
|
|
18
|
+
PartitionKey: event.partitionKey,
|
|
19
|
+
Data: event.event,
|
|
20
|
+
})),
|
|
21
|
+
});
|
|
22
|
+
const submitEvents = async (events, client, resendLimit) => {
|
|
23
|
+
const groupedByStreamName = Object.entries(groupBy(event => event.streamName, events));
|
|
24
|
+
const requests = groupedByStreamName
|
|
25
|
+
.map(([streamName, events]) => createKinesisPutRecordsCommand(streamName, events))
|
|
26
|
+
.map(command => client.send(command));
|
|
27
|
+
const responses = await Promise.allSettled(requests);
|
|
28
|
+
const failedEvents = responses
|
|
29
|
+
.map((response, i) => response.status === 'rejected' ? groupedByStreamName[i][1] : [])
|
|
30
|
+
.flat();
|
|
31
|
+
return resendLimit
|
|
32
|
+
? failedEvents
|
|
33
|
+
.filter(event => event.retryCount < resendLimit)
|
|
34
|
+
.map(event => ({ ...event, retryCount: event.retryCount + 1 }))
|
|
35
|
+
.sort((a, b) => a.timestamp - b.timestamp)
|
|
36
|
+
: [];
|
|
37
|
+
};
|
|
38
|
+
export const getEventBuffer = ({ region, flushInterval, flushSize, bufferSize, credentials, identityId, resendLimit, userAgentValue, }) => {
|
|
39
|
+
const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');
|
|
40
|
+
if (!eventBufferMap[sessionIdentityKey]) {
|
|
41
|
+
const getKinesisClient = () => {
|
|
42
|
+
if (!cachedClients[sessionIdentityKey]) {
|
|
43
|
+
cachedClients[sessionIdentityKey] = new KinesisClient({
|
|
44
|
+
credentials,
|
|
45
|
+
region,
|
|
46
|
+
customUserAgent: userAgentValue,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return events => submitEvents(events, cachedClients[sessionIdentityKey], resendLimit);
|
|
50
|
+
};
|
|
51
|
+
// create new session
|
|
52
|
+
eventBufferMap[sessionIdentityKey] = new EventBuffer({
|
|
53
|
+
flushInterval,
|
|
54
|
+
flushSize,
|
|
55
|
+
bufferSize,
|
|
56
|
+
}, getKinesisClient);
|
|
57
|
+
// release other sessions
|
|
58
|
+
const releaseSessionKeys = Object.keys(eventBufferMap).filter(x => x !== sessionIdentityKey);
|
|
59
|
+
for (const releaseSessionKey of releaseSessionKeys) {
|
|
60
|
+
eventBufferMap[releaseSessionKey].flushAll().finally(() => {
|
|
61
|
+
eventBufferMap[releaseSessionKey].release();
|
|
62
|
+
delete eventBufferMap[releaseSessionKey];
|
|
63
|
+
delete cachedClients[releaseSessionKey];
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return eventBufferMap[sessionIdentityKey];
|
|
68
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { Amplify } from '@aws-amplify/core';
|
|
4
|
+
import { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';
|
|
5
|
+
import { DEFAULT_KINESIS_CONFIG } from './constants';
|
|
6
|
+
export const resolveConfig = () => {
|
|
7
|
+
const config = Amplify.getConfig().Analytics?.Kinesis;
|
|
8
|
+
const { region, bufferSize = DEFAULT_KINESIS_CONFIG.bufferSize, flushSize = DEFAULT_KINESIS_CONFIG.flushSize, flushInterval = DEFAULT_KINESIS_CONFIG.flushInterval, resendLimit, } = {
|
|
9
|
+
...DEFAULT_KINESIS_CONFIG,
|
|
10
|
+
...config,
|
|
11
|
+
};
|
|
12
|
+
assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
|
|
13
|
+
assertValidationError(flushSize < bufferSize, AnalyticsValidationErrorCode.InvalidFlushSize);
|
|
14
|
+
return {
|
|
15
|
+
region,
|
|
16
|
+
bufferSize,
|
|
17
|
+
flushSize,
|
|
18
|
+
flushInterval,
|
|
19
|
+
resendLimit,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flushes all buffered Kinesis events to the service.
|
|
3
|
+
*
|
|
4
|
+
* @note
|
|
5
|
+
* This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
|
|
6
|
+
* this API may not be included in the flush.
|
|
7
|
+
*/
|
|
8
|
+
export declare const flushEvents: () => void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { getEventBuffer, resolveConfig } from '../utils';
|
|
4
|
+
import { getAnalyticsUserAgentString, resolveCredentials, } from '../../../utils';
|
|
5
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
6
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
7
|
+
const logger = new ConsoleLogger('KinesisFirehose');
|
|
8
|
+
/**
|
|
9
|
+
* Flushes all buffered Kinesis events to the service.
|
|
10
|
+
*
|
|
11
|
+
* @note
|
|
12
|
+
* This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
|
|
13
|
+
* this API may not be included in the flush.
|
|
14
|
+
*/
|
|
15
|
+
export const flushEvents = () => {
|
|
16
|
+
const { region, flushSize, flushInterval, bufferSize, resendLimit } = resolveConfig();
|
|
17
|
+
resolveCredentials()
|
|
18
|
+
.then(({ credentials, identityId }) => getEventBuffer({
|
|
19
|
+
region,
|
|
20
|
+
flushSize,
|
|
21
|
+
flushInterval,
|
|
22
|
+
bufferSize,
|
|
23
|
+
credentials,
|
|
24
|
+
identityId,
|
|
25
|
+
resendLimit,
|
|
26
|
+
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
27
|
+
}))
|
|
28
|
+
.then(eventBuffer => eventBuffer.flushAll())
|
|
29
|
+
.catch(e => logger.warn('Failed to flush events.', e));
|
|
30
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { getEventBuffer, resolveConfig } from '../utils';
|
|
4
|
+
import { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';
|
|
5
|
+
import { fromUtf8 } from '@smithy/util-utf8';
|
|
6
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
7
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
8
|
+
const logger = new ConsoleLogger('KinesisFirehose');
|
|
9
|
+
export const record = ({ streamName, data }) => {
|
|
10
|
+
if (!isAnalyticsEnabled()) {
|
|
11
|
+
logger.debug('Analytics is disabled, event will not be recorded.');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const timestamp = Date.now();
|
|
15
|
+
const { region, bufferSize, flushSize, flushInterval, resendLimit } = resolveConfig();
|
|
16
|
+
resolveCredentials()
|
|
17
|
+
.then(({ credentials, identityId }) => {
|
|
18
|
+
const buffer = getEventBuffer({
|
|
19
|
+
region,
|
|
20
|
+
credentials,
|
|
21
|
+
identityId,
|
|
22
|
+
bufferSize,
|
|
23
|
+
flushSize,
|
|
24
|
+
flushInterval,
|
|
25
|
+
resendLimit,
|
|
26
|
+
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
27
|
+
});
|
|
28
|
+
buffer.append({
|
|
29
|
+
region,
|
|
30
|
+
streamName,
|
|
31
|
+
event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),
|
|
32
|
+
timestamp,
|
|
33
|
+
retryCount: 0,
|
|
34
|
+
});
|
|
35
|
+
})
|
|
36
|
+
.catch(e => {
|
|
37
|
+
logger.warn('Failed to record event.', e);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { record, flushEvents } from './apis';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EventBufferConfig } from '../../../utils';
|
|
2
|
+
import { KinesisStream } from '../../../types';
|
|
3
|
+
import { AWSCredentials } from '@aws-amplify/core/internals/utils';
|
|
4
|
+
export type KinesisFirehoseBufferEvent = KinesisStream & {
|
|
5
|
+
event: Uint8Array;
|
|
6
|
+
retryCount: number;
|
|
7
|
+
timestamp: number;
|
|
8
|
+
};
|
|
9
|
+
export type KinesisFirehoseEventBufferConfig = EventBufferConfig & {
|
|
10
|
+
region: string;
|
|
11
|
+
credentials: AWSCredentials;
|
|
12
|
+
identityId?: string;
|
|
13
|
+
resendLimit?: number;
|
|
14
|
+
userAgentValue?: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { EventBuffer } from '../../../utils';
|
|
2
|
+
import { KinesisFirehoseBufferEvent, KinesisFirehoseEventBufferConfig } from '../types';
|
|
3
|
+
export declare const getEventBuffer: ({ region, credentials, identityId, bufferSize, flushSize, flushInterval, resendLimit, userAgentValue, }: KinesisFirehoseEventBufferConfig) => EventBuffer<KinesisFirehoseBufferEvent>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { EventBuffer, groupBy } from '../../../utils';
|
|
4
|
+
import { FirehoseClient, PutRecordBatchCommand, } from '@aws-sdk/client-firehose';
|
|
5
|
+
/**
|
|
6
|
+
* These Records hold cached event buffers and AWS clients.
|
|
7
|
+
* The hash key is determined by the region and session,
|
|
8
|
+
* consisting of a combined value comprising [region, sessionToken, identityId].
|
|
9
|
+
*
|
|
10
|
+
* Only one active session should exist at any given moment.
|
|
11
|
+
* When a new session is initiated, the previous ones should be released.
|
|
12
|
+
* */
|
|
13
|
+
const eventBufferMap = {};
|
|
14
|
+
const cachedClients = {};
|
|
15
|
+
const createPutRecordsBatchCommand = (streamName, events) => new PutRecordBatchCommand({
|
|
16
|
+
DeliveryStreamName: streamName,
|
|
17
|
+
Records: events.map(event => ({
|
|
18
|
+
Data: event.event,
|
|
19
|
+
})),
|
|
20
|
+
});
|
|
21
|
+
const submitEvents = async (events, client, resendLimit) => {
|
|
22
|
+
const groupedByStreamName = Object.entries(groupBy(event => event.streamName, events));
|
|
23
|
+
const requests = groupedByStreamName
|
|
24
|
+
.map(([streamName, events]) => createPutRecordsBatchCommand(streamName, events))
|
|
25
|
+
.map(command => client.send(command));
|
|
26
|
+
const responses = await Promise.allSettled(requests);
|
|
27
|
+
const failedEvents = responses
|
|
28
|
+
.map((response, i) => response.status === 'rejected' ? groupedByStreamName[i][1] : [])
|
|
29
|
+
.flat();
|
|
30
|
+
return resendLimit
|
|
31
|
+
? failedEvents
|
|
32
|
+
.filter(event => event.retryCount < resendLimit)
|
|
33
|
+
.map(event => ({ ...event, retryCount: event.retryCount + 1 }))
|
|
34
|
+
.sort((a, b) => a.timestamp - b.timestamp)
|
|
35
|
+
: [];
|
|
36
|
+
};
|
|
37
|
+
export const getEventBuffer = ({ region, credentials, identityId, bufferSize, flushSize, flushInterval, resendLimit, userAgentValue, }) => {
|
|
38
|
+
const sessionIdentityKey = [region, identityId].filter(id => !!id).join('-');
|
|
39
|
+
if (!eventBufferMap[sessionIdentityKey]) {
|
|
40
|
+
const getClient = () => {
|
|
41
|
+
if (!cachedClients[sessionIdentityKey]) {
|
|
42
|
+
cachedClients[sessionIdentityKey] = new FirehoseClient({
|
|
43
|
+
region,
|
|
44
|
+
credentials,
|
|
45
|
+
customUserAgent: userAgentValue,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const firehoseClient = cachedClients[sessionIdentityKey];
|
|
49
|
+
return events => submitEvents(events, firehoseClient, resendLimit);
|
|
50
|
+
};
|
|
51
|
+
eventBufferMap[sessionIdentityKey] =
|
|
52
|
+
new EventBuffer({
|
|
53
|
+
bufferSize,
|
|
54
|
+
flushSize,
|
|
55
|
+
flushInterval,
|
|
56
|
+
}, getClient);
|
|
57
|
+
const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);
|
|
58
|
+
for (const releaseSessionKey of releaseSessionKeys) {
|
|
59
|
+
eventBufferMap[releaseSessionKey].flushAll().finally(() => {
|
|
60
|
+
eventBufferMap[releaseSessionKey].release();
|
|
61
|
+
delete eventBufferMap[releaseSessionKey];
|
|
62
|
+
delete cachedClients[releaseSessionKey];
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return eventBufferMap[sessionIdentityKey];
|
|
67
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { Amplify } from '@aws-amplify/core';
|
|
4
|
+
import { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';
|
|
5
|
+
import { DEFAULT_KINESIS_FIREHOSE_CONFIG } from './constants';
|
|
6
|
+
export const resolveConfig = () => {
|
|
7
|
+
const config = Amplify.getConfig().Analytics?.KinesisFirehose;
|
|
8
|
+
const { region, bufferSize = DEFAULT_KINESIS_FIREHOSE_CONFIG.bufferSize, flushSize = DEFAULT_KINESIS_FIREHOSE_CONFIG.flushSize, flushInterval = DEFAULT_KINESIS_FIREHOSE_CONFIG.flushInterval, resendLimit, } = {
|
|
9
|
+
...DEFAULT_KINESIS_FIREHOSE_CONFIG,
|
|
10
|
+
...config,
|
|
11
|
+
};
|
|
12
|
+
assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
|
|
13
|
+
assertValidationError(flushSize < bufferSize, AnalyticsValidationErrorCode.InvalidFlushSize);
|
|
14
|
+
return {
|
|
15
|
+
region,
|
|
16
|
+
bufferSize,
|
|
17
|
+
flushSize,
|
|
18
|
+
flushInterval,
|
|
19
|
+
resendLimit,
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flushes all buffered Personalize events to the service.
|
|
3
|
+
*
|
|
4
|
+
* @note
|
|
5
|
+
* This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
|
|
6
|
+
* this API may not be included in the flush.
|
|
7
|
+
*/
|
|
8
|
+
export declare const flushEvents: () => void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { getEventBuffer, resolveConfig } from '../utils';
|
|
4
|
+
import { getAnalyticsUserAgentString, resolveCredentials, } from '../../../utils';
|
|
5
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
6
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
7
|
+
const logger = new ConsoleLogger('Personalize');
|
|
8
|
+
/**
|
|
9
|
+
* Flushes all buffered Personalize events to the service.
|
|
10
|
+
*
|
|
11
|
+
* @note
|
|
12
|
+
* This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
|
|
13
|
+
* this API may not be included in the flush.
|
|
14
|
+
*/
|
|
15
|
+
export const flushEvents = () => {
|
|
16
|
+
const { region, flushSize, bufferSize, flushInterval } = resolveConfig();
|
|
17
|
+
resolveCredentials()
|
|
18
|
+
.then(({ credentials, identityId }) => getEventBuffer({
|
|
19
|
+
region,
|
|
20
|
+
flushSize,
|
|
21
|
+
flushInterval,
|
|
22
|
+
bufferSize,
|
|
23
|
+
credentials,
|
|
24
|
+
identityId,
|
|
25
|
+
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
26
|
+
}))
|
|
27
|
+
.then(eventBuffer => eventBuffer.flushAll())
|
|
28
|
+
.catch(e => logger.warn('Failed to flush events', e));
|
|
29
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { autoTrackMedia, getEventBuffer, resolveCachedSession, resolveConfig, updateCachedSession, } from '../utils';
|
|
4
|
+
import { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';
|
|
5
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
6
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
7
|
+
import { IDENTIFY_EVENT_TYPE, MEDIA_AUTO_TRACK_EVENT_TYPE, } from '../utils/constants';
|
|
8
|
+
const logger = new ConsoleLogger('Personalize');
|
|
9
|
+
export const record = ({ userId, eventId, eventType, properties, }) => {
|
|
10
|
+
if (!isAnalyticsEnabled()) {
|
|
11
|
+
logger.debug('Analytics is disabled, event will not be recorded.');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const { region, trackingId, bufferSize, flushSize, flushInterval } = resolveConfig();
|
|
15
|
+
resolveCredentials()
|
|
16
|
+
.then(async ({ credentials, identityId }) => {
|
|
17
|
+
const timestamp = Date.now();
|
|
18
|
+
const { sessionId: cachedSessionId, userId: cachedUserId } = await resolveCachedSession();
|
|
19
|
+
if (eventType === IDENTIFY_EVENT_TYPE) {
|
|
20
|
+
updateCachedSession(typeof properties.userId === 'string' ? properties.userId : '', cachedSessionId, cachedUserId);
|
|
21
|
+
}
|
|
22
|
+
else if (!!userId) {
|
|
23
|
+
updateCachedSession(userId, cachedSessionId, cachedUserId);
|
|
24
|
+
}
|
|
25
|
+
const { sessionId: updatedSessionId, userId: updatedUserId } = await resolveCachedSession();
|
|
26
|
+
const eventBuffer = getEventBuffer({
|
|
27
|
+
region,
|
|
28
|
+
flushSize,
|
|
29
|
+
flushInterval,
|
|
30
|
+
bufferSize,
|
|
31
|
+
credentials,
|
|
32
|
+
identityId,
|
|
33
|
+
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
34
|
+
});
|
|
35
|
+
if (eventType === MEDIA_AUTO_TRACK_EVENT_TYPE) {
|
|
36
|
+
autoTrackMedia({
|
|
37
|
+
trackingId,
|
|
38
|
+
sessionId: updatedSessionId,
|
|
39
|
+
userId: updatedUserId,
|
|
40
|
+
event: {
|
|
41
|
+
eventId,
|
|
42
|
+
eventType,
|
|
43
|
+
properties,
|
|
44
|
+
},
|
|
45
|
+
}, eventBuffer);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
eventBuffer.append({
|
|
49
|
+
trackingId,
|
|
50
|
+
sessionId: updatedSessionId,
|
|
51
|
+
userId: updatedUserId,
|
|
52
|
+
event: {
|
|
53
|
+
eventId,
|
|
54
|
+
eventType,
|
|
55
|
+
properties,
|
|
56
|
+
},
|
|
57
|
+
timestamp,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (eventBuffer.length >= bufferSize) {
|
|
61
|
+
eventBuffer.flushAll();
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
.catch(e => {
|
|
65
|
+
logger.warn('Failed to record event.', e);
|
|
66
|
+
});
|
|
67
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { record, flushEvents } from './apis';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PersonalizeEvent } from './';
|
|
2
|
+
import { EventBufferConfig } from '../../../utils';
|
|
3
|
+
import { AWSCredentials } from '@aws-amplify/core/internals/utils';
|
|
4
|
+
export type PersonalizeBufferEvent = {
|
|
5
|
+
trackingId: string;
|
|
6
|
+
sessionId?: string;
|
|
7
|
+
userId?: string;
|
|
8
|
+
event: PersonalizeEvent;
|
|
9
|
+
timestamp: number;
|
|
10
|
+
};
|
|
11
|
+
export type PersonalizeBufferConfig = EventBufferConfig & {
|
|
12
|
+
region: string;
|
|
13
|
+
credentials: AWSCredentials;
|
|
14
|
+
identityId?: string;
|
|
15
|
+
userAgentValue?: string;
|
|
16
|
+
};
|