@aws-amplify/core 6.0.1-preview-testing.be90020.0 → 6.0.1-ssr-api.df60e41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (947) hide show
  1. package/internals/aws-clients/pinpoint/package.json +4 -4
  2. package/lib/BackgroundProcessManager/BackgroundManagerNotOpenError.d.ts +3 -0
  3. package/lib/BackgroundProcessManager/BackgroundManagerNotOpenError.js +11 -0
  4. package/lib/{Util → BackgroundProcessManager}/BackgroundProcessManager.d.ts +1 -23
  5. package/lib/BackgroundProcessManager/BackgroundProcessManager.js +287 -0
  6. package/lib/BackgroundProcessManager/index.d.ts +1 -0
  7. package/lib/BackgroundProcessManager/index.js +7 -0
  8. package/lib/BackgroundProcessManager/types.d.ts +41 -0
  9. package/lib/BackgroundProcessManager/types.js +23 -0
  10. package/lib/Cache/StorageCache.d.ts +14 -31
  11. package/lib/Cache/StorageCache.js +41 -106
  12. package/lib/Cache/StorageCache.native.d.ts +19 -0
  13. package/lib/Cache/StorageCache.native.js +62 -0
  14. package/lib/Cache/{AsyncStorageCache.d.ts → StorageCacheCommon.d.ts} +124 -99
  15. package/lib/Cache/StorageCacheCommon.js +468 -0
  16. package/lib/Cache/constants.d.ts +6 -0
  17. package/lib/Cache/constants.js +17 -0
  18. package/lib/Cache/index.d.ts +2 -0
  19. package/lib/Cache/index.js +7 -0
  20. package/lib/Cache/types/cache.d.ts +38 -0
  21. package/lib/Cache/types/index.d.ts +1 -1
  22. package/lib/Cache/types/index.js +1 -1
  23. package/lib/Cache/{Utils → utils}/CacheList.d.ts +1 -1
  24. package/lib/Cache/utils/CacheList.js +160 -0
  25. package/lib/Cache/utils/cacheHelpers.d.ts +14 -0
  26. package/lib/Cache/utils/cacheHelpers.js +49 -0
  27. package/lib/Cache/utils/errorHelpers.d.ts +7 -0
  28. package/lib/Cache/utils/errorHelpers.js +24 -0
  29. package/lib/Cache/utils/index.d.ts +2 -0
  30. package/lib/Cache/utils/index.js +12 -0
  31. package/lib/Hub/index.d.ts +7 -0
  32. package/lib/Hub/index.js +44 -77
  33. package/lib/Hub/types/AuthTypes.d.ts +19 -0
  34. package/lib/I18n/I18n.d.ts +3 -19
  35. package/lib/I18n/I18n.js +25 -60
  36. package/lib/I18n/errorHelpers.d.ts +5 -0
  37. package/lib/I18n/errorHelpers.js +16 -0
  38. package/lib/I18n/index.d.ts +3 -15
  39. package/lib/I18n/index.js +28 -56
  40. package/lib/I18n/types.d.ts +1 -4
  41. package/lib/I18n/types.js +5 -9
  42. package/lib/Logger/ConsoleLogger.js +54 -130
  43. package/{lib-esm/Util → lib/Mutex}/Mutex.d.ts +2 -15
  44. package/lib/{Util → Mutex}/Mutex.js +17 -20
  45. package/lib/Mutex/index.d.ts +1 -0
  46. package/lib/Mutex/index.js +7 -0
  47. package/lib/Mutex/types.d.ts +13 -0
  48. package/lib/Platform/customUserAgent.d.ts +16 -0
  49. package/lib/Platform/customUserAgent.js +57 -0
  50. package/lib/Platform/detectFramework.js +12 -13
  51. package/lib/Platform/detection/Angular.js +4 -5
  52. package/lib/Platform/detection/Expo.js +1 -1
  53. package/lib/Platform/detection/Next.js +1 -1
  54. package/lib/Platform/detection/Nuxt.js +1 -1
  55. package/lib/Platform/detection/React.js +5 -5
  56. package/lib/Platform/detection/Svelte.js +2 -2
  57. package/lib/Platform/detection/Vue.js +1 -1
  58. package/lib/Platform/detection/Web.js +1 -1
  59. package/lib/Platform/detection/helpers.js +7 -7
  60. package/lib/Platform/detection/index.js +13 -13
  61. package/lib/Platform/index.js +32 -52
  62. package/lib/Platform/types.d.ts +75 -8
  63. package/lib/Platform/types.js +40 -39
  64. package/lib/Platform/version.d.ts +1 -1
  65. package/lib/Platform/version.js +1 -1
  66. package/lib/Reachability/Reachability.d.ts +7 -0
  67. package/lib/Reachability/Reachability.js +42 -0
  68. package/lib/Reachability/Reachability.native.d.ts +6 -0
  69. package/lib/{Util → Reachability}/Reachability.native.js +14 -20
  70. package/lib/Reachability/index.d.ts +1 -0
  71. package/lib/Reachability/index.js +7 -0
  72. package/lib/Reachability/types.d.ts +3 -0
  73. package/lib/Reachability/types.js +4 -0
  74. package/lib/ServiceWorker/ServiceWorker.js +86 -112
  75. package/lib/ServiceWorker/errorHelpers.d.ts +7 -0
  76. package/lib/ServiceWorker/errorHelpers.js +24 -0
  77. package/lib/ServiceWorker/index.d.ts +0 -12
  78. package/lib/ServiceWorker/index.js +0 -12
  79. package/lib/{Util → Signer}/DateUtils.js +10 -27
  80. package/lib/{Signer.js → Signer/Signer.js} +50 -52
  81. package/lib/Signer/index.d.ts +1 -0
  82. package/lib/Signer/index.js +7 -0
  83. package/lib/adapterCore/error/AmplifyServerContextError.d.ts +1 -1
  84. package/lib/adapterCore/error/AmplifyServerContextError.js +9 -27
  85. package/lib/adapterCore/serverContext/serverContext.js +8 -8
  86. package/lib/adapterCore/serverContext/serverContextRegistry.js +6 -6
  87. package/lib/awsClients/cognitoIdentity/base.js +67 -0
  88. package/lib/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/getCredentialsForIdentity.d.ts +2 -1
  89. package/lib/awsClients/cognitoIdentity/getCredentialsForIdentity.js +39 -0
  90. package/lib/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/getId.d.ts +2 -1
  91. package/lib/awsClients/cognitoIdentity/getId.js +30 -0
  92. package/lib/awsClients/cognitoIdentity/types.js +4 -0
  93. package/lib/{AwsClients/Pinpoint → awsClients/pinpoint}/base.js +12 -14
  94. package/lib/awsClients/pinpoint/errorHelpers.d.ts +5 -0
  95. package/lib/awsClients/pinpoint/errorHelpers.js +16 -0
  96. package/{lib-esm/AwsClients/Pinpoint → lib/awsClients/pinpoint}/getInAppMessages.d.ts +4 -3
  97. package/lib/awsClients/pinpoint/getInAppMessages.js +34 -0
  98. package/{lib-esm/AwsClients/Pinpoint → lib/awsClients/pinpoint}/putEvents.d.ts +4 -3
  99. package/lib/awsClients/pinpoint/putEvents.js +37 -0
  100. package/lib/{AwsClients/Pinpoint → awsClients/pinpoint}/updateEndpoint.d.ts +4 -3
  101. package/lib/awsClients/pinpoint/updateEndpoint.js +38 -0
  102. package/lib/clients/endpoints/getDnsSuffix.js +7 -29
  103. package/lib/clients/handlers/authenticated.js +5 -5
  104. package/lib/clients/handlers/fetch.js +41 -97
  105. package/lib/clients/handlers/unauthenticated.js +4 -4
  106. package/lib/clients/internal/composeServiceApi.js +17 -67
  107. package/lib/clients/internal/composeTransferHandler.js +9 -11
  108. package/lib/clients/middleware/retry/defaultRetryDecider.js +18 -75
  109. package/lib/clients/middleware/retry/isClockSkewError.js +2 -4
  110. package/lib/clients/middleware/retry/jitteredBackoff.js +5 -5
  111. package/lib/clients/middleware/retry/middleware.js +61 -125
  112. package/lib/clients/middleware/signing/middleware.js +24 -86
  113. package/lib/clients/middleware/signing/signer/signatureV4/presignUrl.js +21 -55
  114. package/lib/clients/middleware/signing/signer/signatureV4/signRequest.js +14 -25
  115. package/lib/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +7 -7
  116. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +8 -30
  117. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +11 -38
  118. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +13 -17
  119. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +5 -8
  120. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +2 -2
  121. package/lib/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +3 -3
  122. package/lib/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +7 -11
  123. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +9 -10
  124. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +4 -6
  125. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +8 -8
  126. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +15 -16
  127. package/lib/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +2 -4
  128. package/lib/clients/middleware/signing/utils/extendedEncodeURIComponent.js +3 -5
  129. package/lib/clients/middleware/signing/utils/getSkewCorrectedDate.js +1 -3
  130. package/lib/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js +2 -2
  131. package/lib/clients/middleware/signing/utils/isClockSkewed.js +4 -6
  132. package/lib/clients/middleware/userAgent/middleware.js +14 -63
  133. package/lib/clients/serde/json.js +30 -96
  134. package/lib/clients/serde/responseInfo.js +12 -18
  135. package/lib/clients/types/http.d.ts +17 -1
  136. package/lib/clients/utils/memoization.js +3 -3
  137. package/lib/constants.d.ts +4 -0
  138. package/lib/constants.js +18 -0
  139. package/lib/{Util/Errors.d.ts → errors/AmplifyError.d.ts} +2 -9
  140. package/lib/errors/AmplifyError.js +26 -0
  141. package/lib/errors/PlatformNotSupportedError.d.ts +4 -0
  142. package/lib/errors/PlatformNotSupportedError.js +16 -0
  143. package/lib/errors/createAssertionFunction.d.ts +3 -0
  144. package/lib/errors/createAssertionFunction.js +19 -0
  145. package/lib/errors/errorHelpers.d.ts +2 -0
  146. package/lib/errors/errorHelpers.js +19 -0
  147. package/lib/errors/index.d.ts +4 -0
  148. package/lib/errors/index.js +13 -0
  149. package/lib/index.d.ts +7 -7
  150. package/lib/index.js +17 -16
  151. package/lib/libraryUtils.d.ts +20 -16
  152. package/lib/libraryUtils.js +60 -69
  153. package/lib/parseAWSExports.js +172 -35
  154. package/lib/providers/kinesis/types/index.d.ts +1 -0
  155. package/lib/providers/kinesis/types/index.js +19 -0
  156. package/lib/providers/kinesis/types/kinesis.d.ts +9 -0
  157. package/lib/providers/kinesis/types/kinesis.js +4 -0
  158. package/lib/providers/kinesis-firehose/types/index.d.ts +1 -0
  159. package/lib/providers/kinesis-firehose/types/index.js +4 -0
  160. package/lib/providers/kinesis-firehose/types/kinesis-firehose.d.ts +9 -0
  161. package/lib/providers/kinesis-firehose/types/kinesis-firehose.js +4 -0
  162. package/lib/providers/personalize/types/index.d.ts +1 -0
  163. package/lib/providers/personalize/types/index.js +4 -0
  164. package/lib/providers/personalize/types/personalize.d.ts +8 -0
  165. package/lib/providers/personalize/types/personalize.js +4 -0
  166. package/lib/providers/pinpoint/apis/flushEvents.d.ts +2 -0
  167. package/lib/providers/pinpoint/apis/flushEvents.js +21 -0
  168. package/lib/providers/pinpoint/apis/index.d.ts +1 -0
  169. package/lib/providers/pinpoint/apis/index.js +3 -1
  170. package/lib/providers/pinpoint/apis/record.d.ts +1 -1
  171. package/lib/providers/pinpoint/apis/record.js +58 -109
  172. package/lib/providers/pinpoint/apis/updateEndpoint.d.ts +1 -1
  173. package/lib/providers/pinpoint/apis/updateEndpoint.js +65 -110
  174. package/lib/providers/pinpoint/index.d.ts +2 -1
  175. package/lib/providers/pinpoint/index.js +5 -0
  176. package/lib/providers/pinpoint/types/errors.d.ts +9 -0
  177. package/lib/providers/pinpoint/types/errors.js +15 -0
  178. package/lib/providers/pinpoint/types/index.d.ts +1 -0
  179. package/lib/providers/pinpoint/types/index.js +3 -0
  180. package/lib/providers/pinpoint/types/pinpoint.d.ts +7 -4
  181. package/lib/providers/pinpoint/utils/PinpointEventBuffer.d.ts +1 -0
  182. package/lib/providers/pinpoint/utils/PinpointEventBuffer.js +111 -197
  183. package/lib/providers/pinpoint/utils/cacheEndpointId.js +12 -49
  184. package/lib/providers/pinpoint/utils/getCacheKey.js +2 -2
  185. package/lib/providers/pinpoint/utils/getEndpointId.js +7 -51
  186. package/lib/providers/pinpoint/utils/getEventBuffer.js +19 -21
  187. package/lib/providers/pinpoint/utils/index.d.ts +1 -0
  188. package/lib/providers/pinpoint/utils/index.js +3 -1
  189. package/lib/providers/pinpoint/utils/isAppInForeground.d.ts +1 -0
  190. package/lib/{RNComponents → providers/pinpoint/utils}/isAppInForeground.js +1 -4
  191. package/lib/providers/pinpoint/utils/isAppInForeground.native.d.ts +1 -0
  192. package/lib/providers/pinpoint/utils/isAppInForeground.native.js +9 -0
  193. package/lib/providers/pinpoint/utils/resolveEndpointId.d.ts +8 -0
  194. package/lib/providers/pinpoint/utils/resolveEndpointId.js +34 -0
  195. package/lib/singleton/API/types.d.ts +73 -0
  196. package/lib/singleton/API/types.js +2 -0
  197. package/lib/singleton/Amplify.d.ts +2 -2
  198. package/lib/singleton/Amplify.js +34 -93
  199. package/lib/singleton/Analytics/types.d.ts +4 -1
  200. package/lib/singleton/Auth/index.js +48 -115
  201. package/lib/singleton/Auth/types.d.ts +31 -4
  202. package/lib/singleton/Auth/utils/errorHelpers.d.ts +8 -0
  203. package/lib/singleton/Auth/utils/errorHelpers.js +32 -0
  204. package/lib/singleton/Auth/utils/index.d.ts +1 -1
  205. package/lib/singleton/Auth/utils/index.js +30 -46
  206. package/lib/singleton/Cache/types.d.ts +18 -0
  207. package/lib/singleton/Cache/types.js +4 -0
  208. package/lib/singleton/Geo/types.d.ts +17 -0
  209. package/lib/singleton/Geo/types.js +4 -0
  210. package/lib/singleton/Interactions/types.d.ts +21 -0
  211. package/lib/singleton/Interactions/types.js +4 -0
  212. package/lib/singleton/Notifications/InAppMessaging/types.d.ts +2 -0
  213. package/lib/singleton/Notifications/InAppMessaging/types.js +4 -0
  214. package/lib/singleton/Notifications/PushNotification/types.d.ts +2 -0
  215. package/lib/singleton/Notifications/PushNotification/types.js +4 -0
  216. package/lib/singleton/Notifications/types.d.ts +6 -0
  217. package/lib/singleton/Notifications/types.js +4 -0
  218. package/lib/singleton/Predictions/types.d.ts +49 -0
  219. package/lib/singleton/Predictions/types.js +4 -0
  220. package/lib/singleton/apis/clearCredentials.js +1 -1
  221. package/lib/singleton/apis/fetchAuthSession.js +3 -3
  222. package/lib/singleton/apis/internal/fetchAuthSession.js +1 -1
  223. package/lib/singleton/apis/server/fetchAuthSession.js +3 -3
  224. package/lib/singleton/types.d.ts +12 -1
  225. package/{lib-esm/StorageHelper/cookieStorage.d.ts → lib/storage/CookieStorage.d.ts} +4 -3
  226. package/lib/storage/CookieStorage.js +52 -0
  227. package/lib/storage/CookieStorage.native.d.ts +7 -0
  228. package/lib/storage/CookieStorage.native.js +15 -0
  229. package/lib/storage/DefaultStorage.d.ts +7 -0
  230. package/lib/storage/DefaultStorage.js +16 -0
  231. package/{lib-esm/StorageHelper/localStorage.d.ts → lib/storage/DefaultStorage.native.d.ts} +6 -5
  232. package/lib/storage/DefaultStorage.native.js +50 -0
  233. package/lib/storage/InMemoryStorage.d.ts +12 -0
  234. package/lib/storage/InMemoryStorage.js +35 -0
  235. package/lib/{StorageHelper/sessionStorage.d.ts → storage/KeyValueStorage.d.ts} +5 -4
  236. package/lib/storage/KeyValueStorage.js +56 -0
  237. package/lib/storage/SessionStorage.d.ts +7 -0
  238. package/lib/storage/SessionStorage.js +16 -0
  239. package/lib/storage/index.d.ts +7 -0
  240. package/lib/storage/index.js +14 -0
  241. package/lib/storage/utils.d.ts +10 -0
  242. package/lib/storage/utils.js +22 -0
  243. package/lib/tsconfig.tsbuildinfo +1 -1
  244. package/lib/types/core.d.ts +4 -1
  245. package/lib/types/errors.d.ts +9 -3
  246. package/lib/types/errors.js +7 -0
  247. package/lib/types/storage.d.ts +3 -0
  248. package/lib/utils/amplifyUrl/index.d.ts +13 -0
  249. package/lib/utils/amplifyUrl/index.js +10 -0
  250. package/lib/utils/amplifyUrl/polyfill.d.ts +0 -0
  251. package/lib/utils/amplifyUrl/polyfill.js +4 -0
  252. package/lib/utils/amplifyUrl/polyfill.native.d.ts +1 -0
  253. package/lib/utils/amplifyUrl/polyfill.native.js +6 -0
  254. package/lib/utils/amplifyUuid/index.d.ts +3 -0
  255. package/lib/utils/amplifyUuid/index.js +9 -0
  256. package/lib/utils/amplifyUuid/polyfill.d.ts +0 -0
  257. package/lib/utils/amplifyUuid/polyfill.js +4 -0
  258. package/lib/utils/amplifyUuid/polyfill.native.d.ts +1 -0
  259. package/lib/utils/amplifyUuid/polyfill.native.js +6 -0
  260. package/lib/utils/convert/base64/base64Decoder.d.ts +2 -0
  261. package/lib/utils/convert/base64/base64Decoder.js +11 -0
  262. package/lib/utils/convert/base64/base64Encoder.d.ts +2 -0
  263. package/lib/utils/convert/base64/base64Encoder.js +17 -0
  264. package/lib/utils/convert/base64/bytesToString.d.ts +1 -0
  265. package/lib/utils/convert/base64/bytesToString.js +9 -0
  266. package/lib/utils/convert/index.d.ts +2 -0
  267. package/lib/utils/convert/index.js +9 -0
  268. package/lib/utils/convert/types.d.ts +9 -0
  269. package/lib/utils/convert/types.js +4 -0
  270. package/lib/utils/deepFreeze.d.ts +1 -0
  271. package/lib/utils/deepFreeze.js +16 -0
  272. package/lib/utils/generateRandomString.d.ts +1 -0
  273. package/lib/utils/generateRandomString.js +14 -0
  274. package/lib/{ClientDevice/android.d.ts → utils/getClientInfo/getClientInfo.android.d.ts} +1 -1
  275. package/lib/{ClientDevice/android.js → utils/getClientInfo/getClientInfo.android.js} +9 -9
  276. package/{lib-esm/ClientDevice/browser.d.ts → lib/utils/getClientInfo/getClientInfo.d.ts} +1 -9
  277. package/lib/{ClientDevice/ios.d.ts → utils/getClientInfo/getClientInfo.ios.d.ts} +1 -1
  278. package/lib/{ClientDevice/ios.js → utils/getClientInfo/getClientInfo.ios.js} +14 -14
  279. package/lib/utils/getClientInfo/getClientInfo.js +68 -0
  280. package/lib/utils/getClientInfo/index.d.ts +1 -0
  281. package/lib/utils/getClientInfo/index.js +7 -0
  282. package/lib/utils/globalHelpers/index.d.ts +3 -0
  283. package/lib/utils/globalHelpers/index.js +50 -0
  284. package/lib/utils/globalHelpers/index.native.d.ts +3 -0
  285. package/lib/utils/globalHelpers/index.native.js +28 -0
  286. package/lib/utils/index.d.ts +8 -0
  287. package/lib/utils/index.js +25 -0
  288. package/lib/utils/isBrowser.d.ts +1 -0
  289. package/lib/utils/isBrowser.js +7 -0
  290. package/lib/utils/isWebWorker.d.ts +1 -0
  291. package/lib/utils/isWebWorker.js +14 -0
  292. package/lib/utils/retry/NonRetryableError.d.ts +4 -0
  293. package/lib/utils/retry/NonRetryableError.js +12 -0
  294. package/lib/utils/retry/constants.d.ts +1 -0
  295. package/lib/utils/retry/constants.js +6 -0
  296. package/lib/utils/retry/index.d.ts +5 -0
  297. package/lib/utils/retry/index.js +15 -0
  298. package/lib/utils/retry/isNonRetryableError.d.ts +2 -0
  299. package/lib/utils/retry/isNonRetryableError.js +10 -0
  300. package/lib/utils/retry/jitteredBackoff.d.ts +6 -0
  301. package/lib/utils/retry/jitteredBackoff.js +19 -0
  302. package/lib/utils/retry/jitteredExponentialRetry.d.ts +5 -0
  303. package/lib/utils/retry/jitteredExponentialRetry.js +14 -0
  304. package/lib/utils/retry/retry.d.ts +6 -0
  305. package/lib/utils/retry/retry.js +64 -0
  306. package/lib/utils/sessionListener/SessionListener.d.ts +10 -0
  307. package/lib/utils/sessionListener/SessionListener.js +53 -0
  308. package/lib/utils/sessionListener/SessionListener.native.d.ts +10 -0
  309. package/lib/utils/sessionListener/SessionListener.native.js +50 -0
  310. package/lib/utils/sessionListener/constants.d.ts +2 -0
  311. package/lib/utils/sessionListener/constants.js +8 -0
  312. package/lib/utils/sessionListener/index.d.ts +3 -0
  313. package/lib/utils/sessionListener/index.js +10 -0
  314. package/lib/utils/sessionListener/types.d.ts +6 -0
  315. package/lib/utils/sessionListener/types.js +4 -0
  316. package/lib/utils/urlSafeDecode.d.ts +1 -0
  317. package/lib/utils/urlSafeDecode.js +10 -0
  318. package/lib/utils/urlSafeEncode.d.ts +1 -0
  319. package/lib/utils/urlSafeEncode.js +12 -0
  320. package/lib-esm/BackgroundProcessManager/BackgroundManagerNotOpenError.d.ts +3 -0
  321. package/lib-esm/BackgroundProcessManager/BackgroundManagerNotOpenError.js +7 -0
  322. package/lib-esm/{Util → BackgroundProcessManager}/BackgroundProcessManager.d.ts +1 -23
  323. package/lib-esm/BackgroundProcessManager/BackgroundProcessManager.js +283 -0
  324. package/lib-esm/BackgroundProcessManager/index.d.ts +1 -0
  325. package/lib-esm/BackgroundProcessManager/index.js +3 -0
  326. package/lib-esm/BackgroundProcessManager/types.d.ts +41 -0
  327. package/lib-esm/BackgroundProcessManager/types.js +20 -0
  328. package/lib-esm/Cache/StorageCache.d.ts +14 -31
  329. package/lib-esm/Cache/StorageCache.js +40 -106
  330. package/lib-esm/Cache/StorageCache.native.d.ts +19 -0
  331. package/lib-esm/Cache/StorageCache.native.js +58 -0
  332. package/lib-esm/Cache/{AsyncStorageCache.d.ts → StorageCacheCommon.d.ts} +124 -99
  333. package/lib-esm/Cache/StorageCacheCommon.js +464 -0
  334. package/lib-esm/Cache/constants.d.ts +6 -0
  335. package/lib-esm/Cache/constants.js +14 -0
  336. package/lib-esm/Cache/index.d.ts +2 -0
  337. package/lib-esm/Cache/index.js +4 -0
  338. package/lib-esm/Cache/types/cache.d.ts +38 -0
  339. package/lib-esm/Cache/types/index.d.ts +1 -1
  340. package/lib-esm/Cache/types/index.js +1 -1
  341. package/lib-esm/Cache/{Utils → utils}/CacheList.d.ts +1 -1
  342. package/lib-esm/Cache/{Utils → utils}/CacheList.js +46 -84
  343. package/lib-esm/Cache/utils/cacheHelpers.d.ts +14 -0
  344. package/lib-esm/Cache/utils/cacheHelpers.js +42 -0
  345. package/lib-esm/Cache/utils/errorHelpers.d.ts +7 -0
  346. package/lib-esm/Cache/utils/errorHelpers.js +21 -0
  347. package/lib-esm/Cache/utils/index.d.ts +2 -0
  348. package/lib-esm/Cache/utils/index.js +4 -0
  349. package/lib-esm/Hub/index.d.ts +7 -0
  350. package/lib-esm/Hub/index.js +42 -76
  351. package/lib-esm/Hub/types/AuthTypes.d.ts +19 -0
  352. package/lib-esm/I18n/I18n.d.ts +3 -19
  353. package/lib-esm/I18n/I18n.js +24 -60
  354. package/lib-esm/I18n/errorHelpers.d.ts +5 -0
  355. package/lib-esm/I18n/errorHelpers.js +13 -0
  356. package/lib-esm/I18n/index.d.ts +3 -15
  357. package/lib-esm/I18n/index.js +26 -55
  358. package/lib-esm/I18n/types.d.ts +1 -4
  359. package/lib-esm/I18n/types.js +3 -8
  360. package/lib-esm/Logger/ConsoleLogger.js +53 -129
  361. package/{lib/Util → lib-esm/Mutex}/Mutex.d.ts +2 -15
  362. package/lib-esm/{Util → Mutex}/Mutex.js +15 -20
  363. package/lib-esm/Mutex/index.d.ts +1 -0
  364. package/lib-esm/Mutex/index.js +3 -0
  365. package/lib-esm/Mutex/types.d.ts +13 -0
  366. package/lib-esm/Platform/customUserAgent.d.ts +16 -0
  367. package/lib-esm/Platform/customUserAgent.js +52 -0
  368. package/lib-esm/Platform/detectFramework.js +11 -12
  369. package/lib-esm/Platform/detection/Angular.js +3 -4
  370. package/lib-esm/Platform/detection/React.js +4 -4
  371. package/lib-esm/Platform/detection/Svelte.js +1 -1
  372. package/lib-esm/Platform/detection/helpers.js +7 -7
  373. package/lib-esm/Platform/detection/index.js +3 -3
  374. package/lib-esm/Platform/index.js +30 -50
  375. package/lib-esm/Platform/types.d.ts +75 -8
  376. package/lib-esm/Platform/types.js +40 -39
  377. package/lib-esm/Platform/version.d.ts +1 -1
  378. package/lib-esm/Platform/version.js +1 -1
  379. package/lib-esm/Reachability/Reachability.d.ts +7 -0
  380. package/lib-esm/Reachability/Reachability.js +39 -0
  381. package/lib-esm/Reachability/Reachability.native.d.ts +6 -0
  382. package/lib-esm/{Util → Reachability}/Reachability.native.js +11 -16
  383. package/lib-esm/Reachability/index.d.ts +1 -0
  384. package/lib-esm/Reachability/index.js +3 -0
  385. package/lib-esm/Reachability/types.d.ts +3 -0
  386. package/lib-esm/Reachability/types.js +3 -0
  387. package/lib-esm/ServiceWorker/ServiceWorker.js +78 -105
  388. package/lib-esm/ServiceWorker/errorHelpers.d.ts +7 -0
  389. package/lib-esm/ServiceWorker/errorHelpers.js +21 -0
  390. package/lib-esm/ServiceWorker/index.d.ts +0 -12
  391. package/lib-esm/ServiceWorker/index.js +0 -12
  392. package/lib-esm/{Util → Signer}/DateUtils.js +11 -28
  393. package/lib-esm/Signer/Signer.js +124 -0
  394. package/lib-esm/Signer/index.d.ts +1 -0
  395. package/lib-esm/Signer/index.js +3 -0
  396. package/lib-esm/adapterCore/error/AmplifyServerContextError.d.ts +1 -1
  397. package/lib-esm/adapterCore/error/AmplifyServerContextError.js +9 -28
  398. package/lib-esm/adapterCore/serverContext/serverContext.js +6 -6
  399. package/lib-esm/adapterCore/serverContext/serverContextRegistry.js +7 -7
  400. package/lib-esm/awsClients/cognitoIdentity/base.js +62 -0
  401. package/lib-esm/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/getCredentialsForIdentity.d.ts +2 -1
  402. package/lib-esm/awsClients/cognitoIdentity/getCredentialsForIdentity.js +36 -0
  403. package/lib-esm/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/getId.d.ts +2 -1
  404. package/lib-esm/awsClients/cognitoIdentity/getId.js +27 -0
  405. package/lib-esm/awsClients/cognitoIdentity/types.js +3 -0
  406. package/lib-esm/{AwsClients/Pinpoint → awsClients/pinpoint}/base.js +9 -11
  407. package/lib-esm/awsClients/pinpoint/errorHelpers.d.ts +5 -0
  408. package/lib-esm/awsClients/pinpoint/errorHelpers.js +13 -0
  409. package/{lib/AwsClients/Pinpoint → lib-esm/awsClients/pinpoint}/getInAppMessages.d.ts +4 -3
  410. package/lib-esm/awsClients/pinpoint/getInAppMessages.js +31 -0
  411. package/{lib/AwsClients/Pinpoint → lib-esm/awsClients/pinpoint}/putEvents.d.ts +4 -3
  412. package/lib-esm/awsClients/pinpoint/putEvents.js +34 -0
  413. package/lib-esm/{AwsClients/Pinpoint → awsClients/pinpoint}/updateEndpoint.d.ts +4 -3
  414. package/lib-esm/awsClients/pinpoint/updateEndpoint.js +35 -0
  415. package/lib-esm/clients/endpoints/getDnsSuffix.js +6 -28
  416. package/lib-esm/clients/endpoints/partitions.js +2 -2
  417. package/lib-esm/clients/handlers/authenticated.js +1 -1
  418. package/lib-esm/clients/handlers/fetch.js +40 -96
  419. package/lib-esm/clients/handlers/unauthenticated.js +1 -1
  420. package/lib-esm/clients/internal/composeServiceApi.js +17 -67
  421. package/lib-esm/clients/internal/composeTransferHandler.js +9 -11
  422. package/lib-esm/clients/middleware/retry/defaultRetryDecider.js +17 -74
  423. package/lib-esm/clients/middleware/retry/isClockSkewError.js +2 -4
  424. package/lib-esm/clients/middleware/retry/jitteredBackoff.js +5 -5
  425. package/lib-esm/clients/middleware/retry/middleware.js +61 -125
  426. package/lib-esm/clients/middleware/signing/middleware.js +21 -83
  427. package/lib-esm/clients/middleware/signing/signer/signatureV4/constants.js +17 -17
  428. package/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js +18 -52
  429. package/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.js +10 -21
  430. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +5 -5
  431. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +8 -30
  432. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +11 -38
  433. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +8 -12
  434. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +5 -8
  435. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +1 -1
  436. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +3 -3
  437. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +5 -9
  438. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +5 -6
  439. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +4 -6
  440. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +6 -6
  441. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +13 -14
  442. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +1 -3
  443. package/lib-esm/clients/middleware/signing/utils/extendedEncodeURIComponent.js +3 -5
  444. package/lib-esm/clients/middleware/signing/utils/getSkewCorrectedDate.js +1 -3
  445. package/lib-esm/clients/middleware/signing/utils/getUpdatedSystemClockOffset.js +1 -1
  446. package/lib-esm/clients/middleware/signing/utils/isClockSkewed.js +3 -5
  447. package/lib-esm/clients/middleware/userAgent/middleware.js +14 -63
  448. package/lib-esm/clients/serde/json.js +29 -95
  449. package/lib-esm/clients/serde/responseInfo.js +11 -17
  450. package/lib-esm/clients/types/http.d.ts +17 -1
  451. package/lib-esm/clients/utils/memoization.js +3 -3
  452. package/lib-esm/constants.d.ts +4 -0
  453. package/lib-esm/constants.js +15 -0
  454. package/lib-esm/{Util/Errors.d.ts → errors/AmplifyError.d.ts} +2 -9
  455. package/lib-esm/errors/AmplifyError.js +22 -0
  456. package/lib-esm/errors/PlatformNotSupportedError.d.ts +4 -0
  457. package/lib-esm/errors/PlatformNotSupportedError.js +12 -0
  458. package/lib-esm/errors/createAssertionFunction.d.ts +3 -0
  459. package/lib-esm/errors/createAssertionFunction.js +15 -0
  460. package/lib-esm/errors/errorHelpers.d.ts +2 -0
  461. package/lib-esm/errors/errorHelpers.js +16 -0
  462. package/lib-esm/errors/index.d.ts +4 -0
  463. package/lib-esm/errors/index.js +6 -0
  464. package/lib-esm/index.d.ts +7 -7
  465. package/lib-esm/index.js +7 -6
  466. package/lib-esm/libraryUtils.d.ts +20 -16
  467. package/lib-esm/libraryUtils.js +21 -18
  468. package/lib-esm/parseAWSExports.js +171 -34
  469. package/lib-esm/providers/kinesis/types/index.d.ts +1 -0
  470. package/lib-esm/providers/kinesis/types/index.js +3 -0
  471. package/lib-esm/providers/kinesis/types/kinesis.d.ts +9 -0
  472. package/lib-esm/providers/kinesis/types/kinesis.js +3 -0
  473. package/lib-esm/providers/kinesis-firehose/types/index.d.ts +1 -0
  474. package/lib-esm/providers/kinesis-firehose/types/index.js +3 -0
  475. package/lib-esm/providers/kinesis-firehose/types/kinesis-firehose.d.ts +9 -0
  476. package/lib-esm/providers/kinesis-firehose/types/kinesis-firehose.js +3 -0
  477. package/lib-esm/providers/personalize/types/index.d.ts +1 -0
  478. package/lib-esm/providers/personalize/types/index.js +3 -0
  479. package/lib-esm/providers/personalize/types/personalize.d.ts +8 -0
  480. package/lib-esm/providers/personalize/types/personalize.js +3 -0
  481. package/lib-esm/providers/pinpoint/apis/flushEvents.d.ts +2 -0
  482. package/lib-esm/providers/pinpoint/apis/flushEvents.js +17 -0
  483. package/lib-esm/providers/pinpoint/apis/index.d.ts +1 -0
  484. package/lib-esm/providers/pinpoint/apis/index.js +1 -0
  485. package/lib-esm/providers/pinpoint/apis/record.d.ts +1 -1
  486. package/lib-esm/providers/pinpoint/apis/record.js +56 -107
  487. package/lib-esm/providers/pinpoint/apis/updateEndpoint.d.ts +1 -1
  488. package/lib-esm/providers/pinpoint/apis/updateEndpoint.js +64 -109
  489. package/lib-esm/providers/pinpoint/index.d.ts +2 -1
  490. package/lib-esm/providers/pinpoint/index.js +2 -0
  491. package/lib-esm/providers/pinpoint/types/errors.d.ts +9 -0
  492. package/lib-esm/providers/pinpoint/types/errors.js +12 -0
  493. package/lib-esm/providers/pinpoint/types/index.d.ts +1 -0
  494. package/lib-esm/providers/pinpoint/types/index.js +1 -0
  495. package/lib-esm/providers/pinpoint/types/pinpoint.d.ts +7 -4
  496. package/lib-esm/providers/pinpoint/utils/PinpointEventBuffer.d.ts +1 -0
  497. package/lib-esm/providers/pinpoint/utils/PinpointEventBuffer.js +110 -197
  498. package/lib-esm/providers/pinpoint/utils/cacheEndpointId.js +10 -47
  499. package/lib-esm/providers/pinpoint/utils/constants.js +4 -4
  500. package/lib-esm/providers/pinpoint/utils/getCacheKey.js +2 -2
  501. package/lib-esm/providers/pinpoint/utils/getEndpointId.js +5 -49
  502. package/lib-esm/providers/pinpoint/utils/getEventBuffer.js +17 -19
  503. package/lib-esm/providers/pinpoint/utils/index.d.ts +1 -0
  504. package/lib-esm/providers/pinpoint/utils/index.js +1 -0
  505. package/lib-esm/providers/pinpoint/utils/isAppInForeground.js +3 -0
  506. package/lib-esm/providers/pinpoint/utils/isAppInForeground.native.js +5 -0
  507. package/lib-esm/providers/pinpoint/utils/resolveEndpointId.d.ts +8 -0
  508. package/lib-esm/providers/pinpoint/utils/resolveEndpointId.js +30 -0
  509. package/lib-esm/singleton/API/types.d.ts +73 -0
  510. package/lib-esm/singleton/API/types.js +1 -0
  511. package/lib-esm/singleton/Amplify.d.ts +2 -2
  512. package/lib-esm/singleton/Amplify.js +32 -92
  513. package/lib-esm/singleton/Analytics/types.d.ts +4 -1
  514. package/lib-esm/singleton/Auth/index.js +48 -116
  515. package/lib-esm/singleton/Auth/types.d.ts +31 -4
  516. package/lib-esm/singleton/Auth/utils/errorHelpers.d.ts +8 -0
  517. package/lib-esm/singleton/Auth/utils/errorHelpers.js +29 -0
  518. package/lib-esm/singleton/Auth/utils/index.d.ts +1 -1
  519. package/lib-esm/singleton/Auth/utils/index.js +28 -44
  520. package/lib-esm/singleton/Cache/types.d.ts +18 -0
  521. package/lib-esm/singleton/Cache/types.js +3 -0
  522. package/lib-esm/singleton/Geo/types.d.ts +17 -0
  523. package/lib-esm/singleton/Geo/types.js +3 -0
  524. package/lib-esm/singleton/Interactions/types.d.ts +21 -0
  525. package/lib-esm/singleton/Interactions/types.js +3 -0
  526. package/lib-esm/singleton/Notifications/InAppMessaging/types.d.ts +2 -0
  527. package/lib-esm/singleton/Notifications/InAppMessaging/types.js +3 -0
  528. package/lib-esm/singleton/Notifications/PushNotification/types.d.ts +2 -0
  529. package/lib-esm/singleton/Notifications/PushNotification/types.js +3 -0
  530. package/lib-esm/singleton/Notifications/types.d.ts +6 -0
  531. package/lib-esm/singleton/Notifications/types.js +3 -0
  532. package/lib-esm/singleton/Predictions/types.d.ts +49 -0
  533. package/lib-esm/singleton/Predictions/types.js +3 -0
  534. package/lib-esm/singleton/apis/fetchAuthSession.js +1 -1
  535. package/lib-esm/singleton/apis/internal/fetchAuthSession.js +1 -1
  536. package/lib-esm/singleton/apis/server/fetchAuthSession.js +1 -1
  537. package/lib-esm/singleton/types.d.ts +12 -1
  538. package/{lib/StorageHelper/cookieStorage.d.ts → lib-esm/storage/CookieStorage.d.ts} +4 -3
  539. package/lib-esm/storage/CookieStorage.js +45 -0
  540. package/lib-esm/storage/CookieStorage.native.d.ts +7 -0
  541. package/lib-esm/storage/CookieStorage.native.js +11 -0
  542. package/lib-esm/storage/DefaultStorage.d.ts +7 -0
  543. package/lib-esm/storage/DefaultStorage.js +12 -0
  544. package/{lib/StorageHelper/localStorage.d.ts → lib-esm/storage/DefaultStorage.native.d.ts} +6 -5
  545. package/lib-esm/storage/DefaultStorage.native.js +46 -0
  546. package/lib-esm/storage/InMemoryStorage.d.ts +12 -0
  547. package/lib-esm/storage/InMemoryStorage.js +31 -0
  548. package/lib-esm/{StorageHelper/sessionStorage.d.ts → storage/KeyValueStorage.d.ts} +5 -4
  549. package/lib-esm/storage/KeyValueStorage.js +52 -0
  550. package/lib-esm/storage/SessionStorage.d.ts +7 -0
  551. package/lib-esm/storage/SessionStorage.js +12 -0
  552. package/lib-esm/storage/index.d.ts +7 -0
  553. package/lib-esm/storage/index.js +10 -0
  554. package/lib-esm/storage/utils.d.ts +10 -0
  555. package/lib-esm/storage/utils.js +17 -0
  556. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  557. package/lib-esm/types/core.d.ts +4 -1
  558. package/lib-esm/types/errors.d.ts +9 -3
  559. package/lib-esm/types/errors.js +6 -1
  560. package/lib-esm/types/storage.d.ts +3 -0
  561. package/lib-esm/utils/amplifyUrl/index.d.ts +13 -0
  562. package/lib-esm/utils/amplifyUrl/index.js +6 -0
  563. package/lib-esm/utils/amplifyUrl/polyfill.d.ts +0 -0
  564. package/lib-esm/utils/amplifyUrl/polyfill.js +4 -0
  565. package/lib-esm/utils/amplifyUrl/polyfill.native.d.ts +1 -0
  566. package/lib-esm/utils/amplifyUrl/polyfill.native.js +4 -0
  567. package/lib-esm/utils/amplifyUuid/index.d.ts +3 -0
  568. package/lib-esm/utils/amplifyUuid/index.js +6 -0
  569. package/lib-esm/utils/amplifyUuid/polyfill.d.ts +0 -0
  570. package/lib-esm/utils/amplifyUuid/polyfill.js +4 -0
  571. package/lib-esm/utils/amplifyUuid/polyfill.native.d.ts +1 -0
  572. package/lib-esm/utils/amplifyUuid/polyfill.native.js +4 -0
  573. package/lib-esm/utils/convert/base64/base64Decoder.d.ts +2 -0
  574. package/lib-esm/utils/convert/base64/base64Decoder.js +8 -0
  575. package/lib-esm/utils/convert/base64/base64Encoder.d.ts +2 -0
  576. package/lib-esm/utils/convert/base64/base64Encoder.js +14 -0
  577. package/lib-esm/utils/convert/base64/bytesToString.d.ts +1 -0
  578. package/lib-esm/utils/convert/base64/bytesToString.js +5 -0
  579. package/lib-esm/utils/convert/index.d.ts +2 -0
  580. package/lib-esm/utils/convert/index.js +4 -0
  581. package/lib-esm/utils/convert/types.d.ts +9 -0
  582. package/lib-esm/utils/convert/types.js +3 -0
  583. package/lib-esm/utils/deepFreeze.d.ts +1 -0
  584. package/lib-esm/utils/deepFreeze.js +12 -0
  585. package/lib-esm/utils/generateRandomString.d.ts +1 -0
  586. package/lib-esm/utils/generateRandomString.js +10 -0
  587. package/lib-esm/{ClientDevice/android.d.ts → utils/getClientInfo/getClientInfo.android.d.ts} +1 -1
  588. package/lib-esm/{ClientDevice/android.js → utils/getClientInfo/getClientInfo.android.js} +6 -6
  589. package/{lib/ClientDevice/browser.d.ts → lib-esm/utils/getClientInfo/getClientInfo.d.ts} +1 -9
  590. package/lib-esm/{ClientDevice/ios.d.ts → utils/getClientInfo/getClientInfo.ios.d.ts} +1 -1
  591. package/lib-esm/{ClientDevice/ios.js → utils/getClientInfo/getClientInfo.ios.js} +11 -11
  592. package/lib-esm/{ClientDevice/browser.js → utils/getClientInfo/getClientInfo.js} +18 -28
  593. package/lib-esm/utils/getClientInfo/index.d.ts +1 -0
  594. package/lib-esm/utils/getClientInfo/index.js +3 -0
  595. package/lib-esm/utils/globalHelpers/index.d.ts +3 -0
  596. package/lib-esm/utils/globalHelpers/index.js +44 -0
  597. package/lib-esm/utils/globalHelpers/index.native.d.ts +3 -0
  598. package/lib-esm/utils/globalHelpers/index.native.js +22 -0
  599. package/lib-esm/utils/index.d.ts +8 -0
  600. package/lib-esm/utils/index.js +10 -0
  601. package/lib-esm/utils/isBrowser.d.ts +1 -0
  602. package/lib-esm/utils/isBrowser.js +3 -0
  603. package/lib-esm/utils/isWebWorker.d.ts +1 -0
  604. package/lib-esm/utils/isWebWorker.js +10 -0
  605. package/lib-esm/utils/retry/NonRetryableError.d.ts +4 -0
  606. package/lib-esm/utils/retry/NonRetryableError.js +8 -0
  607. package/lib-esm/utils/retry/constants.d.ts +1 -0
  608. package/lib-esm/utils/retry/constants.js +3 -0
  609. package/lib-esm/utils/retry/index.d.ts +5 -0
  610. package/lib-esm/utils/retry/index.js +7 -0
  611. package/lib-esm/utils/retry/isNonRetryableError.d.ts +2 -0
  612. package/lib-esm/utils/retry/isNonRetryableError.js +6 -0
  613. package/lib-esm/utils/retry/jitteredBackoff.d.ts +6 -0
  614. package/lib-esm/utils/retry/jitteredBackoff.js +15 -0
  615. package/lib-esm/utils/retry/jitteredExponentialRetry.d.ts +5 -0
  616. package/lib-esm/utils/retry/jitteredExponentialRetry.js +10 -0
  617. package/lib-esm/utils/retry/retry.d.ts +6 -0
  618. package/lib-esm/utils/retry/retry.js +60 -0
  619. package/lib-esm/utils/sessionListener/SessionListener.d.ts +10 -0
  620. package/lib-esm/utils/sessionListener/SessionListener.js +49 -0
  621. package/lib-esm/utils/sessionListener/SessionListener.native.d.ts +10 -0
  622. package/lib-esm/utils/sessionListener/SessionListener.native.js +46 -0
  623. package/lib-esm/utils/sessionListener/constants.d.ts +2 -0
  624. package/lib-esm/utils/sessionListener/constants.js +5 -0
  625. package/lib-esm/utils/sessionListener/index.d.ts +3 -0
  626. package/lib-esm/utils/sessionListener/index.js +5 -0
  627. package/lib-esm/utils/sessionListener/types.d.ts +6 -0
  628. package/lib-esm/utils/sessionListener/types.js +3 -0
  629. package/lib-esm/{Util/StringUtils.d.ts → utils/urlSafeDecode.d.ts} +0 -1
  630. package/lib-esm/utils/urlSafeDecode.js +6 -0
  631. package/{lib/Util/StringUtils.d.ts → lib-esm/utils/urlSafeEncode.d.ts} +0 -1
  632. package/lib-esm/utils/urlSafeEncode.js +8 -0
  633. package/package.json +18 -45
  634. package/src/BackgroundProcessManager/BackgroundManagerNotOpenError.ts +8 -0
  635. package/src/{Util → BackgroundProcessManager}/BackgroundProcessManager.ts +4 -58
  636. package/src/BackgroundProcessManager/index.ts +4 -0
  637. package/src/BackgroundProcessManager/types.ts +49 -0
  638. package/src/Cache/StorageCache.native.ts +65 -0
  639. package/src/Cache/StorageCache.ts +61 -158
  640. package/src/Cache/StorageCacheCommon.ts +577 -0
  641. package/src/Cache/constants.ts +18 -0
  642. package/src/Cache/index.ts +6 -0
  643. package/src/Cache/types/cache.ts +51 -0
  644. package/src/Cache/types/index.ts +1 -1
  645. package/src/Cache/{Utils → utils}/CacheList.ts +185 -198
  646. package/src/Cache/utils/cacheHelpers.ts +52 -0
  647. package/src/Cache/utils/errorHelpers.ts +26 -0
  648. package/src/Cache/{Utils → utils}/index.ts +4 -5
  649. package/src/Hub/index.ts +11 -2
  650. package/src/Hub/types/AuthTypes.ts +12 -1
  651. package/src/I18n/I18n.ts +4 -25
  652. package/src/I18n/errorHelpers.ts +18 -0
  653. package/src/I18n/index.ts +9 -33
  654. package/src/I18n/types.ts +1 -4
  655. package/src/Logger/ConsoleLogger.ts +1 -1
  656. package/src/{Util → Mutex}/Mutex.ts +2 -20
  657. package/src/Mutex/index.ts +4 -0
  658. package/src/Mutex/types.ts +20 -0
  659. package/src/Platform/customUserAgent.ts +75 -0
  660. package/src/Platform/index.ts +14 -1
  661. package/src/Platform/types.ts +84 -39
  662. package/src/Platform/version.ts +1 -1
  663. package/src/{Util → Reachability}/Reachability.native.ts +7 -12
  664. package/src/Reachability/Reachability.ts +55 -0
  665. package/src/Reachability/index.ts +4 -0
  666. package/src/Reachability/types.ts +6 -0
  667. package/src/ServiceWorker/ServiceWorker.ts +39 -48
  668. package/src/ServiceWorker/errorHelpers.ts +26 -0
  669. package/src/ServiceWorker/index.ts +0 -12
  670. package/src/{Util → Signer}/DateUtils.ts +1 -1
  671. package/src/{Signer.ts → Signer/Signer.ts} +5 -4
  672. package/src/Signer/index.ts +4 -0
  673. package/src/adapterCore/error/AmplifyServerContextError.ts +1 -1
  674. package/src/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/base.ts +4 -1
  675. package/src/{AwsClients/Pinpoint → awsClients/pinpoint}/base.ts +2 -1
  676. package/src/awsClients/pinpoint/errorHelpers.ts +19 -0
  677. package/src/{AwsClients/Pinpoint → awsClients/pinpoint}/getInAppMessages.ts +2 -1
  678. package/src/{AwsClients/Pinpoint → awsClients/pinpoint}/putEvents.ts +4 -7
  679. package/src/{AwsClients/Pinpoint → awsClients/pinpoint}/updateEndpoint.ts +2 -1
  680. package/src/clients/handlers/fetch.ts +5 -1
  681. package/src/clients/middleware/retry/jitteredBackoff.ts +1 -1
  682. package/src/clients/middleware/signing/signer/signatureV4/presignUrl.ts +2 -1
  683. package/src/clients/types/http.ts +19 -1
  684. package/src/{Util/Constants.ts → constants.ts} +0 -11
  685. package/src/{Util/Errors.ts → errors/AmplifyError.ts} +2 -18
  686. package/src/errors/PlatformNotSupportedError.ts +14 -0
  687. package/src/errors/createAssertionFunction.ts +23 -0
  688. package/src/errors/errorHelpers.ts +20 -0
  689. package/src/errors/index.ts +7 -0
  690. package/src/index.ts +16 -11
  691. package/src/libraryUtils.ts +61 -57
  692. package/src/parseAWSExports.ts +214 -14
  693. package/src/providers/kinesis/types/index.ts +4 -0
  694. package/src/providers/kinesis/types/kinesis.ts +12 -0
  695. package/src/providers/kinesis-firehose/types/index.ts +4 -0
  696. package/src/providers/kinesis-firehose/types/kinesis-firehose.ts +12 -0
  697. package/src/providers/personalize/types/index.ts +4 -0
  698. package/src/providers/personalize/types/personalize.ts +11 -0
  699. package/src/providers/pinpoint/apis/flushEvents.ts +31 -0
  700. package/src/providers/pinpoint/apis/index.ts +1 -0
  701. package/src/providers/pinpoint/apis/record.ts +36 -33
  702. package/src/providers/pinpoint/apis/updateEndpoint.ts +26 -10
  703. package/src/providers/pinpoint/index.ts +6 -1
  704. package/src/providers/pinpoint/types/errors.ts +12 -0
  705. package/src/providers/pinpoint/types/index.ts +1 -0
  706. package/src/providers/pinpoint/types/pinpoint.ts +7 -3
  707. package/src/providers/pinpoint/utils/PinpointEventBuffer.ts +21 -13
  708. package/src/providers/pinpoint/utils/index.ts +1 -0
  709. package/src/providers/pinpoint/utils/isAppInForeground.native.ts +7 -0
  710. package/src/providers/pinpoint/utils/isAppInForeground.ts +4 -0
  711. package/src/providers/pinpoint/utils/resolveEndpointId.ts +46 -0
  712. package/src/singleton/API/types.ts +90 -0
  713. package/src/singleton/Amplify.ts +10 -8
  714. package/src/singleton/Analytics/types.ts +7 -1
  715. package/src/singleton/Auth/types.ts +53 -4
  716. package/src/singleton/Auth/utils/errorHelpers.ts +37 -0
  717. package/src/singleton/Auth/utils/index.ts +35 -38
  718. package/src/singleton/Cache/types.ts +27 -0
  719. package/src/singleton/Geo/types.ts +20 -0
  720. package/src/singleton/Interactions/types.ts +29 -0
  721. package/src/singleton/Notifications/InAppMessaging/types.ts +6 -0
  722. package/src/singleton/Notifications/PushNotification/types.ts +6 -0
  723. package/src/singleton/Notifications/types.ts +10 -0
  724. package/src/singleton/Predictions/types.ts +61 -0
  725. package/src/singleton/types.ts +15 -7
  726. package/src/storage/CookieStorage.native.ts +13 -0
  727. package/src/storage/CookieStorage.ts +68 -0
  728. package/src/storage/DefaultStorage.native.ts +58 -0
  729. package/src/storage/DefaultStorage.ts +14 -0
  730. package/src/storage/InMemoryStorage.ts +36 -0
  731. package/src/{StorageHelper/sessionStorage.ts → storage/KeyValueStorage.ts} +15 -18
  732. package/src/storage/SessionStorage.ts +14 -0
  733. package/src/storage/index.ts +13 -0
  734. package/src/storage/utils.ts +22 -0
  735. package/src/types/core.ts +4 -1
  736. package/src/types/errors.ts +15 -3
  737. package/src/types/storage.ts +4 -0
  738. package/src/utils/amplifyUrl/index.ts +9 -0
  739. package/src/utils/amplifyUrl/polyfill.native.ts +6 -0
  740. package/src/utils/amplifyUrl/polyfill.ts +4 -0
  741. package/src/utils/amplifyUuid/index.ts +9 -0
  742. package/src/utils/amplifyUuid/polyfill.native.ts +6 -0
  743. package/src/utils/amplifyUuid/polyfill.ts +4 -0
  744. package/src/utils/convert/base64/base64Decoder.ts +11 -0
  745. package/src/utils/convert/base64/base64Encoder.ts +18 -0
  746. package/src/utils/convert/base64/bytesToString.ts +6 -0
  747. package/src/utils/convert/index.ts +5 -0
  748. package/src/utils/convert/types.ts +17 -0
  749. package/src/utils/deepFreeze.ts +16 -0
  750. package/src/utils/generateRandomString.ts +16 -0
  751. package/src/{ClientDevice/android.ts → utils/getClientInfo/getClientInfo.android.ts} +2 -2
  752. package/src/{ClientDevice/ios.ts → utils/getClientInfo/getClientInfo.ios.ts} +3 -3
  753. package/src/{ClientDevice/browser.ts → utils/getClientInfo/getClientInfo.ts} +4 -16
  754. package/src/utils/getClientInfo/index.ts +4 -0
  755. package/src/utils/globalHelpers/index.native.ts +30 -0
  756. package/src/utils/globalHelpers/index.ts +54 -0
  757. package/src/utils/index.ts +17 -0
  758. package/src/utils/isBrowser.ts +5 -0
  759. package/src/utils/isWebWorker.ts +13 -0
  760. package/src/utils/retry/NonRetryableError.ts +9 -0
  761. package/src/utils/retry/constants.ts +4 -0
  762. package/src/utils/retry/index.ts +8 -0
  763. package/src/utils/retry/isNonRetryableError.ts +9 -0
  764. package/src/utils/retry/jitteredBackoff.ts +21 -0
  765. package/src/utils/retry/jitteredExponentialRetry.ts +18 -0
  766. package/src/{Util/Retry.ts → utils/retry/retry.ts} +4 -44
  767. package/src/utils/sessionListener/SessionListener.native.ts +70 -0
  768. package/src/utils/sessionListener/SessionListener.ts +74 -0
  769. package/src/utils/sessionListener/constants.ts +6 -0
  770. package/src/utils/sessionListener/index.ts +7 -0
  771. package/src/utils/sessionListener/types.ts +11 -0
  772. package/src/{Util/StringUtils.ts → utils/urlSafeDecode.ts} +0 -6
  773. package/src/utils/urlSafeEncode.ts +9 -0
  774. package/lib/Amplify.d.ts +0 -29
  775. package/lib/Amplify.js +0 -118
  776. package/lib/AwsClients/CognitoIdentity/base.js +0 -114
  777. package/lib/AwsClients/CognitoIdentity/getCredentialsForIdentity.js +0 -83
  778. package/lib/AwsClients/CognitoIdentity/getId.js +0 -73
  779. package/lib/AwsClients/Pinpoint/getInAppMessages.js +0 -77
  780. package/lib/AwsClients/Pinpoint/putEvents.js +0 -84
  781. package/lib/AwsClients/Pinpoint/updateEndpoint.js +0 -81
  782. package/lib/Cache/AsyncStorageCache.js +0 -744
  783. package/lib/Cache/BrowserStorageCache.d.ts +0 -166
  784. package/lib/Cache/BrowserStorageCache.js +0 -469
  785. package/lib/Cache/InMemoryCache.d.ts +0 -129
  786. package/lib/Cache/InMemoryCache.js +0 -349
  787. package/lib/Cache/Utils/CacheList.js +0 -196
  788. package/lib/Cache/Utils/CacheUtils.d.ts +0 -25
  789. package/lib/Cache/Utils/CacheUtils.js +0 -88
  790. package/lib/Cache/Utils/index.d.ts +0 -2
  791. package/lib/Cache/Utils/index.js +0 -16
  792. package/lib/Cache/reactnative.d.ts +0 -3
  793. package/lib/Cache/reactnative.js +0 -8
  794. package/lib/Cache/types/Cache.d.ts +0 -55
  795. package/lib/ClientDevice/browser.js +0 -80
  796. package/lib/ClientDevice/index.d.ts +0 -23
  797. package/lib/ClientDevice/index.js +0 -18
  798. package/lib/ClientDevice/reactnative.d.ts +0 -7
  799. package/lib/ClientDevice/reactnative.js +0 -24
  800. package/lib/RNComponents/index.d.ts +0 -6
  801. package/lib/RNComponents/index.js +0 -16
  802. package/lib/RNComponents/reactnative.d.ts +0 -3
  803. package/lib/RNComponents/reactnative.js +0 -14
  804. package/lib/StorageHelper/cookieStorage.js +0 -167
  805. package/lib/StorageHelper/inMemoryStorage.d.ts +0 -10
  806. package/lib/StorageHelper/inMemoryStorage.js +0 -82
  807. package/lib/StorageHelper/index.d.ts +0 -45
  808. package/lib/StorageHelper/index.js +0 -83
  809. package/lib/StorageHelper/localStorage.js +0 -114
  810. package/lib/StorageHelper/reactnative.d.ts +0 -83
  811. package/lib/StorageHelper/reactnative.js +0 -250
  812. package/lib/StorageHelper/sessionStorage.js +0 -114
  813. package/lib/Util/BackgroundProcessManager.js +0 -449
  814. package/lib/Util/Constants.d.ts +0 -12
  815. package/lib/Util/Constants.js +0 -29
  816. package/lib/Util/Errors.js +0 -62
  817. package/lib/Util/JS.d.ts +0 -29
  818. package/lib/Util/JS.js +0 -214
  819. package/lib/Util/Reachability.d.ts +0 -13
  820. package/lib/Util/Reachability.js +0 -69
  821. package/lib/Util/Reachability.native.d.ts +0 -12
  822. package/lib/Util/Retry.d.ts +0 -21
  823. package/lib/Util/Retry.js +0 -205
  824. package/lib/Util/StringUtils.js +0 -17
  825. package/lib/Util/errors/AssertError.d.ts +0 -2
  826. package/lib/Util/errors/AssertError.js +0 -11
  827. package/lib/Util/index.d.ts +0 -7
  828. package/lib/Util/index.js +0 -31
  829. package/lib/clients/middleware/signing/signer/signatureV4/index.native.d.ts +0 -5
  830. package/lib/clients/middleware/signing/signer/signatureV4/index.native.js +0 -15
  831. package/lib-esm/Amplify.d.ts +0 -29
  832. package/lib-esm/Amplify.js +0 -115
  833. package/lib-esm/AwsClients/CognitoIdentity/base.js +0 -109
  834. package/lib-esm/AwsClients/CognitoIdentity/getCredentialsForIdentity.js +0 -80
  835. package/lib-esm/AwsClients/CognitoIdentity/getId.js +0 -70
  836. package/lib-esm/AwsClients/Pinpoint/getInAppMessages.js +0 -74
  837. package/lib-esm/AwsClients/Pinpoint/putEvents.js +0 -81
  838. package/lib-esm/AwsClients/Pinpoint/updateEndpoint.js +0 -78
  839. package/lib-esm/Cache/AsyncStorageCache.js +0 -737
  840. package/lib-esm/Cache/BrowserStorageCache.d.ts +0 -166
  841. package/lib-esm/Cache/BrowserStorageCache.js +0 -466
  842. package/lib-esm/Cache/InMemoryCache.d.ts +0 -129
  843. package/lib-esm/Cache/InMemoryCache.js +0 -346
  844. package/lib-esm/Cache/Utils/CacheUtils.d.ts +0 -25
  845. package/lib-esm/Cache/Utils/CacheUtils.js +0 -81
  846. package/lib-esm/Cache/Utils/index.d.ts +0 -2
  847. package/lib-esm/Cache/Utils/index.js +0 -4
  848. package/lib-esm/Cache/reactnative.d.ts +0 -3
  849. package/lib-esm/Cache/reactnative.js +0 -6
  850. package/lib-esm/Cache/types/Cache.d.ts +0 -55
  851. package/lib-esm/ClientDevice/index.d.ts +0 -23
  852. package/lib-esm/ClientDevice/index.js +0 -15
  853. package/lib-esm/ClientDevice/reactnative.d.ts +0 -7
  854. package/lib-esm/ClientDevice/reactnative.js +0 -21
  855. package/lib-esm/RNComponents/index.d.ts +0 -6
  856. package/lib-esm/RNComponents/index.js +0 -13
  857. package/lib-esm/RNComponents/isAppInForeground.js +0 -6
  858. package/lib-esm/RNComponents/reactnative.d.ts +0 -3
  859. package/lib-esm/RNComponents/reactnative.js +0 -6
  860. package/lib-esm/Signer.js +0 -127
  861. package/lib-esm/StorageHelper/cookieStorage.js +0 -141
  862. package/lib-esm/StorageHelper/inMemoryStorage.d.ts +0 -10
  863. package/lib-esm/StorageHelper/inMemoryStorage.js +0 -79
  864. package/lib-esm/StorageHelper/index.d.ts +0 -45
  865. package/lib-esm/StorageHelper/index.js +0 -76
  866. package/lib-esm/StorageHelper/localStorage.js +0 -111
  867. package/lib-esm/StorageHelper/reactnative.d.ts +0 -83
  868. package/lib-esm/StorageHelper/reactnative.js +0 -244
  869. package/lib-esm/StorageHelper/sessionStorage.js +0 -111
  870. package/lib-esm/Util/BackgroundProcessManager.js +0 -446
  871. package/lib-esm/Util/Constants.d.ts +0 -12
  872. package/lib-esm/Util/Constants.js +0 -26
  873. package/lib-esm/Util/Errors.js +0 -57
  874. package/lib-esm/Util/JS.d.ts +0 -29
  875. package/lib-esm/Util/JS.js +0 -199
  876. package/lib-esm/Util/Reachability.d.ts +0 -13
  877. package/lib-esm/Util/Reachability.js +0 -64
  878. package/lib-esm/Util/Reachability.native.d.ts +0 -12
  879. package/lib-esm/Util/Retry.d.ts +0 -21
  880. package/lib-esm/Util/Retry.js +0 -198
  881. package/lib-esm/Util/StringUtils.js +0 -12
  882. package/lib-esm/Util/errors/AssertError.d.ts +0 -2
  883. package/lib-esm/Util/errors/AssertError.js +0 -7
  884. package/lib-esm/Util/index.d.ts +0 -7
  885. package/lib-esm/Util/index.js +0 -9
  886. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.native.d.ts +0 -5
  887. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.native.js +0 -8
  888. package/polyfills/URL/index.ts +0 -14
  889. package/polyfills/URL/tsconfig.json +0 -10
  890. package/polyfills/URL/webpack.config.js +0 -43
  891. package/src/Amplify.ts +0 -106
  892. package/src/Cache/AsyncStorageCache.ts +0 -500
  893. package/src/Cache/BrowserStorageCache.ts +0 -517
  894. package/src/Cache/CHANGELOG.md +0 -1239
  895. package/src/Cache/InMemoryCache.ts +0 -354
  896. package/src/Cache/Utils/CacheUtils.ts +0 -92
  897. package/src/Cache/reactnative.ts +0 -9
  898. package/src/Cache/types/Cache.ts +0 -75
  899. package/src/ClientDevice/index.ts +0 -14
  900. package/src/ClientDevice/reactnative.ts +0 -18
  901. package/src/RNComponents/index.ts +0 -16
  902. package/src/RNComponents/isAppInForeground.ts +0 -8
  903. package/src/RNComponents/reactnative.ts +0 -6
  904. package/src/StorageHelper/cookieStorage.ts +0 -99
  905. package/src/StorageHelper/inMemoryStorage.ts +0 -32
  906. package/src/StorageHelper/index.ts +0 -78
  907. package/src/StorageHelper/localStorage.ts +0 -60
  908. package/src/StorageHelper/reactnative.ts +0 -182
  909. package/src/Util/JS.ts +0 -255
  910. package/src/Util/Reachability.ts +0 -58
  911. package/src/Util/errors/AssertError.ts +0 -11
  912. package/src/Util/index.ts +0 -23
  913. package/src/clients/middleware/signing/signer/signatureV4/index.native.ts +0 -10
  914. /package/lib/{AwsClients/CognitoIdentity/types.js → Cache/types/cache.js} +0 -0
  915. /package/lib/{Cache/types/Cache.js → Mutex/types.js} +0 -0
  916. /package/lib/{Util → Signer}/DateUtils.d.ts +0 -0
  917. /package/lib/{Signer.d.ts → Signer/Signer.d.ts} +0 -0
  918. /package/lib/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/base.d.ts +0 -0
  919. /package/lib/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/index.d.ts +0 -0
  920. /package/lib/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/index.js +0 -0
  921. /package/lib/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/types.d.ts +0 -0
  922. /package/lib/{AwsClients/Pinpoint → awsClients/pinpoint}/base.d.ts +0 -0
  923. /package/lib/{AwsClients/Pinpoint → awsClients/pinpoint}/index.d.ts +0 -0
  924. /package/lib/{AwsClients/Pinpoint → awsClients/pinpoint}/index.js +0 -0
  925. /package/lib/{AwsClients/Pinpoint → awsClients/pinpoint}/types.d.ts +0 -0
  926. /package/lib/{AwsClients/Pinpoint → awsClients/pinpoint}/types.js +0 -0
  927. /package/lib-esm/{AwsClients/CognitoIdentity/types.js → Cache/types/cache.js} +0 -0
  928. /package/lib-esm/{Cache/types/Cache.js → Mutex/types.js} +0 -0
  929. /package/lib-esm/{Util → Signer}/DateUtils.d.ts +0 -0
  930. /package/lib-esm/{Signer.d.ts → Signer/Signer.d.ts} +0 -0
  931. /package/lib-esm/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/base.d.ts +0 -0
  932. /package/lib-esm/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/index.d.ts +0 -0
  933. /package/lib-esm/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/index.js +0 -0
  934. /package/lib-esm/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/types.d.ts +0 -0
  935. /package/lib-esm/{AwsClients/Pinpoint → awsClients/pinpoint}/base.d.ts +0 -0
  936. /package/lib-esm/{AwsClients/Pinpoint → awsClients/pinpoint}/index.d.ts +0 -0
  937. /package/lib-esm/{AwsClients/Pinpoint → awsClients/pinpoint}/index.js +0 -0
  938. /package/lib-esm/{AwsClients/Pinpoint → awsClients/pinpoint}/types.d.ts +0 -0
  939. /package/lib-esm/{AwsClients/Pinpoint → awsClients/pinpoint}/types.js +0 -0
  940. /package/lib-esm/{RNComponents → providers/pinpoint/utils}/isAppInForeground.d.ts +0 -0
  941. /package/{lib/RNComponents/isAppInForeground.d.ts → lib-esm/providers/pinpoint/utils/isAppInForeground.native.d.ts} +0 -0
  942. /package/src/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/getCredentialsForIdentity.ts +0 -0
  943. /package/src/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/getId.ts +0 -0
  944. /package/src/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/index.ts +0 -0
  945. /package/src/{AwsClients/CognitoIdentity → awsClients/cognitoIdentity}/types.ts +0 -0
  946. /package/src/{AwsClients/Pinpoint → awsClients/pinpoint}/index.ts +0 -0
  947. /package/src/{AwsClients/Pinpoint → awsClients/pinpoint}/types.ts +0 -0
