@aws-amplify/core 6.12.1-unstable.bafe9ed.0 → 6.12.1

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.1-unstable.bafe9ed.0+bafe9ed';
6
+ exports.version = '6.15.1';
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.1-unstable.bafe9ed.0+bafe9ed';\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.1';\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,QAAQ;;"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PinpointEventBuffer = void 0;
7
7
  const Logger_1 = require("../../../Logger");
8
8
  const pinpoint_1 = require("../../../awsClients/pinpoint");
9
+ const haveCredentialsChanged_1 = require("../../../utils/haveCredentialsChanged");
9
10
  const isAppInForeground_1 = require("./isAppInForeground");
10
11
  const logger = new Logger_1.ConsoleLogger('PinpointEventBuffer');
11
12
  const RETRYABLE_CODES = [429, 500];
@@ -41,6 +42,9 @@ class PinpointEventBuffer {
41
42
  identityHasChanged(identityId) {
42
43
  return this._config.identityId !== identityId;
43
44
  }
45
+ haveCredentialsChanged(credentials) {
46
+ return (0, haveCredentialsChanged_1.haveCredentialsChanged)(this._config.credentials, credentials);
47
+ }
44
48
  flushAll() {
45
49
  this._putEvents(this._buffer.splice(0, this._buffer.length));
46
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PinpointEventBuffer.js","sources":["../../../../../src/providers/pinpoint/utils/PinpointEventBuffer.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.PinpointEventBuffer = void 0;\nconst Logger_1 = require(\"../../../Logger\");\nconst pinpoint_1 = require(\"../../../awsClients/pinpoint\");\nconst isAppInForeground_1 = require(\"./isAppInForeground\");\nconst logger = new Logger_1.ConsoleLogger('PinpointEventBuffer');\nconst RETRYABLE_CODES = [429, 500];\nconst ACCEPTED_CODES = [202];\nclass 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 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 || !(0, isAppInForeground_1.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 (0, pinpoint_1.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}\nexports.PinpointEventBuffer = PinpointEventBuffer;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PinpointEventBuffer.js","sources":["../../../../../src/providers/pinpoint/utils/PinpointEventBuffer.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.PinpointEventBuffer = void 0;\nconst Logger_1 = require(\"../../../Logger\");\nconst pinpoint_1 = require(\"../../../awsClients/pinpoint\");\nconst haveCredentialsChanged_1 = require(\"../../../utils/haveCredentialsChanged\");\nconst isAppInForeground_1 = require(\"./isAppInForeground\");\nconst logger = new Logger_1.ConsoleLogger('PinpointEventBuffer');\nconst RETRYABLE_CODES = [429, 500];\nconst ACCEPTED_CODES = [202];\nclass 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 (0, haveCredentialsChanged_1.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 || !(0, isAppInForeground_1.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 (0, pinpoint_1.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}\nexports.PinpointEventBuffer = PinpointEventBuffer;\n"],"names":[],"mappings":"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"}
@@ -16,10 +16,12 @@ const getEventBuffer = ({ appId, region, credentials, bufferSize, flushInterval,
16
16
  if (eventBufferMap[region]?.[appId]) {
17
17
  const buffer = eventBufferMap[region][appId];
18
18
  /*
19
- If the identity has changed flush out the buffer and create a new instance. The old instance will be garbage
19
+ If the identity or credentials has changed flush out the buffer and create a new instance. The old instance will be garbage
20
20
  collected.
21
21
  */
22
- if (buffer.identityHasChanged(identityId)) {
22
+ const shouldFlushBuffer = buffer.identityHasChanged(identityId) ||
23
+ buffer.haveCredentialsChanged(credentials);
24
+ if (shouldFlushBuffer) {
23
25
  buffer.flush();
24
26
  }
25
27
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"getEventBuffer.js","sources":["../../../../../src/providers/pinpoint/utils/getEventBuffer.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEventBuffer = void 0;\nconst PinpointEventBuffer_1 = require(\"./PinpointEventBuffer\");\n// Map of buffers by region -> appId\nconst eventBufferMap = {};\n/**\n * Returns a PinpointEventBuffer instance for the specified region & app ID, creating one if it does not yet exist.\n *\n * @internal\n */\nconst getEventBuffer = ({ appId, region, credentials, bufferSize, flushInterval, flushSize, resendLimit, identityId, userAgentValue, }) => {\n if (eventBufferMap[region]?.[appId]) {\n const buffer = eventBufferMap[region][appId];\n /*\n If the identity has changed flush out the buffer and create a new instance. The old instance will be garbage\n collected.\n */\n if (buffer.identityHasChanged(identityId)) {\n buffer.flush();\n }\n else {\n return buffer;\n }\n }\n const buffer = new PinpointEventBuffer_1.PinpointEventBuffer({\n appId,\n bufferSize,\n credentials,\n flushInterval,\n flushSize,\n identityId,\n region,\n resendLimit,\n userAgentValue,\n });\n if (!eventBufferMap[region]) {\n eventBufferMap[region] = {};\n }\n eventBufferMap[region][appId] = buffer;\n return buffer;\n};\nexports.getEventBuffer = getEventBuffer;\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,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;AAC9D;AACA,MAAM,cAAc,GAAG,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK;AAC3I,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AACpD;AACA;AACA;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;AACnD,YAAY,MAAM,CAAC,KAAK,EAAE;AAC1B;AACA,aAAa;AACb,YAAY,OAAO,MAAM;AACzB;AACA;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,mBAAmB,CAAC;AACjE,QAAQ,KAAK;AACb,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,aAAa;AACrB,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,cAAc;AACtB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACjC,QAAQ,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;AACnC;AACA,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;AAC1C,IAAI,OAAO,MAAM;AACjB,CAAC;AACD,OAAO,CAAC,cAAc,GAAG,cAAc;;"}
1
+ {"version":3,"file":"getEventBuffer.js","sources":["../../../../../src/providers/pinpoint/utils/getEventBuffer.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEventBuffer = void 0;\nconst PinpointEventBuffer_1 = require(\"./PinpointEventBuffer\");\n// Map of buffers by region -> appId\nconst eventBufferMap = {};\n/**\n * Returns a PinpointEventBuffer instance for the specified region & app ID, creating one if it does not yet exist.\n *\n * @internal\n */\nconst getEventBuffer = ({ appId, region, credentials, bufferSize, flushInterval, flushSize, resendLimit, identityId, userAgentValue, }) => {\n if (eventBufferMap[region]?.[appId]) {\n const buffer = eventBufferMap[region][appId];\n /*\n If the identity or credentials has changed flush out the buffer and create a new instance. The old instance will be garbage\n collected.\n */\n const shouldFlushBuffer = buffer.identityHasChanged(identityId) ||\n buffer.haveCredentialsChanged(credentials);\n if (shouldFlushBuffer) {\n buffer.flush();\n }\n else {\n return buffer;\n }\n }\n const buffer = new PinpointEventBuffer_1.PinpointEventBuffer({\n appId,\n bufferSize,\n credentials,\n flushInterval,\n flushSize,\n identityId,\n region,\n resendLimit,\n userAgentValue,\n });\n if (!eventBufferMap[region]) {\n eventBufferMap[region] = {};\n }\n eventBufferMap[region][appId] = buffer;\n return buffer;\n};\nexports.getEventBuffer = getEventBuffer;\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,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;AAC9D;AACA,MAAM,cAAc,GAAG,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK;AAC3I,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AACpD;AACA;AACA;AACA;AACA,QAAQ,MAAM,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC;AACvE,YAAY,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC;AACtD,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,MAAM,CAAC,KAAK,EAAE;AAC1B;AACA,aAAa;AACb,YAAY,OAAO,MAAM;AACzB;AACA;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,mBAAmB,CAAC;AACjE,QAAQ,KAAK;AACb,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,aAAa;AACrB,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,cAAc;AACtB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACjC,QAAQ,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;AACnC;AACA,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;AAC1C,IAAI,OAAO,MAAM;AACjB,CAAC;AACD,OAAO,CAAC,cAAc,GAAG,cAAc;;"}
@@ -1 +1 @@
1
- export declare const version = "6.15.1-unstable.bafe9ed.0+bafe9ed";
1
+ export declare const version = "6.15.1";
@@ -1,5 +1,5 @@
1
1
  // generated by genversion
2
- const version = '6.15.1-unstable.bafe9ed.0+bafe9ed';
2
+ const version = '6.15.1';
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.1-unstable.bafe9ed.0+bafe9ed';\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.1';\n"],"names":[],"mappings":"AAAA;AACY,MAAC,OAAO,GAAG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { BufferedEvent, PinpointEventBufferConfig } from '../types/buffer';
2
- import { AuthSession } from '../../../singleton/Auth/types';
2
+ import { AWSCredentials, AuthSession } from '../../../singleton/Auth/types';
3
3
  export declare class PinpointEventBuffer {
4
4
  private _config;
5
5
  private _interval;
@@ -12,6 +12,7 @@ export declare class PinpointEventBuffer {
12
12
  resume(): void;
13
13
  flush(): void;
14
14
  identityHasChanged(identityId: AuthSession['identityId']): boolean;
15
+ haveCredentialsChanged(credentials: AWSCredentials): boolean;
15
16
  flushAll(): void;
16
17
  private _startLoop;
17
18
  private _sendBatch;
@@ -8,6 +8,7 @@ import 'uuid';
8
8
  import '../../../singleton/Auth/utils/errorHelpers.mjs';
9
9
  import '@aws-crypto/sha256-js';
10
10
  import '@smithy/util-hex-encoding';
11
+ import { haveCredentialsChanged } from '../../../utils/haveCredentialsChanged.mjs';
11
12
  import '../../../Platform/index.mjs';
12
13
  import '../../../Platform/types.mjs';
13
14
  import '../../../BackgroundProcessManager/types.mjs';
@@ -53,6 +54,9 @@ class PinpointEventBuffer {
53
54
  identityHasChanged(identityId) {
54
55
  return this._config.identityId !== identityId;
55
56
  }
57
+ haveCredentialsChanged(credentials) {
58
+ return haveCredentialsChanged(this._config.credentials, credentials);
59
+ }
56
60
  flushAll() {
57
61
  this._putEvents(this._buffer.splice(0, this._buffer.length));
58
62
  }
@@ -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 { 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 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;AAIA,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,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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"}
@@ -13,10 +13,12 @@ const getEventBuffer = ({ appId, region, credentials, bufferSize, flushInterval,
13
13
  if (eventBufferMap[region]?.[appId]) {
14
14
  const buffer = eventBufferMap[region][appId];
15
15
  /*
16
- If the identity has changed flush out the buffer and create a new instance. The old instance will be garbage
16
+ If the identity or credentials has changed flush out the buffer and create a new instance. The old instance will be garbage
17
17
  collected.
18
18
  */
19
- if (buffer.identityHasChanged(identityId)) {
19
+ const shouldFlushBuffer = buffer.identityHasChanged(identityId) ||
20
+ buffer.haveCredentialsChanged(credentials);
21
+ if (shouldFlushBuffer) {
20
22
  buffer.flush();
21
23
  }
22
24
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/pinpoint/utils/getEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { PinpointEventBuffer } from './PinpointEventBuffer';\n// Map of buffers by region -> appId\nconst eventBufferMap = {};\n/**\n * Returns a PinpointEventBuffer instance for the specified region & app ID, creating one if it does not yet exist.\n *\n * @internal\n */\nexport const getEventBuffer = ({ appId, region, credentials, bufferSize, flushInterval, flushSize, resendLimit, identityId, userAgentValue, }) => {\n if (eventBufferMap[region]?.[appId]) {\n const buffer = eventBufferMap[region][appId];\n /*\n If the identity has changed flush out the buffer and create a new instance. The old instance will be garbage\n collected.\n */\n if (buffer.identityHasChanged(identityId)) {\n buffer.flush();\n }\n else {\n return buffer;\n }\n }\n const buffer = new PinpointEventBuffer({\n appId,\n bufferSize,\n credentials,\n flushInterval,\n flushSize,\n identityId,\n region,\n resendLimit,\n userAgentValue,\n });\n if (!eventBufferMap[region]) {\n eventBufferMap[region] = {};\n }\n eventBufferMap[region][appId] = buffer;\n return buffer;\n};\n"],"names":[],"mappings":";;AAAA;AACA;AAEA;AACA,MAAM,cAAc,GAAG,EAAE;AACzB;AACA;AACA;AACA;AACA;AACY,MAAC,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK;AAClJ,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AACpD;AACA;AACA;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;AACnD,YAAY,MAAM,CAAC,KAAK,EAAE;AAC1B;AACA,aAAa;AACb,YAAY,OAAO,MAAM;AACzB;AACA;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC;AAC3C,QAAQ,KAAK;AACb,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,aAAa;AACrB,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,cAAc;AACtB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACjC,QAAQ,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;AACnC;AACA,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;AAC1C,IAAI,OAAO,MAAM;AACjB;;;;"}
1
+ {"version":3,"file":"getEventBuffer.mjs","sources":["../../../../../src/providers/pinpoint/utils/getEventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { PinpointEventBuffer } from './PinpointEventBuffer';\n// Map of buffers by region -> appId\nconst eventBufferMap = {};\n/**\n * Returns a PinpointEventBuffer instance for the specified region & app ID, creating one if it does not yet exist.\n *\n * @internal\n */\nexport const getEventBuffer = ({ appId, region, credentials, bufferSize, flushInterval, flushSize, resendLimit, identityId, userAgentValue, }) => {\n if (eventBufferMap[region]?.[appId]) {\n const buffer = eventBufferMap[region][appId];\n /*\n If the identity or credentials has changed flush out the buffer and create a new instance. The old instance will be garbage\n collected.\n */\n const shouldFlushBuffer = buffer.identityHasChanged(identityId) ||\n buffer.haveCredentialsChanged(credentials);\n if (shouldFlushBuffer) {\n buffer.flush();\n }\n else {\n return buffer;\n }\n }\n const buffer = new PinpointEventBuffer({\n appId,\n bufferSize,\n credentials,\n flushInterval,\n flushSize,\n identityId,\n region,\n resendLimit,\n userAgentValue,\n });\n if (!eventBufferMap[region]) {\n eventBufferMap[region] = {};\n }\n eventBufferMap[region][appId] = buffer;\n return buffer;\n};\n"],"names":[],"mappings":";;AAAA;AACA;AAEA;AACA,MAAM,cAAc,GAAG,EAAE;AACzB;AACA;AACA;AACA;AACA;AACY,MAAC,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK;AAClJ,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AACpD;AACA;AACA;AACA;AACA,QAAQ,MAAM,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC;AACvE,YAAY,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC;AACtD,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,MAAM,CAAC,KAAK,EAAE;AAC1B;AACA,aAAa;AACb,YAAY,OAAO,MAAM;AACzB;AACA;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC;AAC3C,QAAQ,KAAK;AACb,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,aAAa;AACrB,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,cAAc;AACtB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACjC,QAAQ,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;AACnC;AACA,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;AAC1C,IAAI,OAAO,MAAM;AACjB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/core",
3
- "version": "6.12.1-unstable.bafe9ed.0+bafe9ed",
3
+ "version": "6.12.1",
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.bafe9ed.0+bafe9ed",
63
+ "@aws-amplify/react-native": "1.1.10",
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": "bafe9eda2af091a1963f5d8613749389504f3a99"
194
+ "gitHead": "dfe750e4b86c92b0d8b97e6358968c21129ffecc"
195
195
  }
@@ -1,2 +1,2 @@
1
1
  // generated by genversion
2
- export const version = '6.15.1-unstable.bafe9ed.0+bafe9ed';
2
+ export const version = '6.15.1';
@@ -14,7 +14,8 @@ import {
14
14
  EventBuffer,
15
15
  PinpointEventBufferConfig,
16
16
  } from '../types/buffer';
17
- import { AuthSession } from '../../../singleton/Auth/types';
17
+ import { AWSCredentials, AuthSession } from '../../../singleton/Auth/types';
18
+ import { haveCredentialsChanged } from '../../../utils/haveCredentialsChanged';
18
19
 
19
20
  import { isAppInForeground } from './isAppInForeground';
20
21
 
@@ -66,6 +67,10 @@ export class PinpointEventBuffer {
66
67
  return this._config.identityId !== identityId;
67
68
  }
68
69
 
70
+ public haveCredentialsChanged(credentials: AWSCredentials) {
71
+ return haveCredentialsChanged(this._config.credentials, credentials);
72
+ }
73
+
69
74
  public flushAll() {
70
75
  this._putEvents(this._buffer.splice(0, this._buffer.length));
71
76
  }
@@ -37,10 +37,14 @@ export const getEventBuffer = ({
37
37
  const buffer = eventBufferMap[region][appId];
38
38
 
39
39
  /*
40
- If the identity has changed flush out the buffer and create a new instance. The old instance will be garbage
40
+ If the identity or credentials has changed flush out the buffer and create a new instance. The old instance will be garbage
41
41
  collected.
42
42
  */
43
- if (buffer.identityHasChanged(identityId)) {
43
+ const shouldFlushBuffer =
44
+ buffer.identityHasChanged(identityId) ||
45
+ buffer.haveCredentialsChanged(credentials);
46
+
47
+ if (shouldFlushBuffer) {
44
48
  buffer.flush();
45
49
  } else {
46
50
  return buffer;