@aws-amplify/analytics 7.0.85-unstable.e5a8569.0 → 7.0.85
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/dist/cjs/apis/index.js.map +1 -1
- package/dist/cjs/errors/AnalyticsError.js.map +1 -1
- package/dist/cjs/errors/assertValidationError.js.map +1 -1
- package/dist/cjs/errors/index.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/kinesis/apis/flushEvents.js.map +1 -1
- package/dist/cjs/providers/kinesis/apis/index.js.map +1 -1
- package/dist/cjs/providers/kinesis/apis/record.js.map +1 -1
- package/dist/cjs/providers/kinesis/index.js.map +1 -1
- package/dist/cjs/providers/kinesis/utils/getEventBuffer.js.map +1 -1
- package/dist/cjs/providers/kinesis-firehose/apis/flushEvents.js.map +1 -1
- package/dist/cjs/providers/kinesis-firehose/apis/index.js.map +1 -1
- package/dist/cjs/providers/kinesis-firehose/apis/record.js.map +1 -1
- package/dist/cjs/providers/kinesis-firehose/index.js.map +1 -1
- package/dist/cjs/providers/kinesis-firehose/utils/getEventBuffer.js.map +1 -1
- package/dist/cjs/providers/kinesis-firehose/utils/index.js.map +1 -1
- package/dist/cjs/providers/personalize/apis/flushEvents.js.map +1 -1
- package/dist/cjs/providers/personalize/apis/index.js.map +1 -1
- package/dist/cjs/providers/personalize/apis/record.js.map +1 -1
- package/dist/cjs/providers/personalize/index.js.map +1 -1
- package/dist/cjs/providers/personalize/utils/autoTrackMedia.js.map +1 -1
- package/dist/cjs/providers/personalize/utils/cachedSession.js.map +1 -1
- package/dist/cjs/providers/personalize/utils/getEventBuffer.js.map +1 -1
- package/dist/cjs/providers/personalize/utils/index.js.map +1 -1
- package/dist/cjs/providers/pinpoint/apis/flushEvents.js.map +1 -1
- package/dist/cjs/providers/pinpoint/apis/index.js.map +1 -1
- package/dist/cjs/providers/pinpoint/apis/record.js.map +1 -1
- package/dist/cjs/providers/pinpoint/index.js.map +1 -1
- package/dist/cjs/providers/pinpoint/utils/index.js.map +1 -1
- package/dist/cjs/trackers/EventTracker.js.map +1 -1
- package/dist/cjs/trackers/PageViewTracker.js.map +1 -1
- package/dist/cjs/trackers/SessionTracker.js.map +1 -1
- package/dist/cjs/trackers/SessionTracker.native.js.map +1 -1
- package/dist/cjs/trackers/index.js.map +1 -1
- package/dist/cjs/utils/eventBuffer/EventBuffer.js.map +1 -1
- package/dist/cjs/utils/eventBuffer/index.js.map +1 -1
- package/dist/cjs/utils/groupBy.js.map +1 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/trackerHelpers.js.map +1 -1
- package/dist/esm/errors/AnalyticsError.mjs.map +1 -1
- package/dist/esm/errors/assertValidationError.mjs.map +1 -1
- package/dist/esm/providers/kinesis/apis/flushEvents.mjs.map +1 -1
- package/dist/esm/providers/kinesis/apis/record.mjs.map +1 -1
- package/dist/esm/providers/kinesis/utils/getEventBuffer.mjs.map +1 -1
- package/dist/esm/providers/kinesis-firehose/apis/flushEvents.mjs.map +1 -1
- package/dist/esm/providers/kinesis-firehose/apis/record.mjs.map +1 -1
- package/dist/esm/providers/kinesis-firehose/utils/getEventBuffer.mjs.map +1 -1
- package/dist/esm/providers/personalize/apis/flushEvents.mjs.map +1 -1
- package/dist/esm/providers/personalize/apis/record.mjs.map +1 -1
- package/dist/esm/providers/personalize/utils/autoTrackMedia.mjs.map +1 -1
- package/dist/esm/providers/personalize/utils/cachedSession.mjs.map +1 -1
- package/dist/esm/providers/personalize/utils/getEventBuffer.mjs.map +1 -1
- package/dist/esm/providers/pinpoint/apis/flushEvents.mjs.map +1 -1
- package/dist/esm/providers/pinpoint/apis/record.mjs.map +1 -1
- package/dist/esm/trackers/EventTracker.mjs.map +1 -1
- package/dist/esm/trackers/PageViewTracker.mjs.map +1 -1
- package/dist/esm/trackers/SessionTracker.mjs.map +1 -1
- package/dist/esm/trackers/SessionTracker.native.mjs.map +1 -1
- package/dist/esm/utils/eventBuffer/EventBuffer.mjs.map +1 -1
- package/dist/esm/utils/groupBy.mjs.map +1 -1
- package/dist/esm/utils/trackerHelpers.mjs.map +1 -1
- package/package.json +109 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventTracker.js","sources":["../../../src/trackers/EventTracker.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventTracker = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst DEFAULT_EVENTS = ['click'];\nconst DEFAULT_SELECTOR_PREFIX = 'data-amplify-analytics-';\nconst DEFAULT_EVENT_NAME = 'event'; // Default event name as sent to the analytics provider\nconst logger = new core_1.ConsoleLogger('EventTracker');\nclass EventTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.trackerActive = false;\n this.eventRecorder = eventRecorder;\n this.handleDocEvent = this.handleDocEvent.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? undefined,\n events: options?.events ?? DEFAULT_EVENTS,\n selectorPrefix: options?.selectorPrefix ?? DEFAULT_SELECTOR_PREFIX,\n };\n // Register event listeners\n if ((0, utils_1.isBrowser)()) {\n this.options.events?.forEach(targetEvent => {\n document.addEventListener(targetEvent, this.handleDocEvent, {\n capture: true,\n });\n });\n this.trackerActive = true;\n }\n }\n cleanup() {\n // No-op if document listener is not active\n if (!this.trackerActive) {\n return;\n }\n // Clean up event listeners\n this.options.events?.forEach(targetEvent => {\n document.removeEventListener(targetEvent, this.handleDocEvent, {\n capture: true,\n });\n });\n }\n handleDocEvent(event) {\n /**\n * Example DOM element:\n *\n * ```\n * <button\n * data-amplify-analytics-on=\"click\"\n * data-amplify-analytics-name=\"click\"\n * data-amplify-analytics-attrs=\"attr1:attr1_value,attr2:attr2_value\"\n * />\n * ```\n */\n const triggerSelector = `[${this.options.selectorPrefix}on]`;\n const attrSelector = `${this.options.selectorPrefix}attrs`;\n const eventNameSelector = `${this.options.selectorPrefix}name`;\n const eventSource = event.target;\n // Validate that the triggering event type is being tracked\n if (!this.options.events?.includes(event.type)) {\n return;\n }\n if (eventSource instanceof HTMLElement) {\n const target = eventSource.closest(triggerSelector);\n if (target) {\n // Parse event name from the element\n const eventName = target.getAttribute(eventNameSelector) || DEFAULT_EVENT_NAME;\n // Parse attributes from the element\n const elementAttributes = {};\n const rawElementAttributes = target.getAttribute(attrSelector);\n rawElementAttributes?.split(/\\s*,\\s*/).forEach(attr => {\n const tmp = attr.trim().split(/\\s*:\\s*/);\n elementAttributes[tmp[0]] = tmp[1];\n });\n // Assemble final list of attributes\n const attributes = Object.assign({\n type: event.type,\n target: `${target.localName} with id ${target.id}`,\n }, this.options.attributes, elementAttributes);\n logger.debug('Recording automatically tracked DOM event', {\n eventName,\n attributes,\n });\n this.eventRecorder(eventName, attributes);\n }\n }\n }\n}\nexports.EventTracker = EventTracker;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,YAAY,GAAG,MAAM;AAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC;AAC5D,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC;AAChC,MAAM,uBAAuB,GAAG,yBAAyB;AACzD,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACnC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;AACvD,MAAM,YAAY,CAAC;AACnB,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK;AAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5D,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;AAC9C;
|
|
1
|
+
{"version":3,"file":"EventTracker.js","sources":["../../../src/trackers/EventTracker.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventTracker = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst DEFAULT_EVENTS = ['click'];\nconst DEFAULT_SELECTOR_PREFIX = 'data-amplify-analytics-';\nconst DEFAULT_EVENT_NAME = 'event'; // Default event name as sent to the analytics provider\nconst logger = new core_1.ConsoleLogger('EventTracker');\nclass EventTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.trackerActive = false;\n this.eventRecorder = eventRecorder;\n this.handleDocEvent = this.handleDocEvent.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? undefined,\n events: options?.events ?? DEFAULT_EVENTS,\n selectorPrefix: options?.selectorPrefix ?? DEFAULT_SELECTOR_PREFIX,\n };\n // Register event listeners\n if ((0, utils_1.isBrowser)()) {\n this.options.events?.forEach(targetEvent => {\n document.addEventListener(targetEvent, this.handleDocEvent, {\n capture: true,\n });\n });\n this.trackerActive = true;\n }\n }\n cleanup() {\n // No-op if document listener is not active\n if (!this.trackerActive) {\n return;\n }\n // Clean up event listeners\n this.options.events?.forEach(targetEvent => {\n document.removeEventListener(targetEvent, this.handleDocEvent, {\n capture: true,\n });\n });\n }\n handleDocEvent(event) {\n /**\n * Example DOM element:\n *\n * ```\n * <button\n * data-amplify-analytics-on=\"click\"\n * data-amplify-analytics-name=\"click\"\n * data-amplify-analytics-attrs=\"attr1:attr1_value,attr2:attr2_value\"\n * />\n * ```\n */\n const triggerSelector = `[${this.options.selectorPrefix}on]`;\n const attrSelector = `${this.options.selectorPrefix}attrs`;\n const eventNameSelector = `${this.options.selectorPrefix}name`;\n const eventSource = event.target;\n // Validate that the triggering event type is being tracked\n if (!this.options.events?.includes(event.type)) {\n return;\n }\n if (eventSource instanceof HTMLElement) {\n const target = eventSource.closest(triggerSelector);\n if (target) {\n // Parse event name from the element\n const eventName = target.getAttribute(eventNameSelector) || DEFAULT_EVENT_NAME;\n // Parse attributes from the element\n const elementAttributes = {};\n const rawElementAttributes = target.getAttribute(attrSelector);\n rawElementAttributes?.split(/\\s*,\\s*/).forEach(attr => {\n const tmp = attr.trim().split(/\\s*:\\s*/);\n elementAttributes[tmp[0]] = tmp[1];\n });\n // Assemble final list of attributes\n const attributes = Object.assign({\n type: event.type,\n target: `${target.localName} with id ${target.id}`,\n }, this.options.attributes, elementAttributes);\n logger.debug('Recording automatically tracked DOM event', {\n eventName,\n attributes,\n });\n this.eventRecorder(eventName, attributes);\n }\n }\n }\n}\nexports.EventTracker = EventTracker;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageViewTracker.js","sources":["../../../src/trackers/PageViewTracker.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PageViewTracker = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst logger = new core_1.ConsoleLogger('PageViewTracker');\nconst DEFAULT_EVENT_NAME = 'pageView';\nconst DEFAULT_APP_TYPE = 'singlePage';\nconst DEFAULT_URL_PROVIDER = () => {\n return window.location.origin + window.location.pathname;\n};\nconst PREV_URL_STORAGE_KEY = 'aws-amplify-analytics-prevUrl';\nclass PageViewTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.trackerActive = true;\n this.eventRecorder = eventRecorder;\n this.spaTrackingActive = false;\n this.handleLocationChange = this.handleLocationChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n appType: options?.appType ?? DEFAULT_APP_TYPE,\n attributes: options?.attributes ?? undefined,\n eventName: this.options?.eventName ?? DEFAULT_EVENT_NAME,\n urlProvider: this.options?.urlProvider ?? DEFAULT_URL_PROVIDER,\n };\n // Configure SPA or MPA page view tracking\n if ((0, utils_1.isBrowser)()) {\n if (this.options.appType === 'singlePage') {\n this.setupSPATracking();\n }\n else {\n this.setupMPATracking();\n }\n this.trackerActive = true;\n }\n }\n cleanup() {\n // No-op if document listener is not active\n if (!this.trackerActive) {\n return;\n }\n // Clean up SPA page view listeners\n if (this.spaTrackingActive) {\n window.history.pushState = this.originalPushState;\n window.history.replaceState = this.originalReplaceState;\n this.pushStateProxy?.revoke();\n this.replaceStateProxy?.revoke();\n window.removeEventListener('popstate', this.handleLocationChange);\n this.spaTrackingActive = false;\n }\n }\n setupSPATracking() {\n if (!this.spaTrackingActive) {\n // Configure proxies on History APIs\n this.pushStateProxy = Proxy.revocable(window.history.pushState, {\n apply: (target, thisArg, args) => {\n target.apply(thisArg, args);\n this.handleLocationChange();\n },\n });\n this.replaceStateProxy = Proxy.revocable(window.history.replaceState, {\n apply: (target, thisArg, args) => {\n target.apply(thisArg, args);\n this.handleLocationChange();\n },\n });\n this.originalPushState = window.history.pushState;\n this.originalReplaceState = window.history.replaceState;\n window.history.pushState = this.pushStateProxy.proxy;\n window.history.replaceState = this.replaceStateProxy.proxy;\n window.addEventListener('popstate', this.handleLocationChange);\n sessionStorage.removeItem(PREV_URL_STORAGE_KEY);\n this.spaTrackingActive = true;\n }\n }\n setupMPATracking() {\n this.handleLocationChange();\n }\n handleLocationChange() {\n const currentUrl = this.options.urlProvider();\n const eventName = this.options.eventName || DEFAULT_EVENT_NAME;\n if (this.urlHasChanged()) {\n sessionStorage.setItem(PREV_URL_STORAGE_KEY, currentUrl);\n // Assemble attribute list\n const attributes = Object.assign({\n url: currentUrl,\n }, this.options.attributes);\n logger.debug('Recording automatically tracked page view event', {\n eventName,\n attributes,\n });\n this.eventRecorder(eventName, attributes);\n }\n }\n urlHasChanged() {\n const prevUrl = sessionStorage.getItem(PREV_URL_STORAGE_KEY);\n const currUrl = this.options.urlProvider();\n return currUrl !== prevUrl;\n }\n}\nexports.PageViewTracker = PageViewTracker;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,eAAe,GAAG,MAAM;AAChC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC;AAC5D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC;AAC1D,MAAM,kBAAkB,GAAG,UAAU;AACrC,MAAM,gBAAgB,GAAG,YAAY;AACrC,MAAM,oBAAoB,GAAG,MAAM;AACnC,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;AAC5D,CAAC;AACD,MAAM,oBAAoB,GAAG,+BAA+B;AAC5D,MAAM,eAAe,CAAC;AACtB,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACtC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;AACxE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;AAC9C;
|
|
1
|
+
{"version":3,"file":"PageViewTracker.js","sources":["../../../src/trackers/PageViewTracker.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PageViewTracker = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst logger = new core_1.ConsoleLogger('PageViewTracker');\nconst DEFAULT_EVENT_NAME = 'pageView';\nconst DEFAULT_APP_TYPE = 'singlePage';\nconst DEFAULT_URL_PROVIDER = () => {\n return window.location.origin + window.location.pathname;\n};\nconst PREV_URL_STORAGE_KEY = 'aws-amplify-analytics-prevUrl';\nclass PageViewTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.trackerActive = true;\n this.eventRecorder = eventRecorder;\n this.spaTrackingActive = false;\n this.handleLocationChange = this.handleLocationChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n appType: options?.appType ?? DEFAULT_APP_TYPE,\n attributes: options?.attributes ?? undefined,\n eventName: this.options?.eventName ?? DEFAULT_EVENT_NAME,\n urlProvider: this.options?.urlProvider ?? DEFAULT_URL_PROVIDER,\n };\n // Configure SPA or MPA page view tracking\n if ((0, utils_1.isBrowser)()) {\n if (this.options.appType === 'singlePage') {\n this.setupSPATracking();\n }\n else {\n this.setupMPATracking();\n }\n this.trackerActive = true;\n }\n }\n cleanup() {\n // No-op if document listener is not active\n if (!this.trackerActive) {\n return;\n }\n // Clean up SPA page view listeners\n if (this.spaTrackingActive) {\n window.history.pushState = this.originalPushState;\n window.history.replaceState = this.originalReplaceState;\n this.pushStateProxy?.revoke();\n this.replaceStateProxy?.revoke();\n window.removeEventListener('popstate', this.handleLocationChange);\n this.spaTrackingActive = false;\n }\n }\n setupSPATracking() {\n if (!this.spaTrackingActive) {\n // Configure proxies on History APIs\n this.pushStateProxy = Proxy.revocable(window.history.pushState, {\n apply: (target, thisArg, args) => {\n target.apply(thisArg, args);\n this.handleLocationChange();\n },\n });\n this.replaceStateProxy = Proxy.revocable(window.history.replaceState, {\n apply: (target, thisArg, args) => {\n target.apply(thisArg, args);\n this.handleLocationChange();\n },\n });\n this.originalPushState = window.history.pushState;\n this.originalReplaceState = window.history.replaceState;\n window.history.pushState = this.pushStateProxy.proxy;\n window.history.replaceState = this.replaceStateProxy.proxy;\n window.addEventListener('popstate', this.handleLocationChange);\n sessionStorage.removeItem(PREV_URL_STORAGE_KEY);\n this.spaTrackingActive = true;\n }\n }\n setupMPATracking() {\n this.handleLocationChange();\n }\n handleLocationChange() {\n const currentUrl = this.options.urlProvider();\n const eventName = this.options.eventName || DEFAULT_EVENT_NAME;\n if (this.urlHasChanged()) {\n sessionStorage.setItem(PREV_URL_STORAGE_KEY, currentUrl);\n // Assemble attribute list\n const attributes = Object.assign({\n url: currentUrl,\n }, this.options.attributes);\n logger.debug('Recording automatically tracked page view event', {\n eventName,\n attributes,\n });\n this.eventRecorder(eventName, attributes);\n }\n }\n urlHasChanged() {\n const prevUrl = sessionStorage.getItem(PREV_URL_STORAGE_KEY);\n const currUrl = this.options.urlProvider();\n return currUrl !== prevUrl;\n }\n}\nexports.PageViewTracker = PageViewTracker;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,eAAe,GAAG,MAAM;AAChC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC;AAC5D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC;AAC1D,MAAM,kBAAkB,GAAG,UAAU;AACrC,MAAM,gBAAgB,GAAG,YAAY;AACrC,MAAM,oBAAoB,GAAG,MAAM;AACnC,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;AAC5D,CAAC;AACD,MAAM,oBAAoB,GAAG,+BAA+B;AAC5D,MAAM,eAAe,CAAC;AACtB,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACtC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;AACxE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;AAC9C,IAAI;AACJ,IAAI,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C;AACA,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,gBAAgB;AACzD,YAAY,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,SAAS;AACxD,YAAY,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,kBAAkB;AACpE,YAAY,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,oBAAoB;AAC1E,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE;AACtC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,YAAY,EAAE;AACvD,gBAAgB,IAAI,CAAC,gBAAgB,EAAE;AACvC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,gBAAgB,EAAE;AACvC,YAAY;AACZ,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI;AACrC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpC,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB;AAC7D,YAAY,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB;AACnE,YAAY,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;AACzC,YAAY,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;AAC5C,YAAY,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAC7E,YAAY,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACrC;AACA,YAAY,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;AAC5E,gBAAgB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK;AAClD,oBAAoB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AAC/C,oBAAoB,IAAI,CAAC,oBAAoB,EAAE;AAC/C,gBAAgB,CAAC;AACjB,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;AAClF,gBAAgB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK;AAClD,oBAAoB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AAC/C,oBAAoB,IAAI,CAAC,oBAAoB,EAAE;AAC/C,gBAAgB,CAAC;AACjB,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS;AAC7D,YAAY,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY;AACnE,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;AAChE,YAAY,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACtE,YAAY,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAC1E,YAAY,cAAc,CAAC,UAAU,CAAC,oBAAoB,CAAC;AAC3D,YAAY,IAAI,CAAC,iBAAiB,GAAG,IAAI;AACzC,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,oBAAoB,EAAE;AACnC,IAAI;AACJ,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACrD,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,kBAAkB;AACtE,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,YAAY,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,UAAU,CAAC;AACpE;AACA,YAAY,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7C,gBAAgB,GAAG,EAAE,UAAU;AAC/B,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACvC,YAAY,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AAC5E,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC;AACrD,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACpE,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAClD,QAAQ,OAAO,OAAO,KAAK,OAAO;AAClC,IAAI;AACJ;AACA,OAAO,CAAC,eAAe,GAAG,eAAe;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionTracker.js","sources":["../../../src/trackers/SessionTracker.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionTracker = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst logger = new core_1.ConsoleLogger('SessionTracker');\nclass SessionTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.eventRecorder = eventRecorder;\n this.sessionTrackingActive = false;\n this.initialEventSent = false;\n this.handleStateChange = this.handleStateChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? {},\n };\n // Setup state listeners\n if (!this.sessionTrackingActive) {\n utils_1.sessionListener.addStateChangeListener(this.handleStateChange, !this.initialEventSent);\n this.sessionTrackingActive = true;\n }\n }\n cleanup() {\n if (this.sessionTrackingActive) {\n utils_1.sessionListener.removeStateChangeListener(this.handleStateChange);\n }\n this.sessionTrackingActive = false;\n }\n handleStateChange(state) {\n if (state === 'started') {\n this.sessionStarted();\n }\n else {\n this.sessionStopped();\n }\n }\n sessionStarted() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_START_EVENT: utils_1.SESSION_START_EVENT,\n attributes,\n });\n this.eventRecorder(utils_1.SESSION_START_EVENT, attributes);\n // NOTE: The initial event will not be re-sent on re-configuration (e.g. to add additional custom attributes)\n if (!this.initialEventSent) {\n this.initialEventSent = true;\n }\n }\n sessionStopped() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_STOP_EVENT: utils_1.SESSION_STOP_EVENT,\n attributes,\n });\n this.eventRecorder(utils_1.SESSION_STOP_EVENT, attributes);\n }\n}\nexports.SessionTracker = SessionTracker;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,cAAc,GAAG,MAAM;AAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC;AAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;AACzD,MAAM,cAAc,CAAC;AACrB,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAC1C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACrC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;AAC9C;
|
|
1
|
+
{"version":3,"file":"SessionTracker.js","sources":["../../../src/trackers/SessionTracker.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionTracker = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst logger = new core_1.ConsoleLogger('SessionTracker');\nclass SessionTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.eventRecorder = eventRecorder;\n this.sessionTrackingActive = false;\n this.initialEventSent = false;\n this.handleStateChange = this.handleStateChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? {},\n };\n // Setup state listeners\n if (!this.sessionTrackingActive) {\n utils_1.sessionListener.addStateChangeListener(this.handleStateChange, !this.initialEventSent);\n this.sessionTrackingActive = true;\n }\n }\n cleanup() {\n if (this.sessionTrackingActive) {\n utils_1.sessionListener.removeStateChangeListener(this.handleStateChange);\n }\n this.sessionTrackingActive = false;\n }\n handleStateChange(state) {\n if (state === 'started') {\n this.sessionStarted();\n }\n else {\n this.sessionStopped();\n }\n }\n sessionStarted() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_START_EVENT: utils_1.SESSION_START_EVENT,\n attributes,\n });\n this.eventRecorder(utils_1.SESSION_START_EVENT, attributes);\n // NOTE: The initial event will not be re-sent on re-configuration (e.g. to add additional custom attributes)\n if (!this.initialEventSent) {\n this.initialEventSent = true;\n }\n }\n sessionStopped() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_STOP_EVENT: utils_1.SESSION_STOP_EVENT,\n attributes,\n });\n this.eventRecorder(utils_1.SESSION_STOP_EVENT, attributes);\n }\n}\nexports.SessionTracker = SessionTracker;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,cAAc,GAAG,MAAM;AAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC;AAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;AACzD,MAAM,cAAc,CAAC;AACrB,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAC1C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACrC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;AAC9C,IAAI;AACJ,IAAI,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C;AACA,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;AACjD,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACzC,YAAY,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC1G,YAAY,IAAI,CAAC,qBAAqB,GAAG,IAAI;AAC7C,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACxC,YAAY,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACrF,QAAQ;AACR,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAC1C,IAAI;AACJ,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACxD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;AAC5D,YAAY,UAAU;AACtB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC;AACnE;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACxC,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACxD,QAAQ,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;AACxE,YAAY,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;AAC1D,YAAY,UAAU;AACtB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC;AAClE,IAAI;AACJ;AACA,OAAO,CAAC,cAAc,GAAG,cAAc;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionTracker.native.js","sources":["../../../src/trackers/SessionTracker.native.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionTracker = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst logger = new core_1.ConsoleLogger('SessionTracker');\nclass SessionTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.eventRecorder = eventRecorder;\n this.initialEventSent = false;\n this.sessionTrackingActive = false;\n this.handleStateChange = this.handleStateChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? {},\n };\n // Setup state listeners\n if (!this.sessionTrackingActive) {\n utils_1.sessionListener.addStateChangeListener(this.handleStateChange, !this.initialEventSent);\n this.sessionTrackingActive = true;\n }\n }\n cleanup() {\n if (this.sessionTrackingActive) {\n utils_1.sessionListener.removeStateChangeListener(this.handleStateChange);\n }\n this.sessionTrackingActive = false;\n }\n handleStateChange(state) {\n if (state === 'started') {\n this.sessionStarted();\n }\n else {\n this.sessionStopped();\n }\n }\n sessionStarted() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_START_EVENT: utils_1.SESSION_START_EVENT,\n attributes,\n });\n this.eventRecorder(utils_1.SESSION_START_EVENT, attributes);\n // NOTE: The initial event will not be re-sent on re-configuration (e.g. to add additional custom attributes)\n if (!this.initialEventSent) {\n this.initialEventSent = true;\n }\n }\n sessionStopped() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_STOP_EVENT: utils_1.SESSION_STOP_EVENT,\n attributes,\n });\n this.eventRecorder(utils_1.SESSION_STOP_EVENT, attributes);\n }\n}\nexports.SessionTracker = SessionTracker;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,cAAc,GAAG,MAAM;AAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC;AAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;AACzD,MAAM,cAAc,CAAC;AACrB,IAAI,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACrC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAC1C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;AAC9C;
|
|
1
|
+
{"version":3,"file":"SessionTracker.native.js","sources":["../../../src/trackers/SessionTracker.native.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionTracker = void 0;\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst logger = new core_1.ConsoleLogger('SessionTracker');\nclass SessionTracker {\n constructor(eventRecorder, options) {\n this.options = {};\n this.eventRecorder = eventRecorder;\n this.initialEventSent = false;\n this.sessionTrackingActive = false;\n this.handleStateChange = this.handleStateChange.bind(this);\n this.configure(eventRecorder, options);\n }\n configure(eventRecorder, options) {\n this.eventRecorder = eventRecorder;\n // Clean up any existing listeners\n this.cleanup();\n // Apply defaults\n this.options = {\n attributes: options?.attributes ?? {},\n };\n // Setup state listeners\n if (!this.sessionTrackingActive) {\n utils_1.sessionListener.addStateChangeListener(this.handleStateChange, !this.initialEventSent);\n this.sessionTrackingActive = true;\n }\n }\n cleanup() {\n if (this.sessionTrackingActive) {\n utils_1.sessionListener.removeStateChangeListener(this.handleStateChange);\n }\n this.sessionTrackingActive = false;\n }\n handleStateChange(state) {\n if (state === 'started') {\n this.sessionStarted();\n }\n else {\n this.sessionStopped();\n }\n }\n sessionStarted() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_START_EVENT: utils_1.SESSION_START_EVENT,\n attributes,\n });\n this.eventRecorder(utils_1.SESSION_START_EVENT, attributes);\n // NOTE: The initial event will not be re-sent on re-configuration (e.g. to add additional custom attributes)\n if (!this.initialEventSent) {\n this.initialEventSent = true;\n }\n }\n sessionStopped() {\n const attributes = this.options.attributes ?? {};\n logger.debug('Recording automatically tracked page view event', {\n SESSION_STOP_EVENT: utils_1.SESSION_STOP_EVENT,\n attributes,\n });\n this.eventRecorder(utils_1.SESSION_STOP_EVENT, attributes);\n }\n}\nexports.SessionTracker = SessionTracker;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/trackers/index.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionTracker = exports.PageViewTracker = exports.EventTracker = void 0;\nvar EventTracker_1 = require(\"./EventTracker\");\nObject.defineProperty(exports, \"EventTracker\", { enumerable: true, get: function () { return EventTracker_1.EventTracker; } });\nvar PageViewTracker_1 = require(\"./PageViewTracker\");\nObject.defineProperty(exports, \"PageViewTracker\", { enumerable: true, get: function () { return PageViewTracker_1.PageViewTracker; } });\nvar SessionTracker_1 = require(\"./SessionTracker\");\nObject.defineProperty(exports, \"SessionTracker\", { enumerable: true, get: function () { return SessionTracker_1.SessionTracker; } });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM;AAChF,IAAI,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;AAC9C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,cAAc,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/trackers/index.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionTracker = exports.PageViewTracker = exports.EventTracker = void 0;\nvar EventTracker_1 = require(\"./EventTracker\");\nObject.defineProperty(exports, \"EventTracker\", { enumerable: true, get: function () { return EventTracker_1.EventTracker; } });\nvar PageViewTracker_1 = require(\"./PageViewTracker\");\nObject.defineProperty(exports, \"PageViewTracker\", { enumerable: true, get: function () { return PageViewTracker_1.PageViewTracker; } });\nvar SessionTracker_1 = require(\"./SessionTracker\");\nObject.defineProperty(exports, \"SessionTracker\", { enumerable: true, get: function () { return SessionTracker_1.SessionTracker; } });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM;AAChF,IAAI,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;AAC9C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9H,IAAI,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;AACpD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AACvI,IAAI,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAClD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventBuffer.js","sources":["../../../../src/utils/eventBuffer/EventBuffer.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventBuffer = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst logger = new core_1.ConsoleLogger('EventBuffer');\nclass EventBuffer {\n constructor(config, getAnalyticsClient) {\n this.list = [];\n this.config = config;\n this.getAnalyticsClient = getAnalyticsClient;\n this.startEventLoop();\n }\n append(...events) {\n for (const event of events) {\n if (this.list.length + 1 > this.config.bufferSize) {\n logger.debug(`Exceed ${typeof event} event buffer limits, event dropped`);\n continue;\n }\n this.list.push(event);\n }\n }\n flushAll() {\n return this.submitEvents(this.list.length);\n }\n release() {\n this.list = [];\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n get length() {\n return this.list.length;\n }\n head(count) {\n return this.list.splice(0, count);\n }\n insertAtBeginning(...data) {\n this.list.unshift(...data);\n }\n startEventLoop() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n const { flushSize, flushInterval } = this.config;\n setInterval(() => {\n this.submitEvents(flushSize);\n }, flushInterval);\n }\n submitEvents(count) {\n const events = this.head(count);\n if (events.length === 0) {\n return Promise.resolve();\n }\n return this.getAnalyticsClient()(events).then(result => {\n if (result.length > 0) {\n this.insertAtBeginning(...result);\n }\n });\n }\n}\nexports.EventBuffer = EventBuffer;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,WAAW,GAAG,MAAM;AAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;AACtD,MAAM,WAAW,CAAC;AAClB,IAAI,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE;AAC5C,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AACpD,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B;
|
|
1
|
+
{"version":3,"file":"EventBuffer.js","sources":["../../../../src/utils/eventBuffer/EventBuffer.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventBuffer = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst logger = new core_1.ConsoleLogger('EventBuffer');\nclass EventBuffer {\n constructor(config, getAnalyticsClient) {\n this.list = [];\n this.config = config;\n this.getAnalyticsClient = getAnalyticsClient;\n this.startEventLoop();\n }\n append(...events) {\n for (const event of events) {\n if (this.list.length + 1 > this.config.bufferSize) {\n logger.debug(`Exceed ${typeof event} event buffer limits, event dropped`);\n continue;\n }\n this.list.push(event);\n }\n }\n flushAll() {\n return this.submitEvents(this.list.length);\n }\n release() {\n this.list = [];\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n get length() {\n return this.list.length;\n }\n head(count) {\n return this.list.splice(0, count);\n }\n insertAtBeginning(...data) {\n this.list.unshift(...data);\n }\n startEventLoop() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n const { flushSize, flushInterval } = this.config;\n setInterval(() => {\n this.submitEvents(flushSize);\n }, flushInterval);\n }\n submitEvents(count) {\n const events = this.head(count);\n if (events.length === 0) {\n return Promise.resolve();\n }\n return this.getAnalyticsClient()(events).then(result => {\n if (result.length > 0) {\n this.insertAtBeginning(...result);\n }\n });\n }\n}\nexports.EventBuffer = EventBuffer;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/utils/eventBuffer/index.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventBuffer = void 0;\nvar EventBuffer_1 = require(\"./EventBuffer\");\nObject.defineProperty(exports, \"EventBuffer\", { enumerable: true, get: function () { return EventBuffer_1.EventBuffer; } });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,WAAW,GAAG,MAAM;AAC5B,IAAI,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;AAC5C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,aAAa,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/utils/eventBuffer/index.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventBuffer = void 0;\nvar EventBuffer_1 = require(\"./EventBuffer\");\nObject.defineProperty(exports, \"EventBuffer\", { enumerable: true, get: function () { return EventBuffer_1.EventBuffer; } });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,WAAW,GAAG,MAAM;AAC5B,IAAI,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;AAC5C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupBy.js","sources":["../../../src/utils/groupBy.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = void 0;\nconst groupBy = (getGroupId, list) => {\n return list.reduce((result, current) => {\n const groupId = getGroupId(current);\n return { ...result, [groupId]: [...(result[groupId] ?? []), current] };\n }, {});\n};\nexports.groupBy = groupBy;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,OAAO,GAAG,MAAM;AACxB,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,IAAI,KAAK;AACtC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK;AAC5C,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;AAC3C,QAAQ,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;AAC9E,
|
|
1
|
+
{"version":3,"file":"groupBy.js","sources":["../../../src/utils/groupBy.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = void 0;\nconst groupBy = (getGroupId, list) => {\n return list.reduce((result, current) => {\n const groupId = getGroupId(current);\n return { ...result, [groupId]: [...(result[groupId] ?? []), current] };\n }, {});\n};\nexports.groupBy = groupBy;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,OAAO,GAAG,MAAM;AACxB,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,IAAI,KAAK;AACtC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK;AAC5C,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;AAC3C,QAAQ,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;AAC9E,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AACD,OAAO,CAAC,OAAO,GAAG,OAAO;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/utils/index.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTrackerConfiguration = exports.updateProviderTrackers = exports.getAnalyticsUserAgentString = exports.getAnalyticsUserAgent = exports.isAnalyticsEnabled = exports.disableAnalytics = exports.enableAnalytics = exports.EventBuffer = exports.groupBy = exports.resolveCredentials = void 0;\nvar resolveCredentials_1 = require(\"./resolveCredentials\");\nObject.defineProperty(exports, \"resolveCredentials\", { enumerable: true, get: function () { return resolveCredentials_1.resolveCredentials; } });\nvar groupBy_1 = require(\"./groupBy\");\nObject.defineProperty(exports, \"groupBy\", { enumerable: true, get: function () { return groupBy_1.groupBy; } });\nvar eventBuffer_1 = require(\"./eventBuffer\");\nObject.defineProperty(exports, \"EventBuffer\", { enumerable: true, get: function () { return eventBuffer_1.EventBuffer; } });\nvar statusHelpers_1 = require(\"./statusHelpers\");\nObject.defineProperty(exports, \"enableAnalytics\", { enumerable: true, get: function () { return statusHelpers_1.enableAnalytics; } });\nObject.defineProperty(exports, \"disableAnalytics\", { enumerable: true, get: function () { return statusHelpers_1.disableAnalytics; } });\nObject.defineProperty(exports, \"isAnalyticsEnabled\", { enumerable: true, get: function () { return statusHelpers_1.isAnalyticsEnabled; } });\nvar userAgent_1 = require(\"./userAgent\");\nObject.defineProperty(exports, \"getAnalyticsUserAgent\", { enumerable: true, get: function () { return userAgent_1.getAnalyticsUserAgent; } });\nObject.defineProperty(exports, \"getAnalyticsUserAgentString\", { enumerable: true, get: function () { return userAgent_1.getAnalyticsUserAgentString; } });\nvar trackerHelpers_1 = require(\"./trackerHelpers\");\nObject.defineProperty(exports, \"updateProviderTrackers\", { enumerable: true, get: function () { return trackerHelpers_1.updateProviderTrackers; } });\nvar trackerConfigHelpers_1 = require(\"./trackerConfigHelpers\");\nObject.defineProperty(exports, \"validateTrackerConfiguration\", { enumerable: true, get: function () { return trackerConfigHelpers_1.validateTrackerConfiguration; } });\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,GAAG,OAAO,CAAC,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG,MAAM;AAC3S,IAAI,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;AAC1D,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/utils/index.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTrackerConfiguration = exports.updateProviderTrackers = exports.getAnalyticsUserAgentString = exports.getAnalyticsUserAgent = exports.isAnalyticsEnabled = exports.disableAnalytics = exports.enableAnalytics = exports.EventBuffer = exports.groupBy = exports.resolveCredentials = void 0;\nvar resolveCredentials_1 = require(\"./resolveCredentials\");\nObject.defineProperty(exports, \"resolveCredentials\", { enumerable: true, get: function () { return resolveCredentials_1.resolveCredentials; } });\nvar groupBy_1 = require(\"./groupBy\");\nObject.defineProperty(exports, \"groupBy\", { enumerable: true, get: function () { return groupBy_1.groupBy; } });\nvar eventBuffer_1 = require(\"./eventBuffer\");\nObject.defineProperty(exports, \"EventBuffer\", { enumerable: true, get: function () { return eventBuffer_1.EventBuffer; } });\nvar statusHelpers_1 = require(\"./statusHelpers\");\nObject.defineProperty(exports, \"enableAnalytics\", { enumerable: true, get: function () { return statusHelpers_1.enableAnalytics; } });\nObject.defineProperty(exports, \"disableAnalytics\", { enumerable: true, get: function () { return statusHelpers_1.disableAnalytics; } });\nObject.defineProperty(exports, \"isAnalyticsEnabled\", { enumerable: true, get: function () { return statusHelpers_1.isAnalyticsEnabled; } });\nvar userAgent_1 = require(\"./userAgent\");\nObject.defineProperty(exports, \"getAnalyticsUserAgent\", { enumerable: true, get: function () { return userAgent_1.getAnalyticsUserAgent; } });\nObject.defineProperty(exports, \"getAnalyticsUserAgentString\", { enumerable: true, get: function () { return userAgent_1.getAnalyticsUserAgentString; } });\nvar trackerHelpers_1 = require(\"./trackerHelpers\");\nObject.defineProperty(exports, \"updateProviderTrackers\", { enumerable: true, get: function () { return trackerHelpers_1.updateProviderTrackers; } });\nvar trackerConfigHelpers_1 = require(\"./trackerConfigHelpers\");\nObject.defineProperty(exports, \"validateTrackerConfiguration\", { enumerable: true, get: function () { return trackerConfigHelpers_1.validateTrackerConfiguration; } });\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackerHelpers.js","sources":["../../../src/utils/trackerHelpers.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateProviderTrackers = void 0;\nconst trackers_1 = require(\"../trackers\");\n/**\n * Updates a provider's trackers as appropriate for the provided auto-track configuration.\n *\n * @remark\n * This utility will mutate the provider's configured trackers via `providerTrackers`.\n */\nconst updateProviderTrackers = (input, providerEventRecorder, providerTrackers) => {\n let trackerInstance;\n const trackerType = input.type;\n const currentTracker = providerTrackers[trackerType];\n // Check if the tracker was disabled & should be cleaned up\n if (!input.enable) {\n if (currentTracker) {\n currentTracker.cleanup();\n delete providerTrackers[trackerType];\n }\n return;\n }\n // Re-configure the existing tracker, or create & configure an instance if it doesn't exist yet\n if (currentTracker) {\n currentTracker.configure(providerEventRecorder, input.options);\n return;\n }\n // Create a new tracker instance for the type\n if (trackerType === 'event') {\n trackerInstance = new trackers_1.EventTracker(providerEventRecorder, input.options);\n }\n else if (trackerType === 'pageView') {\n trackerInstance = new trackers_1.PageViewTracker(providerEventRecorder, input.options);\n }\n else if (trackerType === 'session') {\n trackerInstance = new trackers_1.SessionTracker(providerEventRecorder, input.options);\n }\n if (trackerInstance) {\n providerTrackers[trackerType] = trackerInstance;\n }\n};\nexports.updateProviderTrackers = updateProviderTrackers;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,sBAAsB,GAAG,MAAM;AACvC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,KAAK;AACnF,IAAI,IAAI,eAAe;AACvB,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI;AAClC,IAAI,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC;AACxD;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,cAAc,EAAE;AAC5B,YAAY,cAAc,CAAC,OAAO,EAAE;AACpC,YAAY,OAAO,gBAAgB,CAAC,WAAW,CAAC;AAChD;
|
|
1
|
+
{"version":3,"file":"trackerHelpers.js","sources":["../../../src/utils/trackerHelpers.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateProviderTrackers = void 0;\nconst trackers_1 = require(\"../trackers\");\n/**\n * Updates a provider's trackers as appropriate for the provided auto-track configuration.\n *\n * @remark\n * This utility will mutate the provider's configured trackers via `providerTrackers`.\n */\nconst updateProviderTrackers = (input, providerEventRecorder, providerTrackers) => {\n let trackerInstance;\n const trackerType = input.type;\n const currentTracker = providerTrackers[trackerType];\n // Check if the tracker was disabled & should be cleaned up\n if (!input.enable) {\n if (currentTracker) {\n currentTracker.cleanup();\n delete providerTrackers[trackerType];\n }\n return;\n }\n // Re-configure the existing tracker, or create & configure an instance if it doesn't exist yet\n if (currentTracker) {\n currentTracker.configure(providerEventRecorder, input.options);\n return;\n }\n // Create a new tracker instance for the type\n if (trackerType === 'event') {\n trackerInstance = new trackers_1.EventTracker(providerEventRecorder, input.options);\n }\n else if (trackerType === 'pageView') {\n trackerInstance = new trackers_1.PageViewTracker(providerEventRecorder, input.options);\n }\n else if (trackerType === 'session') {\n trackerInstance = new trackers_1.SessionTracker(providerEventRecorder, input.options);\n }\n if (trackerInstance) {\n providerTrackers[trackerType] = trackerInstance;\n }\n};\nexports.updateProviderTrackers = updateProviderTrackers;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,sBAAsB,GAAG,MAAM;AACvC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,KAAK;AACnF,IAAI,IAAI,eAAe;AACvB,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI;AAClC,IAAI,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC;AACxD;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,cAAc,EAAE;AAC5B,YAAY,cAAc,CAAC,OAAO,EAAE;AACpC,YAAY,OAAO,gBAAgB,CAAC,WAAW,CAAC;AAChD,QAAQ;AACR,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,IAAI,cAAc,EAAE;AACxB,QAAQ,cAAc,CAAC,SAAS,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;AACtE,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,IAAI,WAAW,KAAK,OAAO,EAAE;AACjC,QAAQ,eAAe,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;AAC3F,IAAI;AACJ,SAAS,IAAI,WAAW,KAAK,UAAU,EAAE;AACzC,QAAQ,eAAe,GAAG,IAAI,UAAU,CAAC,eAAe,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;AAC9F,IAAI;AACJ,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE;AACxC,QAAQ,eAAe,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;AAC7F,IAAI;AACJ,IAAI,IAAI,eAAe,EAAE;AACzB,QAAQ,gBAAgB,CAAC,WAAW,CAAC,GAAG,eAAe;AACvD,IAAI;AACJ,CAAC;AACD,OAAO,CAAC,sBAAsB,GAAG,sBAAsB;;"}
|
|
@@ -1 +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;
|
|
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;;;;"}
|
|
@@ -1 +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;
|
|
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;;;;"}
|
|
@@ -1 +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,
|
|
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;;;;"}
|
|
@@ -1 +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;
|
|
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;;;;"}
|
|
@@ -1 +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":";;;;;;;;;;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,EAAE;AACzB,MAAM,aAAa,GAAG,EAAE;AACxB,MAAM,8BAA8B,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,iBAAiB,CAAC;AACrF,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;AAClC,QAAQ,YAAY,EAAE,KAAK,CAAC,YAAY;AACxC,QAAQ,IAAI,EAAE,KAAK,CAAC,KAAK;AACzB,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK;AAC5D,IAAI,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC1F,IAAI,MAAM,QAAQ,GAAG;AACrB,SAAS,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,8BAA8B,CAAC,UAAU,EAAE,aAAa,CAAC;AACvG,SAAS,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,IAAI,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AACxD,IAAI,MAAM,YAAY,GAAG;AACzB,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,KAAK,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7F,SAAS,IAAI,EAAE;AACf,IAAI,OAAO;AACX,UAAU;AACV,aAAa,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,WAAW;AAC3D,aAAa,GAAG,CAAC,KAAK,KAAK,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;AAC1E,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;AACrD,UAAU,EAAE;AACZ,CAAC;AACW,MAAC,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,GAAG,KAAK;AAC3I,IAAI,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9E,IAAI,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,IAAI,EAAE;AACrF,IAAI,IAAI,sBAAsB,GAAG,KAAK;AACtC;AACA,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,sBAAsB,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,WAAW,CAAC;AACvF;
|
|
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":";;;;;;;;;;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,EAAE;AACzB,MAAM,aAAa,GAAG,EAAE;AACxB,MAAM,8BAA8B,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,iBAAiB,CAAC;AACrF,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;AAClC,QAAQ,YAAY,EAAE,KAAK,CAAC,YAAY;AACxC,QAAQ,IAAI,EAAE,KAAK,CAAC,KAAK;AACzB,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK;AAC5D,IAAI,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC1F,IAAI,MAAM,QAAQ,GAAG;AACrB,SAAS,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,8BAA8B,CAAC,UAAU,EAAE,aAAa,CAAC;AACvG,SAAS,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,IAAI,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AACxD,IAAI,MAAM,YAAY,GAAG;AACzB,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,KAAK,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7F,SAAS,IAAI,EAAE;AACf,IAAI,OAAO;AACX,UAAU;AACV,aAAa,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,WAAW;AAC3D,aAAa,GAAG,CAAC,KAAK,KAAK,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;AAC1E,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;AACrD,UAAU,EAAE;AACZ,CAAC;AACW,MAAC,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,GAAG,KAAK;AAC3I,IAAI,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9E,IAAI,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,IAAI,EAAE;AACrF,IAAI,IAAI,sBAAsB,GAAG,KAAK;AACtC;AACA,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,sBAAsB,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,WAAW,CAAC;AACvF,IAAI;AACJ,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,sBAAsB,EAAE;AACvE,QAAQ,MAAM,gBAAgB,GAAG,MAAM;AACvC,YAAY,IAAI,CAAC,YAAY,IAAI,sBAAsB,EAAE;AACzD,gBAAgB,aAAa,CAAC,kBAAkB,CAAC,GAAG;AACpD,oBAAoB,IAAI,aAAa,CAAC;AACtC,wBAAwB,WAAW;AACnC,wBAAwB,MAAM;AAC9B,wBAAwB,eAAe,EAAE,cAAc;AACvD,qBAAqB,CAAC;AACtB,oBAAoB,WAAW;AAC/B,iBAAiB;AACjB,YAAY;AACZ,YAAY,MAAM,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC;AACrE,YAAY,OAAO,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;AAC7E,QAAQ,CAAC;AACT;AACA,QAAQ,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,WAAW,CAAC;AAC7D,YAAY,aAAa;AACzB,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB,SAAS,EAAE,gBAAgB,CAAC;AAC5B;AACA,QAAQ,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,kBAAkB,CAAC;AACpG,QAAQ,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE;AAC5D,YAAY,cAAc,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM;AACvE,gBAAgB,cAAc,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE;AAC3D,gBAAgB,OAAO,cAAc,CAAC,iBAAiB,CAAC;AACxD,gBAAgB,OAAO,aAAa,CAAC,iBAAiB,CAAC;AACvD,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,cAAc,CAAC,kBAAkB,CAAC;AAC7C;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/kinesis-firehose/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 { getEventBuffer, resolveConfig } from '../utils';\nimport { getAnalyticsUserAgentString, resolveCredentials, } from '../../../utils';\nconst logger = new ConsoleLogger('KinesisFirehose');\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;AAKA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,iBAAiB,CAAC;AACnD;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,
|
|
1
|
+
{"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/kinesis-firehose/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 { getEventBuffer, resolveConfig } from '../utils';\nimport { getAnalyticsUserAgentString, resolveCredentials, } from '../../../utils';\nconst logger = new ConsoleLogger('KinesisFirehose');\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;AAKA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,iBAAiB,CAAC;AACnD;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;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.mjs","sources":["../../../../../src/providers/kinesis-firehose/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, resolveConfig } from '../utils';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';\nconst logger = new ConsoleLogger('KinesisFirehose');\n/**\n * Record one analytic event and send it to Kinesis Data Firehose. Events will be buffered and periodically sent to\n * Kinesis Data Firehose.\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: 'myFirehoseStream',\n * data: { } // The data blob to put into the record\n * });\n * ```\n */\nexport const record = ({ streamName, 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 credentials,\n identityId,\n bufferSize,\n flushSize,\n flushInterval,\n resendLimit,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n buffer.append({\n region,\n streamName,\n event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),\n timestamp,\n retryCount: 0,\n });\n })\n .catch(e => {\n logger.warn('Failed to record event.', e);\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,iBAAiB,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK;AAChD,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC;AAC1E,QAAQ;AACR;
|
|
1
|
+
{"version":3,"file":"record.mjs","sources":["../../../../../src/providers/kinesis-firehose/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, resolveConfig } from '../utils';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';\nconst logger = new ConsoleLogger('KinesisFirehose');\n/**\n * Record one analytic event and send it to Kinesis Data Firehose. Events will be buffered and periodically sent to\n * Kinesis Data Firehose.\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: 'myFirehoseStream',\n * data: { } // The data blob to put into the record\n * });\n * ```\n */\nexport const record = ({ streamName, 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 credentials,\n identityId,\n bufferSize,\n flushSize,\n flushInterval,\n resendLimit,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n buffer.append({\n region,\n streamName,\n event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),\n timestamp,\n retryCount: 0,\n });\n })\n .catch(e => {\n logger.warn('Failed to record event.', e);\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,iBAAiB,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK;AAChD,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,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,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,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,QAAQ,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;AACjD,IAAI,CAAC,CAAC;AACN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/kinesis-firehose/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 { FirehoseClient, PutRecordBatchCommand, } from '@aws-sdk/client-firehose';\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 createPutRecordsBatchCommand = (streamName, events) => new PutRecordBatchCommand({\n DeliveryStreamName: streamName,\n Records: events.map(event => ({\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]) => createPutRecordsBatchCommand(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, credentials, identityId, bufferSize, flushSize, flushInterval, resendLimit, userAgentValue, }) => {\n const sessionIdentityKey = [region, identityId].filter(id => !!id).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 getClient = () => {\n if (!cachedClient || credentialsHaveChanged) {\n cachedClients[sessionIdentityKey] = [\n new FirehoseClient({\n region,\n credentials,\n customUserAgent: userAgentValue,\n }),\n credentials,\n ];\n }\n const [firehoseClient] = cachedClients[sessionIdentityKey];\n return events => submitEvents(events, firehoseClient, resendLimit);\n };\n eventBufferMap[sessionIdentityKey] =\n new EventBuffer({\n bufferSize,\n flushSize,\n flushInterval,\n }, getClient);\n const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);\n for (const releaseSessionKey of releaseSessionKeys) {\n eventBufferMap[releaseSessionKey].flushAll().finally(() => {\n eventBufferMap[releaseSessionKey].release();\n delete eventBufferMap[releaseSessionKey];\n delete cachedClients[releaseSessionKey];\n });\n }\n }\n return eventBufferMap[sessionIdentityKey];\n};\n"],"names":[],"mappings":";;;;;;;;;;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,EAAE;AACzB,MAAM,aAAa,GAAG,EAAE;AACxB,MAAM,4BAA4B,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,qBAAqB,CAAC;AACvF,IAAI,kBAAkB,EAAE,UAAU;AAClC,IAAI,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;AAClC,QAAQ,IAAI,EAAE,KAAK,CAAC,KAAK;AACzB,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK;AAC5D,IAAI,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC1F,IAAI,MAAM,QAAQ,GAAG;AACrB,SAAS,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,4BAA4B,CAAC,UAAU,EAAE,aAAa,CAAC;AACrG,SAAS,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,IAAI,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AACxD,IAAI,MAAM,YAAY,GAAG;AACzB,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,KAAK,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7F,SAAS,IAAI,EAAE;AACf,IAAI,OAAO;AACX,UAAU;AACV,aAAa,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,WAAW;AAC3D,aAAa,GAAG,CAAC,KAAK,KAAK,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;AAC1E,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;AACrD,UAAU,EAAE;AACZ,CAAC;AACW,MAAC,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,GAAG,KAAK;AAC3I,IAAI,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAChF,IAAI,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,IAAI,EAAE;AACrF,IAAI,IAAI,sBAAsB,GAAG,KAAK;AACtC;AACA,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,sBAAsB,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,WAAW,CAAC;AACvF;
|
|
1
|
+
{"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/kinesis-firehose/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 { FirehoseClient, PutRecordBatchCommand, } from '@aws-sdk/client-firehose';\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 createPutRecordsBatchCommand = (streamName, events) => new PutRecordBatchCommand({\n DeliveryStreamName: streamName,\n Records: events.map(event => ({\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]) => createPutRecordsBatchCommand(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, credentials, identityId, bufferSize, flushSize, flushInterval, resendLimit, userAgentValue, }) => {\n const sessionIdentityKey = [region, identityId].filter(id => !!id).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 getClient = () => {\n if (!cachedClient || credentialsHaveChanged) {\n cachedClients[sessionIdentityKey] = [\n new FirehoseClient({\n region,\n credentials,\n customUserAgent: userAgentValue,\n }),\n credentials,\n ];\n }\n const [firehoseClient] = cachedClients[sessionIdentityKey];\n return events => submitEvents(events, firehoseClient, resendLimit);\n };\n eventBufferMap[sessionIdentityKey] =\n new EventBuffer({\n bufferSize,\n flushSize,\n flushInterval,\n }, getClient);\n const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);\n for (const releaseSessionKey of releaseSessionKeys) {\n eventBufferMap[releaseSessionKey].flushAll().finally(() => {\n eventBufferMap[releaseSessionKey].release();\n delete eventBufferMap[releaseSessionKey];\n delete cachedClients[releaseSessionKey];\n });\n }\n }\n return eventBufferMap[sessionIdentityKey];\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/personalize/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 { getEventBuffer, resolveConfig } from '../utils';\nimport { getAnalyticsUserAgentString, resolveCredentials, } from '../../../utils';\nconst logger = new ConsoleLogger('Personalize');\n/**\n * Flushes all buffered Personalize 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, bufferSize, flushInterval } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => getEventBuffer({\n region,\n flushSize,\n flushInterval,\n bufferSize,\n credentials,\n identityId,\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;AAKA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;AAC5E,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,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,wBAAwB,EAAE,CAAC,CAAC;AAChD,
|
|
1
|
+
{"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/personalize/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 { getEventBuffer, resolveConfig } from '../utils';\nimport { getAnalyticsUserAgentString, resolveCredentials, } from '../../../utils';\nconst logger = new ConsoleLogger('Personalize');\n/**\n * Flushes all buffered Personalize 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, bufferSize, flushInterval } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => getEventBuffer({\n region,\n flushSize,\n flushInterval,\n bufferSize,\n credentials,\n identityId,\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;AAKA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;AAC5E,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,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,wBAAwB,EAAE,CAAC,CAAC;AAChD,IAAI,CAAC,CAAC;AACN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.mjs","sources":["../../../../../src/providers/personalize/apis/record.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 { autoTrackMedia, getEventBuffer, resolveCachedSession, resolveConfig, updateCachedSession, } from '../utils';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';\nimport { IDENTIFY_EVENT_TYPE, MEDIA_AUTO_TRACK_EVENT_TYPE, } from '../utils/constants';\nconst logger = new ConsoleLogger('Personalize');\n/**\n * Record one analytic event and send it to Personalize. Events will be buffered and periodically sent to Amazon\n * Personalize.\n *\n * For more examples, you can refer to {@link https://docs.amplify.aws/javascript/build-a-backend/more-features/analytics/personalize-recommendations/#working-with-the-api the API usage guidance.}\n *\n * @param input 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 an `Identify` event to Personalize.\n * record({\n * eventType: \"Identify\",\n * properties: {\n * userId: \"<USER_ID>\"\n * }\n * });\n * ```\n * @param input - The event to record.\n *\n * @returns void\n */\nexport const record = ({ userId, eventId, eventType, properties, }) => {\n if (!isAnalyticsEnabled()) {\n logger.debug('Analytics is disabled, event will not be recorded.');\n return;\n }\n const { region, trackingId, bufferSize, flushSize, flushInterval } = resolveConfig();\n resolveCredentials()\n .then(async ({ credentials, identityId }) => {\n const timestamp = Date.now();\n const { sessionId: cachedSessionId, userId: cachedUserId } = await resolveCachedSession();\n if (eventType === IDENTIFY_EVENT_TYPE) {\n updateCachedSession(typeof properties.userId === 'string' ? properties.userId : '', cachedSessionId, cachedUserId);\n }\n else if (userId) {\n updateCachedSession(userId, cachedSessionId, cachedUserId);\n }\n const { sessionId: updatedSessionId, userId: updatedUserId } = await resolveCachedSession();\n const eventBuffer = getEventBuffer({\n region,\n flushSize,\n flushInterval,\n bufferSize,\n credentials,\n identityId,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n if (eventType === MEDIA_AUTO_TRACK_EVENT_TYPE) {\n autoTrackMedia({\n trackingId,\n sessionId: updatedSessionId,\n userId: updatedUserId,\n event: {\n eventId,\n eventType,\n properties,\n },\n }, eventBuffer);\n }\n else {\n eventBuffer.append({\n trackingId,\n sessionId: updatedSessionId,\n userId: updatedUserId,\n event: {\n eventId,\n eventType,\n properties,\n },\n timestamp,\n });\n }\n if (eventBuffer.length >= bufferSize) {\n eventBuffer.flushAll();\n }\n })\n .catch(e => {\n logger.warn('Failed to record event.', e);\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,KAAK;AACvE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC;AAC1E,QAAQ;AACR;
|
|
1
|
+
{"version":3,"file":"record.mjs","sources":["../../../../../src/providers/personalize/apis/record.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 { autoTrackMedia, getEventBuffer, resolveCachedSession, resolveConfig, updateCachedSession, } from '../utils';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';\nimport { IDENTIFY_EVENT_TYPE, MEDIA_AUTO_TRACK_EVENT_TYPE, } from '../utils/constants';\nconst logger = new ConsoleLogger('Personalize');\n/**\n * Record one analytic event and send it to Personalize. Events will be buffered and periodically sent to Amazon\n * Personalize.\n *\n * For more examples, you can refer to {@link https://docs.amplify.aws/javascript/build-a-backend/more-features/analytics/personalize-recommendations/#working-with-the-api the API usage guidance.}\n *\n * @param input 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 an `Identify` event to Personalize.\n * record({\n * eventType: \"Identify\",\n * properties: {\n * userId: \"<USER_ID>\"\n * }\n * });\n * ```\n * @param input - The event to record.\n *\n * @returns void\n */\nexport const record = ({ userId, eventId, eventType, properties, }) => {\n if (!isAnalyticsEnabled()) {\n logger.debug('Analytics is disabled, event will not be recorded.');\n return;\n }\n const { region, trackingId, bufferSize, flushSize, flushInterval } = resolveConfig();\n resolveCredentials()\n .then(async ({ credentials, identityId }) => {\n const timestamp = Date.now();\n const { sessionId: cachedSessionId, userId: cachedUserId } = await resolveCachedSession();\n if (eventType === IDENTIFY_EVENT_TYPE) {\n updateCachedSession(typeof properties.userId === 'string' ? properties.userId : '', cachedSessionId, cachedUserId);\n }\n else if (userId) {\n updateCachedSession(userId, cachedSessionId, cachedUserId);\n }\n const { sessionId: updatedSessionId, userId: updatedUserId } = await resolveCachedSession();\n const eventBuffer = getEventBuffer({\n region,\n flushSize,\n flushInterval,\n bufferSize,\n credentials,\n identityId,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n if (eventType === MEDIA_AUTO_TRACK_EVENT_TYPE) {\n autoTrackMedia({\n trackingId,\n sessionId: updatedSessionId,\n userId: updatedUserId,\n event: {\n eventId,\n eventType,\n properties,\n },\n }, eventBuffer);\n }\n else {\n eventBuffer.append({\n trackingId,\n sessionId: updatedSessionId,\n userId: updatedUserId,\n event: {\n eventId,\n eventType,\n properties,\n },\n timestamp,\n });\n }\n if (eventBuffer.length >= bufferSize) {\n eventBuffer.flushAll();\n }\n })\n .catch(e => {\n logger.warn('Failed to record event.', e);\n });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,KAAK;AACvE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC;AAC1E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;AACxF,IAAI,kBAAkB;AACtB,SAAS,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AACrD,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AACpC,QAAQ,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,oBAAoB,EAAE;AACjG,QAAQ,IAAI,SAAS,KAAK,mBAAmB,EAAE;AAC/C,YAAY,mBAAmB,CAAC,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC;AAC9H,QAAQ;AACR,aAAa,IAAI,MAAM,EAAE;AACzB,YAAY,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC;AACtE,QAAQ;AACR,QAAQ,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,oBAAoB,EAAE;AACnG,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC;AAC3C,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC/E,SAAS,CAAC;AACV,QAAQ,IAAI,SAAS,KAAK,2BAA2B,EAAE;AACvD,YAAY,cAAc,CAAC;AAC3B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS,EAAE,gBAAgB;AAC3C,gBAAgB,MAAM,EAAE,aAAa;AACrC,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,OAAO;AAC3B,oBAAoB,SAAS;AAC7B,oBAAoB,UAAU;AAC9B,iBAAiB;AACjB,aAAa,EAAE,WAAW,CAAC;AAC3B,QAAQ;AACR,aAAa;AACb,YAAY,WAAW,CAAC,MAAM,CAAC;AAC/B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS,EAAE,gBAAgB;AAC3C,gBAAgB,MAAM,EAAE,aAAa;AACrC,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,OAAO;AAC3B,oBAAoB,SAAS;AAC7B,oBAAoB,UAAU;AAC9B,iBAAiB;AACjB,gBAAgB,SAAS;AACzB,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,WAAW,CAAC,MAAM,IAAI,UAAU,EAAE;AAC9C,YAAY,WAAW,CAAC,QAAQ,EAAE;AAClC,QAAQ;AACR,IAAI,CAAC;AACL,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB,QAAQ,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;AACjD,IAAI,CAAC,CAAC;AACN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoTrackMedia.mjs","sources":["../../../../../src/providers/personalize/utils/autoTrackMedia.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isBrowser } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nvar HTML5_MEDIA_EVENT;\n(function (HTML5_MEDIA_EVENT) {\n HTML5_MEDIA_EVENT[\"PLAY\"] = \"play\";\n HTML5_MEDIA_EVENT[\"PAUSE\"] = \"pause\";\n HTML5_MEDIA_EVENT[\"ENDED\"] = \"Ended\";\n})(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {}));\nvar MEDIA_TYPE;\n(function (MEDIA_TYPE) {\n MEDIA_TYPE[\"IFRAME\"] = \"IFRAME\";\n MEDIA_TYPE[\"VIDEO\"] = \"VIDEO\";\n MEDIA_TYPE[\"AUDIO\"] = \"AUDIO\";\n})(MEDIA_TYPE || (MEDIA_TYPE = {}));\nvar EVENT_TYPE;\n(function (EVENT_TYPE) {\n EVENT_TYPE[\"PLAY\"] = \"Play\";\n EVENT_TYPE[\"ENDED\"] = \"Ended\";\n EVENT_TYPE[\"PAUSE\"] = \"Pause\";\n EVENT_TYPE[\"TIME_WATCHED\"] = \"TimeWatched\";\n})(EVENT_TYPE || (EVENT_TYPE = {}));\nconst logger = new ConsoleLogger('MediaAutoTrack');\nconst startIframeAutoTracking = (element, recordEvent) => {\n let isPlaying = false;\n let player;\n const mediaProperties = () => {\n const duration = Number(parseFloat(player.getDuration()).toFixed(4));\n const currentTime = Number(parseFloat(player.getCurrentTime()).toFixed(4));\n return {\n duration,\n eventValue: Number((currentTime / duration).toFixed(4)),\n };\n };\n const scriptElement = document.createElement('script');\n scriptElement.type = 'text/javascript';\n scriptElement.src = 'https://www.youtube.com/iframe_api';\n document.body.append(scriptElement);\n const timer = setInterval(() => {\n if (isPlaying && player) {\n recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());\n }\n }, 3000);\n element.addEventListener('unload', () => {\n clearInterval(timer);\n });\n window.onYouTubeIframeAPIReady = () => {\n delete window.onYouTubeIframeAPIReady;\n player = new window.YT.Player(element.id, {\n events: {\n onStateChange: (event) => {\n const iframeEventMapping = {\n 0: EVENT_TYPE.ENDED,\n 1: EVENT_TYPE.PLAY,\n 2: EVENT_TYPE.PAUSE,\n };\n const eventType = iframeEventMapping[event.data];\n switch (eventType) {\n case EVENT_TYPE.ENDED:\n case EVENT_TYPE.PAUSE:\n isPlaying = false;\n break;\n case EVENT_TYPE.PLAY:\n isPlaying = true;\n break;\n }\n if (eventType) {\n recordEvent(eventType, mediaProperties());\n }\n },\n },\n });\n };\n};\nconst startHTMLMediaAutoTracking = (element, recordEvent) => {\n let isPlaying = false;\n const mediaProperties = () => ({\n duration: element.duration,\n eventValue: Number((element.currentTime / element.duration).toFixed(4)),\n });\n const timer = setInterval(() => {\n if (isPlaying) {\n recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());\n }\n }, 3000);\n element.addEventListener('unload', () => {\n clearInterval(timer);\n });\n element.addEventListener(HTML5_MEDIA_EVENT.PLAY, () => {\n isPlaying = true;\n recordEvent(EVENT_TYPE.PLAY, mediaProperties());\n });\n element.addEventListener(HTML5_MEDIA_EVENT.PAUSE, () => {\n isPlaying = false;\n recordEvent(EVENT_TYPE.PAUSE, mediaProperties());\n });\n element.addEventListener(HTML5_MEDIA_EVENT.ENDED, () => {\n isPlaying = false;\n recordEvent(EVENT_TYPE.ENDED, mediaProperties());\n });\n};\nconst checkElementLoaded = (interval, maxTries) => {\n let retryCount = 0;\n const wait = () => new Promise(resolve => setTimeout(resolve, interval));\n const check = async (elementId) => {\n if (retryCount >= maxTries) {\n return false;\n }\n const domElement = document.getElementById(elementId);\n if (domElement && domElement.clientHeight) {\n return true;\n }\n else {\n retryCount += 1;\n await wait();\n return check(elementId);\n }\n };\n return check;\n};\nconst recordEvent = (config, eventBuffer) => (eventType, properties) => {\n // override eventType and merge properties\n eventBuffer.append({\n ...config,\n event: {\n ...config.event,\n eventType,\n properties: {\n ...config.event.properties,\n ...properties,\n },\n },\n timestamp: Date.now(),\n });\n};\nexport const autoTrackMedia = async (config, eventBuffer) => {\n const { eventType, properties } = config.event;\n const { domElementId, ...otherProperties } = properties;\n if (!isBrowser()) {\n logger.debug(`${eventType} only for browser`);\n return;\n }\n if (typeof domElementId === 'string' && !domElementId) {\n logger.debug(\"Missing domElementId field in 'properties' for MediaAutoTrack event type.\");\n return;\n }\n const elementId = domElementId;\n const isElementLoaded = await checkElementLoaded(500, 5)(elementId);\n if (isElementLoaded) {\n const autoTrackConfigWithoutDomElementId = {\n ...config,\n event: {\n ...config.event,\n properties: otherProperties,\n },\n };\n const element = document.getElementById(elementId);\n switch (element?.tagName) {\n case MEDIA_TYPE.IFRAME:\n startIframeAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));\n break;\n case MEDIA_TYPE.VIDEO:\n case MEDIA_TYPE.AUDIO:\n if (element instanceof HTMLMediaElement) {\n startHTMLMediaAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));\n }\n break;\n default:\n logger.debug(`Unsupported DOM element tag: ${element?.tagName}`);\n break;\n }\n }\n else {\n logger.debug('Cannot find the media element.');\n }\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"autoTrackMedia.mjs","sources":["../../../../../src/providers/personalize/utils/autoTrackMedia.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isBrowser } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nvar HTML5_MEDIA_EVENT;\n(function (HTML5_MEDIA_EVENT) {\n HTML5_MEDIA_EVENT[\"PLAY\"] = \"play\";\n HTML5_MEDIA_EVENT[\"PAUSE\"] = \"pause\";\n HTML5_MEDIA_EVENT[\"ENDED\"] = \"Ended\";\n})(HTML5_MEDIA_EVENT || (HTML5_MEDIA_EVENT = {}));\nvar MEDIA_TYPE;\n(function (MEDIA_TYPE) {\n MEDIA_TYPE[\"IFRAME\"] = \"IFRAME\";\n MEDIA_TYPE[\"VIDEO\"] = \"VIDEO\";\n MEDIA_TYPE[\"AUDIO\"] = \"AUDIO\";\n})(MEDIA_TYPE || (MEDIA_TYPE = {}));\nvar EVENT_TYPE;\n(function (EVENT_TYPE) {\n EVENT_TYPE[\"PLAY\"] = \"Play\";\n EVENT_TYPE[\"ENDED\"] = \"Ended\";\n EVENT_TYPE[\"PAUSE\"] = \"Pause\";\n EVENT_TYPE[\"TIME_WATCHED\"] = \"TimeWatched\";\n})(EVENT_TYPE || (EVENT_TYPE = {}));\nconst logger = new ConsoleLogger('MediaAutoTrack');\nconst startIframeAutoTracking = (element, recordEvent) => {\n let isPlaying = false;\n let player;\n const mediaProperties = () => {\n const duration = Number(parseFloat(player.getDuration()).toFixed(4));\n const currentTime = Number(parseFloat(player.getCurrentTime()).toFixed(4));\n return {\n duration,\n eventValue: Number((currentTime / duration).toFixed(4)),\n };\n };\n const scriptElement = document.createElement('script');\n scriptElement.type = 'text/javascript';\n scriptElement.src = 'https://www.youtube.com/iframe_api';\n document.body.append(scriptElement);\n const timer = setInterval(() => {\n if (isPlaying && player) {\n recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());\n }\n }, 3000);\n element.addEventListener('unload', () => {\n clearInterval(timer);\n });\n window.onYouTubeIframeAPIReady = () => {\n delete window.onYouTubeIframeAPIReady;\n player = new window.YT.Player(element.id, {\n events: {\n onStateChange: (event) => {\n const iframeEventMapping = {\n 0: EVENT_TYPE.ENDED,\n 1: EVENT_TYPE.PLAY,\n 2: EVENT_TYPE.PAUSE,\n };\n const eventType = iframeEventMapping[event.data];\n switch (eventType) {\n case EVENT_TYPE.ENDED:\n case EVENT_TYPE.PAUSE:\n isPlaying = false;\n break;\n case EVENT_TYPE.PLAY:\n isPlaying = true;\n break;\n }\n if (eventType) {\n recordEvent(eventType, mediaProperties());\n }\n },\n },\n });\n };\n};\nconst startHTMLMediaAutoTracking = (element, recordEvent) => {\n let isPlaying = false;\n const mediaProperties = () => ({\n duration: element.duration,\n eventValue: Number((element.currentTime / element.duration).toFixed(4)),\n });\n const timer = setInterval(() => {\n if (isPlaying) {\n recordEvent(EVENT_TYPE.TIME_WATCHED, mediaProperties());\n }\n }, 3000);\n element.addEventListener('unload', () => {\n clearInterval(timer);\n });\n element.addEventListener(HTML5_MEDIA_EVENT.PLAY, () => {\n isPlaying = true;\n recordEvent(EVENT_TYPE.PLAY, mediaProperties());\n });\n element.addEventListener(HTML5_MEDIA_EVENT.PAUSE, () => {\n isPlaying = false;\n recordEvent(EVENT_TYPE.PAUSE, mediaProperties());\n });\n element.addEventListener(HTML5_MEDIA_EVENT.ENDED, () => {\n isPlaying = false;\n recordEvent(EVENT_TYPE.ENDED, mediaProperties());\n });\n};\nconst checkElementLoaded = (interval, maxTries) => {\n let retryCount = 0;\n const wait = () => new Promise(resolve => setTimeout(resolve, interval));\n const check = async (elementId) => {\n if (retryCount >= maxTries) {\n return false;\n }\n const domElement = document.getElementById(elementId);\n if (domElement && domElement.clientHeight) {\n return true;\n }\n else {\n retryCount += 1;\n await wait();\n return check(elementId);\n }\n };\n return check;\n};\nconst recordEvent = (config, eventBuffer) => (eventType, properties) => {\n // override eventType and merge properties\n eventBuffer.append({\n ...config,\n event: {\n ...config.event,\n eventType,\n properties: {\n ...config.event.properties,\n ...properties,\n },\n },\n timestamp: Date.now(),\n });\n};\nexport const autoTrackMedia = async (config, eventBuffer) => {\n const { eventType, properties } = config.event;\n const { domElementId, ...otherProperties } = properties;\n if (!isBrowser()) {\n logger.debug(`${eventType} only for browser`);\n return;\n }\n if (typeof domElementId === 'string' && !domElementId) {\n logger.debug(\"Missing domElementId field in 'properties' for MediaAutoTrack event type.\");\n return;\n }\n const elementId = domElementId;\n const isElementLoaded = await checkElementLoaded(500, 5)(elementId);\n if (isElementLoaded) {\n const autoTrackConfigWithoutDomElementId = {\n ...config,\n event: {\n ...config.event,\n properties: otherProperties,\n },\n };\n const element = document.getElementById(elementId);\n switch (element?.tagName) {\n case MEDIA_TYPE.IFRAME:\n startIframeAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));\n break;\n case MEDIA_TYPE.VIDEO:\n case MEDIA_TYPE.AUDIO:\n if (element instanceof HTMLMediaElement) {\n startHTMLMediaAutoTracking(element, recordEvent(autoTrackConfigWithoutDomElementId, eventBuffer));\n }\n break;\n default:\n logger.debug(`Unsupported DOM element tag: ${element?.tagName}`);\n break;\n }\n }\n else {\n logger.debug('Cannot find the media element.');\n }\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cachedSession.mjs","sources":["../../../../../src/providers/personalize/utils/cachedSession.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Cache } from '@aws-amplify/core';\nimport { amplifyUuid, isBrowser } from '@aws-amplify/core/internals/utils';\nconst PERSONALIZE_CACHE_USERID = '_awsct_uid';\nconst PERSONALIZE_CACHE_SESSIONID = '_awsct_sid';\nconst DEFAULT_CACHE_PREFIX = 'personalize';\nconst DELIMITER = '.';\nconst CACHE_EXPIRY_IN_DAYS = 7;\nconst normalize = (key) => [key, isBrowser() ? window.location.host : DEFAULT_CACHE_PREFIX].join(DELIMITER);\nconst getCache = (key) => Cache.getItem(normalize(key));\nconst setCache = (key, value) => {\n const expiredAt = new Date(Date.now() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS);\n Cache.setItem(normalize(key), value, {\n expires: expiredAt.getTime(),\n });\n};\nexport const resolveCachedSession = async () => {\n let sessionId = await getCache(PERSONALIZE_CACHE_SESSIONID);\n if (!sessionId) {\n sessionId = amplifyUuid();\n setCache(PERSONALIZE_CACHE_SESSIONID, sessionId);\n }\n const userId = await getCache(PERSONALIZE_CACHE_USERID);\n return {\n sessionId,\n userId,\n };\n};\nexport const updateCachedSession = (newUserId, currentSessionId, currentUserId) => {\n const isNoCachedSession = !currentSessionId;\n const isSignOutCase = !newUserId && !currentUserId;\n const isSwitchUserCase = !!newUserId && !!currentUserId && newUserId !== currentUserId;\n const isRequireNewSession = isNoCachedSession || isSignOutCase || isSwitchUserCase;\n const isRequireUpdateSession = !!currentSessionId && !currentUserId && !!newUserId;\n if (isRequireNewSession) {\n const newSessionId = amplifyUuid();\n setCache(PERSONALIZE_CACHE_SESSIONID, newSessionId);\n setCache(PERSONALIZE_CACHE_USERID, newUserId);\n }\n else if (isRequireUpdateSession) {\n setCache(PERSONALIZE_CACHE_USERID, newUserId);\n }\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA,MAAM,wBAAwB,GAAG,YAAY;AAC7C,MAAM,2BAA2B,GAAG,YAAY;AAChD,MAAM,oBAAoB,GAAG,aAAa;AAC1C,MAAM,SAAS,GAAG,GAAG;AACrB,MAAM,oBAAoB,GAAG,CAAC;AAC9B,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3G,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACjC,IAAI,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,oBAAoB,CAAC;AAChF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE;AACzC,QAAQ,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;AACpC,KAAK,CAAC;AACN,CAAC;AACW,MAAC,oBAAoB,GAAG,YAAY;AAChD,IAAI,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC,2BAA2B,CAAC;AAC/D,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,QAAQ,SAAS,GAAG,WAAW,EAAE;AACjC,QAAQ,QAAQ,CAAC,2BAA2B,EAAE,SAAS,CAAC;AACxD;
|
|
1
|
+
{"version":3,"file":"cachedSession.mjs","sources":["../../../../../src/providers/personalize/utils/cachedSession.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Cache } from '@aws-amplify/core';\nimport { amplifyUuid, isBrowser } from '@aws-amplify/core/internals/utils';\nconst PERSONALIZE_CACHE_USERID = '_awsct_uid';\nconst PERSONALIZE_CACHE_SESSIONID = '_awsct_sid';\nconst DEFAULT_CACHE_PREFIX = 'personalize';\nconst DELIMITER = '.';\nconst CACHE_EXPIRY_IN_DAYS = 7;\nconst normalize = (key) => [key, isBrowser() ? window.location.host : DEFAULT_CACHE_PREFIX].join(DELIMITER);\nconst getCache = (key) => Cache.getItem(normalize(key));\nconst setCache = (key, value) => {\n const expiredAt = new Date(Date.now() + 3600000 * 24 * CACHE_EXPIRY_IN_DAYS);\n Cache.setItem(normalize(key), value, {\n expires: expiredAt.getTime(),\n });\n};\nexport const resolveCachedSession = async () => {\n let sessionId = await getCache(PERSONALIZE_CACHE_SESSIONID);\n if (!sessionId) {\n sessionId = amplifyUuid();\n setCache(PERSONALIZE_CACHE_SESSIONID, sessionId);\n }\n const userId = await getCache(PERSONALIZE_CACHE_USERID);\n return {\n sessionId,\n userId,\n };\n};\nexport const updateCachedSession = (newUserId, currentSessionId, currentUserId) => {\n const isNoCachedSession = !currentSessionId;\n const isSignOutCase = !newUserId && !currentUserId;\n const isSwitchUserCase = !!newUserId && !!currentUserId && newUserId !== currentUserId;\n const isRequireNewSession = isNoCachedSession || isSignOutCase || isSwitchUserCase;\n const isRequireUpdateSession = !!currentSessionId && !currentUserId && !!newUserId;\n if (isRequireNewSession) {\n const newSessionId = amplifyUuid();\n setCache(PERSONALIZE_CACHE_SESSIONID, newSessionId);\n setCache(PERSONALIZE_CACHE_USERID, newUserId);\n }\n else if (isRequireUpdateSession) {\n setCache(PERSONALIZE_CACHE_USERID, newUserId);\n }\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA,MAAM,wBAAwB,GAAG,YAAY;AAC7C,MAAM,2BAA2B,GAAG,YAAY;AAChD,MAAM,oBAAoB,GAAG,aAAa;AAC1C,MAAM,SAAS,GAAG,GAAG;AACrB,MAAM,oBAAoB,GAAG,CAAC;AAC9B,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3G,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACjC,IAAI,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,oBAAoB,CAAC;AAChF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE;AACzC,QAAQ,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;AACpC,KAAK,CAAC;AACN,CAAC;AACW,MAAC,oBAAoB,GAAG,YAAY;AAChD,IAAI,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC,2BAA2B,CAAC;AAC/D,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,QAAQ,SAAS,GAAG,WAAW,EAAE;AACjC,QAAQ,QAAQ,CAAC,2BAA2B,EAAE,SAAS,CAAC;AACxD,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC;AAC3D,IAAI,OAAO;AACX,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,KAAK;AACL;AACY,MAAC,mBAAmB,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,KAAK;AACnF,IAAI,MAAM,iBAAiB,GAAG,CAAC,gBAAgB;AAC/C,IAAI,MAAM,aAAa,GAAG,CAAC,SAAS,IAAI,CAAC,aAAa;AACtD,IAAI,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,aAAa,IAAI,SAAS,KAAK,aAAa;AAC1F,IAAI,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,aAAa,IAAI,gBAAgB;AACtF,IAAI,MAAM,sBAAsB,GAAG,CAAC,CAAC,gBAAgB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS;AACtF,IAAI,IAAI,mBAAmB,EAAE;AAC7B,QAAQ,MAAM,YAAY,GAAG,WAAW,EAAE;AAC1C,QAAQ,QAAQ,CAAC,2BAA2B,EAAE,YAAY,CAAC;AAC3D,QAAQ,QAAQ,CAAC,wBAAwB,EAAE,SAAS,CAAC;AACrD,IAAI;AACJ,SAAS,IAAI,sBAAsB,EAAE;AACrC,QAAQ,QAAQ,CAAC,wBAAwB,EAAE,SAAS,CAAC;AACrD,IAAI;AACJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/personalize/utils/getEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { haveCredentialsChanged, } from '@aws-amplify/core/internals/utils';\nimport { PersonalizeEventsClient, PutEventsCommand, } from '@aws-sdk/client-personalize-events';\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 DELIMITER = '#';\nconst createPutEventsCommand = (ids, events) => {\n const [trackingId, sessionId, userId] = ids.split(DELIMITER);\n return new PutEventsCommand({\n trackingId,\n sessionId,\n userId,\n eventList: events.map(event => ({\n eventId: event.event.eventId,\n eventType: event.event.eventType,\n properties: JSON.stringify(event.event.properties),\n sentAt: new Date(event.timestamp),\n })),\n });\n};\nconst submitEvents = async (events, client) => {\n const groupedByIds = Object.entries(groupBy(event => [event.trackingId, event.sessionId, event.userId]\n .filter(id => !!id)\n .join(DELIMITER), events));\n const requests = groupedByIds\n .map(([ids, groupedEvents]) => createPutEventsCommand(ids, groupedEvents))\n .map(command => client.send(command));\n await Promise.allSettled(requests);\n return Promise.resolve([]);\n};\nexport const getEventBuffer = ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }) => {\n const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');\n 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 getClient = () => {\n if (!cachedClient || credentialsHaveChanged) {\n cachedClients[sessionIdentityKey] = [\n new PersonalizeEventsClient({\n region,\n credentials,\n customUserAgent: userAgentValue,\n }),\n credentials,\n ];\n }\n const [personalizeClient] = cachedClients[sessionIdentityKey];\n return events => submitEvents(events, personalizeClient);\n };\n eventBufferMap[sessionIdentityKey] =\n new EventBuffer({\n bufferSize,\n flushSize,\n flushInterval,\n }, getClient);\n const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);\n for (const releaseSessionKey of releaseSessionKeys) {\n eventBufferMap[releaseSessionKey].flushAll().finally(() => {\n eventBufferMap[releaseSessionKey].release();\n delete eventBufferMap[releaseSessionKey];\n delete cachedClients[releaseSessionKey];\n });\n }\n }\n return eventBufferMap[sessionIdentityKey];\n};\n"],"names":[],"mappings":";;;;;;;;;;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,EAAE;AACzB,MAAM,aAAa,GAAG,EAAE;AACxB,MAAM,SAAS,GAAG,GAAG;AACrB,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK;AAChD,IAAI,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;AAChE,IAAI,OAAO,IAAI,gBAAgB,CAAC;AAChC,QAAQ,UAAU;AAClB,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;AACxC,YAAY,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;AACxC,YAAY,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;AAC5C,YAAY,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AAC9D,YAAY,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7C,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,CAAC;AACD,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,MAAM,KAAK;AAC/C,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM;AACzG,SAAS,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE;AAC1B,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AAClC,IAAI,MAAM,QAAQ,GAAG;AACrB,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,sBAAsB,CAAC,GAAG,EAAE,aAAa,CAAC;AACjF,SAAS,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AACtC,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;AAC9B,CAAC;AACW,MAAC,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK;AAC9H,IAAI,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9E,IAAI,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,IAAI,EAAE;AACrF,IAAI,IAAI,sBAAsB,GAAG,KAAK;AACtC;AACA,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,sBAAsB,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,WAAW,CAAC;AACvF;
|
|
1
|
+
{"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/personalize/utils/getEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { haveCredentialsChanged, } from '@aws-amplify/core/internals/utils';\nimport { PersonalizeEventsClient, PutEventsCommand, } from '@aws-sdk/client-personalize-events';\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 DELIMITER = '#';\nconst createPutEventsCommand = (ids, events) => {\n const [trackingId, sessionId, userId] = ids.split(DELIMITER);\n return new PutEventsCommand({\n trackingId,\n sessionId,\n userId,\n eventList: events.map(event => ({\n eventId: event.event.eventId,\n eventType: event.event.eventType,\n properties: JSON.stringify(event.event.properties),\n sentAt: new Date(event.timestamp),\n })),\n });\n};\nconst submitEvents = async (events, client) => {\n const groupedByIds = Object.entries(groupBy(event => [event.trackingId, event.sessionId, event.userId]\n .filter(id => !!id)\n .join(DELIMITER), events));\n const requests = groupedByIds\n .map(([ids, groupedEvents]) => createPutEventsCommand(ids, groupedEvents))\n .map(command => client.send(command));\n await Promise.allSettled(requests);\n return Promise.resolve([]);\n};\nexport const getEventBuffer = ({ region, flushSize, flushInterval, bufferSize, credentials, identityId, userAgentValue, }) => {\n const sessionIdentityKey = [region, identityId].filter(x => !!x).join('-');\n 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 getClient = () => {\n if (!cachedClient || credentialsHaveChanged) {\n cachedClients[sessionIdentityKey] = [\n new PersonalizeEventsClient({\n region,\n credentials,\n customUserAgent: userAgentValue,\n }),\n credentials,\n ];\n }\n const [personalizeClient] = cachedClients[sessionIdentityKey];\n return events => submitEvents(events, personalizeClient);\n };\n eventBufferMap[sessionIdentityKey] =\n new EventBuffer({\n bufferSize,\n flushSize,\n flushInterval,\n }, getClient);\n const releaseSessionKeys = Object.keys(eventBufferMap).filter(key => key !== sessionIdentityKey);\n for (const releaseSessionKey of releaseSessionKeys) {\n eventBufferMap[releaseSessionKey].flushAll().finally(() => {\n eventBufferMap[releaseSessionKey].release();\n delete eventBufferMap[releaseSessionKey];\n delete cachedClients[releaseSessionKey];\n });\n }\n }\n return eventBufferMap[sessionIdentityKey];\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/pinpoint/apis/flushEvents.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { flushEvents as flushEventsCore } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { resolveConfig, resolveCredentials } from '../utils';\nimport { getAnalyticsUserAgentString } from '../../../utils';\nconst logger = new ConsoleLogger('Analytics');\n/**\n * Flushes all buffered Pinpoint events to the service.\n *\n * @note\n * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking\n * this API may not be included in the flush.\n */\nexport const flushEvents = () => {\n const { appId, region, bufferSize, flushSize, flushInterval, resendLimit } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => {\n flushEventsCore({\n appId,\n region,\n credentials,\n identityId,\n bufferSize,\n flushSize,\n flushInterval,\n resendLimit,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n })\n .catch(e => {\n logger.warn('Failed to flush events', e);\n });\n};\n"],"names":["flushEventsCore"],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE;AAChG,IAAI,kBAAkB;AACtB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AAC/C,QAAQA,aAAe,CAAC;AACxB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC/E,SAAS,CAAC;AACV,
|
|
1
|
+
{"version":3,"file":"flushEvents.mjs","sources":["../../../../../src/providers/pinpoint/apis/flushEvents.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { flushEvents as flushEventsCore } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { resolveConfig, resolveCredentials } from '../utils';\nimport { getAnalyticsUserAgentString } from '../../../utils';\nconst logger = new ConsoleLogger('Analytics');\n/**\n * Flushes all buffered Pinpoint events to the service.\n *\n * @note\n * This API will make a best-effort attempt to flush events from the buffer. Events recorded immediately after invoking\n * this API may not be included in the flush.\n */\nexport const flushEvents = () => {\n const { appId, region, bufferSize, flushSize, flushInterval, resendLimit } = resolveConfig();\n resolveCredentials()\n .then(({ credentials, identityId }) => {\n flushEventsCore({\n appId,\n region,\n credentials,\n identityId,\n bufferSize,\n flushSize,\n flushInterval,\n resendLimit,\n userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n });\n })\n .catch(e => {\n logger.warn('Failed to flush events', e);\n });\n};\n"],"names":["flushEventsCore"],"mappings":";;;;;;;;;;;;AAAA;AACA;AAMA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE;AAChG,IAAI,kBAAkB;AACtB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AAC/C,QAAQA,aAAe,CAAC;AACxB,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC/E,SAAS,CAAC;AACV,IAAI,CAAC;AACL,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB,QAAQ,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAChD,IAAI,CAAC,CAAC;AACN;;;;"}
|