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