@aws-amplify/core 6.0.5 → 6.0.6-unstable.1c5010c.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 (34) hide show
  1. package/dist/cjs/Platform/version.js +1 -1
  2. package/dist/cjs/Platform/version.js.map +1 -1
  3. package/dist/cjs/clients/middleware/signing/signer/signatureV4/signRequest.js +2 -1
  4. package/dist/cjs/clients/middleware/signing/signer/signatureV4/signRequest.js.map +1 -1
  5. package/dist/cjs/parseAWSExports.js +6 -6
  6. package/dist/cjs/parseAWSExports.js.map +1 -1
  7. package/dist/esm/Hub/types/AuthTypes.d.ts +8 -0
  8. package/dist/esm/Platform/version.d.ts +1 -1
  9. package/dist/esm/Platform/version.mjs +1 -1
  10. package/dist/esm/Platform/version.mjs.map +1 -1
  11. package/dist/esm/adapterCore/serverContext/types/cookieStorage.d.ts +1 -1
  12. package/dist/esm/clients/middleware/signing/signer/signatureV4/signRequest.mjs +2 -1
  13. package/dist/esm/clients/middleware/signing/signer/signatureV4/signRequest.mjs.map +1 -1
  14. package/dist/esm/parseAWSExports.mjs +6 -6
  15. package/dist/esm/parseAWSExports.mjs.map +1 -1
  16. package/dist/esm/singleton/API/types.d.ts +3 -3
  17. package/dist/esm/singleton/Auth/types.d.ts +1 -0
  18. package/package.json +3 -43
  19. package/src/Cache/StorageCacheCommon.ts +1 -1
  20. package/src/Cache/types/index.ts +4 -4
  21. package/src/Hub/index.ts +4 -4
  22. package/src/Hub/types/AuthTypes.ts +9 -2
  23. package/src/Hub/types/HubTypes.ts +3 -3
  24. package/src/Platform/version.ts +1 -1
  25. package/src/adapterCore/serverContext/types/cookieStorage.ts +5 -3
  26. package/src/clients/internal/composeServiceApi.ts +1 -1
  27. package/src/clients/internal/composeTransferHandler.ts +15 -15
  28. package/src/clients/middleware/retry/middleware.ts +1 -1
  29. package/src/clients/middleware/signing/signer/signatureV4/signRequest.ts +2 -3
  30. package/src/clients/types/core.ts +2 -2
  31. package/src/global.d.ts +1 -1
  32. package/src/parseAWSExports.ts +14 -8
  33. package/src/singleton/API/types.ts +3 -3
  34. package/src/singleton/Auth/types.ts +3 -0
@@ -3,5 +3,5 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.version = void 0;
5
5
  // generated by genversion
