@aws-amplify/core 6.0.1-api-v6-models.8035dfc.0 → 6.0.1-api-v6-models.572a7b5.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 (341) hide show
  1. package/lib/Cache/StorageCache.d.ts +14 -31
  2. package/lib/Cache/StorageCache.js +97 -102
  3. package/lib/Cache/StorageCache.native.d.ts +19 -0
  4. package/lib/Cache/StorageCache.native.js +164 -0
  5. package/{lib-esm/Cache/AsyncStorageCache.d.ts → lib/Cache/StorageCacheCommon.d.ts} +124 -99
  6. package/lib/Cache/{AsyncStorageCache.js → StorageCacheCommon.js} +494 -432
  7. package/lib/Cache/constants.d.ts +6 -0
  8. package/lib/Cache/constants.js +17 -0
  9. package/lib/Cache/index.d.ts +2 -0
  10. package/lib/Cache/index.js +7 -0
  11. package/lib/Cache/types/cache.d.ts +38 -0
  12. package/lib/Cache/types/index.d.ts +1 -1
  13. package/lib/Cache/types/index.js +1 -1
  14. package/lib/Cache/{Utils → utils}/CacheList.d.ts +1 -1
  15. package/lib/Cache/{Utils → utils}/CacheList.js +2 -1
  16. package/lib/Cache/utils/cacheHelpers.d.ts +14 -0
  17. package/lib/Cache/utils/cacheHelpers.js +51 -0
  18. package/lib/Cache/{Utils → utils}/errorHelpers.d.ts +0 -1
  19. package/lib/Cache/{Utils → utils}/errorHelpers.js +0 -4
  20. package/lib/Cache/utils/index.d.ts +2 -0
  21. package/lib/Cache/utils/index.js +12 -0
  22. package/lib/I18n/I18n.js +1 -6
  23. package/lib/Platform/types.d.ts +18 -8
  24. package/lib/Platform/types.js +10 -2
  25. package/lib/Platform/version.d.ts +1 -1
  26. package/lib/Platform/version.js +1 -1
  27. package/lib/Reachability/Reachability.d.ts +1 -0
  28. package/lib/Reachability/Reachability.js +42 -1
  29. package/lib/ServiceWorker/ServiceWorker.js +69 -17
  30. package/lib/ServiceWorker/index.d.ts +0 -12
  31. package/lib/ServiceWorker/index.js +0 -12
  32. package/lib/Signer/Signer.js +3 -2
  33. package/lib/awsClients/cognitoIdentity/base.js +2 -1
  34. package/lib/awsClients/pinpoint/base.js +2 -1
  35. package/lib/awsClients/pinpoint/getInAppMessages.js +2 -1
  36. package/lib/awsClients/pinpoint/putEvents.js +2 -1
  37. package/lib/awsClients/pinpoint/updateEndpoint.js +2 -1
  38. package/lib/clients/middleware/signing/signer/signatureV4/index.d.ts +0 -1
  39. package/lib/clients/middleware/signing/signer/signatureV4/index.js +0 -1
  40. package/lib/clients/middleware/signing/signer/signatureV4/presignUrl.js +2 -1
  41. package/lib/errors/errorHelpers.d.ts +2 -0
  42. package/lib/errors/errorHelpers.js +20 -0
  43. package/lib/errors/index.d.ts +1 -0
  44. package/lib/errors/index.js +3 -1
  45. package/lib/index.d.ts +4 -4
  46. package/lib/index.js +9 -6
  47. package/lib/libraryUtils.d.ts +8 -7
  48. package/lib/libraryUtils.js +17 -17
  49. package/lib/parseAWSExports.js +34 -19
  50. package/lib/providers/pinpoint/apis/flushEvents.d.ts +2 -2
  51. package/lib/providers/pinpoint/apis/record.d.ts +1 -1
  52. package/lib/providers/pinpoint/apis/record.js +8 -24
  53. package/lib/providers/pinpoint/apis/updateEndpoint.js +6 -6
  54. package/lib/providers/pinpoint/index.d.ts +2 -2
  55. package/lib/providers/pinpoint/index.js +4 -2
  56. package/lib/providers/pinpoint/types/errors.d.ts +9 -0
  57. package/lib/providers/pinpoint/types/errors.js +15 -0
  58. package/lib/providers/pinpoint/types/index.d.ts +1 -0
  59. package/lib/providers/pinpoint/types/index.js +3 -0
  60. package/lib/providers/pinpoint/types/pinpoint.d.ts +3 -3
  61. package/lib/providers/pinpoint/utils/index.d.ts +1 -0
  62. package/lib/providers/pinpoint/utils/index.js +3 -1
  63. package/lib/providers/pinpoint/utils/resolveEndpointId.d.ts +8 -0
  64. package/lib/providers/pinpoint/utils/resolveEndpointId.js +85 -0
  65. package/lib/singleton/Amplify.d.ts +2 -2
  66. package/lib/singleton/Amplify.js +6 -5
  67. package/lib/singleton/Auth/types.d.ts +3 -3
  68. package/lib/singleton/Cache/types.d.ts +18 -0
  69. package/lib/singleton/Cache/types.js +4 -0
  70. package/lib/singleton/Interactions/types.d.ts +21 -0
  71. package/lib/singleton/Interactions/types.js +4 -0
  72. package/lib/singleton/Notifications/PushNotification/types.d.ts +2 -0
  73. package/lib/singleton/Notifications/PushNotification/types.js +4 -0
  74. package/lib/singleton/Notifications/types.d.ts +3 -1
  75. package/lib/singleton/types.d.ts +3 -3
  76. package/lib/storage/CookieStorage.js +8 -5
  77. package/lib/storage/DefaultStorage.js +1 -1
  78. package/lib/storage/utils.d.ts +1 -1
  79. package/lib/storage/utils.js +3 -3
  80. package/lib/tsconfig.tsbuildinfo +1 -1
  81. package/lib/types/errors.d.ts +1 -0
  82. package/lib/types/errors.js +1 -0
  83. package/lib/utils/amplifyUrl/index.d.ts +13 -0
  84. package/lib/utils/amplifyUrl/index.js +10 -0
  85. package/lib/utils/amplifyUrl/polyfill.d.ts +0 -0
  86. package/lib/utils/amplifyUrl/polyfill.js +4 -0
  87. package/lib/utils/amplifyUrl/polyfill.native.d.ts +1 -0
  88. package/lib/utils/amplifyUuid/index.d.ts +3 -0
  89. package/lib/utils/amplifyUuid/index.js +9 -0
  90. package/lib/utils/amplifyUuid/polyfill.d.ts +0 -0
  91. package/lib/utils/amplifyUuid/polyfill.js +4 -0
  92. package/lib/utils/amplifyUuid/polyfill.native.d.ts +1 -0
  93. package/lib/utils/amplifyUuid/polyfill.native.js +6 -0
  94. package/lib/utils/deepFreeze.d.ts +1 -0
  95. package/lib/utils/deepFreeze.js +38 -0
  96. package/lib/{ClientDevice/android.d.ts → utils/getClientInfo/getClientInfo.android.d.ts} +1 -1
  97. package/lib/{ClientDevice/android.js → utils/getClientInfo/getClientInfo.android.js} +4 -4
  98. package/lib/{ClientDevice/browser.d.ts → utils/getClientInfo/getClientInfo.d.ts} +1 -9
  99. package/lib/{ClientDevice/ios.d.ts → utils/getClientInfo/getClientInfo.ios.d.ts} +1 -1
  100. package/lib/{ClientDevice/ios.js → utils/getClientInfo/getClientInfo.ios.js} +4 -4
  101. package/lib/{ClientDevice/browser.js → utils/getClientInfo/getClientInfo.js} +6 -18
  102. package/lib/utils/getClientInfo/index.d.ts +1 -0
  103. package/lib/utils/getClientInfo/index.js +7 -0
  104. package/lib/utils/index.d.ts +2 -0
  105. package/lib/utils/index.js +5 -1
  106. package/lib/utils/sessionListener/SessionListener.d.ts +10 -0
  107. package/lib/utils/sessionListener/SessionListener.js +55 -0
  108. package/lib/utils/sessionListener/SessionListener.native.d.ts +10 -0
  109. package/lib/utils/sessionListener/SessionListener.native.js +54 -0
  110. package/lib/utils/sessionListener/index.d.ts +2 -0
  111. package/lib/utils/sessionListener/index.js +7 -0
  112. package/lib/utils/sessionListener/types.d.ts +6 -0
  113. package/lib/utils/sessionListener/types.js +4 -0
  114. package/lib-esm/Cache/StorageCache.d.ts +14 -31
  115. package/lib-esm/Cache/StorageCache.js +97 -102
  116. package/lib-esm/Cache/StorageCache.native.d.ts +19 -0
  117. package/lib-esm/Cache/StorageCache.native.js +161 -0
  118. package/{lib/Cache/AsyncStorageCache.d.ts → lib-esm/Cache/StorageCacheCommon.d.ts} +124 -99
  119. package/lib-esm/Cache/{AsyncStorageCache.js → StorageCacheCommon.js} +493 -430
  120. package/lib-esm/Cache/constants.d.ts +6 -0
  121. package/lib-esm/Cache/constants.js +14 -0
  122. package/lib-esm/Cache/index.d.ts +2 -0
  123. package/lib-esm/Cache/index.js +4 -0
  124. package/lib-esm/Cache/types/cache.d.ts +38 -0
  125. package/lib-esm/Cache/types/index.d.ts +1 -1
  126. package/lib-esm/Cache/types/index.js +1 -1
  127. package/lib-esm/Cache/{Utils → utils}/CacheList.d.ts +1 -1
  128. package/lib-esm/Cache/{Utils → utils}/CacheList.js +1 -1
  129. package/lib-esm/Cache/utils/cacheHelpers.d.ts +14 -0
  130. package/lib-esm/Cache/utils/cacheHelpers.js +44 -0
  131. package/lib-esm/Cache/{Utils → utils}/errorHelpers.d.ts +0 -1
  132. package/lib-esm/Cache/{Utils → utils}/errorHelpers.js +0 -4
  133. package/lib-esm/Cache/utils/index.d.ts +2 -0
  134. package/lib-esm/Cache/utils/index.js +4 -0
  135. package/lib-esm/I18n/I18n.js +1 -6
  136. package/lib-esm/Platform/types.d.ts +18 -8
  137. package/lib-esm/Platform/types.js +10 -2
  138. package/lib-esm/Platform/version.d.ts +1 -1
  139. package/lib-esm/Platform/version.js +1 -1
  140. package/lib-esm/Reachability/Reachability.d.ts +1 -0
  141. package/lib-esm/Reachability/Reachability.js +43 -2
  142. package/lib-esm/ServiceWorker/ServiceWorker.js +69 -17
  143. package/lib-esm/ServiceWorker/index.d.ts +0 -12
  144. package/lib-esm/ServiceWorker/index.js +0 -12
  145. package/lib-esm/Signer/Signer.js +3 -2
  146. package/lib-esm/awsClients/cognitoIdentity/base.js +2 -1
  147. package/lib-esm/awsClients/pinpoint/base.js +2 -1
  148. package/lib-esm/awsClients/pinpoint/getInAppMessages.js +2 -1
  149. package/lib-esm/awsClients/pinpoint/putEvents.js +2 -1
  150. package/lib-esm/awsClients/pinpoint/updateEndpoint.js +2 -1
  151. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.d.ts +0 -1
  152. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.js +0 -1
  153. package/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js +2 -1
  154. package/lib-esm/errors/errorHelpers.d.ts +2 -0
  155. package/lib-esm/errors/errorHelpers.js +17 -0
  156. package/lib-esm/errors/index.d.ts +1 -0
  157. package/lib-esm/errors/index.js +1 -0
  158. package/lib-esm/index.d.ts +4 -4
  159. package/lib-esm/index.js +5 -4
  160. package/lib-esm/libraryUtils.d.ts +8 -7
  161. package/lib-esm/libraryUtils.js +7 -7
  162. package/lib-esm/parseAWSExports.js +34 -19
  163. package/lib-esm/providers/pinpoint/apis/flushEvents.d.ts +2 -2
  164. package/lib-esm/providers/pinpoint/apis/record.d.ts +1 -1
  165. package/lib-esm/providers/pinpoint/apis/record.js +9 -25
  166. package/lib-esm/providers/pinpoint/apis/updateEndpoint.js +6 -6
  167. package/lib-esm/providers/pinpoint/index.d.ts +2 -2
  168. package/lib-esm/providers/pinpoint/index.js +2 -1
  169. package/lib-esm/providers/pinpoint/types/errors.d.ts +9 -0
  170. package/lib-esm/providers/pinpoint/types/errors.js +12 -0
  171. package/lib-esm/providers/pinpoint/types/index.d.ts +1 -0
  172. package/lib-esm/providers/pinpoint/types/index.js +1 -0
  173. package/lib-esm/providers/pinpoint/types/pinpoint.d.ts +3 -3
  174. package/lib-esm/providers/pinpoint/utils/index.d.ts +1 -0
  175. package/lib-esm/providers/pinpoint/utils/index.js +1 -0
  176. package/lib-esm/providers/pinpoint/utils/resolveEndpointId.d.ts +8 -0
  177. package/lib-esm/providers/pinpoint/utils/resolveEndpointId.js +81 -0
  178. package/lib-esm/singleton/Amplify.d.ts +2 -2
  179. package/lib-esm/singleton/Amplify.js +6 -5
  180. package/lib-esm/singleton/Auth/types.d.ts +3 -3
  181. package/lib-esm/singleton/Cache/types.d.ts +18 -0
  182. package/lib-esm/singleton/Cache/types.js +3 -0
  183. package/lib-esm/singleton/Interactions/types.d.ts +21 -0
  184. package/lib-esm/singleton/Interactions/types.js +3 -0
  185. package/lib-esm/singleton/Notifications/PushNotification/types.d.ts +2 -0
  186. package/lib-esm/singleton/Notifications/PushNotification/types.js +3 -0
  187. package/lib-esm/singleton/Notifications/types.d.ts +3 -1
  188. package/lib-esm/singleton/types.d.ts +3 -3
  189. package/lib-esm/storage/CookieStorage.js +5 -5
  190. package/lib-esm/storage/DefaultStorage.js +2 -2
  191. package/lib-esm/storage/utils.d.ts +1 -1
  192. package/lib-esm/storage/utils.js +1 -1
  193. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  194. package/lib-esm/types/errors.d.ts +1 -0
  195. package/lib-esm/types/errors.js +1 -0
  196. package/lib-esm/utils/amplifyUrl/index.d.ts +13 -0
  197. package/lib-esm/utils/amplifyUrl/index.js +6 -0
  198. package/lib-esm/utils/amplifyUuid/index.d.ts +3 -0
  199. package/lib-esm/utils/amplifyUuid/index.js +6 -0
  200. package/lib-esm/utils/amplifyUuid/polyfill.native.js +4 -0
  201. package/lib-esm/utils/deepFreeze.d.ts +1 -0
  202. package/lib-esm/utils/deepFreeze.js +34 -0
  203. package/lib-esm/{ClientDevice/android.d.ts → utils/getClientInfo/getClientInfo.android.d.ts} +1 -1
  204. package/lib-esm/{ClientDevice/android.js → utils/getClientInfo/getClientInfo.android.js} +2 -2
  205. package/lib-esm/{ClientDevice/browser.d.ts → utils/getClientInfo/getClientInfo.d.ts} +1 -9
  206. package/lib-esm/{ClientDevice/ios.d.ts → utils/getClientInfo/getClientInfo.ios.d.ts} +1 -1
  207. package/lib-esm/{ClientDevice/ios.js → utils/getClientInfo/getClientInfo.ios.js} +2 -2
  208. package/lib-esm/{ClientDevice/browser.js → utils/getClientInfo/getClientInfo.js} +4 -14
  209. package/lib-esm/utils/getClientInfo/index.d.ts +1 -0
  210. package/lib-esm/utils/getClientInfo/index.js +3 -0
  211. package/lib-esm/utils/index.d.ts +2 -0
  212. package/lib-esm/utils/index.js +2 -0
  213. package/lib-esm/utils/sessionListener/SessionListener.d.ts +10 -0
  214. package/lib-esm/utils/sessionListener/SessionListener.js +52 -0
  215. package/lib-esm/utils/sessionListener/SessionListener.native.d.ts +10 -0
  216. package/lib-esm/utils/sessionListener/SessionListener.native.js +51 -0
  217. package/lib-esm/utils/sessionListener/index.d.ts +2 -0
  218. package/lib-esm/utils/sessionListener/index.js +4 -0
  219. package/lib-esm/utils/sessionListener/types.d.ts +6 -0
  220. package/lib-esm/utils/sessionListener/types.js +3 -0
  221. package/package.json +9 -19
  222. package/src/Cache/StorageCache.native.ts +65 -0
  223. package/src/Cache/StorageCache.ts +61 -158
  224. package/src/Cache/StorageCacheCommon.ts +577 -0
  225. package/src/Cache/constants.ts +18 -0
  226. package/src/Cache/index.ts +6 -0
  227. package/src/Cache/types/cache.ts +51 -0
  228. package/src/Cache/types/index.ts +4 -4
  229. package/src/Cache/{Utils → utils}/CacheList.ts +185 -185
  230. package/src/Cache/utils/cacheHelpers.ts +52 -0
  231. package/src/Cache/{Utils → utils}/errorHelpers.ts +0 -4
  232. package/src/Cache/{Utils → utils}/index.ts +4 -5
  233. package/src/I18n/I18n.ts +1 -6
  234. package/src/Platform/types.ts +20 -11
  235. package/src/Platform/version.ts +1 -1
  236. package/src/Reachability/Reachability.ts +22 -2
  237. package/src/ServiceWorker/ServiceWorker.ts +20 -17
  238. package/src/ServiceWorker/index.ts +0 -12
  239. package/src/Signer/Signer.ts +3 -2
  240. package/src/awsClients/cognitoIdentity/base.ts +4 -1
  241. package/src/awsClients/pinpoint/base.ts +2 -1
  242. package/src/awsClients/pinpoint/getInAppMessages.ts +2 -1
  243. package/src/awsClients/pinpoint/putEvents.ts +2 -1
  244. package/src/awsClients/pinpoint/updateEndpoint.ts +2 -1
  245. package/src/clients/middleware/signing/signer/signatureV4/index.ts +0 -2
  246. package/src/clients/middleware/signing/signer/signatureV4/presignUrl.ts +2 -1
  247. package/src/errors/errorHelpers.ts +20 -0
  248. package/src/errors/index.ts +1 -0
  249. package/src/index.ts +8 -4
  250. package/src/libraryUtils.ts +17 -11
  251. package/src/parseAWSExports.ts +28 -9
  252. package/src/providers/pinpoint/apis/flushEvents.ts +2 -2
  253. package/src/providers/pinpoint/apis/record.ts +14 -28
  254. package/src/providers/pinpoint/apis/updateEndpoint.ts +6 -6
  255. package/src/providers/pinpoint/index.ts +6 -2
  256. package/src/providers/pinpoint/types/errors.ts +12 -0
  257. package/src/providers/pinpoint/types/index.ts +1 -0
  258. package/src/providers/pinpoint/types/pinpoint.ts +3 -2
  259. package/src/providers/pinpoint/utils/index.ts +1 -0
  260. package/src/providers/pinpoint/utils/resolveEndpointId.ts +46 -0
  261. package/src/singleton/Amplify.ts +10 -8
  262. package/src/singleton/Auth/types.ts +3 -3
  263. package/src/singleton/Cache/types.ts +27 -0
  264. package/src/singleton/Interactions/types.ts +29 -0
  265. package/src/singleton/Notifications/PushNotification/types.ts +6 -0
  266. package/src/singleton/Notifications/types.ts +3 -1
  267. package/src/singleton/types.ts +3 -5
  268. package/src/storage/CookieStorage.ts +5 -9
  269. package/src/storage/DefaultStorage.ts +2 -2
  270. package/src/storage/utils.ts +1 -1
  271. package/src/types/errors.ts +1 -0
  272. package/src/utils/amplifyUrl/index.ts +9 -0
  273. package/src/{clients/middleware/signing/signer/signatureV4/polyfills/index.native.ts → utils/amplifyUrl/polyfill.native.ts} +1 -0
  274. package/src/utils/amplifyUuid/index.ts +9 -0
  275. package/src/utils/amplifyUuid/polyfill.native.ts +6 -0
  276. package/src/utils/amplifyUuid/polyfill.ts +4 -0
  277. package/src/utils/deepFreeze.ts +16 -0
  278. package/src/{ClientDevice/android.ts → utils/getClientInfo/getClientInfo.android.ts} +2 -2
  279. package/src/{ClientDevice/ios.ts → utils/getClientInfo/getClientInfo.ios.ts} +3 -3
  280. package/src/{ClientDevice/browser.ts → utils/getClientInfo/getClientInfo.ts} +4 -16
  281. package/src/utils/getClientInfo/index.ts +4 -0
  282. package/src/utils/index.ts +2 -0
  283. package/src/utils/sessionListener/SessionListener.native.ts +70 -0
  284. package/src/utils/sessionListener/SessionListener.ts +74 -0
  285. package/src/utils/sessionListener/index.ts +6 -0
  286. package/src/utils/sessionListener/types.ts +11 -0
  287. package/lib/Amplify.d.ts +0 -29
  288. package/lib/Amplify.js +0 -118
  289. package/lib/Cache/BrowserStorageCache.d.ts +0 -166
  290. package/lib/Cache/BrowserStorageCache.js +0 -456
  291. package/lib/Cache/InMemoryCache.d.ts +0 -129
  292. package/lib/Cache/InMemoryCache.js +0 -342
  293. package/lib/Cache/Utils/CacheUtils.d.ts +0 -25
  294. package/lib/Cache/Utils/CacheUtils.js +0 -86
  295. package/lib/Cache/Utils/index.d.ts +0 -2
  296. package/lib/Cache/Utils/index.js +0 -16
  297. package/lib/Cache/reactnative.d.ts +0 -3
  298. package/lib/Cache/reactnative.js +0 -8
  299. package/lib/Cache/types/Cache.d.ts +0 -55
  300. package/lib/ClientDevice/index.d.ts +0 -23
  301. package/lib/ClientDevice/index.js +0 -18
  302. package/lib/ClientDevice/reactnative.d.ts +0 -7
  303. package/lib/ClientDevice/reactnative.js +0 -24
  304. package/lib-esm/Amplify.d.ts +0 -29
  305. package/lib-esm/Amplify.js +0 -115
  306. package/lib-esm/Cache/BrowserStorageCache.d.ts +0 -166
  307. package/lib-esm/Cache/BrowserStorageCache.js +0 -453
  308. package/lib-esm/Cache/InMemoryCache.d.ts +0 -129
  309. package/lib-esm/Cache/InMemoryCache.js +0 -339
  310. package/lib-esm/Cache/Utils/CacheUtils.d.ts +0 -25
  311. package/lib-esm/Cache/Utils/CacheUtils.js +0 -79
  312. package/lib-esm/Cache/Utils/index.d.ts +0 -2
  313. package/lib-esm/Cache/Utils/index.js +0 -4
  314. package/lib-esm/Cache/reactnative.d.ts +0 -3
  315. package/lib-esm/Cache/reactnative.js +0 -6
  316. package/lib-esm/Cache/types/Cache.d.ts +0 -55
  317. package/lib-esm/ClientDevice/index.d.ts +0 -23
  318. package/lib-esm/ClientDevice/index.js +0 -15
  319. package/lib-esm/ClientDevice/reactnative.d.ts +0 -7
  320. package/lib-esm/ClientDevice/reactnative.js +0 -21
  321. package/src/Amplify.ts +0 -106
  322. package/src/Cache/AsyncStorageCache.ts +0 -495
  323. package/src/Cache/BrowserStorageCache.ts +0 -504
  324. package/src/Cache/CHANGELOG.md +0 -1239
  325. package/src/Cache/InMemoryCache.ts +0 -347
  326. package/src/Cache/Utils/CacheUtils.ts +0 -90
  327. package/src/Cache/reactnative.ts +0 -9
  328. package/src/Cache/types/Cache.ts +0 -75
  329. package/src/ClientDevice/index.ts +0 -14
  330. package/src/ClientDevice/reactnative.ts +0 -18
  331. package/lib/Cache/types/{Cache.js → cache.js} +0 -0
  332. package/lib/{clients/middleware/signing/signer/signatureV4/polyfills/index.native.js → utils/amplifyUrl/polyfill.native.js} +1 -1
  333. /package/lib-esm/Cache/types/{Cache.js → cache.js} +0 -0
  334. /package/lib-esm/{clients/middleware/signing/signer/signatureV4/polyfills/index.d.ts → utils/amplifyUrl/polyfill.d.ts} +0 -0
  335. /package/lib-esm/{clients/middleware/signing/signer/signatureV4/polyfills/index.js → utils/amplifyUrl/polyfill.js} +0 -0
  336. /package/lib-esm/{clients/middleware/signing/signer/signatureV4/polyfills/index.native.d.ts → utils/amplifyUrl/polyfill.native.d.ts} +0 -0
  337. /package/lib-esm/{clients/middleware/signing/signer/signatureV4/polyfills/index.native.js → utils/amplifyUrl/polyfill.native.js} +0 -0
  338. /package/{lib/clients/middleware/signing/signer/signatureV4/polyfills/index.d.ts → lib-esm/utils/amplifyUuid/polyfill.d.ts} +0 -0
  339. /package/{lib/clients/middleware/signing/signer/signatureV4/polyfills/index.js → lib-esm/utils/amplifyUuid/polyfill.js} +0 -0
  340. /package/{lib/clients/middleware/signing/signer/signatureV4/polyfills/index.native.d.ts → lib-esm/utils/amplifyUuid/polyfill.native.d.ts} +0 -0
  341. /package/src/{clients/middleware/signing/signer/signatureV4/polyfills/index.ts → utils/amplifyUrl/polyfill.ts} +0 -0
