@aws-amplify/core 5.8.2 → 6.0.1-console-preview.f63250a.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 (300) hide show
  1. package/README.md +3 -0
  2. package/lib/Amplify.d.ts +18 -17
  3. package/lib/Amplify.js +9 -0
  4. package/lib/AwsClients/CognitoIdentity/base.d.ts +3 -10
  5. package/lib/AwsClients/CognitoIdentity/getCredentialsForIdentity.d.ts +3 -17
  6. package/lib/AwsClients/CognitoIdentity/getCredentialsForIdentity.js +8 -8
  7. package/lib/AwsClients/CognitoIdentity/getId.d.ts +3 -17
  8. package/lib/AwsClients/Pinpoint/base.d.ts +2 -10
  9. package/lib/AwsClients/Pinpoint/getInAppMessages.d.ts +3 -17
  10. package/lib/AwsClients/Pinpoint/getInAppMessages.js +1 -1
  11. package/lib/AwsClients/Pinpoint/putEvents.d.ts +3 -17
  12. package/lib/AwsClients/Pinpoint/putEvents.js +6 -0
  13. package/lib/AwsClients/Pinpoint/updateEndpoint.d.ts +3 -17
  14. package/lib/AwsClients/Pinpoint/updateEndpoint.js +2 -2
  15. package/lib/Cache/AsyncStorageCache.d.ts +154 -0
  16. package/lib/Cache/AsyncStorageCache.js +744 -0
  17. package/lib/Cache/BrowserStorageCache.d.ts +166 -0
  18. package/lib/Cache/BrowserStorageCache.js +469 -0
  19. package/lib/Cache/InMemoryCache.d.ts +129 -0
  20. package/lib/Cache/InMemoryCache.js +349 -0
  21. package/lib/Cache/StorageCache.d.ts +39 -0
  22. package/lib/Cache/StorageCache.js +121 -0
  23. package/lib/Cache/Utils/CacheList.d.ts +89 -0
  24. package/lib/Cache/Utils/CacheList.js +196 -0
  25. package/lib/Cache/Utils/CacheUtils.d.ts +25 -0
  26. package/lib/Cache/Utils/CacheUtils.js +88 -0
  27. package/lib/Cache/Utils/index.d.ts +2 -0
  28. package/lib/Cache/Utils/index.js +16 -0
  29. package/lib/Cache/reactnative.d.ts +3 -0
  30. package/lib/Cache/reactnative.js +8 -0
  31. package/lib/Cache/types/Cache.d.ts +55 -0
  32. package/lib/Cache/types/Cache.js +4 -0
  33. package/lib/Cache/types/index.d.ts +1 -0
  34. package/lib/Cache/types/index.js +19 -0
  35. package/lib/ClientDevice/android.js +3 -2
  36. package/lib/ClientDevice/ios.d.ts +2 -2
  37. package/lib/ClientDevice/ios.js +3 -2
  38. package/lib/ClientDevice/reactnative.js +3 -2
  39. package/lib/Credentials.d.ts +1 -1
  40. package/lib/Credentials.js +2 -1
  41. package/lib/Errors.d.ts +19 -0
  42. package/lib/Errors.js +50 -1
  43. package/lib/Hub.js +1 -0
  44. package/lib/I18n/I18n.d.ts +29 -9
  45. package/lib/I18n/I18n.js +30 -5
  46. package/lib/I18n/index.d.ts +18 -5
  47. package/lib/I18n/index.js +35 -5
  48. package/lib/I18n/types.d.ts +4 -1
  49. package/lib/I18n/types.js +3 -0
  50. package/lib/JS.d.ts +6 -6
  51. package/lib/Logger/ConsoleLogger.d.ts +11 -11
  52. package/lib/OAuthHelper/GoogleOAuth.js +2 -1
  53. package/lib/Platform/detectFramework.js +2 -1
  54. package/lib/Platform/detection/Next.d.ts +1 -1
  55. package/lib/Platform/detection/React.js +1 -0
  56. package/lib/Platform/version.d.ts +1 -1
  57. package/lib/Platform/version.js +1 -1
  58. package/lib/Providers/AWSCloudWatchProvider.d.ts +2 -2
  59. package/lib/Providers/AWSCloudWatchProvider.js +35 -12
  60. package/lib/RNComponents/index.d.ts +1 -1
  61. package/lib/RNComponents/reactnative.js +3 -2
  62. package/lib/ServiceWorker/ServiceWorker.d.ts +4 -4
  63. package/lib/ServiceWorker/ServiceWorker.js +37 -11
  64. package/lib/Signer.d.ts +14 -1
  65. package/lib/StorageHelper/cookieStorage.d.ts +13 -0
  66. package/lib/StorageHelper/cookieStorage.js +167 -0
  67. package/lib/StorageHelper/inMemoryStorage.d.ts +10 -0
  68. package/lib/StorageHelper/inMemoryStorage.js +82 -0
  69. package/lib/StorageHelper/index.d.ts +7 -3
  70. package/lib/StorageHelper/index.js +9 -1
  71. package/lib/StorageHelper/localStorage.d.ts +32 -0
  72. package/lib/StorageHelper/localStorage.js +114 -0
  73. package/lib/StorageHelper/reactnative.d.ts +71 -1
  74. package/lib/StorageHelper/reactnative.js +154 -10
  75. package/lib/StorageHelper/sessionStorage.d.ts +32 -0
  76. package/lib/StorageHelper/sessionStorage.js +114 -0
  77. package/lib/UniversalStorage/index.d.ts +2 -2
  78. package/lib/Util/BackgroundProcessManager.d.ts +2 -2
  79. package/lib/Util/BackgroundProcessManager.js +1 -0
  80. package/lib/Util/DateUtils.d.ts +12 -1
  81. package/lib/Util/Reachability.js +7 -5
  82. package/lib/Util/Reachability.native.d.ts +3 -2
  83. package/lib/Util/StringUtils.js +3 -10
  84. package/lib/Util/errors/AssertError.d.ts +2 -0
  85. package/lib/Util/errors/AssertError.js +11 -0
  86. package/lib/clients/middleware/retry/defaultRetryDecider.d.ts +1 -1
  87. package/lib/clients/middleware/retry/defaultRetryDecider.js +17 -13
  88. package/lib/clients/middleware/retry/isClockSkewError.js +1 -1
  89. package/lib/clients/middleware/retry/middleware.d.ts +1 -1
  90. package/lib/clients/middleware/retry/middleware.js +13 -13
  91. package/lib/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +1 -1
  92. package/lib/clients/serde/responseInfo.js +1 -1
  93. package/lib/clients/types/aws.d.ts +4 -0
  94. package/lib/clients/types/index.d.ts +1 -1
  95. package/lib/constants.d.ts +7 -0
  96. package/lib/constants.js +9 -1
  97. package/lib/index.d.ts +18 -4
  98. package/lib/index.js +32 -5
  99. package/lib/parseAWSExports.d.ts +1 -1
  100. package/lib/singleton/Auth/index.d.ts +30 -0
  101. package/lib/singleton/Auth/index.js +133 -0
  102. package/lib/singleton/Auth/types.d.ts +95 -0
  103. package/lib/singleton/Auth/types.js +6 -0
  104. package/lib/singleton/Auth/utils/index.d.ts +5 -0
  105. package/lib/singleton/Auth/utils/index.js +52 -0
  106. package/lib/singleton/Storage/types.d.ts +14 -0
  107. package/lib/singleton/Storage/types.js +4 -0
  108. package/lib/singleton/index.d.ts +46 -0
  109. package/lib/singleton/index.js +147 -0
  110. package/lib/singleton/types.d.ts +21 -0
  111. package/lib/singleton/types.js +4 -0
  112. package/lib/tsconfig.tsbuildinfo +1 -1
  113. package/lib/types/types.d.ts +31 -1
  114. package/lib/types/types.js +2 -0
  115. package/lib-esm/Amplify.d.ts +18 -17
  116. package/lib-esm/Amplify.js +9 -0
  117. package/lib-esm/AwsClients/CognitoIdentity/base.d.ts +3 -10
  118. package/lib-esm/AwsClients/CognitoIdentity/getCredentialsForIdentity.d.ts +3 -17
  119. package/lib-esm/AwsClients/CognitoIdentity/getCredentialsForIdentity.js +8 -8
  120. package/lib-esm/AwsClients/CognitoIdentity/getId.d.ts +3 -17
  121. package/lib-esm/AwsClients/Pinpoint/base.d.ts +2 -10
  122. package/lib-esm/AwsClients/Pinpoint/getInAppMessages.d.ts +3 -17
  123. package/lib-esm/AwsClients/Pinpoint/getInAppMessages.js +1 -1
  124. package/lib-esm/AwsClients/Pinpoint/putEvents.d.ts +3 -17
  125. package/lib-esm/AwsClients/Pinpoint/putEvents.js +6 -0
  126. package/lib-esm/AwsClients/Pinpoint/updateEndpoint.d.ts +3 -17
  127. package/lib-esm/AwsClients/Pinpoint/updateEndpoint.js +2 -2
  128. package/lib-esm/Cache/AsyncStorageCache.d.ts +154 -0
  129. package/lib-esm/Cache/AsyncStorageCache.js +737 -0
  130. package/lib-esm/Cache/BrowserStorageCache.d.ts +166 -0
  131. package/lib-esm/Cache/BrowserStorageCache.js +466 -0
  132. package/lib-esm/Cache/InMemoryCache.d.ts +129 -0
  133. package/lib-esm/Cache/InMemoryCache.js +346 -0
  134. package/lib-esm/Cache/StorageCache.d.ts +39 -0
  135. package/lib-esm/Cache/StorageCache.js +118 -0
  136. package/lib-esm/Cache/Utils/CacheList.d.ts +89 -0
  137. package/lib-esm/Cache/Utils/CacheList.js +194 -0
  138. package/lib-esm/Cache/Utils/CacheUtils.d.ts +25 -0
  139. package/lib-esm/Cache/Utils/CacheUtils.js +81 -0
  140. package/lib-esm/Cache/Utils/index.d.ts +2 -0
  141. package/lib-esm/Cache/Utils/index.js +4 -0
  142. package/lib-esm/Cache/reactnative.d.ts +3 -0
  143. package/lib-esm/Cache/reactnative.js +6 -0
  144. package/lib-esm/Cache/types/Cache.d.ts +55 -0
  145. package/lib-esm/Cache/types/Cache.js +3 -0
  146. package/lib-esm/Cache/types/index.d.ts +1 -0
  147. package/lib-esm/Cache/types/index.js +3 -0
  148. package/lib-esm/ClientDevice/android.js +1 -0
  149. package/lib-esm/ClientDevice/ios.d.ts +2 -2
  150. package/lib-esm/ClientDevice/ios.js +1 -0
  151. package/lib-esm/ClientDevice/reactnative.js +1 -0
  152. package/lib-esm/Credentials.d.ts +1 -1
  153. package/lib-esm/Credentials.js +2 -1
  154. package/lib-esm/Errors.d.ts +19 -0
  155. package/lib-esm/Errors.js +49 -0
  156. package/lib-esm/Hub.js +1 -0
  157. package/lib-esm/I18n/I18n.d.ts +29 -9
  158. package/lib-esm/I18n/I18n.js +30 -5
  159. package/lib-esm/I18n/index.d.ts +18 -5
  160. package/lib-esm/I18n/index.js +35 -5
  161. package/lib-esm/I18n/types.d.ts +4 -1
  162. package/lib-esm/I18n/types.js +3 -0
  163. package/lib-esm/JS.d.ts +6 -6
  164. package/lib-esm/Logger/ConsoleLogger.d.ts +11 -11
  165. package/lib-esm/OAuthHelper/GoogleOAuth.js +2 -1
  166. package/lib-esm/Platform/detectFramework.js +2 -1
  167. package/lib-esm/Platform/detection/Next.d.ts +1 -1
  168. package/lib-esm/Platform/detection/React.js +1 -0
  169. package/lib-esm/Platform/version.d.ts +1 -1
  170. package/lib-esm/Platform/version.js +1 -1
  171. package/lib-esm/Providers/AWSCloudWatchProvider.d.ts +2 -2
  172. package/lib-esm/Providers/AWSCloudWatchProvider.js +33 -10
  173. package/lib-esm/RNComponents/index.d.ts +1 -1
  174. package/lib-esm/RNComponents/reactnative.js +1 -0
  175. package/lib-esm/ServiceWorker/ServiceWorker.d.ts +4 -4
  176. package/lib-esm/ServiceWorker/ServiceWorker.js +37 -11
  177. package/lib-esm/Signer.d.ts +14 -1
  178. package/lib-esm/StorageHelper/cookieStorage.d.ts +13 -0
  179. package/lib-esm/StorageHelper/cookieStorage.js +141 -0
  180. package/lib-esm/StorageHelper/inMemoryStorage.d.ts +10 -0
  181. package/lib-esm/StorageHelper/inMemoryStorage.js +79 -0
  182. package/lib-esm/StorageHelper/index.d.ts +7 -3
  183. package/lib-esm/StorageHelper/index.js +4 -0
  184. package/lib-esm/StorageHelper/localStorage.d.ts +32 -0
  185. package/lib-esm/StorageHelper/localStorage.js +111 -0
  186. package/lib-esm/StorageHelper/reactnative.d.ts +71 -1
  187. package/lib-esm/StorageHelper/reactnative.js +153 -9
  188. package/lib-esm/StorageHelper/sessionStorage.d.ts +32 -0
  189. package/lib-esm/StorageHelper/sessionStorage.js +111 -0
  190. package/lib-esm/UniversalStorage/index.d.ts +2 -2
  191. package/lib-esm/Util/BackgroundProcessManager.d.ts +2 -2
  192. package/lib-esm/Util/BackgroundProcessManager.js +1 -0
  193. package/lib-esm/Util/DateUtils.d.ts +12 -1
  194. package/lib-esm/Util/Reachability.js +5 -3
  195. package/lib-esm/Util/Reachability.native.d.ts +3 -2
  196. package/lib-esm/Util/StringUtils.js +3 -10
  197. package/lib-esm/Util/errors/AssertError.d.ts +2 -0
  198. package/lib-esm/Util/errors/AssertError.js +7 -0
  199. package/lib-esm/clients/middleware/retry/defaultRetryDecider.d.ts +1 -1
  200. package/lib-esm/clients/middleware/retry/defaultRetryDecider.js +17 -13
  201. package/lib-esm/clients/middleware/retry/isClockSkewError.js +1 -1
  202. package/lib-esm/clients/middleware/retry/middleware.d.ts +1 -1
  203. package/lib-esm/clients/middleware/retry/middleware.js +13 -13
  204. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +1 -1
  205. package/lib-esm/clients/serde/responseInfo.js +1 -1
  206. package/lib-esm/clients/types/aws.d.ts +4 -0
  207. package/lib-esm/clients/types/index.d.ts +1 -1
  208. package/lib-esm/constants.d.ts +7 -0
  209. package/lib-esm/constants.js +8 -0
  210. package/lib-esm/index.d.ts +18 -4
  211. package/lib-esm/index.js +15 -3
  212. package/lib-esm/parseAWSExports.d.ts +1 -1
  213. package/lib-esm/singleton/Auth/index.d.ts +30 -0
  214. package/lib-esm/singleton/Auth/index.js +129 -0
  215. package/lib-esm/singleton/Auth/types.d.ts +95 -0
  216. package/lib-esm/singleton/Auth/types.js +5 -0
  217. package/lib-esm/singleton/Auth/utils/index.d.ts +5 -0
  218. package/lib-esm/singleton/Auth/utils/index.js +45 -0
  219. package/lib-esm/singleton/Storage/types.d.ts +14 -0
  220. package/lib-esm/singleton/Storage/types.js +3 -0
  221. package/lib-esm/singleton/index.d.ts +46 -0
  222. package/lib-esm/singleton/index.js +143 -0
  223. package/lib-esm/singleton/types.d.ts +21 -0
  224. package/lib-esm/singleton/types.js +3 -0
  225. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  226. package/lib-esm/types/types.d.ts +31 -1
  227. package/lib-esm/types/types.js +2 -0
  228. package/package.json +38 -15
  229. package/src/Amplify.ts +9 -3
  230. package/src/AwsClients/CognitoIdentity/base.ts +2 -1
  231. package/src/AwsClients/CognitoIdentity/getCredentialsForIdentity.ts +13 -6
  232. package/src/AwsClients/Pinpoint/base.ts +6 -2
  233. package/src/AwsClients/Pinpoint/getInAppMessages.ts +1 -1
  234. package/src/AwsClients/Pinpoint/putEvents.ts +6 -0
  235. package/src/AwsClients/Pinpoint/updateEndpoint.ts +2 -2
  236. package/src/Cache/AsyncStorageCache.ts +500 -0
  237. package/src/Cache/BrowserStorageCache.ts +517 -0
  238. package/src/Cache/CHANGELOG.md +1227 -0
  239. package/src/Cache/InMemoryCache.ts +354 -0
  240. package/src/Cache/StorageCache.ts +157 -0
  241. package/src/Cache/Utils/CacheList.ts +198 -0
  242. package/src/Cache/Utils/CacheUtils.ts +92 -0
  243. package/src/Cache/Utils/index.ts +11 -0
  244. package/src/Cache/reactnative.ts +9 -0
  245. package/src/Cache/types/Cache.ts +75 -0
  246. package/src/Cache/types/index.ts +4 -0
  247. package/src/ClientDevice/android.ts +1 -1
  248. package/src/ClientDevice/ios.ts +2 -2
  249. package/src/ClientDevice/reactnative.ts +1 -1
  250. package/src/Credentials.ts +19 -17
  251. package/src/Errors.ts +41 -0
  252. package/src/Hub.ts +1 -0
  253. package/src/I18n/I18n.ts +40 -12
  254. package/src/I18n/index.ts +45 -12
  255. package/src/I18n/types.ts +3 -0
  256. package/src/JS.ts +24 -17
  257. package/src/Logger/ConsoleLogger.ts +10 -10
  258. package/src/OAuthHelper/FacebookOAuth.ts +2 -2
  259. package/src/OAuthHelper/GoogleOAuth.ts +9 -6
  260. package/src/Platform/detectFramework.ts +1 -1
  261. package/src/Platform/detection/React.ts +5 -3
  262. package/src/Platform/version.ts +1 -1
  263. package/src/Providers/AWSCloudWatchProvider.ts +39 -14
  264. package/src/RNComponents/index.ts +1 -1
  265. package/src/RNComponents/reactnative.ts +1 -1
  266. package/src/ServiceWorker/ServiceWorker.ts +58 -18
  267. package/src/Signer.ts +22 -3
  268. package/src/StorageHelper/cookieStorage.ts +99 -0
  269. package/src/StorageHelper/inMemoryStorage.ts +32 -0
  270. package/src/StorageHelper/index.ts +6 -1
  271. package/src/StorageHelper/localStorage.ts +60 -0
  272. package/src/StorageHelper/reactnative.ts +94 -14
  273. package/src/StorageHelper/sessionStorage.ts +60 -0
  274. package/src/Util/BackgroundProcessManager.ts +33 -9
  275. package/src/Util/DateUtils.ts +14 -5
  276. package/src/Util/Reachability.native.ts +3 -2
  277. package/src/Util/Reachability.ts +9 -7
  278. package/src/Util/Retry.ts +2 -1
  279. package/src/Util/StringUtils.ts +3 -10
  280. package/src/Util/errors/AssertError.ts +11 -0
  281. package/src/clients/handlers/fetch.ts +2 -2
  282. package/src/clients/middleware/retry/defaultRetryDecider.ts +12 -6
  283. package/src/clients/middleware/retry/isClockSkewError.ts +1 -1
  284. package/src/clients/middleware/retry/middleware.ts +9 -9
  285. package/src/clients/middleware/signing/middleware.ts +1 -1
  286. package/src/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.ts +1 -1
  287. package/src/clients/serde/responseInfo.ts +2 -1
  288. package/src/clients/types/aws.ts +10 -0
  289. package/src/clients/types/index.ts +1 -0
  290. package/src/constants.ts +16 -0
  291. package/src/global.d.ts +11 -0
  292. package/src/index.ts +66 -4
  293. package/src/parseAWSExports.ts +1 -1
  294. package/src/singleton/Auth/index.ts +113 -0
  295. package/src/singleton/Auth/types.ts +129 -0
  296. package/src/singleton/Auth/utils/index.ts +68 -0
  297. package/src/singleton/Storage/types.ts +21 -0
  298. package/src/singleton/index.ts +131 -0
  299. package/src/singleton/types.ts +48 -0
  300. package/src/types/types.ts +38 -1
