@aws-amplify/core 6.12.2-unstable.43e28a6.0 → 6.12.2-unstable.f94a30b.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,5 +3,5 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.version = void 0;
5
5
  // generated by genversion
6
- exports.version = '6.15.2-unstable.43e28a6.0+43e28a6';
6
+ exports.version = '6.15.2-unstable.f94a30b.0+f94a30b';
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../../../src/Platform/version.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// generated by genversion\nexports.version = '6.15.2-unstable.43e28a6.0+43e28a6';\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,OAAO,GAAG,MAAM;AACxB;AACA,OAAO,CAAC,OAAO,GAAG,mCAAmC;;"}
1
+ {"version":3,"file":"version.js","sources":["../../../src/Platform/version.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// generated by genversion\nexports.version = '6.15.2-unstable.f94a30b.0+f94a30b';\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,OAAO,GAAG,MAAM;AACxB;AACA,OAAO,CAAC,OAAO,GAAG,mCAAmC;;"}
@@ -27,7 +27,9 @@ exports.defaultConfig = {
27
27
  endpointResolver,
28
28
  retryDecider: (0, retry_1.getRetryDecider)(json_1.parseJsonError),
29
29
  computeDelay: retry_1.jitteredBackoff,
30
- userAgentValue: (0, Platform_1.getAmplifyUserAgent)(),
30
+ get userAgentValue() {
31
+ return (0, Platform_1.getAmplifyUserAgent)();
32
+ },
31
33
  };
32
34
  /**
33
35
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sources":["../../../../src/awsClients/pinpoint/base.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.getSharedHeaders = exports.defaultConfig = void 0;\nconst endpoints_1 = require(\"../../clients/endpoints\");\nconst retry_1 = require(\"../../clients/middleware/retry\");\nconst json_1 = require(\"../../clients/serde/json\");\nconst Platform_1 = require(\"../../Platform\");\nconst amplifyUrl_1 = require(\"../../utils/amplifyUrl\");\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nconst SERVICE_NAME = 'mobiletargeting';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nconst endpointResolver = ({ region }) => ({\n url: new amplifyUrl_1.AmplifyUrl(`https://pinpoint.${region}.${(0, endpoints_1.getDnsSuffix)(region)}`),\n});\n/**\n * @internal\n */\nexports.defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver,\n retryDecider: (0, retry_1.getRetryDecider)(json_1.parseJsonError),\n computeDelay: retry_1.jitteredBackoff,\n userAgentValue: (0, Platform_1.getAmplifyUserAgent)(),\n};\n/**\n * @internal\n */\nconst getSharedHeaders = () => ({\n 'content-type': 'application/json',\n});\nexports.getSharedHeaders = getSharedHeaders;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,aAAa,GAAG,MAAM;AACzD,MAAM,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;AACtD,MAAM,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAC;AACzD,MAAM,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;AAClD,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;AAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,wBAAwB,CAAC;AACtD;AACA;AACA;AACA,MAAM,YAAY,GAAG,iBAAiB;AACtC;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM;AAC1C,IAAI,GAAG,EAAE,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA;AACA;AACA,OAAO,CAAC,aAAa,GAAG;AACxB,IAAI,OAAO,EAAE,YAAY;AACzB,IAAI,gBAAgB;AACpB,IAAI,YAAY,EAAE,IAAI,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC;AACrE,IAAI,YAAY,EAAE,OAAO,CAAC,eAAe;AACzC,IAAI,cAAc,EAAE,IAAI,UAAU,CAAC,mBAAmB,GAAG;AACzD,CAAC;AACD;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,OAAO;AAChC,IAAI,cAAc,EAAE,kBAAkB;AACtC,CAAC,CAAC;AACF,OAAO,CAAC,gBAAgB,GAAG,gBAAgB;;"}
1
+ {"version":3,"file":"base.js","sources":["../../../../src/awsClients/pinpoint/base.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.getSharedHeaders = exports.defaultConfig = void 0;\nconst endpoints_1 = require(\"../../clients/endpoints\");\nconst retry_1 = require(\"../../clients/middleware/retry\");\nconst json_1 = require(\"../../clients/serde/json\");\nconst Platform_1 = require(\"../../Platform\");\nconst amplifyUrl_1 = require(\"../../utils/amplifyUrl\");\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nconst SERVICE_NAME = 'mobiletargeting';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nconst endpointResolver = ({ region }) => ({\n url: new amplifyUrl_1.AmplifyUrl(`https://pinpoint.${region}.${(0, endpoints_1.getDnsSuffix)(region)}`),\n});\n/**\n * @internal\n */\nexports.defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver,\n retryDecider: (0, retry_1.getRetryDecider)(json_1.parseJsonError),\n computeDelay: retry_1.jitteredBackoff,\n get userAgentValue() {\n return (0, Platform_1.getAmplifyUserAgent)();\n },\n};\n/**\n * @internal\n */\nconst getSharedHeaders = () => ({\n 'content-type': 'application/json',\n});\nexports.getSharedHeaders = getSharedHeaders;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,aAAa,GAAG,MAAM;AACzD,MAAM,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;AACtD,MAAM,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAC;AACzD,MAAM,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;AAClD,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;AAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,wBAAwB,CAAC;AACtD;AACA;AACA;AACA,MAAM,YAAY,GAAG,iBAAiB;AACtC;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM;AAC1C,IAAI,GAAG,EAAE,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA;AACA;AACA,OAAO,CAAC,aAAa,GAAG;AACxB,IAAI,OAAO,EAAE,YAAY;AACzB,IAAI,gBAAgB;AACpB,IAAI,YAAY,EAAE,IAAI,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC;AACrE,IAAI,YAAY,EAAE,OAAO,CAAC,eAAe;AACzC,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,UAAU,CAAC,mBAAmB,GAAG;AACpD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,OAAO;AAChC,IAAI,cAAc,EAAE,kBAAkB;AACtC,CAAC,CAAC;AACF,OAAO,CAAC,gBAAgB,GAAG,gBAAgB;;"}
@@ -1 +1 @@
1
- export declare const version = "6.15.2-unstable.43e28a6.0+43e28a6";
1
+ export declare const version = "6.15.2-unstable.f94a30b.0+f94a30b";
@@ -1,5 +1,5 @@
1
1
  // generated by genversion
2
- const version = '6.15.2-unstable.43e28a6.0+43e28a6';
2
+ const version = '6.15.2-unstable.f94a30b.0+f94a30b';
3
3
 
4
4
  export { version };
5
5
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../src/Platform/version.ts"],"sourcesContent":["// generated by genversion\nexport const version = '6.15.2-unstable.43e28a6.0+43e28a6';\n"],"names":[],"mappings":"AAAA;AACY,MAAC,OAAO,GAAG;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../src/Platform/version.ts"],"sourcesContent":["// generated by genversion\nexport const version = '6.15.2-unstable.f94a30b.0+f94a30b';\n"],"names":[],"mappings":"AAAA;AACY,MAAC,OAAO,GAAG;;;;"}
@@ -16,7 +16,6 @@ import '../BackgroundProcessManager/types.mjs';
16
16
  import '../Reachability/Reachability.mjs';
17
17
  import '../Hub/index.mjs';
18
18
  import '../utils/sessionListener/index.mjs';
19
- import '../awsClients/pinpoint/base.mjs';
20
19
  import '../awsClients/pinpoint/errorHelpers.mjs';
21
20
  import '../Cache/index.mjs';
22
21
  import { record } from '../providers/pinpoint/apis/record.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceWorker.mjs","sources":["../../../src/ServiceWorker/ServiceWorker.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '../Logger';\nimport { isBrowser } from '../utils';\nimport { AmplifyError } from '../errors';\nimport { record } from '../providers/pinpoint';\nimport { Amplify, fetchAuthSession } from '../singleton';\nimport { ServiceWorkerErrorCode, assert } from './errorHelpers';\n/**\n * Provides a means to registering a service worker in the browser\n * and communicating with it via postMessage events.\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/\n *\n * postMessage events are currently not supported in all browsers. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API\n *\n * At the minmum this class will register the service worker and listen\n * and attempt to dispatch messages on state change and record analytics\n * events based on the service worker lifecycle.\n */\nexport class ServiceWorkerClass {\n constructor() {\n // The AWS Amplify logger\n this._logger = new ConsoleLogger('ServiceWorker');\n }\n /**\n * Get the currently active service worker\n */\n get serviceWorker() {\n assert(this._serviceWorker !== undefined, ServiceWorkerErrorCode.UndefinedInstance);\n return this._serviceWorker;\n }\n /**\n * Register the service-worker.js file in the browser\n * Make sure the service-worker.js is part of the build\n * for example with Angular, modify the angular-cli.json file\n * and add to \"assets\" array \"service-worker.js\"\n * @param {string} filePath Service worker file. Defaults to \"/service-worker.js\"\n * @param {string} scope The service worker scope. Defaults to \"/\"\n * - API Doc: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register\n * @returns {Promise}\n *\t- resolve(ServiceWorkerRegistration)\n *\t- reject(Error)\n **/\n register(filePath = '/service-worker.js', scope = '/') {\n this._logger.debug(`registering ${filePath}`);\n this._logger.debug(`registering service worker with scope ${scope}`);\n return new Promise((resolve, reject) => {\n if (navigator && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register(filePath, {\n scope,\n })\n .then(registration => {\n if (registration.installing) {\n this._serviceWorker = registration.installing;\n }\n else if (registration.waiting) {\n this._serviceWorker = registration.waiting;\n }\n else if (registration.active) {\n this._serviceWorker = registration.active;\n }\n this._registration = registration;\n this._setupListeners();\n this._logger.debug(`Service Worker Registration Success: ${registration}`);\n resolve(registration);\n })\n .catch(error => {\n this._logger.debug(`Service Worker Registration Failed ${error}`);\n reject(new AmplifyError({\n name: ServiceWorkerErrorCode.Unavailable,\n message: 'Service Worker not available',\n underlyingError: error,\n }));\n });\n }\n else {\n reject(new AmplifyError({\n name: ServiceWorkerErrorCode.Unavailable,\n message: 'Service Worker not available',\n }));\n }\n });\n }\n /**\n * Enable web push notifications. If not subscribed, a new subscription will\n * be created and registered.\n * \tTest Push Server: https://web-push-codelab.glitch.me/\n * \tPush Server Libraries: https://github.com/web-push-libs/\n * \tAPI Doc: https://developers.google.com/web/fundamentals/codelabs/push-notifications/\n * @param publicKey\n * @returns {Promise}\n * \t- resolve(PushSubscription)\n * - reject(Error)\n */\n enablePush(publicKey) {\n assert(this._registration !== undefined, ServiceWorkerErrorCode.UndefinedRegistration);\n this._publicKey = publicKey;\n return new Promise((resolve, reject) => {\n if (isBrowser()) {\n assert(this._registration !== undefined, ServiceWorkerErrorCode.UndefinedRegistration);\n this._registration.pushManager.getSubscription().then(subscription => {\n if (subscription) {\n this._subscription = subscription;\n this._logger.debug(`User is subscribed to push: ${JSON.stringify(subscription)}`);\n resolve(subscription);\n }\n else {\n this._logger.debug(`User is NOT subscribed to push`);\n return this._registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: this._urlB64ToUint8Array(publicKey),\n })\n .then(pushManagerSubscription => {\n this._subscription = pushManagerSubscription;\n this._logger.debug(`User subscribed: ${JSON.stringify(pushManagerSubscription)}`);\n resolve(pushManagerSubscription);\n })\n .catch(error => {\n this._logger.error(error);\n });\n }\n });\n }\n else {\n reject(new AmplifyError({\n name: ServiceWorkerErrorCode.Unavailable,\n message: 'Service Worker not available',\n }));\n }\n });\n }\n /**\n * Convert a base64 encoded string to a Uint8 array for the push server key\n * @param base64String\n */\n _urlB64ToUint8Array(base64String) {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding)\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n }\n /**\n * Send a message to the service worker. The service worker needs\n * to implement `self.addEventListener('message') to handle the\n * message. This ***currently*** does not work in Safari or IE.\n * @param {object | string} message An arbitrary JSON object or string message to send to the service worker\n *\t- see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable\n * @returns {Promise}\n **/\n send(message) {\n if (this._serviceWorker) {\n this._serviceWorker.postMessage(typeof message === 'object' ? JSON.stringify(message) : message);\n }\n }\n /**\n * Listen for service worker state change and message events\n * https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state\n **/\n _setupListeners() {\n this.serviceWorker.addEventListener('statechange', async () => {\n const currentState = this.serviceWorker.state;\n this._logger.debug(`ServiceWorker statechange: ${currentState}`);\n const { appId, region, bufferSize, flushInterval, flushSize, resendLimit, } = Amplify.getConfig().Analytics?.Pinpoint ?? {};\n const { credentials } = await fetchAuthSession();\n if (appId && region && credentials) {\n // Pinpoint is configured, record an event\n record({\n appId,\n region,\n category: 'Core',\n credentials,\n bufferSize,\n flushInterval,\n flushSize,\n resendLimit,\n event: {\n name: 'ServiceWorker',\n attributes: {\n state: currentState,\n },\n },\n });\n }\n });\n this.serviceWorker.addEventListener('message', event => {\n this._logger.debug(`ServiceWorker message event: ${event}`);\n });\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceWorker.mjs","sources":["../../../src/ServiceWorker/ServiceWorker.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '../Logger';\nimport { isBrowser } from '../utils';\nimport { AmplifyError } from '../errors';\nimport { record } from '../providers/pinpoint';\nimport { Amplify, fetchAuthSession } from '../singleton';\nimport { ServiceWorkerErrorCode, assert } from './errorHelpers';\n/**\n * Provides a means to registering a service worker in the browser\n * and communicating with it via postMessage events.\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/\n *\n * postMessage events are currently not supported in all browsers. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API\n *\n * At the minmum this class will register the service worker and listen\n * and attempt to dispatch messages on state change and record analytics\n * events based on the service worker lifecycle.\n */\nexport class ServiceWorkerClass {\n constructor() {\n // The AWS Amplify logger\n this._logger = new ConsoleLogger('ServiceWorker');\n }\n /**\n * Get the currently active service worker\n */\n get serviceWorker() {\n assert(this._serviceWorker !== undefined, ServiceWorkerErrorCode.UndefinedInstance);\n return this._serviceWorker;\n }\n /**\n * Register the service-worker.js file in the browser\n * Make sure the service-worker.js is part of the build\n * for example with Angular, modify the angular-cli.json file\n * and add to \"assets\" array \"service-worker.js\"\n * @param {string} filePath Service worker file. Defaults to \"/service-worker.js\"\n * @param {string} scope The service worker scope. Defaults to \"/\"\n * - API Doc: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register\n * @returns {Promise}\n *\t- resolve(ServiceWorkerRegistration)\n *\t- reject(Error)\n **/\n register(filePath = '/service-worker.js', scope = '/') {\n this._logger.debug(`registering ${filePath}`);\n this._logger.debug(`registering service worker with scope ${scope}`);\n return new Promise((resolve, reject) => {\n if (navigator && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register(filePath, {\n scope,\n })\n .then(registration => {\n if (registration.installing) {\n this._serviceWorker = registration.installing;\n }\n else if (registration.waiting) {\n this._serviceWorker = registration.waiting;\n }\n else if (registration.active) {\n this._serviceWorker = registration.active;\n }\n this._registration = registration;\n this._setupListeners();\n this._logger.debug(`Service Worker Registration Success: ${registration}`);\n resolve(registration);\n })\n .catch(error => {\n this._logger.debug(`Service Worker Registration Failed ${error}`);\n reject(new AmplifyError({\n name: ServiceWorkerErrorCode.Unavailable,\n message: 'Service Worker not available',\n underlyingError: error,\n }));\n });\n }\n else {\n reject(new AmplifyError({\n name: ServiceWorkerErrorCode.Unavailable,\n message: 'Service Worker not available',\n }));\n }\n });\n }\n /**\n * Enable web push notifications. If not subscribed, a new subscription will\n * be created and registered.\n * \tTest Push Server: https://web-push-codelab.glitch.me/\n * \tPush Server Libraries: https://github.com/web-push-libs/\n * \tAPI Doc: https://developers.google.com/web/fundamentals/codelabs/push-notifications/\n * @param publicKey\n * @returns {Promise}\n * \t- resolve(PushSubscription)\n * - reject(Error)\n */\n enablePush(publicKey) {\n assert(this._registration !== undefined, ServiceWorkerErrorCode.UndefinedRegistration);\n this._publicKey = publicKey;\n return new Promise((resolve, reject) => {\n if (isBrowser()) {\n assert(this._registration !== undefined, ServiceWorkerErrorCode.UndefinedRegistration);\n this._registration.pushManager.getSubscription().then(subscription => {\n if (subscription) {\n this._subscription = subscription;\n this._logger.debug(`User is subscribed to push: ${JSON.stringify(subscription)}`);\n resolve(subscription);\n }\n else {\n this._logger.debug(`User is NOT subscribed to push`);\n return this._registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: this._urlB64ToUint8Array(publicKey),\n })\n .then(pushManagerSubscription => {\n this._subscription = pushManagerSubscription;\n this._logger.debug(`User subscribed: ${JSON.stringify(pushManagerSubscription)}`);\n resolve(pushManagerSubscription);\n })\n .catch(error => {\n this._logger.error(error);\n });\n }\n });\n }\n else {\n reject(new AmplifyError({\n name: ServiceWorkerErrorCode.Unavailable,\n message: 'Service Worker not available',\n }));\n }\n });\n }\n /**\n * Convert a base64 encoded string to a Uint8 array for the push server key\n * @param base64String\n */\n _urlB64ToUint8Array(base64String) {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding)\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n }\n /**\n * Send a message to the service worker. The service worker needs\n * to implement `self.addEventListener('message') to handle the\n * message. This ***currently*** does not work in Safari or IE.\n * @param {object | string} message An arbitrary JSON object or string message to send to the service worker\n *\t- see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable\n * @returns {Promise}\n **/\n send(message) {\n if (this._serviceWorker) {\n this._serviceWorker.postMessage(typeof message === 'object' ? JSON.stringify(message) : message);\n }\n }\n /**\n * Listen for service worker state change and message events\n * https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state\n **/\n _setupListeners() {\n this.serviceWorker.addEventListener('statechange', async () => {\n const currentState = this.serviceWorker.state;\n this._logger.debug(`ServiceWorker statechange: ${currentState}`);\n const { appId, region, bufferSize, flushInterval, flushSize, resendLimit, } = Amplify.getConfig().Analytics?.Pinpoint ?? {};\n const { credentials } = await fetchAuthSession();\n if (appId && region && credentials) {\n // Pinpoint is configured, record an event\n record({\n appId,\n region,\n category: 'Core',\n credentials,\n bufferSize,\n flushInterval,\n flushSize,\n resendLimit,\n event: {\n name: 'ServiceWorker',\n attributes: {\n state: currentState,\n },\n },\n });\n }\n });\n this.serviceWorker.addEventListener('message', event => {\n this._logger.debug(`ServiceWorker message event: ${event}`);\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare const defaultConfig: {
9
9
  };
