@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,19 @@
|
|
|
1
|
+
import { AmplifyError } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
class AnalyticsError extends AmplifyError {
|
|
9
|
+
constructor(params) {
|
|
10
|
+
super(params);
|
|
11
|
+
// Hack for making the custom error class work when transpiled to es5
|
|
12
|
+
// TODO: Delete the following 2 lines after we change the build target to >= es2015
|
|
13
|
+
this.constructor = AnalyticsError;
|
|
14
|
+
Object.setPrototypeOf(this, AnalyticsError.prototype);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { AnalyticsError };
|
|
19
|
+
//# sourceMappingURL=AnalyticsError.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsError.mjs","sources":["../../../src/errors/AnalyticsError.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyError, } from '@aws-amplify/core/internals/utils';\n/**\n * @internal\n */\nexport class AnalyticsError extends AmplifyError {\n constructor(params) {\n super(params);\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n this.constructor = AnalyticsError;\n Object.setPrototypeOf(this, AnalyticsError.prototype);\n }\n}\n"],"names":[],"mappings":";;AAAA;AACA;AAEA;AACA;AACA;AACO,MAAM,cAAc,SAAS,YAAY,CAAC;AACjD,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,CAAC,MAAM,CAAC;AACrB;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,cAAc;AACzC,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC;AAC7D,IAAI;AACJ;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AnalyticsError } from './AnalyticsError.mjs';
|
|
2
|
+
import { validationErrorMap } from './validation.mjs';
|
|
3
|
+
|
|
4
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
function assertValidationError(assertion, name, message) {
|
|
10
|
+
const { message: defaultMessage, recoverySuggestion } = validationErrorMap[name];
|
|
11
|
+
if (!assertion) {
|
|
12
|
+
throw new AnalyticsError({
|
|
13
|
+
name,
|
|
14
|
+
message: message ?? defaultMessage,
|
|
15
|
+
recoverySuggestion,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { assertValidationError };
|
|
21
|
+
//# sourceMappingURL=assertValidationError.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertValidationError.mjs","sources":["../../../src/errors/assertValidationError.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AnalyticsError } from './AnalyticsError';\nimport { validationErrorMap } from './validation';\n/**\n * @internal\n */\nexport function assertValidationError(assertion, name, message) {\n const { message: defaultMessage, recoverySuggestion } = validationErrorMap[name];\n if (!assertion) {\n throw new AnalyticsError({\n name,\n message: message ?? defaultMessage,\n recoverySuggestion,\n });\n }\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA;AACA;AACA;AACO,SAAS,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;AAChE,IAAI,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC;AACpF,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,QAAQ,MAAM,IAAI,cAAc,CAAC;AACjC,YAAY,IAAI;AAChB,YAAY,OAAO,EAAE,OAAO,IAAI,cAAc;AAC9C,YAAY,kBAAkB;AAC9B,SAAS,CAAC;AACV,IAAI;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AmplifyErrorMap } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
export declare enum AnalyticsValidationErrorCode {
|
|
3
|
+
NoAppId = "NoAppId",
|
|
4
|
+
NoCredentials = "NoCredentials",
|
|
5
|
+
NoEventName = "NoEventName",
|
|
6
|
+
NoRegion = "NoRegion",
|
|
7
|
+
InvalidTracker = "InvalidTracker",
|
|
8
|
+
UnsupportedPlatform = "UnsupportedPlatform",
|
|
9
|
+
NoTrackingId = "NoTrackingId",
|
|
10
|
+
InvalidFlushSize = "InvalidFlushSize"
|
|
11
|
+
}
|
|
12
|
+
export declare const validationErrorMap: AmplifyErrorMap<AnalyticsValidationErrorCode>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
var AnalyticsValidationErrorCode;
|
|
4
|
+
(function (AnalyticsValidationErrorCode) {
|
|
5
|
+
AnalyticsValidationErrorCode["NoAppId"] = "NoAppId";
|
|
6
|
+
AnalyticsValidationErrorCode["NoCredentials"] = "NoCredentials";
|
|
7
|
+
AnalyticsValidationErrorCode["NoEventName"] = "NoEventName";
|
|
8
|
+
AnalyticsValidationErrorCode["NoRegion"] = "NoRegion";
|
|
9
|
+
AnalyticsValidationErrorCode["InvalidTracker"] = "InvalidTracker";
|
|
10
|
+
AnalyticsValidationErrorCode["UnsupportedPlatform"] = "UnsupportedPlatform";
|
|
11
|
+
AnalyticsValidationErrorCode["NoTrackingId"] = "NoTrackingId";
|
|
12
|
+
AnalyticsValidationErrorCode["InvalidFlushSize"] = "InvalidFlushSize";
|
|
13
|
+
})(AnalyticsValidationErrorCode || (AnalyticsValidationErrorCode = {}));
|
|
14
|
+
const validationErrorMap = {
|
|
15
|
+
[AnalyticsValidationErrorCode.NoAppId]: {
|
|
16
|
+
message: 'Missing application id.',
|
|
17
|
+
},
|
|
18
|
+
[AnalyticsValidationErrorCode.NoCredentials]: {
|
|
19
|
+
message: 'Credentials should not be empty.',
|
|
20
|
+
},
|
|
21
|
+
[AnalyticsValidationErrorCode.NoEventName]: {
|
|
22
|
+
message: 'Events must specify a name.',
|
|
23
|
+
},
|
|
24
|
+
[AnalyticsValidationErrorCode.NoRegion]: {
|
|
25
|
+
message: 'Missing region.',
|
|
26
|
+
},
|
|
27
|
+
[AnalyticsValidationErrorCode.InvalidTracker]: {
|
|
28
|
+
message: 'Invalid tracker type specified.',
|
|
29
|
+
},
|
|
30
|
+
[AnalyticsValidationErrorCode.UnsupportedPlatform]: {
|
|
31
|
+
message: 'Only session tracking is supported on React Native.',
|
|
32
|
+
},
|
|
33
|
+
[AnalyticsValidationErrorCode.InvalidFlushSize]: {
|
|
34
|
+
message: 'Invalid FlushSize, it should be smaller than BufferSize',
|
|
35
|
+
},
|
|
36
|
+
[AnalyticsValidationErrorCode.NoTrackingId]: {
|
|
37
|
+
message: 'A trackingId is required to use Amazon Personalize',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { AnalyticsValidationErrorCode, validationErrorMap };
|
|
42
|
+
//# sourceMappingURL=validation.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.mjs","sources":["../../../src/errors/validation.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AnalyticsValidationErrorCode;\n(function (AnalyticsValidationErrorCode) {\n AnalyticsValidationErrorCode[\"NoAppId\"] = \"NoAppId\";\n AnalyticsValidationErrorCode[\"NoCredentials\"] = \"NoCredentials\";\n AnalyticsValidationErrorCode[\"NoEventName\"] = \"NoEventName\";\n AnalyticsValidationErrorCode[\"NoRegion\"] = \"NoRegion\";\n AnalyticsValidationErrorCode[\"InvalidTracker\"] = \"InvalidTracker\";\n AnalyticsValidationErrorCode[\"UnsupportedPlatform\"] = \"UnsupportedPlatform\";\n AnalyticsValidationErrorCode[\"NoTrackingId\"] = \"NoTrackingId\";\n AnalyticsValidationErrorCode[\"InvalidFlushSize\"] = \"InvalidFlushSize\";\n})(AnalyticsValidationErrorCode || (AnalyticsValidationErrorCode = {}));\nexport const validationErrorMap = {\n [AnalyticsValidationErrorCode.NoAppId]: {\n message: 'Missing application id.',\n },\n [AnalyticsValidationErrorCode.NoCredentials]: {\n message: 'Credentials should not be empty.',\n },\n [AnalyticsValidationErrorCode.NoEventName]: {\n message: 'Events must specify a name.',\n },\n [AnalyticsValidationErrorCode.NoRegion]: {\n message: 'Missing region.',\n },\n [AnalyticsValidationErrorCode.InvalidTracker]: {\n message: 'Invalid tracker type specified.',\n },\n [AnalyticsValidationErrorCode.UnsupportedPlatform]: {\n message: 'Only session tracking is supported on React Native.',\n },\n [AnalyticsValidationErrorCode.InvalidFlushSize]: {\n message: 'Invalid FlushSize, it should be smaller than BufferSize',\n },\n [AnalyticsValidationErrorCode.NoTrackingId]: {\n message: 'A trackingId is required to use Amazon Personalize',\n },\n};\n"],"names":[],"mappings":"AAAA;AACA;AACU,IAAC;AACX,CAAC,UAAU,4BAA4B,EAAE;AACzC,IAAI,4BAA4B,CAAC,SAAS,CAAC,GAAG,SAAS;AACvD,IAAI,4BAA4B,CAAC,eAAe,CAAC,GAAG,eAAe;AACnE,IAAI,4BAA4B,CAAC,aAAa,CAAC,GAAG,aAAa;AAC/D,IAAI,4BAA4B,CAAC,UAAU,CAAC,GAAG,UAAU;AACzD,IAAI,4BAA4B,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;AACrE,IAAI,4BAA4B,CAAC,qBAAqB,CAAC,GAAG,qBAAqB;AAC/E,IAAI,4BAA4B,CAAC,cAAc,CAAC,GAAG,cAAc;AACjE,IAAI,4BAA4B,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;AACzE,CAAC,EAAE,4BAA4B,KAAK,4BAA4B,GAAG,EAAE,CAAC,CAAC;AAC3D,MAAC,kBAAkB,GAAG;AAClC,IAAI,CAAC,4BAA4B,CAAC,OAAO,GAAG;AAC5C,QAAQ,OAAO,EAAE,yBAAyB;AAC1C,KAAK;AACL,IAAI,CAAC,4BAA4B,CAAC,aAAa,GAAG;AAClD,QAAQ,OAAO,EAAE,kCAAkC;AACnD,KAAK;AACL,IAAI,CAAC,4BAA4B,CAAC,WAAW,GAAG;AAChD,QAAQ,OAAO,EAAE,6BAA6B;AAC9C,KAAK;AACL,IAAI,CAAC,4BAA4B,CAAC,QAAQ,GAAG;AAC7C,QAAQ,OAAO,EAAE,iBAAiB;AAClC,KAAK;AACL,IAAI,CAAC,4BAA4B,CAAC,cAAc,GAAG;AACnD,QAAQ,OAAO,EAAE,iCAAiC;AAClD,KAAK;AACL,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,GAAG;AACxD,QAAQ,OAAO,EAAE,qDAAqD;AACtE,KAAK;AACL,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,GAAG;AACrD,QAAQ,OAAO,EAAE,yDAAyD;AAC1E,KAAK;AACL,IAAI,CAAC,4BAA4B,CAAC,YAAY,GAAG;AACjD,QAAQ,OAAO,EAAE,oDAAoD;AACrE,KAAK;AACL;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { record } from './providers/pinpoint/apis/record.mjs';
|
|
2
|
+
export { identifyUser } from './providers/pinpoint/apis/identifyUser.mjs';
|
|
3
|
+
export { configureAutoTrack } from './providers/pinpoint/apis/configureAutoTrack.mjs';
|
|
4
|
+
export { flushEvents } from './providers/pinpoint/apis/flushEvents.mjs';
|
|
5
|
+
export { enable } from './apis/enable.mjs';
|
|
6
|
+
export { disable } from './apis/disable.mjs';
|
|
7
|
+
export { AnalyticsError } from './errors/AnalyticsError.mjs';
|
|
8
|
+
import './errors/validation.mjs';
|
|
9
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -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,43 @@
|
|
|
1
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
3
|
+
import { resolveConfig } from '../utils/resolveConfig.mjs';
|
|
4
|
+
import { resolveCredentials } from '../../../utils/resolveCredentials.mjs';
|
|
5
|
+
import '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
6
|
+
import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
|
|
7
|
+
import '../../../trackers/EventTracker.mjs';
|
|
8
|
+
import '../../../trackers/PageViewTracker.mjs';
|
|
9
|
+
import '../../../trackers/SessionTracker.mjs';
|
|
10
|
+
import '../../../errors/validation.mjs';
|
|
11
|
+
import { getEventBuffer } from '../utils/getEventBuffer.mjs';
|
|
12
|
+
|
|
13
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
14
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
const logger = new ConsoleLogger('Kinesis');
|
|
16
|
+
/**
|
|
17
|
+
* Flushes all buffered Kinesis events to the service.
|
|
18
|
+
*
|
|
19
|
+
* @note
|
|
20
|
+
* This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking
|
|
21
|
+
* this API may not be included in the flush.
|
|
22
|
+
*/
|
|
23
|
+
const flushEvents = () => {
|
|
24
|
+
const { region, flushSize, flushInterval, bufferSize, resendLimit } = resolveConfig();
|
|
25
|
+
resolveCredentials()
|
|
26
|
+
.then(({ credentials, identityId }) => getEventBuffer({
|
|
27
|
+
region,
|
|
28
|
+
flushSize,
|
|
29
|
+
flushInterval,
|
|
30
|
+
bufferSize,
|
|
31
|
+
credentials,
|
|
32
|
+
identityId,
|
|
33
|
+
resendLimit,
|
|
34
|
+
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
35
|
+
}))
|
|
36
|
+
.then(eventBuffer => eventBuffer.flushAll())
|
|
37
|
+
.catch(e => {
|
|
38
|
+
logger.warn('Failed to flush events.', e);
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { flushEvents };
|
|
43
|
+
//# sourceMappingURL=flushEvents.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/kinesis/apis/flushEvents.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { resolveConfig } from '../utils/resolveConfig';\nimport { getAnalyticsUserAgentString, resolveCredentials, } from '../../../utils';\nimport { getEventBuffer } from '../utils/getEventBuffer';\nconst logger = new ConsoleLogger('Kinesis');\n/**\n * Flushes all buffered Kinesis events to the service.\n *\n * @note\n * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking\n * this API may not be included in the flush.\n */\nexport const flushEvents = () => {\n const { region, flushSize, flushInterval, bufferSize, resendLimit } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => getEventBuffer({\n region,\n flushSize,\n flushInterval,\n bufferSize,\n credentials,\n identityId,\n resendLimit,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n }))\n .then(eventBuffer => eventBuffer.flushAll())\n .catch(e => {\n logger.warn('Failed to flush events.', e);\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE;AACzF,IAAI,kBAAkB;AACtB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,cAAc,CAAC;AAC9D,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC3E,KAAK,CAAC;AACN,SAAS,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;AACnD,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB,QAAQ,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;AACjD,IAAI,CAAC,CAAC;AACN;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { RecordInput } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Record one analytic event and send it to Kinesis. Events will be buffered and periodically sent to
|
|
4
|
+
* Kinesis.
|
|
5
|
+
*
|
|
6
|
+
* @param params The input object used to construct the request.
|
|
7
|
+
*
|
|
8
|
+
* @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
|
|
9
|
+
* configuration is incorrect.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* record({
|
|
14
|
+
* streamName: 'myKinesisStream',
|
|
15
|
+
* partitionKey: 'myPartitionKey',
|
|
16
|
+
* data: { } // The data blob to put into the record
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
* @param input - The event to record.
|
|
20
|
+
*
|
|
21
|
+
* @returns void
|
|
22
|
+
*/
|
|
23
|
+
export declare const record: ({ streamName, partitionKey, data, }: RecordInput) => void;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { fromUtf8 } from '@smithy/util-utf8';
|
|
2
|
+
import { AnalyticsAction } from '@aws-amplify/core/internals/utils';
|
|
3
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
4
|
+
import { getEventBuffer } from '../utils/getEventBuffer.mjs';
|
|
5
|
+
import { resolveConfig } from '../utils/resolveConfig.mjs';
|
|
6
|
+
import { resolveCredentials } from '../../../utils/resolveCredentials.mjs';
|
|
7
|
+
import '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
8
|
+
import { isAnalyticsEnabled } from '../../../utils/statusHelpers.mjs';
|
|
9
|
+
import { getAnalyticsUserAgentString } from '../../../utils/userAgent.mjs';
|
|
10
|
+
import '../../../trackers/EventTracker.mjs';
|
|
11
|
+
import '../../../trackers/PageViewTracker.mjs';
|
|
12
|
+
import '../../../trackers/SessionTracker.mjs';
|
|
13
|
+
import '../../../errors/validation.mjs';
|
|
14
|
+
|
|
15
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
16
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
const logger = new ConsoleLogger('Kinesis');
|
|
18
|
+
/**
|
|
19
|
+
* Record one analytic event and send it to Kinesis. Events will be buffered and periodically sent to
|
|
20
|
+
* Kinesis.
|
|
21
|
+
*
|
|
22
|
+
* @param params The input object used to construct the request.
|
|
23
|
+
*
|
|
24
|
+
* @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library
|
|
25
|
+
* configuration is incorrect.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* record({
|
|
30
|
+
* streamName: 'myKinesisStream',
|
|
31
|
+
* partitionKey: 'myPartitionKey',
|
|
32
|
+
* data: { } // The data blob to put into the record
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
* @param input - The event to record.
|
|
36
|
+
*
|
|
37
|
+
* @returns void
|
|
38
|
+
*/
|
|
39
|
+
const record = ({ streamName, partitionKey, data, }) => {
|
|
40
|
+
if (!isAnalyticsEnabled()) {
|
|
41
|
+
logger.debug('Analytics is disabled, event will not be recorded.');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const timestamp = Date.now();
|
|
45
|
+
const { region, bufferSize, flushSize, flushInterval, resendLimit } = resolveConfig();
|
|
46
|
+
resolveCredentials()
|
|
47
|
+
.then(({ credentials, identityId }) => {
|
|
48
|
+
const buffer = getEventBuffer({
|
|
49
|
+
region,
|
|
50
|
+
bufferSize,
|
|
51
|
+
flushSize,
|
|
52
|
+
flushInterval,
|
|
53
|
+
credentials,
|
|
54
|
+
identityId,
|
|
55
|
+
resendLimit,
|
|
56
|
+
userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),
|
|
57
|
+
});
|
|
58
|
+
buffer.append({
|
|
59
|
+
region,
|
|
60
|
+
streamName,
|
|
61
|
+
partitionKey,
|
|
62
|
+
event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),
|
|
63
|
+
timestamp,
|
|
64
|
+
retryCount: 0,
|
|
65
|
+
});
|
|
66
|
+
})
|
|
67
|
+
.catch(e => {
|
|
68
|
+
// An error occured while fetching credentials or persisting the event to the buffer
|
|
69
|
+
logger.warn('Failed to record event.', e);
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export { record };
|
|
74
|
+
//# sourceMappingURL=record.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.mjs","sources":["../../../../../src/providers/kinesis/apis/record.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { fromUtf8 } from '@smithy/util-utf8';\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { getEventBuffer } from '../utils/getEventBuffer';\nimport { resolveConfig } from '../utils/resolveConfig';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';\nconst logger = new ConsoleLogger('Kinesis');\n/**\n * Record one analytic event and send it to Kinesis. Events will be buffered and periodically sent to\n * Kinesis.\n *\n * @param params The input object used to construct the request.\n *\n * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library\n * configuration is incorrect.\n *\n * @example\n * ```ts\n * record({\n * streamName: 'myKinesisStream',\n * partitionKey: 'myPartitionKey',\n * data: { } // The data blob to put into the record\n * });\n * ```\n * @param input - The event to record.\n *\n * @returns void\n */\nexport const record = ({ streamName, partitionKey, data, }) => {\n if (!isAnalyticsEnabled()) {\n logger.debug('Analytics is disabled, event will not be recorded.');\n return;\n }\n const timestamp = Date.now();\n const { region, bufferSize, flushSize, flushInterval, resendLimit } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => {\n const buffer = getEventBuffer({\n region,\n bufferSize,\n flushSize,\n flushInterval,\n credentials,\n identityId,\n resendLimit,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n buffer.append({\n region,\n streamName,\n partitionKey,\n event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),\n timestamp,\n retryCount: 0,\n });\n })\n .catch(e => {\n // An error occured while fetching credentials or persisting the event to the buffer\n logger.warn('Failed to record event.', e);\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAOA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,GAAG,KAAK;AAC/D,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC;AAC1E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AAChC,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE;AACzF,IAAI,kBAAkB;AACtB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AAC/C,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC;AACtC,YAAY,MAAM;AAClB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC/E,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC;AACtB,YAAY,MAAM;AAClB,YAAY,UAAU;AACtB,YAAY,YAAY;AACxB,YAAY,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACnF,YAAY,SAAS;AACrB,YAAY,UAAU,EAAE,CAAC;AACzB,SAAS,CAAC;AACV,IAAI,CAAC;AACL,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;AACjD,IAAI,CAAC,CAAC;AACN;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { record, flushEvents } from './apis';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"buffer.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputs.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
const DEFAULT_KINESIS_CONFIG = {
|
|
4
|
+
bufferSize: 1000,
|
|
5
|
+
flushSize: 100,
|
|
6
|
+
flushInterval: 5000,
|
|
7
|
+
resendLimit: 5,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { DEFAULT_KINESIS_CONFIG };
|
|
11
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../../../src/providers/kinesis/utils/constants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const DEFAULT_KINESIS_CONFIG = {\n bufferSize: 1000,\n flushSize: 100,\n flushInterval: 5000,\n resendLimit: 5,\n};\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,sBAAsB,GAAG;AACtC,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,GAAG;AAClB,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,WAAW,EAAE,CAAC;AAClB;;;;"}
|
|
@@ -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,89 @@
|
|
|
1
|
+
import { haveCredentialsChanged } from '@aws-amplify/core/internals/utils';
|
|
2
|
+
import { KinesisClient, PutRecordsCommand } from '@aws-sdk/client-kinesis';
|
|
3
|
+
import '@aws-amplify/core';
|
|
4
|
+
import '../../../errors/validation.mjs';
|
|
5
|
+
import { groupBy } from '../../../utils/groupBy.mjs';
|
|
6
|
+
import { EventBuffer } from '../../../utils/eventBuffer/EventBuffer.mjs';
|
|
7
|
+
import '../../../trackers/EventTracker.mjs';
|
|
8
|
+
import '../../../trackers/PageViewTracker.mjs';
|
|
9
|
+
import '../../../trackers/SessionTracker.mjs';
|
|
10
|
+
|
|
11
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
12
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
13
|
+
/**
|
|
14
|
+
* These Records hold cached event buffers and AWS clients.
|
|
15
|
+
* The hash key is determined by the region and session,
|
|
16
|
+
* consisting of a combined value comprising [region, sessionToken, identityId].
|
|
17
|
+
*
|
|
18
|
+
* Only one active session should exist at any given moment.
|
|
19
|
+
* When a new session is initiated, the previous ones should be released.
|
|
20
|
+
* */
|
|
21
|
+
const eventBufferMap = {};
|
|
22
|
+
const cachedClients = {};
|
|
23
|
+
const createKinesisPutRecordsCommand = (streamName, events) => new PutRecordsCommand({
|
|
24
|
+
StreamName: streamName,
|
|
25
|
+
Records: events.map(event => ({
|
|
26
|
+
PartitionKey: event.partitionKey,
|
|
27
|
+
Data: event.event,
|
|
28
|
+
})),
|
|
29
|
+
});
|
|
30
|
+
const submitEvents = async (events, client, resendLimit) => {
|
|
31
|
+
const groupedByStreamName = Object.entries(groupBy(event => event.streamName, events));
|
|
32
|
+
const requests = groupedByStreamName
|
|
33
|
+
.map(([streamName, groupedEvents]) => createKinesisPutRecordsCommand(streamName, groupedEvents))
|
|
34
|
+
.map(command => client.send(command));
|
|
35
|
+
const responses = await Promise.allSettled(requests);
|
|
36
|
+
const failedEvents = responses
|
|
37
|
+
.map((response, i) => response.status === 'rejected' ? groupedByStreamName[i][1] : [])
|
|
38
|
+
.flat();
|
|
39
|
+
return resendLimit
|
|
40
|
+
? failedEvents
|
|
41
|
+
.filter(event => event.retryCount < resendLimit)
|
|
42
|
+
.map(event => ({ ...event, retryCount: event.retryCount + 1 }))
|
|
43
|
+
.sort((a, b) => a.timestamp - b.timestamp)
|
|
44
|
+
: [];
|
|
45
|
+
};
|
|
46
|
+
const getEventBuffer = ({ region, flushInterval, flushSize, bufferSize, credentials, identityId, resendLimit, userAgentValue, }) => {
|
|
47
|
+
const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');
|
|
48
|
+
const [cachedClient, cachedCredentials] = cachedClients[sessionIdentityKey] ?? [];
|
|
49
|
+
let credentialsHaveChanged = false;
|
|
50
|
+
// Check if credentials have changed for the cached client
|
|
51
|
+
if (cachedClient) {
|
|
52
|
+
credentialsHaveChanged = haveCredentialsChanged(cachedCredentials, credentials);
|
|
53
|
+
}
|
|
54
|
+
if (!eventBufferMap[sessionIdentityKey] || credentialsHaveChanged) {
|
|
55
|
+
const getKinesisClient = () => {
|
|
56
|
+
if (!cachedClient || credentialsHaveChanged) {
|
|
57
|
+
cachedClients[sessionIdentityKey] = [
|
|
58
|
+
new KinesisClient({
|
|
59
|
+
credentials,
|
|
60
|
+
region,
|
|
61
|
+
customUserAgent: userAgentValue,
|
|
62
|
+
}),
|
|
63
|
+
credentials,
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
const [kinesisClient] = cachedClients[sessionIdentityKey];
|
|
67
|
+
return events => submitEvents(events, kinesisClient, resendLimit);
|
|
68
|
+
};
|
|
69
|
+
// create new session
|
|
70
|
+
eventBufferMap[sessionIdentityKey] = new EventBuffer({
|
|
71
|
+
flushInterval,
|
|
72
|
+
flushSize,
|
|
73
|
+
bufferSize,
|
|
74
|
+
}, getKinesisClient);
|
|
75
|
+
// release other sessions
|
|
76
|
+
const releaseSessionKeys = Object.keys(eventBufferMap).filter(x => x !== sessionIdentityKey);
|
|
77
|
+
for (const releaseSessionKey of releaseSessionKeys) {
|
|
78
|
+
eventBufferMap[releaseSessionKey].flushAll().finally(() => {
|
|
79
|
+
eventBufferMap[releaseSessionKey].release();
|
|
80
|
+
delete eventBufferMap[releaseSessionKey];
|
|
81
|
+
delete cachedClients[releaseSessionKey];
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return eventBufferMap[sessionIdentityKey];
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export { getEventBuffer };
|
|
89
|
+
//# sourceMappingURL=getEventBuffer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/kinesis/utils/getEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { haveCredentialsChanged, } from '@aws-amplify/core/internals/utils';\nimport { KinesisClient, PutRecordsCommand } from '@aws-sdk/client-kinesis';\nimport { EventBuffer, groupBy } from '../../../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 createKinesisPutRecordsCommand = (streamName, events) => new PutRecordsCommand({\n StreamName: streamName,\n Records: events.map(event => ({\n PartitionKey: event.partitionKey,\n Data: event.event,\n })),\n});\nconst submitEvents = async (events, client, resendLimit) => {\n const groupedByStreamName = Object.entries(groupBy(event => event.streamName, events));\n const requests = groupedByStreamName\n .map(([streamName, groupedEvents]) => createKinesisPutRecordsCommand(streamName, groupedEvents))\n .map(command => client.send(command));\n const responses = await Promise.allSettled(requests);\n const failedEvents = responses\n .map((response, i) => response.status === 'rejected' ? groupedByStreamName[i][1] : [])\n .flat();\n return resendLimit\n ? failedEvents\n .filter(event => event.retryCount < resendLimit)\n .map(event => ({ ...event, retryCount: event.retryCount + 1 }))\n .sort((a, b) => a.timestamp - b.timestamp)\n : [];\n};\nexport const getEventBuffer = ({ region, flushInterval, flushSize, bufferSize, credentials, identityId, resendLimit, 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 = haveCredentialsChanged(cachedCredentials, credentials);\n }\n if (!eventBufferMap[sessionIdentityKey] || credentialsHaveChanged) {\n const getKinesisClient = () => {\n if (!cachedClient || credentialsHaveChanged) {\n cachedClients[sessionIdentityKey] = [\n new KinesisClient({\n credentials,\n region,\n customUserAgent: userAgentValue,\n }),\n credentials,\n ];\n }\n const [kinesisClient] = cachedClients[sessionIdentityKey];\n return events => submitEvents(events, kinesisClient, resendLimit);\n };\n // create new session\n eventBufferMap[sessionIdentityKey] = new EventBuffer({\n flushInterval,\n flushSize,\n bufferSize,\n }, getKinesisClient);\n // release other sessions\n const releaseSessionKeys = Object.keys(eventBufferMap).filter(x => x !== sessionIdentityKey);\n for (const releaseSessionKey of releaseSessionKeys) {\n eventBufferMap[releaseSessionKey].flushAll().finally(() => {\n eventBufferMap[releaseSessionKey].release();\n delete eventBufferMap[releaseSessionKey];\n delete cachedClients[releaseSessionKey];\n });\n }\n }\n return eventBufferMap[sessionIdentityKey];\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Amplify } from '@aws-amplify/core';
|
|
2
|
+
import '@aws-amplify/core/internals/utils';
|
|
3
|
+
import { assertValidationError } from '../../../errors/assertValidationError.mjs';
|
|
4
|
+
import { AnalyticsValidationErrorCode } from '../../../errors/validation.mjs';
|
|
5
|
+
import { DEFAULT_KINESIS_CONFIG } from './constants.mjs';
|
|
6
|
+
|
|
7
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
8
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
const resolveConfig = () => {
|
|
10
|
+
const config = Amplify.getConfig().Analytics?.Kinesis;
|
|
11
|
+
const { region, bufferSize = DEFAULT_KINESIS_CONFIG.bufferSize, flushSize = DEFAULT_KINESIS_CONFIG.flushSize, flushInterval = DEFAULT_KINESIS_CONFIG.flushInterval, resendLimit, } = {
|
|
12
|
+
...DEFAULT_KINESIS_CONFIG,
|
|
13
|
+
...config,
|
|
14
|
+
};
|
|
15
|
+
assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);
|
|
16
|
+
assertValidationError(flushSize < bufferSize, AnalyticsValidationErrorCode.InvalidFlushSize);
|
|
17
|
+
return {
|
|
18
|
+
region,
|
|
19
|
+
bufferSize,
|
|
20
|
+
flushSize,
|
|
21
|
+
flushInterval,
|
|
22
|
+
resendLimit,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { resolveConfig };
|
|
27
|
+
//# sourceMappingURL=resolveConfig.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveConfig.mjs","sources":["../../../../../src/providers/kinesis/utils/resolveConfig.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AnalyticsValidationErrorCode, assertValidationError, } from '../../../errors';\nimport { DEFAULT_KINESIS_CONFIG } from './constants';\nexport const resolveConfig = () => {\n const config = Amplify.getConfig().Analytics?.Kinesis;\n const { region, bufferSize = DEFAULT_KINESIS_CONFIG.bufferSize, flushSize = DEFAULT_KINESIS_CONFIG.flushSize, flushInterval = DEFAULT_KINESIS_CONFIG.flushInterval, resendLimit, } = {\n ...DEFAULT_KINESIS_CONFIG,\n ...config,\n };\n assertValidationError(!!region, AnalyticsValidationErrorCode.NoRegion);\n assertValidationError(flushSize < bufferSize, AnalyticsValidationErrorCode.InvalidFlushSize);\n return {\n region,\n bufferSize,\n flushSize,\n flushInterval,\n resendLimit,\n };\n};\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AAIY,MAAC,aAAa,GAAG,MAAM;AACnC,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO;AACzD,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,sBAAsB,CAAC,UAAU,EAAE,SAAS,GAAG,sBAAsB,CAAC,SAAS,EAAE,aAAa,GAAG,sBAAsB,CAAC,aAAa,EAAE,WAAW,GAAG,GAAG;AACzL,QAAQ,GAAG,sBAAsB;AACjC,QAAQ,GAAG,MAAM;AACjB,KAAK;AACL,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC;AAC1E,IAAI,qBAAqB,CAAC,SAAS,GAAG,UAAU,EAAE,4BAA4B,CAAC,gBAAgB,CAAC;AAChG,IAAI,OAAO;AACX,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,SAAS;AACjB,QAAQ,aAAa;AACrB,QAAQ,WAAW;AACnB,KAAK;AACL;;;;"}
|
|
@@ -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;
|