@@ -6,19 +6,12 @@ exports.urlSafeDecode = exports.urlSafeEncode = void 0;
6
6
  function urlSafeEncode(str) {
7
7
  return str
8
8
  .split('')
9
- .map(function (char) {
10
- return char
11
- .charCodeAt(0)
12
- .toString(16)
13
- .padStart(2, '0');
14
- })
9
+ .map(function (char) { return char.charCodeAt(0).toString(16).padStart(2, '0'); })
15
10
  .join('');
16
11
  }
17
12
  exports.urlSafeEncode = urlSafeEncode;
18
13
  function urlSafeDecode(hex) {
19
- return hex
20
- .match(/.{2}/g)
21
- .map(function (char) { return String.fromCharCode(parseInt(char, 16)); })
22
- .join('');
14
+ var matchArr = hex.match(/.{2}/g) || [];
15
+ return matchArr.map(function (char) { return String.fromCharCode(parseInt(char, 16)); }).join('');
23
16
  }
24
17
  exports.urlSafeDecode = urlSafeDecode;
@@ -0,0 +1,2 @@
1
+ import { ErrorParams } from '../../types';
2
+ export declare function asserts(assertion: boolean, errorParams: ErrorParams): asserts assertion;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asserts = void 0;
4
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ var Errors_1 = require("../../Errors");
7
+ function asserts(assertion, errorParams) {
8
+ if (!assertion)
9
+ throw new Errors_1.AmplifyError(errorParams);
10
+ }
11
+ exports.asserts = asserts;
@@ -3,4 +3,4 @@ import { HttpResponse, ErrorParser } from '../../types';
3
3
  * Get retry decider function