6
- exports.version = '6.0.5';
6
+ exports.version = '6.0.6-unstable.1c5010c.0+1c5010c';
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../../../src/Platform/version.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// generated by genversion\nexports.version = '6.0.5';\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACzB;AACA,OAAO,CAAC,OAAO,GAAG,OAAO;;"}
1
+ {"version":3,"file":"version.js","sources":["../../../src/Platform/version.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// generated by genversion\nexports.version = '6.0.6-unstable.1c5010c.0+1c5010c';\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACzB;AACA,OAAO,CAAC,OAAO,GAAG,kCAAkC;;"}
@@ -31,7 +31,8 @@ const signRequest = (request, options) => {
31
31
  const credentialEntry = `Credential=${accessKeyId}/${credentialScope}`;
32
32
  const signedHeadersEntry = `SignedHeaders=${(0, getSignedHeaders_1.getSignedHeaders)(headers)}`;
33
33
  const signatureEntry = `Signature=${signature}`;
34
- headers[constants_1.AUTH_HEADER] = `${constants_1.SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;
34
+ headers[constants_1.AUTH_HEADER] =
35
+ `${constants_1.SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;
35
36
  return requestToSign;
36
37
  };
37
38
  exports.signRequest = signRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"signRequest.js","sources":["../../../../../../../src/clients/middleware/signing/signer/signatureV4/signRequest.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signRequest = void 0;\nconst getSignedHeaders_1 = require(\"./utils/getSignedHeaders\");\nconst getSigningValues_1 = require(\"./utils/getSigningValues\");\nconst constants_1 = require(\"./constants\");\nconst getSignature_1 = require(\"./utils/getSignature\");\n/**\n * Given a `HttpRequest`, returns a Signature Version 4 signed `HttpRequest`.\n *\n * @param request `HttpRequest` to be signed.\n * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.\n * @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.\n */\nconst signRequest = (request, options) => {\n const signingValues = (0, getSigningValues_1.getSigningValues)(options);\n const { accessKeyId, credentialScope, longDate, sessionToken } = signingValues;\n // create the request to sign\n const headers = { ...request.headers };\n headers[constants_1.HOST_HEADER] = request.url.host;\n headers[constants_1.AMZ_DATE_HEADER] = longDate;\n if (sessionToken) {\n headers[constants_1.TOKEN_HEADER] = sessionToken;\n }\n const requestToSign = { ...request, headers };\n // calculate and add the signature to the request\n const signature = (0, getSignature_1.getSignature)(requestToSign, signingValues);\n const credentialEntry = `Credential=${accessKeyId}/${credentialScope}`;\n const signedHeadersEntry = `SignedHeaders=${(0, getSignedHeaders_1.getSignedHeaders)(headers)}`;\n const signatureEntry = `Signature=${signature}`;\n headers[constants_1.AUTH_HEADER] = `${constants_1.SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;\n return requestToSign;\n};\nexports.signRequest = signRequest;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;AAC7B,MAAM,kBAAkB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AAC1C,IAAI,MAAM,aAAa,GAAG,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC5E,IAAI,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;AACnF;AACA,IAAI,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3C,IAAI,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;AACpD,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AACzD,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;AAClD;AACA,IAAI,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACrF,IAAI,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AAC3E,IAAI,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpG,IAAI,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACpD,IAAI,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,2BAA2B,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AACjJ,IAAI,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AACF,OAAO,CAAC,WAAW,GAAG,WAAW;;"}
1
+ {"version":3,"file":"signRequest.js","sources":["../../../../../../../src/clients/middleware/signing/signer/signatureV4/signRequest.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signRequest = void 0;\nconst getSignedHeaders_1 = require(\"./utils/getSignedHeaders\");\nconst getSigningValues_1 = require(\"./utils/getSigningValues\");\nconst constants_1 = require(\"./constants\");\nconst getSignature_1 = require(\"./utils/getSignature\");\n/**\n * Given a `HttpRequest`, returns a Signature Version 4 signed `HttpRequest`.\n *\n * @param request `HttpRequest` to be signed.\n * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.\n * @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.\n */\nconst signRequest = (request, options) => {\n const signingValues = (0, getSigningValues_1.getSigningValues)(options);\n const { accessKeyId, credentialScope, longDate, sessionToken } = signingValues;\n // create the request to sign\n const headers = { ...request.headers };\n headers[constants_1.HOST_HEADER] = request.url.host;\n headers[constants_1.AMZ_DATE_HEADER] = longDate;\n if (sessionToken) {\n headers[constants_1.TOKEN_HEADER] = sessionToken;\n }\n const requestToSign = { ...request, headers };\n // calculate and add the signature to the request\n const signature = (0, getSignature_1.getSignature)(requestToSign, signingValues);\n const credentialEntry = `Credential=${accessKeyId}/${credentialScope}`;\n const signedHeadersEntry = `SignedHeaders=${(0, getSignedHeaders_1.getSignedHeaders)(headers)}`;\n const signatureEntry = `Signature=${signature}`;\n headers[constants_1.AUTH_HEADER] =\n `${constants_1.SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;\n return requestToSign;\n};\nexports.signRequest = signRequest;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;AAC7B,MAAM,kBAAkB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AAC1C,IAAI,MAAM,aAAa,GAAG,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC5E,IAAI,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;AACnF;AACA,IAAI,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3C,IAAI,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;AACpD,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AACzD,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;AAClD;AACA,IAAI,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACrF,IAAI,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AAC3E,IAAI,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpG,IAAI,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACpD,IAAI,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC;AACpC,QAAQ,CAAC,EAAE,WAAW,CAAC,2BAA2B,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAClH,IAAI,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AACF,OAAO,CAAC,WAAW,GAAG,WAAW;;"}
@@ -106,11 +106,11 @@ const parseAWSExports = (config = {}) => {
106
106
  ...(aws_cognito_verification_mechanisms ?? []),
107
107
  ...(aws_cognito_signup_attributes ?? []),
108
108
  ]));
109
- const userAttributesConfig = mergedUserAttributes.map((s) => ({
110
- [s.toLowerCase()]: {
111
- required: true, // All user attributes generated by the CLI will be required
112
- },
113
- }));
109
+ const userAttributes = mergedUserAttributes.reduce((attributes, key) => ({
110
+ ...attributes,
111
+ // All user attributes generated by the CLI are required
112
+ [key.toLowerCase()]: { required: true },
113
+ }), {});
114
114
  const loginWithEmailEnabled = aws_cognito_username_attributes?.includes('EMAIL') ?? false;
115
115
  const loginWithPhoneEnabled = aws_cognito_username_attributes?.includes('PHONE_NUMBER') ?? false;
116
116
  if (aws_cognito_identity_pool_id || aws_user_pools_id) {
@@ -119,7 +119,7 @@ const parseAWSExports = (config = {}) => {
119
119
  identityPoolId: aws_cognito_identity_pool_id,
120
120
  allowGuestAccess: aws_mandatory_sign_in !== 'enable',
121
121
  signUpVerificationMethod: aws_cognito_sign_up_verification_method,
122
- userAttributes: userAttributesConfig,
122
+ userAttributes,
123
123
  userPoolClientId: aws_user_pools_web_client_id,
124
124
  userPoolId: aws_user_pools_id,
125
125
  mfa: mfaConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"parseAWSExports.js","sources":["../../src/parseAWSExports.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseAWSExports = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst Logger_1 = require(\"./Logger\");\nconst logger = new Logger_1.ConsoleLogger('parseAWSExports');\nconst authTypeMapping = {\n API_KEY: 'apiKey',\n AWS_IAM: 'iam',\n AMAZON_COGNITO_USER_POOLS: 'userPool',\n OPENID_CONNECT: 'oidc',\n NONE: 'none',\n LAMBDA: 'lambda',\n};\n/**\n * This utility converts the `aws-exports.js` file generated by the Amplify CLI into a {@link ResourcesConfig} object\n * consumable by Amplify.\n *\n * @param config A configuration object from `aws-exports.js`.\n *\n * @returns A {@link ResourcesConfig} object.\n */\nconst parseAWSExports = (config = {}) => {\n const { aws_appsync_apiKey, aws_appsync_authenticationType, aws_appsync_graphqlEndpoint, aws_appsync_region, aws_bots, aws_bots_config, aws_cognito_identity_pool_id, aws_cognito_sign_up_verification_method, aws_cognito_mfa_configuration, aws_cognito_mfa_types, aws_cognito_password_protection_settings, aws_cognito_verification_mechanisms, aws_cognito_signup_attributes, aws_cognito_social_providers, aws_cognito_username_attributes, aws_mandatory_sign_in, aws_mobile_analytics_app_id, aws_mobile_analytics_app_region, aws_user_files_s3_bucket, aws_user_files_s3_bucket_region, aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing, aws_user_pools_id, aws_user_pools_web_client_id, geo, oauth, predictions, aws_cloud_logic_custom, Notifications, modelIntrospection, } = config;\n const amplifyConfig = {};\n // Analytics\n if (aws_mobile_analytics_app_id) {\n amplifyConfig.Analytics = {\n Pinpoint: {\n appId: aws_mobile_analytics_app_id,\n region: aws_mobile_analytics_app_region,\n },\n };\n }\n // Notifications\n const { InAppMessaging, Push } = Notifications ?? {};\n if (InAppMessaging?.AWSPinpoint || Push?.AWSPinpoint) {\n if (InAppMessaging?.AWSPinpoint) {\n const { appId, region } = InAppMessaging.AWSPinpoint;\n amplifyConfig.Notifications = {\n InAppMessaging: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n if (Push?.AWSPinpoint) {\n const { appId, region } = Push.AWSPinpoint;\n amplifyConfig.Notifications = {\n PushNotification: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n }\n // Interactions\n if (Array.isArray(aws_bots_config)) {\n amplifyConfig.Interactions = {\n LexV1: Object.fromEntries(aws_bots_config.map(bot => [bot.name, bot])),\n };\n }\n // API\n if (aws_appsync_graphqlEndpoint) {\n const defaultAuthMode = authTypeMapping[aws_appsync_authenticationType];\n if (!defaultAuthMode) {\n logger.debug(`Invalid authentication type ${aws_appsync_authenticationType}. Falling back to IAM.`);\n }\n amplifyConfig.API = {\n GraphQL: {\n endpoint: aws_appsync_graphqlEndpoint,\n apiKey: aws_appsync_apiKey,\n region: aws_appsync_region,\n defaultAuthMode: defaultAuthMode ?? 'iam',\n },\n };\n if (modelIntrospection) {\n amplifyConfig.API.GraphQL.modelIntrospection = modelIntrospection;\n }\n }\n // Auth\n const mfaConfig = aws_cognito_mfa_configuration\n ? {\n status: aws_cognito_mfa_configuration &&\n aws_cognito_mfa_configuration.toLowerCase(),\n totpEnabled: aws_cognito_mfa_types?.includes('TOTP') ?? false,\n smsEnabled: aws_cognito_mfa_types?.includes('SMS') ?? false,\n }\n : undefined;\n const passwordFormatConfig = aws_cognito_password_protection_settings\n ? {\n minLength: aws_cognito_password_protection_settings.passwordPolicyMinLength,\n requireLowercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_LOWERCASE') ?? false,\n requireUppercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_UPPERCASE') ?? false,\n requireNumbers: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_NUMBERS') ?? false,\n requireSpecialCharacters: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_SYMBOLS') ?? false,\n }\n : undefined;\n const mergedUserAttributes = Array.from(new Set([\n ...(aws_cognito_verification_mechanisms ?? []),\n ...(aws_cognito_signup_attributes ?? []),\n ]));\n const userAttributesConfig = mergedUserAttributes.map((s) => ({\n [s.toLowerCase()]: {\n required: true, // All user attributes generated by the CLI will be required\n },\n }));\n const loginWithEmailEnabled = aws_cognito_username_attributes?.includes('EMAIL') ?? false;\n const loginWithPhoneEnabled = aws_cognito_username_attributes?.includes('PHONE_NUMBER') ?? false;\n if (aws_cognito_identity_pool_id || aws_user_pools_id) {\n amplifyConfig.Auth = {\n Cognito: {\n identityPoolId: aws_cognito_identity_pool_id,\n allowGuestAccess: aws_mandatory_sign_in !== 'enable',\n signUpVerificationMethod: aws_cognito_sign_up_verification_method,\n userAttributes: userAttributesConfig,\n userPoolClientId: aws_user_pools_web_client_id,\n userPoolId: aws_user_pools_id,\n mfa: mfaConfig,\n passwordFormat: passwordFormatConfig,\n loginWith: {\n username: loginWithEmailEnabled || loginWithPhoneEnabled ? false : true,\n email: loginWithEmailEnabled,\n phone: loginWithPhoneEnabled,\n },\n },\n };\n }\n const hasOAuthConfig = oauth ? Object.keys(oauth).length > 0 : false;\n const hasSocialProviderConfig = aws_cognito_social_providers\n ? aws_cognito_social_providers.length > 0\n : false;\n if (amplifyConfig.Auth && hasOAuthConfig) {\n amplifyConfig.Auth.Cognito.loginWith = {\n ...amplifyConfig.Auth.Cognito.loginWith,\n oauth: {\n ...getOAuthConfig(oauth),\n ...(hasSocialProviderConfig && {\n providers: parseSocialProviders(aws_cognito_social_providers),\n }),\n },\n };\n }\n // Storage\n if (aws_user_files_s3_bucket) {\n amplifyConfig.Storage = {\n S3: {\n bucket: aws_user_files_s3_bucket,\n region: aws_user_files_s3_bucket_region,\n dangerouslyConnectToHttpEndpointForTesting: aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing,\n },\n };\n }\n // Geo\n if (geo) {\n const { amazon_location_service } = geo;\n amplifyConfig.Geo = amazon_location_service\n ? {\n LocationService: {\n ...amazon_location_service,\n searchIndices: amazon_location_service.search_indices,\n region: amazon_location_service.region,\n },\n }\n : { ...geo };\n }\n // REST API\n if (aws_cloud_logic_custom) {\n amplifyConfig.API = {\n ...amplifyConfig.API,\n REST: aws_cloud_logic_custom.reduce((acc, api) => {\n const { name, endpoint, region, service } = api;\n return {\n ...acc,\n [name]: {\n endpoint,\n ...(service ? { service } : undefined),\n ...(region ? { region } : undefined),\n },\n };\n }, {}),\n };\n }\n // Predictions\n if (predictions) {\n // map VoiceId from speechGenerator defaults to voiceId\n const { VoiceId: voiceId } = predictions?.convert?.speechGenerator?.defaults ?? {};\n amplifyConfig.Predictions = voiceId\n ? {\n ...predictions,\n convert: {\n ...predictions.convert,\n speechGenerator: {\n ...predictions.convert.speechGenerator,\n defaults: { voiceId },\n },\n },\n }\n : predictions;\n }\n return amplifyConfig;\n};\nexports.parseAWSExports = parseAWSExports;\nconst getRedirectUrl = (redirectStr) => redirectStr?.split(',') ?? [];\nconst getOAuthConfig = ({ domain, scope, redirectSignIn, redirectSignOut, responseType, }) => ({\n domain,\n scopes: scope,\n redirectSignIn: getRedirectUrl(redirectSignIn),\n redirectSignOut: getRedirectUrl(redirectSignOut),\n responseType,\n});\nconst parseSocialProviders = (aws_cognito_social_providers) => {\n return aws_cognito_social_providers.map((provider) => {\n const updatedProvider = provider.toLowerCase();\n return updatedProvider.charAt(0).toUpperCase() + updatedProvider.slice(1);\n });\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseAWSExports.js","sources":["../../src/parseAWSExports.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseAWSExports = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst Logger_1 = require(\"./Logger\");\nconst logger = new Logger_1.ConsoleLogger('parseAWSExports');\nconst authTypeMapping = {\n API_KEY: 'apiKey',\n AWS_IAM: 'iam',\n AMAZON_COGNITO_USER_POOLS: 'userPool',\n OPENID_CONNECT: 'oidc',\n NONE: 'none',\n LAMBDA: 'lambda',\n};\n/**\n * This utility converts the `aws-exports.js` file generated by the Amplify CLI into a {@link ResourcesConfig} object\n * consumable by Amplify.\n *\n * @param config A configuration object from `aws-exports.js`.\n *\n * @returns A {@link ResourcesConfig} object.\n */\nconst parseAWSExports = (config = {}) => {\n const { aws_appsync_apiKey, aws_appsync_authenticationType, aws_appsync_graphqlEndpoint, aws_appsync_region, aws_bots, aws_bots_config, aws_cognito_identity_pool_id, aws_cognito_sign_up_verification_method, aws_cognito_mfa_configuration, aws_cognito_mfa_types, aws_cognito_password_protection_settings, aws_cognito_verification_mechanisms, aws_cognito_signup_attributes, aws_cognito_social_providers, aws_cognito_username_attributes, aws_mandatory_sign_in, aws_mobile_analytics_app_id, aws_mobile_analytics_app_region, aws_user_files_s3_bucket, aws_user_files_s3_bucket_region, aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing, aws_user_pools_id, aws_user_pools_web_client_id, geo, oauth, predictions, aws_cloud_logic_custom, Notifications, modelIntrospection, } = config;\n const amplifyConfig = {};\n // Analytics\n if (aws_mobile_analytics_app_id) {\n amplifyConfig.Analytics = {\n Pinpoint: {\n appId: aws_mobile_analytics_app_id,\n region: aws_mobile_analytics_app_region,\n },\n };\n }\n // Notifications\n const { InAppMessaging, Push } = Notifications ?? {};\n if (InAppMessaging?.AWSPinpoint || Push?.AWSPinpoint) {\n if (InAppMessaging?.AWSPinpoint) {\n const { appId, region } = InAppMessaging.AWSPinpoint;\n amplifyConfig.Notifications = {\n InAppMessaging: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n if (Push?.AWSPinpoint) {\n const { appId, region } = Push.AWSPinpoint;\n amplifyConfig.Notifications = {\n PushNotification: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n }\n // Interactions\n if (Array.isArray(aws_bots_config)) {\n amplifyConfig.Interactions = {\n LexV1: Object.fromEntries(aws_bots_config.map(bot => [bot.name, bot])),\n };\n }\n // API\n if (aws_appsync_graphqlEndpoint) {\n const defaultAuthMode = authTypeMapping[aws_appsync_authenticationType];\n if (!defaultAuthMode) {\n logger.debug(`Invalid authentication type ${aws_appsync_authenticationType}. Falling back to IAM.`);\n }\n amplifyConfig.API = {\n GraphQL: {\n endpoint: aws_appsync_graphqlEndpoint,\n apiKey: aws_appsync_apiKey,\n region: aws_appsync_region,\n defaultAuthMode: defaultAuthMode ?? 'iam',\n },\n };\n if (modelIntrospection) {\n amplifyConfig.API.GraphQL.modelIntrospection = modelIntrospection;\n }\n }\n // Auth\n const mfaConfig = aws_cognito_mfa_configuration\n ? {\n status: aws_cognito_mfa_configuration &&\n aws_cognito_mfa_configuration.toLowerCase(),\n totpEnabled: aws_cognito_mfa_types?.includes('TOTP') ?? false,\n smsEnabled: aws_cognito_mfa_types?.includes('SMS') ?? false,\n }\n : undefined;\n const passwordFormatConfig = aws_cognito_password_protection_settings\n ? {\n minLength: aws_cognito_password_protection_settings.passwordPolicyMinLength,\n requireLowercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_LOWERCASE') ?? false,\n requireUppercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_UPPERCASE') ?? false,\n requireNumbers: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_NUMBERS') ?? false,\n requireSpecialCharacters: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_SYMBOLS') ?? false,\n }\n : undefined;\n const mergedUserAttributes = Array.from(new Set([\n ...(aws_cognito_verification_mechanisms ?? []),\n ...(aws_cognito_signup_attributes ?? []),\n ]));\n const userAttributes = mergedUserAttributes.reduce((attributes, key) => ({\n ...attributes,\n // All user attributes generated by the CLI are required\n [key.toLowerCase()]: { required: true },\n }), {});\n const loginWithEmailEnabled = aws_cognito_username_attributes?.includes('EMAIL') ?? false;\n const loginWithPhoneEnabled = aws_cognito_username_attributes?.includes('PHONE_NUMBER') ?? false;\n if (aws_cognito_identity_pool_id || aws_user_pools_id) {\n amplifyConfig.Auth = {\n Cognito: {\n identityPoolId: aws_cognito_identity_pool_id,\n allowGuestAccess: aws_mandatory_sign_in !== 'enable',\n signUpVerificationMethod: aws_cognito_sign_up_verification_method,\n userAttributes,\n userPoolClientId: aws_user_pools_web_client_id,\n userPoolId: aws_user_pools_id,\n mfa: mfaConfig,\n passwordFormat: passwordFormatConfig,\n loginWith: {\n username: loginWithEmailEnabled || loginWithPhoneEnabled ? false : true,\n email: loginWithEmailEnabled,\n phone: loginWithPhoneEnabled,\n },\n },\n };\n }\n const hasOAuthConfig = oauth ? Object.keys(oauth).length > 0 : false;\n const hasSocialProviderConfig = aws_cognito_social_providers\n ? aws_cognito_social_providers.length > 0\n : false;\n if (amplifyConfig.Auth && hasOAuthConfig) {\n amplifyConfig.Auth.Cognito.loginWith = {\n ...amplifyConfig.Auth.Cognito.loginWith,\n oauth: {\n ...getOAuthConfig(oauth),\n ...(hasSocialProviderConfig && {\n providers: parseSocialProviders(aws_cognito_social_providers),\n }),\n },\n };\n }\n // Storage\n if (aws_user_files_s3_bucket) {\n amplifyConfig.Storage = {\n S3: {\n bucket: aws_user_files_s3_bucket,\n region: aws_user_files_s3_bucket_region,\n dangerouslyConnectToHttpEndpointForTesting: aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing,\n },\n };\n }\n // Geo\n if (geo) {\n const { amazon_location_service } = geo;\n amplifyConfig.Geo = amazon_location_service\n ? {\n LocationService: {\n ...amazon_location_service,\n searchIndices: amazon_location_service.search_indices,\n region: amazon_location_service.region,\n },\n }\n : { ...geo };\n }\n // REST API\n if (aws_cloud_logic_custom) {\n amplifyConfig.API = {\n ...amplifyConfig.API,\n REST: aws_cloud_logic_custom.reduce((acc, api) => {\n const { name, endpoint, region, service } = api;\n return {\n ...acc,\n [name]: {\n endpoint,\n ...(service ? { service } : undefined),\n ...(region ? { region } : undefined),\n },\n };\n }, {}),\n };\n }\n // Predictions\n if (predictions) {\n // map VoiceId from speechGenerator defaults to voiceId\n const { VoiceId: voiceId } = predictions?.convert?.speechGenerator?.defaults ?? {};\n amplifyConfig.Predictions = voiceId\n ? {\n ...predictions,\n convert: {\n ...predictions.convert,\n speechGenerator: {\n ...predictions.convert.speechGenerator,\n defaults: { voiceId },\n },\n },\n }\n : predictions;\n }\n return amplifyConfig;\n};\nexports.parseAWSExports = parseAWSExports;\nconst getRedirectUrl = (redirectStr) => redirectStr?.split(',') ?? [];\nconst getOAuthConfig = ({ domain, scope, redirectSignIn, redirectSignOut, responseType, }) => ({\n domain,\n scopes: scope,\n redirectSignIn: getRedirectUrl(redirectSignIn),\n redirectSignOut: getRedirectUrl(redirectSignOut),\n responseType,\n});\nconst parseSocialProviders = (aws_cognito_social_providers) => {\n return aws_cognito_social_providers.map((provider) => {\n const updatedProvider = provider.toLowerCase();\n return updatedProvider.charAt(0).toUpperCase() + updatedProvider.slice(1);\n });\n};\n"],"names":[],"mappings":"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"}
@@ -2,6 +2,11 @@ type AuthUser = {
2
2
  username: string;
3
3
  userId: string;
4
4
  };
5
+ type AuthError = {
6
+ name: string;
7
+ message: string;
8
+ recoverySuggestion?: string;
9
+ };
5
10
  export type AuthHubEventData =
6
11
  /** Dispatched when a user signs in with an oauth provider such as Google.*/
7
12
  {
@@ -10,6 +15,9 @@ export type AuthHubEventData =
10
15
  /** Dispatched when there is an error in the oauth flow process.*/
11
16
  | {
12
17
  event: 'signInWithRedirect_failure';
18
+ data: {
19
+ error?: AuthError;
20
+ };
13
21
  }
14
22
  /** Dispatched when auth tokens are successfully refreshed.*/
15
23
  | {
@@ -1 +1 @@
1
- export declare const version = "6.0.5";
1
+ export declare const version = "6.0.6-unstable.1c5010c.0+1c5010c";
@@ -1,5 +1,5 @@
1
1
  // generated by genversion
2
- const version = '6.0.5';
2
+ const version = '6.0.6-unstable.1c5010c.0+1c5010c';
3
3
 
4
4
  export { version };
5
5
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../src/Platform/version.ts"],"sourcesContent":["// generated by genversion\nexport const version = '6.0.5';\n"],"names":[],"mappings":"AAAA;AACY,MAAC,OAAO,GAAG;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../src/Platform/version.ts"],"sourcesContent":["// generated by genversion\nexport const version = '6.0.6-unstable.1c5010c.0+1c5010c';\n"],"names":[],"mappings":"AAAA;AACY,MAAC,OAAO,GAAG;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { CookieSerializeOptions } from 'cookie';
2
2
  export declare namespace CookieStorage {
3
- type SetCookieOptions = Pick<CookieSerializeOptions, 'domain' | 'expires' | 'httpOnly' | 'maxAge' | 'sameSite' | 'secure'>;
3
+ type SetCookieOptions = Partial<Pick<CookieSerializeOptions, 'domain' | 'expires' | 'httpOnly' | 'maxAge' | 'sameSite' | 'secure'>>;
4
4
  type Cookie = {
5
5
  name: string;
6
6
  value?: string;
@@ -28,7 +28,8 @@ const signRequest = (request, options) => {
28
28
  const credentialEntry = `Credential=${accessKeyId}/${credentialScope}`;
29
29
  const signedHeadersEntry = `SignedHeaders=${getSignedHeaders(headers)}`;
30
30
  const signatureEntry = `Signature=${signature}`;
31
- headers[AUTH_HEADER] = `${SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;
31
+ headers[AUTH_HEADER] =
32
+ `${SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;
32
33
  return requestToSign;
33
34
  };
34
35
 
@@ -1 +1 @@
1
- {"version":3,"file":"signRequest.mjs","sources":["../../../../../../../src/clients/middleware/signing/signer/signatureV4/signRequest.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getSignedHeaders } from './utils/getSignedHeaders';\nimport { getSigningValues } from './utils/getSigningValues';\nimport { AMZ_DATE_HEADER, AUTH_HEADER, HOST_HEADER, SHA256_ALGORITHM_IDENTIFIER, TOKEN_HEADER, } from './constants';\nimport { getSignature } from './utils/getSignature';\n/**\n * Given a `HttpRequest`, returns a Signature Version 4 signed `HttpRequest`.\n *\n * @param request `HttpRequest` to be signed.\n * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.\n * @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.\n */\nexport const signRequest = (request, options) => {\n const signingValues = getSigningValues(options);\n const { accessKeyId, credentialScope, longDate, sessionToken } = signingValues;\n // create the request to sign\n const headers = { ...request.headers };\n headers[HOST_HEADER] = request.url.host;\n headers[AMZ_DATE_HEADER] = longDate;\n if (sessionToken) {\n headers[TOKEN_HEADER] = sessionToken;\n }\n const requestToSign = { ...request, headers };\n // calculate and add the signature to the request\n const signature = getSignature(requestToSign, signingValues);\n const credentialEntry = `Credential=${accessKeyId}/${credentialScope}`;\n const signedHeadersEntry = `SignedHeaders=${getSignedHeaders(headers)}`;\n const signatureEntry = `Signature=${signature}`;\n headers[AUTH_HEADER] = `${SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;\n return requestToSign;\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AACjD,IAAI,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACpD,IAAI,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;AACnF;AACA,IAAI,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3C,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;AACxC,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AAC7C,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;AAClD;AACA,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACjE,IAAI,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AAC3E,IAAI,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5E,IAAI,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACpD,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,2BAA2B,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AACzH,IAAI,OAAO,aAAa,CAAC;AACzB;;;;"}
1
+ {"version":3,"file":"signRequest.mjs","sources":["../../../../../../../src/clients/middleware/signing/signer/signatureV4/signRequest.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getSignedHeaders } from './utils/getSignedHeaders';\nimport { getSigningValues } from './utils/getSigningValues';\nimport { AMZ_DATE_HEADER, AUTH_HEADER, HOST_HEADER, SHA256_ALGORITHM_IDENTIFIER, TOKEN_HEADER, } from './constants';\nimport { getSignature } from './utils/getSignature';\n/**\n * Given a `HttpRequest`, returns a Signature Version 4 signed `HttpRequest`.\n *\n * @param request `HttpRequest` to be signed.\n * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.\n * @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.\n */\nexport const signRequest = (request, options) => {\n const signingValues = getSigningValues(options);\n const { accessKeyId, credentialScope, longDate, sessionToken } = signingValues;\n // create the request to sign\n const headers = { ...request.headers };\n headers[HOST_HEADER] = request.url.host;\n headers[AMZ_DATE_HEADER] = longDate;\n if (sessionToken) {\n headers[TOKEN_HEADER] = sessionToken;\n }\n const requestToSign = { ...request, headers };\n // calculate and add the signature to the request\n const signature = getSignature(requestToSign, signingValues);\n const credentialEntry = `Credential=${accessKeyId}/${credentialScope}`;\n const signedHeadersEntry = `SignedHeaders=${getSignedHeaders(headers)}`;\n const signatureEntry = `Signature=${signature}`;\n headers[AUTH_HEADER] =\n `${SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;\n return requestToSign;\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AACjD,IAAI,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACpD,IAAI,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;AACnF;AACA,IAAI,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3C,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;AACxC,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AAC7C,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;AAClD;AACA,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACjE,IAAI,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AAC3E,IAAI,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5E,IAAI,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACpD,IAAI,OAAO,CAAC,WAAW,CAAC;AACxB,QAAQ,CAAC,EAAE,2BAA2B,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AACtG,IAAI,OAAO,aAAa,CAAC;AACzB;;;;"}
@@ -103,11 +103,11 @@ const parseAWSExports = (config = {}) => {
103
103
  ...(aws_cognito_verification_mechanisms ?? []),
104
104
  ...(aws_cognito_signup_attributes ?? []),
105
105
  ]));
106
- const userAttributesConfig = mergedUserAttributes.map((s) => ({
107
- [s.toLowerCase()]: {
108
- required: true, // All user attributes generated by the CLI will be required
109
- },
110
- }));
106
+ const userAttributes = mergedUserAttributes.reduce((attributes, key) => ({
107
+ ...attributes,
108
+ // All user attributes generated by the CLI are required
109
+ [key.toLowerCase()]: { required: true },
110
+ }), {});
111
111
  const loginWithEmailEnabled = aws_cognito_username_attributes?.includes('EMAIL') ?? false;
112
112
  const loginWithPhoneEnabled = aws_cognito_username_attributes?.includes('PHONE_NUMBER') ?? false;
113
113
  if (aws_cognito_identity_pool_id || aws_user_pools_id) {
@@ -116,7 +116,7 @@ const parseAWSExports = (config = {}) => {
116
116
  identityPoolId: aws_cognito_identity_pool_id,
117
117
  allowGuestAccess: aws_mandatory_sign_in !== 'enable',
118
118
  signUpVerificationMethod: aws_cognito_sign_up_verification_method,
119
- userAttributes: userAttributesConfig,
119
+ userAttributes,
120
120
  userPoolClientId: aws_user_pools_web_client_id,
121
121
  userPoolId: aws_user_pools_id,
122
122
  mfa: mfaConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"parseAWSExports.mjs","sources":["../../src/parseAWSExports.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from './Logger';\nconst logger = new ConsoleLogger('parseAWSExports');\nconst authTypeMapping = {\n API_KEY: 'apiKey',\n AWS_IAM: 'iam',\n AMAZON_COGNITO_USER_POOLS: 'userPool',\n OPENID_CONNECT: 'oidc',\n NONE: 'none',\n LAMBDA: 'lambda',\n};\n/**\n * This utility converts the `aws-exports.js` file generated by the Amplify CLI into a {@link ResourcesConfig} object\n * consumable by Amplify.\n *\n * @param config A configuration object from `aws-exports.js`.\n *\n * @returns A {@link ResourcesConfig} object.\n */\nexport const parseAWSExports = (config = {}) => {\n const { aws_appsync_apiKey, aws_appsync_authenticationType, aws_appsync_graphqlEndpoint, aws_appsync_region, aws_bots, aws_bots_config, aws_cognito_identity_pool_id, aws_cognito_sign_up_verification_method, aws_cognito_mfa_configuration, aws_cognito_mfa_types, aws_cognito_password_protection_settings, aws_cognito_verification_mechanisms, aws_cognito_signup_attributes, aws_cognito_social_providers, aws_cognito_username_attributes, aws_mandatory_sign_in, aws_mobile_analytics_app_id, aws_mobile_analytics_app_region, aws_user_files_s3_bucket, aws_user_files_s3_bucket_region, aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing, aws_user_pools_id, aws_user_pools_web_client_id, geo, oauth, predictions, aws_cloud_logic_custom, Notifications, modelIntrospection, } = config;\n const amplifyConfig = {};\n // Analytics\n if (aws_mobile_analytics_app_id) {\n amplifyConfig.Analytics = {\n Pinpoint: {\n appId: aws_mobile_analytics_app_id,\n region: aws_mobile_analytics_app_region,\n },\n };\n }\n // Notifications\n const { InAppMessaging, Push } = Notifications ?? {};\n if (InAppMessaging?.AWSPinpoint || Push?.AWSPinpoint) {\n if (InAppMessaging?.AWSPinpoint) {\n const { appId, region } = InAppMessaging.AWSPinpoint;\n amplifyConfig.Notifications = {\n InAppMessaging: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n if (Push?.AWSPinpoint) {\n const { appId, region } = Push.AWSPinpoint;\n amplifyConfig.Notifications = {\n PushNotification: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n }\n // Interactions\n if (Array.isArray(aws_bots_config)) {\n amplifyConfig.Interactions = {\n LexV1: Object.fromEntries(aws_bots_config.map(bot => [bot.name, bot])),\n };\n }\n // API\n if (aws_appsync_graphqlEndpoint) {\n const defaultAuthMode = authTypeMapping[aws_appsync_authenticationType];\n if (!defaultAuthMode) {\n logger.debug(`Invalid authentication type ${aws_appsync_authenticationType}. Falling back to IAM.`);\n }\n amplifyConfig.API = {\n GraphQL: {\n endpoint: aws_appsync_graphqlEndpoint,\n apiKey: aws_appsync_apiKey,\n region: aws_appsync_region,\n defaultAuthMode: defaultAuthMode ?? 'iam',\n },\n };\n if (modelIntrospection) {\n amplifyConfig.API.GraphQL.modelIntrospection = modelIntrospection;\n }\n }\n // Auth\n const mfaConfig = aws_cognito_mfa_configuration\n ? {\n status: aws_cognito_mfa_configuration &&\n aws_cognito_mfa_configuration.toLowerCase(),\n totpEnabled: aws_cognito_mfa_types?.includes('TOTP') ?? false,\n smsEnabled: aws_cognito_mfa_types?.includes('SMS') ?? false,\n }\n : undefined;\n const passwordFormatConfig = aws_cognito_password_protection_settings\n ? {\n minLength: aws_cognito_password_protection_settings.passwordPolicyMinLength,\n requireLowercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_LOWERCASE') ?? false,\n requireUppercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_UPPERCASE') ?? false,\n requireNumbers: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_NUMBERS') ?? false,\n requireSpecialCharacters: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_SYMBOLS') ?? false,\n }\n : undefined;\n const mergedUserAttributes = Array.from(new Set([\n ...(aws_cognito_verification_mechanisms ?? []),\n ...(aws_cognito_signup_attributes ?? []),\n ]));\n const userAttributesConfig = mergedUserAttributes.map((s) => ({\n [s.toLowerCase()]: {\n required: true, // All user attributes generated by the CLI will be required\n },\n }));\n const loginWithEmailEnabled = aws_cognito_username_attributes?.includes('EMAIL') ?? false;\n const loginWithPhoneEnabled = aws_cognito_username_attributes?.includes('PHONE_NUMBER') ?? false;\n if (aws_cognito_identity_pool_id || aws_user_pools_id) {\n amplifyConfig.Auth = {\n Cognito: {\n identityPoolId: aws_cognito_identity_pool_id,\n allowGuestAccess: aws_mandatory_sign_in !== 'enable',\n signUpVerificationMethod: aws_cognito_sign_up_verification_method,\n userAttributes: userAttributesConfig,\n userPoolClientId: aws_user_pools_web_client_id,\n userPoolId: aws_user_pools_id,\n mfa: mfaConfig,\n passwordFormat: passwordFormatConfig,\n loginWith: {\n username: loginWithEmailEnabled || loginWithPhoneEnabled ? false : true,\n email: loginWithEmailEnabled,\n phone: loginWithPhoneEnabled,\n },\n },\n };\n }\n const hasOAuthConfig = oauth ? Object.keys(oauth).length > 0 : false;\n const hasSocialProviderConfig = aws_cognito_social_providers\n ? aws_cognito_social_providers.length > 0\n : false;\n if (amplifyConfig.Auth && hasOAuthConfig) {\n amplifyConfig.Auth.Cognito.loginWith = {\n ...amplifyConfig.Auth.Cognito.loginWith,\n oauth: {\n ...getOAuthConfig(oauth),\n ...(hasSocialProviderConfig && {\n providers: parseSocialProviders(aws_cognito_social_providers),\n }),\n },\n };\n }\n // Storage\n if (aws_user_files_s3_bucket) {\n amplifyConfig.Storage = {\n S3: {\n bucket: aws_user_files_s3_bucket,\n region: aws_user_files_s3_bucket_region,\n dangerouslyConnectToHttpEndpointForTesting: aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing,\n },\n };\n }\n // Geo\n if (geo) {\n const { amazon_location_service } = geo;\n amplifyConfig.Geo = amazon_location_service\n ? {\n LocationService: {\n ...amazon_location_service,\n searchIndices: amazon_location_service.search_indices,\n region: amazon_location_service.region,\n },\n }\n : { ...geo };\n }\n // REST API\n if (aws_cloud_logic_custom) {\n amplifyConfig.API = {\n ...amplifyConfig.API,\n REST: aws_cloud_logic_custom.reduce((acc, api) => {\n const { name, endpoint, region, service } = api;\n return {\n ...acc,\n [name]: {\n endpoint,\n ...(service ? { service } : undefined),\n ...(region ? { region } : undefined),\n },\n };\n }, {}),\n };\n }\n // Predictions\n if (predictions) {\n // map VoiceId from speechGenerator defaults to voiceId\n const { VoiceId: voiceId } = predictions?.convert?.speechGenerator?.defaults ?? {};\n amplifyConfig.Predictions = voiceId\n ? {\n ...predictions,\n convert: {\n ...predictions.convert,\n speechGenerator: {\n ...predictions.convert.speechGenerator,\n defaults: { voiceId },\n },\n },\n }\n : predictions;\n }\n return amplifyConfig;\n};\nconst getRedirectUrl = (redirectStr) => redirectStr?.split(',') ?? [];\nconst getOAuthConfig = ({ domain, scope, redirectSignIn, redirectSignOut, responseType, }) => ({\n domain,\n scopes: scope,\n redirectSignIn: getRedirectUrl(redirectSignIn),\n redirectSignOut: getRedirectUrl(redirectSignOut),\n responseType,\n});\nconst parseSocialProviders = (aws_cognito_social_providers) => {\n return aws_cognito_social_providers.map((provider) => {\n const updatedProvider = provider.toLowerCase();\n return updatedProvider.charAt(0).toUpperCase() + updatedProvider.slice(1);\n });\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseAWSExports.mjs","sources":["../../src/parseAWSExports.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from './Logger';\nconst logger = new ConsoleLogger('parseAWSExports');\nconst authTypeMapping = {\n API_KEY: 'apiKey',\n AWS_IAM: 'iam',\n AMAZON_COGNITO_USER_POOLS: 'userPool',\n OPENID_CONNECT: 'oidc',\n NONE: 'none',\n LAMBDA: 'lambda',\n};\n/**\n * This utility converts the `aws-exports.js` file generated by the Amplify CLI into a {@link ResourcesConfig} object\n * consumable by Amplify.\n *\n * @param config A configuration object from `aws-exports.js`.\n *\n * @returns A {@link ResourcesConfig} object.\n */\nexport const parseAWSExports = (config = {}) => {\n const { aws_appsync_apiKey, aws_appsync_authenticationType, aws_appsync_graphqlEndpoint, aws_appsync_region, aws_bots, aws_bots_config, aws_cognito_identity_pool_id, aws_cognito_sign_up_verification_method, aws_cognito_mfa_configuration, aws_cognito_mfa_types, aws_cognito_password_protection_settings, aws_cognito_verification_mechanisms, aws_cognito_signup_attributes, aws_cognito_social_providers, aws_cognito_username_attributes, aws_mandatory_sign_in, aws_mobile_analytics_app_id, aws_mobile_analytics_app_region, aws_user_files_s3_bucket, aws_user_files_s3_bucket_region, aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing, aws_user_pools_id, aws_user_pools_web_client_id, geo, oauth, predictions, aws_cloud_logic_custom, Notifications, modelIntrospection, } = config;\n const amplifyConfig = {};\n // Analytics\n if (aws_mobile_analytics_app_id) {\n amplifyConfig.Analytics = {\n Pinpoint: {\n appId: aws_mobile_analytics_app_id,\n region: aws_mobile_analytics_app_region,\n },\n };\n }\n // Notifications\n const { InAppMessaging, Push } = Notifications ?? {};\n if (InAppMessaging?.AWSPinpoint || Push?.AWSPinpoint) {\n if (InAppMessaging?.AWSPinpoint) {\n const { appId, region } = InAppMessaging.AWSPinpoint;\n amplifyConfig.Notifications = {\n InAppMessaging: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n if (Push?.AWSPinpoint) {\n const { appId, region } = Push.AWSPinpoint;\n amplifyConfig.Notifications = {\n PushNotification: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n }\n // Interactions\n if (Array.isArray(aws_bots_config)) {\n amplifyConfig.Interactions = {\n LexV1: Object.fromEntries(aws_bots_config.map(bot => [bot.name, bot])),\n };\n }\n // API\n if (aws_appsync_graphqlEndpoint) {\n const defaultAuthMode = authTypeMapping[aws_appsync_authenticationType];\n if (!defaultAuthMode) {\n logger.debug(`Invalid authentication type ${aws_appsync_authenticationType}. Falling back to IAM.`);\n }\n amplifyConfig.API = {\n GraphQL: {\n endpoint: aws_appsync_graphqlEndpoint,\n apiKey: aws_appsync_apiKey,\n region: aws_appsync_region,\n defaultAuthMode: defaultAuthMode ?? 'iam',\n },\n };\n if (modelIntrospection) {\n amplifyConfig.API.GraphQL.modelIntrospection = modelIntrospection;\n }\n }\n // Auth\n const mfaConfig = aws_cognito_mfa_configuration\n ? {\n status: aws_cognito_mfa_configuration &&\n aws_cognito_mfa_configuration.toLowerCase(),\n totpEnabled: aws_cognito_mfa_types?.includes('TOTP') ?? false,\n smsEnabled: aws_cognito_mfa_types?.includes('SMS') ?? false,\n }\n : undefined;\n const passwordFormatConfig = aws_cognito_password_protection_settings\n ? {\n minLength: aws_cognito_password_protection_settings.passwordPolicyMinLength,\n requireLowercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_LOWERCASE') ?? false,\n requireUppercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_UPPERCASE') ?? false,\n requireNumbers: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_NUMBERS') ?? false,\n requireSpecialCharacters: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_SYMBOLS') ?? false,\n }\n : undefined;\n const mergedUserAttributes = Array.from(new Set([\n ...(aws_cognito_verification_mechanisms ?? []),\n ...(aws_cognito_signup_attributes ?? []),\n ]));\n const userAttributes = mergedUserAttributes.reduce((attributes, key) => ({\n ...attributes,\n // All user attributes generated by the CLI are required\n [key.toLowerCase()]: { required: true },\n }), {});\n const loginWithEmailEnabled = aws_cognito_username_attributes?.includes('EMAIL') ?? false;\n const loginWithPhoneEnabled = aws_cognito_username_attributes?.includes('PHONE_NUMBER') ?? false;\n if (aws_cognito_identity_pool_id || aws_user_pools_id) {\n amplifyConfig.Auth = {\n Cognito: {\n identityPoolId: aws_cognito_identity_pool_id,\n allowGuestAccess: aws_mandatory_sign_in !== 'enable',\n signUpVerificationMethod: aws_cognito_sign_up_verification_method,\n userAttributes,\n userPoolClientId: aws_user_pools_web_client_id,\n userPoolId: aws_user_pools_id,\n mfa: mfaConfig,\n passwordFormat: passwordFormatConfig,\n loginWith: {\n username: loginWithEmailEnabled || loginWithPhoneEnabled ? false : true,\n email: loginWithEmailEnabled,\n phone: loginWithPhoneEnabled,\n },\n },\n };\n }\n const hasOAuthConfig = oauth ? Object.keys(oauth).length > 0 : false;\n const hasSocialProviderConfig = aws_cognito_social_providers\n ? aws_cognito_social_providers.length > 0\n : false;\n if (amplifyConfig.Auth && hasOAuthConfig) {\n amplifyConfig.Auth.Cognito.loginWith = {\n ...amplifyConfig.Auth.Cognito.loginWith,\n oauth: {\n ...getOAuthConfig(oauth),\n ...(hasSocialProviderConfig && {\n providers: parseSocialProviders(aws_cognito_social_providers),\n }),\n },\n };\n }\n // Storage\n if (aws_user_files_s3_bucket) {\n amplifyConfig.Storage = {\n S3: {\n bucket: aws_user_files_s3_bucket,\n region: aws_user_files_s3_bucket_region,\n dangerouslyConnectToHttpEndpointForTesting: aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing,\n },\n };\n }\n // Geo\n if (geo) {\n const { amazon_location_service } = geo;\n amplifyConfig.Geo = amazon_location_service\n ? {\n LocationService: {\n ...amazon_location_service,\n searchIndices: amazon_location_service.search_indices,\n region: amazon_location_service.region,\n },\n }\n : { ...geo };\n }\n // REST API\n if (aws_cloud_logic_custom) {\n amplifyConfig.API = {\n ...amplifyConfig.API,\n REST: aws_cloud_logic_custom.reduce((acc, api) => {\n const { name, endpoint, region, service } = api;\n return {\n ...acc,\n [name]: {\n endpoint,\n ...(service ? { service } : undefined),\n ...(region ? { region } : undefined),\n },\n };\n }, {}),\n };\n }\n // Predictions\n if (predictions) {\n // map VoiceId from speechGenerator defaults to voiceId\n const { VoiceId: voiceId } = predictions?.convert?.speechGenerator?.defaults ?? {};\n amplifyConfig.Predictions = voiceId\n ? {\n ...predictions,\n convert: {\n ...predictions.convert,\n speechGenerator: {\n ...predictions.convert.speechGenerator,\n defaults: { voiceId },\n },\n },\n }\n : predictions;\n }\n return amplifyConfig;\n};\nconst getRedirectUrl = (redirectStr) => redirectStr?.split(',') ?? [];\nconst getOAuthConfig = ({ domain, scope, redirectSignIn, redirectSignOut, responseType, }) => ({\n domain,\n scopes: scope,\n redirectSignIn: getRedirectUrl(redirectSignIn),\n redirectSignOut: getRedirectUrl(redirectSignOut),\n responseType,\n});\nconst parseSocialProviders = (aws_cognito_social_providers) => {\n return aws_cognito_social_providers.map((provider) => {\n const updatedProvider = provider.toLowerCase();\n return updatedProvider.charAt(0).toUpperCase() + updatedProvider.slice(1);\n });\n};\n"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@ import { Headers } from '../../clients';
2
2
  import { AtLeastOne } from '../types';
3
3
  export type LibraryAPIOptions = {
4
4
  GraphQL?: {
5
- headers?: (options: {
6
- query: string;
5
+ headers?: (options?: {
6
+ query?: string;
7
7
  variables?: Record<string, DocumentType>;
8
- }) => Promise<Headers>;
8
+ }) => Promise<Headers | {}>;
9
9
  withCredentials?: boolean;
10
10
  };
11
11
  REST?: {
@@ -52,6 +52,7 @@ export type AuthTokens = {
52
52
  accessToken: JWT;
53
53
  };
54
54
  export type AuthStandardAttributeKey = 'address' | 'birthdate' | 'email_verified' | 'family_name' | 'gender' | 'given_name' | 'locale' | 'middle_name' | 'name' | 'nickname' | 'phone_number_verified' | 'picture' | 'preferred_username' | 'profile' | 'sub' | 'updated_at' | 'website' | 'zoneinfo' | AuthVerifiableAttributeKey;
55
+ export type LegacyUserAttributeKey = Uppercase<AuthStandardAttributeKey>;
55
56
  export type AuthVerifiableAttributeKey = 'email' | 'phone_number';
56
57
  export type AuthConfigUserAttributes = Partial<Record<AuthStandardAttributeKey, {
57
58
  required: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/core",
3
- "version": "6.0.5",
3
+ "version": "6.0.6-unstable.1c5010c.0+1c5010c",
4
4
  "description": "Core category of aws-amplify",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.mjs",
@@ -60,7 +60,7 @@
60
60
  "uuid": "^9.0.0"
61
61
  },
62
62
  "devDependencies": {
63
- "@aws-amplify/react-native": "1.0.5",
63
+ "@aws-amplify/react-native": "1.0.6-unstable.1c5010c.0+1c5010c",
64
64
  "@rollup/plugin-typescript": "11.1.5",
65
65
  "@types/js-cookie": "3.0.2",
66
66
  "genversion": "^2.2.0",
@@ -194,45 +194,5 @@
194
194
  ]
195
195
  }
196
196
  },
197
- "jest": {
198
- "globals": {
199
- "ts-jest": {
200
- "diagnostics": false,
201
- "tsConfig": false
202
- }
203
- },
204
- "transform": {
205
- "^.+\\.(js|jsx|ts|tsx)$": "ts-jest"
206
- },
207
- "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$",
208
- "testPathIgnorePatterns": [
209
- "/testUtils/"
210
- ],
211
- "moduleFileExtensions": [
212
- "ts",
213
- "tsx",
214
- "js",
215
- "json",
216
- "jsx"
217
- ],
218
- "setupFiles": [
219
- "./__mocks__/SessionStorage.js",
220
- "./__mocks__/LocalStorage.js"
221
- ],
222
- "testEnvironment": "jsdom",
223
- "coverageThreshold": {
224
- "global": {
225
- "branches": 0,
226
- "functions": 0,
227
- "lines": 0,
228
- "statements": 0
229
- }
230
- },
231
- "testURL": "http://localhost/",
232
- "coveragePathIgnorePatterns": [
233
- "/node_modules/",
234
- "dist"
235
- ]
236
- },
237
- "gitHead": "1c545f4a0c111245a66d489aeb01a0c0f78cf7cb"
197
+ "gitHead": "1c5010cfa02a646f88315464fa1ed8b8dc8cdc72"
238
198
  }
@@ -544,7 +544,7 @@ export abstract class StorageCacheCommon {
544
544
  * @return The remaining valid keys
545
545
  */
546
546
  private async clearInvalidAndGetRemainingKeys(): Promise<string[]> {
547
- const remainingKeys = [];
547
+ const remainingKeys: string[] = [];
548
548
  const keys = await this.getAllCacheKeys({
549
549
  omitSizeKey: true,
550
550
  });
@@ -1,4 +1,4 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- export * from './cache';
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export * from './cache';
package/src/Hub/index.ts CHANGED
@@ -51,7 +51,7 @@ export class HubClass {
51
51
  */
52
52
  private _remove<
53
53
  Channel extends AmplifyChannel | string = string,
54
- EventData extends EventDataMap = EventDataMap
54
+ EventData extends EventDataMap = EventDataMap,
55
55
  >(channel: Channel, listener: HubCallback<Channel, EventData>) {
56
56
  const holder = this.listeners.get(channel);
57
57
  if (!holder) {
@@ -89,7 +89,7 @@ export class HubClass {
89
89
 
90
90
  dispatch<
91
91
  Channel extends AmplifyChannel | string,
92
- EventData extends EventDataMap = EventDataMap
92
+ EventData extends EventDataMap = EventDataMap,
93
93
  >(
94
94
  channel: Channel | string,
95
95
  payload: HubPayload<EventData>,
@@ -134,7 +134,7 @@ export class HubClass {
134
134
  */
135
135
  listen<
136
136
  Channel extends AmplifyChannel,
137
- EventData extends EventDataMap = EventDataMap
137
+ EventData extends EventDataMap = EventDataMap,
138
138
  >(
139
139
  channel: Channel,
140
140
  callback: HubCallback<Channel, AmplifyEventData[Channel]>,
@@ -149,7 +149,7 @@ export class HubClass {
149
149
 
150
150
  listen<
151
151
  Channel extends AmplifyChannel | string = string,
152
- EventData extends EventDataMap = EventDataMap
152
+ EventData extends EventDataMap = EventDataMap,
153
153
  >(
154
154
  channel: Channel,
155
155
  callback: HubCallback<Channel, EventData>,
@@ -5,12 +5,19 @@ type AuthUser = {
5
5
  username: string;
6
6
  userId: string;
7
7
  };
8
-
8
+ type AuthError = {
9
+ name: string;
10
+ message: string;
11
+ recoverySuggestion?: string;
12
+ };
9
13
  export type AuthHubEventData =
10
14
  /** Dispatched when a user signs in with an oauth provider such as Google.*/
11
15
  | { event: 'signInWithRedirect' }
12
16
  /** Dispatched when there is an error in the oauth flow process.*/
13
- | { event: 'signInWithRedirect_failure' }
17
+ | {
18
+ event: 'signInWithRedirect_failure';
19
+ data: { error?: AuthError };
20
+ }
14
21
  /** Dispatched when auth tokens are successfully refreshed.*/
15
22
  | { event: 'tokenRefresh' }
16
23
  /** Dispatched when there is an error in the refresh of tokens.*/
@@ -5,7 +5,7 @@ import { AuthHubEventData } from './AuthTypes';
5
5
 
6
6
  export type IListener<
7
7
  Channel extends string = AmplifyChannel | string,
8
- EventData extends EventDataMap = EventDataMap
8
+ EventData extends EventDataMap = EventDataMap,
9
9
  > = {
10
10
  name: string;
11
11
  callback: HubCallback<Channel, EventData>;
@@ -23,7 +23,7 @@ export type StopListenerCallback = () => void;
23
23
 
24
24
  export type HubCapsule<
25
25
  Channel extends string,
26
- EventData extends EventDataMap
26
+ EventData extends EventDataMap,
27
27
  > = {
28
28
  channel: Channel;
29
29
  payload: HubPayload<EventData>;
@@ -33,7 +33,7 @@ export type HubCapsule<
33
33
 
34
34
  export type HubCallback<
35
35
  Channel extends string = string,
36
- EventData extends EventDataMap = EventDataMap
36
+ EventData extends EventDataMap = EventDataMap,
37
37
  > = (capsule: HubCapsule<Channel, EventData>) => void;
38
38
 
39
39
  export type HubPayload<EventData extends EventDataMap = EventDataMap> =
@@ -1,2 +1,2 @@
1
1
  // generated by genversion
2
- export const version = '6.0.5';
2
+ export const version = '6.0.6-unstable.1c5010c.0+1c5010c';
@@ -4,9 +4,11 @@
4
4
  import { CookieSerializeOptions } from 'cookie';
5
5
 
6
6
  export namespace CookieStorage {
7
- export type SetCookieOptions = Pick<
8
- CookieSerializeOptions,
9
- 'domain' | 'expires' | 'httpOnly' | 'maxAge' | 'sameSite' | 'secure'
7
+ export type SetCookieOptions = Partial<
8
+ Pick<
9
+ CookieSerializeOptions,
10
+ 'domain' | 'expires' | 'httpOnly' | 'maxAge' | 'sameSite' | 'secure'
11
+ >
10
12
  >;
11
13
 
12
14
  export type Cookie = {
@@ -9,7 +9,7 @@ export const composeServiceApi = <
9
9
  TransferHandlerOptions,
10
10
  Input,
11
11
  Output,
12
- DefaultConfig
12
+ DefaultConfig,
13
13
  >(
14
14
  transferHandler: TransferHandler<
15
15
  HttpRequest,
@@ -26,7 +26,7 @@ export const composeTransferHandler =
26
26
  Request,
27
27
  Response,
28
28
  any
29
- > = TransferHandler<Request, Response, {}>
29
+ > = TransferHandler<Request, Response, {}>,
30
30
  >(
31
31
  coreHandler: CoreHandler,
32
32
  middleware: OptionToMiddleware<Request, Response, MiddlewareOptionsArr>
@@ -56,34 +56,34 @@ export const composeTransferHandler =
56
56
  type OptionToMiddleware<
57
57
  Request extends RequestBase,
58
58
  Response extends ResponseBase,
59
- Options extends any[]
59
+ Options extends any[],
60
60
  > = Options extends []
61
61
  ? []
62
62
  : Options extends [infer LastOption]
63
- ? [Middleware<Request, Response, LastOption>]
64
- : Options extends [infer FirstOption, ...infer RestOptions]
65
- ? [
66
- Middleware<Request, Response, FirstOption>,
67
- ...OptionToMiddleware<Request, Response, RestOptions>
68
- ]
69
- : never;
63
+ ? [Middleware<Request, Response, LastOption>]
64
+ : Options extends [infer FirstOption, ...infer RestOptions]
65
+ ? [
66
+ Middleware<Request, Response, FirstOption>,
67
+ ...OptionToMiddleware<Request, Response, RestOptions>,
68
+ ]
69
+ : never;
70
70
 
71
71
  /**
72
72
  * Type to intersect multiple types if they have no conflict keys.
73
73
  */
74
74
  type MergeNoConflictKeys<Options extends any[]> = Options extends [
75
- infer OnlyOption
75
+ infer OnlyOption,
76
76
  ]
77
77
  ? OnlyOption
78
78
  : Options extends [infer FirstOption, infer SecondOption]
79
- ? FirstOption & SecondOption
80
- : Options extends [infer FirstOption, ...infer RestOptions]
81
- ? FirstOption & MergeNoConflictKeys<RestOptions>
82
- : never;
79
+ ? FirstOption & SecondOption
80
+ : Options extends [infer FirstOption, ...infer RestOptions]
81
+ ? FirstOption & MergeNoConflictKeys<RestOptions>
82
+ : never;
83
83
 
84
84
  /**
85
85
  * Type to infer the option type of a transfer handler type.
86
86
  */
87
87
  type InferOptionTypeFromTransferHandler<
88
- T extends TransferHandler<any, any, any>
88
+ T extends TransferHandler<any, any, any>,
89
89
  > = Parameters<T>[1];
@@ -109,7 +109,7 @@ const cancellableSleep = (timeoutMs: number, abortSignal?: AbortSignal) => {
109
109
  if (abortSignal?.aborted) {
110
110
  return Promise.resolve();
111
111
  }
112
- let timeoutId: number;
112
+ let timeoutId: ReturnType<typeof setTimeout>;
113
113
  let sleepPromiseResolveFn: Function;
114
114
  const sleepPromise = new Promise<void>(resolve => {
115
115
  sleepPromiseResolveFn = resolve;
@@ -43,9 +43,8 @@ export const signRequest = (
43
43
  const credentialEntry = `Credential=${accessKeyId}/${credentialScope}`;
44
44
  const signedHeadersEntry = `SignedHeaders=${getSignedHeaders(headers)}`;
45
45
  const signatureEntry = `Signature=${signature}`;
46
- headers[
47
- AUTH_HEADER
48
- ] = `${SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;
46
+ headers[AUTH_HEADER] =
47
+ `${SHA256_ALGORITHM_IDENTIFIER} ${credentialEntry}, ${signedHeadersEntry}, ${signatureEntry}`;
49
48
 
50
49
  return requestToSign;
51
50
  };
@@ -16,7 +16,7 @@ export interface Response {
16
16
  export interface TransferHandler<
17
17
  Input extends Request,
18
18
  Output extends Response,
19
- TransferOptions
19
+ TransferOptions,
20
20
  > {
21
21
  (request: Input, options: TransferOptions): Promise<Output>;
22
22
  }
@@ -49,7 +49,7 @@ type ConfiguredMiddleware<Input extends Request, Output extends Response> = (
49
49
  export type Middleware<
50
50
  Input extends Request,
51
51
  Output extends Response,
52
- MiddlewareOptions
52
+ MiddlewareOptions,
53
53
  > = (options: MiddlewareOptions) => ConfiguredMiddleware<Input, Output>;
54
54
 
55
55
  export interface Endpoint {
package/src/global.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  declare global {
5
5
  interface Window {
6
6
  FB: any;
7
- gapi: any;
7
+ gapi: any;
8
8
  }
9
9
  }
10
10
 
@@ -2,8 +2,9 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { ConsoleLogger } from './Logger';
4
4
  import {
5
- OAuthConfig,
6
5
  AuthConfigUserAttributes,
6
+ LegacyUserAttributeKey,
7
+ OAuthConfig,
7
8
  OAuthProvider,
8
9
  } from './singleton/Auth/types';
9
10
  import { ResourcesConfig } from './singleton/types';
@@ -161,17 +162,22 @@ export const parseAWSExports = (
161
162
  ) ?? false,
162
163
  }
163
164
  : undefined;
164
- const mergedUserAttributes = Array.from(
165
+ const mergedUserAttributes: LegacyUserAttributeKey[] = Array.from(
165
166
  new Set([
166
167
  ...(aws_cognito_verification_mechanisms ?? []),
167
168
  ...(aws_cognito_signup_attributes ?? []),
168
169
  ])
169
170
  );
170
- const userAttributesConfig = mergedUserAttributes.map((s: string) => ({
171
- [s.toLowerCase()]: {
172
- required: true, // All user attributes generated by the CLI will be required
173
- },
174
- })) as unknown as AuthConfigUserAttributes;
171
+
172
+ const userAttributes: AuthConfigUserAttributes = mergedUserAttributes.reduce(
173
+ (attributes: AuthConfigUserAttributes, key: LegacyUserAttributeKey) => ({
174
+ ...attributes,
175
+ // All user attributes generated by the CLI are required
176
+ [key.toLowerCase()]: { required: true },
177
+ }),
178
+ {}
179
+ );
180
+
175
181
  const loginWithEmailEnabled =
176
182
  aws_cognito_username_attributes?.includes('EMAIL') ?? false;
177
183
  const loginWithPhoneEnabled =
@@ -182,7 +188,7 @@ export const parseAWSExports = (
182
188
  identityPoolId: aws_cognito_identity_pool_id,
183
189
  allowGuestAccess: aws_mandatory_sign_in !== 'enable',
184
190
  signUpVerificationMethod: aws_cognito_sign_up_verification_method,
185
- userAttributes: userAttributesConfig,
191
+ userAttributes,
186
192
  userPoolClientId: aws_user_pools_web_client_id,
187
193
  userPoolId: aws_user_pools_id,
188
194
  mfa: mfaConfig,
@@ -6,10 +6,10 @@ import { AtLeastOne } from '../types';
6
6
  export type LibraryAPIOptions = {
7
7
  GraphQL?: {
8
8
  // custom headers for given GraphQL service. Will be applied to all operations.
9
- headers?: (options: {
10
- query: string;
9
+ headers?: (options?: {
10
+ query?: string;
11
11
  variables?: Record<string, DocumentType>;
12
- }) => Promise<Headers>;
12
+ }) => Promise<Headers | {}>;
13
13
  withCredentials?: boolean;
14
14
  };
15
15
  REST?: {
@@ -93,6 +93,9 @@ export type AuthStandardAttributeKey =
93
93
  | 'zoneinfo'
94
94
  | AuthVerifiableAttributeKey;
95
95
 
96
+ // legacy config user attribute keys are uppercase
97
+ export type LegacyUserAttributeKey = Uppercase<AuthStandardAttributeKey>;
98
+
96
99
  export type AuthVerifiableAttributeKey = 'email' | 'phone_number';
97
100
 
98
101
  export type AuthConfigUserAttributes = Partial<