10
10
  retryDecider: (response?: import("../../clients/types").HttpResponse, error?: unknown) => Promise<import("../../clients/middleware/retry").RetryDeciderOutput>;
11
11
  computeDelay: (attempt: number) => number;
12
- userAgentValue: string;
12
+ readonly userAgentValue: string;
13
13
  };
14
14
  /**
15
15
  * @internal
@@ -39,7 +39,9 @@ const defaultConfig = {
39
39
  endpointResolver,
40
40
  retryDecider: getRetryDecider(parseJsonError),
41
41
  computeDelay: jitteredBackoff,
42
- userAgentValue: getAmplifyUserAgent(),
42
+ get userAgentValue() {
43
+ return getAmplifyUserAgent();
44
+ },
43
45
  };
44
46
  /**
45
47
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"base.mjs","sources":["../../../../src/awsClients/pinpoint/base.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getDnsSuffix } from '../../clients/endpoints';\nimport { getRetryDecider, jitteredBackoff, } from '../../clients/middleware/retry';\nimport { parseJsonError } from '../../clients/serde/json';\nimport { getAmplifyUserAgent } from '../../Platform';\nimport { AmplifyUrl } from '../../utils/amplifyUrl';\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nconst SERVICE_NAME = 'mobiletargeting';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nconst endpointResolver = ({ region }) => ({\n url: new AmplifyUrl(`https://pinpoint.${region}.${getDnsSuffix(region)}`),\n});\n/**\n * @internal\n */\nexport const defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver,\n retryDecider: getRetryDecider(parseJsonError),\n computeDelay: jitteredBackoff,\n userAgentValue: getAmplifyUserAgent(),\n};\n/**\n * @internal\n */\nexport const getSharedHeaders = () => ({\n 'content-type': 'application/json',\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAMA;AACA;AACA;AACA,MAAM,YAAY,GAAG,iBAAiB;AACtC;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM;AAC1C,IAAI,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC;AACF;AACA;AACA;AACY,MAAC,aAAa,GAAG;AAC7B,IAAI,OAAO,EAAE,YAAY;AACzB,IAAI,gBAAgB;AACpB,IAAI,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC;AACjD,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,cAAc,EAAE,mBAAmB,EAAE;AACzC;AACA;AACA;AACA;AACY,MAAC,gBAAgB,GAAG,OAAO;AACvC,IAAI,cAAc,EAAE,kBAAkB;AACtC,CAAC;;;;"}
1
+ {"version":3,"file":"base.mjs","sources":["../../../../src/awsClients/pinpoint/base.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getDnsSuffix } from '../../clients/endpoints';\nimport { getRetryDecider, jitteredBackoff, } from '../../clients/middleware/retry';\nimport { parseJsonError } from '../../clients/serde/json';\nimport { getAmplifyUserAgent } from '../../Platform';\nimport { AmplifyUrl } from '../../utils/amplifyUrl';\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nconst SERVICE_NAME = 'mobiletargeting';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nconst endpointResolver = ({ region }) => ({\n url: new AmplifyUrl(`https://pinpoint.${region}.${getDnsSuffix(region)}`),\n});\n/**\n * @internal\n */\nexport const defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver,\n retryDecider: getRetryDecider(parseJsonError),\n computeDelay: jitteredBackoff,\n get userAgentValue() {\n return getAmplifyUserAgent();\n },\n};\n/**\n * @internal\n */\nexport const getSharedHeaders = () => ({\n 'content-type': 'application/json',\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAMA;AACA;AACA;AACA,MAAM,YAAY,GAAG,iBAAiB;AACtC;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM;AAC1C,IAAI,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC;AACF;AACA;AACA;AACY,MAAC,aAAa,GAAG;AAC7B,IAAI,OAAO,EAAE,YAAY;AACzB,IAAI,gBAAgB;AACpB,IAAI,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC;AACjD,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,mBAAmB,EAAE;AACpC,KAAK;AACL;AACA;AACA;AACA;AACY,MAAC,gBAAgB,GAAG,OAAO;AACvC,IAAI,cAAc,EAAE,kBAAkB;AACtC,CAAC;;;;"}
@@ -11,7 +11,7 @@ export declare const getInAppMessages: (config: {
11
11
  })) | undefined;
12
12
  retryDecider?: (((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("../../clients/types").MiddlewareContext) => Promise<import("../../clients").RetryDeciderOutput>) & ((response?: HttpResponse, error?: unknown) => Promise<import("../../clients").RetryDeciderOutput>)) | undefined;
13
13
  computeDelay?: ((attempt: number) => number) | undefined;
14
- userAgentValue?: string | undefined;
14
+ readonly userAgentValue?: string | undefined;
15
15
  } & {
16
16
  abortSignal?: AbortSignal | undefined;
17
17
  cache?: RequestCache | undefined;
@@ -11,7 +11,7 @@ export declare const putEvents: (config: {
11
11
  })) | undefined;
12
12
  retryDecider?: (((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("../../clients/types").MiddlewareContext) => Promise<import("../../clients").RetryDeciderOutput>) & ((response?: HttpResponse, error?: unknown) => Promise<import("../../clients").RetryDeciderOutput>)) | undefined;
13
13
  computeDelay?: ((attempt: number) => number) | undefined;
14
- userAgentValue?: string | undefined;
14
+ readonly userAgentValue?: string | undefined;
15
15
  } & {
16
16
  abortSignal?: AbortSignal | undefined;
17
17
  cache?: RequestCache | undefined;
@@ -11,7 +11,7 @@ export declare const updateEndpoint: (config: {
11
11
  })) | undefined;