4
4
  * @param errorParser Function to load JavaScript error from HTTP response
5
5
  */
6
- export declare const getRetryDecider: (errorParser: ErrorParser) => (response?: HttpResponse, error?: Error) => Promise<boolean>;
6
+ export declare const getRetryDecider: (errorParser: ErrorParser) => (response?: HttpResponse, error?: unknown) => Promise<boolean>;
@@ -46,20 +46,21 @@ var isClockSkewError_1 = require("./isClockSkewError");
46
46
  */
47
47
  var getRetryDecider = function (errorParser) {
48
48
  return function (response, error) { return __awaiter(void 0, void 0, void 0, function () {
49
- var errorCode, _a, statusCode;
50
- var _b;
51
- return __generator(this, function (_c) {
52
- switch (_c.label) {
49
+ var parsedError, _a, errorCode, statusCode;
50
+ var _b, _c;
51
+ return __generator(this, function (_d) {
52
+ switch (_d.label) {
53
53
  case 0:
54
- if (!(error !== null && error !== void 0)) return [3 /*break*/, 1];
55
- _a = error;
54
+ if (!((_b = error) !== null && _b !== void 0)) return [3 /*break*/, 1];
55
+ _a = _b;
56
56
  return [3 /*break*/, 3];
57
57
  case 1: return [4 /*yield*/, errorParser(response)];
58
58
  case 2:
59
- _a = (_c.sent());
60
- _c.label = 3;
59
+ _a = (_d.sent());
60
+ _d.label = 3;
61
61
  case 3:
62
- errorCode = ((_b = _a) !== null && _b !== void 0 ? _b : {}).name;
62
+ parsedError = (_c = _a) !== null && _c !== void 0 ? _c : undefined;
63
+ errorCode = parsedError === null || parsedError === void 0 ? void 0 : parsedError['code'];
63
64
  statusCode = response === null || response === void 0 ? void 0 : response.statusCode;
64
65
  return [2 /*return*/, (isConnectionError(error) ||
65
66
  isThrottlingError(statusCode, errorCode) ||
@@ -92,10 +93,13 @@ var TIMEOUT_ERROR_CODES = [
92
93
  'RequestTimeoutException',
93
94
  ];
94
95
  var isThrottlingError = function (statusCode, errorCode) {
95
- return statusCode === 429 || THROTTLING_ERROR_CODES.includes(errorCode);
96
+ return statusCode === 429 ||
97
+ (!!errorCode && THROTTLING_ERROR_CODES.includes(errorCode));
98
+ };
99
+ var isConnectionError = function (error) {
100
+ return (error === null || error === void 0 ? void 0 : error['name']) === 'Network error';
96
101
  };
97
- var isConnectionError = function (error) { return (error === null || error === void 0 ? void 0 : error.name) === 'Network error'; };
98
102
  var isServerSideError = function (statusCode, errorCode) {
99
- return [500, 502, 503, 504].includes(statusCode) ||
100
- TIMEOUT_ERROR_CODES.includes(errorCode);
103
+ return (!!statusCode && [500, 502, 503, 504].includes(statusCode)) ||
104
+ (!!errorCode && TIMEOUT_ERROR_CODES.includes(errorCode));
101
105
  };
@@ -22,6 +22,6 @@ var CLOCK_SKEW_ERROR_CODES = [
22
22
  * @internal
23
23
  */
24
24
  var isClockSkewError = function (errorCode) {
25
- return CLOCK_SKEW_ERROR_CODES.includes(errorCode);
25
+ return !!errorCode && CLOCK_SKEW_ERROR_CODES.includes(errorCode);
26
26
  };
27
27
  exports.isClockSkewError = isClockSkewError;
@@ -30,4 +30,4 @@ export interface RetryOptions<TResponse = Response> {
30
30
  /**
31
31
  * Retry middleware
32
32
  */
33
- export declare const retryMiddleware: <TInput = Request, TOutput = Response>({ maxAttempts, retryDecider, computeDelay, abortSignal, }: RetryOptions<TOutput>) => (next: MiddlewareHandler<TInput, TOutput>, context: MiddlewareContext) => (request: TInput) => Promise<TOutput>;
33
+ export declare const retryMiddleware: <TInput = Request, TOutput = Response>({ maxAttempts, retryDecider, computeDelay, abortSignal, }: RetryOptions<TOutput>) => (next: MiddlewareHandler<TInput, TOutput>, context: MiddlewareContext) => (request: TInput) => Promise<NonNullable<TOutput>>;
@@ -61,11 +61,11 @@ var retryMiddleware = function (_a) {
61
61
  }
62
62
  return function (next, context) {
63
63
  return function retryMiddleware(request) {
64
- var _a;
64
+ var _a, _b, _c;
65
65
  return __awaiter(this, void 0, void 0, function () {
66
66
  var error, attemptsCount, response, handleTerminalErrorOrResponse, e_1, delay;
67
- return __generator(this, function (_b) {
68
- switch (_b.label) {
67
+ return __generator(this, function (_d) {
68
+ switch (_d.label) {
69
69
  case 0:
70
70
  attemptsCount = (_a = context.attemptsCount) !== null && _a !== void 0 ? _a : 0;
71
71
  handleTerminalErrorOrResponse = function () {
@@ -78,38 +78,38 @@ var retryMiddleware = function (_a) {
78
78
  throw error;
79
79
  }
80
80
  };
81
- _b.label = 1;
81
+ _d.label = 1;
82
82
  case 1:
83
83
  if (!(!(abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) && attemptsCount < maxAttempts)) return [3 /*break*/, 11];
84
- _b.label = 2;
84
+ _d.label = 2;
85
85
  case 2:
86
- _b.trys.push([2, 4, , 5]);
86
+ _d.trys.push([2, 4, , 5]);
87
87
  return [4 /*yield*/, next(request)];
88
88
  case 3:
89
- response = _b.sent();
89
+ response = _d.sent();
90
90
  error = undefined;
91
91
  return [3 /*break*/, 5];
92
92
  case 4:
93
- e_1 = _b.sent();
93
+ e_1 = _d.sent();
94
94
  error = e_1;
95
95
  response = undefined;
96
96
  return [3 /*break*/, 5];
97
97
  case 5:
98
98
  // context.attemptsCount may be updated after calling next handler which may retry the request by itself.
99
99
  attemptsCount =
100
- context.attemptsCount > attemptsCount
101
- ? context.attemptsCount
100
+ ((_b = context.attemptsCount) !== null && _b !== void 0 ? _b : 0) > attemptsCount
101
+ ? (_c = context.attemptsCount) !== null && _c !== void 0 ? _c : 0
102
102
  : attemptsCount + 1;
103
103
  context.attemptsCount = attemptsCount;
104
104
  return [4 /*yield*/, retryDecider(response, error)];
105
105
  case 6:
106
- if (!_b.sent()) return [3 /*break*/, 9];
106
+ if (!_d.sent()) return [3 /*break*/, 9];
107
107
  if (!(!(abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) && attemptsCount < maxAttempts)) return [3 /*break*/, 8];
108
108
  delay = computeDelay(attemptsCount);
109
109
  return [4 /*yield*/, cancellableSleep(delay, abortSignal)];
110
110
  case 7:
111
- _b.sent();
112
- _b.label = 8;
111
+ _d.sent();
112
+ _d.label = 8;
113
113
  case 8: return [3 /*break*/, 1];
114
114
  case 9: return [2 /*return*/, handleTerminalErrorOrResponse()];
115
115
  case 10: return [3 /*break*/, 1];
@@ -14,7 +14,7 @@ var util_hex_encoding_1 = require("@aws-sdk/util-hex-encoding");
14
14
  * @returns `Uint8Array` created from the data as input to a hash function.
15
15
  */
16
16
  var getHashedData = function (key, data) {
17
- var sha256 = new sha256_js_1.Sha256(key);
17
+ var sha256 = new sha256_js_1.Sha256(key !== null && key !== void 0 ? key : undefined);
18
18
  sha256.update(data);
19
19
  // TODO: V6 flip to async digest
20
20
  var hashedData = sha256.digestSync();
@@ -21,5 +21,5 @@ var parseMetadata = function (response) {
21
21
  };
22
22
  exports.parseMetadata = parseMetadata;
23
23
  var isMetadataBearer = function (response) {
24
- return typeof (response === null || response === void 0 ? void 0 : response['$metadata']) === 'object';
24
+ return typeof (response === null || response === void 0 ? void 0 : response.$metadata) === 'object';
25
25
  };
@@ -18,3 +18,7 @@ export interface ServiceClientOptions {
18
18
  * This function is protocol-specific (e.g. JSON, XML, etc.)
19
19
  */
20
20
  export type ErrorParser = (response?: HttpResponse) => Promise<(Error & MetadataBearer) | undefined>;
21
+ /**
22
+ * Default config options for the `composeServiceApi`.
23
+ */
24
+ export type DefaultConfigOptions<TransferHandlerOptions extends Record<string, unknown> = Record<string, unknown>> = Partial<TransferHandlerOptions & ServiceClientOptions>;
@@ -1,3 +1,3 @@
1
1
  export { Middleware, MiddlewareHandler, Request, Response, TransferHandler, Endpoint, } from './core';
2
2
  export { Headers, HttpRequest, HttpResponse, HttpTransferHandler, HttpTransferOptions, ResponseBodyMixin, } from './http';
3
- export { Credentials, EndpointResolverOptions, ErrorParser, ServiceClientOptions, } from './aws';
3
+ export { Credentials, EndpointResolverOptions, ErrorParser, ServiceClientOptions, DefaultConfigOptions, } from './aws';
@@ -1,2 +1,9 @@
1
1
  export declare const INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER: string | symbol;
2
2
  export declare const USER_AGENT_HEADER = "x-amz-user-agent";
3
+ export declare const AUTH_CONFING_EXCEPTION = "AuthConfigException";
4
+ export declare const AWS_CLOUD_WATCH_PROVIDER_OPTIONS_EXCEPTION = "AWSCloudWatchProviderOptionsException";
5
+ export declare const CACHE_LIST_EXCEPTION = "CacheListException";
6
+ export declare const I18N_EXCEPTION = "I18NException";
7
+ export declare const SERVICE_WORKER_EXCEPTION = "ServiceWorkerException";
8
+ export declare const STORAGE_CACHE_EXCEPTION = "StorageCacheException";
9
+ export declare const APPLICATION_ID_EXCEPTION = "ApplicationIdException";
package/lib/constants.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.USER_AGENT_HEADER = exports.INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = void 0;
5
+ exports.APPLICATION_ID_EXCEPTION = exports.STORAGE_CACHE_EXCEPTION = exports.SERVICE_WORKER_EXCEPTION = exports.I18N_EXCEPTION = exports.CACHE_LIST_EXCEPTION = exports.AWS_CLOUD_WATCH_PROVIDER_OPTIONS_EXCEPTION = exports.AUTH_CONFING_EXCEPTION = exports.USER_AGENT_HEADER = exports.INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = void 0;
6
6
  /**
7
7
  * This Symbol is used to reference an internal-only PubSub provider that
8
8
  * is used for AppSync/GraphQL subscriptions in the API category.
@@ -12,3 +12,11 @@ exports.INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = hasSymbol
12
12
  ? Symbol.for('INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER')
13
13
  : '@@INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER';
14
14
  exports.USER_AGENT_HEADER = 'x-amz-user-agent';
15
+ // Error exception code constants
16
+ exports.AUTH_CONFING_EXCEPTION = 'AuthConfigException';
17
+ exports.AWS_CLOUD_WATCH_PROVIDER_OPTIONS_EXCEPTION = 'AWSCloudWatchProviderOptionsException';
18
+ exports.CACHE_LIST_EXCEPTION = 'CacheListException';
19
+ exports.I18N_EXCEPTION = 'I18NException';
20
+ exports.SERVICE_WORKER_EXCEPTION = 'ServiceWorkerException';
21
+ exports.STORAGE_CACHE_EXCEPTION = 'StorageCacheException';
22
+ exports.APPLICATION_ID_EXCEPTION = 'ApplicationIdException';
package/lib/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { Amplify } from './Amplify';
2
- export { Amplify } from './Amplify';
2
+ export { Amplify };
3
3
  export { AmplifyClass } from './Amplify';
4
4
  export { ClientDevice } from './ClientDevice';
5
5
  export { ConsoleLogger, ConsoleLogger as Logger } from './Logger';
6
- export { invalidParameter, missingConfig } from './Errors';
6
+ export { invalidParameter, missingConfig, AmplifyError, AmplifyErrorString, } from './Errors';
7
7
  export { Hub, HubCapsule, HubCallback, HubPayload } from './Hub';
8
8
  export { I18n } from './I18n';
9
9
  export { browserOrNode, filenameToContentType, generateRandomString, isEmpty, isStrictObject, isTextFile, isWebWorker, makeQuerablePromise, objectLessAttributes, sortByField, transferKeyToLowerCase, transferKeyToUpperCase, } from './JS';
@@ -14,8 +14,8 @@ export { FacebookOAuth, GoogleOAuth } from './OAuthHelper';
14
14
  export { AppState, AsyncStorage, Linking } from './RNComponents';
15
15
  export { Credentials, CredentialsClass } from './Credentials';
16
16
  export { ServiceWorker } from './ServiceWorker';
17
- export { ICredentials } from './types';
18
- export { StorageHelper, MemoryStorage } from './StorageHelper';
17
+ export { ICredentials, ErrorParams, AmplifyErrorMap, ServiceError, KeyValueStorageInterface, } from './types';
18
+ export { StorageHelper, MemoryStorage, LocalStorage, CookieStorage, SessionStorage, MemoryKeyValueStorage, } from './StorageHelper';
19
19
  export { UniversalStorage } from './UniversalStorage';
20
20
  export { Platform, getAmplifyUserAgentObject, getAmplifyUserAgent, } from './Platform';
21
21
  export { ApiAction, AuthAction, AnalyticsAction, Category, CustomUserAgentDetails, DataStoreAction, Framework, GeoAction, InteractionsAction, InAppMessagingAction, PredictionsAction, PubSubAction, PushNotificationAction, StorageAction, } from './Platform/types';
@@ -24,6 +24,20 @@ export declare const Constants: {
24
24
  userAgent: string;
25
25
  };
26
26
  export { AWS_CLOUDWATCH_BASE_BUFFER_SIZE, AWS_CLOUDWATCH_CATEGORY, AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE, AWS_CLOUDWATCH_MAX_EVENT_SIZE, AWS_CLOUDWATCH_PROVIDER_NAME, BackgroundManagerNotOpenError, BackgroundProcessManager, BackgroundProcessManagerState, DateUtils, Mutex, NO_CREDS_ERROR_STRING, NonRetryableError, RETRY_ERROR_CODES, Reachability, isNonRetryableError, jitteredBackoff, jitteredExponentialRetry, retry, urlSafeDecode, urlSafeEncode, } from './Util';
27
+ import { BrowserStorageCache } from './Cache/BrowserStorageCache';
28
+ export { asserts } from './Util/errors/AssertError';
29
+ export { isTokenExpired } from './singleton/Auth';
30
+ export { InMemoryCache } from './Cache/InMemoryCache';
31
+ export { CacheConfig } from './Cache/types';
32
+ export { ICache } from './Cache/types';
33
+ export { BrowserStorageCache };
34
+ export { BrowserStorageCache as Cache };
35
+ export { decodeJWT, assertTokenProviderConfig, assertIdentityPooIdConfig, } from './singleton/Auth/utils';
36
+ export { TokenProvider, AuthTokens, FetchAuthSessionOptions, AWSCredentialsAndIdentityIdProvider, AWSCredentialsAndIdentityId, Identity, } from './singleton/Auth/types';
37
+ export { AuthConfig, UserPoolConfig, UserPoolConfigAndIdentityPoolConfig, StorageAccessLevel, StorageConfig, GetCredentialsOptions, } from './singleton/types';
38
+ export { getCredentialsForIdentity, getId, GetCredentialsForIdentityInput, GetCredentialsForIdentityOutput, } from './AwsClients/CognitoIdentity';
39
+ export { AmplifyV6, fetchAuthSession } from './singleton';
40
+ export { LibraryOptions, ResourcesConfig } from './singleton/types';
27
41
  /**
28
42
  * @deprecated use named import
29
43
  */
package/lib/index.js CHANGED
@@ -2,14 +2,13 @@
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.PushNotificationAction = exports.PubSubAction = exports.PredictionsAction = exports.InAppMessagingAction = exports.InteractionsAction = exports.GeoAction = exports.Framework = exports.DataStoreAction = exports.Category = exports.AnalyticsAction = exports.AuthAction = exports.ApiAction = exports.getAmplifyUserAgent = exports.getAmplifyUserAgentObject = exports.Platform = exports.UniversalStorage = exports.MemoryStorage = exports.StorageHelper = exports.ServiceWorker = exports.CredentialsClass = exports.Credentials = exports.Linking = exports.AsyncStorage = exports.AppState = exports.GoogleOAuth = exports.FacebookOAuth = exports.AWSCloudWatchProvider = exports.parseAWSExports = exports.Signer = exports.transferKeyToUpperCase = exports.transferKeyToLowerCase = exports.sortByField = exports.objectLessAttributes = exports.makeQuerablePromise = exports.isWebWorker = exports.isTextFile = exports.isStrictObject = exports.isEmpty = exports.generateRandomString = exports.filenameToContentType = exports.browserOrNode = exports.I18n = exports.Hub = exports.missingConfig = exports.invalidParameter = exports.Logger = exports.ConsoleLogger = exports.ClientDevice = exports.AmplifyClass = exports.Amplify = void 0;
6
- exports.urlSafeEncode = exports.urlSafeDecode = exports.retry = exports.jitteredExponentialRetry = exports.jitteredBackoff = exports.isNonRetryableError = exports.Reachability = exports.RETRY_ERROR_CODES = exports.NonRetryableError = exports.NO_CREDS_ERROR_STRING = exports.Mutex = exports.DateUtils = exports.BackgroundProcessManagerState = exports.BackgroundProcessManager = exports.BackgroundManagerNotOpenError = exports.AWS_CLOUDWATCH_PROVIDER_NAME = exports.AWS_CLOUDWATCH_MAX_EVENT_SIZE = exports.AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = exports.AWS_CLOUDWATCH_CATEGORY = exports.AWS_CLOUDWATCH_BASE_BUFFER_SIZE = exports.Constants = exports.USER_AGENT_HEADER = exports.INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = exports.StorageAction = void 0;
5
+ exports.Framework = exports.DataStoreAction = exports.Category = exports.AnalyticsAction = exports.AuthAction = exports.ApiAction = exports.getAmplifyUserAgent = exports.getAmplifyUserAgentObject = exports.Platform = exports.UniversalStorage = exports.MemoryKeyValueStorage = exports.SessionStorage = exports.CookieStorage = exports.LocalStorage = exports.MemoryStorage = exports.StorageHelper = exports.ServiceWorker = exports.CredentialsClass = exports.Credentials = exports.Linking = exports.AsyncStorage = exports.AppState = exports.GoogleOAuth = exports.FacebookOAuth = exports.AWSCloudWatchProvider = exports.parseAWSExports = exports.Signer = exports.transferKeyToUpperCase = exports.transferKeyToLowerCase = exports.sortByField = exports.objectLessAttributes = exports.makeQuerablePromise = exports.isWebWorker = exports.isTextFile = exports.isStrictObject = exports.isEmpty = exports.generateRandomString = exports.filenameToContentType = exports.browserOrNode = exports.I18n = exports.Hub = exports.AmplifyErrorString = exports.AmplifyError = exports.missingConfig = exports.invalidParameter = exports.Logger = exports.ConsoleLogger = exports.ClientDevice = exports.AmplifyClass = exports.Amplify = void 0;
6
+ exports.fetchAuthSession = exports.AmplifyV6 = exports.getId = exports.getCredentialsForIdentity = exports.assertIdentityPooIdConfig = exports.assertTokenProviderConfig = exports.decodeJWT = exports.Cache = exports.BrowserStorageCache = exports.InMemoryCache = exports.isTokenExpired = exports.asserts = exports.urlSafeEncode = exports.urlSafeDecode = exports.retry = exports.jitteredExponentialRetry = exports.jitteredBackoff = exports.isNonRetryableError = exports.Reachability = exports.RETRY_ERROR_CODES = exports.NonRetryableError = exports.NO_CREDS_ERROR_STRING = exports.Mutex = exports.DateUtils = exports.BackgroundProcessManagerState = exports.BackgroundProcessManager = exports.BackgroundManagerNotOpenError = exports.AWS_CLOUDWATCH_PROVIDER_NAME = exports.AWS_CLOUDWATCH_MAX_EVENT_SIZE = exports.AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = exports.AWS_CLOUDWATCH_CATEGORY = exports.AWS_CLOUDWATCH_BASE_BUFFER_SIZE = exports.Constants = exports.USER_AGENT_HEADER = exports.INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = exports.StorageAction = exports.PushNotificationAction = exports.PubSubAction = exports.PredictionsAction = exports.InAppMessagingAction = exports.InteractionsAction = exports.GeoAction = void 0;
7
7
  var Amplify_1 = require("./Amplify");
8
+ Object.defineProperty(exports, "Amplify", { enumerable: true, get: function () { return Amplify_1.Amplify; } });
8
9
  var Platform_1 = require("./Platform");
9
10
  var Amplify_2 = require("./Amplify");
10
- Object.defineProperty(exports, "Amplify", { enumerable: true, get: function () { return Amplify_2.Amplify; } });
11
- var Amplify_3 = require("./Amplify");
12
- Object.defineProperty(exports, "AmplifyClass", { enumerable: true, get: function () { return Amplify_3.AmplifyClass; } });
11
+ Object.defineProperty(exports, "AmplifyClass", { enumerable: true, get: function () { return Amplify_2.AmplifyClass; } });
13
12
  var ClientDevice_1 = require("./ClientDevice");
14
13
  Object.defineProperty(exports, "ClientDevice", { enumerable: true, get: function () { return ClientDevice_1.ClientDevice; } });
15
14
  var Logger_1 = require("./Logger");
@@ -18,6 +17,8 @@ Object.defineProperty(exports, "Logger", { enumerable: true, get: function () {
18
17
  var Errors_1 = require("./Errors");
19
18
  Object.defineProperty(exports, "invalidParameter", { enumerable: true, get: function () { return Errors_1.invalidParameter; } });
20
19
  Object.defineProperty(exports, "missingConfig", { enumerable: true, get: function () { return Errors_1.missingConfig; } });
20
+ Object.defineProperty(exports, "AmplifyError", { enumerable: true, get: function () { return Errors_1.AmplifyError; } });
21
+ Object.defineProperty(exports, "AmplifyErrorString", { enumerable: true, get: function () { return Errors_1.AmplifyErrorString; } });
21
22
  var Hub_1 = require("./Hub");
22
23
  Object.defineProperty(exports, "Hub", { enumerable: true, get: function () { return Hub_1.Hub; } });
23
24
  var I18n_1 = require("./I18n");
@@ -56,6 +57,10 @@ Object.defineProperty(exports, "ServiceWorker", { enumerable: true, get: functio
56
57
  var StorageHelper_1 = require("./StorageHelper");
57
58
  Object.defineProperty(exports, "StorageHelper", { enumerable: true, get: function () { return StorageHelper_1.StorageHelper; } });
58
59
  Object.defineProperty(exports, "MemoryStorage", { enumerable: true, get: function () { return StorageHelper_1.MemoryStorage; } });
60
+ Object.defineProperty(exports, "LocalStorage", { enumerable: true, get: function () { return StorageHelper_1.LocalStorage; } });
61
+ Object.defineProperty(exports, "CookieStorage", { enumerable: true, get: function () { return StorageHelper_1.CookieStorage; } });
62
+ Object.defineProperty(exports, "SessionStorage", { enumerable: true, get: function () { return StorageHelper_1.SessionStorage; } });
63
+ Object.defineProperty(exports, "MemoryKeyValueStorage", { enumerable: true, get: function () { return StorageHelper_1.MemoryKeyValueStorage; } });
59
64
  var UniversalStorage_1 = require("./UniversalStorage");
60
65
  Object.defineProperty(exports, "UniversalStorage", { enumerable: true, get: function () { return UniversalStorage_1.UniversalStorage; } });
61
66
  var Platform_2 = require("./Platform");
@@ -103,6 +108,28 @@ Object.defineProperty(exports, "jitteredExponentialRetry", { enumerable: true, g
103
108
  Object.defineProperty(exports, "retry", { enumerable: true, get: function () { return Util_1.retry; } });
104
109
  Object.defineProperty(exports, "urlSafeDecode", { enumerable: true, get: function () { return Util_1.urlSafeDecode; } });
105
110
  Object.defineProperty(exports, "urlSafeEncode", { enumerable: true, get: function () { return Util_1.urlSafeEncode; } });
111
+ // Cache exports
112
+ var BrowserStorageCache_1 = require("./Cache/BrowserStorageCache");
113
+ Object.defineProperty(exports, "BrowserStorageCache", { enumerable: true, get: function () { return BrowserStorageCache_1.BrowserStorageCache; } });
114
+ Object.defineProperty(exports, "Cache", { enumerable: true, get: function () { return BrowserStorageCache_1.BrowserStorageCache; } });
115
+ var AssertError_1 = require("./Util/errors/AssertError");
116
+ Object.defineProperty(exports, "asserts", { enumerable: true, get: function () { return AssertError_1.asserts; } });
117
+ var Auth_1 = require("./singleton/Auth");
118
+ Object.defineProperty(exports, "isTokenExpired", { enumerable: true, get: function () { return Auth_1.isTokenExpired; } });
119
+ var InMemoryCache_1 = require("./Cache/InMemoryCache");
120
+ Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return InMemoryCache_1.InMemoryCache; } });
121
+ // Singleton exports
122
+ var utils_1 = require("./singleton/Auth/utils");
123
+ Object.defineProperty(exports, "decodeJWT", { enumerable: true, get: function () { return utils_1.decodeJWT; } });
124
+ Object.defineProperty(exports, "assertTokenProviderConfig", { enumerable: true, get: function () { return utils_1.assertTokenProviderConfig; } });
125
+ Object.defineProperty(exports, "assertIdentityPooIdConfig", { enumerable: true, get: function () { return utils_1.assertIdentityPooIdConfig; } });
126
+ // AWSClients exports
127
+ var CognitoIdentity_1 = require("./AwsClients/CognitoIdentity");
128
+ Object.defineProperty(exports, "getCredentialsForIdentity", { enumerable: true, get: function () { return CognitoIdentity_1.getCredentialsForIdentity; } });
129
+ Object.defineProperty(exports, "getId", { enumerable: true, get: function () { return CognitoIdentity_1.getId; } });
130
+ var singleton_1 = require("./singleton");
131
+ Object.defineProperty(exports, "AmplifyV6", { enumerable: true, get: function () { return singleton_1.AmplifyV6; } });
132
+ Object.defineProperty(exports, "fetchAuthSession", { enumerable: true, get: function () { return singleton_1.fetchAuthSession; } });
106
133
  /**
107
134
  * @deprecated use named import
108
135
  */
@@ -1,2 +1,2 @@
1
1
  import { AmplifyConfig } from './types';
2
- export declare const parseAWSExports: (config: any) => AmplifyConfig;
2
+ export declare const parseAWSExports: (config: Record<string, any>) => AmplifyConfig;
@@ -0,0 +1,30 @@
1
+ import { Observable } from 'rxjs';
2
+ import { AuthConfig, AuthSession, FetchAuthSessionOptions, LibraryAuthOptions } from './types';
3
+ export declare function isTokenExpired({ expiresAt, clockDrift, }: {
4
+ expiresAt: number;
5
+ clockDrift: number;
6
+ }): boolean;
7
+ export declare class AuthClass {
8
+ private authSessionObservers;
9
+ private authConfig?;
10
+ private authOptions?;
11
+ constructor();
12
+ /**
13
+ * Configure Auth category
14
+ *
15
+ * @internal
16
+ *
17
+ * @param authResourcesConfig - Resources configurations required by Auth providers.
18
+ * @param authOptions - Client options used by library
19
+ *
20
+ * @returns void
21
+ */
22
+ configure(authResourcesConfig: AuthConfig, authOptions?: LibraryAuthOptions): void;
23
+ fetchAuthSession(options?: FetchAuthSessionOptions): Promise<AuthSession>;
24
+ /**
25
+ * Obtain an Observable that notifies on session changes
26
+ *
27
+ * @returns Observable<AmplifyUserSession>
28
+ */
29
+ listenSessionChanges(): Observable<AuthSession>;
30
+ }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AuthClass = exports.isTokenExpired = void 0;
40
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
41
+ // SPDX-License-Identifier: Apache-2.0
42
+ var rxjs_1 = require("rxjs");
43
+ var AssertError_1 = require("../../Util/errors/AssertError");
44
+ var constants_1 = require("../../constants");
45
+ function isTokenExpired(_a) {
46
+ var expiresAt = _a.expiresAt, clockDrift = _a.clockDrift;
47
+ var currentTime = Date.now();
48
+ return currentTime + clockDrift > expiresAt;
49
+ }
50
+ exports.isTokenExpired = isTokenExpired;
51
+ var AuthClass = /** @class */ (function () {
52
+ function AuthClass() {
53
+ this.authSessionObservers = new Set();
54
+ }
55
+ /**
56
+ * Configure Auth category
57
+ *
58
+ * @internal
59
+ *
60
+ * @param authResourcesConfig - Resources configurations required by Auth providers.
61
+ * @param authOptions - Client options used by library
62
+ *
63
+ * @returns void
64
+ */
65
+ AuthClass.prototype.configure = function (authResourcesConfig, authOptions) {
66
+ this.authConfig = authResourcesConfig;
67
+ this.authOptions = authOptions;
68
+ };
69
+ AuthClass.prototype.fetchAuthSession = function (options) {
70
+ var _a, _b, _c, _d, _e, _f, _g;
71
+ if (options === void 0) { options = {}; }
72
+ return __awaiter(this, void 0, void 0, function () {
73
+ var tokens, credentialsAndIdentityId;
74
+ return __generator(this, function (_h) {
75
+ switch (_h.label) {
76
+ case 0: return [4 /*yield*/, ((_b = (_a = this.authOptions) === null || _a === void 0 ? void 0 : _a.tokenProvider) === null || _b === void 0 ? void 0 : _b.getTokens(options))];
77
+ case 1:
78
+ // Get tokens will throw if session cannot be refreshed (network or service error) or return null if not available
79
+ tokens =
80
+ (_c = (_h.sent())) !== null && _c !== void 0 ? _c : undefined;
81
+ (0, AssertError_1.asserts)(!!this.authConfig, {
82
+ name: constants_1.AUTH_CONFING_EXCEPTION,
83
+ message: 'AuthConfig is required',
84
+ recoverySuggestion: 'call Amplify.configure in your app with a valid AuthConfig',
85
+ });
86
+ if (!tokens) return [3 /*break*/, 3];
87
+ return [4 /*yield*/, ((_e = (_d = this.authOptions) === null || _d === void 0 ? void 0 : _d.credentialsProvider) === null || _e === void 0 ? void 0 : _e.getCredentialsAndIdentityId({
88
+ authConfig: this.authConfig,
89
+ tokens: tokens,
90
+ authenticated: true,
91
+ forceRefresh: options.forceRefresh,
92
+ }))];
93
+ case 2:
94
+ // getCredentialsAndIdentityId will throw if cannot get credentials (network or service error)
95
+ credentialsAndIdentityId =
96
+ _h.sent();
97
+ return [3 /*break*/, 5];
98
+ case 3: return [4 /*yield*/, ((_g = (_f = this.authOptions) === null || _f === void 0 ? void 0 : _f.credentialsProvider) === null || _g === void 0 ? void 0 : _g.getCredentialsAndIdentityId({
99
+ authConfig: this.authConfig,
100
+ authenticated: false,
101
+ forceRefresh: options.forceRefresh,
102
+ }))];
103
+ case 4:
104
+ // getCredentialsAndIdentityId will throw if cannot get credentials (network or service error)
105
+ credentialsAndIdentityId =
106
+ _h.sent();
107
+ _h.label = 5;
108
+ case 5: return [2 /*return*/, {
109
+ tokens: tokens,
110
+ credentials: credentialsAndIdentityId === null || credentialsAndIdentityId === void 0 ? void 0 : credentialsAndIdentityId.credentials,
111
+ identityId: credentialsAndIdentityId === null || credentialsAndIdentityId === void 0 ? void 0 : credentialsAndIdentityId.identityId,
112
+ }];
113
+ }
114
+ });
115
+ });
116
+ };
117
+ /**
118
+ * Obtain an Observable that notifies on session changes
119
+ *
120
+ * @returns Observable<AmplifyUserSession>
121
+ */
122
+ AuthClass.prototype.listenSessionChanges = function () {
123
+ var _this = this;
124
+ return new rxjs_1.Observable(function (observer) {
125
+ _this.authSessionObservers.add(observer);
126
+ return function () {
127
+ _this.authSessionObservers.delete(observer);
128
+ };
129
+ });
130
+ };
131
+ return AuthClass;
132
+ }());
133
+ exports.AuthClass = AuthClass;
@@ -0,0 +1,95 @@
1
+ interface JwtPayloadStandardFields {
2
+ exp?: number;
3
+ iss?: string;
4
+ aud?: string | string[];
5
+ nbf?: number;
6
+ iat?: number;
7
+ scope?: string;
8
+ jti?: string;
9
+ }
10
+ /** JSON type */
11
+ type Json = null | string | number | boolean | Json[] | JsonObject;
12
+ /** JSON Object type */
13
+ type JsonObject = {
14
+ [name: string]: Json;
15
+ };
16
+ type JwtPayload = JwtPayloadStandardFields & JsonObject;
17
+ export type JWT = {
18
+ payload: JwtPayload;
19
+ toString: () => string;
20
+ };
21
+ export type JWTCreator = (stringJWT: string) => JWT;
22
+ export type AuthSession = {
23
+ tokens?: AuthTokens;
24
+ credentials?: AWSCredentials;
25
+ identityId?: string;
26
+ };
27
+ export type LibraryAuthOptions = {
28
+ tokenProvider?: TokenProvider;
29
+ credentialsProvider?: AWSCredentialsAndIdentityIdProvider;
30
+ };
31
+ export type Identity = {
32
+ id: string;
33
+ type: 'guest' | 'primary';
34
+ };
35
+ export interface AWSCredentialsAndIdentityIdProvider {
36
+ getCredentialsAndIdentityId: (getCredentialsOptions: GetCredentialsOptions) => Promise<AWSCredentialsAndIdentityId>;
37
+ clearCredentials: () => void;
38
+ }
39
+ export type TokenProvider = {
40
+ getTokens: ({ forceRefresh, }: {
41
+ forceRefresh?: boolean;
42
+ }) => Promise<AuthTokens | null>;
43
+ };
44
+ export type FetchAuthSessionOptions = {
45
+ forceRefresh?: boolean;
46
+ };
47
+ export type AuthTokens = {
48
+ idToken?: JWT;
49
+ accessToken: JWT;
50
+ };
51
+ export type AuthConfig = IdentityPoolConfig | UserPoolConfig | UserPoolConfigAndIdentityPoolConfig;
52
+ export type IdentityPoolConfig = {
53
+ identityPoolId: string;
54
+ userPoolWebClientId?: never;
55
+ userPoolId?: never;
56
+ clientMetadata?: never;
57
+ isMandatorySignInEnabled?: never;
58
+ };
59
+ export type UserPoolConfig = {
60
+ userPoolWebClientId: string;
61
+ userPoolId: string;
62
+ identityPoolId?: never;
63
+ clientMetadata?: Record<string, string>;
64
+ };
65
+ export type UserPoolConfigAndIdentityPoolConfig = {
66
+ userPoolWebClientId: string;
67
+ userPoolId: string;
68
+ identityPoolId: string;
69
+ clientMetadata?: Record<string, string>;
70
+ isMandatorySignInEnabled?: boolean;
71
+ };
72
+ export type GetCredentialsOptions = GetCredentialsAuthenticatedUser | GetCredentialsUnauthenticatedUser;
73
+ type GetCredentialsAuthenticatedUser = {
74
+ authenticated: true;
75
+ forceRefresh?: boolean;
76
+ authConfig: AuthConfig;
77
+ tokens?: AuthTokens;
78
+ };
79
+ type GetCredentialsUnauthenticatedUser = {
80
+ authenticated: false;
81
+ forceRefresh?: boolean;
82
+ authConfig: AuthConfig;
83
+ tokens?: never;
84
+ };
85
+ export type AWSCredentialsAndIdentityId = {
86
+ credentials: AWSCredentials;
87
+ identityId?: string;
88
+ };
89
+ type AWSCredentials = {
90
+ accessKeyId: string;
91
+ secretAccessKey: string;
92
+ sessionToken?: string;
93
+ expiration?: Date;
94
+ };
95
+ export {};
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ // From https://github.com/awslabs/aws-jwt-verify/blob/main/src/safe-json-parse.ts
5
+ // From https://github.com/awslabs/aws-jwt-verify/blob/main/src/jwt-model.ts
6
+ Object.defineProperty(exports, "__esModule", { value: true });