@@ -0,0 +1,468 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.StorageCacheCommon = void 0;
6
+ const Logger_1 = require("../Logger");
7
+ const constants_1 = require("./constants");
8
+ const utils_1 = require("./utils");
9
+ const errorHelpers_1 = require("./utils/errorHelpers");
10
+ const logger = new Logger_1.ConsoleLogger('StorageCache');
11
+ /**
12
+ * Initialization of the cache
13
+ *
14
+ */
15
+ class StorageCacheCommon {
16
+ /**
17
+ * Initialize the cache
18
+ *
19
+ * @param config - Custom configuration for this instance.
20
+ */
21
+ constructor({ config, keyValueStorage, }) {
22
+ this.config = {
23
+ ...constants_1.defaultConfig,
24
+ ...config,
25
+ };
26
+ this.keyValueStorage = keyValueStorage;
27
+ this.sanitizeConfig();
28
+ }
29
+ getModuleName() {
30
+ return 'Cache';
31
+ }
32
+ /**
33
+ * Set custom configuration for the cache instance.
34
+ *
35
+ * @param config - customized configuration (without keyPrefix, which can't be changed)
36
+ *
37
+ * @return - the current configuration
38
+ */
39
+ configure(config) {
40
+ if (config) {
41
+ if (config.keyPrefix) {
42
+ logger.warn('keyPrefix can not be re-configured on an existing Cache instance.');
43
+ }
44
+ this.config = {
45
+ ...this.config,
46
+ ...config,
47
+ };
48
+ }
49
+ this.sanitizeConfig();
50
+ return this.config;
51
+ }
52
+ /**
53
+ * return the current size of the cache
54
+ * @return {Promise}
55
+ */
56
+ async getCurrentCacheSize() {
57
+ let size = await this.getStorage().getItem((0, utils_1.getCurrentSizeKey)(this.config.keyPrefix));
58
+ if (!size) {
59
+ await this.getStorage().setItem((0, utils_1.getCurrentSizeKey)(this.config.keyPrefix), '0');
60
+ size = '0';
61
+ }
62
+ return Number(size);
63
+ }
64
+ /**
65
+ * Set item into cache. You can put number, string, boolean or object.
66
+ * The cache will first check whether has the same key.
67
+ * If it has, it will delete the old item and then put the new item in
68
+ * The cache will pop out items if it is full
69
+ * You can specify the cache item options. The cache will abort and output a warning:
70
+ * If the key is invalid
71
+ * If the size of the item exceeds itemMaxSize.
72
+ * If the value is undefined
73
+ * If incorrect cache item configuration
74
+ * If error happened with browser storage
75
+ *
76
+ * @param {String} key - the key of the item
77
+ * @param {Object} value - the value of the item
78
+ * @param {Object} [options] - optional, the specified meta-data
79
+ *
80
+ * @return {Promise}
81
+ */
82
+ async setItem(key, value, options) {
83
+ logger.debug(`Set item: key is ${key}, value is ${value} with options: ${options}`);
84
+ if (!key || key === constants_1.currentSizeKey) {
85
+ logger.warn(`Invalid key: should not be empty or reserved key: '${constants_1.currentSizeKey}'`);
86
+ return;
87
+ }
88
+ if (typeof value === 'undefined') {
89
+ logger.warn(`The value of item should not be undefined!`);
90
+ return;
91
+ }
92
+ const cacheItemOptions = {
93
+ priority: options?.priority !== undefined
94
+ ? options.priority
95
+ : this.config.defaultPriority,
96
+ expires: options?.expires !== undefined
97
+ ? options.expires
98
+ : this.config.defaultTTL + (0, utils_1.getCurrentTime)(),
99
+ };
100
+ if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) {
101
+ logger.warn(`Invalid parameter: priority due to out or range. It should be within 1 and 5.`);
102
+ return;
103
+ }
104
+ const prefixedKey = `${this.config.keyPrefix}${key}`;
105
+ const item = this.fillCacheItem(prefixedKey, value, cacheItemOptions);
106
+ // check whether this item is too big;
107
+ if (item.byteSize > this.config.itemMaxSize) {
108
+ logger.warn(`Item with key: ${key} you are trying to put into is too big!`);
109
+ return;
110
+ }
111
+ try {
112
+ // first look into the storage, if it exists, delete it.
113
+ const val = await this.getStorage().getItem(prefixedKey);
114
+ if (val) {
115
+ await this.removeCacheItem(prefixedKey, JSON.parse(val).byteSize);
116
+ }
117
+ // check whether the cache is full
118
+ if (await this.isCacheFull(item.byteSize)) {
119
+ const validKeys = await this.clearInvalidAndGetRemainingKeys();
120
+ if (await this.isCacheFull(item.byteSize)) {
121
+ const sizeToPop = await this.sizeToPop(item.byteSize);
122
+ await this.popOutItems(validKeys, sizeToPop);
123
+ }
124
+ }
125
+ // put item in the cache
126
+ return this.setCacheItem(prefixedKey, item);
127
+ }
128
+ catch (e) {
129
+ logger.warn(`setItem failed! ${e}`);
130
+ }
131
+ }
132
+ /**
133
+ * Get item from cache. It will return null if item doesn’t exist or it has been expired.
134
+ * If you specified callback function in the options,
135
+ * then the function will be executed if no such item in the cache
136
+ * and finally put the return value into cache.
137
+ * Please make sure the callback function will return the value you want to put into the cache.
138
+ * The cache will abort output a warning:
139
+ * If the key is invalid
140
+ * If error happened with AsyncStorage
141
+ *
142
+ * @param {String} key - the key of the item
143
+ * @param {Object} [options] - the options of callback function
144
+ *
145
+ * @return {Promise} - return a promise resolves to be the value of the item
146
+ */
147
+ async getItem(key, options) {
148
+ logger.debug(`Get item: key is ${key} with options ${options}`);
149
+ let cached;
150
+ if (!key || key === constants_1.currentSizeKey) {
151
+ logger.warn(`Invalid key: should not be empty or reserved key: '${constants_1.currentSizeKey}'`);
152
+ return null;
153
+ }
154
+ const prefixedKey = `${this.config.keyPrefix}${key}`;
155
+ try {
156
+ cached = await this.getStorage().getItem(prefixedKey);
157
+ if (cached != null) {
158
+ if (await this.isExpired(prefixedKey)) {
159
+ // if expired, remove that item and return null
160
+ await this.removeCacheItem(prefixedKey, JSON.parse(cached).byteSize);
161
+ }
162
+ else {
163
+ // if not expired, update its visitedTime and return the value
164
+ const item = await this.updateVisitedTime(JSON.parse(cached), prefixedKey);
165
+ return item.data;
166
+ }
167
+ }
168
+ if (options?.callback) {
169
+ const val = options.callback();
170
+ if (val !== null) {
171
+ await this.setItem(key, val, options);
172
+ }
173
+ return val;
174
+ }
175
+ return null;
176
+ }
177
+ catch (e) {
178
+ logger.warn(`getItem failed! ${e}`);
179
+ return null;
180
+ }
181
+ }
182
+ /**
183
+ * remove item from the cache
184
+ * The cache will abort output a warning:
185
+ * If error happened with AsyncStorage
186
+ * @param {String} key - the key of the item
187
+ * @return {Promise}
188
+ */
189
+ async removeItem(key) {
190
+ logger.debug(`Remove item: key is ${key}`);
191
+ if (!key || key === constants_1.currentSizeKey) {
192
+ logger.warn(`Invalid key: should not be empty or reserved key: '${constants_1.currentSizeKey}'`);
193
+ return;
194
+ }
195
+ const prefixedKey = `${this.config.keyPrefix}${key}`;
196
+ try {
197
+ const val = await this.getStorage().getItem(prefixedKey);
198
+ if (val) {
199
+ await this.removeCacheItem(prefixedKey, JSON.parse(val).byteSize);
200
+ }
201
+ }
202
+ catch (e) {
203
+ logger.warn(`removeItem failed! ${e}`);
204
+ }
205
+ }
206
+ /**
207
+ * Return all the keys owned by this cache.
208
+ * Will return an empty array if error occurred.
209
+ *
210
+ * @return {Promise}
211
+ */
212
+ async getAllKeys() {
213
+ try {
214
+ return await this.getAllCacheKeys();
215
+ }
216
+ catch (e) {
217
+ logger.warn(`getAllkeys failed! ${e}`);
218
+ return [];
219
+ }
220
+ }
221
+ getStorage() {
222
+ return this.keyValueStorage;
223
+ }
224
+ /**
225
+ * check whether item is expired
226
+ *
227
+ * @param key - the key of the item
228
+ *
229
+ * @return true if the item is expired.
230
+ */
231
+ async isExpired(key) {
232
+ const text = await this.getStorage().getItem(key);
233
+ (0, errorHelpers_1.assert)(text !== null, errorHelpers_1.CacheErrorCode.NoCacheItem, `Key: ${key}`);
234
+ const item = JSON.parse(text);
235
+ if ((0, utils_1.getCurrentTime)() >= item.expires) {
236
+ return true;
237
+ }
238
+ return false;
239
+ }
240
+ /**
241
+ * delete item from cache
242
+ *
243
+ * @param prefixedKey - the key of the item
244
+ * @param size - optional, the byte size of the item
245
+ */
246
+ async removeCacheItem(prefixedKey, size) {
247
+ const item = await this.getStorage().getItem(prefixedKey);
248
+ (0, errorHelpers_1.assert)(item !== null, errorHelpers_1.CacheErrorCode.NoCacheItem, `Key: ${prefixedKey}`);
249
+ const itemSize = size ?? JSON.parse(item).byteSize;
250
+ // first try to update the current size of the cache
251
+ await this.decreaseCurrentSizeInBytes(itemSize);
252
+ // try to remove the item from cache
253
+ try {
254
+ await this.getStorage().removeItem(prefixedKey);
255
+ }
256
+ catch (removeItemError) {
257
+ // if some error happened, we need to rollback the current size
258
+ await this.increaseCurrentSizeInBytes(itemSize);
259
+ logger.error(`Failed to remove item: ${removeItemError}`);
260
+ }
261
+ }
262
+ /**
263
+ * produce a JSON object with meta-data and data value
264
+ * @param value - the value of the item
265
+ * @param options - optional, the specified meta-data
266
+ *
267
+ * @return - the item which has the meta-data and the value
268
+ */
269
+ fillCacheItem(key, value, options) {
270
+ const item = {
271
+ key,
272
+ data: value,
273
+ timestamp: (0, utils_1.getCurrentTime)(),
274
+ visitedTime: (0, utils_1.getCurrentTime)(),
275
+ priority: options.priority ?? 0,
276
+ expires: options.expires ?? 0,
277
+ type: typeof value,
278
+ byteSize: 0,
279
+ };
280
+ // calculate byte size
281
+ item.byteSize = (0, utils_1.getByteLength)(JSON.stringify(item));
282
+ // re-calculate using cache item with updated byteSize property
283
+ item.byteSize = (0, utils_1.getByteLength)(JSON.stringify(item));
284
+ return item;
285
+ }
286
+ sanitizeConfig() {
287
+ if (this.config.itemMaxSize > this.config.capacityInBytes) {
288
+ logger.error('Invalid parameter: itemMaxSize. It should be smaller than capacityInBytes. Setting back to default.');
289
+ this.config.itemMaxSize = constants_1.defaultConfig.itemMaxSize;
290
+ }
291
+ if (this.config.defaultPriority > 5 || this.config.defaultPriority < 1) {
292
+ logger.error('Invalid parameter: defaultPriority. It should be between 1 and 5. Setting back to default.');
293
+ this.config.defaultPriority = constants_1.defaultConfig.defaultPriority;
294
+ }
295
+ if (Number(this.config.warningThreshold) > 1 ||
296
+ Number(this.config.warningThreshold) < 0) {
297
+ logger.error('Invalid parameter: warningThreshold. It should be between 0 and 1. Setting back to default.');
298
+ this.config.warningThreshold = constants_1.defaultConfig.warningThreshold;
299
+ }
300
+ // Set 5MB limit
301
+ const cacheLimit = 5 * 1024 * 1024;
302
+ if (this.config.capacityInBytes > cacheLimit) {
303
+ logger.error('Cache Capacity should be less than 5MB. Setting back to default. Setting back to default.');
304
+ this.config.capacityInBytes = constants_1.defaultConfig.capacityInBytes;
305
+ }
306
+ }
307
+ /**
308
+ * increase current size of the cache
309
+ *
310
+ * @param amount - the amount of the cache szie which need to be increased
311
+ */
312
+ async increaseCurrentSizeInBytes(amount) {
313
+ const size = await this.getCurrentCacheSize();
314
+ await this.getStorage().setItem((0, utils_1.getCurrentSizeKey)(this.config.keyPrefix), (size + amount).toString());
315
+ }
316
+ /**
317
+ * decrease current size of the cache
318
+ *
319
+ * @param amount - the amount of the cache size which needs to be decreased
320
+ */
321
+ async decreaseCurrentSizeInBytes(amount) {
322
+ const size = await this.getCurrentCacheSize();
323
+ await this.getStorage().setItem((0, utils_1.getCurrentSizeKey)(this.config.keyPrefix), (size - amount).toString());
324
+ }
325
+ /**
326
+ * update the visited time if item has been visited
327
+ *
328
+ * @param item - the item which need to be updated
329
+ * @param prefixedKey - the key of the item
330
+ *
331
+ * @return the updated item
332
+ */
333
+ async updateVisitedTime(item, prefixedKey) {
334
+ item.visitedTime = (0, utils_1.getCurrentTime)();
335
+ await this.getStorage().setItem(prefixedKey, JSON.stringify(item));
336
+ return item;
337
+ }
338
+ /**
339
+ * put item into cache
340
+ *
341
+ * @param prefixedKey - the key of the item
342
+ * @param itemData - the value of the item
343
+ * @param itemSizeInBytes - the byte size of the item
344
+ */
345
+ async setCacheItem(prefixedKey, item) {
346
+ // first try to update the current size of the cache.
347
+ await this.increaseCurrentSizeInBytes(item.byteSize);
348
+ // try to add the item into cache
349
+ try {
350
+ await this.getStorage().setItem(prefixedKey, JSON.stringify(item));
351
+ }
352
+ catch (setItemErr) {
353
+ // if some error happened, we need to rollback the current size
354
+ await this.decreaseCurrentSizeInBytes(item.byteSize);
355
+ logger.error(`Failed to set item ${setItemErr}`);
356
+ }
357
+ }
358
+ /**
359
+ * total space needed when poping out items
360
+ *
361
+ * @param itemSize
362
+ *
363
+ * @return total space needed
364
+ */
365
+ async sizeToPop(itemSize) {
366
+ const cur = await this.getCurrentCacheSize();
367
+ const spaceItemNeed = cur + itemSize - this.config.capacityInBytes;
368
+ const cacheThresholdSpace = (1 - this.config.warningThreshold) * this.config.capacityInBytes;
369
+ return spaceItemNeed > cacheThresholdSpace
370
+ ? spaceItemNeed
371
+ : cacheThresholdSpace;
372
+ }
373
+ /**
374
+ * see whether cache is full
375
+ *
376
+ * @param itemSize
377
+ *
378
+ * @return true if cache is full
379
+ */
380
+ async isCacheFull(itemSize) {
381
+ const cur = await this.getCurrentCacheSize();
382
+ return itemSize + cur > this.config.capacityInBytes;
383
+ }
384
+ /**
385
+ * get all the items we have, sort them by their priority,
386
+ * if priority is same, sort them by their last visited time
387
+ * pop out items from the low priority (5 is the lowest)
388
+ * @private
389
+ * @param keys - all the keys in this cache
390
+ * @param sizeToPop - the total size of the items which needed to be poped out
391
+ */
392
+ async popOutItems(keys, sizeToPop) {
393
+ const items = [];
394
+ let remainedSize = sizeToPop;
395
+ for (let i = 0; i < keys.length; i += 1) {
396
+ const val = await this.getStorage().getItem(keys[i]);
397
+ if (val != null) {
398
+ const item = JSON.parse(val);
399
+ items.push(item);
400
+ }
401
+ }
402
+ // first compare priority
403
+ // then compare visited time
404
+ items.sort((a, b) => {
405
+ if (a.priority > b.priority) {
406
+ return -1;
407
+ }
408
+ else if (a.priority < b.priority) {
409
+ return 1;
410
+ }
411
+ else {
412
+ if (a.visitedTime < b.visitedTime) {
413
+ return -1;
414
+ }
415
+ else
416
+ return 1;
417
+ }
418
+ });
419
+ for (let i = 0; i < items.length; i += 1) {
420
+ // pop out items until we have enough room for new item
421
+ await this.removeCacheItem(items[i].key, items[i].byteSize);
422
+ remainedSize -= items[i].byteSize;
423
+ if (remainedSize <= 0) {
424
+ return;
425
+ }
426
+ }
427
+ }
428
+ /**
429
+ * Scan the storage and combine the following operations for efficiency
430
+ * 1. Clear out all expired keys owned by this cache, not including the size key.
431
+ * 2. Return the remaining keys.
432
+ *
433
+ * @return The remaining valid keys
434
+ */
435
+ async clearInvalidAndGetRemainingKeys() {
436
+ const remainingKeys = [];
437
+ const keys = await this.getAllCacheKeys({
438
+ omitSizeKey: true,
439
+ });
440
+ for (const key of keys) {
441
+ if (await this.isExpired(key)) {
442
+ await this.removeCacheItem(key);
443
+ }
444
+ else {
445
+ remainingKeys.push(key);
446
+ }
447
+ }
448
+ return remainingKeys;
449
+ }
450
+ /**
451
+ * clear the entire cache
452
+ * The cache will abort and output a warning if error occurs
453
+ * @return {Promise}
454
+ */
455
+ async clear() {
456
+ logger.debug(`Clear Cache`);
457
+ try {
458
+ const keys = await this.getAllKeys();
459
+ for (const key of keys) {
460
+ await this.getStorage().removeItem(key);
461
+ }
462
+ }
463
+ catch (e) {
464
+ logger.warn(`clear failed! ${e}`);
465
+ }
466
+ }
467
+ }
468
+ exports.StorageCacheCommon = StorageCacheCommon;
@@ -0,0 +1,6 @@
1
+ import { CacheConfig } from './types';
2
+ /**
3
+ * Default cache config
4
+ */
5
+ export declare const defaultConfig: Omit<CacheConfig, 'storage'>;
6
+ export declare const currentSizeKey = "CurSize";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.currentSizeKey = exports.defaultConfig = void 0;
6
+ /**
7
+ * Default cache config
8
+ */
9
+ exports.defaultConfig = {
10
+ keyPrefix: 'aws-amplify-cache',
11
+ capacityInBytes: 1048576,
12
+ itemMaxSize: 210000,
13
+ defaultTTL: 259200000,
14
+ defaultPriority: 5,
15
+ warningThreshold: 0.8,
16
+ };
17
+ exports.currentSizeKey = 'CurSize';
@@ -0,0 +1,2 @@
1
+ import { StorageCache } from './StorageCache';
2
+ export declare const Cache: StorageCache;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Cache = void 0;
6
+ const StorageCache_1 = require("./StorageCache");
7
+ exports.Cache = new StorageCache_1.StorageCache();
@@ -0,0 +1,38 @@
1
+ import { CacheConfig } from '../../singleton/Cache/types';
2
+ export { CacheConfig };
3
+ /**
4
+ * Cache Interface
5
+ */
6
+ export interface Cache {
7
+ /** Put item into cache */
8
+ setItem(key: string, value: any, options?: CacheItemOptions): Promise<void>;
9
+ /** Get item from cache */
10
+ getItem(key: string, options?: CacheItemOptions): Promise<CacheItem['data']>;
11
+ /** Remove item from cache */
12
+ removeItem(key: string): Promise<void>;
13
+ /** Remove all items from cache */
14
+ clear(): Promise<void>;
15
+ /** Get all keys form cache */
16
+ getAllKeys(): Promise<string[]>;
17
+ /** Get current size of the cache */
18
+ getCurrentCacheSize(): Promise<number>;
19
+ /** create a new instance with customized config */
20
+ createInstance(config: CacheConfig): Cache;
21
+ /** change current configuration */
22
+ configure(config: CacheConfig): CacheConfig;
23
+ }
24
+ export interface CacheItem {
25
+ key: string;
26
+ data: any;
27
+ timestamp: number;
28
+ visitedTime: number;
29
+ priority: number;
30
+ expires: number;
31
+ type: string;
32
+ byteSize: number;
33
+ }
34
+ export interface CacheItemOptions {
35
+ priority?: number;
36
+ expires?: number;
37
+ callback?: Function;
38
+ }
@@ -1 +1 @@
1
- export * from './Cache';
1
+ export * from './cache';
@@ -16,4 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- __exportStar(require("./Cache"), exports);
19
+ __exportStar(require("./cache"), exports);
@@ -9,7 +9,7 @@
9
9
  * @member hashtable - the hashtable which maps cache key to list node
10
10
  * @member length - length of the list
11
11
  */
12
- export default class CacheList {
12
+ export declare class CacheList {
13
13
  private head;
14
14
  private tail;
15
15
  private hashtable;