12
12
  retryDecider?: (((response?: HttpResponse | undefined, error?: unknown, middlewareContext?: import("../../clients/types").MiddlewareContext) => Promise<import("../../clients").RetryDeciderOutput>) & ((response?: HttpResponse, error?: unknown) => Promise<import("../../clients").RetryDeciderOutput>)) | undefined;
13
13
  computeDelay?: ((attempt: number) => number) | undefined;
14
- userAgentValue?: string | undefined;
14
+ readonly userAgentValue?: string | undefined;
15
15
  } & {
16
16
  abortSignal?: AbortSignal | undefined;
17
17
  cache?: RequestCache | undefined;
@@ -13,7 +13,6 @@ import '../../../BackgroundProcessManager/types.mjs';
13
13
  import '../../../Reachability/Reachability.mjs';
14
14
  import '../../../Hub/index.mjs';
15
15
  import '../../../utils/sessionListener/index.mjs';
16
- import '../../../awsClients/pinpoint/base.mjs';
17
16
  import '../../../awsClients/pinpoint/errorHelpers.mjs';
18
17
  import { updateEndpoint as updateEndpoint$1 } from '../../../awsClients/pinpoint/updateEndpoint.mjs';
19
18
  import { cacheEndpointId } from '../utils/cacheEndpointId.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"updateEndpoint.mjs","sources":["../../../../../src/providers/pinpoint/apis/updateEndpoint.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { updateEndpoint as clientUpdateEndpoint, } from '../../../awsClients/pinpoint';\nimport { amplifyUuid } from '../../../utils/amplifyUuid';\nimport { getClientInfo } from '../../../utils/getClientInfo';\nimport { cacheEndpointId } from '../utils/cacheEndpointId';\nimport { clearCreatedEndpointId, createEndpointId, } from '../utils/createEndpointId';\nimport { getEndpointId } from '../utils/getEndpointId';\n/**\n * @internal\n */\nexport const updateEndpoint = async ({ address, appId, category, channelType, credentials, identityId, optOut, region, userAttributes, userId, userProfile, userAgentValue, }) => {\n const endpointId = await getEndpointId(appId, category);\n // only generate a new endpoint id if one was not found in cache\n const createdEndpointId = !endpointId\n ? createEndpointId(appId, category)\n : undefined;\n const { customProperties, demographic, email, location, metrics, name, plan, } = userProfile ?? {};\n // only automatically populate the endpoint with client info and identity id upon endpoint creation to\n // avoid overwriting the endpoint with these values every time the endpoint is updated\n const demographicsFromClientInfo = {};\n const resolvedUserId = createdEndpointId ? (userId ?? identityId) : userId;\n if (createdEndpointId) {\n const clientInfo = getClientInfo();\n demographicsFromClientInfo.appVersion = clientInfo.appVersion;\n demographicsFromClientInfo.make = clientInfo.make;\n demographicsFromClientInfo.model = clientInfo.model;\n demographicsFromClientInfo.modelVersion = clientInfo.version;\n demographicsFromClientInfo.platform = clientInfo.platform;\n }\n const mergedDemographic = {\n ...demographicsFromClientInfo,\n ...demographic,\n };\n const attributes = {\n ...(email && { email: [email] }),\n ...(name && { name: [name] }),\n ...(plan && { plan: [plan] }),\n ...customProperties,\n };\n const shouldAddDemographics = createdEndpointId || demographic;\n const shouldAddAttributes = email || customProperties || name || plan;\n const shouldAddUser = resolvedUserId || userAttributes;\n const input = {\n ApplicationId: appId,\n EndpointId: endpointId ?? createdEndpointId,\n EndpointRequest: {\n RequestId: amplifyUuid(),\n EffectiveDate: new Date().toISOString(),\n ChannelType: channelType,\n Address: address,\n ...(shouldAddAttributes && { Attributes: attributes }),\n ...(shouldAddDemographics && {\n Demographic: {\n AppVersion: mergedDemographic.appVersion,\n Locale: mergedDemographic.locale,\n Make: mergedDemographic.make,\n Model: mergedDemographic.model,\n ModelVersion: mergedDemographic.modelVersion,\n Platform: mergedDemographic.platform,\n PlatformVersion: mergedDemographic.platformVersion,\n Timezone: mergedDemographic.timezone,\n },\n }),\n ...(location && {\n Location: {\n City: location.city,\n Country: location.country,\n Latitude: location.latitude,\n Longitude: location.longitude,\n PostalCode: location.postalCode,\n Region: location.region,\n },\n }),\n Metrics: metrics,\n OptOut: optOut,\n ...(shouldAddUser && {\n User: {\n UserId: resolvedUserId,\n UserAttributes: userAttributes,\n },\n }),\n },\n };\n try {\n await clientUpdateEndpoint({ credentials, region, userAgentValue }, input);\n // if we had to create an endpoint id, we need to now cache it\n if (createdEndpointId) {\n await cacheEndpointId(appId, category, createdEndpointId);\n }\n }\n finally {\n // at this point, we completely reset the behavior so even if the update was unsuccessful\n // we can just start over with a newly created endpoint id\n if (createdEndpointId) {\n clearCreatedEndpointId(appId, category);\n }\n }\n};\n"],"names":["clientUpdateEndpoint"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAOA;AACA;AACA;AACY,MAAC,cAAc,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,KAAK;AAClL,IAAI,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC3D;AACA,IAAI,MAAM,iBAAiB,GAAG,CAAC;AAC/B,UAAU,gBAAgB,CAAC,KAAK,EAAE,QAAQ;AAC1C,UAAU,SAAS;AACnB,IAAI,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,WAAW,IAAI,EAAE;AACtG;AACA;AACA,IAAI,MAAM,0BAA0B,GAAG,EAAE;AACzC,IAAI,MAAM,cAAc,GAAG,iBAAiB,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM;AAC9E,IAAI,IAAI,iBAAiB,EAAE;AAC3B,QAAQ,MAAM,UAAU,GAAG,aAAa,EAAE;AAC1C,QAAQ,0BAA0B,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU;AACrE,QAAQ,0BAA0B,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;AACzD,QAAQ,0BAA0B,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK;AAC3D,QAAQ,0BAA0B,CAAC,YAAY,GAAG,UAAU,CAAC,OAAO;AACpE,QAAQ,0BAA0B,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ;AACjE;AACA,IAAI,MAAM,iBAAiB,GAAG;AAC9B,QAAQ,GAAG,0BAA0B;AACrC,QAAQ,GAAG,WAAW;AACtB,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,IAAI,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,QAAQ,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACrC,QAAQ,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACrC,QAAQ,GAAG,gBAAgB;AAC3B,KAAK;AACL,IAAI,MAAM,qBAAqB,GAAG,iBAAiB,IAAI,WAAW;AAClE,IAAI,MAAM,mBAAmB,GAAG,KAAK,IAAI,gBAAgB,IAAI,IAAI,IAAI,IAAI;AACzE,IAAI,MAAM,aAAa,GAAG,cAAc,IAAI,cAAc;AAC1D,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,UAAU,EAAE,UAAU,IAAI,iBAAiB;AACnD,QAAQ,eAAe,EAAE;AACzB,YAAY,SAAS,EAAE,WAAW,EAAE;AACpC,YAAY,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACnD,YAAY,WAAW,EAAE,WAAW;AACpC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,IAAI,mBAAmB,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAClE,YAAY,IAAI,qBAAqB,IAAI;AACzC,gBAAgB,WAAW,EAAE;AAC7B,oBAAoB,UAAU,EAAE,iBAAiB,CAAC,UAAU;AAC5D,oBAAoB,MAAM,EAAE,iBAAiB,CAAC,MAAM;AACpD,oBAAoB,IAAI,EAAE,iBAAiB,CAAC,IAAI;AAChD,oBAAoB,KAAK,EAAE,iBAAiB,CAAC,KAAK;AAClD,oBAAoB,YAAY,EAAE,iBAAiB,CAAC,YAAY;AAChE,oBAAoB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;AACxD,oBAAoB,eAAe,EAAE,iBAAiB,CAAC,eAAe;AACtE,oBAAoB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;AACxD,iBAAiB;AACjB,aAAa,CAAC;AACd,YAAY,IAAI,QAAQ,IAAI;AAC5B,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,IAAI,EAAE,QAAQ,CAAC,IAAI;AACvC,oBAAoB,OAAO,EAAE,QAAQ,CAAC,OAAO;AAC7C,oBAAoB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC/C,oBAAoB,SAAS,EAAE,QAAQ,CAAC,SAAS;AACjD,oBAAoB,UAAU,EAAE,QAAQ,CAAC,UAAU;AACnD,oBAAoB,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3C,iBAAiB;AACjB,aAAa,CAAC;AACd,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,IAAI,aAAa,IAAI;AACjC,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,MAAM,EAAE,cAAc;AAC1C,oBAAoB,cAAc,EAAE,cAAc;AAClD,iBAAiB;AACjB,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,IAAI,IAAI;AACR,QAAQ,MAAMA,gBAAoB,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC;AAClF;AACA,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,MAAM,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC;AACrE;AACA;AACA,YAAY;AACZ;AACA;AACA,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC;AACnD;AACA;AACA;;;;"}
1
+ {"version":3,"file":"updateEndpoint.mjs","sources":["../../../../../src/providers/pinpoint/apis/updateEndpoint.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { updateEndpoint as clientUpdateEndpoint, } from '../../../awsClients/pinpoint';\nimport { amplifyUuid } from '../../../utils/amplifyUuid';\nimport { getClientInfo } from '../../../utils/getClientInfo';\nimport { cacheEndpointId } from '../utils/cacheEndpointId';\nimport { clearCreatedEndpointId, createEndpointId, } from '../utils/createEndpointId';\nimport { getEndpointId } from '../utils/getEndpointId';\n/**\n * @internal\n */\nexport const updateEndpoint = async ({ address, appId, category, channelType, credentials, identityId, optOut, region, userAttributes, userId, userProfile, userAgentValue, }) => {\n const endpointId = await getEndpointId(appId, category);\n // only generate a new endpoint id if one was not found in cache\n const createdEndpointId = !endpointId\n ? createEndpointId(appId, category)\n : undefined;\n const { customProperties, demographic, email, location, metrics, name, plan, } = userProfile ?? {};\n // only automatically populate the endpoint with client info and identity id upon endpoint creation to\n // avoid overwriting the endpoint with these values every time the endpoint is updated\n const demographicsFromClientInfo = {};\n const resolvedUserId = createdEndpointId ? (userId ?? identityId) : userId;\n if (createdEndpointId) {\n const clientInfo = getClientInfo();\n demographicsFromClientInfo.appVersion = clientInfo.appVersion;\n demographicsFromClientInfo.make = clientInfo.make;\n demographicsFromClientInfo.model = clientInfo.model;\n demographicsFromClientInfo.modelVersion = clientInfo.version;\n demographicsFromClientInfo.platform = clientInfo.platform;\n }\n const mergedDemographic = {\n ...demographicsFromClientInfo,\n ...demographic,\n };\n const attributes = {\n ...(email && { email: [email] }),\n ...(name && { name: [name] }),\n ...(plan && { plan: [plan] }),\n ...customProperties,\n };\n const shouldAddDemographics = createdEndpointId || demographic;\n const shouldAddAttributes = email || customProperties || name || plan;\n const shouldAddUser = resolvedUserId || userAttributes;\n const input = {\n ApplicationId: appId,\n EndpointId: endpointId ?? createdEndpointId,\n EndpointRequest: {\n RequestId: amplifyUuid(),\n EffectiveDate: new Date().toISOString(),\n ChannelType: channelType,\n Address: address,\n ...(shouldAddAttributes && { Attributes: attributes }),\n ...(shouldAddDemographics && {\n Demographic: {\n AppVersion: mergedDemographic.appVersion,\n Locale: mergedDemographic.locale,\n Make: mergedDemographic.make,\n Model: mergedDemographic.model,\n ModelVersion: mergedDemographic.modelVersion,\n Platform: mergedDemographic.platform,\n PlatformVersion: mergedDemographic.platformVersion,\n Timezone: mergedDemographic.timezone,\n },\n }),\n ...(location && {\n Location: {\n City: location.city,\n Country: location.country,\n Latitude: location.latitude,\n Longitude: location.longitude,\n PostalCode: location.postalCode,\n Region: location.region,\n },\n }),\n Metrics: metrics,\n OptOut: optOut,\n ...(shouldAddUser && {\n User: {\n UserId: resolvedUserId,\n UserAttributes: userAttributes,\n },\n }),\n },\n };\n try {\n await clientUpdateEndpoint({ credentials, region, userAgentValue }, input);\n // if we had to create an endpoint id, we need to now cache it\n if (createdEndpointId) {\n await cacheEndpointId(appId, category, createdEndpointId);\n }\n }\n finally {\n // at this point, we completely reset the behavior so even if the update was unsuccessful\n // we can just start over with a newly created endpoint id\n if (createdEndpointId) {\n clearCreatedEndpointId(appId, category);\n }\n }\n};\n"],"names":["clientUpdateEndpoint"],"mappings":"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"}
@@ -15,7 +15,6 @@ import '../../../BackgroundProcessManager/types.mjs';
15
15
  import '../../../Reachability/Reachability.mjs';
16
16
  import '../../../Hub/index.mjs';
17
17
  import '../../../utils/sessionListener/index.mjs';
18
- import '../../../awsClients/pinpoint/base.mjs';
19
18
  import { putEvents } from '../../../awsClients/pinpoint/putEvents.mjs';
20
19
 
21
20
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
@@ -1 +1 @@
1
- {"version":3,"file":"PinpointEventBuffer.mjs","sources":["../../../../../src/providers/pinpoint/utils/PinpointEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '../../../Logger';\nimport { putEvents, } from '../../../awsClients/pinpoint';\nimport { haveCredentialsChanged } from '../../../utils/haveCredentialsChanged';\nimport { isAppInForeground } from './isAppInForeground';\nconst logger = new ConsoleLogger('PinpointEventBuffer');\nconst RETRYABLE_CODES = [429, 500];\nconst ACCEPTED_CODES = [202];\nexport class PinpointEventBuffer {\n constructor(config) {\n this._interval = undefined;\n this._pause = false;\n this._flush = false;\n this._buffer = [];\n this._config = config;\n this._sendBatch = this._sendBatch.bind(this);\n this._startLoop();\n }\n push(event) {\n if (this._buffer.length >= this._config.bufferSize) {\n logger.debug('Exceeded Pinpoint event buffer limits, event dropped.', {\n eventId: event.eventId,\n });\n return;\n }\n this._buffer.push({ [event.eventId]: event });\n }\n pause() {\n this._pause = true;\n }\n resume() {\n this._pause = false;\n }\n flush() {\n this._flush = true;\n }\n identityHasChanged(identityId) {\n return this._config.identityId !== identityId;\n }\n haveCredentialsChanged(credentials) {\n return haveCredentialsChanged(this._config.credentials, credentials);\n }\n flushAll() {\n this._putEvents(this._buffer.splice(0, this._buffer.length));\n }\n _startLoop() {\n if (this._interval) {\n clearInterval(this._interval);\n }\n const { flushInterval } = this._config;\n this._interval = setInterval(this._sendBatch, flushInterval);\n }\n _sendBatch() {\n const bufferLength = this._buffer.length;\n if (this._flush && !bufferLength && this._interval) {\n clearInterval(this._interval);\n }\n if (this._pause || !bufferLength || !isAppInForeground()) {\n return;\n }\n const { flushSize } = this._config;\n const batchSize = Math.min(flushSize, bufferLength);\n const bufferSubset = this._buffer.splice(0, batchSize);\n this._putEvents(bufferSubset);\n }\n async _putEvents(buffer) {\n const eventMap = this._bufferToMap(buffer);\n const batchEventParams = this._generateBatchEventParams(eventMap);\n try {\n const { credentials, region, userAgentValue } = this._config;\n const data = await putEvents({\n credentials,\n region,\n userAgentValue,\n }, batchEventParams);\n this._processPutEventsSuccessResponse(data, eventMap);\n }\n catch (err) {\n this._handlePutEventsFailure(err, eventMap);\n }\n }\n _generateBatchEventParams(eventMap) {\n const batchItem = {};\n Object.values(eventMap).forEach(item => {\n const { event, timestamp, endpointId, eventId, session } = item;\n const { name, attributes, metrics } = event;\n batchItem[endpointId] = {\n Endpoint: {\n ...batchItem[endpointId]?.Endpoint,\n },\n Events: {\n ...batchItem[endpointId]?.Events,\n [eventId]: {\n EventType: name,\n Timestamp: new Date(timestamp).toISOString(),\n Attributes: attributes,\n Metrics: metrics,\n Session: session,\n },\n },\n };\n });\n return {\n ApplicationId: this._config.appId,\n EventsRequest: {\n BatchItem: batchItem,\n },\n };\n }\n _handlePutEventsFailure(err, eventMap) {\n logger.debug('putEvents call to Pinpoint failed.', err);\n const statusCode = err.$metadata && err.$metadata.httpStatusCode;\n if (RETRYABLE_CODES.includes(statusCode)) {\n const retryableEvents = Object.values(eventMap);\n this._retry(retryableEvents);\n }\n }\n _processPutEventsSuccessResponse(data, eventMap) {\n const { Results = {} } = data.EventsResponse ?? {};\n const retryableEvents = [];\n Object.entries(Results).forEach(([_, endpointValues]) => {\n const responses = endpointValues.EventsItemResponse ?? {};\n Object.entries(responses).forEach(([eventId, eventValues]) => {\n const eventObject = eventMap[eventId];\n if (!eventObject) {\n return;\n }\n const { StatusCode, Message } = eventValues ?? {};\n if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {\n return;\n }\n if (StatusCode && RETRYABLE_CODES.includes(StatusCode)) {\n retryableEvents.push(eventObject);\n return;\n }\n const { name } = eventObject.event;\n logger.warn('Pinpoint event failed to send.', {\n eventId,\n name,\n message: Message,\n });\n });\n });\n if (retryableEvents.length) {\n this._retry(retryableEvents);\n }\n }\n _retry(retryableEvents) {\n // retryable events that haven't reached the resendLimit\n const eligibleEvents = [];\n retryableEvents.forEach((bufferedEvent) => {\n const { eventId } = bufferedEvent;\n const { name } = bufferedEvent.event;\n if (bufferedEvent.resendLimit-- > 0) {\n logger.debug('Resending event.', {\n eventId,\n name,\n remainingAttempts: bufferedEvent.resendLimit,\n });\n eligibleEvents.push({ [eventId]: bufferedEvent });\n return;\n }\n logger.debug('No retry attempts remaining for event.', {\n eventId,\n name,\n });\n });\n // add the events to the front of the buffer\n this._buffer.unshift(...eligibleEvents);\n }\n _bufferToMap(buffer) {\n return buffer.reduce((acc, curVal) => {\n const [[key, value]] = Object.entries(curVal);\n acc[key] = value;\n return acc;\n }, {});\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAKA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,qBAAqB,CAAC;AACvD,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAClC,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC;AACrB,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB;AACA,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC5D,YAAY,MAAM,CAAC,KAAK,CAAC,uDAAuD,EAAE;AAClF,gBAAgB,OAAO,EAAE,KAAK,CAAC,OAAO;AACtC,aAAa,CAAC;AACd,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;AACrD;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B;AACA,IAAI,kBAAkB,CAAC,UAAU,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU;AACrD;AACA,IAAI,sBAAsB,CAAC,WAAW,EAAE;AACxC,QAAQ,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC;AAC5E;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpE;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC;AACA,QAAQ,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO;AAC9C,QAAQ,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;AACpE;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;AAChD,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5D,YAAY,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC;AACA,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,IAAI,KAAoB,EAAE;AAClE,YAAY;AACZ;AACA,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO;AAC1C,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC;AAC3D,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC;AAC9D,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AACrC;AACA,IAAI,MAAM,UAAU,CAAC,MAAM,EAAE;AAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAClD,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC;AACzE,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,OAAO;AACxE,YAAY,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;AACzC,gBAAgB,WAAW;AAC3B,gBAAgB,MAAM;AACtB,gBAAgB,cAAc;AAC9B,aAAa,EAAE,gBAAgB,CAAC;AAChC,YAAY,IAAI,CAAC,gCAAgC,CAAC,IAAI,EAAE,QAAQ,CAAC;AACjE;AACA,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC;AACvD;AACA;AACA,IAAI,yBAAyB,CAAC,QAAQ,EAAE;AACxC,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI;AAChD,YAAY,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;AAC3E,YAAY,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK;AACvD,YAAY,SAAS,CAAC,UAAU,CAAC,GAAG;AACpC,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,QAAQ;AACtD,iBAAiB;AACjB,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM;AACpD,oBAAoB,CAAC,OAAO,GAAG;AAC/B,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;AACpE,wBAAwB,UAAU,EAAE,UAAU;AAC9C,wBAAwB,OAAO,EAAE,OAAO;AACxC,wBAAwB,OAAO,EAAE,OAAO;AACxC,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7C,YAAY,aAAa,EAAE;AAC3B,gBAAgB,SAAS,EAAE,SAAS;AACpC,aAAa;AACb,SAAS;AACT;AACA,IAAI,uBAAuB,CAAC,GAAG,EAAE,QAAQ,EAAE;AAC3C,QAAQ,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC;AAC/D,QAAQ,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,cAAc;AACxE,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAClD,YAAY,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3D,YAAY,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;AACxC;AACA;AACA,IAAI,gCAAgC,CAAC,IAAI,EAAE,QAAQ,EAAE;AACrD,QAAQ,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE;AAC1D,QAAQ,MAAM,eAAe,GAAG,EAAE;AAClC,QAAQ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK;AACjE,YAAY,MAAM,SAAS,GAAG,cAAc,CAAC,kBAAkB,IAAI,EAAE;AACrE,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK;AAC1E,gBAAgB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC;AACrD,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAClC,oBAAoB;AACpB;AACA,gBAAgB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE;AACjE,gBAAgB,IAAI,UAAU,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACvE,oBAAoB;AACpB;AACA,gBAAgB,IAAI,UAAU,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACxE,oBAAoB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;AACrD,oBAAoB;AACpB;AACA,gBAAgB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,KAAK;AAClD,gBAAgB,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;AAC9D,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI;AACxB,oBAAoB,OAAO,EAAE,OAAO;AACpC,iBAAiB,CAAC;AAClB,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,IAAI,eAAe,CAAC,MAAM,EAAE;AACpC,YAAY,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;AACxC;AACA;AACA,IAAI,MAAM,CAAC,eAAe,EAAE;AAC5B;AACA,QAAQ,MAAM,cAAc,GAAG,EAAE;AACjC,QAAQ,eAAe,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK;AACnD,YAAY,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa;AAC7C,YAAY,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK;AAChD,YAAY,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE;AACjD,gBAAgB,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE;AACjD,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI;AACxB,oBAAoB,iBAAiB,EAAE,aAAa,CAAC,WAAW;AAChE,iBAAiB,CAAC;AAClB,gBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,aAAa,EAAE,CAAC;AACjE,gBAAgB;AAChB;AACA,YAAY,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;AACnE,gBAAgB,OAAO;AACvB,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;AAC/C;AACA,IAAI,YAAY,CAAC,MAAM,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK;AAC9C,YAAY,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AACzD,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAC5B,YAAY,OAAO,GAAG;AACtB,SAAS,EAAE,EAAE,CAAC;AACd;AACA;;;;"}
1
+ {"version":3,"file":"PinpointEventBuffer.mjs","sources":["../../../../../src/providers/pinpoint/utils/PinpointEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '../../../Logger';\nimport { putEvents, } from '../../../awsClients/pinpoint';\nimport { haveCredentialsChanged } from '../../../utils/haveCredentialsChanged';\nimport { isAppInForeground } from './isAppInForeground';\nconst logger = new ConsoleLogger('PinpointEventBuffer');\nconst RETRYABLE_CODES = [429, 500];\nconst ACCEPTED_CODES = [202];\nexport class PinpointEventBuffer {\n constructor(config) {\n this._interval = undefined;\n this._pause = false;\n this._flush = false;\n this._buffer = [];\n this._config = config;\n this._sendBatch = this._sendBatch.bind(this);\n this._startLoop();\n }\n push(event) {\n if (this._buffer.length >= this._config.bufferSize) {\n logger.debug('Exceeded Pinpoint event buffer limits, event dropped.', {\n eventId: event.eventId,\n });\n return;\n }\n this._buffer.push({ [event.eventId]: event });\n }\n pause() {\n this._pause = true;\n }\n resume() {\n this._pause = false;\n }\n flush() {\n this._flush = true;\n }\n identityHasChanged(identityId) {\n return this._config.identityId !== identityId;\n }\n haveCredentialsChanged(credentials) {\n return haveCredentialsChanged(this._config.credentials, credentials);\n }\n flushAll() {\n this._putEvents(this._buffer.splice(0, this._buffer.length));\n }\n _startLoop() {\n if (this._interval) {\n clearInterval(this._interval);\n }\n const { flushInterval } = this._config;\n this._interval = setInterval(this._sendBatch, flushInterval);\n }\n _sendBatch() {\n const bufferLength = this._buffer.length;\n if (this._flush && !bufferLength && this._interval) {\n clearInterval(this._interval);\n }\n if (this._pause || !bufferLength || !isAppInForeground()) {\n return;\n }\n const { flushSize } = this._config;\n const batchSize = Math.min(flushSize, bufferLength);\n const bufferSubset = this._buffer.splice(0, batchSize);\n this._putEvents(bufferSubset);\n }\n async _putEvents(buffer) {\n const eventMap = this._bufferToMap(buffer);\n const batchEventParams = this._generateBatchEventParams(eventMap);\n try {\n const { credentials, region, userAgentValue } = this._config;\n const data = await putEvents({\n credentials,\n region,\n userAgentValue,\n }, batchEventParams);\n this._processPutEventsSuccessResponse(data, eventMap);\n }\n catch (err) {\n this._handlePutEventsFailure(err, eventMap);\n }\n }\n _generateBatchEventParams(eventMap) {\n const batchItem = {};\n Object.values(eventMap).forEach(item => {\n const { event, timestamp, endpointId, eventId, session } = item;\n const { name, attributes, metrics } = event;\n batchItem[endpointId] = {\n Endpoint: {\n ...batchItem[endpointId]?.Endpoint,\n },\n Events: {\n ...batchItem[endpointId]?.Events,\n [eventId]: {\n EventType: name,\n Timestamp: new Date(timestamp).toISOString(),\n Attributes: attributes,\n Metrics: metrics,\n Session: session,\n },\n },\n };\n });\n return {\n ApplicationId: this._config.appId,\n EventsRequest: {\n BatchItem: batchItem,\n },\n };\n }\n _handlePutEventsFailure(err, eventMap) {\n logger.debug('putEvents call to Pinpoint failed.', err);\n const statusCode = err.$metadata && err.$metadata.httpStatusCode;\n if (RETRYABLE_CODES.includes(statusCode)) {\n const retryableEvents = Object.values(eventMap);\n this._retry(retryableEvents);\n }\n }\n _processPutEventsSuccessResponse(data, eventMap) {\n const { Results = {} } = data.EventsResponse ?? {};\n const retryableEvents = [];\n Object.entries(Results).forEach(([_, endpointValues]) => {\n const responses = endpointValues.EventsItemResponse ?? {};\n Object.entries(responses).forEach(([eventId, eventValues]) => {\n const eventObject = eventMap[eventId];\n if (!eventObject) {\n return;\n }\n const { StatusCode, Message } = eventValues ?? {};\n if (StatusCode && ACCEPTED_CODES.includes(StatusCode)) {\n return;\n }\n if (StatusCode && RETRYABLE_CODES.includes(StatusCode)) {\n retryableEvents.push(eventObject);\n return;\n }\n const { name } = eventObject.event;\n logger.warn('Pinpoint event failed to send.', {\n eventId,\n name,\n message: Message,\n });\n });\n });\n if (retryableEvents.length) {\n this._retry(retryableEvents);\n }\n }\n _retry(retryableEvents) {\n // retryable events that haven't reached the resendLimit\n const eligibleEvents = [];\n retryableEvents.forEach((bufferedEvent) => {\n const { eventId } = bufferedEvent;\n const { name } = bufferedEvent.event;\n if (bufferedEvent.resendLimit-- > 0) {\n logger.debug('Resending event.', {\n eventId,\n name,\n remainingAttempts: bufferedEvent.resendLimit,\n });\n eligibleEvents.push({ [eventId]: bufferedEvent });\n return;\n }\n logger.debug('No retry attempts remaining for event.', {\n eventId,\n name,\n });\n });\n // add the events to the front of the buffer\n this._buffer.unshift(...eligibleEvents);\n }\n _bufferToMap(buffer) {\n return buffer.reduce((acc, curVal) => {\n const [[key, value]] = Object.entries(curVal);\n acc[key] = value;\n return acc;\n }, {});\n }\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/core",
3
- "version": "6.12.2-unstable.43e28a6.0+43e28a6",
3
+ "version": "6.12.2-unstable.f94a30b.0+f94a30b",
4
4
  "description": "Core category of aws-amplify",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.mjs",
@@ -60,7 +60,7 @@
60
60
  "uuid": "^9.0.0"
61
61
  },
62
62
  "devDependencies": {
63
- "@aws-amplify/react-native": "1.1.11-unstable.43e28a6.0+43e28a6",
63
+ "@aws-amplify/react-native": "1.1.11-unstable.f94a30b.0+f94a30b",
64
64
  "@types/js-cookie": "3.0.2",
65
65
  "genversion": "^2.2.0"
66
66
  },
@@ -191,5 +191,5 @@
191
191
  ]
192
192
  }
193
193
  },
194
- "gitHead": "43e28a6e4393ea50d2ec6857ffb1cbbf8256b75d"
194
+ "gitHead": "f94a30b71e4e5abbce1ad8c215fbb67386721bff"
195
195
  }
@@ -1,2 +1,2 @@
1
1
  // generated by genversion
2
- export const version = '6.15.2-unstable.43e28a6.0+43e28a6';
2
+ export const version = '6.15.2-unstable.f94a30b.0+f94a30b';
@@ -31,7 +31,9 @@ export const defaultConfig = {
31
31
  endpointResolver,
32
32
  retryDecider: getRetryDecider(parseJsonError),
33
33
  computeDelay: jitteredBackoff,
34
- userAgentValue: getAmplifyUserAgent(),
34
+ get userAgentValue() {
35
+ return getAmplifyUserAgent();
36
+ },
35
37
  };
36
38
 
37
39
  /**