@@ -1,504 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { ConsoleLogger as Logger } from '../Logger';
5
- import { defaultConfig, getCurrTime } from './Utils';
6
- import { StorageCache } from './StorageCache';
7
- import { ICache, CacheConfig, CacheItem, CacheItemOptions } from './types';
8
- import { getCurrSizeKey } from './Utils/CacheUtils';
9
- import { assert, CacheErrorCode } from './Utils/errorHelpers';
10
-
11
- const logger = new Logger('Cache');
12
-
13
- /**
14
- * Customized storage based on the SessionStorage or LocalStorage with LRU implemented
15
- */
16
- export class BrowserStorageCacheClass extends StorageCache implements ICache {
17
- /**
18
- * initialize the cache
19
- * @param config - the configuration of the cache
20
- */
21
- constructor(config?: CacheConfig) {
22
- super(config);
23
-
24
- assert(!!this.cacheConfig.storage, CacheErrorCode.NoCacheStorage);
25
- this.cacheConfig.storage = this.cacheConfig.storage;
26
- this.getItem = this.getItem.bind(this);
27
- this.setItem = this.setItem.bind(this);
28
- this.removeItem = this.removeItem.bind(this);
29
- }
30
- private getStorage(): Storage {
31
- assert(!!this.cacheConfig.storage, CacheErrorCode.NoCacheStorage);
32
- return this.cacheConfig.storage;
33
- }
34
- /**
35
- * decrease current size of the cache
36
- *
37
- * @private
38
- * @param amount - the amount of the cache size which needs to be decreased
39
- */
40
- private _decreaseCurSizeInBytes(amount: number): void {
41
- const curSize: number = this.getCacheCurSize();
42
- this.getStorage().setItem(
43
- getCurrSizeKey(this.cacheConfig.keyPrefix),
44
- (curSize - amount).toString()
45
- );
46
- }
47
-
48
- /**
49
- * increase current size of the cache
50
- *
51
- * @private
52
- * @param amount - the amount of the cache szie which need to be increased
53
- */
54
- private _increaseCurSizeInBytes(amount: number): void {
55
- const curSize: number = this.getCacheCurSize();
56
- this.getStorage().setItem(
57
- getCurrSizeKey(this.cacheConfig.keyPrefix),
58
- (curSize + amount).toString()
59
- );
60
- }
61
-
62
- /**
63
- * update the visited time if item has been visited
64
- *
65
- * @private
66
- * @param item - the item which need to be refreshed
67
- * @param prefixedKey - the key of the item
68
- *
69
- * @return the refreshed item
70
- */
71
- private _refreshItem(item: CacheItem, prefixedKey: string): CacheItem {
72
- item.visitedTime = getCurrTime();
73
- this.getStorage().setItem(prefixedKey, JSON.stringify(item));
74
- return item;
75
- }
76
-
77
- /**
78
- * check wether item is expired
79
- *
80
- * @private
81
- * @param key - the key of the item
82
- *
83
- * @return true if the item is expired.
84
- */
85
- private _isExpired(key: string): boolean {
86
- const text: string | null = this.getStorage().getItem(key);
87
- assert(text !== null, CacheErrorCode.NoCacheItem, `Key: ${key}`);
88
- const item: CacheItem = JSON.parse(text);
89
- if (getCurrTime() >= item.expires) {
90
- return true;
91
- }
92
- return false;
93
- }
94
-
95
- /**
96
- * delete item from cache
97
- *
98
- * @private
99
- * @param prefixedKey - the key of the item
100
- * @param size - optional, the byte size of the item
101
- */
102
- private _removeItem(prefixedKey: string, size?: number): void {
103
- const item = this.getStorage().getItem(prefixedKey);
104
- assert(item !== null, CacheErrorCode.NoCacheItem, `Key: ${prefixedKey}`);
105
- const itemSize: number = size ?? JSON.parse(item).byteSize;
106
- this._decreaseCurSizeInBytes(itemSize);
107
- // remove the cache item
108
- this.getStorage().removeItem(prefixedKey);
109
- }
110
-
111
- /**
112
- * put item into cache
113
- *
114
- * @private
115
- * @param prefixedKey - the key of the item
116
- * @param itemData - the value of the item
117
- * @param itemSizeInBytes - the byte size of the item
118
- */
119
- private _setItem(prefixedKey: string, item: CacheItem): void {
120
- // update the cache size
121
- this._increaseCurSizeInBytes(item.byteSize);
122
-
123
- try {
124
- this.getStorage().setItem(prefixedKey, JSON.stringify(item));
125
- } catch (setItemErr) {
126
- // if failed, we need to rollback the cache size
127
- this._decreaseCurSizeInBytes(item.byteSize);
128
- logger.error(`Failed to set item ${setItemErr}`);
129
- }
130
- }
131
-
132
- /**
133
- * total space needed when poping out items
134
- *
135
- * @private
136
- * @param itemSize
137
- *
138
- * @return total space needed
139
- */
140
- private _sizeToPop(itemSize: number): number {
141
- const spaceItemNeed =
142
- this.getCacheCurSize() + itemSize - this.cacheConfig.capacityInBytes;
143
- const cacheThresholdSpace =
144
- (1 - this.cacheConfig.warningThreshold) *
145
- this.cacheConfig.capacityInBytes;
146
- return spaceItemNeed > cacheThresholdSpace
147
- ? spaceItemNeed
148
- : cacheThresholdSpace;
149
- }
150
-
151
- /**
152
- * see whether cache is full
153
- *
154
- * @private
155
- * @param itemSize
156
- *
157
- * @return true if cache is full
158
- */
159
- private _isCacheFull(itemSize: number): boolean {
160
- return itemSize + this.getCacheCurSize() > this.cacheConfig.capacityInBytes;
161
- }
162
-
163
- /**
164
- * scan the storage and find out all the keys owned by this cache
165
- * also clean the expired keys while scanning
166
- *
167
- * @private
168
- *
169
- * @return array of keys
170
- */
171
- private _findValidKeys(): string[] {
172
- const keys: string[] = [];
173
- const keyInCache: string[] = [];
174
- // get all keys in Storage
175
- for (let i = 0; i < this.getStorage().length; i += 1) {
176
- const key = this.getStorage().key(i);
177
- if (key) {
178
- keyInCache.push(key);
179
- }
180
- }
181
-
182
- // find those items which belong to our cache and also clean those expired items
183
- for (let i = 0; i < keyInCache.length; i += 1) {
184
- const key: string = keyInCache[i];
185
- if (
186
- key.indexOf(this.cacheConfig.keyPrefix) === 0 &&
187
- key !== getCurrSizeKey(this.cacheConfig.keyPrefix)
188
- ) {
189
- if (this._isExpired(key)) {
190
- this._removeItem(key);
191
- } else {
192
- keys.push(key);
193
- }
194
- }
195
- }
196
- return keys;
197
- }
198
-
199
- /**
200
- * get all the items we have, sort them by their priority,
201
- * if priority is same, sort them by their last visited time
202
- * pop out items from the low priority (5 is the lowest)
203
- *
204
- * @private
205
- * @param keys - all the keys in this cache
206
- * @param sizeToPop - the total size of the items which needed to be poped out
207
- */
208
- private _popOutItems(keys: string[], sizeToPop: number): void {
209
- const items: CacheItem[] = [];
210
- let remainedSize: number = sizeToPop;
211
- // get the items from Storage
212
- for (let i = 0; i < keys.length; i += 1) {
213
- const val: string | null = this.getStorage().getItem(keys[i]);
214
- if (val != null) {
215
- const item: CacheItem = JSON.parse(val);
216
- items.push(item);
217
- }
218
- }
219
-
220
- // first compare priority
221
- // then compare visited time
222
- items.sort((a, b) => {
223
- if (a.priority > b.priority) {
224
- return -1;
225
- } else if (a.priority < b.priority) {
226
- return 1;
227
- } else {
228
- if (a.visitedTime < b.visitedTime) {
229
- return -1;
230
- } else return 1;
231
- }
232
- });
233
-
234
- for (let i = 0; i < items.length; i += 1) {
235
- // pop out items until we have enough room for new item
236
- this._removeItem(items[i].key, items[i].byteSize);
237
- remainedSize -= items[i].byteSize;
238
- if (remainedSize <= 0) {
239
- return;
240
- }
241
- }
242
- }
243
-
244
- /**
245
- * Set item into cache. You can put number, string, boolean or object.
246
- * The cache will first check whether has the same key.
247
- * If it has, it will delete the old item and then put the new item in
248
- * The cache will pop out items if it is full
249
- * You can specify the cache item options. The cache will abort and output a warning:
250
- * If the key is invalid
251
- * If the size of the item exceeds itemMaxSize.
252
- * If the value is undefined
253
- * If incorrect cache item configuration
254
- * If error happened with browser storage
255
- *
256
- * @param key - the key of the item
257
- * @param value - the value of the item
258
- * @param {Object} [options] - optional, the specified meta-data
259
- */
260
- public setItem(
261
- key: string,
262
- value: object | number | string | boolean,
263
- options?: CacheItemOptions
264
- ): void {
265
- logger.log(
266
- `Set item: key is ${key}, value is ${value} with options: ${options}`
267
- );
268
- const prefixedKey: string = this.cacheConfig.keyPrefix + key;
269
- // invalid keys
270
- if (
271
- prefixedKey === this.cacheConfig.keyPrefix ||
272
- prefixedKey === getCurrSizeKey(this.cacheConfig.keyPrefix)
273
- ) {
274
- logger.warn(`Invalid key: should not be empty or 'CurSize'`);
275
- return;
276
- }
277
-
278
- if (typeof value === 'undefined') {
279
- logger.warn(`The value of item should not be undefined!`);
280
- return;
281
- }
282
-
283
- const cacheItemOptions = {
284
- priority:
285
- options && options.priority !== undefined
286
- ? options.priority
287
- : this.cacheConfig.defaultPriority,
288
- expires:
289
- options && options.expires !== undefined
290
- ? options.expires
291
- : this.cacheConfig.defaultTTL + getCurrTime(),
292
- };
293
-
294
- if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) {
295
- logger.warn(
296
- `Invalid parameter: priority due to out or range. It should be within 1 and 5.`
297
- );
298
- return;
299
- }
300
-
301
- const item: CacheItem = this.fillCacheItem(
302
- prefixedKey,
303
- value,
304
- cacheItemOptions
305
- );
306
-
307
- // check wether this item is too big;
308
- if (item.byteSize > this.cacheConfig.itemMaxSize) {
309
- logger.warn(
310
- `Item with key: ${key} you are trying to put into is too big!`
311
- );
312
- return;
313
- }
314
-
315
- try {
316
- // first look into the storage, if it exists, delete it.
317
- const val: string | null = this.getStorage().getItem(prefixedKey);
318
- if (val) {
319
- this._removeItem(prefixedKey, JSON.parse(val).byteSize);
320
- }
321
-
322
- // check whether the cache is full
323
- if (this._isCacheFull(item.byteSize)) {
324
- const validKeys: string[] = this._findValidKeys();
325
- // check again and then pop out items
326
- if (this._isCacheFull(item.byteSize)) {
327
- const sizeToPop: number = this._sizeToPop(item.byteSize);
328
- this._popOutItems(validKeys, sizeToPop);
329
- }
330
- }
331
-
332
- // put item in the cache
333
- // may failed due to storage full
334
- this._setItem(prefixedKey, item);
335
- } catch (e) {
336
- logger.warn(`setItem failed! ${e}`);
337
- }
338
- }
339
-
340
- /**
341
- * Get item from cache. It will return null if item doesn’t exist or it has been expired.
342
- * If you specified callback function in the options,
343
- * then the function will be executed if no such item in the cache
344
- * and finally put the return value into cache.
345
- * Please make sure the callback function will return the value you want to put into the cache.
346
- * The cache will abort output a warning:
347
- * If the key is invalid
348
- * If error happened with browser storage
349
- *
350
- * @param key - the key of the item
351
- * @param {Object} [options] - the options of callback function
352
- *
353
- * @return - return the value of the item
354
- */
355
- public getItem(key: string, options?: CacheItemOptions): any {
356
- logger.log(`Get item: key is ${key} with options ${options}`);
357
- let ret: string | null = null;
358
- const prefixedKey: string = this.cacheConfig.keyPrefix + key;
359
-
360
- if (
361
- prefixedKey === this.cacheConfig.keyPrefix ||
362
- prefixedKey === getCurrSizeKey(this.cacheConfig.keyPrefix)
363
- ) {
364
- logger.warn(`Invalid key: should not be empty or 'CurSize'`);
365
- return null;
366
- }
367
-
368
- try {
369
- ret = this.getStorage().getItem(prefixedKey);
370
- if (ret != null) {
371
- if (this._isExpired(prefixedKey)) {
372
- // if expired, remove that item and return null
373
- this._removeItem(prefixedKey, JSON.parse(ret).byteSize);
374
- ret = null;
375
- } else {
376
- // if not expired, great, return the value and refresh it
377
- let item: CacheItem = JSON.parse(ret);
378
- item = this._refreshItem(item, prefixedKey);
379
- return item.data;
380
- }
381
- }
382
-
383
- if (options && options.callback !== undefined) {
384
- const val: object | string | number | boolean = options.callback();
385
- if (val !== null) {
386
- this.setItem(key, val, options);
387
- }
388
- return val;
389
- }
390
- return null;
391
- } catch (e) {
392
- logger.warn(`getItem failed! ${e}`);
393
- return null;
394
- }
395
- }
396
-
397
- /**
398
- * remove item from the cache
399
- * The cache will abort output a warning:
400
- * If error happened with browser storage
401
- * @param key - the key of the item
402
- */
403
- public removeItem(key: string): void {
404
- logger.log(`Remove item: key is ${key}`);
405
- const prefixedKey: string = this.cacheConfig.keyPrefix + key;
406
-
407
- if (
408
- prefixedKey === this.cacheConfig.keyPrefix ||
409
- prefixedKey === getCurrSizeKey(this.cacheConfig.keyPrefix)
410
- ) {
411
- return;
412
- }
413
-
414
- try {
415
- const val: string | null = this.getStorage().getItem(prefixedKey);
416
- if (val) {
417
- this._removeItem(prefixedKey, JSON.parse(val).byteSize);
418
- }
419
- } catch (e) {
420
- logger.warn(`removeItem failed! ${e}`);
421
- }
422
- }
423
-
424
- /**
425
- * clear the entire cache
426
- * The cache will abort output a warning:
427
- * If error happened with browser storage
428
- */
429
- public clear(): void {
430
- logger.log(`Clear Cache`);
431
- const keysToRemove: string[] = [];
432
-
433
- for (let i = 0; i < this.getStorage().length; i += 1) {
434
- const key = this.getStorage().key(i);
435
- if (key?.indexOf(this.cacheConfig.keyPrefix) === 0) {
436
- keysToRemove.push(key);
437
- }
438
- }
439
-
440
- try {
441
- for (let i = 0; i < keysToRemove.length; i += 1) {
442
- this.getStorage().removeItem(keysToRemove[i]);
443
- }
444
- } catch (e) {
445
- logger.warn(`clear failed! ${e}`);
446
- }
447
- }
448
-
449
- /**
450
- * Return all the keys in the cache.
451
- *
452
- * @return - all keys in the cache
453
- */
454
- public getAllKeys(): string[] {
455
- const keys: string[] = [];
456
- for (let i = 0; i < this.getStorage().length; i += 1) {
457
- const key = this.getStorage().key(i);
458
- if (
459
- key &&
460
- key.indexOf(this.cacheConfig.keyPrefix) === 0 &&
461
- key !== getCurrSizeKey(this.cacheConfig.keyPrefix)
462
- ) {
463
- keys.push(key.substring(this.cacheConfig.keyPrefix.length));
464
- }
465
- }
466
- return keys;
467
- }
468
-
469
- /**
470
- * return the current size of the cache
471
- *
472
- * @return - current size of the cache
473
- */
474
- public getCacheCurSize(): number {
475
- let ret: string | null = this.getStorage().getItem(
476
- getCurrSizeKey(this.cacheConfig.keyPrefix)
477
- );
478
- if (!ret) {
479
- this.getStorage().setItem(
480
- getCurrSizeKey(this.cacheConfig.keyPrefix),
481
- '0'
482
- );
483
- ret = '0';
484
- }
485
- return Number(ret);
486
- }
487
-
488
- /**
489
- * Return a new instance of cache with customized configuration.
490
- * @param config - the customized configuration
491
- *
492
- * @return - new instance of Cache
493
- */
494
- public createInstance(config: CacheConfig): ICache {
495
- if (!config.keyPrefix || config.keyPrefix === defaultConfig.keyPrefix) {
496
- logger.error('invalid keyPrefix, setting keyPrefix with timeStamp');
497
- config.keyPrefix = getCurrTime.toString();
498
- }
499
-
500
- return new BrowserStorageCacheClass(config);
501
- }
502
- }
503
-
504
- export const BrowserStorageCache: ICache = new BrowserStorageCacheClass();