From 0e837ec8241d3696680e2a011c9044643feb0bb0 Mon Sep 17 00:00:00 2001 From: Allan Zheng Date: Wed, 7 Aug 2024 17:54:11 -0700 Subject: [PATCH 01/50] chore: add ui to storage browser co-owner --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 78ed19747ec..3af1b2c1bd9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -8,6 +8,8 @@ /packages/geo @aws-amplify/amplify-js @aws-amplify/amplify-ui /packages/pubsub @aws-amplify/amplify-js @aws-amplify/amplify-data /packages/aws-amplify/package.json @aws-amplify/amplify-js-admins +packages/storage/src/storageBrowser @aws-amplify/amplify-js @aws-amplify/amplify-ui +packages/storage/storage-browser @aws-amplify/amplify-js @aws-amplify/amplify-ui /.circleci/ @aws-amplify/amplify-js @aws-amplify/amplify-devops /.github/ @aws-amplify/amplify-js-admins From 7c1ed915fbaced22e01f57016226ac2602c1319e Mon Sep 17 00:00:00 2001 From: James Jarvis Date: Mon, 19 Aug 2024 09:38:53 -0400 Subject: [PATCH 02/50] docs: update tsdocs to reduce gaps (#13700) * Update TSDoc Comments --- packages/api-rest/src/errors/CanceledError.ts | 3 +++ packages/api/src/API.ts | 3 +++ packages/core/src/singleton/Auth/utils/index.ts | 6 ++++++ packages/core/src/singleton/apis/fetchAuthSession.ts | 9 +++++++++ packages/storage/src/errors/CanceledError.ts | 2 ++ 5 files changed, 23 insertions(+) diff --git a/packages/api-rest/src/errors/CanceledError.ts b/packages/api-rest/src/errors/CanceledError.ts index ce4082212e0..67278d62a7c 100644 --- a/packages/api-rest/src/errors/CanceledError.ts +++ b/packages/api-rest/src/errors/CanceledError.ts @@ -29,6 +29,9 @@ export class CanceledError extends RestApiError { * * @note This function works **ONLY** for errors thrown by REST API. For GraphQL APIs, use `client.isCancelError(error)` * instead. `client` is generated from `generateClient()` API from `aws-amplify/api`. + * + * @param {unknown} error The unknown exception to be checked. + * @returns - A boolean indicating if the error was from an upload cancellation */ export const isCancelError = (error: unknown): error is CanceledError => !!error && error instanceof CanceledError; diff --git a/packages/api/src/API.ts b/packages/api/src/API.ts index db0559e4477..8aee0fc3334 100644 --- a/packages/api/src/API.ts +++ b/packages/api/src/API.ts @@ -6,6 +6,9 @@ import { Amplify } from '@aws-amplify/core'; /** * Generates an API client that can work with models or raw GraphQL + * + * @returns {@link V6Client} + * @throws {@link Error} - Throws error when client cannot be generated due to configuration issues. */ export function generateClient = never>( options: CommonPublicClientOptions = {}, diff --git a/packages/core/src/singleton/Auth/utils/index.ts b/packages/core/src/singleton/Auth/utils/index.ts index c710e64a1ee..496d28db68d 100644 --- a/packages/core/src/singleton/Auth/utils/index.ts +++ b/packages/core/src/singleton/Auth/utils/index.ts @@ -66,6 +66,12 @@ export function assertIdentityPoolIdConfig( ); } +/** + * Decodes payload of JWT token + * + * @param {String} token A string representing a token to be decoded + * @throws {@link Error} - Throws error when token is invalid or payload malformed. + */ export function decodeJWT(token: string): JWT { const tokenParts = token.split('.'); diff --git a/packages/core/src/singleton/apis/fetchAuthSession.ts b/packages/core/src/singleton/apis/fetchAuthSession.ts index f7e1248ae54..1e7d4aa5f04 100644 --- a/packages/core/src/singleton/apis/fetchAuthSession.ts +++ b/packages/core/src/singleton/apis/fetchAuthSession.ts @@ -6,6 +6,15 @@ import { AuthSession, FetchAuthSessionOptions } from '../Auth/types'; import { fetchAuthSession as fetchAuthSessionInternal } from './internal/fetchAuthSession'; +/** + * Fetch the auth session including the tokens and credentials if they are available. By default it + * does not refresh the auth tokens or credentials if they are loaded in storage already. You can force a refresh + * with `{ forceRefresh: true }` input. + * + * @param options - Options configuring the fetch behavior. + * @throws {@link AuthError} - Throws error when session information cannot be refreshed. + * @returns Promise + */ export const fetchAuthSession = ( options?: FetchAuthSessionOptions, ): Promise => { diff --git a/packages/storage/src/errors/CanceledError.ts b/packages/storage/src/errors/CanceledError.ts index 9388653432a..da069ab1f13 100644 --- a/packages/storage/src/errors/CanceledError.ts +++ b/packages/storage/src/errors/CanceledError.ts @@ -28,6 +28,8 @@ export class CanceledError extends StorageError { /** * Check if an error is caused by user calling `cancel()` on a upload/download task. If an overwriting error is * supplied to `task.cancel(errorOverwrite)`, this function will return `false`. + * @param {unknown} error The unknown exception to be checked. + * @returns - A boolean indicating if the error was from an upload cancellation */ export const isCancelError = (error: unknown): error is CanceledError => !!error && error instanceof CanceledError; From 6aaf4a0843ed20937a4b3d9c8fae7dc11d6d39f4 Mon Sep 17 00:00:00 2001 From: Jon Wire Date: Mon, 19 Aug 2024 10:47:08 -0500 Subject: [PATCH 03/50] chore: add docstrings on datastore type utils (#13728) * chore: update docstrings on datastore type utils * added code sample from docs to syncexpression docstring --- packages/datastore/src/types.ts | 113 ++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) diff --git a/packages/datastore/src/types.ts b/packages/datastore/src/types.ts index 75e0b9ff27e..5cd8c6085c0 100644 --- a/packages/datastore/src/types.ts +++ b/packages/datastore/src/types.ts @@ -71,10 +71,20 @@ export interface SchemaModel { syncable?: boolean; } +/** + * @private + * @param obj + * @returns `true` if the given object likely represents a model in a schema. + */ export function isSchemaModel(obj: any): obj is SchemaModel { return obj && (obj as SchemaModel).pluralName !== undefined; } +/** + * @private + * @param m + * @returns `true` if the given schema entry defines Schema Model attributes. + */ export function isSchemaModelWithAttributes( m: SchemaModel | SchemaNonModel, ): m is SchemaModel { @@ -104,6 +114,11 @@ interface AssociatedWith { targetNames?: string[]; } +/** + * @private + * @param obj + * @returns `true` if the object is an `AssociatedWith` definition. + */ export function isAssociatedWith(obj: any): obj is AssociatedWith { return obj && obj.associatedWith; } @@ -114,6 +129,11 @@ interface TargetNameAssociation { targetNames?: string[]; } +/** + * @private + * @param obj + * @returns `true` if the given object specifies either `targetName` or `targetNames`. + */ export function isTargetNameAssociation( obj: any, ): obj is TargetNameAssociation { @@ -123,6 +143,13 @@ export function isTargetNameAssociation( interface FieldAssociation { connectionType: 'HAS_ONE' | 'BELONGS_TO' | 'HAS_MANY'; } + +/** + * @private + * @param obj + * @param fieldName + * @returns Truthy if the object has a `FieldAssociation` for the given `fieldName`. + */ export function isFieldAssociation( obj: any, fieldName: string, @@ -154,6 +181,11 @@ export interface ModelAttributeAuth { }; } +/** + * @private + * @param attr + * @returns `true` if the given attribute is an auth attribute with rules. + */ export function isModelAttributeAuth( attr: ModelAttribute, ): attr is ModelAttributeAuth { @@ -189,6 +221,11 @@ interface ModelAttributeCompositeKey { }; } +/** + * @private + * @param attr + * @returns `true` if the given attribute is a key field. + */ export function isModelAttributeKey( attr: ModelAttribute, ): attr is ModelAttributeKey { @@ -200,12 +237,22 @@ export function isModelAttributeKey( ); } +/** + * @private + * @param attr + * @returns `true` if the given attribute is a primary key, indicated by the key being unnamed. + */ export function isModelAttributePrimaryKey( attr: ModelAttribute, ): attr is ModelAttributePrimaryKey { return isModelAttributeKey(attr) && attr.properties.name === undefined; } +/** + * @private + * @param attr + * @returns `true` if the given attribute represents a composite key with multiple fields. + */ export function isModelAttributeCompositeKey( attr: ModelAttribute, ): attr is ModelAttributeCompositeKey { @@ -334,6 +381,10 @@ export interface AuthorizationRule { areSubscriptionsPublic: boolean; } +/** + * @private + * @returns `true` if the given field specifies a scalar type. + */ export function isGraphQLScalarType( obj: any, ): obj is keyof Omit< @@ -347,6 +398,12 @@ export interface ModelFieldType { model: string; modelConstructor?: ModelMeta; } + +/** + * @private + * @param obj + * @returns `true` if the given field specifies a Model. + */ export function isModelFieldType<_ extends PersistentModel>( obj: any, ): obj is ModelFieldType { @@ -359,6 +416,12 @@ export function isModelFieldType<_ extends PersistentModel>( export interface NonModelFieldType { nonModel: string; } + +/** + * @private + * @param obj + * @returns `true` if the given field specifies a custom non-model type. + */ export function isNonModelFieldType(obj: any): obj is NonModelFieldType { const typeField: keyof NonModelFieldType = 'nonModel'; if (obj && obj[typeField]) return true; @@ -369,6 +432,12 @@ export function isNonModelFieldType(obj: any): obj is NonModelFieldType { interface EnumFieldType { enum: string; } + +/** + * @private + * @param obj + * @returns `true` if the object is an `EnumFieldType`. + */ export function isEnumFieldType(obj: any): obj is EnumFieldType { const modelField: keyof EnumFieldType = 'enum'; if (obj && obj[modelField]) return true; @@ -648,6 +717,12 @@ export type IdentifierFieldOrIdentifierObject< M extends PersistentModelMetaData, > = Pick> | IdentifierFieldValue; +/** + * @private + * @param obj + * @param modelDefinition + * @returns `true` if the given item is an object that has all identifier fields populated. + */ export function isIdentifierObject( obj: any, modelDefinition: SchemaModel, @@ -772,12 +847,22 @@ export interface PredicatesGroup { predicates: (PredicateObject | PredicatesGroup)[]; } +/** + * @private + * @param obj + * @returns `true` if the given predicate field object, specifying an [in-]equality test against a field. + */ export function isPredicateObj( obj: any, ): obj is PredicateObject { return obj && (obj as PredicateObject).field !== undefined; } +/** + * @private + * @param obj + * @returns `true` if the given predicate object is a "group" like "and", "or", or "not". + */ export function isPredicateGroup( obj: any, ): obj is PredicatesGroup { @@ -1032,6 +1117,34 @@ type ConditionProducer> = ( ...args: A ) => A['length'] extends keyof Lookup ? Lookup[A['length']] : never; +/** + * Build an expression that can be used to filter which items of a given Model + * are synchronized down from the GraphQL service. E.g., + * + * ```ts + * import { DataStore, syncExpression } from 'aws-amplify/datastore'; + * import { Post, Comment } from './models'; + * + * + * DataStore.configure({ + * syncExpressions: [ + * syncExpression(Post, () => { + * return (post) => post.rating.gt(5); + * }), + * syncExpression(Comment, () => { + * return (comment) => comment.status.eq('active'); + * }) + * ] + * }); + * ``` + * + * When DataStore starts syncing, only Posts with `rating > 5` and Comments with + * `status === 'active'` will be synced down to the user's local store. + * + * @param modelConstructor The Model from the schema. + * @param conditionProducer A function that builds a condition object that can describe how to filter the model. + * @returns An sync expression object that can be attached to the DataStore `syncExpressions` configuration property. + */ export async function syncExpression< T extends PersistentModel, A extends Option, From 5224dc2e2f8ecea388c7bbb3d65ad5866d246db3 Mon Sep 17 00:00:00 2001 From: Joon Choi Date: Mon, 19 Aug 2024 12:54:16 -0700 Subject: [PATCH 04/50] chore: show underlying errors in fetch / xhr (#13687) * Modified API / XHR error to include underlying errors --------- Co-authored-by: JoonWon Choi --- .../api-rest/src/apis/common/internalPost.ts | 2 +- packages/aws-amplify/package.json | 26 +++++++++---------- packages/core/package.json | 4 +-- packages/core/src/clients/handlers/fetch.ts | 11 +++++--- packages/core/src/errors/errorHelpers.ts | 3 +++ packages/core/src/types/errors.ts | 1 + .../client/runtime/xhrTransferHandler.ts | 9 ++++--- 7 files changed, 32 insertions(+), 24 deletions(-) diff --git a/packages/api-rest/src/apis/common/internalPost.ts b/packages/api-rest/src/apis/common/internalPost.ts index 835c3581d56..574e5eb3da8 100644 --- a/packages/api-rest/src/apis/common/internalPost.ts +++ b/packages/api-rest/src/apis/common/internalPost.ts @@ -46,7 +46,7 @@ const cancelTokenMap = new WeakMap, AbortController>(); * @param postInput.abortController The abort controller used to cancel the POST request * @returns a {@link RestApiResponse} * - * @throws an {@link Error} with `Network error` as the `message` when the external resource is unreachable due to one + * @throws an {@link AmplifyError} with `Network Error` as the `message` when the external resource is unreachable due to one * of the following reasons: * 1. no network connection * 2. CORS error diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 8508cc83082..c23c9eae63b 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -293,7 +293,7 @@ "name": "[Analytics] record (Pinpoint)", "path": "./dist/esm/analytics/index.mjs", "import": "{ record }", - "limit": "17.18 kB" + "limit": "17.25 kB" }, { "name": "[Analytics] record (Kinesis)", @@ -317,7 +317,7 @@ "name": "[Analytics] identifyUser (Pinpoint)", "path": "./dist/esm/analytics/index.mjs", "import": "{ identifyUser }", - "limit": "15.68 kB" + "limit": "15.75 kB" }, { "name": "[Analytics] enable", @@ -353,13 +353,13 @@ "name": "[Auth] resetPassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ resetPassword }", - "limit": "12.53 kB" + "limit": "12.55 kB" }, { "name": "[Auth] confirmResetPassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmResetPassword }", - "limit": "12.47 kB" + "limit": "12.50 kB" }, { "name": "[Auth] signIn (Cognito)", @@ -371,7 +371,7 @@ "name": "[Auth] resendSignUpCode (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ resendSignUpCode }", - "limit": "12.49 kB" + "limit": "12.50 kB" }, { "name": "[Auth] confirmSignUp (Cognito)", @@ -389,19 +389,19 @@ "name": "[Auth] updateMFAPreference (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updateMFAPreference }", - "limit": "11.83 kB" + "limit": "11.85 kB" }, { "name": "[Auth] fetchMFAPreference (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ fetchMFAPreference }", - "limit": "11.86 kB" + "limit": "11.90 kB" }, { "name": "[Auth] verifyTOTPSetup (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ verifyTOTPSetup }", - "limit": "12.71 kB" + "limit": "12.75 kB" }, { "name": "[Auth] updatePassword (Cognito)", @@ -419,7 +419,7 @@ "name": "[Auth] updateUserAttributes (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updateUserAttributes }", - "limit": "11.95 kB" + "limit": "12.00 kB" }, { "name": "[Auth] getCurrentUser (Cognito)", @@ -431,7 +431,7 @@ "name": "[Auth] confirmUserAttribute (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmUserAttribute }", - "limit": "12.71 kB" + "limit": "12.75 kB" }, { "name": "[Auth] signInWithRedirect (Cognito)", @@ -443,7 +443,7 @@ "name": "[Auth] fetchUserAttributes (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ fetchUserAttributes }", - "limit": "11.77 kB" + "limit": "11.80 kB" }, { "name": "[Auth] Basic Auth Flow (Cognito)", @@ -479,7 +479,7 @@ "name": "[Storage] getUrl (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ getUrl }", - "limit": "15.90 kB" + "limit": "15.95 kB" }, { "name": "[Storage] list (S3)", @@ -497,7 +497,7 @@ "name": "[Storage] uploadData (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ uploadData }", - "limit": "19.90 kB" + "limit": "19.95 kB" } ] } diff --git a/packages/core/package.json b/packages/core/package.json index 4fdbe7c02df..5c34ecc05be 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -82,13 +82,13 @@ "name": "Custom clients (fetch handler)", "path": "./dist/esm/clients/handlers/fetch.mjs", "import": "{ fetchTransferHandler }", - "limit": "500 B" + "limit": "575 B" }, { "name": "Custom clients (unauthenticated handler)", "path": "./dist/esm/clients/handlers/unauthenticated.mjs", "import": "{ unauthenticatedHandler }", - "limit": "1 kB" + "limit": "1.15 kB" }, { "name": "Custom clients (request signer)", diff --git a/packages/core/src/clients/handlers/fetch.ts b/packages/core/src/clients/handlers/fetch.ts index be8e5ac9520..30a37f210e2 100644 --- a/packages/core/src/clients/handlers/fetch.ts +++ b/packages/core/src/clients/handlers/fetch.ts @@ -3,7 +3,9 @@ import { HttpRequest, HttpResponse, HttpTransferOptions } from '../types/http'; import { TransferHandler } from '../types/core'; +import { AmplifyError } from '../../errors'; import { withMemoization } from '../utils/memoization'; +import { AmplifyErrorCode } from '../../types'; const shouldSendBody = (method: string) => !['HEAD', 'GET', 'DELETE'].includes(method.toUpperCase()); @@ -28,11 +30,12 @@ export const fetchTransferHandler: TransferHandler< credentials: withCrossDomainCredentials ? 'include' : 'same-origin', }); } catch (e) { - // TODO: needs to revise error handling in v6 - // For now this is a thin wrapper over original fetch error similar to cognito-identity-js package. - // Ref: https://github.com/aws-amplify/amplify-js/blob/4fbc8c0a2be7526aab723579b4c95b552195a80b/packages/amazon-cognito-identity-js/src/Client.js#L103-L108 if (e instanceof TypeError) { - throw new Error('Network error'); + throw new AmplifyError({ + name: AmplifyErrorCode.NetworkError, + message: 'A network error has occurred.', + underlyingError: e, + }); } throw e; } diff --git a/packages/core/src/errors/errorHelpers.ts b/packages/core/src/errors/errorHelpers.ts index a343c51f3f2..cb78f5534c9 100644 --- a/packages/core/src/errors/errorHelpers.ts +++ b/packages/core/src/errors/errorHelpers.ts @@ -15,6 +15,9 @@ const amplifyErrorMap: AmplifyErrorMap = { [AmplifyErrorCode.Unknown]: { message: 'An unknown error occurred.', }, + [AmplifyErrorCode.NetworkError]: { + message: 'A network error has occurred.', + }, }; export const assert: AssertionFunction = diff --git a/packages/core/src/types/errors.ts b/packages/core/src/types/errors.ts index 19ecec76935..3401616074f 100644 --- a/packages/core/src/types/errors.ts +++ b/packages/core/src/types/errors.ts @@ -5,6 +5,7 @@ export enum AmplifyErrorCode { NoEndpointId = 'NoEndpointId', PlatformNotSupported = 'PlatformNotSupported', Unknown = 'Unknown', + NetworkError = 'NetworkError', } export interface AmplifyErrorParams { diff --git a/packages/storage/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts b/packages/storage/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts index 371b4d8efa6..eabb0865e04 100644 --- a/packages/storage/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts +++ b/packages/storage/src/providers/s3/utils/client/runtime/xhrTransferHandler.ts @@ -12,6 +12,7 @@ import { ConsoleLogger } from '@aws-amplify/core'; import { TransferProgressEvent } from '../../../../../types/common'; import { CanceledError } from '../../../../../errors/CanceledError'; +import { StorageError } from '../../../../../errors/StorageError'; import { ABORT_ERROR_CODE, @@ -80,10 +81,10 @@ export const xhrTransferHandler: TransferHandler< } xhr.addEventListener('error', () => { - const networkError = buildHandlerError( - NETWORK_ERROR_MESSAGE, - NETWORK_ERROR_CODE, - ); + const networkError = new StorageError({ + message: NETWORK_ERROR_MESSAGE, + name: NETWORK_ERROR_CODE, + }); logger.error(NETWORK_ERROR_MESSAGE); reject(networkError); xhr = null; // clean up request From fecc7efd75e9cb7c7bd539f84d79ebb8d995d9b4 Mon Sep 17 00:00:00 2001 From: israx <70438514+israx@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:32:29 -0400 Subject: [PATCH 05/50] release(required): add oauth metadata to tokenOrchestrator * chore: enable subdomains e2e test * chore(auth): add oauth metadata into token orchestrator (#13712) * chore: add oauth metadata into token orchestrator * chore: add unit tests * chore: address feedback --- .github/integ-config/integ-all.yml | 7 ++++++ .../providers/cognito/signOut.test.ts | 1 + .../cognito/tokenOrchestrator.test.ts | 2 ++ .../tokenProvider/tokenOrchestrator.test.ts | 2 ++ .../utils/oauth/completeOAuthFlow.test.ts | 1 + .../utils/oauth/handleOAuthSignOut.test.ts | 24 +++++++++++++++++-- .../src/providers/cognito/apis/signOut.ts | 6 ++++- .../tokenProvider/TokenOrchestrator.ts | 9 +++++++ .../cognito/tokenProvider/TokenStore.ts | 18 ++++++++++++++ .../providers/cognito/tokenProvider/types.ts | 9 +++++++ .../cognito/utils/oauth/completeOAuthFlow.ts | 4 ++++ .../cognito/utils/oauth/handleOAuthSignOut.ts | 11 ++++++++- 12 files changed, 90 insertions(+), 4 deletions(-) diff --git a/.github/integ-config/integ-all.yml b/.github/integ-config/integ-all.yml index 8799414102f..00c0f3bf598 100644 --- a/.github/integ-config/integ-all.yml +++ b/.github/integ-config/integ-all.yml @@ -595,6 +595,13 @@ tests: sample_name: [sign-in-with-oauth] spec: sign-in-with-oauth browser: [chrome] + - test_name: subdomain_authentication + desc: 'Sign-in with the OAuth flow and subdomains' + framework: next + category: auth + sample_name: [subdomains] + spec: subdomains + browser: [chrome] # DISABLED Angular/Vue tests: # TODO: delete tests or add custom ui logic to support them. diff --git a/packages/auth/__tests__/providers/cognito/signOut.test.ts b/packages/auth/__tests__/providers/cognito/signOut.test.ts index adae8c494cc..e7003463f4e 100644 --- a/packages/auth/__tests__/providers/cognito/signOut.test.ts +++ b/packages/auth/__tests__/providers/cognito/signOut.test.ts @@ -220,6 +220,7 @@ describe('signOut', () => { expect(mockHandleOAuthSignOut).toHaveBeenCalledWith( cognitoConfigWithOauth, mockDefaultOAuthStoreInstance, + mockTokenOrchestrator, ); // In cases of OAuth, token removal and Hub dispatch should be performed by the OAuth handling since // these actions can be deferred or canceled out of altogether. diff --git a/packages/auth/__tests__/providers/cognito/tokenOrchestrator.test.ts b/packages/auth/__tests__/providers/cognito/tokenOrchestrator.test.ts index 5a31dbf0c74..8906d8d7eed 100644 --- a/packages/auth/__tests__/providers/cognito/tokenOrchestrator.test.ts +++ b/packages/auth/__tests__/providers/cognito/tokenOrchestrator.test.ts @@ -25,6 +25,8 @@ const mockAuthTokenStore = { setKeyValueStorage: jest.fn(), getDeviceMetadata: jest.fn(), clearDeviceMetadata: jest.fn(), + setOAuthMetadata: jest.fn(), + getOAuthMetadata: jest.fn(), }; const mockTokenRefresher = jest.fn(); const validAuthConfig: ResourcesConfig = { diff --git a/packages/auth/__tests__/providers/cognito/tokenProvider/tokenOrchestrator.test.ts b/packages/auth/__tests__/providers/cognito/tokenProvider/tokenOrchestrator.test.ts index e1c25ec86f7..c0853b51f23 100644 --- a/packages/auth/__tests__/providers/cognito/tokenProvider/tokenOrchestrator.test.ts +++ b/packages/auth/__tests__/providers/cognito/tokenProvider/tokenOrchestrator.test.ts @@ -24,6 +24,8 @@ describe('tokenOrchestrator', () => { setKeyValueStorage: jest.fn(), getDeviceMetadata: jest.fn(), clearDeviceMetadata: jest.fn(), + getOAuthMetadata: jest.fn(), + setOAuthMetadata: jest.fn(), }; beforeAll(() => { diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/completeOAuthFlow.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/completeOAuthFlow.test.ts index 78e95120977..8d62c014a94 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/completeOAuthFlow.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/completeOAuthFlow.test.ts @@ -13,6 +13,7 @@ import { AuthErrorTypes } from '../../../../../src/types/Auth'; import { OAuthStore } from '../../../../../src/providers/cognito/utils/types'; import { completeOAuthFlow } from '../../../../../src/providers/cognito/utils/oauth/completeOAuthFlow'; +jest.mock('../../../../../src/providers/cognito/tokenProvider'); jest.mock('@aws-amplify/core', () => ({ Hub: { dispatch: jest.fn(), diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts index f6fab30158f..1ce83d076ed 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import { TokenOrchestrator } from '../../../../../src/providers/cognito'; import { completeOAuthSignOut } from '../../../../../src/providers/cognito/utils/oauth/completeOAuthSignOut'; import { handleOAuthSignOut } from '../../../../../src/providers/cognito/utils/oauth/handleOAuthSignOut'; import { oAuthSignOutRedirect } from '../../../../../src/providers/cognito/utils/oauth/oAuthSignOutRedirect'; @@ -12,6 +13,7 @@ jest.mock( jest.mock( '../../../../../src/providers/cognito/utils/oauth/oAuthSignOutRedirect', ); +jest.mock('../../../../../src/providers/cognito/tokenProvider'); describe('handleOAuthSignOut', () => { const region = 'us-west-2'; @@ -27,9 +29,13 @@ describe('handleOAuthSignOut', () => { const mockStore = { loadOAuthSignIn: jest.fn(), } as unknown as jest.Mocked; + const mockTokenOrchestrator = { + getOAuthMetadata: jest.fn(), + } as unknown as jest.Mocked; afterEach(() => { mockStore.loadOAuthSignIn.mockReset(); + mockTokenOrchestrator.getOAuthMetadata.mockReset(); mockCompleteOAuthSignOut.mockClear(); mockOAuthSignOutRedirect.mockClear(); }); @@ -39,7 +45,21 @@ describe('handleOAuthSignOut', () => { isOAuthSignIn: true, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut(cognitoConfig, mockStore, mockTokenOrchestrator); + + expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); + expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith(cognitoConfig); + }); + + it('should complete OAuth sign out and redirect when there oauth metadata in tokenOrchestrator', async () => { + mockTokenOrchestrator.getOAuthMetadata.mockResolvedValue({ + oauthSignIn: true, + }); + mockStore.loadOAuthSignIn.mockResolvedValue({ + isOAuthSignIn: false, + preferPrivateSession: false, + }); + await handleOAuthSignOut(cognitoConfig, mockStore, mockTokenOrchestrator); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith(cognitoConfig); @@ -50,7 +70,7 @@ describe('handleOAuthSignOut', () => { isOAuthSignIn: false, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut(cognitoConfig, mockStore, mockTokenOrchestrator); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); expect(mockOAuthSignOutRedirect).not.toHaveBeenCalled(); diff --git a/packages/auth/src/providers/cognito/apis/signOut.ts b/packages/auth/src/providers/cognito/apis/signOut.ts index 65be0162927..fc98d3957f4 100644 --- a/packages/auth/src/providers/cognito/apis/signOut.ts +++ b/packages/auth/src/providers/cognito/apis/signOut.ts @@ -65,7 +65,11 @@ export async function signOut(input?: SignOutInput): Promise { const oAuthStore = new DefaultOAuthStore(defaultStorage); oAuthStore.setAuthConfig(cognitoConfig); const { type } = - (await handleOAuthSignOut(cognitoConfig, oAuthStore)) ?? {}; + (await handleOAuthSignOut( + cognitoConfig, + oAuthStore, + tokenOrchestrator, + )) ?? {}; if (type === 'error') { throw new AuthError({ name: OAUTH_SIGNOUT_EXCEPTION, diff --git a/packages/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts b/packages/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts index 0e16a021969..121875013e2 100644 --- a/packages/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts +++ b/packages/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts @@ -25,6 +25,7 @@ import { AuthTokenStore, CognitoAuthTokens, DeviceMetadata, + OAuthMetadata, TokenRefresher, } from './types'; @@ -203,4 +204,12 @@ export class TokenOrchestrator implements AuthTokenOrchestrator { clearDeviceMetadata(username?: string): Promise { return this.getTokenStore().clearDeviceMetadata(username); } + + setOAuthMetadata(metadata: OAuthMetadata): Promise { + return this.getTokenStore().setOAuthMetadata(metadata); + } + + getOAuthMetadata(): Promise { + return this.getTokenStore().getOAuthMetadata(); + } } diff --git a/packages/auth/src/providers/cognito/tokenProvider/TokenStore.ts b/packages/auth/src/providers/cognito/tokenProvider/TokenStore.ts index 53ac3228d85..74d6b9400c6 100644 --- a/packages/auth/src/providers/cognito/tokenProvider/TokenStore.ts +++ b/packages/auth/src/providers/cognito/tokenProvider/TokenStore.ts @@ -14,6 +14,7 @@ import { AuthTokenStore, CognitoAuthTokens, DeviceMetadata, + OAuthMetadata, } from './types'; import { TokenProviderErrorCode, assert } from './errorHelpers'; @@ -163,6 +164,7 @@ export class DefaultTokenStore implements AuthTokenStore { this.getKeyValueStorage().removeItem(authKeys.refreshToken), this.getKeyValueStorage().removeItem(authKeys.signInDetails), this.getKeyValueStorage().removeItem(this.getLastAuthUserKey()), + this.getKeyValueStorage().removeItem(authKeys.oauthMetadata), ]); } @@ -222,6 +224,22 @@ export class DefaultTokenStore implements AuthTokenStore { return lastAuthUser; } + + async setOAuthMetadata(metadata: OAuthMetadata): Promise { + const { oauthMetadata: oauthMetadataKey } = await this.getAuthKeys(); + await this.getKeyValueStorage().setItem( + oauthMetadataKey, + JSON.stringify(metadata), + ); + } + + async getOAuthMetadata(): Promise { + const { oauthMetadata: oauthMetadataKey } = await this.getAuthKeys(); + const oauthMetadata = + await this.getKeyValueStorage().getItem(oauthMetadataKey); + + return oauthMetadata && JSON.parse(oauthMetadata); + } } export const createKeysForAuthStorage = ( diff --git a/packages/auth/src/providers/cognito/tokenProvider/types.ts b/packages/auth/src/providers/cognito/tokenProvider/types.ts index f58483a334b..5db7c62f012 100644 --- a/packages/auth/src/providers/cognito/tokenProvider/types.ts +++ b/packages/auth/src/providers/cognito/tokenProvider/types.ts @@ -34,6 +34,7 @@ export const AuthTokenStorageKeys = { randomPasswordKey: 'randomPasswordKey', deviceGroupKey: 'deviceGroupKey', signInDetails: 'signInDetails', + oauthMetadata: 'oauthMetadata', }; export interface AuthTokenStore { @@ -44,6 +45,8 @@ export interface AuthTokenStore { setKeyValueStorage(keyValueStorage: KeyValueStorageInterface): void; getDeviceMetadata(username?: string): Promise; clearDeviceMetadata(username?: string): Promise; + setOAuthMetadata(metadata: OAuthMetadata): Promise; + getOAuthMetadata(): Promise; } export interface AuthTokenOrchestrator { @@ -58,6 +61,8 @@ export interface AuthTokenOrchestrator { clearTokens(): Promise; getDeviceMetadata(username?: string): Promise; clearDeviceMetadata(username?: string): Promise; + setOAuthMetadata(metadata: OAuthMetadata): Promise; + getOAuthMetadata(): Promise; } export interface CognitoUserPoolTokenProviderType extends TokenProvider { @@ -78,3 +83,7 @@ export interface DeviceMetadata { deviceGroupKey?: string; randomPassword: string; } + +export interface OAuthMetadata { + oauthSignIn: boolean; +} diff --git a/packages/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts b/packages/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts index d9ebc5976a8..f374ed98156 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts @@ -11,6 +11,7 @@ import { Hub, decodeJWT } from '@aws-amplify/core'; import { cacheCognitoTokens } from '../../tokenProvider/cacheTokens'; import { dispatchSignedInHubEvent } from '../dispatchSignedInHubEvent'; +import { tokenOrchestrator } from '../../tokenProvider'; import { createOAuthError } from './createOAuthError'; import { resolveAndClearInflightPromises } from './inflightPromise'; @@ -227,6 +228,9 @@ const completeFlow = async ({ redirectUri: string; state: string; }) => { + await tokenOrchestrator.setOAuthMetadata({ + oauthSignIn: true, + }); await oAuthStore.clearOAuthData(); await oAuthStore.storeOAuthSignIn(true, preferPrivateSession); diff --git a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts index 0e16008e752..ecb09f23bc5 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts @@ -5,6 +5,7 @@ import { CognitoUserPoolConfig } from '@aws-amplify/core'; import { OpenAuthSessionResult } from '../../../../utils/types'; import { DefaultOAuthStore } from '../../utils/signInWithRedirectStore'; +import { TokenOrchestrator } from '../../tokenProvider'; import { completeOAuthSignOut } from './completeOAuthSignOut'; import { oAuthSignOutRedirect } from './oAuthSignOutRedirect'; @@ -12,14 +13,22 @@ import { oAuthSignOutRedirect } from './oAuthSignOutRedirect'; export const handleOAuthSignOut = async ( cognitoConfig: CognitoUserPoolConfig, store: DefaultOAuthStore, + tokenOrchestrator: TokenOrchestrator, ): Promise => { const { isOAuthSignIn } = await store.loadOAuthSignIn(); + const oauthMetadata = await tokenOrchestrator.getOAuthMetadata(); // Clear everything before attempting to visted logout endpoint since the current application // state could be wiped away on redirect await completeOAuthSignOut(store); - if (isOAuthSignIn) { + // The isOAuthSignIn flag is propagated by the oAuthToken store which manages oauth keys in local storage only. + // These keys are used to determine if a user is in an inflight or signedIn oauth states. + // However, this behavior represents an issue when 2 apps share the same set of tokens in Cookie storage because the app that didn't + // start the OAuth will not have access to the oauth keys. + // A heuristic solution is to add oauth metadata to the tokenOrchestrator which will have access to the underlying + // storage mechanism that is used by Amplify. + if (isOAuthSignIn || oauthMetadata?.oauthSignIn) { // On web, this will always end up being a void action return oAuthSignOutRedirect(cognitoConfig); } From 8cdf1de257b2a52802239b3df39c23f271a64fc5 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Wed, 21 Aug 2024 22:11:41 +0000 Subject: [PATCH 06/50] chore(release): Set core metadata [skip release] --- packages/core/metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/metadata b/packages/core/metadata index 041bf1756dc..e578420b0b9 100644 --- a/packages/core/metadata +++ b/packages/core/metadata @@ -1 +1 @@ -2258de69f +fecc7efd7 From 733c3bd722f06b87f674736cc3f997d6ba5addda Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Wed, 21 Aug 2024 22:11:55 +0000 Subject: [PATCH 07/50] chore(release): Publish [skip release] - @aws-amplify/adapter-nextjs@1.2.14 - @aws-amplify/analytics@7.0.44 - @aws-amplify/api@6.0.46 - @aws-amplify/api-graphql@4.1.15 - @aws-amplify/api-rest@4.0.44 - @aws-amplify/auth@6.3.15 - aws-amplify@6.5.2 - @aws-amplify/core@6.3.11 - @aws-amplify/datastore@5.0.46 - @aws-amplify/datastore-storage-adapter@2.1.46 - @aws-amplify/geo@3.0.44 - @aws-amplify/interactions@6.0.43 - @aws-amplify/notifications@2.0.44 - @aws-amplify/predictions@6.1.19 - @aws-amplify/pubsub@6.1.19 - @aws-amplify/storage@6.6.2 - tsc-compliance-test@0.1.49 --- packages/adapter-nextjs/CHANGELOG.md | 4 ++++ packages/adapter-nextjs/package.json | 4 ++-- packages/analytics/CHANGELOG.md | 4 ++++ packages/analytics/package.json | 4 ++-- packages/api-graphql/CHANGELOG.md | 4 ++++ packages/api-graphql/package.json | 6 +++--- packages/api-rest/CHANGELOG.md | 4 ++++ packages/api-rest/package.json | 4 ++-- packages/api/CHANGELOG.md | 4 ++++ packages/api/package.json | 6 +++--- packages/auth/CHANGELOG.md | 4 ++++ packages/auth/package.json | 4 ++-- packages/aws-amplify/CHANGELOG.md | 4 ++++ packages/aws-amplify/package.json | 16 ++++++++-------- packages/core/CHANGELOG.md | 4 ++++ packages/core/package.json | 2 +- packages/datastore-storage-adapter/CHANGELOG.md | 4 ++++ packages/datastore-storage-adapter/package.json | 6 +++--- packages/datastore/CHANGELOG.md | 4 ++++ packages/datastore/package.json | 6 +++--- packages/geo/CHANGELOG.md | 4 ++++ packages/geo/package.json | 4 ++-- packages/interactions/CHANGELOG.md | 4 ++++ packages/interactions/package.json | 4 ++-- packages/notifications/CHANGELOG.md | 4 ++++ packages/notifications/package.json | 4 ++-- packages/predictions/CHANGELOG.md | 4 ++++ packages/predictions/package.json | 6 +++--- packages/pubsub/CHANGELOG.md | 4 ++++ packages/pubsub/package.json | 6 +++--- packages/storage/CHANGELOG.md | 4 ++++ packages/storage/package.json | 4 ++-- scripts/tsc-compliance-test/CHANGELOG.md | 4 ++++ scripts/tsc-compliance-test/package.json | 4 ++-- 34 files changed, 113 insertions(+), 45 deletions(-) diff --git a/packages/adapter-nextjs/CHANGELOG.md b/packages/adapter-nextjs/CHANGELOG.md index e75880a7435..f182cbcffd2 100644 --- a/packages/adapter-nextjs/CHANGELOG.md +++ b/packages/adapter-nextjs/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.14](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.13...@aws-amplify/adapter-nextjs@1.2.14) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/adapter-nextjs + ## [1.2.13](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.12...@aws-amplify/adapter-nextjs@1.2.13) (2024-08-15) **Note:** Version bump only for package @aws-amplify/adapter-nextjs diff --git a/packages/adapter-nextjs/package.json b/packages/adapter-nextjs/package.json index fda15ce00f9..cc5745b3c96 100644 --- a/packages/adapter-nextjs/package.json +++ b/packages/adapter-nextjs/package.json @@ -1,7 +1,7 @@ { "author": "Amazon Web Services", "name": "@aws-amplify/adapter-nextjs", - "version": "1.2.13", + "version": "1.2.14", "description": "The adapter for the supporting of using Amplify APIs in Next.js.", "peerDependencies": { "aws-amplify": "^6.0.7", @@ -16,7 +16,7 @@ "@types/node": "^20.3.1", "@types/react": "^18.2.13", "@types/react-dom": "^18.2.6", - "aws-amplify": "6.5.1", + "aws-amplify": "6.5.2", "jest-fetch-mock": "3.0.3", "next": ">= 13.5.0 < 15.0.0", "typescript": "5.0.2" diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md index 548488213f2..7223ad1a287 100644 --- a/packages/analytics/CHANGELOG.md +++ b/packages/analytics/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.43...@aws-amplify/analytics@7.0.44) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/analytics + ## [7.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.42...@aws-amplify/analytics@7.0.43) (2024-08-15) **Note:** Version bump only for package @aws-amplify/analytics diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 4f18a70955d..4680b5bb5d8 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/analytics", - "version": "7.0.43", + "version": "7.0.44", "description": "Analytics category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -103,7 +103,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "@aws-amplify/react-native": "1.1.4", "@aws-sdk/types": "3.398.0", "typescript": "5.0.2" diff --git a/packages/api-graphql/CHANGELOG.md b/packages/api-graphql/CHANGELOG.md index 8d4f758aff9..4575bf65bd2 100644 --- a/packages/api-graphql/CHANGELOG.md +++ b/packages/api-graphql/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.1.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.1.14...@aws-amplify/api-graphql@4.1.15) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/api-graphql + ## [4.1.14](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.1.13...@aws-amplify/api-graphql@4.1.14) (2024-08-15) **Note:** Version bump only for package @aws-amplify/api-graphql diff --git a/packages/api-graphql/package.json b/packages/api-graphql/package.json index e8dd4c108e5..4ba9ce54ea8 100644 --- a/packages/api-graphql/package.json +++ b/packages/api-graphql/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api-graphql", - "version": "4.1.14", + "version": "4.1.15", "description": "Api-graphql category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -84,8 +84,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-rest": "4.0.43", - "@aws-amplify/core": "6.3.10", + "@aws-amplify/api-rest": "4.0.44", + "@aws-amplify/core": "6.3.11", "@aws-amplify/data-schema": "^1.0.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", diff --git a/packages/api-rest/CHANGELOG.md b/packages/api-rest/CHANGELOG.md index 25425526f94..93f6622945e 100644 --- a/packages/api-rest/CHANGELOG.md +++ b/packages/api-rest/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.43...@aws-amplify/api-rest@4.0.44) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/api-rest + ## [4.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.42...@aws-amplify/api-rest@4.0.43) (2024-08-15) **Note:** Version bump only for package @aws-amplify/api-rest diff --git a/packages/api-rest/package.json b/packages/api-rest/package.json index db16386e5e0..07c8bf5d39a 100644 --- a/packages/api-rest/package.json +++ b/packages/api-rest/package.json @@ -1,7 +1,7 @@ { "name": "@aws-amplify/api-rest", "private": false, - "version": "4.0.43", + "version": "4.0.44", "description": "Api-rest category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -87,7 +87,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" }, diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 1747e039922..800fc12c661 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.45...@aws-amplify/api@6.0.46) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/api + ## [6.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.44...@aws-amplify/api@6.0.45) (2024-08-15) **Note:** Version bump only for package @aws-amplify/api diff --git a/packages/api/package.json b/packages/api/package.json index de745c1df01..96e4bac5514 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api", - "version": "6.0.45", + "version": "6.0.46", "description": "Api category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -79,8 +79,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-graphql": "4.1.14", - "@aws-amplify/api-rest": "4.0.43", + "@aws-amplify/api-graphql": "4.1.15", + "@aws-amplify/api-rest": "4.0.44", "tslib": "^2.5.0" } } diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index ad1962463d9..f99b9355b97 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.3.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.14...@aws-amplify/auth@6.3.15) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/auth + ## [6.3.14](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.13...@aws-amplify/auth@6.3.14) (2024-08-15) **Note:** Version bump only for package @aws-amplify/auth diff --git a/packages/auth/package.json b/packages/auth/package.json index d8b852f9657..b6d72c665ba 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/auth", - "version": "6.3.14", + "version": "6.3.15", "description": "Auth category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -97,7 +97,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "@aws-amplify/react-native": "1.1.4", "@jest/test-sequencer": "^29.7.0", "typescript": "5.0.2" diff --git a/packages/aws-amplify/CHANGELOG.md b/packages/aws-amplify/CHANGELOG.md index b12e99b983b..3615da9b3ab 100644 --- a/packages/aws-amplify/CHANGELOG.md +++ b/packages/aws-amplify/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.5.2](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.1...aws-amplify@6.5.2) (2024-08-21) + +**Note:** Version bump only for package aws-amplify + ## [6.5.1](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.0...aws-amplify@6.5.1) (2024-08-15) **Note:** Version bump only for package aws-amplify diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 8508cc83082..bed69394a43 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -1,6 +1,6 @@ { "name": "aws-amplify", - "version": "6.5.1", + "version": "6.5.2", "description": "AWS Amplify is a JavaScript library for Frontend and mobile developers building cloud-enabled applications.", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -276,13 +276,13 @@ "utils" ], "dependencies": { - "@aws-amplify/analytics": "7.0.43", - "@aws-amplify/api": "6.0.45", - "@aws-amplify/auth": "6.3.14", - "@aws-amplify/core": "6.3.10", - "@aws-amplify/datastore": "5.0.45", - "@aws-amplify/notifications": "2.0.43", - "@aws-amplify/storage": "6.6.1", + "@aws-amplify/analytics": "7.0.44", + "@aws-amplify/api": "6.0.46", + "@aws-amplify/auth": "6.3.15", + "@aws-amplify/core": "6.3.11", + "@aws-amplify/datastore": "5.0.46", + "@aws-amplify/notifications": "2.0.44", + "@aws-amplify/storage": "6.6.2", "tslib": "^2.5.0" }, "devDependencies": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 5a670ccd726..92fe92da22c 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.3.11](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.10...@aws-amplify/core@6.3.11) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/core + ## [6.3.10](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.9...@aws-amplify/core@6.3.10) (2024-08-15) **Note:** Version bump only for package @aws-amplify/core diff --git a/packages/core/package.json b/packages/core/package.json index 4fdbe7c02df..b65cf5c7936 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/core", - "version": "6.3.10", + "version": "6.3.11", "description": "Core category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", diff --git a/packages/datastore-storage-adapter/CHANGELOG.md b/packages/datastore-storage-adapter/CHANGELOG.md index 40b028d9a50..3ae7c273b56 100644 --- a/packages/datastore-storage-adapter/CHANGELOG.md +++ b/packages/datastore-storage-adapter/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.45...@aws-amplify/datastore-storage-adapter@2.1.46) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + ## [2.1.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.44...@aws-amplify/datastore-storage-adapter@2.1.45) (2024-08-15) **Note:** Version bump only for package @aws-amplify/datastore-storage-adapter diff --git a/packages/datastore-storage-adapter/package.json b/packages/datastore-storage-adapter/package.json index 7f89c7c56a7..9e19895054a 100644 --- a/packages/datastore-storage-adapter/package.json +++ b/packages/datastore-storage-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore-storage-adapter", - "version": "2.1.45", + "version": "2.1.46", "description": "SQLite storage adapter for Amplify DataStore ", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -36,8 +36,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", - "@aws-amplify/datastore": "5.0.45", + "@aws-amplify/core": "6.3.11", + "@aws-amplify/datastore": "5.0.46", "@types/react-native-sqlite-storage": "5.0.1", "expo-file-system": "13.1.4", "expo-sqlite": "10.1.0", diff --git a/packages/datastore/CHANGELOG.md b/packages/datastore/CHANGELOG.md index a0e827ac973..fc0d1235912 100644 --- a/packages/datastore/CHANGELOG.md +++ b/packages/datastore/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.45...@aws-amplify/datastore@5.0.46) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/datastore + ## [5.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.44...@aws-amplify/datastore@5.0.45) (2024-08-15) **Note:** Version bump only for package @aws-amplify/datastore diff --git a/packages/datastore/package.json b/packages/datastore/package.json index 86b1328a942..fc54b159f03 100644 --- a/packages/datastore/package.json +++ b/packages/datastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore", - "version": "5.0.45", + "version": "5.0.46", "description": "AppSyncLocal support for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -44,7 +44,7 @@ "src" ], "dependencies": { - "@aws-amplify/api": "6.0.45", + "@aws-amplify/api": "6.0.46", "buffer": "4.9.2", "idb": "5.0.6", "immer": "9.0.6", @@ -55,7 +55,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "@aws-amplify/react-native": "1.1.4", "@types/uuid-validate": "^0.0.1", "dexie": "3.2.2", diff --git a/packages/geo/CHANGELOG.md b/packages/geo/CHANGELOG.md index fa91c8a9580..2b3e1c795bb 100644 --- a/packages/geo/CHANGELOG.md +++ b/packages/geo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.43...@aws-amplify/geo@3.0.44) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/geo + ## [3.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.42...@aws-amplify/geo@3.0.43) (2024-08-15) **Note:** Version bump only for package @aws-amplify/geo diff --git a/packages/geo/package.json b/packages/geo/package.json index 8381d2fcde9..b5007b04b33 100644 --- a/packages/geo/package.json +++ b/packages/geo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/geo", - "version": "3.0.43", + "version": "3.0.44", "description": "Geo category for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -76,7 +76,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/interactions/CHANGELOG.md b/packages/interactions/CHANGELOG.md index feff5def1a3..8774ca32cf1 100644 --- a/packages/interactions/CHANGELOG.md +++ b/packages/interactions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.42...@aws-amplify/interactions@6.0.43) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/interactions + ## [6.0.42](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.41...@aws-amplify/interactions@6.0.42) (2024-08-15) **Note:** Version bump only for package @aws-amplify/interactions diff --git a/packages/interactions/package.json b/packages/interactions/package.json index d65f5cdad1a..754d707dda9 100644 --- a/packages/interactions/package.json +++ b/packages/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/interactions", - "version": "6.0.42", + "version": "6.0.43", "description": "Interactions category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -81,7 +81,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "typescript": "^5.0.2" }, "size-limit": [ diff --git a/packages/notifications/CHANGELOG.md b/packages/notifications/CHANGELOG.md index 5d799ca9684..7ef124450af 100644 --- a/packages/notifications/CHANGELOG.md +++ b/packages/notifications/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.43...@aws-amplify/notifications@2.0.44) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/notifications + ## [2.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.42...@aws-amplify/notifications@2.0.43) (2024-08-15) **Note:** Version bump only for package @aws-amplify/notifications diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 27cc8e3b67b..cdc2b018f8e 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/notifications", - "version": "2.0.43", + "version": "2.0.44", "description": "Notifications category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -98,7 +98,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" } diff --git a/packages/predictions/CHANGELOG.md b/packages/predictions/CHANGELOG.md index c3223244fc4..2c5767fd3e7 100644 --- a/packages/predictions/CHANGELOG.md +++ b/packages/predictions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.19](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.18...@aws-amplify/predictions@6.1.19) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/predictions + ## [6.1.18](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.17...@aws-amplify/predictions@6.1.18) (2024-08-15) **Note:** Version bump only for package @aws-amplify/predictions diff --git a/packages/predictions/package.json b/packages/predictions/package.json index 6746909e1ef..8c67b65d276 100644 --- a/packages/predictions/package.json +++ b/packages/predictions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/predictions", - "version": "6.1.18", + "version": "6.1.19", "description": "Machine learning category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -43,7 +43,7 @@ "src" ], "dependencies": { - "@aws-amplify/storage": "6.6.1", + "@aws-amplify/storage": "6.6.2", "@aws-sdk/client-comprehend": "3.621.0", "@aws-sdk/client-polly": "3.621.0", "@aws-sdk/client-rekognition": "3.621.0", @@ -59,7 +59,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index 3898302af49..a7683486227 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.19](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.18...@aws-amplify/pubsub@6.1.19) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/pubsub + ## [6.1.18](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.17...@aws-amplify/pubsub@6.1.18) (2024-08-15) **Note:** Version bump only for package @aws-amplify/pubsub diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 476d00daa09..efaf73d39a5 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/pubsub", - "version": "6.1.18", + "version": "6.1.19", "description": "Pubsub category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -73,7 +73,7 @@ "mqtt" ], "dependencies": { - "@aws-amplify/auth": "6.3.14", + "@aws-amplify/auth": "6.3.15", "buffer": "4.9.2", "graphql": "15.8.0", "rxjs": "^7.8.1", @@ -84,7 +84,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index 64563604a5e..d0931f833ab 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.2](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.1...@aws-amplify/storage@6.6.2) (2024-08-21) + +**Note:** Version bump only for package @aws-amplify/storage + ## [6.6.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.0...@aws-amplify/storage@6.6.1) (2024-08-15) **Note:** Version bump only for package @aws-amplify/storage diff --git a/packages/storage/package.json b/packages/storage/package.json index f5d0f219a49..6c026d84dd8 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/storage", - "version": "6.6.1", + "version": "6.6.2", "description": "Storage category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -101,7 +101,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.10", + "@aws-amplify/core": "6.3.11", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" } diff --git a/scripts/tsc-compliance-test/CHANGELOG.md b/scripts/tsc-compliance-test/CHANGELOG.md index 322093bb2e0..ce1082cb77f 100644 --- a/scripts/tsc-compliance-test/CHANGELOG.md +++ b/scripts/tsc-compliance-test/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.49](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.48...tsc-compliance-test@0.1.49) (2024-08-21) + +**Note:** Version bump only for package tsc-compliance-test + ## [0.1.48](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.47...tsc-compliance-test@0.1.48) (2024-08-15) **Note:** Version bump only for package tsc-compliance-test diff --git a/scripts/tsc-compliance-test/package.json b/scripts/tsc-compliance-test/package.json index 276ad674243..f3aace594c3 100644 --- a/scripts/tsc-compliance-test/package.json +++ b/scripts/tsc-compliance-test/package.json @@ -1,11 +1,11 @@ { "name": "tsc-compliance-test", - "version": "0.1.48", + "version": "0.1.49", "license": "MIT", "private": true, "devDependencies": { "@types/node": "16.18.82", - "aws-amplify": "6.5.1", + "aws-amplify": "6.5.2", "typescript": "4.2.x" }, "scripts": { From 080f565f08b11fd8e75292a651287e79b82deb5c Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Wed, 21 Aug 2024 22:13:15 +0000 Subject: [PATCH 08/50] chore(release): Update API docs [skip release] --- docs/api/assets/navigation.js | 2 +- docs/api/assets/search.js | 2 +- .../classes/aws_amplify.auth_cognito.DefaultTokenStore.html | 4 +++- .../classes/aws_amplify.auth_cognito.TokenOrchestrator.html | 4 +++- ...uth_cognito._Reference_Types_.AuthTokenOrchestrator.html | 6 ++++-- ...plify.auth_cognito._Reference_Types_.AuthTokenStore.html | 6 ++++-- ...mplify.auth_cognito._Reference_Types_.OAuthMetadata.html | 3 +++ docs/api/modules/_aws_amplify_adapter_nextjs.html | 4 ++-- .../api/modules/_aws_amplify_datastore_storage_adapter.html | 4 ++-- docs/api/modules/_aws_amplify_geo.html | 4 ++-- docs/api/modules/_aws_amplify_interactions.html | 4 ++-- docs/api/modules/_aws_amplify_predictions.html | 4 ++-- docs/api/modules/_aws_amplify_pubsub.html | 4 ++-- .../modules/aws_amplify.auth_cognito._Reference_Types_.html | 1 + docs/api/modules/aws_amplify.html | 4 ++-- 15 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.OAuthMetadata.html diff --git a/docs/api/assets/navigation.js b/docs/api/assets/navigation.js index 01e7c4a9ec9..78e74f15cbc 100644 --- a/docs/api/assets/navigation.js +++ b/docs/api/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index ed8859ddb5b..752a42d641c 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/api/classes/aws_amplify.auth_cognito.DefaultTokenStore.html b/docs/api/classes/aws_amplify.auth_cognito.DefaultTokenStore.html index 7dfa9ea73ad..abc243c87d6 100644 --- a/docs/api/classes/aws_amplify.auth_cognito.DefaultTokenStore.html +++ b/docs/api/classes/aws_amplify.auth_cognito.DefaultTokenStore.html @@ -6,8 +6,10 @@ getDeviceMetadata getKeyValueStorage getLastAuthUser +getOAuthMetadata loadTokens setAuthConfig setKeyValueStorage +setOAuthMetadata storeTokens -

Constructors

Properties

keyValueStorage?: KeyValueStorageInterface

Methods

  • Parameters

    Returns void

\ No newline at end of file +

Constructors

Properties

keyValueStorage?: KeyValueStorageInterface

Methods

  • Parameters

    Returns void

\ No newline at end of file diff --git a/docs/api/classes/aws_amplify.auth_cognito.TokenOrchestrator.html b/docs/api/classes/aws_amplify.auth_cognito.TokenOrchestrator.html index 4c0b1229849..5e03954ff0e 100644 --- a/docs/api/classes/aws_amplify.auth_cognito.TokenOrchestrator.html +++ b/docs/api/classes/aws_amplify.auth_cognito.TokenOrchestrator.html @@ -7,11 +7,13 @@

Methods

Constructors

Properties

inflightPromise: undefined | Promise<void>
tokenRefresher?: TokenRefresher
tokenStore?: AuthTokenStore
waitForInflightOAuth: (() => Promise<void>)

Type declaration

    • (): Promise<void>
    • Returns Promise<void>

Methods

  • Parameters

    Returns void

\ No newline at end of file +

Constructors

Properties

inflightPromise: undefined | Promise<void>
tokenRefresher?: TokenRefresher
tokenStore?: AuthTokenStore
waitForInflightOAuth: (() => Promise<void>)

Type declaration

    • (): Promise<void>
    • Returns Promise<void>

Methods

  • Parameters

    Returns void

\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenOrchestrator.html b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenOrchestrator.html index 565c8461936..d5ef1408e1a 100644 --- a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenOrchestrator.html +++ b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenOrchestrator.html @@ -1,9 +1,11 @@ AuthTokenOrchestrator | Amplify JS API Documentation -
interface AuthTokenOrchestrator {
    clearDeviceMetadata(username?): Promise<void>;
    clearTokens(): Promise<void>;
    getDeviceMetadata(username?): Promise<null | DeviceMetadata>;
    getTokens(options?): Promise<null | AuthTokens & {
        signInDetails?: CognitoAuthSignInDetails;
    }>;
    setAuthTokenStore(tokenStore): void;
    setTokenRefresher(tokenRefresher): void;
    setTokens(__namedParameters): Promise<void>;
}

Implemented by

Methods

clearDeviceMetadata +
interface AuthTokenOrchestrator {
    clearDeviceMetadata(username?): Promise<void>;
    clearTokens(): Promise<void>;
    getDeviceMetadata(username?): Promise<null | DeviceMetadata>;
    getOAuthMetadata(): Promise<null | OAuthMetadata>;
    getTokens(options?): Promise<null | AuthTokens & {
        signInDetails?: CognitoAuthSignInDetails;
    }>;
    setAuthTokenStore(tokenStore): void;
    setOAuthMetadata(metadata): Promise<void>;
    setTokenRefresher(tokenRefresher): void;
    setTokens(__namedParameters): Promise<void>;
}

Implemented by

Methods

  • Parameters

    • Optional username: string

    Returns Promise<void>

  • Returns Promise<void>

  • Parameters

    Returns void

  • Parameters

    Returns void

\ No newline at end of file +

Methods

  • Parameters

    • Optional username: string

    Returns Promise<void>

  • Returns Promise<void>

  • Parameters

    Returns void

  • Parameters

    Returns Promise<void>

  • Parameters

    Returns void

\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenStore.html b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenStore.html index fab9c1cd630..cd4a38d5034 100644 --- a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenStore.html +++ b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.AuthTokenStore.html @@ -1,9 +1,11 @@ AuthTokenStore | Amplify JS API Documentation -
interface AuthTokenStore {
    clearDeviceMetadata(username?): Promise<void>;
    clearTokens(): Promise<void>;
    getDeviceMetadata(username?): Promise<null | DeviceMetadata>;
    getLastAuthUser(): Promise<string>;
    loadTokens(): Promise<null | CognitoAuthTokens>;
    setKeyValueStorage(keyValueStorage): void;
    storeTokens(tokens): Promise<void>;
}

Implemented by

Methods

clearDeviceMetadata +
interface AuthTokenStore {
    clearDeviceMetadata(username?): Promise<void>;
    clearTokens(): Promise<void>;
    getDeviceMetadata(username?): Promise<null | DeviceMetadata>;
    getLastAuthUser(): Promise<string>;
    getOAuthMetadata(): Promise<null | OAuthMetadata>;
    loadTokens(): Promise<null | CognitoAuthTokens>;
    setKeyValueStorage(keyValueStorage): void;
    setOAuthMetadata(metadata): Promise<void>;
    storeTokens(tokens): Promise<void>;
}

Implemented by

Methods

  • Parameters

    • Optional username: string

    Returns Promise<void>

  • Returns Promise<void>

  • Returns Promise<string>

  • Parameters

    Returns Promise<void>

\ No newline at end of file +

Methods

  • Parameters

    • Optional username: string

    Returns Promise<void>

  • Returns Promise<void>

  • Returns Promise<string>

  • Parameters

    Returns Promise<void>

  • Parameters

    Returns Promise<void>

\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.OAuthMetadata.html b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.OAuthMetadata.html new file mode 100644 index 00000000000..5c3d5d0b322 --- /dev/null +++ b/docs/api/interfaces/aws_amplify.auth_cognito._Reference_Types_.OAuthMetadata.html @@ -0,0 +1,3 @@ +OAuthMetadata | Amplify JS API Documentation +
interface OAuthMetadata {
    oauthSignIn: boolean;
}

Properties

Properties

oauthSignIn: boolean
\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_adapter_nextjs.html b/docs/api/modules/_aws_amplify_adapter_nextjs.html index 685f5023bc6..4568c162e5d 100644 --- a/docs/api/modules/_aws_amplify_adapter_nextjs.html +++ b/docs/api/modules/_aws_amplify_adapter_nextjs.html @@ -1,5 +1,5 @@ -@aws-amplify/adapter-nextjs - v1.2.13 | Amplify JS API Documentation -

Module @aws-amplify/adapter-nextjs - v1.2.13

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

+@aws-amplify/adapter-nextjs - v1.2.14 | Amplify JS API Documentation +

Module @aws-amplify/adapter-nextjs - v1.2.14

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

Index

Modules

api index utils diff --git a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html index b7a1cf0f9df..8fac2a90b93 100644 --- a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html +++ b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html @@ -1,5 +1,5 @@ -@aws-amplify/datastore-storage-adapter - v2.1.45 | Amplify JS API Documentation -

Module @aws-amplify/datastore-storage-adapter - v2.1.45

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

+@aws-amplify/datastore-storage-adapter - v2.1.46 | Amplify JS API Documentation +

Module @aws-amplify/datastore-storage-adapter - v2.1.46

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

Index

Modules

ExpoSQLiteAdapter/ExpoSQLiteAdapter SQLiteAdapter/SQLiteAdapter index diff --git a/docs/api/modules/_aws_amplify_geo.html b/docs/api/modules/_aws_amplify_geo.html index c3676097260..d0409956c2c 100644 --- a/docs/api/modules/_aws_amplify_geo.html +++ b/docs/api/modules/_aws_amplify_geo.html @@ -1,5 +1,5 @@ -@aws-amplify/geo - v3.0.43 | Amplify JS API Documentation -

Module @aws-amplify/geo - v3.0.43

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

+@aws-amplify/geo - v3.0.44 | Amplify JS API Documentation +

Module @aws-amplify/geo - v3.0.44

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

Index

Modules

\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_interactions.html b/docs/api/modules/_aws_amplify_interactions.html index a2bd17d5463..0b02fd19a01 100644 --- a/docs/api/modules/_aws_amplify_interactions.html +++ b/docs/api/modules/_aws_amplify_interactions.html @@ -1,5 +1,5 @@ -@aws-amplify/interactions - v6.0.42 | Amplify JS API Documentation -

Module @aws-amplify/interactions - v6.0.42

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

+@aws-amplify/interactions - v6.0.43 | Amplify JS API Documentation +

Module @aws-amplify/interactions - v6.0.43

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

Index

Modules

index lex-v1 lex-v2 diff --git a/docs/api/modules/_aws_amplify_predictions.html b/docs/api/modules/_aws_amplify_predictions.html index 32e5fb49e56..e49235310da 100644 --- a/docs/api/modules/_aws_amplify_predictions.html +++ b/docs/api/modules/_aws_amplify_predictions.html @@ -1,5 +1,5 @@ -@aws-amplify/predictions - v6.1.18 | Amplify JS API Documentation -

Module @aws-amplify/predictions - v6.1.18

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

+@aws-amplify/predictions - v6.1.19 | Amplify JS API Documentation +

Module @aws-amplify/predictions - v6.1.19

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

Index

Modules

Interfaces

IdentifyEntitiesInput IdentifyEntitiesOutput diff --git a/docs/api/modules/_aws_amplify_pubsub.html b/docs/api/modules/_aws_amplify_pubsub.html index 45940312abd..fcbe3360239 100644 --- a/docs/api/modules/_aws_amplify_pubsub.html +++ b/docs/api/modules/_aws_amplify_pubsub.html @@ -1,5 +1,5 @@ -@aws-amplify/pubsub - v6.1.18 | Amplify JS API Documentation -

Module @aws-amplify/pubsub - v6.1.18

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

+@aws-amplify/pubsub - v6.1.19 | Amplify JS API Documentation +

Module @aws-amplify/pubsub - v6.1.19

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

Index

Modules

clients/iot clients/mqtt index diff --git a/docs/api/modules/aws_amplify.auth_cognito._Reference_Types_.html b/docs/api/modules/aws_amplify.auth_cognito._Reference_Types_.html index c722d757ef6..28b2f5a62b8 100644 --- a/docs/api/modules/aws_amplify.auth_cognito._Reference_Types_.html +++ b/docs/api/modules/aws_amplify.auth_cognito._Reference_Types_.html @@ -6,6 +6,7 @@ DeviceMetadata Identity IdentityIdStore +OAuthMetadata

Type Aliases

AuthKeys CognitoAuthTokens TokenRefresher diff --git a/docs/api/modules/aws_amplify.html b/docs/api/modules/aws_amplify.html index 8538cd19e81..8973f6a3c3d 100644 --- a/docs/api/modules/aws_amplify.html +++ b/docs/api/modules/aws_amplify.html @@ -1,5 +1,5 @@ -aws-amplify - v6.5.1 | Amplify JS API Documentation -

Module aws-amplify - v6.5.1

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

+aws-amplify - v6.5.2 | Amplify JS API Documentation +

Module aws-amplify - v6.5.2

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

Documentation is available here.

Index

Modules

adapter-core analytics From 56474971f45821d5049f9e8bc7ecbfc7810ea093 Mon Sep 17 00:00:00 2001 From: Ivan Artemiev <29709626+iartemiev@users.noreply.github.com> Date: Thu, 22 Aug 2024 12:42:44 -0400 Subject: [PATCH 09/50] feat(api-graphql): AppSync realtime - include custom headers as query string params (#13735) --- .../api-graphql/__tests__/GraphQLAPI.test.ts | 56 +++++++++++++++++ .../internals/generateClient.test.ts | 60 ++++++++++++++++++- .../AWSAppSyncRealTimeProvider/index.ts | 48 ++++++++++++++- packages/api-graphql/src/internals/v6.ts | 3 +- 4 files changed, 164 insertions(+), 3 deletions(-) diff --git a/packages/api-graphql/__tests__/GraphQLAPI.test.ts b/packages/api-graphql/__tests__/GraphQLAPI.test.ts index 43779fee5d6..ec553952499 100644 --- a/packages/api-graphql/__tests__/GraphQLAPI.test.ts +++ b/packages/api-graphql/__tests__/GraphQLAPI.test.ts @@ -1558,4 +1558,60 @@ describe('API test', () => { ); }); }); + + test('request level custom headers are applied to query string', async () => { + Amplify.configure({ + API: { + GraphQL: { + defaultAuthMode: 'lambda', + endpoint: + 'https://testaccounturl123456789123.appsync-api.us-east-1.amazonaws.com/graphql', + region: 'local-host-h4x', + }, + }, + }); + + let done: Function; + const mockedFnHasBeenCalled = new Promise(res => (done = res)); + + const spyon_appsync_realtime = jest + .spyOn( + AWSAppSyncRealTimeProvider.prototype as any, + '_initializeRetryableHandshake', + ) + .mockImplementation( + jest.fn(() => { + done(); // resolve promise when called + }) as any, + ); + + const query = /* GraphQL */ ` + subscription SubscribeToEventComments { + subscribeToEventComments { + eventId + } + } + `; + + const resolvedUrl = + 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql?header=eyJBdXRob3JpemF0aW9uIjoiYWJjMTIzNDUiLCJob3N0IjoidGVzdGFjY291bnR1cmwxMjM0NTY3ODkxMjMuYXBwc3luYy1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20ifQ==&payload=e30=&x-amz-user-agent=aws-amplify%2F6.4.0%20api%2F1%20framework%2F2&ex-machina=is%20a%20good%20movie'; + + ( + client.graphql( + { query }, + { + 'x-amz-user-agent': 'aws-amplify/6.4.0 api/1 framework/2', + 'ex-machina': 'is a good movie', + // This should NOT get included in the querystring + Authorization: 'abc12345', + }, + ) as unknown as Observable + ).subscribe(); + + await mockedFnHasBeenCalled; + + expect(spyon_appsync_realtime).toHaveBeenCalledTimes(1); + const subscribeOptions = spyon_appsync_realtime.mock.calls[0][0]; + expect(subscribeOptions).toBe(resolvedUrl); + }); }); diff --git a/packages/api-graphql/__tests__/internals/generateClient.test.ts b/packages/api-graphql/__tests__/internals/generateClient.test.ts index c5104997df1..94ba7bcafe4 100644 --- a/packages/api-graphql/__tests__/internals/generateClient.test.ts +++ b/packages/api-graphql/__tests__/internals/generateClient.test.ts @@ -3,7 +3,7 @@ import { Amplify, AmplifyClassV6 } from '@aws-amplify/core'; import { generateClient } from '../../src/internals'; import configFixture from '../fixtures/modeled/amplifyconfiguration'; import { Schema } from '../fixtures/modeled/schema'; -import { from } from 'rxjs'; +import { Observable, from } from 'rxjs'; import { normalizePostGraphqlCalls, expectSubWithHeaders, @@ -11,6 +11,7 @@ import { expectSubWithlibraryConfigHeaders, mockApiResponse, } from '../utils/index'; +import { AWSAppSyncRealTimeProvider } from '../../src/Providers/AWSAppSyncRealTimeProvider'; const serverManagedFields = { id: 'some-id', @@ -332,6 +333,30 @@ describe('generateClient', () => { expect(normalizePostGraphqlCalls(spy)).toMatchSnapshot(); }); + test('with custom client headers - graphql', async () => { + const headers = { + 'client-header': 'should exist', + }; + + const client = generateClient({ + amplify: Amplify, + headers, + }); + + await client.graphql({ + query: /* GraphQL */ ` + query listPosts { + id + } + `, + }); + + const receivedArgs = normalizePostGraphqlCalls(spy)[0][1]; + const receivedHeaders = receivedArgs.options.headers; + + expect(receivedHeaders).toEqual(expect.objectContaining(headers)); + }); + test('with custom client header functions', async () => { const client = generateClient({ amplify: Amplify, @@ -495,6 +520,39 @@ describe('generateClient', () => { }); }); + test('with client-level custom headers', done => { + const customHeaders = { + 'subscription-header': 'should-exist', + }; + + const client = generateClient({ + amplify: Amplify, + headers: customHeaders, + }); + + const spy = jest.fn(() => from([graphqlMessage])); + (raw.GraphQLAPI as any).appSyncRealTime = { subscribe: spy }; + + client.models.Note.onCreate({ + filter: graphqlVariables.filter, + }).subscribe({ + next(value) { + expectSubWithHeaders( + spy, + 'onCreateNote', + graphqlVariables, + customHeaders, + ); + expect(value).toEqual(expect.objectContaining(noteToSend)); + done(); + }, + error(error) { + expect(error).toBeUndefined(); + done('bad news!'); + }, + }); + }); + test('with a custom header function', done => { const customHeaders = { 'subscription-header-function': 'should-return-this-header', diff --git a/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts b/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts index 37cafbf719e..e25be1005d3 100644 --- a/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts +++ b/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts @@ -712,6 +712,44 @@ export class AWSAppSyncRealTimeProvider { } } + /** + * Strips out `Authorization` header if present + */ + private _extractNonAuthHeaders( + headers?: AWSAppSyncRealTimeProviderOptions['additionalCustomHeaders'], + ): Record { + if (!headers) { + return {}; + } + + if ('Authorization' in headers) { + const { Authorization: _, ...nonAuthHeaders } = headers; + + return nonAuthHeaders; + } + + return headers; + } + + /** + * + * @param headers - http headers + * @returns query string of uri-encoded parameters derived from custom headers + */ + private _queryStringFromCustomHeaders( + headers?: AWSAppSyncRealTimeProviderOptions['additionalCustomHeaders'], + ): string { + const nonAuthHeaders = this._extractNonAuthHeaders(headers); + + const queryParams: string[] = Object.entries(nonAuthHeaders).map( + ([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`, + ); + + const queryString = queryParams.join('&'); + + return queryString; + } + private _initializeWebSocketConnection({ appSyncGraphqlEndpoint, authenticationType, @@ -749,6 +787,10 @@ export class AWSAppSyncRealTimeProvider { const payloadQs = base64Encoder.convert(payloadString); + const queryString = this._queryStringFromCustomHeaders( + additionalCustomHeaders, + ); + let discoverableEndpoint = appSyncGraphqlEndpoint ?? ''; if (this.isCustomDomain(discoverableEndpoint)) { @@ -766,7 +808,11 @@ export class AWSAppSyncRealTimeProvider { .replace('https://', protocol) .replace('http://', protocol); - const awsRealTimeUrl = `${discoverableEndpoint}?header=${headerQs}&payload=${payloadQs}`; + let awsRealTimeUrl = `${discoverableEndpoint}?header=${headerQs}&payload=${payloadQs}`; + + if (queryString !== '') { + awsRealTimeUrl += `&${queryString}`; + } await this._initializeRetryableHandshake(awsRealTimeUrl); diff --git a/packages/api-graphql/src/internals/v6.ts b/packages/api-graphql/src/internals/v6.ts index 0cdcf483927..c5d362908c8 100644 --- a/packages/api-graphql/src/internals/v6.ts +++ b/packages/api-graphql/src/internals/v6.ts @@ -106,6 +106,7 @@ export function graphql< const internals = getInternals(this as any); options.authMode = options.authMode || internals.authMode; options.authToken = options.authToken || internals.authToken; + const headers = additionalHeaders || internals.headers; /** * The correctness of these typings depends on correct string branding or overrides. @@ -116,7 +117,7 @@ export function graphql< // TODO: move V6Client back into this package? internals.amplify as any, options, - additionalHeaders, + headers, ); return result as any; From 13cf7441b524eaaaac314eee596b97062da36dbe Mon Sep 17 00:00:00 2001 From: ashika112 <155593080+ashika112@users.noreply.github.com> Date: Thu, 22 Aug 2024 11:23:35 -0700 Subject: [PATCH 10/50] Allow x-api-key for public rest api (#13422) * refactor iamAuthApplicable * cleanup & test * update to sample token * clean lint error * cleanup signingService type * update function maing * moving default to internalPost * rename file * update ts docs * add test with specified service in test suite --- .../apis/common/internalPost.test.ts | 41 ++++++++++ .../utils/isIamAuthApplicable.test.ts | 74 +++++++++++++++++++ packages/api-rest/src/apis/common/handler.ts | 18 ++--- .../api-rest/src/apis/common/internalPost.ts | 2 + .../api-rest/src/apis/common/publicApis.ts | 2 + packages/api-rest/src/types/index.ts | 9 +++ .../api-rest/src/utils/isIamAuthApplicable.ts | 44 +++++++++++ 7 files changed, 179 insertions(+), 11 deletions(-) create mode 100644 packages/api-rest/__tests__/utils/isIamAuthApplicable.test.ts create mode 100644 packages/api-rest/src/utils/isIamAuthApplicable.ts diff --git a/packages/api-rest/__tests__/apis/common/internalPost.test.ts b/packages/api-rest/__tests__/apis/common/internalPost.test.ts index acfd9ae4530..f4887e9d2ad 100644 --- a/packages/api-rest/__tests__/apis/common/internalPost.test.ts +++ b/packages/api-rest/__tests__/apis/common/internalPost.test.ts @@ -91,6 +91,47 @@ describe('internal post', () => { expect.objectContaining({ region: 'us-west-2', service: 'lambda' }), ); }); + + it('should call authenticatedHandler for appsync-api service with default signing name', async () => { + const appsyncApiEndpoint = new URL( + 'https://123.appsync-api.us-west-2.amazonaws.com/graphql', + ); + await post(mockAmplifyInstance, { + url: appsyncApiEndpoint, + options: { + signingServiceInfo: { region: 'us-east-1' }, + }, + }); + expect(mockAuthenticatedHandler).toHaveBeenCalledWith( + { + url: appsyncApiEndpoint, + method: 'POST', + headers: {}, + }, + expect.objectContaining({ region: 'us-east-1', service: 'appsync' }), + ); + }); + + it('should call authenticatedHandler for appsync-api with specified service from signingServiceInfo', async () => { + const appsyncApiEndpoint = new URL( + 'https://123.appsync-api.us-west-2.amazonaws.com/graphql', + ); + await post(mockAmplifyInstance, { + url: appsyncApiEndpoint, + options: { + signingServiceInfo: { service: 'appsync', region: 'us-east-1' }, + }, + }); + expect(mockAuthenticatedHandler).toHaveBeenCalledWith( + { + url: appsyncApiEndpoint, + method: 'POST', + headers: {}, + }, + expect.objectContaining({ region: 'us-east-1', service: 'appsync' }), + ); + }); + it('should call authenticatedHandler with empty signingServiceInfo', async () => { await post(mockAmplifyInstance, { url: apiGatewayUrl, diff --git a/packages/api-rest/__tests__/utils/isIamAuthApplicable.test.ts b/packages/api-rest/__tests__/utils/isIamAuthApplicable.test.ts new file mode 100644 index 00000000000..a75733f738a --- /dev/null +++ b/packages/api-rest/__tests__/utils/isIamAuthApplicable.test.ts @@ -0,0 +1,74 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { HttpRequest } from '@aws-amplify/core/internals/aws-client-utils'; + +import { + isIamAuthApplicableForGraphQL, + isIamAuthApplicableForRest, +} from '../../src/utils/isIamAuthApplicable'; + +describe('iamAuthApplicable', () => { + const url = new URL('https://url'); + const baseRequest: HttpRequest = { + headers: {}, + url, + method: 'put', + }; + + describe('iamAuthApplicableForGraphQL', () => { + it('should return true if there is no authorization header, no x-api-key header, and signingServiceInfo is provided', () => { + const signingServiceInfo = {}; + expect( + isIamAuthApplicableForGraphQL(baseRequest, signingServiceInfo), + ).toBe(true); + }); + + it('should return false if there is an authorization header', () => { + const request = { + ...baseRequest, + headers: { authorization: 'SampleToken' }, + }; + const signingServiceInfo = {}; + expect(isIamAuthApplicableForGraphQL(request, signingServiceInfo)).toBe( + false, + ); + }); + + it('should return false if there is an x-api-key header', () => { + const request = { ...baseRequest, headers: { 'x-api-key': 'key' } }; + const signingServiceInfo = {}; + expect(isIamAuthApplicableForGraphQL(request, signingServiceInfo)).toBe( + false, + ); + }); + + it('should return false if signingServiceInfo is not provided', () => { + expect(isIamAuthApplicableForGraphQL(baseRequest)).toBe(false); + }); + }); + + describe('iamAuthApplicableForPublic', () => { + it('should return true if there is no authorization header and signingServiceInfo is provided', () => { + const signingServiceInfo = {}; + expect(isIamAuthApplicableForRest(baseRequest, signingServiceInfo)).toBe( + true, + ); + }); + + it('should return false if there is an authorization header', () => { + const request = { + ...baseRequest, + headers: { authorization: 'SampleToken' }, + }; + const signingServiceInfo = {}; + expect(isIamAuthApplicableForRest(request, signingServiceInfo)).toBe( + false, + ); + }); + + it('should return false if signingServiceInfo is not provided', () => { + expect(isIamAuthApplicableForRest(baseRequest)).toBe(false); + }); + }); +}); diff --git a/packages/api-rest/src/apis/common/handler.ts b/packages/api-rest/src/apis/common/handler.ts index 9ae021e4e4e..d17a8c72b6a 100644 --- a/packages/api-rest/src/apis/common/handler.ts +++ b/packages/api-rest/src/apis/common/handler.ts @@ -20,7 +20,7 @@ import { parseSigningInfo, } from '../../utils'; import { resolveHeaders } from '../../utils/resolveHeaders'; -import { RestApiResponse } from '../../types'; +import { RestApiResponse, SigningServiceInfo } from '../../types'; type HandlerOptions = Omit & { body?: DocumentType | FormData; @@ -28,11 +28,6 @@ type HandlerOptions = Omit & { withCredentials?: boolean; }; -interface SigningServiceInfo { - service?: string; - region?: string; -} - /** * Make REST API call with best-effort IAM auth. * @param amplify Amplify instance to to resolve credentials and tokens. Should use different instance in client-side @@ -40,12 +35,17 @@ interface SigningServiceInfo { * @param options Options accepted from public API options when calling the handlers. * @param signingServiceInfo Internal-only options enable IAM auth as well as to to overwrite the IAM signing service * and region. If specified, and NONE of API Key header or Auth header is present, IAM auth will be used. + * @param iamAuthApplicable Callback function that is used to determine if IAM Auth should be used or not. * * @internal */ export const transferHandler = async ( amplify: AmplifyClassV6, options: HandlerOptions & { abortSignal: AbortSignal }, + iamAuthApplicable: ( + { headers }: HttpRequest, + signingServiceInfo?: SigningServiceInfo, + ) => boolean, signingServiceInfo?: SigningServiceInfo, ): Promise => { const { url, method, headers, body, withCredentials, abortSignal } = options; @@ -69,6 +69,7 @@ export const transferHandler = async ( }; const isIamAuthApplicable = iamAuthApplicable(request, signingServiceInfo); + let response: RestApiResponse; const credentials = await resolveCredentials(amplify); if (isIamAuthApplicable && credentials) { @@ -97,11 +98,6 @@ export const transferHandler = async ( }; }; -const iamAuthApplicable = ( - { headers }: HttpRequest, - signingServiceInfo?: SigningServiceInfo, -) => !headers.authorization && !headers['x-api-key'] && !!signingServiceInfo; - const resolveCredentials = async ( amplify: AmplifyClassV6, ): Promise => { diff --git a/packages/api-rest/src/apis/common/internalPost.ts b/packages/api-rest/src/apis/common/internalPost.ts index 574e5eb3da8..6dabea22072 100644 --- a/packages/api-rest/src/apis/common/internalPost.ts +++ b/packages/api-rest/src/apis/common/internalPost.ts @@ -6,6 +6,7 @@ import { AmplifyClassV6 } from '@aws-amplify/core'; import { InternalPostInput, RestApiResponse } from '../../types'; import { createCancellableOperation } from '../../utils'; import { CanceledError } from '../../errors'; +import { isIamAuthApplicableForGraphQL } from '../../utils/isIamAuthApplicable'; import { transferHandler } from './handler'; @@ -66,6 +67,7 @@ export const post = ( ...options, abortSignal: controller.signal, }, + isIamAuthApplicableForGraphQL, options?.signingServiceInfo, ); diff --git a/packages/api-rest/src/apis/common/publicApis.ts b/packages/api-rest/src/apis/common/publicApis.ts index 6a132a6b277..8c7a58cb6fc 100644 --- a/packages/api-rest/src/apis/common/publicApis.ts +++ b/packages/api-rest/src/apis/common/publicApis.ts @@ -25,6 +25,7 @@ import { parseSigningInfo, resolveApiUrl, } from '../../utils'; +import { isIamAuthApplicableForRest } from '../../utils/isIamAuthApplicable'; import { transferHandler } from './handler'; @@ -71,6 +72,7 @@ const publicHandler = ( headers, abortSignal, }, + isIamAuthApplicableForRest, signingServiceInfo, ); }); diff --git a/packages/api-rest/src/types/index.ts b/packages/api-rest/src/types/index.ts index f2f3c214b17..7e0ecb61e7c 100644 --- a/packages/api-rest/src/types/index.ts +++ b/packages/api-rest/src/types/index.ts @@ -112,3 +112,12 @@ export interface InternalPostInput { */ abortController?: AbortController; } + +/** + * Type for signingServiceInfo which enable IAM auth as well as overwrite the IAM signing info. + * @internal + */ +export interface SigningServiceInfo { + service?: string; + region?: string; +} diff --git a/packages/api-rest/src/utils/isIamAuthApplicable.ts b/packages/api-rest/src/utils/isIamAuthApplicable.ts new file mode 100644 index 00000000000..ba48e7be3de --- /dev/null +++ b/packages/api-rest/src/utils/isIamAuthApplicable.ts @@ -0,0 +1,44 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { HttpRequest } from '@aws-amplify/core/internals/aws-client-utils'; + +import { SigningServiceInfo } from '../types'; + +/** + * Determines if IAM authentication should be applied for a GraphQL request. + * + * This function checks the `headers` of the HTTP request to determine if IAM authentication + * is applicable. IAM authentication is considered applicable if there is no `authorization` + * header, no `x-api-key` header, and `signingServiceInfo` is provided. + * + * @param request - The HTTP request object containing headers. + * @param signingServiceInfo - Optional signing service information, + * including service and region. + * @returns A boolean `true` if IAM authentication should be applied. + * + * @internal + */ +export const isIamAuthApplicableForGraphQL = ( + { headers }: HttpRequest, + signingServiceInfo?: SigningServiceInfo, +) => !headers.authorization && !headers['x-api-key'] && !!signingServiceInfo; + +/** + * Determines if IAM authentication should be applied for a REST request. + * + * This function checks the `headers` of the HTTP request to determine if IAM authentication + * is applicable. IAM authentication is considered applicable if there is no `authorization` + * header and `signingServiceInfo` is provided. + * + * @param request - The HTTP request object containing headers. + * @param signingServiceInfo - Optional signing service information, + * including service and region. + * @returns A boolean `true` if IAM authentication should be applied. + * + * @internal + */ +export const isIamAuthApplicableForRest = ( + { headers }: HttpRequest, + signingServiceInfo?: SigningServiceInfo, +) => !headers.authorization && !!signingServiceInfo; From cd58026110dbbabea9dc7a7e2cece39cbdd6d3a9 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Mon, 26 Aug 2024 20:48:27 +0000 Subject: [PATCH 11/50] chore(release): Set core metadata [skip release] --- packages/core/metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/metadata b/packages/core/metadata index e578420b0b9..59b08aa26c5 100644 --- a/packages/core/metadata +++ b/packages/core/metadata @@ -1 +1 @@ -fecc7efd7 +f44227795 From e2e9c5af8ce2c0a6f89e87e224c16d8551c491bd Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Mon, 26 Aug 2024 20:48:42 +0000 Subject: [PATCH 12/50] chore(release): Publish [skip release] - @aws-amplify/adapter-nextjs@1.2.15 - @aws-amplify/analytics@7.0.45 - @aws-amplify/api@6.0.47 - @aws-amplify/api-graphql@4.2.0 - @aws-amplify/api-rest@4.0.45 - @aws-amplify/auth@6.3.16 - aws-amplify@6.5.3 - @aws-amplify/core@6.3.12 - @aws-amplify/datastore@5.0.47 - @aws-amplify/datastore-storage-adapter@2.1.47 - @aws-amplify/geo@3.0.45 - @aws-amplify/interactions@6.0.44 - @aws-amplify/notifications@2.0.45 - @aws-amplify/predictions@6.1.20 - @aws-amplify/pubsub@6.1.20 - @aws-amplify/storage@6.6.3 - tsc-compliance-test@0.1.50 --- packages/adapter-nextjs/CHANGELOG.md | 4 ++++ packages/adapter-nextjs/package.json | 4 ++-- packages/analytics/CHANGELOG.md | 4 ++++ packages/analytics/package.json | 4 ++-- packages/api-graphql/CHANGELOG.md | 6 ++++++ packages/api-graphql/package.json | 6 +++--- packages/api-rest/CHANGELOG.md | 4 ++++ packages/api-rest/package.json | 4 ++-- packages/api/CHANGELOG.md | 4 ++++ packages/api/package.json | 6 +++--- packages/auth/CHANGELOG.md | 4 ++++ packages/auth/package.json | 4 ++-- packages/aws-amplify/CHANGELOG.md | 4 ++++ packages/aws-amplify/package.json | 16 ++++++++-------- packages/core/CHANGELOG.md | 4 ++++ packages/core/package.json | 2 +- packages/datastore-storage-adapter/CHANGELOG.md | 4 ++++ packages/datastore-storage-adapter/package.json | 6 +++--- packages/datastore/CHANGELOG.md | 4 ++++ packages/datastore/package.json | 6 +++--- packages/geo/CHANGELOG.md | 4 ++++ packages/geo/package.json | 4 ++-- packages/interactions/CHANGELOG.md | 4 ++++ packages/interactions/package.json | 4 ++-- packages/notifications/CHANGELOG.md | 4 ++++ packages/notifications/package.json | 4 ++-- packages/predictions/CHANGELOG.md | 4 ++++ packages/predictions/package.json | 6 +++--- packages/pubsub/CHANGELOG.md | 4 ++++ packages/pubsub/package.json | 6 +++--- packages/storage/CHANGELOG.md | 4 ++++ packages/storage/package.json | 4 ++-- scripts/tsc-compliance-test/CHANGELOG.md | 4 ++++ scripts/tsc-compliance-test/package.json | 4 ++-- 34 files changed, 115 insertions(+), 45 deletions(-) diff --git a/packages/adapter-nextjs/CHANGELOG.md b/packages/adapter-nextjs/CHANGELOG.md index f182cbcffd2..3497dfec206 100644 --- a/packages/adapter-nextjs/CHANGELOG.md +++ b/packages/adapter-nextjs/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.14...@aws-amplify/adapter-nextjs@1.2.15) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/adapter-nextjs + ## [1.2.14](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.13...@aws-amplify/adapter-nextjs@1.2.14) (2024-08-21) **Note:** Version bump only for package @aws-amplify/adapter-nextjs diff --git a/packages/adapter-nextjs/package.json b/packages/adapter-nextjs/package.json index cc5745b3c96..6ba476b4989 100644 --- a/packages/adapter-nextjs/package.json +++ b/packages/adapter-nextjs/package.json @@ -1,7 +1,7 @@ { "author": "Amazon Web Services", "name": "@aws-amplify/adapter-nextjs", - "version": "1.2.14", + "version": "1.2.15", "description": "The adapter for the supporting of using Amplify APIs in Next.js.", "peerDependencies": { "aws-amplify": "^6.0.7", @@ -16,7 +16,7 @@ "@types/node": "^20.3.1", "@types/react": "^18.2.13", "@types/react-dom": "^18.2.6", - "aws-amplify": "6.5.2", + "aws-amplify": "6.5.3", "jest-fetch-mock": "3.0.3", "next": ">= 13.5.0 < 15.0.0", "typescript": "5.0.2" diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md index 7223ad1a287..bac9f6f3afd 100644 --- a/packages/analytics/CHANGELOG.md +++ b/packages/analytics/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.44...@aws-amplify/analytics@7.0.45) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/analytics + ## [7.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.43...@aws-amplify/analytics@7.0.44) (2024-08-21) **Note:** Version bump only for package @aws-amplify/analytics diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 4680b5bb5d8..e4ca091e490 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/analytics", - "version": "7.0.44", + "version": "7.0.45", "description": "Analytics category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -103,7 +103,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "@aws-amplify/react-native": "1.1.4", "@aws-sdk/types": "3.398.0", "typescript": "5.0.2" diff --git a/packages/api-graphql/CHANGELOG.md b/packages/api-graphql/CHANGELOG.md index 4575bf65bd2..3d8d2889767 100644 --- a/packages/api-graphql/CHANGELOG.md +++ b/packages/api-graphql/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.2.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.1.15...@aws-amplify/api-graphql@4.2.0) (2024-08-26) + +### Features + +- **api-graphql:** AppSync realtime - include custom headers as query string params ([#13735](https://github.com/aws-amplify/amplify-js/issues/13735)) ([5647497](https://github.com/aws-amplify/amplify-js/commit/56474971f45821d5049f9e8bc7ecbfc7810ea093)) + ## [4.1.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.1.14...@aws-amplify/api-graphql@4.1.15) (2024-08-21) **Note:** Version bump only for package @aws-amplify/api-graphql diff --git a/packages/api-graphql/package.json b/packages/api-graphql/package.json index 4ba9ce54ea8..3ec73b8eff9 100644 --- a/packages/api-graphql/package.json +++ b/packages/api-graphql/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api-graphql", - "version": "4.1.15", + "version": "4.2.0", "description": "Api-graphql category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -84,8 +84,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-rest": "4.0.44", - "@aws-amplify/core": "6.3.11", + "@aws-amplify/api-rest": "4.0.45", + "@aws-amplify/core": "6.3.12", "@aws-amplify/data-schema": "^1.0.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", diff --git a/packages/api-rest/CHANGELOG.md b/packages/api-rest/CHANGELOG.md index 93f6622945e..8eeebc0574c 100644 --- a/packages/api-rest/CHANGELOG.md +++ b/packages/api-rest/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.44...@aws-amplify/api-rest@4.0.45) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/api-rest + ## [4.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.43...@aws-amplify/api-rest@4.0.44) (2024-08-21) **Note:** Version bump only for package @aws-amplify/api-rest diff --git a/packages/api-rest/package.json b/packages/api-rest/package.json index 07c8bf5d39a..f7a437275f8 100644 --- a/packages/api-rest/package.json +++ b/packages/api-rest/package.json @@ -1,7 +1,7 @@ { "name": "@aws-amplify/api-rest", "private": false, - "version": "4.0.44", + "version": "4.0.45", "description": "Api-rest category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -87,7 +87,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" }, diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 800fc12c661..b139c245189 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.46...@aws-amplify/api@6.0.47) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/api + ## [6.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.45...@aws-amplify/api@6.0.46) (2024-08-21) **Note:** Version bump only for package @aws-amplify/api diff --git a/packages/api/package.json b/packages/api/package.json index 96e4bac5514..3138bfe21d9 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api", - "version": "6.0.46", + "version": "6.0.47", "description": "Api category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -79,8 +79,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-graphql": "4.1.15", - "@aws-amplify/api-rest": "4.0.44", + "@aws-amplify/api-graphql": "4.2.0", + "@aws-amplify/api-rest": "4.0.45", "tslib": "^2.5.0" } } diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index f99b9355b97..71d9453b04c 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.3.16](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.15...@aws-amplify/auth@6.3.16) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/auth + ## [6.3.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.14...@aws-amplify/auth@6.3.15) (2024-08-21) **Note:** Version bump only for package @aws-amplify/auth diff --git a/packages/auth/package.json b/packages/auth/package.json index b6d72c665ba..98def77b18a 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/auth", - "version": "6.3.15", + "version": "6.3.16", "description": "Auth category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -97,7 +97,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "@aws-amplify/react-native": "1.1.4", "@jest/test-sequencer": "^29.7.0", "typescript": "5.0.2" diff --git a/packages/aws-amplify/CHANGELOG.md b/packages/aws-amplify/CHANGELOG.md index 3615da9b3ab..80fe546ca84 100644 --- a/packages/aws-amplify/CHANGELOG.md +++ b/packages/aws-amplify/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.5.3](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.2...aws-amplify@6.5.3) (2024-08-26) + +**Note:** Version bump only for package aws-amplify + ## [6.5.2](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.1...aws-amplify@6.5.2) (2024-08-21) **Note:** Version bump only for package aws-amplify diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 63497fb4a41..9751dc9165d 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -1,6 +1,6 @@ { "name": "aws-amplify", - "version": "6.5.2", + "version": "6.5.3", "description": "AWS Amplify is a JavaScript library for Frontend and mobile developers building cloud-enabled applications.", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -276,13 +276,13 @@ "utils" ], "dependencies": { - "@aws-amplify/analytics": "7.0.44", - "@aws-amplify/api": "6.0.46", - "@aws-amplify/auth": "6.3.15", - "@aws-amplify/core": "6.3.11", - "@aws-amplify/datastore": "5.0.46", - "@aws-amplify/notifications": "2.0.44", - "@aws-amplify/storage": "6.6.2", + "@aws-amplify/analytics": "7.0.45", + "@aws-amplify/api": "6.0.47", + "@aws-amplify/auth": "6.3.16", + "@aws-amplify/core": "6.3.12", + "@aws-amplify/datastore": "5.0.47", + "@aws-amplify/notifications": "2.0.45", + "@aws-amplify/storage": "6.6.3", "tslib": "^2.5.0" }, "devDependencies": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 92fe92da22c..f2b792d3443 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.3.12](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.11...@aws-amplify/core@6.3.12) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/core + ## [6.3.11](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.10...@aws-amplify/core@6.3.11) (2024-08-21) **Note:** Version bump only for package @aws-amplify/core diff --git a/packages/core/package.json b/packages/core/package.json index 32072ec879a..ab70f553ce6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/core", - "version": "6.3.11", + "version": "6.3.12", "description": "Core category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", diff --git a/packages/datastore-storage-adapter/CHANGELOG.md b/packages/datastore-storage-adapter/CHANGELOG.md index 3ae7c273b56..244bbd8d7f8 100644 --- a/packages/datastore-storage-adapter/CHANGELOG.md +++ b/packages/datastore-storage-adapter/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.46...@aws-amplify/datastore-storage-adapter@2.1.47) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + ## [2.1.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.45...@aws-amplify/datastore-storage-adapter@2.1.46) (2024-08-21) **Note:** Version bump only for package @aws-amplify/datastore-storage-adapter diff --git a/packages/datastore-storage-adapter/package.json b/packages/datastore-storage-adapter/package.json index 9e19895054a..f0b2caa1671 100644 --- a/packages/datastore-storage-adapter/package.json +++ b/packages/datastore-storage-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore-storage-adapter", - "version": "2.1.46", + "version": "2.1.47", "description": "SQLite storage adapter for Amplify DataStore ", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -36,8 +36,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", - "@aws-amplify/datastore": "5.0.46", + "@aws-amplify/core": "6.3.12", + "@aws-amplify/datastore": "5.0.47", "@types/react-native-sqlite-storage": "5.0.1", "expo-file-system": "13.1.4", "expo-sqlite": "10.1.0", diff --git a/packages/datastore/CHANGELOG.md b/packages/datastore/CHANGELOG.md index fc0d1235912..e46aa207480 100644 --- a/packages/datastore/CHANGELOG.md +++ b/packages/datastore/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.46...@aws-amplify/datastore@5.0.47) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/datastore + ## [5.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.45...@aws-amplify/datastore@5.0.46) (2024-08-21) **Note:** Version bump only for package @aws-amplify/datastore diff --git a/packages/datastore/package.json b/packages/datastore/package.json index fc54b159f03..746b1ea01d1 100644 --- a/packages/datastore/package.json +++ b/packages/datastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore", - "version": "5.0.46", + "version": "5.0.47", "description": "AppSyncLocal support for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -44,7 +44,7 @@ "src" ], "dependencies": { - "@aws-amplify/api": "6.0.46", + "@aws-amplify/api": "6.0.47", "buffer": "4.9.2", "idb": "5.0.6", "immer": "9.0.6", @@ -55,7 +55,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "@aws-amplify/react-native": "1.1.4", "@types/uuid-validate": "^0.0.1", "dexie": "3.2.2", diff --git a/packages/geo/CHANGELOG.md b/packages/geo/CHANGELOG.md index 2b3e1c795bb..3048aa0318b 100644 --- a/packages/geo/CHANGELOG.md +++ b/packages/geo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.44...@aws-amplify/geo@3.0.45) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/geo + ## [3.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.43...@aws-amplify/geo@3.0.44) (2024-08-21) **Note:** Version bump only for package @aws-amplify/geo diff --git a/packages/geo/package.json b/packages/geo/package.json index b5007b04b33..af194997ed8 100644 --- a/packages/geo/package.json +++ b/packages/geo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/geo", - "version": "3.0.44", + "version": "3.0.45", "description": "Geo category for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -76,7 +76,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/interactions/CHANGELOG.md b/packages/interactions/CHANGELOG.md index 8774ca32cf1..2d685d3e796 100644 --- a/packages/interactions/CHANGELOG.md +++ b/packages/interactions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.43...@aws-amplify/interactions@6.0.44) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/interactions + ## [6.0.43](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.42...@aws-amplify/interactions@6.0.43) (2024-08-21) **Note:** Version bump only for package @aws-amplify/interactions diff --git a/packages/interactions/package.json b/packages/interactions/package.json index 754d707dda9..ac7e818c4d9 100644 --- a/packages/interactions/package.json +++ b/packages/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/interactions", - "version": "6.0.43", + "version": "6.0.44", "description": "Interactions category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -81,7 +81,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "typescript": "^5.0.2" }, "size-limit": [ diff --git a/packages/notifications/CHANGELOG.md b/packages/notifications/CHANGELOG.md index 7ef124450af..7dce35dbf64 100644 --- a/packages/notifications/CHANGELOG.md +++ b/packages/notifications/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.44...@aws-amplify/notifications@2.0.45) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/notifications + ## [2.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.43...@aws-amplify/notifications@2.0.44) (2024-08-21) **Note:** Version bump only for package @aws-amplify/notifications diff --git a/packages/notifications/package.json b/packages/notifications/package.json index cdc2b018f8e..02886fc8ad6 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/notifications", - "version": "2.0.44", + "version": "2.0.45", "description": "Notifications category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -98,7 +98,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" } diff --git a/packages/predictions/CHANGELOG.md b/packages/predictions/CHANGELOG.md index 2c5767fd3e7..584b8adb6d5 100644 --- a/packages/predictions/CHANGELOG.md +++ b/packages/predictions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.20](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.19...@aws-amplify/predictions@6.1.20) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/predictions + ## [6.1.19](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.18...@aws-amplify/predictions@6.1.19) (2024-08-21) **Note:** Version bump only for package @aws-amplify/predictions diff --git a/packages/predictions/package.json b/packages/predictions/package.json index 8c67b65d276..6f0a494acf1 100644 --- a/packages/predictions/package.json +++ b/packages/predictions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/predictions", - "version": "6.1.19", + "version": "6.1.20", "description": "Machine learning category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -43,7 +43,7 @@ "src" ], "dependencies": { - "@aws-amplify/storage": "6.6.2", + "@aws-amplify/storage": "6.6.3", "@aws-sdk/client-comprehend": "3.621.0", "@aws-sdk/client-polly": "3.621.0", "@aws-sdk/client-rekognition": "3.621.0", @@ -59,7 +59,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index a7683486227..38fc679ea27 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.20](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.19...@aws-amplify/pubsub@6.1.20) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/pubsub + ## [6.1.19](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.18...@aws-amplify/pubsub@6.1.19) (2024-08-21) **Note:** Version bump only for package @aws-amplify/pubsub diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index efaf73d39a5..72d767c182d 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/pubsub", - "version": "6.1.19", + "version": "6.1.20", "description": "Pubsub category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -73,7 +73,7 @@ "mqtt" ], "dependencies": { - "@aws-amplify/auth": "6.3.15", + "@aws-amplify/auth": "6.3.16", "buffer": "4.9.2", "graphql": "15.8.0", "rxjs": "^7.8.1", @@ -84,7 +84,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index d0931f833ab..e8d1188a265 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.3](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.2...@aws-amplify/storage@6.6.3) (2024-08-26) + +**Note:** Version bump only for package @aws-amplify/storage + ## [6.6.2](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.1...@aws-amplify/storage@6.6.2) (2024-08-21) **Note:** Version bump only for package @aws-amplify/storage diff --git a/packages/storage/package.json b/packages/storage/package.json index 6c026d84dd8..700f467486e 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/storage", - "version": "6.6.2", + "version": "6.6.3", "description": "Storage category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -101,7 +101,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.11", + "@aws-amplify/core": "6.3.12", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" } diff --git a/scripts/tsc-compliance-test/CHANGELOG.md b/scripts/tsc-compliance-test/CHANGELOG.md index ce1082cb77f..d1eb6394211 100644 --- a/scripts/tsc-compliance-test/CHANGELOG.md +++ b/scripts/tsc-compliance-test/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.50](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.49...tsc-compliance-test@0.1.50) (2024-08-26) + +**Note:** Version bump only for package tsc-compliance-test + ## [0.1.49](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.48...tsc-compliance-test@0.1.49) (2024-08-21) **Note:** Version bump only for package tsc-compliance-test diff --git a/scripts/tsc-compliance-test/package.json b/scripts/tsc-compliance-test/package.json index f3aace594c3..a3ac1b25c80 100644 --- a/scripts/tsc-compliance-test/package.json +++ b/scripts/tsc-compliance-test/package.json @@ -1,11 +1,11 @@ { "name": "tsc-compliance-test", - "version": "0.1.49", + "version": "0.1.50", "license": "MIT", "private": true, "devDependencies": { "@types/node": "16.18.82", - "aws-amplify": "6.5.2", + "aws-amplify": "6.5.3", "typescript": "4.2.x" }, "scripts": { From c1ba1a1024f644dee09c9fc63975d3ce19d48bb4 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Mon, 26 Aug 2024 20:50:06 +0000 Subject: [PATCH 13/50] chore(release): Update API docs [skip release] --- docs/api/assets/navigation.js | 2 +- docs/api/assets/search.js | 2 +- .../aws_amplify.api.generateClient.html | 4 +++- .../aws_amplify.api.isCancelError.html | 6 +++++- .../functions/aws_amplify.auth.decodeJWT.html | 5 ++++- .../aws_amplify.auth.fetchAuthSession.html | 8 +++++++- ...aws_amplify.datastore.isAssociatedWith.html | 2 -- .../aws_amplify.datastore.isEnumFieldType.html | 2 -- ...s_amplify.datastore.isFieldAssociation.html | 2 -- ..._amplify.datastore.isGraphQLScalarType.html | 2 -- ...s_amplify.datastore.isIdentifierObject.html | 2 -- ...amplify.datastore.isModelAttributeAuth.html | 2 -- ...datastore.isModelAttributeCompositeKey.html | 2 -- ..._amplify.datastore.isModelAttributeKey.html | 2 -- ...y.datastore.isModelAttributePrimaryKey.html | 2 -- ...aws_amplify.datastore.isModelFieldType.html | 2 -- ..._amplify.datastore.isNonModelFieldType.html | 2 -- ...aws_amplify.datastore.isPredicateGroup.html | 2 -- .../aws_amplify.datastore.isPredicateObj.html | 2 -- .../aws_amplify.datastore.isSchemaModel.html | 2 -- ....datastore.isSchemaModelWithAttributes.html | 2 -- ...lify.datastore.isTargetNameAssociation.html | 2 -- ...aws_amplify.datastore.syncExpression-1.html | 11 ++++++++++- .../aws_amplify.storage.isCancelError.html | 6 +++++- .../modules/_aws_amplify_adapter_nextjs.html | 4 ++-- ..._aws_amplify_datastore_storage_adapter.html | 4 ++-- docs/api/modules/_aws_amplify_geo.html | 4 ++-- .../api/modules/_aws_amplify_interactions.html | 4 ++-- docs/api/modules/_aws_amplify_predictions.html | 4 ++-- docs/api/modules/_aws_amplify_pubsub.html | 4 ++-- ..._js_packages_datastore_dist_esm_types_.html | 18 +----------------- docs/api/modules/aws_amplify.datastore.html | 16 ---------------- docs/api/modules/aws_amplify.html | 4 ++-- 33 files changed, 51 insertions(+), 87 deletions(-) delete mode 100644 docs/api/functions/aws_amplify.datastore.isAssociatedWith.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isEnumFieldType.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isFieldAssociation.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isGraphQLScalarType.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isIdentifierObject.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isModelAttributeAuth.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isModelAttributeCompositeKey.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isModelAttributeKey.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isModelAttributePrimaryKey.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isModelFieldType.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isNonModelFieldType.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isPredicateGroup.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isPredicateObj.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isSchemaModel.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isSchemaModelWithAttributes.html delete mode 100644 docs/api/functions/aws_amplify.datastore.isTargetNameAssociation.html diff --git a/docs/api/assets/navigation.js b/docs/api/assets/navigation.js index 78e74f15cbc..93a2ff84046 100644 --- a/docs/api/assets/navigation.js +++ b/docs/api/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA9S9W3PkuJWu/Vcmum/d2+522zOemJj4dKzStFRSZ6qqZ2JvhwJKQplwMYk0SKoqvWP/9y/AQyZA4rjWkjv7yl1y4n0fgCCI48L//r/fNPxr882/f8O+1N+x7a4UL/tvfvfNjjWbb/79m60s2pLXv2df6qfh//xfm2ZbfvO7bz6Lqvjm33/43TerjSgLxatv/v1/H8UKtmu4+m4lFQ+rDb980r9Mkv6PBX/hilcr/i+P+x2v/zND/+mQ9qlL+5TkeNZLXZSsro9mK/3PPDNTyHb+/od/+3+/Oxq2zYbAbVQJWvVa922za5v6rGLlvhGr+kHJHVeN4AaCqBquXtgKlGe/weQR/OnPfrq22bwZmKWdznTJGvZWTLZ2OtM7Lt8KyZJOJ/ogG/EiVqwRsnqzuuUxSadcNlKxNT9vV59581aUHpNsyjfmSyRrm81NwatGNPsHKcsLWb2INRrIqRrj+FhzpX99VhVvgxQ0SKWjx4n7X8h1JRpJXype4QQa2gJxioYp5GfBl1wJVop/8Ptd12rgMVyqM47f9Z/zb/79m6YuvhP1d/xrw1XFym9MwrZu5PZByVdRcIUms9RCJXMrnhVT+7OHG6JCmQmmuLfNhtj+qJjgT+ud7ju0vrT2tmiI4r7rM5K8kYZUrG2cGjZaIbun67L6w1/+9fs//TCxWzasKpgqzppGiee24T/xPdLcJZmC8okr8SLYc8kJYdyiMZyhBR1bCPQzceolQiR+yqFMOR/yGGKf6O6FLRvWtDUd3EQ4itW178uV3HEMw1ElZngpV+2WV41OiXA0ZWKW7zkruMKU8aAQM/ogqw9tWepXCGFmqDgNk3oB98PAdNIJyIaxdGL5736MrUtHkZjdgrNCViWm3Rsl4AU9fCTPVite17f8lZcInLlYBKzgO8VXrOGFg+lB8RfxdcFrWb6iKoFTD0imxKr5WAlZoXgOKrE6Yvz0PS93yGKYaMXMu5/+xPeYpuegETP7xEpRsEaq67ZaNbgCnmm5zf86n2xYcmXVtejUqpXOtvnRPa16Iavuv7I6mrbNIBEe6HU/We74isBJyyS4PcrPvCKw63RCfou2ut9x1c15/SK6XrBdppEqY7t61OKVZhj39s1LRqWx0iVVmrM+eV7Z2jaDRHx2ILkUbf3+X9EGjTf9D2djvSyzqUzyCz5M94Eq6ZA2OJ7la7baQ4aSZsqQw0px1vCzX5YXine9eFbWRo/+ppj3ml6GVjDgnqxqo/35xxnZT3z/iZXt+KSuldxaj25Wk5PpEpWjhONQo+6aGURxuYUC/qrt2her9Zk1XQn2AZ2Zu/kOsHEZKtJWjT97k4XJgzhwVXJM39fNl71+CjfVrk34ogas/bKhl/HqVY/hFFt9FtU6efYqgOESDAE8sDX/JPgXSgaPZhBDVDspquZQil0+cBROyRQI/T6IVfpkYgKELRmCWPK6FrKifB5uyRBE1zAp+SLMgTzA2dAJTmaOEv3Xq1X8rG1kxzt5MR3f+JR30qMbnWoc0/tqBBAnWBtmFGaDgiRwSMXcu9Li6jAlCvaeCaV0jxHVAfjMA1+FkFus1XdM3qykKjIcjAQx7dUs69HewcFmnjbQHylEbU/2xdSHBAFJXuUp9r8PCL6Ubb3p2v46XdVIFJAWxkNP1zZThfp63fNOl+1/HxD8LCpei9Su29Pw8zftwh1MYF055zsU+0wFPP2vmPW5+qkX6KqH3muU9P4GbKd68YYRUqcPAGl1O7P6HdQ91fCv84r43YtQfCPr2MTH1OJpTPdPqZpHt1+hjobMg5WVqrIcAd601hxtEqrPjqtaVt1GkdRnaSR520pjGsHqy8NRIXMMFDGfCr9BpTEB3qa+mA4pVWUYfiU/vuH3SU8q2jvN8PrWLzZM637/lx//+Icf0zqqOcYuGZ+lsy3LMbMFfDah7muOm1PHZ+qs8DlutoDPxt1lzPGZKPiMpm9WjsUhrS3+V3sucCci6jvxJo3tTgCb1neK7TY/314pJY2yd54QcHqY6WdnA5IWy29lv80a4j6mhTnfP9dcvdpDq3TvY2qY+4LXzdlOgEveTB86lbGUrVqBctinhOVu2T7XKyWeOShvx9Qo9x20XpnpYQSTVdt0a8cybarnsHTR1YgHptg2YYrUyTAXCs5UqnW37eqDLBJmRt2GhgRsh/O5lCVnVbeWhQCZygC3W7OyXIoGCjEmB5rL7VZWD+1zKVYXpeBVkzxf7qbx6YXqxKVQfNWIV37JX0Ql9O8RT8WjBiufgxgFEAJj2KyIoTAkYBBXVbvVYiRPyS2GA7v62vCqpuGytOBYXdtAVmAONSQaBRAc41rwsiApHYcSAgkLgrAvJWuwT8YWAYIottbNBc3TcYrhwJY7xRnqSc2EYEDmoObQakC/n24xFNhhY529YR6CZUmFvuiH33ff/k9/xtoOMlHLv5dmZ/yO17W1LTDf3CkYwripSlHxsW4hqudcCFYLurmi++e/8VVD9vEOapJgUnzKQ5IISLpPuk8OCof+cJgSYIjejrCueRUJEGnqmU8QBngr6q7CIpBMCTgEtjpZGkCM2XxfHsGQ/LvvYfYf2BZTAGNyuHmBrAiWBhCjP02GBbFVgChtWWIrpaUBw+i/KUD/PjHGGDtEmahgUMhaedrOBG0/grQL0YthK/FEBYpST85aZTLUjiNXyebjUIKm+rjVkGh0tduviEGU4Ec3JA+YH09f/ksCx/zEIIjHc1gwsVD0rvlC9zmAFIf0wd3lK1YyRVYzfHKwEjiqUbR7HjUo2oZvGVGZzaUwUDRlNVMCIvGSd+/AkmNmD6YyQJhuTRfZB7dFgCCNEtUa+9WcqABRhtVmeydAHochgYLoJqVuxWckyEEGBvOxYmqP/AJYGlAMyk+2Rw2JRtHUuMWgYDW+OtsiMJBPTHWBg0ienVsMB0aAA4c4Wz7a/o5t8u6tEn1C5374tP0B3Rq+a1kjFWGqgGDpYgSlxOJxg5jJsRR3bcPiB8kCHAcBLMnPLVcicqgswDEkx1KYXxIwiyUCJ/K1IakwwWYjg2PcSgAoj0NShPtXvmqbUJuaDONRwrA1iq2aO1nw8o5Hzv94mGwFOMu1+MoL/RbsF7xuy/BZQs+Sv60QO1z4jld6uMuLsQ3It5xJJHt2nAjDLn2ym3trZbapf4elw7tfM77jzUYWAE8zeaLXgtc7WdXcXOfO9DtKJHqOnYoaYWpoJLnai+HQ18UrFWO4Y/tnQPPVJYO3D10TA2zGj2nh/h/4K1dX210DeGuPaWNla81Qwj4TMwl4nh+U3IqaX8iqblS7aqSyB7mpSG4dFJeOTb6PhUr1wYyJ4QSHeR3YM7KSwykeOVOF/FLdyrVY5VNYyREUevP7T6IqdG8JQGEmR1AEZhySUWLzDJk8nmmGHJzQ5EImDRwC773c1w3fUjwflxIFG8GzcgjByT5Wnyv5pZr0S/LB3Dqx79CnP/fzBfl+Y8qow3wSOdnCM3OcUbo6aJheYqq7QUM+gp0++lWfbFR4HTt8yUvM040zf8xsmmHeh+Qg86en7TgsfHqCAVgSGRCT2DvVsAbTMPN4D6/a7Rxi8nPb9N/mAwAd5HhyHNAtPP29Xzn9gGHKUcLjm28NEwJTp1aK0CJsWhuR1h4MpknjYvO3yWPDplWTrddB8WOCRIecMbYjSczFXEmMyZu/Rcwo3n/4cHXxeHP/4Wn5ePZ49XTx/uzDu6uUN9mTdPoGG2aFGW7bEzxhJ/5XMQ2kbQVhWA8TFdN66dezUwSlE/VCIhvO4iEi9GFzzkLxj0R9waoVLyeNhF/PShAQ3rFmtUkR7H4YEpJ1UnHp34Vk2jSVaeAYS2S6ucpzFP/JuYvKff7e8wASlL+dJu195lEP8mMJjDbAkALDizCEUO1eh/TjyH5vv27owzJ2Ux/YvpTmOwNBmIjFP2jHRbLlcrHgf295HWty/e5+SczKSskbHg+5F+IyNGKfnv6nh3klpOVBJz573eCyOAokGOEzZ4pkzY0vlwu46UQoZqxXXXFlelBIscKXqqWSYhlfkg6bJVwO86A/frhSPEokmeHL0ZaJmsoa+eodFFKsCLJnqkQtW2zm2sS8tRRZa9NzNs69EHy25lJu879m9+FHT+Ku/ChL3KM/yhJ07A89wXD/PrUbPsoR9cYPchSd8oOYo28+Cb/VNptI57ZtJtkjCsCldWHd5bNflt3tVmJd3VSXvGGiTOgou/1cWoH9ae77mAYROxobiGMezXcSOci6GgNhZqgE/bq7HQt+yUvxytUeW9puuThB9SLUdsFr3jywuv6SHgs1xOERTaTpqwwVhqGW4f9xR+k/qCX666p6CMNOhTEXjdH04xorXY2m8YrGaXRIfpy1Voj5XEu15k3/W3RuZ2Ix9w/8a2O9N8uG7zAETsEUio+7Ql8YND4kCg6HZIxEo1dF/wrp5g39RJyCKRR0zWN+u2il6C+pIgPo5WIES14V1kvbX8bbH7oheTBpDlFOmk9Hxjej/yn+oZg6aZ56sXbBiy78G1GOZ5IpJPezgSfM/t49/nR6EnyeM77L/U+TQxfGPBNiFho/JqlZo07M8/H+8WHJm3ZH0B2dasW8+88DWTPrkEsjoO1++TQBLPiq4BUF0OD7gl7RKI2ZBEVgCsVcuw/S/lCr0dl36UUYZN9M9280sks20wquIJljqe4K1e5IzcWGlSWvUoKguTliullMH/iX8XXXk3tC8YQltkQuh3YW2/JueZF0xi+RZ9DLYtBVjRRiFEyk+LjDV1yPXDoBmXfctRFVy4+ldXd9dtjBgkAIqObxHFoeOpiDZIjkUlZDEszDsFVS/HAP31YJ+b3jjXnJbtts9H92U5uYecyIbDrRx4q9DZNDOET1X7WsUmNdue2PCkGfL82wR2LZsKpgquiCU4H7tj69yM4PmjmdvLmcfup7OnXmWDMLTp07J87ml3G2zeasKLrd66y8qV4kxHEmkmRblvILL+6uz+InqQK+tkqScbV39EPzXA2JFMtxgv+OFyJyLiU4C2uIpNhel/JLdJtpYCJ0SP5PtJoFZZzuRPKsOLXdNxUBMKROyaqeFXV9CrP8bJEc2+kXEWTr/CA6bec3sWcZuu9fd1sF2tssz1hz6zTPuI04NB+acwfxcTjtmbHP8o5P1AcA7PH8dM4CwOESTMIx08XOVCbOEfhOV4asoTXAFonZ9htD9JGSInblqac3bwlE7RxrvPAKH1BLBBmmz7EElkyGtWN2GGLtmxueW3fTJJi+x0QhZqi72mdKMchbdEibYvKgxFbo62yARof0UbNDNx7idEgcs7m7PntQY3KAk5U+ZjZd3YRXSo9SCgBBewBpCKILiHCcVOkoIrKRymqdsM1SVnvkWlgAO/vFABg1KUedCPKJlaLoQwbDvsa2QNTOXkqAZ9ktFN8j6zgu6jzcqV09R0Xt4519F7iuk+dKjQTRRU59/jdx+uf4+5RFqXTN2OSYOdVXFf0lwM3+JnFBw5ca4jgftUGcPYM3i+CaN6uN8RyzFtw9iaN+1vc1Z4XVlzo4FfnLY5r4f/3yGNLpamTeg7GShLT7Vs/KWMZSpy91eGkisA3W03TF97omDVniJyZ6s7QNreHBSZaXfwdSZASUNt52pMka7WTnxb3TJjKkys6LZ5uLzya00yNsFt3P4TltGNxB4bFM3TI7s+xaqH7yPnUeZp4kyQQ05+NNGbX0b9H1WUX24brOThpfstT+lDNVilWrFK8aXRaJZedKlDs4TCu6lA2z8XFoWq7cybLGnOmZymvJg1twU1zS8pK7z9bjDNpMCxhRp5VDok4cp/m400OTZFvr92mD88TyTf86Z32Wc77H0U3AQY/YTl+n3Xynb8DDs53XM0+RrpvYk8jqQuT0HYLbVD368b2oKVMZOV75HZSEDafpjjlFCekTpW4dTZshAmczscOSvRKVu+bUN6g6aFG2lT9p5qRT2oNL2PQ6M2KHzapHec8JXW1x/LktbB33XTmGdEnqroRxnwx8K0Wa8sddrvLHXVzZs8s6bhDYVW35FHwlC27NiQTED78OKo5DpUTJ8edJmq4V3SR13yqu5fMymcBK8pgmiukPQ7t07SFBTNezyhVTDyxuzT0Aj8CRLuRijBLT5I0EAd21NVhLUraTBLQV3/LtM1cZ1HaSoLY9HEtUtxNF9PMaX5XY6taxEUeSW1QlSDAMPhKdhl+HFNM/IXXs21HPxgAZumayiMd9QlCNUfg+HO4u/TNXx75v7XyOOknYkS7qklW97SRR7fwPtCNdnktas+tKGPB5tfuESRaTNMHezLoSjbEZ2Rcz5Wn45aQ76omUMlvxS5L91kjX689jJAaXQ9Jc3BJ+w+jCSKqtXyhi7px9yXK1FZLspgM/gN9BIsFwNsuR7XdUSLJD58+QiBiGJiqybJ1CPvOERZU085CQzzy0vJLm6lQI2gVXqzNM3TpB6/CcSYa3R8hr7l/tSTR1CPjMwosxaX4eDZ9lZFkmzdMnkmoKy6lXJWSL+8RkfVuCizYAv2j+cpdv0hiSVcFYsLJJl/WDeZZ0UgGmyb1G8O5FWr8C06FI7ElEF3xy3FwyIeP50k+6m5E2ZAHsHqX1izAdosSeUHzjVJpdQCdsjWpY3RJhQ3ynL6CTYQ17rCGhDHNYhzMklGNOlvV4R8y/tJRoOk/vs0pZz0ozDSoF7b0rWxnGcw2fpWuNK83ISumTDy93pRl5NCKWsExNEyeYmLOD2SZd4oiJZ7oty2uq4bN0LWSlGVkp4/Kumb1cI0vDZ+lefkqzmqQNWnimdTOMpgpBO1wZuiW8hs71qUQnO63PwrdUlWYyS+2z8a1apdnMUvttfAtYqUaz9CErcMs6TewzyVjWSjNOEfTDzFa4Uk2PCb3ioK9GHftchNa9ciwmCiG7+/yuwzFZSDj/e1fHPnTBhbE0D7dE2BD62sxSh21Q32+3RIZh9rfBo+Gz9C6ipbnNk/uMALcRHKxgtxJc9Kl1UTxIWdae00++A4cB96CyzTY/ntj9+F6tNrxuFGtk2kGsAI1TNHRw6pBg2UiVFtYvxb5TC/kOxQa7KiL+OOLXRlhLQLoTMI97ASOw1UK+49FGrOOok+J1U5A86IlcyPm+C2hEVLiWWKxe/8T30QM3kcqsJWJ7S40qNz0WnO0504qZd79a8BfF6008LFLA2RZy2/7VkWvrtpLIqd9o85ouGmpZL/kLa8vGW+WjGG6BBEtXS5rq5ms3baPAFyNqFPkw2EaT75r1WbMjm6W8yTG10Ks8aBg1Yl6zPBfumgh+Gdvcunx3ldZvSLdP6SdYBKp/JV2ti39v08F1ljq4l3LyWz1EkW1zyYt2l7Q5zG9rSQX3PCZcSWs45dxNi5pssa6qzZtzgU6IWJaReRH74rDkUswtvcy95aN+7hbz/P2CllPyrsH8XdXGpXehzdX249B9ldr+KLieyOFnSc8jcwx1FAde61bvq9WFLGfBpyFm387VfC/P//nm9xu55b9XbVVx9fsvUn3+/WDz3d9qz3/u2OozW/P69weQ3xeibn7P6+3vu47R//kGnoGnJw301AM9aaAx2dPfas9/jkBPB+EnDfTE6+1T43gIP3oeQll2cYL7ay+lirRfv1IuvnVh+p7vWVmefm6SMtIr64Dm+g+nmZUpozczepQlC77U/US+jiyZ/mrZmVOmZmh6gfspZ+vAmpq5BW9ahWii/5mZO7CmZs4ee5xy1gbSUMbG/v8J10QTMZQVqcQ/ujWfRVue8AOaYvr3pG93shYN7ycBXkSsP/1rZcoNGtpqX4pV855VRXm6WZpCBrLTKFne8bpma366TYOT05upLqzuyde7OaX3iMXN8uJscXma+TjCefFZw7p5ue54yfpEszGDjGZnudrwLTvx7Bwg49mp2K7eyBPtersw/UeSugnhB65qUTc6oroseKlXPexIsCeVvxhzILNcKV5csLJ8ZqvPC17L8pWrWcC0E8ttBNqX3S5q7Ul/fSeEwYyc7hfXxPOe1FJst/n59kJW/W1Bp5kTB2UkQ93ky0lnZiSMZqRsTvU1mSJGsrJcsZKd8PviwvRl6dS7pkmd0uOPzhWrTvR1mUPGs9NPvarjH6YX5J1mBv3YiVn+xMr2RF8uD2lixk60D+SgTM3QtVQ3lfhtVEkD1pu9quBfeX26jbsN6M9Gw1XFylMeF84Yo5lpn+uVEl2/fJh+OfGcOYF92fyJn/CE+BHOh3+rL1p6FFuuFmzFh1FU3z6eaKsXIfZl9I5VbM2LU+85uTD9WWpWG73paXJh6mnlZ8LozcywpfReDRMZJ5ofB2YsSwvOivuq3J9yX8LL6s2cnl06q2u5Eux0h+4OynCG0o6W/LrZSTi7Yv9QL7v9FjI0cKZnqrvt+beSsxE2PXsPSu64ak5080eQNyuTk728J5/JkTctk6fa4s8gw9kZ9lacdG4MxmhmTneXxBQxmJUTnmq2+OKZON1h1IwxnplTfk3S+nanOz9k4kWzcM7qU65VBmIkK3XDKtcZyRPM0gw1mDX7kODJZWfAC2ZBZ/WEszDgBbPQ77A+7YGcyRjMzIPihQ6AccpvvsmYlpmz9VrxNWv41deGV6fdZQ5Cp2X3t5TL7Mx90GVy2m+bizUtc+Npjd9C5gxWb+baRs9gdulONEs2oS8jH9iW17vjrPmJPiAXpjdLsvotjCBcmLEs6Z9dyKpuVLs62ZfJDxvI3gf+ytXpdvsmhL6M3D93R1F/brnan/ReSTeoN1u7032NDmx+eJ09Vpb738h6XxjYl80HthZV901OCGv6a2VtDunNjr1n+USzM4NMzM7Jt+FB3sRMnvbe+PxN8UbPfqem8RZOKmtO0Gi2Try/5OSMZuqdku3uRD/Cc8hodsYNSXU0ZPavnqkJajRrp7wjdg4ZzU7dPdQTz84B0p8dueJ1rYdfp5oVEzCQjaJdcfVbmAn0ssYy99voAXphY9lbStX8Rh7dFNWXtX74VZ1obgw6XwYWfNWqWrzy38KL5YfNzN5vZNI9gz6zAH6T+YZn97Qn5uPQmdk97an6OLQ/u2VXIqc7xJkQxjJSb8QJT8w5KH0Z6g84nmY2Dmx++NM9mRM9kdP/4ISn2GzAhGyc6Fh/QhjOyGG165TzYkImZuekn41FGcnQsMJ10tk5MqZl5rQfjgHpzQ5vuiXvE5/HdGF6syRVc9ndRnOy3c8pYigrJz5ATB22W7879cUAP2xS9k55VtYNmpStU56ddYN6s/VbOUudd4Z62cWi7kMOnmh+bMJQRrq4R6ebixEvmIVTb+amjP7M1A3fdgE6K16dbN2aQvqyM9lkdcdOtFFzcvoy9bHm6pSH1RafLxOf/vRbmBR3UHozpOMpnHp2poy+zAx3n3Sb+k505DNF9GXl6UnYEamenk4zQ25Qf7a248ac082QjejLiqjHeAO80E/1NHPjoPRn6Kpqtyc+0J5D+rPT/erkQ1c4Of2Z+o1EOXSD+rP12wii5+T0Z+q3Ep3DQ5qasUNg/JPdvxYhTs3obyZ/edl6UGLL1P43kzuLN5LJk/+cJR8XEvVv5AyUG9SfLXvH7KnmaUaZkKH757+dfHZ6Rn9mTn4xeYqYlBXdFT71wD1hYH82H5la80avfP4G+r4+WF/26t/AtKXN+N33ofucfJc9eq76/RWyNEHssnjIkb4/2LyAk/wSybYR5SndIal5nuwy8Fwh+eHs7mr5cHZxtTxF+m8tvNwrQ445cl2F/c/PkY/TflCzi8S7NA9KboUZO+i0sjTgBXNy9ni2fLxfXB3z4L4m+1fIxYhm81v3bl9eXZ99vH18eljc3J0t/ufpp6v/efp0dvvx6ml59XC2OHu8X5xgxuLQgSzfXJ5ejm4ug8BXHx5vrm+uFl1OT/jB+EgDmdMV9OzdCb49A1gI/X8+XJwg9/98uAhAf1xenWDF0VQBaK7X04ctDvXp0Vt4gWywrnP6ypUx1+O+hP2fn4cjm50B6yb57kfT64pOKgc9XCwLS2mevjypDGi0AH7RbQwcQvFf/b1lpWhOsDY5MQPZ4rXewSnqzXjG4awq7Ng1p5IzH2koc183rK0b8covNnz1+QTzZAMGs9Iotmp+4vubl6uvom5O8QnNGOMZOs5qd9Om3c71k82ZCzYni9OLR042ez1oTtbqs2p2r8rJZu8IG8/icaquvlZyu1Srk83gHDWQvTVvumubTi83I1kCvM6mc7r31PIyAU3I2ml+hE26cCY+mFdXnBD+B/klDN7dolyxU+ynmnThTOgbpOqGbXfTcO0nlJUJYyBDorrjW6n2x0gbp5ehOWMwQwX/qhtq3S6c5ps+Qwxlpz77ZXlp7aQ9mWyMaCn4ukaecBY0XiwbV1smyhPNQ8cWy8DNw1lR6EXEE83EgS+Wkf9a3n840TxotBj+w0ZWp/oydGyxDJzwy5zyIh++jiech44vlpGPi9sTzcLHxW0Q/qYYotaeIv8BLpKFWQje08zMDDOYLX/k2dPJ05QxmKFx7+CJ58mBGc5WW5b36mNV8BdRnWbVmyAGs/OgxCtrunBNp5gVAy+YjSV7YUro3eCsYc9CrxCcapY8qIHsfeb7ulv3OL3sHNAC+Fuu1vxBXyt8ijOpJl0oE7KSjazE6mMpimumm4kTXCpzUQYytevDs5qHKE7wCbkoA5lSfK0jh6tDw653gZ1erpyYgWzVUjVdo6H49ZCF08uUAzKQpUYxfXh2ek/PqWTGwgtk45WVomCN6/D1qWRlhpiTncmFpSebp44znLGWn+qH1ICbZcHcl31WsXLfiFV9NmkCeNVu0zMxkbEtzS2pZzuBdBoFAh76rm2cyUHB73LBGr62vtp5HmN6v4O+oaJbzMBlZiLj97tWbMt1BYQ6HQT8Hu+4xOXmIOD3uKnOdrt+y5uo1jg7l5bfuW87uvcfZzsTCni29eaD1EePV/2eH5yxU83vrisWWyNrqCUSeK8fbuAnJrqzDb3CsFX+z65mEGtg6LhsUCe9ewfzCLYlfnjPkQ6mjsPmHZdIg17BIW2/bEiXmZjTsOF6Wwju6rbBzpJymH2QmNj/m+FiOs9TMRoMpIet5LJqn5ftM9ZlFHEa2G0Q2mom5zAd2iCk11HFZdHHxHtGmxg6vkpdsfLs4WYyVs09wDRVmp01+l0vqff+8p3iutdcfGO2d78sz3Y7Ha1twVmp10MelHwV1mUCgAONftn5IcQUmNnljaRMg3oQrXvfrHBuEIRRJWilFNuP8fORWbakgqaegEgQU0sqbLqvVje6VX4uOdLTUJpZHl+Cpi6+E/V3/Gv/2nzjhLHWLVAws6WFVJiLtm7k9mPN1dmaV80lb5go63NW44rJLxt6TJ7YUgB/SyloOWz6p3kNZmoha3/oKYDzVCxkPERdomjqbKmQabcRksLSFAoZ3kr5ucW1or1EyOSOdVdcPMruiVcFLmsztaB1QnwlCINXNh2GliHL2hWnCE1wFA2BdCs9KNdOAdaOD0fAr9vyRZQlLxa8bssGR+OUROEt+N+681Z0dLYiDK4PoaI/GSiio0yolkQirwB8nYohhI+35tlygKMWAPZ9vjDRmFsbugAi6R2ePvnE+w9/+dfv//RDkv+5lCVnleNrnwcy1XESmd0sWRVCP5fxpkCo8Uwo6uzsiYHtnWoxhkvOd78o0di97zxnUyPmd9Wf8IFaDcnhtezQK9K1w3q980CmOrF86+Xr+5dlu+OTqJ95thOZNFe8YYrXh3b7rIfRyNd3IhNzvd+KZtxy15+nfeVgb6dYlGCHqUd96jSPP+BM/pDm8j3O5fs0F6OA719wjpZUzP1BrD6T1RenWJSg7x3pK4ccncFMAIcWvG1c8L+3QsG7AGN6OEEfbZioJXGKxZ7OsaeI8D1IRN0aJao1Pqe2TMxVp7JvD8+zG9PHfKZ9ET0VOF+Pz/MOacbfvPG63dLYC5IfAsbUmcVq+eu8s5Ef7HuW0LbxhKxb8+a/lrZNbKPL3OggEj6X+anfhyNklb8vzWk6FwzviGmbjZ4JWDZKP/29ne3QwrYrZWAnhP8Rhkxmyb773u9xK7aiO0SqFmzFh+B3syAEIbuQgt93HjX8rCzN084hS0/iHLf5KlOeoXs5aebp6OtHfTz9elPbFSAypHv8vV/zfpdexfrfhna5dBto7YY+JGgk8KsaF9AnSI6/DuxMcd+mGBK1kgT2ofhis4bXV4PxUu3AjeMazzZLWycIqR42dmQtC9upQvr23UIXittrXWEbZ+Kom3V7HsTRJRByPfx2XBuvrVnnsKMzcZJb8tM6pgjWrz7dhay6P6RPC9oJg6uvk4/hA1Nsm7NS4haIWY4td67TIV3MQCrxj679XrRZq8qztCEjXb5KlkPYvsyF0XnikNXx9ZbVi1hn+ExSJpksK7arNzKnys3SBo34C2vL5oGrWp+GqJq78comLZPjGhSKIDhDDucvg0aUwguvfQMzvVcv6mknTLIIXUma7jdXCZn/xPeZb8WQIn1RMUPbTphuYW8HzbTRifOsHpTccdXkLJL6ReLWbbPJbCOtdFGDyTmSNHXHoQ6fdGYFsxNGLW6qumHViusmpchrm5zpo4b6h7kmOk1IOHDxTNRglja8zD6GDLqpdm3O52OSMmhiN/bOg+ZxP69IhjXggwX4Utk31+R8mSYpk0ym17elm/Qpk0ymN32nm/Qpwyb94iuiLroVQqZjJNfMl8tMFpJ3XuITVTdSxcXH9zxbf0wYtAjdXh/3macOmg3HVAq2a7J2MNsJgxbOi9DjBkaymPzkevIk7S5NWNhzz3aCvJUyuIXFcVF0VP+YKDiyK/vvUOaCySxZbKHgrCzzLdLVJ0PmRIdJqlyXBW9albhM7U4b30gzbEg8XrKZZudImLBpp3uN3rOqKNN9rERp23OyMzNJFd2Acxg4T96ZkMkkUXTTjW4YsorKTJGknr7H5PDzmO6whnLYVpUmP02V6DIZpiQ4uMYofnX7woMk+fk1BHP93NqZXi9v7GvBc+W7ROkeffus/NcIp7l6ZDI5unUzkHWXMtMt8QszTZXrci3VTSVgJTomjnrq/f+8Tm8LjAQx7SGaWm6FnyWL+zSrjd4P0C32p5qYaaIOw1zAvRqmLxNNpslSfRacFfdVuc+pbe60UcduZsi1dzroNUmV5uK4/TNuckiU5jF0g7IsxjRJDlmP5JggSTv9bT/8PFnXPoSWpO04YObT76fMZuuECTZWyiQ3O/hV1GIehcqj6wgLFBX3xOmJOZyt14qvWcOvvja8KpJbxrBIHgPGGub4QdPmtTGztHmO4wAP4jimjTq23S76yVRM0MdIEd2irW/U2B13CCVmZZYs6jPMCenPoXN+NujmTpzg+YG/cpX+QpspopuWn2uuXnm/n2W6RBgycSRM3SB9iCCb2+cJCES3SNrz02l+k0TJ2zBdF0EHfeYJk70cax9JVr51D9e27m7WGNL6u9OmOlrzo3mGVtKY34KvWlWLVw7Joicx0BP4yUtVA1KRwCAZ8j6LEREgQ96HMiISZ+jXUOqN2KW/39NU8WMBeiNvmnb/27SDBqmK3lm+WGwXYxEo8YtlpkjLxKF/kGNwSJTpkZWLY6pEl6HvkWcyJop68Kbrq2V+i2bJoj75H4SsD4H149yPuCdxlud0/TjZz7l8PPcK7ZUKekW3R8299LpdbhFaaVJO+xj9aCt8Uchlni7m9OlPkJ7BNFXURc+x5npYaWIO+kyRbJtucJDYElhJoks+N8uLs0XGHfJDAlvXuhfaEVUwKjomCcg+PQl7Rv/pKd3AkThotR13xOSZGMkC8jrebsa9393PA3KiEs30Cx479nRMYwtPb5rxROGKytehoFsTE084p7hHIHrTxMIfQynuEg6ZNDEKHNGKO0VO2s1uofGtT8WdwotSrnthPDtQ41axLahBM3e4olxTf3SioDnKM8/KFY4o19EXfchlDHrdQnsvPTfvgHwi2zxn18eYGwtzfOyUaSb3z38DWdw//y1o4NxVF9f3bqvzy+vm2LVglWVmiwStI4GM4rYJcYvsayo8vdiYk51uekZ2cuRXVN+x3e67bVrkYVE9sd3u6fDrSafMfYL6Pw5nvf+lW8r9z0wPdyjYmKsRA5mfyyK+8z/Bd6oZPiNy/K0+lsRElbBxMhPiIJxK8p6zlAi0mRi9aiKDqNZXrykbJfMgRtl0iqHvsNfbJNO2M2cTzSyCdMaPE5ZDUmDmivHdJlbtSt0PmF9vczYNmkmNYOOTaoSmmkpnYIlqveTqVaw40ZMLSEeXuipPfmieY0zejfdXz+PMf+fM1KnN3nnbNAlRB4NevUZOkw9q5BwiqZ43W3SBdhKpfstmn3DGLejXSYSPWekGbF7jgA12UC7EcSnqnd6Q1tX0iXnCazRPnrjV0PV1SvCLfXiCTez0RpMUv1nyHMNbtpe5GZwlzzF85F+bs1Ks4Zk8KCS3xn2xPLLPfFp5E6y9KhD7+7ah8O9lkgEuRb0Vdc0LRO5tjXxrTM4nIjnmu5Ltsfk2NPKtkfk2RZLNF3zFxSsq25ZEtjEm07ZGwhrkpEebn2mPRsx6VXKmBujoJMjM1EodmIoozM9XtouVOjTHYny0sk3MxCGPSjSCleIf3HfjUqqfRyjgXXk6H9nePqGAt3Q04Nm+LpEUz0PTCXc8SCT69U0Wyq+XSPEbWwu43agQmg6cNRDZdnOJyPQjuGExEwc8dqLaSWE2KSkzgk9jsqSJwFDPPd/tW6dcD/Dj93/58Y9/+DGtEw+wdqn5nBPHTQCKmLKPKKEjDKAJqeaQTDsLRCgH2SiLr3uMAZlpplNQlsdcNIXD2WlGYtia6RTEpTERjXJ4utIYiqlkMgNlUcw0fRTRDjaAwq/po/D0tQHeUyWfo6ffDXCcKvkc3X1wgOFEyOsX7Y9DvP2iPo543xzAERD1cYT76QAGj2DU39Fnx7ibcine0/470vsgF/We9+Ux1oaazznUrwdYO+W83s4+PsTVFrL9/jrZcVDwrzGzgn99m70FWhi2oeBCFvwdry5kVfVRjGNRpX1mTiEbwQxYe351e//h3fLp8R6et28tkd7Dujj3/dny6e7sw/8gLAwJj8H9hyukfq/gkD97uDnGKEmJ5eqzmgqF1oTOHm4WvG7wjkeVoN1x15A+950UFs1rOtcKWZ+3q8+8ualeJNjxKBEyupDVK1fYIrVUgnZdXCFHLPtcQ1snw/JMrdtt2kJxkvWoF0Lo+oDn7csLV8iCnimFbNOClvqsotFLh9d2jGaNzJlTLWX3DtLXlkkxvKoa0QheDwFM4rEsY9ZTwRQIvRxKBmCKxc2b/S175iVV/qdy6fvJiGpeSDQMcxhf1Lf866fv0RxOvRyEH4gRfkhE2CmO/YRMdJIsaV4Cl1rI/idR8Vqf7lB8I2tOVAuDqgk4tBjp9l1NPZfYx2/LxAx/oDH8Ic1Qrrov/bApEOvrUgvZZ0aK9/lmxo1Pj7IdNMyJUd4oWe/6AVpi5NWgtUMwvO8tN7y4zz0v2DhXtY5yIv5B1ZB4FYMYw+QCFYNTLgjQnXfpPjw0QxKfYCIEUe/Sq5iKQfR19UsmglBVDJ9iGGM8n4YaENsyQcO23nSrrqJvq6kyH5QNAS2ulo9EEHOpkPHyj0S2U6Gg6eHqUbjdQSJulBYxPuxEHZ8+7JYUrX7H+Wrzjld9ABp0N9mjF0J4VKw6RJJAAzjVovYlazjJMMGpFpmsnL4zrl2J3jlK53syD5BesXLfiFWN8LIloo7GTCYvZbWuHyXI1qGT4f2e1XesCoadT3AeVPJ8rYsjobaz+ySDrrE4OwmeKTF3zppbzuoGmsFD6piPZw41cograz42emprko7CO+qZFDMpOCGb8hTj8XiDFtFcvOMS3tocEkdd+gnhMRQxyMuWiB9YOc5+wTM4V4n5mn1ChLFDJub8wJTetwFxG5I6HY7h3Jq6+E7U3/Gv/c1731hDztVnkLFYfUa4WsNCYEnPRGLlvOArqYK3D3i7611KeH6PHWFQg2Akj57JSIzRl9CRpoxzl9aTjjv21yrB64wlED+yq4MUt2rFZ7U02G2dpAp2T/uER2F3MKled/ixrfdHm3jX1pvvKrMNCu890L9/sn7/FhtQHC6w3Shnu6p+KFnzItU29XrVJHOHcHQt+bYLVMzVgm/la0J4iSQQl3JweXm1fZMCmevmzNXkB5lIgoraZM0ncaX35tEVWcAgZTE5MQBGEgogBMZ9NeUfw5zE4yckMcUM4oCP8jOvxr2FdFgu2WifbZKVd7w5Z4X+srRVEz+CCapPDg8A5i1rq5X1x7fD9XkBsI8v07JhTVu/HbTbKRf5vrL+teNVwplgELLXiQL5jYrZb4WDPp7vOGerz2sl2+qfUupeX/rs/FOeiN+YKkPXUvFf4/lMfOmz809+PlPj/AxZn7+3ehhzEyTomxWzwyUXdfoFIaecGuQCLvjfW14bX7r6bZ67xycXNz3GGIgyL87YPLXRK3ubYpxbxKcuphqTS6C7Sas4m1PFNv/+h38L2KbGO0vwTgh+hu+FA/rYdH1qRI+ZqocM7v9mBe5yGGeH7qLqYIO7z2TdZXhn+G06v0Rd2zfqylJ1VN+mY0rU7XyjbiZVJ5Kg0wjpElJ0AUEdPJr+ErA3hO5gpHYfjpZrM8XRzR0Fx+FopbfNrEA4a9cHD+Y31wn7+vvoOa7hjjg4zJfDLDvQ17T7BMlhQC3AIB3fM4C5SybZ1fVdQDO4RAFEx9aWkOgoGiSyGj+QvaUQ8FKz1g5gNxcJONbIVqtObLXSwnfNDfICeAXHMhDDb92KPcQ8SELSsAbKEVAO8MRGOFAar66PJTPAWZQhJ8RZwrgHxBDSzWEheShB4TSahNEQAVrIBc75BmUYtMkl9Y6RSEHnLnDONy1Rh42fNDRyAlI5JRMJiArGreljiI6nQBR+VR9HaGgFQnAK+tw9oyyQ8VQr4BkacUG9nZoBBv/oC0rgUPT5pwd7ixpnh3sLjMpgAEFlH094hAYC8UimEYRHawQ8HoNcOtfIjZTOMvDTeUZxQJSpms83NKIDWTsFfe6e0R3IeKple9qB2+p+y3DYcfjRW+ydHaWBG2Z7lYTVP7+PqRFa+8sIl+U3SwuYdb5veL1g1Xq+KJzvONUKGV/I7VY3b1hTSyds2F2GpIM56jtQU8J1hVynYsGNqQ3f6jBpCMNRInhGdtyTv9t3PSZ9OaV1k2q2q0dxBnE8u1HwneL6os/imznZO958VOW0owylMtUSioXgIUyUEkz1/nOq/B61EowPh/hoa4JTFlod5mIPzLxTmQ5S64IK7UHxF/H1TZA6ZXTRDQ1f2tGAdExTNqngsM24LZRg+XFXSlZcsoZ1kA9sr/+NJ3DrRg/mvziOHGQjTJRSTB9Z/ZnAUcuE7H5RoiF4yqZMdtXXX6FLXjeiMqvorGmbr+SGPuMBycgpRT/ksju0RsXnUgOhXcov1Vi3E3YA+qkcQrF1cEcSVMH49aiKZv45IuBzfIe8RWW/2RBzx0vt3O6m5I4rHbGT4skEBEGPxqcHfzYhxYTi0n1OzNtjSWT5YZ/LTAn6QGwh1JOYS0X3RzZ8iyoJQwBUAGN6eL5NhVh2da//rKQpb7cWgGDSK0YyuHrCaY/iOCTSRQoHOmoQYOCf0Vwr5Rk96IC/rOFkVcUjCGVBVhqvJOiRLTgrUM24IQAE0CfSkQiGRHznZb2TVc3PZbG/E19F8OrikOdEJjHSRD8bCfO0JBL9zA6YewoEQOATBVWAkCb8vY2pAoovvjs4CyfxStzDHN+xr0b2HL2qmAfpFkU/Sb9sehF+VCVl2U3kkIVmqlGU1lQvsZjgHQhDIMOL4llge7ITGXTp5/RYjEntY3cQ5W5LZfjTVb+ZGogC0VHy62EqiKP7hcab6CUWVN/lIWvM5nIwDnTFceglkizbZ227bBRr+BpXHBOtRILJjDnFc3FLYqqwQxH90Dya2cU2W7tAsbhXLGYU5sy/3ugVjEiZtoDQycR8j6ColmQmk+2Lqqc+NVAVdYrBa6dXLq2I4PPOx/TxU/VDtc3YTmOmCG2eGWvkg5Jrxet6cvdtZM3KmTq8rWTYG5FSZocfg9eW0gdjx1+DzcaKk5U/K1GsypkJ8rJmp8pZf0rOzSwRfm0pOYuJI+Yc8+yn6U2cU9r5T9efOmsxKzmb81QEC1XJuXUkw9tnP2p/6qwyz3/YgeRpa2M5WRx/jln3ysmZb3tajiHkUU6TpZUk6OHN0iWuJiVnx/w9eHFGTwsk58pKgLHMfnSudInlmf/wnAlz1naysmUlAhfqYdIgK5d2KrQ56LE6E+eUNuwBu1PH14oOsxEpRsbPMUthyRkzf48wzH6OjmRpJZn/7Fzp0ke4yTmaJMGOXpOzN02DNM5+kp6k6SWc/0R9aWOeK7kz5ijcIRhGD/1bW88Kt1AYHetUSTNNQHptduNSta1EYfGPqsxQ/ajKgJyoL1i14uVk7iGsaiUKiJeijkbMGDX1bwNSqmsDUsX6Xwfk2l3usz+mCMjWf0w6dfVU/zHpmJVjOiVB9Vszme/cm2v6JFU7ehA7MF2S6jFNnmIFzc8svc8sMHGS4uVKnmIFyZczfYoZ4rmFZHKssflNfp6hKZIUU2f6JDNIFt0CSXaIhxrUyTJH5znnuc4nQxLtjIRheWB2zJRhA9xDcwik2cHzlfx83NMeKUaTlBEDSFamSSMWiIfkUUg0ROQt6zl5JjhS7abJU6ygWZulTzFDPkCfTI41Nr/Jz9M5lZHiZicMy0NyM0kZNkA8MbdAmh08X8nPxztpkeI1Txy3geTJkTpuhHhmfpF0W1w+k5+fPT2RYjKk8Am6JylShCcpfQaeqYoUh2nSgIU1YZGo3afxidozCymSQwqf4HR+IUXykMYn6pplSBG20tniVgwZrl5jsaYO0t1vk2YdYJFkRgdYQBlXbI2c+Ad+d5/yfBvLX71vcnBmaLSOzDdCJgVH6TeZGzTEw1OEGbN4oyblZN6o6ZnTs8MqtY0oI+1Y95O3eBF6YVj9f98+X3Tz+8HdXz6HMXVoJ9jN9/9WTe+bzfE4pg+5jG8bW204zMdUSHXqwx7h/XqdkOvZh3e3V0+iqhs9AV48MaXYPh4Ewmfulps1TUm3QZ8tbs4mZ9lyaUYFIMCzVM1SrCvz0vFchKMGGqLbrXjHdhQwoxYUqm70tfFdODAEjqGCA/lFqs8JVwvHSHoZChSCZ+WSA6IVhXVfcmqoFy+bWw8I15t1gnbPMpdqIhTa13tWiS1r9A3icLuDBDDfXfqUQHVhAld0ujyAq5cXvopvoo5i9DpYmKQN3XEW585uAMpNJahwtBQFEqpZmSohga4V2/IHJV9FgWl/nXJItIeS7Z/Z6jNRjbLkKNFoathMEon4KLa8FBW2fTSUgEC6B3nevrxw9UnwL3AcWwcIU9diXfHigywOwYXgRA4xIFbTIN69poG+aW0hZF+kcPejBhoC/UBmUgikByVXvK5FtUa2Pw6xANZxM92/ZBLimiGPILQAm81k/1Y2z6AQ7AS2zcYObg9wmV80NgnBzPRpM/gHe0gPK8hz/iIV/9hNnOOq4UwJCFTK5wtWlvpLBWcxROAYyPIYFZAAqLfOUoGDDFOx+3O2RqEYOkAYWcSjGHsJZBGKVRywvbg8ezxb8hVqMGaKADGWy0WLGJAO6cHmy2Zf8uWGc3iFtFQIQFBvx0wJCGRP/eZCzKd9JyeM+3laex4bYuKay3ZY2ZFwIEaOUDhuG2x/bCoUNf255WpP4moqIarNMBePYxlEoBjVK6sv5La/yaDCVLKJEgboUrEvN1tc0Vg6WJiktdk4i3MhNgPlWpTlslHyM++aLkwtdskh0RquCIi0CgbknWKFwPTdbBkMSlf1UJPWEx00zHIrZbPBv+e2GAbrgTX6/0LyDCoYkAVmkvsogUOoCq5Ete5umPna/HCJBpoK0uIteaObeuxb7xfG4C43rJBfSBpKUwqFZMdagrE4Ai1lQTzqf+AYtAQWQX8PRbUmeT4zPRRcFwVIKkw/2NLBwPR3GQ/uSCBLCwi1YXrVmSvcV81UgYKIspsaR0AMCkCAUuyeJVPIiTNbhgIFNyieSUGRZM2xJTNKYBGQJWLKAFHkdosqij492Hy8pg75QCZCNDi4h+MQg2O1DS/6TQqPYovqIzvEoFiV3ucjqnMpS86qB6ZXwHEDLa8kEvHy/m7Z6F4cJaRDFIsp2+eS47amucSQWB9vZbUmojpqQaHkZzFOLOG+9FOl4CSd2u+a+K2nXq8uOTDHbd3I7VXJdTvbl2O7ahArjD5BArwFX4u6UfClEKcaCgz3XTlqoCFwXxNbBwZzeX939XXFd6jVIlMEjHGz3fWPGLeNcKYEBrpjjUq4TzMA0isgAX64RNWSiQ4ShgaFAKS70qYq4a3KTAkM9KCvGMdwPBzuKAfbY5/LQQSHQfFULCEwDmp6dEiPMsc+kVEDBUHxPEwdMEzfKcZs9TVFgBisYWPIbDiGIQLE4K9ixe8kfoQ7UyICOluteDlcrkwHZ6q+ASjufYspEwHTQhKCLWTfWVpgJvyDqm8ASluaU2UM8L0SY/eT4hWfylGiERSiSxKIKFctaupxFMDZn1XFMNzs8vOeVUWJmR6K6L4JLPpsTaI+Dp6MkgbnWrE1Sf0bhXA496pfyV1IiUcyxXBY6MM0UyEaHOxWOY8eEm6/Iyin/Q5cRvjZY/Sk8aViyGMjBwUkAO5jZ6rAQK7++/HpueRV8bQV1ZbBJ5emQnCclSylenruzgk9vZSSwQvILUeEtmHlCzXfURMO2SXvnwUKzNBBwCi2fir4DrH705aBo9SLd+coCC2AsN+wgqsn/ZdW8adS4p7OXA6ONoqs5Hanr+0Ssnp63jUrFKBPlBZTrd8AU4viMV+6rbhPrBK1bJTcCRrQuSwQlWKhHr9AP/Tk4QR9epT5xXJ5U+kOVrf3DYtiq+HA9HbOqrkqBC6WhlsOh6Z4N77G9nHdcii0S/4iKkEINxNE4aFHmBMdFEy3nbFiJbqMDkJAHH2YGH1y1VJBgODGBkcJLAJqdGDLAFFwBYEogzHKEOpFMURC+2YIypqgmMdoTziIUYUA5P75b5g1S4cWBRS2SScLrNW3v7IQL0JvC8fWHlMJAfTI1BpxwtjQAEKMfwMTDALoIBzXAtFj0olhBaBTUpz4n+jAYZb7GnMm+SiBRbgUiustfPurCrP7zidIhqf3FiCaYa8iFlDnUvAa3UvyKlIAUjxXksfZiRCX1Z6qpK5Lhjj0N9EBwshVm3i9u5fjIIFFQH0+bRkECrZvYYpAMarmGnNQbRTA2V/yeqXErpGIJWaHFg5qyZtbdJwllxgdFrIauwWReLJVBPWpl4GiqK0ehWGfnKFCAIJ8VhMlIJA+krPgf2953eA/VQ4xIFZblvVKcY6eQJspwYDesS3fMfiCyZAeZX7eNg1i96GlggLBvUamCB4D9RJNhVA479muEauzVdMyzLEjpxoQjDeHGK3oroVLDIylN9zog9sEUBMpIFIpn4eQ+eidbQ4tMij0zH1AEwb5/vHu9qxabaTCrqPNlBBAijMSnKMOAkZHTiWhMYTgOOcLCpaDCgKE1ZwE5aiDgJHFngTmqEMCg37hPXoIuK7/QFJWphIcqI+MQgFkKSGAZFkiY43aMnCUS73OQFE0phACRw9YKGiOOjgYsuKxtRBQvGGiJKnNthQCSbBSrkmITCUM0DjpTsJki6EXfXrRVxq2V3RhUXBQQVweCvCRrT+wLcd+2AK6aFiSLy/ZV3cQoi03ktLaPvOCpJIZQnCca8HLYslJGvWJFgJKVjRARx2SZqqbryMBM4ToyKgeo631FnwkbYVHE17t3pOM9N7jR3rvOSNpIgwdHIy+wISI5yiFQGq2JQnPUQcBs99xVYrq86D0sRGIvZleRTjgDVmzdZPYbsWAdCRlEh5DCIGj74wmwTGE4Di3NxQsBxUECHvmJK+ZKYTA4WtekTSLlhIC6PiG4nCOOnCYO7ajYDnKYFDU31tO8oLbUiQ9kTteCJI5FVMIUViGCkmvyCWIwatamsI66GBgaGbDDB0UDCdZwjGFEDiSpGk8ysBR7qkmCe9JZgj7fewkPKYSAmjXvFOyJWmvJ1ooKEGzSmEpIYDU8tM7Eh5DCIHTNkS9REsJDqSDA68V220omKZiOKwtFdKW8sP/IFb6NC4JmyWFKCwiHBIUudaHqWl4LC041M+tbEhKyBSC4yy7XbEUPJYSAqiUNDhHHQRMt9+UBMdUQgDtGMkHzdBBwOiT5SQ0hhAc51GfJr9gZB99hx4Wjpckkw9TMSyWJKSSRFBkRDQ4C/mFjOiohYQaLqIlA7P1EHB8uysZzWduooWB+tpQ7QmcaCGgBM0stqGDgWmI3jtDCIGj2IpkMtIUguN8pJoC+EgyBfCx+lzJLyTvvi0FR/okCk6yydUUosEhmYZ0CQLxWL252OjIgbhjFBMdEhjUYQqHFhBK1HpDFhykTw8zv7k8v2hVjTjAcVBAAvwims0nVrbwo3NzKTCS3uD4zGp+U73Ar/eZ6IBhrtkKVUGOEmCEm6rg8FCVowDY/ie+xwUwNTTAEPc7Xl2eD+f9MCSWEA0OutH3CYLxCMoJW0KEZUNVKt29EQy3Wd6WoUChKCGHHBjtE1c6LCRFt8GpRgiG6kJ4FYGARckvOStQgblNETgG1RFrhxYaCnsIcy4FRNLbn85Fs8W8eEcNNAS6XGZSaKTpNesUbFNNckj0FfMJ2gho1O2YBwUkAE0ZmUpAoKriSg944SCjAhRArybjPnEHCSwC7mNmySBQbiXyqgBLZQZi2jVcocL8jgLA3A6pu//FxFCYCiFw0Bho+wVvWlUteN2WiCrgEMNh/Y8+HUNEZWjBoH56v3jaMcXKkpdjYHodTx0TgDGgCYTk+2fJFDJ8iqVCAIJq42ZKYKAXvRUfw9EJ4OwP8U2wPT+fIA6vD3VPxWapwcD0Tm9cwPqDAhBArnA3Mo4CUPv1GhGms08e+h7rX4hq/aDkq8AEBJ3ohCz7/dbVSt/EzpFNlUMLVtAOIVSz5dHDwOlQ50geLYFA+Inv73hdM+wMkUuMDgv/3ByCOLxlf+kKmmrQIYFBz0B69HBw8K/OQQEB8HPL1V4voOMoDjIUKASvmq1FBoV/0eZ6ZHDomj2TQ6AhA5QaGmgImsKxtTBQjeIMHrjd0EBDEJWMpYWG6nYXURB1QjQ4BC3SVI0QDN8quRQJAYmqmCWIwOt0LtiOPYtSNIIjv8AzOTSarOpGMVHpmXgKNlOPDo6k2I5qWDD0bP9cCorUdaQfpMI8vIMGGoLgFZxpAaFkW2MHUgcJLAKu1bRkgCht2YgLttrwruOFnYNyy0HRGnbYZIEgMlTQ5/N0PGIwik4MKwqdEr1oYYpAMSrzlu6LjSgLZIm4BcF4w0beB6Z41WDRZmIwrPur5RPvpZ6E3hz41ApEhXbLwdFenuWT6hbfn7Zih9mi4VSDg9UNqwqmiie9L+CVNeIV0UnyCcLxmvHSXNQ13TMlIqAnvauJwRsLnyAej+Buc7ccJRpl8c1U4aCvXDX86xNTiu2fJO4ORY8eEO7T4mmrv/2vgn/5Ac5kyQBRXl50MXcx1S/kdldyfCcioEkOieoSRnTBsP1FK30YbQycqUMCgx5XePRI4KZ72n64pMKcKwOBq+NVvsO1ER9k9aEtSzipVxKI2I0hWElyqbxLDIb1wNa82wku8M2LQ4sMCtWcePSgcOhOObYr/sCaDeIl7JNDrfe6y37RKi25P9vKFlVjHGoosCGovL5zA0tlSFEgjbcXE2GNchRoH3cFa6jKqxdDYd1gbuM1NFAQd7zZyILiSItPkBYP2UL6RVGYw7mLvlKQFONckRiQoiDdqkBQrl6k2rIKsQZsaKAhcHcYT4XwONius0MLDXXHFHzddaJDAoOdEXfL4dE4q1tFUq8HKSokygKzFNGAH9irWOO2lTrV0KsKhipyfDNTwrP1IQRvqjGWIO5T5FIDPliXFO4T5FOkAfxFVIX8QkbXy1Gi4T8IQVkgquwgkNXOEMFj4CrZRAiKs1s2+I6hqUIAgiyYiRIQSMmV3hlbrW/0ro4WF4HAqQYG64ON4h6ZqUIAgntkUyUw0FbU/FZ8RvRnjhooiAX/G18RzOi51AjBsI/NrQgG3HHV7LvAN7wYjyEheoAeQRjezy1vRbVeNoo1fA0ff010SGCW4h/wKu/QgkEtHi8uH++uH2XFKWZt3HKUaKja75eEI7KGaa2Kw5dNbBkKFPxTnGiRQaGfn0OPDA7TAXbLwdGasu6WX3aYbZxTIRockrJyCYLxcCf1RgGcPfqdO6oQgGDfM1sJB0TCgsK4WfELVhUCtWQz0SGBwRbNVAsDRdLcmDokMBSNjUsPDPfAubqQVdV3oG9WnObtD8i+BSq24kWkCZHpC5a4TN+mONEluWhWu+6CGn13F3xENlNCAO1IDj3NpVBIsuCrgxh8jOhUQ4NRPcCpGg6sapR4bvURJeQxW58gBk9f4MvV1deGV13QSapH69UlhCV73F5dDCwZHQ3Ogq+4eOVkVDM9AjjUoMSQwaAs99Vqo2Ql/tEtWZK8sk5NMCTBGWdLhQAE+0GnOMuMiwaOiAO+4FvZ8IeS7VFxbW0ZCpSzVybKodlFh92NS1Mg48cvTjkoGi5eOSpY+ZAY92YdNaAQ9U5WiI2uowDOHlkIRxEYxvLTuzPsxS6GBhyiWiMCzY0CCHsdyg99RdJMCQt0JymuAfPoYeG6mRS904iObyqJRSwI6pUhhMY5l7LkDL4VYS6FRrqq2q0+D47ZIeGWQ6PdVA3HhGCcS6GRbnm1bjYURL0SERAqbppTDQ32od0+0zy7XokIiKqkjmposG43GHzMOlPCAylec/XKz+odXzUL/TKT0M1l0agLzOnniQ4aZtkozL7dmRIa6PA5par1liASj7JjQ9CpOZdtVYhqfS6/YnevO9XAYBdCrfC3d06F4Dil2OkzkBRAthQcSW53stLxY7rqydV1W5Hcn5ugDYa+5C/o++ttGQRKvSJBOciAUQgwiBDQ0zVzKSzSI1t/YFtOA3UUQ2CVYldTNE22Ehjo+uq85FVBAGQrIYAuZCnVHWuU+EqCNddDwU0aNyJEtyoWtBYkMzRzNRRY9SrLV076hB2SCMRL8fLS6l3x641eVyVhdGuiIOtdyVadzB3bEUG6NHGQDauaLtdUhFNBDJ6Su+WG6dNWJHBTOQTadSklTbNsKmGA2mpFMfFtKyGBzsmAzmmAKLpjthISaEEGtMADvWNtXQtWnZctzYfTIYjA6+4MJOEylRBAd1wRAZlKWCAdSIgOylDDgEm128hSrvc0ZFM5BJqOQcZpvn6WFAKpm/Wk+yjP5BBoyx1ftSVTpJ0vjygKUxIW4FQNAfYoSGa+LCEMTque21KL00BN5eBoomxoRm+mEBLnQYmt0AF2l0PM3bOm392J2PKbIo7Abh7lJ8G/nMuvOMKjDhxGKi7W1X0XkJXiyTr0wHAUHUN0l/Adl1veKIpv5EQKjqRYIfSMHwGSLYVB2m3EimKueSIFRqLqmZL0S/Er+siV/FtRURSGIYNCYYqwEjsFwXh3ROtOdxSLTjqQF8kn1xJC4NSfSWAOMnAU3rCCNYwCx5YCI+E3oyA3oRDVXIqK+8Aa/XcaGkMJDiTL/ZpksdZWQgGVNK3yRAqORLslh3IrzoIVgpWEHw2nIByPpvu8IOg106xvEyxx065yEy50L1dK7CgelyUExyGZ6VriJ7mWjaRYEzNkECh7kjkZUwcO80U0K4oPqyUEx9lvn2VJgWMKgXEelztG8Vk1deAwvMZtcu0EEPZfm+6eDJJP1FwNBUZERIFC1FGdSOGQZH/1BM38uVsRDigakubQ1IHDjNtzUSSjCBjj4+LmIIwhMXXgMCQb1D7iN6fpCWECEkMGiNJdIQRH6JJjrO+V7tcjTxxNlYiA8P1hnyIYUJblTdV06wnojekuNQwYDRAByKOkQTnoAGH4qlWi2T/IUqz2n4QsCW6vDYnSY6IOJMeEobglx4VwPihAAdSrWPFfpJ6pRUAYKgQg+LbKpQYE6zYKLqRE1J2DBBYBXzAzKSwS7q2yZIAopWwa9ow5DD0qAAG6yDDn7csL5hUyRPAY+HriEANi7ThfbZb7qtnwWiC+YrYOCQxBWEOvIjEg7jULqdKAkhYiXfmRFx19qaFeU7ceCdxHvQSGul3MJ0iLR12IM2ES3E9S0JVkJwbE0mO3FS7slqGBhsC9nLYOFEYqhiqNLj3KHNl8GiJ4DOQTsYWgOPoumlbxYsmVYKX4B/reNb8kFHFf8uWGc0xZjRJAhPZ5Kxpk1TlqoCFwFcfWgcHoGXAwgU4Mt73jjRIreP00NOAQXURGFEKngAS4aOGNqSmCx0B3DVxiSCw6JiSQ2PLuy4moswcJIIJsV/D9qV1qhDGu4TxKYBFQzaYtg0DBUyAA8LFxsYFxiaLiUoTEPaxSLhvFGXzBc6JDAnPJX1hbdhsE9JoCYr4rJozEpSAjgLgu23qDjuLrE0TjLRumGko8SxCNd/hPSsSZKAJT4JfAJjokMNgmbKoFheL8F1Zi1pWOEjCEjze4hzOkR5mjHoahAYS4ldUaN9tzlAAiLG7h3otboGlVcFXu9W0booK3G7YMBcrZsyRocgOaFJAXpaw5MaSlSQFJ8/EKaFJA/qJEQ12SliYM8hMrRSGafXclNRjLUiEAuS7ZGj4anUsBkUTB5bW+IGUs4/GsFhzNK4lFHC4LQNcwryICcLzP4eeWoe4mcolBseqWlXqHGOoOQFuGAgU9KeSWA6JJUYyxQOFAhggM45er83e3TysdFfDpuduI8PRSSgZ/bD5BHN52p++I58WT/nur+BOrmxWa0alKDMrfgpO/Beb3b8L5PTFo/ce3KFCt+gagT7VaP78NbSeNQS74c7t+Ulz3erh6EtUL/EioVxEPWG/0BXTwDotDCwe1azbjg0BDGVoYKN3pf1rp80SIlbm5FBCJP7+7/WHR1QJRrS+wWE45BNrZSof9uUFVd1sHAYPcz2hoICCGMiUIr+SWw6PhJphmSkRAqEknpxoCrBtWPBNUJ0MIgfOg5Foh1lVMEQTGzy1X8DHRUQKB0DddFE/GVEIDUTXNhC3zUhtiC2kQwWB0vQQkRaeBhnhQfCX0vbvXUm0xgzKvJAZxXyF64qMCAuAR2wszRDAY41rXNecFan7ILYdA+1iJ7rYducIdl3SJIbA+cdXwr2dKsX0fTxAHNpOjRLu/WhLT3V8tgYAbzktkV+gggUXAdX4sGSCKqAr5BY7QJcdYd/zvWVWUqPHpXIsMCj3hGdBEQxJxIVF0a1ZiN6fPpTBI96o/UfmulM+sXK7kDkvmUMQAPsi6ueN1zdboDeM+QQzekte6f0PzUG0xIJYS3cFH5FYzW4YChW6jWUSXELZblyUG7TVhkP99d3spVy0qLIehAYToYuW8srJljVTnDHEt+VwKg/S1m7rGdD0nOgiYBa/bEvGQjhowiMNVk3qVdbInoNEeSRhzlQnNH/7yr9//6Yc8ogXvbjrCQ5lCCK7djlfFnSxgMIfUCALdXe8nVm/FZxiGLYFgaZvN+/a56+1cWhskMmAmGk4aw/NcVEztoW7H1PBc9xpaEE6g/4EgKOXzAzN3MGT4D2kR7rLY22OsDPchLcK9q7d9fAIQgZEeTnHBulZOa04b73SUmQiK55XVl0JNw8lk0ZgSWJZrUZaLtgQ9I1sBTSKr5ieuKusG62yYowiWpwvuD6/AMxEsjw5lf2EOeXNZBgEKjv+SAlF5RwUsiZ55PSvFGoFykKBg0X1dHWsbhzOqIIj03qnljq24vsqTqxra1Dh0MFTDpaf3O64YuPmbqVAS3auztpE0XL0Whq6qG8VEdS5lyRmwtGwNAprL+7tlo6CN9EyFgki2z8APmC1BwNKdwkChdApwknEaYMFZAR8jzlXwRJ9ELZ5FOd/Ono81kYKzXVXF/Us/k9NFW4JATTVQNKJaQ0csx9QIAj28uxV1wyuu7pX9z8lCWwZZVBVB/HVVtrBh/pAU7q17vtA5hjEtwl1viv7jD7ogQQDH5AgGWTXXbMVvJSv0q9jWIJSZCoKoLcu6C4H7gb2Kdfcl/ngDonIqwcne3U72xaejDEkx3qICOovZlHKWbws2bnHObMt3rLhjux2iTZ2rIIi6tTOaXrBPC073/vHu9l5578ZLR3MKEXB5bmYBgIWuZskh491ecOgUm5EcwdA+z8+UZTAck8fmc9+3zw9sX0pWAI2G1DGfm8vzi1bVUqEmyeYq8DK+uTwfDtvh+tQuHRRVt8+Ldbm7bBXrO8RAMqcWFR20jzRXQRF1J09/4tAiGpMjGHSLeC6aLdvB5xVnIkge52UImTj+axByaZZbKZuNqNaz06iZSFMhBFdVc3W4sQUEZClgSBD9/UNihH8zdDNoOjEBOSyjVPDlHlsBTnLHC8F+4vthXxK0C+qQwTMNm5K6YA/FgrMa9gQDcmSM2HIzZJBMD0q+CmtjfybNKIDk6Oeauhhm4M6IUwjO9UEW/FqUDaxwjqnhBPcvL/1g3X84JR3IK/YGfDegDnVADsG4hQ1ldDqEa3UMdD/sEQZBzGUQTMcOza1cfYa2QQ4ZEiYCHhzLA1f6JEcXfr1q1B7aKXHpIKiG4COooeNMBMGjeMFfRMWL40oqCMmhg6LatmUjduX+rNxtQPuzphpwmsXjhd7mdbFhVcVL8PfMIYNjasq6G3vqOC0oqpkQiqtr4y55w0QJbQTmKiiimxW/YFUhCtaA+7gOGTSTHlNUwKnCiQSW5R1rNjqgBaYeTWWwTA9KNnIlSzjOqIAleVztiCrQVAlNRtEAzHQQVKj5R4pZx05UcdVfrwejMBUwJFvZ8PFjjSiUmQyGCT/0oBtxHCLErTbAojmmx1PoLkzVCFaCVojnKmiiS143ogJPXs1V0ER2RJlsFEcgmXwG6FS9kRzNsOBF1/dGcIwSGJZa/IMjZqEtARTHTlY1/MtopIdTLNmWLwWsiR3Txlb++vtvz/mGvQrYTixbAZHbTudWrsWKlZiJf6cQlmvBa32WFMdkiCB4ApftXop6hym5NGkM+3AhL7TFswQwHMYVuOBuzFwFQXS47BVcNJYCgqSUzVldi3Wld2qAaWYqCCLHDZ0XUC6PFoKukbtxXyVmW4hLJ9Z6P/KvyAMztgK8FA4XL/2kk8JAjgIEHNCKawkgOMSWK8TEupkeQaHvHoJ2Yg6JEf5dUCSuGPCogJkeTvFRYJbwj6nhBH1YPPmli+M16ENYXDpwqv++u33fNLuh9445uepWQpDpQ/sflgtey/IV9gJNJBDnuPUFEkux1n8+cLwyJXSlTDzGfZT4bhJY+Y+pEPqcyqqZ3FaSi2GIQEHGkAFgiFEAC3D18mINV4EYvQwaxg7vBWXRKliUcVqNBslSw6Lpj5p9VBNINQpBgZpGgRmaRkFt20LIaejgTPejBAbiQcmV3qFTrXG1xKEVwir4TvEVa3jxL6EgBkw9KLmDQg3JgcVzzl+k4h8rvWsaVTYzIShQKZ9xIKMAEODi8uzxbDld2s9jMDWgGMulHTEhk6BPDjd33WmdjXAUgYLodYFZiLRMDkMDjKHPzb9TrBCImmmroFAeWKP/LxzJIIICma4k/XCJY5rrQfE2TPf9uLKjA2UymSJQkFLsniVTuObVVgGjyJojMUYFKILcbjH+fXK4+TiniyuFiQ4UR+13ZhyITIguNdS6rRu5HU6nLfha1I0ZgD6TxCWGA0M9naMEEOLy/u7q64rvMF0AUwOOcaOjxG/nR2eyWWwhONAda5T4igDpBbAAepvJfVWCq+xMCA70IAW8ro7pkfYExWHpwHEWiDmKITnOnKAoTBk4TB95xgofnU1y0IBisIaNc8pgDEMDisH1uuGdRH94Z0IoIGOjOgHVVA2KNovSmwkzpEfaXyu2psAYdZA42Jm0qQ4Wx1piAqLsd2AMxXATWQcBIMAsQEKe/ZAcZ35T9f9XjaQ46EBxDgeCwCAHBSgCyh1r/MjUGj5LZEhAIca/QQmG9PiZ3GsBn7DTaYEFoJMu93XDtxjzXgGN0J9okmrfHbXCA9l6dHgLbl+fhebrBdGARMWGKi25amtUm3JUACP0wbrgAH16pP2SN7fYhRGXFhhLbXV3HMljiABBhohVUIQhOc78vG0a+JSIJYIDQT0NUwOH8Z7tGrE6WzXdjRhIHlsMCKZjYZ1Vq41UyP7iTAgDpDijwDnKYGD0gjIFjaGDwDlfELAcRDAgrJ5HhwOgHGUwMLLYU8AcZTAwXYNFgWMKIYD6ZTsCIEsIA6SvckKt3tsqCJRLvYuSoGhMHQyO/uoT0BxlkDBUxWNLYaC60+oUtdlWwiAJVso1BZEphAIaB2QUTLYWfgjeq76SsL3iC4uAgwBi+8wLChJDB4FzLXhZLDnFmz+RwkDJigToKENTl7tr7inADB1CMqLHaEvR8L2n6My+J+jM6hi8FChHGSSM3rpKw3NUwiA125KC5yiDgLmheuFuUt+4GJAzUjaAx9DB4FS7luKVN3UQOLc3BCwHEQwIe+YUtdjUweDwNa8oWh1LCAMkqs8UOEcZBMwd2xGwHFVQKOrvLad4wW0lmm9oF8CTgs3QwRQWr1oSmoMMCoZkNG3I4GA4xSyrqYPBkRRtz1EFgXJPNMlwTzPD0N9ERMFjCmGAds07JVuKBnEihYMSJLOclhAGqG1o+j2WEALogSm2Vmy3IWCaaiGxtkRIW9JP2YNYNa2i+NDaSpjCosGhQZFrfXU9CY8lhYD6uZUNRQmZOggcz91A+TyWEAaolCQ4RxkMTBdQhQLHFMIA7RjFF8SQwcDog5AUNIYOAudRu14wqq+sQw4Nx0uK4fRUC40l6agkFRQVERHOQn6hIjpKYaGGw9hUYLYcBo5vdyUj+cxNpFBQXxuifTITKQyUIJmXNWRQMA3Ne2foYHB0AC8KHEMHgfORaMz9kWbM/bH6XMkvFO++rYRA+iQKTrHxy9SB4rB6o280WONOhk9koDBCRwwF738ekgPND/c5Qu0PAliAX0Sz+cTKFrz/ea4ER7pmK8wzOSrAEW6qgoMPHY/p4fY/8T0qEJkhAYe43/HqcLkngsTSgePgQdAIxrWdCAxDBY7yiavubjp8O+oUg4IVJb/krMCcnDQ1oBjHy0TBFEcJPIT/BgUw1FQSA4kJWHMQgAJ0y/Ko+ntQACL8xPf4cDmWCBDkVq5QUTfG9ED7fs20WukwLxxXGg4pFJQ+r4pj0QoYhONVpfiCmWghsYabQLFEgwwSBnw2+iCAAfi55dNL+wAUBxUSFHx1saUwUNMo5gCYXgIF0V3PioPoJPAQ3ewDAUmnQ4SDry9TMTBY10Q9SIXAOUhAIWSLDCB3VIAitAQRWywR/PryByv2fh6KTgssCtd9yPnmvQICYbzKHAMxagAx7l9e9PikOwapg/OVHF1FApJwyP425f6kGwLMlKGBoQvjGRUGAj/oa+n1UB0fvtEhBYZqNvCi6lODrfd60veONxtZEMw7+PRweMMcz8edvi2Tgm8uCAU8XgoNRjpK4CFQcT+mOnicO6bAXbGJDAEMZ3WrKJ7ToIRH+sBexRo1PeAUw/dFDNlHsRXVmoCvFyJg63fO3VTjFjpUg+ASgz7YidYvoirkFyqyXg2KpuNyclyAMVMDjLHrbnxDchgiUJDD9Qs3Vd2oFjX97xSDg/X7HlElZIrAQbai5gv+t2GTChJoLgYE0xfVP95dP8qKE3RY3GoINNYwLVTxEoN0VCFBQRfRRAoB1ZT14Y5xDJGpA8dBTUKP6ZH22IeDDvzY3/x+uI4egWLKoGAoqogpA4d54FxdyKrqG66bFSd5ZgFVSlRyShzgQl92t+LiFT7XZKvAUfDTspYIFASzHwSzE2TBt7Lh4zVlYAJLBYyC2gKC2/8xXjkOd+/TA+2Xn96dIffvGRIIiGoNjzk7psfY6xvqsDthZ0JooCFEPBWWJYeG66PpS4U9KOdXRCMW+Hpl6OBxzqUsOQOP8+ZKeKSrqt1yhZoCcqvh0XRI8zX8Sz1XwiPd8mrdbAiIeiEqIMzuBKcYHuxDu30meXa9EBUQUUkdxfBgD4rXXL3ys3qnb2zRLw8BoUMVj4q5Fmcig4fpb5UhwOmF8ECHzxdRJbP0sHiE/QiKPsSFUCv00aOpDgKnFDu9jkkAZCshkPTtfJW+VWK4tei6rSgO/yVIw6Ev+Qv28L2tgkGpVxQoBxU4Ch6DAKEUO3Q06pkQHOj66rzEx/aaCWGALmQpVX+fHgXWXA4HN3lnaRDdomjQWlCMpudiOLDqVZavnPIJOxQxiJfi5aWt+a1Ybxp8eMuAJA6y3pVs1engQ9AFJJGQDauaLttEhFM9FJ6Su+WGFegYA241DNp1KdFhz2ZCKKC2WhFMUtpCWKBzKqBzIiCCToYthAXCxi2eCWGA3rG2rgWrzsuW5MPp0MPgUUTHnQlhgO64ogEyhdBAeos1GZQhhgKTareRpVxjLxJwq2HQ9B5mdGDzuRIGqdvCRfZRnqlh0JY7vmpLpig7Xx5NHKakK8CpGAbsUVDM51g6KJxWPbelVieBmqoh0LqDKgRQpg4CRyou1hVJQFePHByOoFOD786843LLG/RFMXMlBJJihb6mmwDJVkIh7TZiRTD7N1GCIxH1qmj6VOiVQ+yK4a2oCArDUMGhMEVXiZ16cLw7mpWAO5JlAH30hOJzYelgcGpshDZbBYHCG1bg74KbK8GR0Ive2MVumppLUnEfWKP/TkJjCCGAZLlfUyyf2UI4oJKkVZ4oIZBI9yKQ7kFYsEKwku6j4dRD4JF0nxcUvWaSFUeKRUeSUONTHQQOxWQI+po+rdFIgmUTQwWDgo/oPZFBwHwRzYrg+2XpIHD222d0oOypDhznkSAU/EQGAcO/Nl0sBIqmeC6GA6MhIkGh6ZBNlJBIso8YQTLH6RZEABJEpJ7IIGDGDXgYklEDjvGRYt/OR4I9O58EJ1ivNlSgKF1kFjBClxplfa90nxG3aX4qBAXiq1aJZv8gS7HafxKyxMeVCmmCMZG32R8EwADqVaz4L1JPg8AhDBEoSLdRYyEl/PEcFKAIXbi98/blBVEUhgYUY8f5arPcV82G1wIcSWoiQwODP2TrFSQCpGSjw/qo52ow0Yh8ejR4n6QgQ+u0oFi6zV+hTt8aEmAIqRgGoEuOM8dVY0MDjLEv+XLDOQJiVIAitM9bgYvoakgAIXQ/Hur+CI8UrpPe8UaJFbj5NyQQEKigrQcBLMAF/KoMUwOKIba8a0/gz+KgAEWQ7Qq8SNolxhij3sGjAhQBHRECHQ7iMFjFhVOeyNDAXPIX1pbdPJGSZQnvucZ0Mbj4qJ40ET0fFee/sBIx1DkqABE+3qDKYUgONV/cgo0Xt0DTT6wUhWj2XXA4qL0lAgXR12mNUVF+blkpGnBMTpcWGKtuWamnfzCBlWwVIMov/Pnd7Q9UN6i41TBoZ6tGvPKb6gW8/DqRwcDgJgoMCQzEUKioNmUmhAG6VmzLn/FFY+hgcLqQi/BPtqmBweiulUBBdAoYhP49JHgyphAeiKiZoWxlltoRWUiDBgpjwwosRSeBh3hQfCX0jTXXOmYw7kk5FVGI+2qFI9pXKwyAHmMiAlibGiiMsQN/zXmBCR/nVsOgfaxEF7ADeeeWSwuD9Ymrhn89U4rt+535KLCZGhRtw5GRYY8KUARUhGxUROxflGi0FW6obauQoJANtCOylLD6j8SgvSQQ8r/vbi/lqsWslBsSUIhuy8jXncLd5TaRwcAseN2W8BI5SmRB/NXAuJBVLUt+K9dWZLkurRPDSmCbfv/Dv1nK8rPgszWVkLKRIKR88/2/VSmC+nchHc8SuF/QShBSft8+X7Bd3ZqxFrtY/S9s5VQ+JrBlf/jTnw3Zn/i+u/R5KKObUTHRxJc8ZHnBVpvEDk7302k1tAslTeh9+xyQKfrmKGuxzk4TEK/7dzpL3E4TEt8wpWMv3vGtVPs8D1fSgNWOqZqf9RIXsnoRRly4lyG4lctnns42+fOP/++vVvvx/7Ev9XeDxje/+2a1EWWhePXNv//vw0/W3Ji02cqi1Vl8Mryf1lxO6qBbSdj3hXu1ut8lKf7HoVH9l65R/c9k9XlznOL3jsuLrlmetTbJNqNEqP15x+WLTnPOanfjkON2UAq1E2OvfGgip3UOYu2UDDGcNbec1c29eSt2o7XSPY8SE6M//OVfv/+T+YZdfV2VbQF3GtI7bZI6EPdb0YDddWK49QNTjWAl2H1IjwAQ5iA3112sPsOtF3wlVQE275Pn2pst7tmW/UNWk5fjju26fRc5b1xQKPSeXfKSN3xsGeq+B1rnWLsVQp7vuHxQ8lVYE2NxIyNZRL0jmdw+kqR/TJji0N2jDnHoEqY43O+6jzvEY0gabOdF3Yw/Bzx4R/KQG6Rap9Tgh9LXa/aIdgmiimM8g2zlMWHQoT9lCfKwk4ZcluwV9Wa70gf9OFOrzfn+QkpViIo1vAZUYL9Kireegh1+ntth8khkuv4ims25YPV4cARJMJUD0PR/PlOc6fF+o5ioMutBhm6c71qqZbte87oTms6apNK4VELe9ZCH7hW9KQD10q0Q7MO6PsrnrFltPN+oYP8jUS3W102UGS4ir2nhRlUQZKyrkg+Y1HVJgxtFMDijBgpgVrPhHO4qnoejt/q0JDS9EgjG7KkQlI9DLoZ1LtuqENX6XH5NdDZSxMSNL2WiuJEiJq6nKCYTAEHpw+8ThHPemNSX49DHTh3XHROkSg9dsEz9IVXM5JY1okmfjBh/HpXtwggtrEslwsKHBHFp6NsFeJFuZbXOKp/x9zHhD1eZJX9MkCCdSW2kiIkvf8nkPiZIkM7kNlJExeedylSTeco0M1efMc/UqZDQbLgWBvzNxWwtwJwy2g1TIPXvy3HzRN1/ln7v/FjNZ1q8k+EH6adR+mmQfgpKv9nsPBgINqHf9VftPuGF3G5ZVdy3TfJUDyF0DGg2+Eia9XSoZsyVvW323HNv0GzNL6D89XI2siAyd9Pw7a/4pA72iCw8tM0JvVo+GpoM/oqPakpBk6HhNtirKnnK8g3zZcJQZe/XbC0cIDTZWrarFa8Tp7reMFcDByxT/VVo//Q89LYw5DHfeZP8hPBTAFg2xvih55yp1PU6wkzY9rAsjO/TqPVPz8QUgKIPcCETRmVv1gXQ7uQL3/OhindDDThjGQMZvQ3H3iDVVRe2mgxWncMX86dk+6Es0fSNUTdA7KPDtxOJ3u7H7//y4x//8KO5j6XSl5rpbu9kbdxRPx1Wk+TxUX1VgHwOCVMcph3UdAtnZ3LwMKtVyb9+9/p9zpMp+den1+/fZNzt8oENp2/c9c7X5qYZW6KhxTfzd95qiWTxW6SSOaowHZOvmntp+nAj3RLdW/AY8qlEXRyiN0Qy9VOZZjixFiGJxA0xa5Hcde6ClaV9WIyEaW6QgzcfT5FAeUZHQRRIO578ioWa+ay9hmn2+F2H4K/0wPT2n+nB6E2/04ZH2hN0f848E/ouK/+nyzziU/Cd4it9R/o3817CD9lf7x+SvtXeKpHl8u1cxtdTdFSKPCtTIGQyrRb5LgcFnw2+i/XDr9XFchlHulh/pXslfgi+EpPB107xQiQNYoxfvkkX2dSHPbeuKCpz1z3AaBSxHX/0fwTcLN0R46utaJroImEGz7cTWevdSfxOkZbS9FRldjldtrsyOkLPYvn2IJlaOr+b0MwWzsmgjsr5bAvOCv3+k2IZonCityivuXY+3/ScPAHWQTKfZjwyTspjiOYTPbC6ftwo2a6NAIrOycFkKENyNu2XF8KPiuggCON5ELuEIXJ6+YgdcOHjkI/kTdb5ReTbfZ1Vv+n5Jso5eNbseMF2DVefuOoPI9tbaHnVbrMAXXI2WloNO2saJZ5bM/5fPsuoAQJo1zpkBC/uWCVeeN3UYxQJrT4Na5TPliAPw27kx13BcAV3EIEgnJdy9VkrIQgOGr86wLQvl4ggi70+rYohGCQg9he85M/65gk9gbOuutM8S6ma8z0CyC8KQuzvKeqOpIsXYY4H8smmWicHBKtFg8ydLLjq1hDP1mvF16zhuAcZkCXBxFc1tyIIrq0buRX/6GSuObMDr+WTOeQgWJesYTVv9P+gvyUzLQQQugNg6ZwMCOz9sySGRRN7LwSOypBE4CG/dIbKSUAAHxVv+Kq5Zc+8rIfX8gPbopDciiA4ofo7lyYRpPOZLCEYSr0r2f6WVeuWoDbP1UBQQ9f3+L2kaRcDskSYlEOCFHka7DvkU3cKYtD0vNbZ5FozMNZRDIs0vPadPhGYKYnFI3qMoxQGB9v8GzIQjKut1NLIFt9QAUFUxU6KCt9z+f+rO/veuHEsX3+Vwcy/d7DT6dy+u4vFAo7jdDxtx26Xk76L3UEgS3SZY5VUTakSVwP3u1+QKlXphaRU5/yOnfwxmOke13MeUYcURfGlD6KpLHXBKgoHoIWuD6+If4Ba8jCUrshM2QPkG1Cg9ZneJanaj5FxErYPoqo0yx7Z745DFEnn0EpzTA4UkkS+/Wr3ZT6v25dgbsMSIHLkYE4MFdsQMDvWewZF4Gd3lAAjegOgh2bm6QFCUXATY9gtfIdCkfh7ecfOxD3jxQVozTlW4RVF4Zei/FpAcnJAosi4V/fmLR42dBpk8gXZDz4fjqZVZKvEcL+gdDFEDcQQBXdsQkCDVr0v9BdVqKpatNtGM6u6l0cRu1SZTk6KJN9Wuvp7efcu0fnGcAssQkVIsovPDySplRmgH9WhkCWYNX7PoAhcGa2K2vVKT0tjhofcHy3j5ZHE3JRcdgeni6FoXCdLt5l25lmRebTMGMZS+i0xhTtJCyPVwdG0TJLnKoeMPIxhXCV2TR/DiEr11X1zFPttsmRWfQ+NJKVMVRbu+F1dLNk9Ih+OpKW1G2vRqtr3ry6T6pE5ABvDwjQFFJl63GGvHockYkp72hZkqtSIxRDitwxdDkMENRnQhyNqudz7os5+3+g14INDgEiR253l+07nNWsQqMehiNyopGJ1mRoALXTuelrVg14z78wQRdFZqCUgRzoUmkS+exPnVqMBiSZT1BpSJh0OScR1ES75wwt9EE0l15yuofs9KbBbLnFtSrtHUWlsf26lamVuy2YbN47TBBqgy09nH48kti3q5Ak0QDOGUZRuE7NUtcr29QTS44lQaZLVI/suHiAkBZU+FDpN8tMN9yvbEEXTMStdlHm53ELeGr08mtgTt8luES8cnjbo2f6alaktgyRQPul0Nx2ZWxIDFEXnY9EcDaEy+5mb3ePz4YhazY5795vcTQaoqjLVrh+HcIyzEcLu6Shh2wdDVHWVCBavD0/SrhS/q3CAUBQ+6cweEJCX5iYplpyqOyCRZRAfHvogkordiKh7ZsHxDg2BtEBt2TvLmbCM1RFo61ZBwYfPstnh3YaAJ+enZfFFmfr6EGnmdoQTbpP4kbZH7jyzvcz7rZRdhD9Lz66AXRslVnqxADHB01xzk6tB0HLLboZj1IMqMoTIAEZTGu5iQRBpELTw/s1GCBJd0DekQm2F3tf1erejNculw+GIDDduI5v4tmqbq3JepOVKF8vRfnsEmwGLKlT/9JqpUf/0mri9Q5nnW0Az0uEQRQ74OcdfT43592Gxxny8rQwhYAuhXfuNemxXWQNuxYhGk1qU6aPimTQIYvjB3jWU8A5B3IZFPdV2BzHA/eijGLvC5EmtED59Fk1ovJkPwaSF0BTG+3gRFPa7rLz6FiR+JL5s/LY4Ncp1tpOcvfFMnzbabKYb96409fukyPI5W/hPRO2waPvvOMJCL3t3gyHToL4ll2E3sGdz2ODzT/PEXAfzMlkDBVsktdCqMt/Uqt1Gny/W5xGtmm2O2DINhuVw9cUeLKC+glxaHMtpN+Njt6p/eKYny8+HRriefUnyjcuIS1UbnWJ1h3SEMfjGD6gswwp6yyveXc5cA2TP/1SFMqCN2AJYouNSDUaoiVI7DtmiGB+PSTYpAgdmvrBN9HEZ87FT/f9Q+70PmjPcZp6nMKEXRiNd555+R5HlnGU3II6GpiCe3oEqsuHcw9uOVOQcxbaDnT2tVVEpgfT0kIGm0OT0oRGu2NTsQzF+0MQcUFmG528FUrIPxfhBE3FAZRruZ+DzH4hjJNMNWzX2PLYVtEIcgESv9TrXKuvMDmOLjYhEM2OS7ZvN/b0ynxCvFH0cw+lCP/LvXgsielSV4ie2hZDju+k4yk7PqaDNaJAMNAU1qGE0whXVfPmgGD9QQ+alMg3d5EGYmaMRjTaZLuefvDoh1IXRferz1azz5KZlGhLVZLjduB24sEes8s1CZKLp1+rwoaGZK1TzH5M+KM3PnU3bdJve2s/8SVEfFg3gmuaZYaSuAdNoz40Dvwqbfjeq2uSSl3AIAvcHPY6mIwiYYx5UM0Kw3duVzUL11odHO8PrqZcPsxapl2M4zBdfDwdkoCm83g3RbNdf1Pb6wSSVWI3zB8B7w2tdIALQXKTm+fBAZ3ztG7GhtvAaOIazffdLSIWqoJcPt4ZXQH8AnLdI9fPQccb4yjdEI13hVW/E5tu6BeZS1W4Ex/riK9yYDjKWqWoDNMhVoJJ1uTBLfPXqgdmeow0ShKpZNI7YVcArXzwQ/jpEqmQkCv4K8BU1FELCHV59gzEY9vb2ue0oIZ57GtFIJSZji1gIMX6epI/vTO88E6LEnkQ1Ke+uTblWpt6+SdhTOgc4slP6CDBJH186PnU2ovvxHglR2f9bolGZbS9UsawfTpM83eRJDajJHibVblNkuli+KZ/4UntUbBmMTERyvsjYvPqmbH4k2rh5KmwRR2EvxXmz0XkGWj3VZVGL5kA4MUs3TZU9+cwL5fuB5op7kAA3TA9+RGSYXeosy9XXxPCfHn0c0Wlbq2pRbgzgaXZAxRro/XHW3Hh7EO3K9z9/q+pEs1cGDnBMp85R3zCxDpNqZ2p9r9Pezs1UqT2K6PKg0sdqw55G03J4FqdlUdVmkwL6Xh4k1U3nGaTHfCARTfL2vNLhcjz2UyOC5rqi5rONiSyzrcRKqBgbaot5IEfhGF/QwFMAi3LEDDCFuFTL/qYYVCft2fDtOIe36j7Z5PyOc5/27Rl9i6VEfUUVdSK+qIo6veY4uQa6PbZ4v+k4SDEA/958ebXjRYxZdedFjFk160WMyfWurJTbgYCv15K4JueFBtpYGtGozN1QMWhEaICjOrmuId/FYcgO68Tgl5GFuDBLUG89BOZ7XtpPjkg/B+R7od4exkiEG+itwcNk2UGWs3VZPJtmJNOt/UKKDbB0x+4+wZhtf/xUjOGNqsr8i8pkTPt0qnFRqLRW2ftypRaqrnWxBDzDPFCg37vSDI/SA4ru6Sxju7kVqkcwAJK96kQXVeeQRexjOYpHO6Me0nE+zBr2aAyRgaaoB2UQTXdFvIA0mOi3uuZP7Mmjxo2t7/ctAQX3kFllcts7Koildjs6Kmi+y3rbP4IT27zE6GBjVOMSxaOcYU1LAIzzRDUsITLV9IsylZ38ZY+V5tt1aUQjo5Ja7bajhFaiEBjnCao6QTLAFFVhPEyIHaia+KAAP4m2fYIPtxZIUmAL78FKpCyklfcCBRIY09I7oh1gbfpc+Bz2s6G2yNwNwDG+0JwdYVGOyFwdczmW+z3H0UnqAX8vnuSvmh4gsiL5yN+PKaRUodW9z/y27UClh2yIBtBv3Y9Zgu10uP2MQ4GmKBpDxB5a6eNBsP7YqhbCo52h6R3kc6zb2Rz47PaRgabITPaiEa7QrB1AMX7IDB1SeYb1YZnFHxKtbyyCgDk2XyMhkO7g/PXCsb7YfPbTOcZ2nsKF/qIKVVULVckMek0EkfFHJvhUFPAVQNM8zJexhk2vmBkHfhXIKhsJwPLOt18flMoFqqqHDDSFVkofGuGKrX59KMYPmqIDKsfQzsHOc5XbV198boboYGNkjgbxKGdornrAOE9kzvrILNPmS7tAyo7BOE9oonrIAFNsevaYEDtoUvahAD+xr9DwOUZhqkCSor9Cy8w0CqORrgIJDPwKvaiNSlbXpkxVVZUCgyaRAHhvZCrHIgDNocnsZ0NtkekcgHN8P1YSI39DKsgQma4jLNcRmpgdIN8LmYJdItFsU9Xl6iK5U/xdjA4ojov+w83pfqeSemMUaM1PkAw17c9KF1X3haJdi33HWah0Y7d5wiiPiXSzStVy56BNBmB5nz7Yc93Z45R9GsvorapSo9eINRhjIs9s9LHXPamaYQ1UTs6Jw7qK4QeUk6Io6wSyfG06AtS8LScp7z0fat38s628QtqHAFBvmVyfiMK6gnc6r/mbnfZgLB+ZEkSWmOsX4RvgIZbvuKgTWLU/AFleqO30BjiW025DdA17wB+ALC/Mfqw9GM8HmE6cTFKp7S2zRRoM1SFXIivSgmCcJ+ZlP0wGmIJe+X1MiB3mxd8LBfgJfAuY4sOtBZIU9y3Ah5VIWcS3AD9QIIEh3wIaosyKtBgbaovMXeiKtCESmrOgFWljGDJXUSvSGprASq8gGOeJTE/cOq8eD5qYiLVTAxIyJSFrk3Yo0ZU/c2KI2EMTVmLlTwiNTWPsyp8wFJrc4JU/DVVi5U+YDDRFZjJw5U8fCM1ayMqfIQqZoZiVPy1LbuXPdAQBc2y+wlf++MHg/AWu/AkhsfmMXPnTMOFbFgewKEdk2qL2K+7QoAnK3xW4x0GmImBP4B1IYA1LmAw0hSYibg1LH4hNR8QaliEKmpSQNSwN60I96VRikMoDxnkik9JHBpjiixJVhgKFxy81qbVUcTrYGFmy4LVUYyi0zYStpfLhkG0nbi3VjodfSxUE4zyhiQpbS9XjXZe5Trdi5TrGo50FytjDh1ljmwMPGWgKbRB8aICrRHniSlKkDIGlJ/b9H70WMEIVaADQ3/9F1gJG0EhXgQQGfv+357jY2WpSj7EwH26NzONIAJw3NI+9aKQrMo/9bI6t4JrWyQB4b2Qq49e0ernQZEauaQ0QkekMXdPaIG+VWemizMulQKMcgGN9kTkcooOMobk75nIs0Wub/VSQIfKWg9Y2H2DQm8xe29zFIJsi/trmZlnMndjM0BgdbIzKxyge5QzLzwAY54nK1xCZZyoyUzSI/p5cqXud+5HYyoWc3foytqDSBTcDmBm5z2cIK0VsIwWaOfycjuySHMwnTd2C+b+XdyKt1ZxgstcDbiFmRRO6InQNnYgjdhXg+jEVCHsd6Pe2OVGErkC2aoDe80Jw4crAfg8MY2XTH/We+LZc6SIp6oukWG6SpdofKyz2qJgXT/yq0LViZkC564LXlMlQkteCrj3TsXhXI7PSJsyG2mLrAnS9TR8JznHQmpshDJu7qHU3La3Wdr8V6XZ+Ko7YVaBzeSIQ/jrgOR4MIeGOzv1wDIC92Aq06Rgi9gK5j16H5kdL5DxuLVoIKpDrwPVoO+oXu+OgeGsfjSJ0BeBsj4dBXwM640MB8N7grA9G4JnLrIQLs6G22MyGrofrI8/r/WbMcsXsDSLjL1Pw/ijgKwA3KCE+3BrbnAQDYLyFChlatlJFiinJX9T2+sEklfwb6HQkwSvBNiQzQklcCzjbo0Fk/LE1IR6FdwXXWj/X0MyMUJLXgq0ac2KJXA24csSjCF0BtnpMhGFeQ2/tDHiPlckQEu7gehCJAbVH572XDjYG57kfD3GWTGx8RoumskAOCyUvNGul0hWUp5IrDqciCJhjM1dg3aEPDM5i6NpDPxKb0dj1hw1zoYpa2wk20r3vyUBy14FN9ulIAlcCTv1YDBF7bEWIBmH6S67InQwh4Q7OfoF1uV4yOuOha3MDTHCWY9fnNtDbxCxVrbJna/dnB5S/LmxNmB9R8MrAtWROLNGrwdagWcGY16Oe6luTFFUuudAkHkXoCsDVJR4GfQ3oihEKgPcGV4FgBKZ5udap+JB9PIrQFYDzPh4GfQ3ovA8FwHuD8z4YgWf+qdTwrc5DZKApNqc9aISrQHHCylGiAJklp4xOcv2Hep8UWY447nJIRJmdmCXogOkwGuV65U7WFTDdgWGeqHz0ctmWlzrLcvU1MYgGfQyl+tmnwemmqsuVO60Y3I7H6GBj1O2P4lHOsD5JAIzzRPVBQmSOabsS1vbo8XkbooONkXkbxKOcoXnrAeM8kXnrI/NM+2tQJXI3HEHAHJvDkRBId3Aue+FYX2xO++kc43bOFz6ffWSgKTJ/vWiEKzRfB1CMHzI/h1SOocBZbF4syhGZjriz2PY0aCIizmLrcJApCDmLzYIOs8XxSehnQ22R6RiAY3yhiTnCohyRKTrmciylRgCw7/5ib/3g9/0Gd75KlupNkj4uTbkpMqTpAA1yfVcaJeR6QINcr025VsZ2E+CuBzTcdaHqWhdLSec2BMj9102S63oLF95x+ZbQlh82kiYxhoYbPWtIEsmIyL7LMtut25V6KsUiCJgjn1TREEh3aL0KwLG+yLoWonOM7XmQK1Bta1gjm3HMw3I8fDUKwFllNEIiK0+IDjKGVpkxF2aJrCgeMMvTlG6Syhd19vtGr91mp/i8jQeR8Yfm8UQU8BVg8zrIh1tD8zwcgOO9n4yLz3IvGumKzGg/G2ILzd4hFWSIzNQRluW4LerkSSA5R1yYJTQtx2C+JzYhu0iEGzQVe0yO3WjxAj4loyEk3JGJGo8BtYemb4gONkYmdRDPchaZx4ScvyQ0bwk6X8nC3um8Vgb0mt0Bcr2w1QYzbwo/Xwo1T+q2fNLpaVnUMk19gA42htaTEB7ljM3PMRjnCc1XD5ljqrKFXhZJvUHM9R4AOV66LJp2DGO1xxGddJVUVZnqpFb4GToxONYXVMGjdJAxqnoHuDBLUOUOgfmemeUh/RyQ7FUbfbep24MDAV59IMjrrKgN+hPEjBgi9rBKPx0E649rAmJ4tDOsQYjyida71QFsux3n27AgnzraPZ0OJeNgAJ/9YZGnZXGvl1C9ARtp+/fyDtRvi+PBzsDZWdMhMO7KtP8G7txBo1xlkqLloizdQ9g2uDKVbhQA5d08fSXFhxFQ5nIVr8tG2S42q1Vi+JMLQ2Ce58+m3KxRbg7G83EzkVA+Dsb0KZvGGKa04/GsLlWdZEmdoKxa3rdpxe2r3agks4e6IVu5LpNnZ8EXuqrPa7VC2XWZVLtm/eRpmZeAR3AHxvNp13OilFoexmo/cAjs0k5FwJsjn69zohCvYLPO1RNq95YujOZztioRD4odhuhQpHZOL9uhwZAdzNYV5C+K3evpwag+zanCfJWGE7HI1Nqo1A53/mmGEKaB6NN4ReTeNDDPSQ+S5+YmgyvEV+8x8ds1o3Z9nsXt1Tfs9uM37Paa6QZ7PI+JPLNPr1BGn8i5NT6WCdXOhsg4U+SdjdEZxoAnek1eEtn89mSpbpKC/wrQp8WWGTV/CRma6KA4ZXCRFNkqMY8onYY2XQaoV/w+bTru7rBw3LeNAJZzTw4Hmp8URVknkBeTCBrjCvsgEARjPHeZqvnfdsNkkOmXJN+4W3SpaqNTeMmOAmC8gc/JERVjCP7UMoHHOGNbzDEXa9n8excSNSZ5RCjMtaA/bE3xMdbgvp+XjDEFfdAKYDmOjizU/PrZbFtsLUPUpnbl5/7Vga02IhLNjCnKs6dUrSFWPRrZqDS4W9ijEY0GCcp2GvC4Vjeq2uT8HtyAR7UCzCdzEEb880JjHCyI4WHTThWA7l8XBvC5urNHukKtGiTCDfPtycdk2DVL9yBSDYrhIjEOF+CiLIH9sAibaPu0VkWlTjfGBuL3wPo4lhOutzDg8axAs4YHOJbTO61y9t6DXRbLxk3Z2uUlKqF6TJad5YKk7D9RXWqT2EVqpw+J+x/ALl8YzXKF1MOWRDTZqrfagNqEDotsc7VWCBGLITss7V8Bnix7Es0EsbqLvqDL/vKk3q1UYZdFn+b5Xj6I/FbViWZ/xjmQ6GUAe2T2YHSfy6ROHxAuDkT3uErTfJMp9jOyy6Lb2AEqA3FpSHSThUpM+oDa0HRMJJqpOn14X9dr7HFqASzRUef89k7n1PZO5+3Wxds3CXs4eoCjOy3KjQE8B/akaMurC+TJhQMctQwKkTMLQ1yIJWZhrhfK89utjAW3AjE4xBd3bGEQTPTMt18flMoxoyZ9Gs/ovN7tGoxVG2BBjrjhnAia52q3Yc7hX63idJ4xvlBRZQn6NjnA0Zx+VgVgLn5Doc4D/tmOKSc5di98L5TqV65Uzb9hLefbsKDfLbAHcRbtz6o+yZJ1bRe44TYz8VNBhph+UQDLdQRtSjIC8r0wG4+MiVyzT8pUblKmRPp54FhfdDL66CBjeGr2uTBLdKIOwGTPU5WrO6Pr7XlxX4LTNciG2sKSNQzH+OJS1YdFOcIS1cvlW/amvMukayCEhDs+eUMxoPYCqTymg43xie3B052b7U0PRxqhkzvGh1vj0joaAOcNTOgAGu6Kmpg/IwTSHVcNQ2yybTs95qRI8m2loTthTuDRzrAKGOXDrHHVL0AGmsISOIRmu9r93fff04WSOBhDxB6ezuEgWH98YvvwaGd4inv5ZOvdjDihZjpCBxvDsjqGRznjMtkPxnnCsjdAJpv25jmBszbIhtrCMjYMx/jistWHRTnCMtXLZVle6C+qUFW1UFW1X6eEbmrnBZK7Dmg6z4gkcCXYRI/GELGHVoF4EJZ/M9VQIP/HYJwnNL89ZIApNn97TIgdND/7ULKfm7gg1ZEIw7G+sNyM0EHGuBz1crGWwGHBKB9mDathfjDdUxWZLpZCb5kROtgYV9EieJQzsKp5wThPXNr6ySjT3RRA2fT1BJHxl0pmXxTwFYildp8Pt5ZK9EEAhveTTvHdoDEVZAhM4TGW6wguPki5oQuMWVKXKtNJm8R/L+/AiRfDo51hJRvlw6xxLWiADDSFtZohNNnVbuSc5ypvNoCD5m4IjXSF5WyQDbHF5aqHCjKE5agPS3dUpiqLW5Okj7pYojM0CMf64rI0TAcZAzPVx4VZ4rLVCyZ7LtSytzkgOGNjeLQzLGujfJg1LnMDZKApLHtDaLrrWqn0YbEt6gdV6eo2qR7RKRyPIGCOS+SJEEh3weKGl7NkATNL9laZlS7KvFyiB70CZKAprFhDaIQrrtkdQzF+sMbWQ2UYys3KxM/GFJ2FKTD7UmjWJXS2pdQsS+TsSlNuiuzWbOqHy6TQ94hSHCNpbrvdU86eVLppEqdw/w/TL4BlOYK2j0HsF/M+qdibollGJPq8YwMt5LQsqtps0pp/JusAx9crq/q9OxQXeIqgF0q8j3vUjarK/IvK0Ip9LtESvpEaag81y7lUVQU4e7eDoruAnlEdFHXXjgaBeRp1WWSfzSopLspyfZLW+otb2oXpeQTB34snu0RBTUYf9y06sUvKDmXjNnkNYL8HR2pJnmeqqPX9tl0tDdhsy4OM7dnY/nl7liQqfMubHZu9H1KfNifuO1OuTss8x2zQ66dOe6CunLoLe/tr1Db6Qx7GCrKhvhfK87s25RcN2AFuyCNarQA9NweJ5i0sCrndtD/+dZPkiNrTYVFt1qVxa+xz5JBVAItyxHTDQly2JajrPyYCzDCvAR4kx01oSD8Kx/oiMxI7tj9iQrMTNcLvoSEzFTbOf16k5UoXSzdq4UZV+N3OMZLqlqknuwwJupbBTwUZgqqNH8t1RFWUIZDvBaoaIyLVTNcauXv+CAjygu2gHyaDTEFjqyEuyhJUe71YriNu43wfk2oHPfgZch64rBP5Lamo6qTgn/7RcqgW9U+v+Qr1T6/p5VArszbNN+CTPAfI9HjRd+Xu37r7epEUyw3iBTpInu1zVT9A+l4jZNzgS/mo3m0KzKhbj0bMj3W6KNNHt1teodL6ag14unmYRDt7FMUd/2yjlsOzaA7G4H+ZHvIYVigbtsWNqjcGdPq1j8mz+y872ImV6yBpbn8v75oD9tj17UCimfyittcPJuG/EOxBsTYQH436bNwDBE5xjrGRtriTaqb4ZOtPSb5B3GzHiWaWLuwUYdt5XNRGJezTa0dAYhk0mE86UyVUrENEmS3qxNQLZb/g8R8tE3iic1F+LTBHD3VQNBe3owjXwkEY8U9ynbBr/4HEMDlNarUs+cf79GAMH9gBtH0awgh1VJWfSjUsslViHvlODYdsAXlHDL4RzrNo9qLAZdCAx7MCTVcY4FhOkEkKXRbLBtPX78FYPqBj+/o0qpHb5IKv4jAsB9zctBGQ5fVWVanRa0y9HxKJZrrYncfOPze8y4r1p+3fnddq5aoj/xb1aPRSsAy7ZGSNEnIwqk81OG8L+ul0Ao92xnyOmeLDrEGfV8NkoCnmg2sEzXaVSlxsxoqlKjhHBZITlpUS6QjIw8O8YXgqBtBIV1xChtgQW2BajqkgQ1xyerB0RzsKWKn6rKiNxs6QitPBxrhEjeBRzsB09YJxnrik9ZPZps1h5kJpO4ZjfeFJ66GDjPEp2+PCLOEJ2wezPaVSFZulYgkKzk2BtIRlpEQyIvJwNyp6av9c3+s02X0SxWfmrEiCVwLM3nmhJK4FmeFTQWT8gbVgMgruCpRphqMlOsXzQklei1zVCMUSuRrByjGOInQFctXDEwZ5Dc9QL8Tqw3PUA7n8l817iXwXznNIfq90kRT7Gdfd2WICmT4zmOz1ILN/bjShK4LWiOk4YleBrCUzAtGv46zI1qUu8C+0XjDOE5fzfjLAFJjLQybEDpejIyjHr9mdRrTdngwi44/M2ako4CuA5nKYD7dG5ngkANN7e6PSclnoPwTfVmcFkrsOcO5PRhK4EnQdiMQQsQfXhVgQnL94PRDKf/m8l8p3yTzH57doXiPy+YvdN0G2NxMPIeEOzOqJGFB7ZGYH6WBjYHaH8XRn+IY8XijGD5e1qN149ixgZvL34ulQcNkH2InHYfLt1wel8mahsy6L97qqS+wBwXPjiF0FMFHnBMJfBzKd4yEk3IFJPxGDb49ve31gnCc+tWHtcMsTSF5Ae3wg4dMT0C771+fDs3NGGKlrwGXunDjwqwBmdTyCgDku4ydC0N3bzzPwjPeCcZ64rPaTAabAzB0yIXa47BxBGX7Nyk58Onq4MEtgMvrAfE94MYLKD19w3BIbnvsOT8RoALw3roTjEYDmwHYzxIba4trRIJzu2z0jHp3KITbUFpfAQTjGF5i2HizKEZesPi7DUutnmUIxJ47YVQBzeU4g/HUgczweQsIdmPsTMRj2pvynSuvrMtepwGyKCB7tDEz2CB9mjUxtLxloCkxkP5ruurCHTtnZ0aKt+HQUoSvAJfWMMOhrAKZ4NADeG5fw8QgM87VS6cNiW9QPdnPO26R6xGf9RAwRe2DGTwXB+osWu0B5yxY0u4TdRrPXpkxVVZX46W0xPtwaWNSxADhvZMvtRyNdga11gE23vU2W1bvSHbq+MalCp3EE/z06U/eAf2HrV9+l9Y9oa1wzF+N/n9b4zH4mb3huP5M3LruBD0M/+fsxBWaxvCsuc+VdkdmK6w4F0N+TKzRj5W2ROStvy8pas1S1yp5n/G5+NOErQj78ZoeTuiZoszgjkNx1IKvKnEiMK9kfYS3wtSYIx/oCK0GQDjJGpriHC7MEJrAPzPF8qm9NUlS52MZ7EyEk3JEZHI8BtYdmc4gONkZmdhDPcC7XOpWdQjIRQsIdmN8TMaD2yPwO0sHGwPwO4+nOHyuBvQVGUIwfLmvHVKYhMDO7PLYVLvt6QKrXF1WoavftEHMQvY9JtCuXS/5hlQ2FalA+btZXhbpyR1Dxz3Ia8FhWUCWOz2VSpw8qs/nItemgiC7dCdZNy3xZZrs1ru3u9Yg0nx0IcB2Qx8CYCDBzR2jDDn2LoDGu7xKdb4wCnR8epwOML5NC36uqBp2CGGMjbMtM5e35WljXLhlgerXe1VOJtmAIR/gCH89BMMCzOfATe+93TIbdwg2hQ6QaFNvF7XdzmbBPYvQgqW5F7Y5B3g2h8sX6PKpVnWRJnbxRiQF0LXo0opHOslx9TYxa1EnKPvB5gCM69XsdbKc+juq0qR+u1orfI2hBRI9NVSfpA7/y7zg0iw9lpt5s7u/5OXwgRUwytTYqTWqV/WlC6n1dr98nRZYrA3qb8FOpxWZWSa7/UNmnJN+w7+EAR3Wq98eCnD4kRcGvcB7kt+xG/bx/dWeXoXCFGgrRANiL4necpGzI98cxmpWzOKcD79u0opbWdbJU/UOCuGZjItWsuwYaUWZjIt/M/ueiRJWcn8u3vDblWhm7BhTpeKCSDQFd9IZCNqiv7ptFKLcJIsG6OKKTUubUFqurPuzewgBHdTJVWTTjQXyhA4tp03ytggk1OI6TG/XF+DgU0cW/5Pudzmt+zz0Kh/oCG62pADxv9njmHkT2QHcvPEiiW75ZLpO7nN+OtSCihz08he1gIaP4IlHI/TmcAXFCMdCAOEn4uszz7Wmu7cFnmNowBLK97Hzo/IvK4H59MNWT/13fMojR91y2w/7/pZq4HSeA3wXHRJaZ2wuD//Tpwlg+uy9b+AIbg8me7vH/RZ39vtFrO6L/psy2tt8OMA2hYa5Nz1DAtAHDPHeH1fzh3l5P6trou00N6MbNjgS+EkQVC5DJpl90BujM7zhEi027lyVylp+fCjLEzPMLYLmO4OKDlBu6wJgl1XtWgbMuyIbawgo0DMf4guadBrAoR8ws1BCXbNmudxRJ1DAc6wtL1QgdZIxLVi8XZglLVz+Y5vnrRjWHOyLeRXswug+7y+UgtPg3KsnsSBNoKsEAx3NqthlCKTU0qtHuDL9Tlas740ZXkQ3dFB9ujWnuJgPgvEGNXgSNdMU0fTE21TZLXDhM+zfAUZ2WeteBR1kNgByvq/tzKwFJvT6PavVoc8IVOnDUN4AFOWJHgCfwVOdmuWv1oNkzfLssvk1ll42d1wrwIPRAOX5fFGo2yJBHtXIN+W4aI9+pS0MYtZOZsWYtlWW40MsCVmQNjO2ji+WJWW7sACKgX+rFUh2bZzDufvZ5VKvabM+MKc15cV/ynbo0hhH0wd7nMawWtUlqtWS/efVgAJ9Pr6BGn4jftR3ktnzkrwU4kBgm9vXt1iQa0Afr0ohGG7c+5uypVkWFePYNeN+mFXWOhrgXNcOlvYjzOcS9XmO8QCNoAez34IiqEcKWoPohbAmqLcKWxLqz+PGtqmpdQF6VejCqD2ZdT8uJzRJEx6LWOrgHsV4tssdmIPpSP2l+MvRoRCOVmPThnQ39Znu+sitagCPbcTrYGDOqPYFHOYNGtINgnCdmNDtMZpsKJSw0U6VSFJub+KREZaNAGiLyz+3nJdZuhuhgY2RSBvEoZ2iKesA4T2TC+shsU6GEhWaqVIpicxOflKhsFEhDRP6pzDbBGKmGxbcB7TDmQfLcEHv0dVlUm3Rj1GlZuH9m63RgAB/Q9CUfk2q37G1rzzfr81hWlon4SDTAUZ08RwBg1u9G0EBX3NrdCTzTeZGWBtDidmlUI6Pdpj6gL/VDHsYK9u05CMZ4wpo+LxbkCOq9+ahMw8N2bjC9A5Lo9lDWu6aV7XRAEV30skjqjdsgFfQkGxGZZp9en5rtui7PC/4HYi+U7Qc24zkhp9Vg5tMsVpq/Z4KDkOPXD9vmG8/GYL7SjJEct7OnVEHWGA9wEad5GxIuyvRR2ek4VW02aV3axwY/q3xQYvG5hSOYfRy7LL4NajtZH5Not851/bZMN5AHTxdG9KkTU7dT37e7yfDNbHPgsNWcIDL+oE7RrCjgK0ANd03w4dagobCpABxvO/ZQdE4lwCd7LIKAOTLNoyGQ7tAED8CxvsjUDtEZxu2joN0hHp7WsQB4b2BSRyMAzZEpHWBDbYEJHYIDfPu7v/69vBNL7GgkwSsRSPV4KIlrkUj+UBAZf4HqEIwCuAJ7iuR+gEesTgSjCF2BQF0Ih0Ffg0Qd8AXAewvkvjcCy3yli6SoL5JiuUmWqvsFRyD95wWTvR5oZZgZTeiKsFVjMo7YVUArynQgxnX49iiG15OpIDL+wHoxGQV8Bch6EOHDrYF5HwvA8bZDs8LZHg0h4Y7M9HgMqD00y0N0sDEyw4N4jvPTWhWVEhveifDh1si0jgTAeUMT2otGuiJT2c9m2O4mbQq9twbpYGNgBofxKGdk9vrAOE9g5nrJTNNmjq9I0o7RSFdwunrYEFt0ovaoIENwivaxHMd8+/VBqfy8lvquGY0gYI5M2mgIpDs0hQNwrC8yoUN0hvEvanv9YJJKeCRjOozUNQDTfEYc+FUgEz4aQcAcmPrxEAx3d960XIc5jEc7A/M8wodZI/PaSwaaAvPYj+a4qiKzM5ilxi0ifLg1MoUjAXDe0CT2opGuyDT2sxm2lyrTScuT6IHEAuC9gakcjQA0RyZzgA21BaZzCM7wbU7pujVJ+qiLJTybw3i0MzCTI3yYNTKLvWSgKTCD/WiOq/8YXnwiT8cRuwpkas8IhL8OaLJHQ0i4I9M/HoNj3zvUEp/+QTzaGZnsYT7MGpraPjLQFJnIXjTDdbjvBjyDYwHw3sAsjkYAmjf7dfAXlUbYQFtkvQuwobbAuheCs3w9G6IIVMGJKEJXAK2MU2HQ14BN9HAAvDc05SMROOYP5bCRwviOuRzLtVLpw2Jb1A+q0tVtUj3i62Y8hog9sl5OBMH6ixa7QHnLFjS/hN3W2temTFVVlQaf22E+3BpZ1JEAOG/o88WLRroinyl+NsP2NjFLVavseXpTs6MJXxEw4+eHk7omZG2YE0juOoA1ZVYkzpWo9KHQaZKfbpREbyzCZ1lLrryVWHErvNJWZIVtD4ocovCBUZ7QVgS78lduxS96pa/l3ZqkqHKxLR/iISTcwdUtEgNqj05oLx1sDE5tP57jXK51KvvRMh5Cwh2Z3/EYUHtofofoYGNkfgfxVOdy/XwbNcyPJXo1qNQ/IpjM9cAqw6wwUteAqh7z4tCvQn72ynQMEXtcfRCbseJHA/NfYKZKCIrLd4kZKuVaemOGqQgC5sAMl9mVwQdGZjd6TwY/EpjZ8B0ZyvVzLEybE0XoCnA5LrgqLQQH5rrImrQwFpfzMivSyvWzTLydFUbqGnCpLznrNkgHJr/MnNsIF5f+QjNuy7XkhNsYHWwMTHL8bNshFJnSyLm2YxwwgaEzbcv1M3ycnhFExh+XzHJfoANsYGpLfG8OUnGJLvJ1uVyLTi6K4tHOwOwWmFk0oiIzGjqvyMMDZjF2VlG5fsZJRUcEk70eXKbLzyiaiAGsBZLziSbpuBoiOpuoXEtPG5iKIGAOrA4ycwZ8YGTio2cM+JHAFIfPFyjXtybR9gzI4aESCt6lmRdJ8EqA+T4vlMS1IPN/KoiMP7A+TEbhX4Eb5WkPiftDrlbE4ohdBb5GRAPhr0OgNgRCSLjja0IoBtneJEvVHFEK0DzARj69qPZV57TMc2UPj+XH7eGoJdF5/dLFcrd6EGkYgKN87UCIlO6BDbAFC4Kc3iZ1snhIjC6W16YNCBb1xoDYg55WYybE7kNZ708xO31IikLlYFdPBIg56vnpgUL8FqqudbEErGzwYqGO70rzcZ0lNbpWjfhka10sfzPJeo1YPtSBEX02q1VitmyTBkN1KJb2rxQ/wfYkosm2qJOn2/JRFWyVA4rusl/EjLDZw3g+f6hmkTX0DSbChtqCWtoYHOMrUqzA8pQpSE4J3iZ3ObvRd5DYW4X7g1OVs7sWe1A82pIfZ0ktT0Tsv/5Ajn6jKveSh2xoAtjvwfH7KMm/vvouLH9EWWLawRD3+7DEZaawJyw3hT352Qka0BwTv10zQBbKufEzT84NkW2YIWgP8lt2g2ScnB0i5+TsyFkXmZ6B2ZRlRggB92tTrpWxE8FF/Q9hQNfQfCqCOzdYkOOl/R8le0gnxKVa2k0Ai3sNeM1qSUSTdL0o00dVn5ZFodL6al3zk9DDJNp1tkfa7S3LlhsjqW5mxZcxK3p0XZR5udzabz4IkQ4O4nRRNl9LwG4tlu0IbHV9UKpfZT81YO7pHsV2uVHVJgfUvQGQ6tXZzonv1IEBfFAlNULS3dpVZgiplhUduVRPNay13qPo179/ZmNsdrDJEnAfgSAhHWkqXn9WJ6g7HODS70WfhmyCw2y6rUnS+jTXdl4gprfmYSLs7BtW/kVlEpZ9NtFWr9RNUiwB93lPIpqM9pMC1ZQAF2UJrCkRNtX2SaenZVEjmtgOi2HjDgkFFNUeRXRpZxcjunMdFt8G1E0ZEclmRZUafadAJdWhRZ+buyeGgjbyPiijXA4ocDMfgzN999Ppkd/zYnCsL+gbT5QOMkZ9GwhwYZag0eQQmOlpuzwiuToE4zzBOToiA0zRudlhQuzAOdmFMv2yNr9hcnsiz0yXBWpGsAdJc/t4c8F1+XhzQYxdZK4nrbKFXhZJvTHsfPIgqW66yNSTyt4l/IUGPRjVp1KJSR9QQl0a2WiT2jne95vcUk6qqkw1ZNQ6gsa4vlW5khBtuSBLXSVyhdqnU41rmflnQfD34kmd4/ACpsT5Di9gSpz74ANieoBh8vdjisxUcVdgroq7IrIV9BbgY37bdpCslPRDZKKkHyb7MG95Xui37gfKQElDTA5KGlKz0K0UPcmSdY3d8iMIxnmCnitBMsAU1e54mBA7UEb6oBw/t0GASjdG11vMZ4QQl2tZKTvZxGhV4StPmA+3RlalSACcN7RiedFIV2Q187M5tmdFti419jNYmAw0RWatF41whWbqAIrxQ2bnkMoxfJdvvz4olePz0kcGmiLz0otGuELzcgDF+CHzckjlGF4nJslzlduWGJ+bITrYGJmjQTzKGZqrHjDOE5mzPjLHVHAn98kAeG9kAuP3c/dyoWmM3NM9QEQmM3Rf948mv05MxZ8QuwcRPRAKrOgnS1XUroaB3pM9TKYddj5gAEt3vEzq9AFh5UA0j09JrjP3dRgxs7RPIxrpTJVsEQthxL9UdZIhCqQLI/qUmj8ZxEGI8dcppv7sQTSP3xJjp1JzLXYYlkN1oav6vFbs9a1DHtFK3TXridk6LYjp4Q7rvEzWMJ8WSPQqTcZWKU0Wmyn/m9G13bWs6Wywo/VotKs+Wa9VkV2WWafxqC3+GJEDZCDxt3/7Pz/871fzRIxJtm829/fKXOhHlk2fxFD6Wp0aldmlikl+7v67tkuTv+is2606XjDGpeu+0UVitu9VkinzKck3nDIcsbhalsv2sf/AEMnLu6u1jZDkXJ0Biid1nZiaKWMRDImyzFVSgFJnBGOImfJrpczNxq0Wbto5XSybK97mZbJ7B3ahOc7HxBG5HMEr4Eq7lnR49MDxgh0MQ2ZbK1Ca9kl0pdMHlT5Wm1XTa90Y92JzoZZJumXoRagTqplaG5XatQp/iln3Vqu1X0XsiN5K1cpwUnEKzSjql5MezQH6TrSHE4O+E+3hbKHvRPs1Q7tcrY16UEXWXfDK7KeEoTjR/jgXWHgM54gXX5SpbcPPSoIOxivTCfk2qdXg+8XR8fYM+pW/VffJJq8r5mteF0OXOSuyq/umg3JmTMl5kRqiWFK64CbvAcIScY3K1Z09FHy3pwSnI+EH8gUhDaqnCf3fDDU7/mMHyVShzJXp/6O7fI7qJJwh/pTmG1bV3BHoCu+TIstZoxo7AkPB9cbfdDfNP16iZXA1uK8XkFeL93W93hWr/YDDfZL4cDy53UfdZiiE0xCMYVyx5vMtyqxHo6s1g333W24fpMeZ6oS0f8x+he+DJsMWtVoqg6lOYxjjJtTKJLX7xN/bvOd4qR6ILvSL2l4/mKRipcQBMnVjLspiibkrAxK9BC7K8nGzfrcp0v76ZoJRF0QXulRVlSxBQ01jGENMZ1muviZGMTurfRBd6EOZqb9X4iO0x4SRuBg5f6by1Upz2jD7c3pw+9lBJzkj/o7AUNDpIye+ToenuR0TvMzzLXC8xsuD6EFHaaJclu52yWr+d4SpJ+C10aXRrNfqFsG42t2r+C+K57Gn0FV+3Siz3b+D897ARiy61o1KssP8BtCn2zCUJ7pd1L0jU0liDYQjkvZmsRAk0vEUlqMEHu2B5xYPbBYjVKAqtImcQeeo5wmzo9wiuBJf1KEjyX/ZDjI5mm5UYTfuMZyUTzAc43hy2ihejW0QHInabN34OTvnuyC60CJ75H4ZaBGQb+WL7HE4YY8i5J2md0yxKPNFp823IO7ryIj1jWpxPrvLijE+rMuKMT6dy4oxPo7vYJihhDHsmxUDpL+YGr8CiKnxq4CYGqcSPJSmxoxIDlEMqfCxZ8dbTRx3dpSW/UTRX6xE8GkhDJFarTkKtRouZzgquNRwrNgILHTQFTnOuqiNRn03GbHoWr6zcJjd+BASJQl9z55CM6T1SlV1slpj7rkPx5DznY7BLcoQE6aJvfNTbLr2xyL5kujcDhMyBDsUhkq7nJgj0jIAGteJ5ryX9zgMnY3OMNVyQGIsFrsrTe22mu98DvuSGG3v/3HLww6kYSf7x2OWbDA1GsjwDWSmwWleVsrNkWNaHEBEE4QEO35z7jHCoiERXd7pboNGkrAIYvRLlelkOAmJJNEhEV2G00FJGg2EaNDoQ2pqF0W08R0tSHI5gIgmvWNISAofby6IsT1L5EkGe85RHv/wzNlrD4olbILkRcQWpw9/QNnAyM+YE7U5IJBxnR3A/Hica+wS5kS0ryqM69v/fG4szrUdfh+NZolro2rqpY1+Pzsa6eLGgFi8xVqp9OG2JF7c6OdzY1Eubfz7WDR3zG/Z/IZwZaOfz41FubLx76PRuqeIUS5t9PvZ0UgXNwbE4l0ffnrUE6rzu+HzqPfUWW/uqs3dAb0qs80Y7P5ooPm//pw+6Dwzqvjzv//3npe6N3Pr6vt/dVnPC7XDfNblsHT84OvN3WLuZQzZf9n/uAnx+od/e/3j3153b4L7g9FcB0KQA6Mfq3tLVr/XR5aS/cWsYvqPfb/lT67f8p+EOOO+z5zIdpaRG+QfvJypYrMiBe0D+w7/2ntJr9xo4TBDXJ+Mdr19ZD/0D6/+tfdO7EC/blR3xIIRuguMBm7Kxp4QaKeXXZaFrruzKzgKXnRM5uquUuZLf2iNIXDAjYLOnjHXXgKyYDzcWKksNnfNWcuY6AccrVR2v1/3J5nxhdbjKWdzlS508ehGd7v5Nuf0zFl+fnrsWdwk3qztNY9IZOpWm1frZikSzGbHi9jMmzvVgsZrezCCgaU+M4vtOnkom1YU5XUgxjty5UpXqr/RGTPwAUksC/cAe5PM2lB3ntKeGC0Lf38KEdo/eXQYPdfV7LegucH3zOhL366V7j8MebG7TFoe7J8d0DLpU2eUirt1yAoy5NJKx45vwlpZB6N5fLT74aEb1R6U6lUJZHWfSjPzPuLjXw7pXYfJNbjuR+9VktcPWJEOc3IZ1JzVezOfetxVfM3T67Qsqtps0rqcsQnoMY/FAZgh6h4sp2VRT36TP+JBteNN3rDuH487oBiJQEd0JDNnrdHsVyXOmqNblZis/FpclEudAnx6vGO1/jG6XYT3p+mxBECnaaKL9I/epbhT6+eND7k/nTUMdHr14fbm6uLz5eLnOWNADbjzo/A4T7CVn6THmvHxDZh3bxu01E3t0md0eE+vPnw4O709v/rweXF7cnv2+fT9yYefz6bHkwc3wQcZDS73xzFvy7VOB8cZ3O96G7Fo/d/2g/z0epCpSXPK418L9VT/c2p8dvfHn5s/npW0yVofB03WWmQ41hOGNhp7WmbqZ1UcUr8/Mc9TZWaF9mLDFerN2cXVh58Xn2+vUNf9lx5yV+G6VeH9yeLz5cmH/4IF7AAD4a4+nEGjNTxPsJ9Nsn749WKwjs7bSs2K2OURB/DKNJkxnjjLpmXRTGYPQc9y4Y5AD2dE0U18+zIdOeI7PQA9z+T5xp+P8WEMP9+Wjwqi4kA0h5Pr8101nHvUyiyjITbWezi5Pr9R1eyznObGPzCjwc1ys1JF/aG3jSkvdgdJG1Y4qaoy1a41siOd/Wcnz21MjpbOpn7YHyZRljn2HnnhUzp2trf965MiEzWLxpkrKWY1rbE7MsHNQAcm9xBLS/A3GzuT8by4n3Hc1jytPTD6npLk+ULXqLJocbQyOHV7eZRiSRzkR0uo+ZFI/nrZcRm3KzZYosOMBy8f7VHubnjD7T004/V5psKIHBXZVHW5ar5NzhqXnyfRpx4h0D7eZERa+rTQ+NAkgEfgxKRe+Lfa2JfPL+qtutfNdjzABjZAp7Uxe5iEIEOrTNGdri6SJnVWbFYWJnJX/XCe6NlTrYpKxrPHpmu6boJYgXroTFUJQYaWnXjYLMGBPgNH3Fhr906rfMYZhrMCO9ZkMJF88ZBpN8WB0GIMnbxManTu9qFEMZMsbYMscze9cJ7oYm1UAr2zIzBNsDtMum+XUZ1RP5wluu/LAcctfOhYQ7L/e/cd6NNPaI0ddoZC26OEtuBe9gyZ4fb0CAnvTvXj4L/n3QHT3fblSBNvgDnr2qB3pg89ZmlkexISWGSIn7vST0ini55WqXcLIkVkhvD4OsGT9brJKV0sRep0LERcLdeFah82wOfXGEx7LLjZmc26drH3q2gMiLbE21YsBENa7q0rhKfKwnuuXSRZStm1V/YBf6GePv0AruRe+uQS5c5PXokKvZopZOMJ1uZgBMZNbYEyNTkUgCFsl5Xjb/aBOnthPPrx62PHZH7Rhap09U4b9VBWSuTxG40xQ05Sar6Ma1PelNi06UOnwr+SCP9qXnhduQcpsGJ3kdQ1AhX8MddjErVGU6d4RjvcaHfhI3V229tiE8jHjuWRPYw2P6lro+82sK/FfehkeDcuCBxB6UMnw58XtSmr9W7ecvqgVglSxIOPKX1IVsjq0+JoqWp/nYGbmR6TqGUXhQskzogbvVFl8WGT5+jS6VOJ5bPJc3Q73GMSV1nbaT3Q5q5DjC82t++d6M8ZAyqxTGQHC7DjBLJDBNDRgQaGrgQDKlVt7tYHR0yg5u18oMtCJv38dKaqXG0JR5DeV+IIvxfZVuIoP+6uEkuV2W4/yGrPi25koExlT7LTf8i8cwf5USldrEtd1DJGXnh82439PmgS8xVD+JlKIt+4gvy5UiKDW+EAM7VkEirEj0vpVWLs+ZvAKdJ9aHz/kurhQ1nre928N8sUTDRITO/mbHErojQGRzXU7wKTgwfUuEDlFmdV2ELoU6O7qvwochuG2KhCmuSJEev7hPC0Z/iBJvGmEKBTVe2QjFCZjtEcSTvREqpmgfGcc38lcgtHZE7JuGEbqJojTpdNO2QEjd1Co+FVvhtSVMiZEEMs8aa4dhU87t6HEsXcRsg/q6J5UQF/7QvQo7fRnWWFHqcYUIllddROVEctbGZvr3bE9mZHr3Bm7G5m96NuMeDc8rJjmdXbHFtCZsiOyRy539osCch2a5LDSQE6U1XiaeyHU0WP28JupiB/B7tPu515RO61H84TFdBjLNS/Ph+++ni2CJu7Y4H3dWe0R9rJ4rZfBuSIDcgbb97VF0m+rXU6egElG/WBkyXR2cxA5WWxrG5LgISHeoTJ+6S6TIot1GPHPM7iqkDkyBB5hMPt1FmMxxp4Pj6P49cXKqlqzMXvWZNRPd9wyVFDX2+9URd1UmSJyfYTS35RiNwLkOcYfVJG37t2Fe/kZ09ZNQNqh9VNi8XNbg0+3yrMprerHuaN+n2jqvjmoFTfHZvh22zsEBoMJKv6sJP3ur/JxMQuMUy1Y/aImTJtfnR5n9hNIjeIzIzyJ+3cdgjNKaYImS6OkWkOc7mpk8F+ljyvPZBrNtrGAqY4Js+7g/vf4U1mGvy6UQbT1HZx3Du1SEtE76QDmyqN0BsWNXT0peqI8mh3zsB017q0qRJpN5sA5MYeRS+HsyeVburYuzBZLkDmuLrzodx4+KWqE4Rjn0h388w/pUqFppyOMsn9ISCNGs50tCeV2XZoO1xPTY/bJ04Z7EbTVdY+ufgKI+RsB+cNFHC82dH923qyJcK7e/pcSlTHco+ajNksvrcvRZeQRmoAnBn/UtUPZXzD/mOiN7ijYi8WN+Dwi8XNTANU5ndoMyPfqGpdFpXq7mzBDH9AznQA17wxdKZHO4xbAQujw5xl0d98AvVYCKKnnLqrelFN05g5ZXGZbO8ALZPD0PsjrksD6mYeWHSfD+qLMmerdQ1oOQ6sqXuxW0LT//pEDnuAMcqhM/kPlqQe6FTJuOUy480kqQY93KzYoFfRA2syandGP+YVZ4Sk50V/xjMkK0bIqRIiHB01UwR7ctRhwhqgcevApsqnMxsMFrihzYvczgWDBd8DJ+O3U8Ew9aaHY+RBXZpkOVo1Tbbq4iZLpDY6rd1kCUTkPeyIuO9Vvka03SPklMP8Y8LmzSDinBLWsbLHQfyii6w/NZZs1cUxrCIzishqU/OIjvQLTCPi6MUmDx1ph5Piuyy2Va1WEvfTR0a4CtxbD5hu6pqdX9QW8Ezbo6bar4/FY1F+LQYjAAgBH3fK5tNPzddp5Pf5MfMIC9hX9zFz0mI8+ZkcPDDj+Yjc/E3XD3axaOUGqvlKfd7kU7Z9AB0CBw4UPO551o/747yi+Px51X4j+fwZI9RDHiHVPaKwya+PlS6W9OrjhcybXdP+6Eb9zot6o36firjcDdIv3BL/zs9Hlx04CdIjMcXsO/30eo7Ojfr9BmzTIEcyxx6rOgg5/3hV5oGSTaBxDZgT+n/+XJSZ+veqNipZ/UtaFtVmpUz1P3/GKHy29M8N/fOePlB7Ha6NgZM9jUm2zVb7x+bBsaKdUMP8mNWw3eXlnbSjjUGTe5YivKOX3j+r7uuvjJ6NQZJz/yUsZ2McIddtsfo1e92MkclU7BbOrdf25aR66HaFgKV6kGzDkO76Wq+V3cFZ2LENQ7z57jCSs5Wu62795tzwLpF5m0/uSlP3v5lAzf7SDbBz/OHfXv/4t3l3+BnK7i+DGDzJk2pbpO0OAwfjOSefzjIOxurnwdzDUYO42eepQy8idBL70dfSxtfFMnBHpK4nFPmYa+p3dvf1F5D9LY3ZarzdrHNaF3xC6S978vHVsPnpKHHRbocAxyveqCTDNbZ9uw6bLiZYeuMQx2su3KNZwm5PpkoJltwwwPGKvxkNfMj37Tpsuphg6Y1DHK857gxD/Pyd36Nb48+7vqpV+IzqC48le2GIfeFxjx1SkP4e+jdWkHtJREFeJ1V1+2DKzfIB08vca3bItD6l2yXivjQrsNieS9N6t8tjdM927zcIQOvEXmvCttbT91R7NrWe7WOTVqzUBgEYO7DY1BDTHEbglaY9V/0uSR+P+ZAwuyRbOGOC2o70VlW1Lo5efjHbtMOHyp7bebx3uRrvPCMjP4wHvZjdjLrnupZBOP6l7IAi3js2X3IxGB0AOi58r/9kRdE06IfgK3t6AkDbQH+AJSqYB4MYjAk/LUjkKTKi00X3306OnUQwKbknkyY4tCP7cK0WTLJKssyNlS/0sjfcB3r76ONJn1vQn4RGr5jDo5Vmei1Vuxnde718+C2plblMzCNcMxCH5KwrdyC1QGHuyUSv8RglTKxFfxMf+0bv5cTsq54p+wJxiOMHAt+pAJ+j3vRmaHBk3ozmYcx1GH7b4Fg0LP6nOfyHxGGyz7U6/+FfP4yXknGsukSiU5GWK10sR0eus7T6UJrZB/VUj6bYcqw6QI7RcBY0X8k3//kYp483FzidjzcXNJOrTb0s0Zk0gNLMxk9ljpL/QXysy5sElUNdItXJVYrR/FieVZdJ9WpqBlisB6WZNTNvsW1Bn0n0KtNHBWouGxbRY/CtmeXhWDSP8bdbjklL47ngan6XSHMaT5BBfG2i9o888+mYnyD2RNonh5MsM6qqSMcsBZUOTKJUE+9qU683hN3pg1497EgtKLDflfnalGtl6l5DDXXyRDpCs9l3QdiwF2S+3NukTsTl+kHmy/2sSnG3Xoz5ar39PMQlA9Hm6+4Wzr/Z2AeruG4g2tG6zyU6U/GwjuWTVl9xSn0usWm2ENIRK1Et+ukq7ufo7/pdKFHLjnbtz/zBifWwCDXy8SvzFHknsThW+/kca9hSAWLuv+F3eUjnisoI8sSklhPgVg3YgWK0XYdJlBosBuT6eFb9HafS2c8JbNUh0wRPy6JQaX21Br5IdJhkKfu/FmuVIqVaZqx3sfsztwcAOraDxoPbESm78cF5rY4/tDIcvoul3hLLWCij3XHc6Drvx9NU3+r0+FPQg9+gdDo+An2mRrUuK+iT+YAkKpWrRBf2MEikVAdK1PIvPeJ6danENXHGFOXZU6rW0C5gH0tWAz5MHI2/blBkfeBfX/HFJNdjsjLMfr4lHo4d+yIcOBj7qO/B7+t6PTrfhes2ZhMl12nzdUKi/+KDEzXR72a81zKxNzLMy5iMFlvnRtUbM9qzG6TWhfM0/8ueTSFk2WHTJC/UMkm34JauC411q5u+ift4UNlpdNAi8sGJZVSWj5v17usQ0K9D5Yihn6E9Kk3sUmdZrr4mRrUfzc8Ljbu1fjxRtcz0vVbZaD4T17HPpcnZWT/vVJ0+7OdsQOupH09Tvbr7pwK+3jU4okphJ95Aex4HJFEJXEdZtbOduSXRkfSwiWsKE1Op7KPJB2e1MP36WKJasx4C+jWpw6RJ/bpRG7sRY223H1ziCmzAhcgt9B+4kvOwaZK2htt5O2o4RYopOODS5dyEom3LsWOXpsxz4Nt9LAhee7zOS1A/sOzryMtAN+MDLk9OIG0P2G9YbTinjSb35r+u3ty4B5aQ5iEAQne3ZkawEQjEAcrbf/m2LBT4xW9GLPBFuI26n+sqOsHAlyGdRLjsd8PiYs8PTwyEtJtbolPRku7FQEg/Sx3FV87nqZXQ6thOGb9OND47unCqphsigI7jdJhUKYHRJf6Y0uIhMSo78W0hznQbkUGCEhNhYkGI2u3HnxYDHePx0omi9iTmtPsxsh2wR79BTEZCXYC8OFPYu1slW7JD5YjZ3VJk5Dpk4iZj6Vrui60PTtP8WGTK5FtdLN3rPXbbYx+cq7nQBa5r2sci1Nz6K3gXOhIDIX2al5VnlzmodC8GQnpRJ+Il3YuBkHYDlsLSvRhsaakWAdQaOMppUqQqlyxWTxiM+vUmlxfvBsFoi1e+cRSaeHDLaKbqgMuTA4/j9rHfsBp1iLlPkRuznYgDlHdttrB4E4O4PKfY3hx58mNwMU6DGngcsVHgiVkedZJfeFXf0n+Y3/yFhs0L+LFnoc9Ykck7Bj24ZBTiZpGjmnuE3RtdJGaLKrQDjWFUZtv+WBfDZ8di2LhSPivSMtPFUaeXx9dOtUSuGW7X0y6PbnVartZlpd4V14lJIJvH9ol0s13D60ZjLpM1Qm2ApLshpQA2T2m+Oe5w36BMg6K77OZXoRqEDo7uZBc5NAuPII++Do7htJ/S3f8WxNDqEelmv6gtQucXNZyXdZzDK5DEcEHQERZ2EaT9dokwaVkMm97c8dErGUPNB+Z42qnayM3T+0S6mZ1aHJrCSbcbU3mGDmGP786SOkEJ9qB0v6sVplm3HIbFaD4vxGlEpRteJ6bW3X3S6Fo7FMNFY7attxyGRbNdzxb0dOng6E79iRO+IRC6YIiNsu1MX8J1ISZCoNwlpVG2ZZFDErVl8W1C267y3WKbrx5nmpYmw5hZEsfkXhmjzHWZ6xR0H7tEjllT1kn6AHlh6/L4Vi4DkFoOyPcyKlOFfQyC8n5IZRuCj+8aU9mG/V1J2WqeDUmPd7osMaMWHRzb6UZl2vRWDbK9WiTHrbsLNUatS+SbWSzSy/4j3SoyeYiuNjVp6Gg/+/zd2jlnkJIbMul2FtjMkUR4HWh0o990/XBuw6a6Pi2VSUHtrI9Lt/y/lxf25XFX65HfRfxk7reIgxnvUK6GNvyqNfMsrsHeRDwTByOKDBeL80waGlFl3sJKnmAsBlN7OO0BI7qb9fAKoOZbV4eUPPAhJRmZo4G0HoVByksWdy8EUTqyPIKnOgITBUNzinh2gylFtMo1e0YR0hWVrbNmFAmINyGOku4eKmcH9ZsjYA6WqzLbzHM8/Lof3h5p96DzzKjiz//+34dJAkYltdqdOLMpCmXOi/WGurqpEzwAju3PNP5Jsy+8hExDjtn8rHa/XujMbUlf7bZv5esE0TGfzqFlJ0XWPS8M5jUZYr6fsNsRXjebwr4L7P4SlN0eaMyh+ZWbPlOoooYVip8brWPD0HPfXLq1yRumeUeJVmde1BFuSuBmU1yt7cwJXXbvFssiwJxSaX594r5yIzQ8PL9C98GSRm7IMcerjjn92D+97oXd1Lo7uDvnUeZ+Mrgg//OrcdlVx91pIm2tGBTzvEtsQk9iPVfcvWb7Lb6qS6P+WjVnmvx1F2aiHPa/+7z7Xas3qzDOntbl4tcLXauT5lf/Mvo35Pgj0ufRv5nl+B/7PtSfXB/qP0WNxj22OY4fTi7PFtcnp2eLg5wqNithtUPYvuW/9nZ26w/HPoNWEzKs5CagXBXPK9UGDWstSlO/dYPzvRHFZ3DrRQ4Lnn9YnN3cvkD6/2UfuZH6odtB+Hj99uT27CWs9pE9VqflalUWgZbMvVVJK3oM+rf2h1fdmzuSDHXx0J7+tnh8clbTiynn7MUIV+zFj5pWVZnqpFaZfQ6/gGkvftx0W6SndrRi5jFReNWewKTr/C3JRUxR50rN2kFE7goY5+0cmhN7HuNd7yzY57oQn0Usc3YDXNfKVG7Ss/sun9vJp297M1qfyz/uE7uSs2Kzemd3M+93p55LvBc+6vn7Jsl1/ZLN9Ugh5ntu3xBnLypGq3ajxy2bGrlIH9TqBfK2Hz9qSjp8AO77sqcUSF0O+ziDX9T2ZdqPXeBY5lwm7r3ttnT1tsheoDqOFKK+tuk+qWuj7zb1CxRpP/6kqWu9X8jSxZ5n+DLp2Y8/aXpeVLXdQ2S8NOZZhYcak972D1/I1YaOfo0pi5dOgpFCzPc6We6mw878QoO2HQhEXfvdzaM2M4RrB12OuIKX68ATeu7XRmX27HX1syk36xd4qg0EZrnOPa5EzDVwwInPtXLX9YKujUDc9YgjMfCezLMzblTuGpqXaZa70aPfrN27iX1RfX7HQ+xpQ9dwvJSiCz7t2D4KX0qzjR813Va1Wu3nEryAal8g5nqbmKWqPyQr1Y7QvsiYq1cj5v2xUualxhwOsWOGb8oyV0nhGW7yzFJAKw6DT84wcfvR6Fqdu9Ve93piionA8Okw/qTypqrL1Uv5DoJPyb5Vat3OcHxW0W7gKck5W+TAh0S5e+mcPdUmmViJhpd2MRkb27xM1s7P18NfvrHDTS9k6WLPV3Wvx8/bzg6DHyv7rjSTy5+knXcOk+r2i4CqJtcwinyJaOJOKs7fL0puXJ+9sVR1db/YrJV59pIexJ4q7ebPX8hyjuBlUiRLlb1QYzuKPqm7Gyy9MruPsc+rO4w+V9edr1rk2xdoff0Kk+Lu84Tvbec5lAfB58m231KeuXj7sWepvkQWHOLOUnz2B+4+6my9N705LM+p+GY8byWk2f/E41aJP29HMeIx6xLsk+T5hW3UWXr7Udznd9yHnhTduDfLwZDcc2h2Ak9J2mGlap2k9rS3Mv/yzP2AUfRJ3bL4sMnzZx8q6MRlbM64Wd3ZE6FeYtBrEHuqnCf3aYRP/+dt6LjSdTMhK8mbLw9fnrk/4DWYLOXhD67un1d6HH+ucr592TeIiMfUJbhtxVWtjP5DZW6nm1XvS8Qz2PsVZohPbgoqYMrcPbT/7f155fuxJ8t3aqNTuB9vR1SdPr5so+c1mCzltv909rQ2qqqe+y3TE39yie+c/TzxX9D5G39ObqeJl+buu9lMG6ge9PrZR8+GwafT4veNNuq5S7gJytg7Lk3yxLxkZ9RrMLm4fT9b47ll93HnKbpnzUs4NoHnSe7fvF7Acx/7SNWXKNND8JmyuzkwL+Laxp7eJ6J2IwSeabvPITuMPqlbmvplBnx6kY/SfKHOTcBhUr02uli+0MOgH3tK1f7KVspndWyDTsl9/rxqJxh//jy5+xfashd9uC1Yf+OQ4Uc0EcPM97FsYNL7xb/0/om8O0Dfq+80Z2MOfunEDOaUitsBh3z9zf45c64UU96HeH8ZAne7wv3wb69//Fuze80//t8//j8JPSC6fdAKAA==" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index 752a42d641c..ba398a786d0 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/api/functions/aws_amplify.api.generateClient.html b/docs/api/functions/aws_amplify.api.generateClient.html index 9d639439f5c..d90eac9cfd9 100644 --- a/docs/api/functions/aws_amplify.api.generateClient.html +++ b/docs/api/functions/aws_amplify.api.generateClient.html @@ -1,3 +1,5 @@ generateClient | Amplify JS API Documentation
\ No newline at end of file +

Type Parameters

  • T extends Record<any, any> = never

Parameters

Returns V6Client<T>

V6Client

+

Throws

Error - Throws error when client cannot be generated due to configuration issues.

+
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.api.isCancelError.html b/docs/api/functions/aws_amplify.api.isCancelError.html index d008a72b3ec..5ee66a87c2e 100644 --- a/docs/api/functions/aws_amplify.api.isCancelError.html +++ b/docs/api/functions/aws_amplify.api.isCancelError.html @@ -1,5 +1,9 @@ isCancelError | Amplify JS API Documentation
  • Check if an error is caused by user calling cancel() in REST API.

    -

    Parameters

    • error: unknown

    Returns error is CanceledError

    Note

    This function works ONLY for errors thrown by REST API. For GraphQL APIs, use client.isCancelError(error) +

    Parameters

    • error: unknown

      The unknown exception to be checked.

      +

    Returns error is CanceledError

      +
    • A boolean indicating if the error was from an upload cancellation
    • +
    +

    Note

    This function works ONLY for errors thrown by REST API. For GraphQL APIs, use client.isCancelError(error) instead. client is generated from generateClient() API from aws-amplify/api.

\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.auth.decodeJWT.html b/docs/api/functions/aws_amplify.auth.decodeJWT.html index 92400134d0d..8ade6d36949 100644 --- a/docs/api/functions/aws_amplify.auth.decodeJWT.html +++ b/docs/api/functions/aws_amplify.auth.decodeJWT.html @@ -1,2 +1,5 @@ decodeJWT | Amplify JS API Documentation -
  • Parameters

    • token: string

    Returns JWT

\ No newline at end of file +
  • Decodes payload of JWT token

    +

    Parameters

    • token: string

      A string representing a token to be decoded

      +

    Returns JWT

    Throws

    Error - Throws error when token is invalid or payload malformed.

    +
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.auth.fetchAuthSession.html b/docs/api/functions/aws_amplify.auth.fetchAuthSession.html index 5a52daaee82..f62b7471aa8 100644 --- a/docs/api/functions/aws_amplify.auth.fetchAuthSession.html +++ b/docs/api/functions/aws_amplify.auth.fetchAuthSession.html @@ -1,2 +1,8 @@ fetchAuthSession | Amplify JS API Documentation -
\ No newline at end of file +
  • Fetch the auth session including the tokens and credentials if they are available. By default it +does not refresh the auth tokens or credentials if they are loaded in storage already. You can force a refresh +with { forceRefresh: true } input.

    +

    Parameters

    Returns Promise<AuthSession>

    Promise

    +

    Throws

    AuthError - Throws error when session information cannot be refreshed.

    +
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isAssociatedWith.html b/docs/api/functions/aws_amplify.datastore.isAssociatedWith.html deleted file mode 100644 index 78b1cbc2f5a..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isAssociatedWith.html +++ /dev/null @@ -1,2 +0,0 @@ -isAssociatedWith | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isEnumFieldType.html b/docs/api/functions/aws_amplify.datastore.isEnumFieldType.html deleted file mode 100644 index 3ec677ab00e..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isEnumFieldType.html +++ /dev/null @@ -1,2 +0,0 @@ -isEnumFieldType | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isFieldAssociation.html b/docs/api/functions/aws_amplify.datastore.isFieldAssociation.html deleted file mode 100644 index b3000735a65..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isFieldAssociation.html +++ /dev/null @@ -1,2 +0,0 @@ -isFieldAssociation | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isGraphQLScalarType.html b/docs/api/functions/aws_amplify.datastore.isGraphQLScalarType.html deleted file mode 100644 index 76005f74c73..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isGraphQLScalarType.html +++ /dev/null @@ -1,2 +0,0 @@ -isGraphQLScalarType | Amplify JS API Documentation -
  • Parameters

    • obj: any

    Returns obj is "ID" | "String" | "Int" | "Float" | "Boolean" | "AWSDate" | "AWSTime" | "AWSDateTime" | "AWSTimestamp" | "AWSEmail" | "AWSJSON" | "AWSURL" | "AWSPhone" | "AWSIPAddress"

\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isIdentifierObject.html b/docs/api/functions/aws_amplify.datastore.isIdentifierObject.html deleted file mode 100644 index 39718403439..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isIdentifierObject.html +++ /dev/null @@ -1,2 +0,0 @@ -isIdentifierObject | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelAttributeAuth.html b/docs/api/functions/aws_amplify.datastore.isModelAttributeAuth.html deleted file mode 100644 index b2701a225a3..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelAttributeAuth.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelAttributeAuth | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelAttributeCompositeKey.html b/docs/api/functions/aws_amplify.datastore.isModelAttributeCompositeKey.html deleted file mode 100644 index 7c29539ea6f..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelAttributeCompositeKey.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelAttributeCompositeKey | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelAttributeKey.html b/docs/api/functions/aws_amplify.datastore.isModelAttributeKey.html deleted file mode 100644 index 0af20619595..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelAttributeKey.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelAttributeKey | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelAttributePrimaryKey.html b/docs/api/functions/aws_amplify.datastore.isModelAttributePrimaryKey.html deleted file mode 100644 index 0338b654768..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelAttributePrimaryKey.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelAttributePrimaryKey | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isModelFieldType.html b/docs/api/functions/aws_amplify.datastore.isModelFieldType.html deleted file mode 100644 index 14d84abadf1..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isModelFieldType.html +++ /dev/null @@ -1,2 +0,0 @@ -isModelFieldType | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isNonModelFieldType.html b/docs/api/functions/aws_amplify.datastore.isNonModelFieldType.html deleted file mode 100644 index 417d4d1a51f..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isNonModelFieldType.html +++ /dev/null @@ -1,2 +0,0 @@ -isNonModelFieldType | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isPredicateGroup.html b/docs/api/functions/aws_amplify.datastore.isPredicateGroup.html deleted file mode 100644 index 8b5f8692b3d..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isPredicateGroup.html +++ /dev/null @@ -1,2 +0,0 @@ -isPredicateGroup | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isPredicateObj.html b/docs/api/functions/aws_amplify.datastore.isPredicateObj.html deleted file mode 100644 index f81031267d9..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isPredicateObj.html +++ /dev/null @@ -1,2 +0,0 @@ -isPredicateObj | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isSchemaModel.html b/docs/api/functions/aws_amplify.datastore.isSchemaModel.html deleted file mode 100644 index ad0505edb5a..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isSchemaModel.html +++ /dev/null @@ -1,2 +0,0 @@ -isSchemaModel | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isSchemaModelWithAttributes.html b/docs/api/functions/aws_amplify.datastore.isSchemaModelWithAttributes.html deleted file mode 100644 index 90957e3f9a0..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isSchemaModelWithAttributes.html +++ /dev/null @@ -1,2 +0,0 @@ -isSchemaModelWithAttributes | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.isTargetNameAssociation.html b/docs/api/functions/aws_amplify.datastore.isTargetNameAssociation.html deleted file mode 100644 index 6811a40d273..00000000000 --- a/docs/api/functions/aws_amplify.datastore.isTargetNameAssociation.html +++ /dev/null @@ -1,2 +0,0 @@ -isTargetNameAssociation | Amplify JS API Documentation -
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.datastore.syncExpression-1.html b/docs/api/functions/aws_amplify.datastore.syncExpression-1.html index 1f48bcffdaa..e717af451a0 100644 --- a/docs/api/functions/aws_amplify.datastore.syncExpression-1.html +++ b/docs/api/functions/aws_amplify.datastore.syncExpression-1.html @@ -1,2 +1,11 @@ syncExpression | Amplify JS API Documentation -
\ No newline at end of file +
  • Build an expression that can be used to filter which items of a given Model +are synchronized down from the GraphQL service. E.g.,

    +
    import { DataStore, syncExpression } from 'aws-amplify/datastore';
    import { Post, Comment } from './models';


    DataStore.configure({
    syncExpressions: [
    syncExpression(Post, () => {
    return (post) => post.rating.gt(5);
    }),
    syncExpression(Comment, () => {
    return (comment) => comment.status.eq('active');
    })
    ]
    }); +
    +

    When DataStore starts syncing, only Posts with rating > 5 and Comments with +status === 'active' will be synced down to the user's local store.

    +

    Type Parameters

    Parameters

    Returns Promise<{
        conditionProducer: ConditionProducer<T, A>;
        modelConstructor: PersistentModelConstructor<T>;
    }>

    An sync expression object that can be attached to the DataStore syncExpressions configuration property.

    +
\ No newline at end of file diff --git a/docs/api/functions/aws_amplify.storage.isCancelError.html b/docs/api/functions/aws_amplify.storage.isCancelError.html index f3a0b9c293b..d24421a88ab 100644 --- a/docs/api/functions/aws_amplify.storage.isCancelError.html +++ b/docs/api/functions/aws_amplify.storage.isCancelError.html @@ -1,4 +1,8 @@ isCancelError | Amplify JS API Documentation
  • Check if an error is caused by user calling cancel() on a upload/download task. If an overwriting error is supplied to task.cancel(errorOverwrite), this function will return false.

    -

    Parameters

    • error: unknown

    Returns error is CanceledError

\ No newline at end of file +

Parameters

  • error: unknown

    The unknown exception to be checked.

    +

Returns error is CanceledError

    +
  • A boolean indicating if the error was from an upload cancellation
  • +
+
\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_adapter_nextjs.html b/docs/api/modules/_aws_amplify_adapter_nextjs.html index 4568c162e5d..a88b11a85a7 100644 --- a/docs/api/modules/_aws_amplify_adapter_nextjs.html +++ b/docs/api/modules/_aws_amplify_adapter_nextjs.html @@ -1,5 +1,5 @@ -@aws-amplify/adapter-nextjs - v1.2.14 | Amplify JS API Documentation -

Module @aws-amplify/adapter-nextjs - v1.2.14

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

+@aws-amplify/adapter-nextjs - v1.2.15 | Amplify JS API Documentation +

Module @aws-amplify/adapter-nextjs - v1.2.15

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

Index

Modules

api index utils diff --git a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html index 8fac2a90b93..db2564269d4 100644 --- a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html +++ b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html @@ -1,5 +1,5 @@ -@aws-amplify/datastore-storage-adapter - v2.1.46 | Amplify JS API Documentation -

Module @aws-amplify/datastore-storage-adapter - v2.1.46

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

+@aws-amplify/datastore-storage-adapter - v2.1.47 | Amplify JS API Documentation +

Module @aws-amplify/datastore-storage-adapter - v2.1.47

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

Index

Modules

ExpoSQLiteAdapter/ExpoSQLiteAdapter SQLiteAdapter/SQLiteAdapter index diff --git a/docs/api/modules/_aws_amplify_geo.html b/docs/api/modules/_aws_amplify_geo.html index d0409956c2c..ce2187f3e29 100644 --- a/docs/api/modules/_aws_amplify_geo.html +++ b/docs/api/modules/_aws_amplify_geo.html @@ -1,5 +1,5 @@ -@aws-amplify/geo - v3.0.44 | Amplify JS API Documentation -

Module @aws-amplify/geo - v3.0.44

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

+@aws-amplify/geo - v3.0.45 | Amplify JS API Documentation +

Module @aws-amplify/geo - v3.0.45

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

Index

Modules

\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_interactions.html b/docs/api/modules/_aws_amplify_interactions.html index 0b02fd19a01..ed5ec27b450 100644 --- a/docs/api/modules/_aws_amplify_interactions.html +++ b/docs/api/modules/_aws_amplify_interactions.html @@ -1,5 +1,5 @@ -@aws-amplify/interactions - v6.0.43 | Amplify JS API Documentation -

Module @aws-amplify/interactions - v6.0.43

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

+@aws-amplify/interactions - v6.0.44 | Amplify JS API Documentation +

Module @aws-amplify/interactions - v6.0.44

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

Index

Modules

index lex-v1 lex-v2 diff --git a/docs/api/modules/_aws_amplify_predictions.html b/docs/api/modules/_aws_amplify_predictions.html index e49235310da..e59bc531c77 100644 --- a/docs/api/modules/_aws_amplify_predictions.html +++ b/docs/api/modules/_aws_amplify_predictions.html @@ -1,5 +1,5 @@ -@aws-amplify/predictions - v6.1.19 | Amplify JS API Documentation -

Module @aws-amplify/predictions - v6.1.19

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

+@aws-amplify/predictions - v6.1.20 | Amplify JS API Documentation +

Module @aws-amplify/predictions - v6.1.20

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

Index

Modules

Interfaces

IdentifyEntitiesInput IdentifyEntitiesOutput diff --git a/docs/api/modules/_aws_amplify_pubsub.html b/docs/api/modules/_aws_amplify_pubsub.html index fcbe3360239..907a26c43ce 100644 --- a/docs/api/modules/_aws_amplify_pubsub.html +++ b/docs/api/modules/_aws_amplify_pubsub.html @@ -1,5 +1,5 @@ -@aws-amplify/pubsub - v6.1.19 | Amplify JS API Documentation -

Module @aws-amplify/pubsub - v6.1.19

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

+@aws-amplify/pubsub - v6.1.20 | Amplify JS API Documentation +

Module @aws-amplify/pubsub - v6.1.20

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

Index

Modules

clients/iot clients/mqtt index diff --git a/docs/api/modules/aws_amplify.datastore._Reference_Types_.__home_runner_work_amplify_js_amplify_js_amplify_js_packages_datastore_dist_esm_types_.html b/docs/api/modules/aws_amplify.datastore._Reference_Types_.__home_runner_work_amplify_js_amplify_js_amplify_js_packages_datastore_dist_esm_types_.html index 9e9710c0762..20427856326 100644 --- a/docs/api/modules/aws_amplify.datastore._Reference_Types_.__home_runner_work_amplify_js_amplify_js_amplify_js_packages_datastore_dist_esm_types_.html +++ b/docs/api/modules/aws_amplify.datastore._Reference_Types_.__home_runner_work_amplify_js_amplify_js_amplify_js_packages_datastore_dist_esm_types_.html @@ -118,22 +118,6 @@ WithoutNevers __identifierBrand__ __modelMeta__ -isAssociatedWith -isEnumFieldType -isFieldAssociation -isGraphQLScalarType -isIdentifierObject -isModelAttributeAuth -isModelAttributeCompositeKey -isModelAttributeKey -isModelAttributePrimaryKey -isModelFieldType -isNonModelFieldType -isPredicateGroup -isPredicateObj -isSchemaModel -isSchemaModelWithAttributes -isTargetNameAssociation syncExpression

Interfaces

References

Re-exports AllFieldOperators
Re-exports AllOperators
Re-exports AmplifyContext
Re-exports AuthModeStrategy
Re-exports AuthModeStrategyParams
Re-exports AuthModeStrategyReturn
Re-exports AuthModeStrategyType
Re-exports AuthProviders
Re-exports AuthorizationRule
Re-exports CompositeIdentifier
Re-exports ConflictHandler
Re-exports ControlMessageType
Re-exports CustomIdentifier
Re-exports DISCARD
Re-exports DataStoreConfig
Re-exports DataStoreSchema
Re-exports DataStoreSnapshot
Re-exports DefaultPersistentModelMetaData
Re-exports DeferredCallbackResolverOptions
Re-exports ErrorHandler
Re-exports ErrorType
Re-exports GraphQLCondition
Re-exports GraphQLField
Re-exports GraphQLFilter
Re-exports GraphQLScalarType
Re-exports Identifier
Re-exports IdentifierBrand
Re-exports IdentifierFieldOrIdentifierObject
Re-exports IdentifierFieldValue
Re-exports IdentifierFields
Re-exports IdentifierFieldsForInit
Re-exports IndexesType
Re-exports InternalSchema
Re-exports InternalSubscriptionMessage
Re-exports KeyType
Re-exports LimitTimerRaceResolvedValues
Re-exports ManagedIdentifier
Re-exports MatchableTypes
Re-exports MetadataOrDefault
Re-exports MetadataReadOnlyFields
Re-exports ModelAssociation
Re-exports ModelAttribute
Re-exports ModelAttributeAuth
Re-exports ModelAttributeAuthAllow
Re-exports ModelAttributeAuthProperty
Re-exports ModelAttributeAuthProvider
Re-exports ModelAttributes
Re-exports ModelAuthModes
Re-exports ModelAuthRule
Re-exports ModelField
Re-exports ModelFieldType
Re-exports ModelFields
Re-exports ModelInit
Re-exports ModelInitBase
Re-exports ModelInstanceMetadata
Re-exports ModelKeys
Re-exports ModelMeta
Re-exports ModelOperation
Re-exports ModelPredicate
Re-exports ModelPredicateAggregateExtender
Re-exports ModelPredicateExtender
Re-exports ModelPredicateNegation
Re-exports ModelPredicateOperator
Re-exports MutableModel
Re-exports NamespaceResolver
Re-exports NonModelFieldType
Re-exports NonModelTypeConstructor
Re-exports NonNeverKeys
Re-exports ObserveQueryOptions
Re-exports OpType
Re-exports OptionallyManagedIdentifier
Re-exports PaginationInput
Re-exports PersistentModel
Re-exports PersistentModelConstructor
Re-exports PersistentModelMetaData
Re-exports PredicateExpression
Re-exports PredicateFieldType
Re-exports PredicateGroups
Re-exports PredicateInternalsKey
Re-exports PredicateObject
Re-exports PredicatesGroup
Re-exports ProcessName
Re-exports ProducerModelPredicate
Re-exports ProducerPaginationInput
Re-exports ProducerSortPredicate
Re-exports QueryOne
Re-exports RecursiveModelPredicate
Re-exports RecursiveModelPredicateAggregateExtender
Re-exports RecursiveModelPredicateExtender
Re-exports RecursiveModelPredicateNegation
Re-exports RecursiveModelPredicateOperator
Re-exports RelationType
Re-exports RelationshipType
Re-exports Scalar
Re-exports Schema
Re-exports SchemaModel
Re-exports SchemaModels
Re-exports SchemaNamespace
Re-exports SchemaNamespaces
Re-exports SchemaNonModel
Re-exports SchemaNonModels
Re-exports SettableFieldType
Re-exports SortDirection
Re-exports SortPredicate
Re-exports SortPredicateExpression
Re-exports SortPredicateObject
Re-exports SortPredicatesGroup
Re-exports SubscriptionMessage
Re-exports SyncConflict
Re-exports SyncError
Re-exports SyncExpression
Re-exports SystemComponent
Re-exports TypeConstructorMap
Re-exports UserSchema
Re-exports V5ModelPredicate
Re-exports ValuePredicate
Re-exports WithoutNevers
Re-exports __identifierBrand__
Re-exports __modelMeta__
Re-exports isAssociatedWith
Re-exports isEnumFieldType
Re-exports isFieldAssociation
Re-exports isGraphQLScalarType
Re-exports isIdentifierObject
Re-exports isModelAttributeAuth
Re-exports isModelAttributeCompositeKey
Re-exports isModelAttributeKey
Re-exports isModelAttributePrimaryKey
Re-exports isModelFieldType
Re-exports isNonModelFieldType
Re-exports isPredicateGroup
Re-exports isPredicateObj
Re-exports isSchemaModel
Re-exports isSchemaModelWithAttributes
Re-exports isTargetNameAssociation
Re-exports syncExpression
\ No newline at end of file +

References

Re-exports AllFieldOperators
Re-exports AllOperators
Re-exports AmplifyContext
Re-exports AuthModeStrategy
Re-exports AuthModeStrategyParams
Re-exports AuthModeStrategyReturn
Re-exports AuthModeStrategyType
Re-exports AuthProviders
Re-exports AuthorizationRule
Re-exports CompositeIdentifier
Re-exports ConflictHandler
Re-exports ControlMessageType
Re-exports CustomIdentifier
Re-exports DISCARD
Re-exports DataStoreConfig
Re-exports DataStoreSchema
Re-exports DataStoreSnapshot
Re-exports DefaultPersistentModelMetaData
Re-exports DeferredCallbackResolverOptions
Re-exports ErrorHandler
Re-exports ErrorType
Re-exports GraphQLCondition
Re-exports GraphQLField
Re-exports GraphQLFilter
Re-exports GraphQLScalarType
Re-exports Identifier
Re-exports IdentifierBrand
Re-exports IdentifierFieldOrIdentifierObject
Re-exports IdentifierFieldValue
Re-exports IdentifierFields
Re-exports IdentifierFieldsForInit
Re-exports IndexesType
Re-exports InternalSchema
Re-exports InternalSubscriptionMessage
Re-exports KeyType
Re-exports LimitTimerRaceResolvedValues
Re-exports ManagedIdentifier
Re-exports MatchableTypes
Re-exports MetadataOrDefault
Re-exports MetadataReadOnlyFields
Re-exports ModelAssociation
Re-exports ModelAttribute
Re-exports ModelAttributeAuth
Re-exports ModelAttributeAuthAllow
Re-exports ModelAttributeAuthProperty
Re-exports ModelAttributeAuthProvider
Re-exports ModelAttributes
Re-exports ModelAuthModes
Re-exports ModelAuthRule
Re-exports ModelField
Re-exports ModelFieldType
Re-exports ModelFields
Re-exports ModelInit
Re-exports ModelInitBase
Re-exports ModelInstanceMetadata
Re-exports ModelKeys
Re-exports ModelMeta
Re-exports ModelOperation
Re-exports ModelPredicate
Re-exports ModelPredicateAggregateExtender
Re-exports ModelPredicateExtender
Re-exports ModelPredicateNegation
Re-exports ModelPredicateOperator
Re-exports MutableModel
Re-exports NamespaceResolver
Re-exports NonModelFieldType
Re-exports NonModelTypeConstructor
Re-exports NonNeverKeys
Re-exports ObserveQueryOptions
Re-exports OpType
Re-exports OptionallyManagedIdentifier
Re-exports PaginationInput
Re-exports PersistentModel
Re-exports PersistentModelConstructor
Re-exports PersistentModelMetaData
Re-exports PredicateExpression
Re-exports PredicateFieldType
Re-exports PredicateGroups
Re-exports PredicateInternalsKey
Re-exports PredicateObject
Re-exports PredicatesGroup
Re-exports ProcessName
Re-exports ProducerModelPredicate
Re-exports ProducerPaginationInput
Re-exports ProducerSortPredicate
Re-exports QueryOne
Re-exports RecursiveModelPredicate
Re-exports RecursiveModelPredicateAggregateExtender
Re-exports RecursiveModelPredicateExtender
Re-exports RecursiveModelPredicateNegation
Re-exports RecursiveModelPredicateOperator
Re-exports RelationType
Re-exports RelationshipType
Re-exports Scalar
Re-exports Schema
Re-exports SchemaModel
Re-exports SchemaModels
Re-exports SchemaNamespace
Re-exports SchemaNamespaces
Re-exports SchemaNonModel
Re-exports SchemaNonModels
Re-exports SettableFieldType
Re-exports SortDirection
Re-exports SortPredicate
Re-exports SortPredicateExpression
Re-exports SortPredicateObject
Re-exports SortPredicatesGroup
Re-exports SubscriptionMessage
Re-exports SyncConflict
Re-exports SyncError
Re-exports SyncExpression
Re-exports SystemComponent
Re-exports TypeConstructorMap
Re-exports UserSchema
Re-exports V5ModelPredicate
Re-exports ValuePredicate
Re-exports WithoutNevers
Re-exports __identifierBrand__
Re-exports __modelMeta__
Re-exports syncExpression
\ No newline at end of file diff --git a/docs/api/modules/aws_amplify.datastore.html b/docs/api/modules/aws_amplify.datastore.html index 6f0c4387067..7b988c46f20 100644 --- a/docs/api/modules/aws_amplify.datastore.html +++ b/docs/api/modules/aws_amplify.datastore.html @@ -132,21 +132,5 @@ __modelMeta__ utils

Functions

\ No newline at end of file diff --git a/docs/api/modules/aws_amplify.html b/docs/api/modules/aws_amplify.html index 8973f6a3c3d..e94a4ff09df 100644 --- a/docs/api/modules/aws_amplify.html +++ b/docs/api/modules/aws_amplify.html @@ -1,5 +1,5 @@ -aws-amplify - v6.5.2 | Amplify JS API Documentation -

Module aws-amplify - v6.5.2

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

+aws-amplify - v6.5.3 | Amplify JS API Documentation +

Module aws-amplify - v6.5.3

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

Documentation is available here.

Index

Modules

adapter-core analytics From 1fec46ab9c9c1897bd810ece5ac779769b5dfdab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 23:03:06 +0000 Subject: [PATCH 14/50] chore(deps): bump micromatch from 4.0.7 to 4.0.8 Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.7 to 4.0.8. - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/4.0.8/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8) --- updated-dependencies: - dependency-name: micromatch dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9a096c7ae52..2e664dbb994 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11997,9 +11997,9 @@ metro@0.80.9, metro@^0.80.3: yargs "^17.6.2" micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@~4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" - integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" picomatch "^2.3.1" From 798c1359c8ad2833a2c8975f37c552c63ee3659c Mon Sep 17 00:00:00 2001 From: ashika112 <155593080+ashika112@users.noreply.github.com> Date: Tue, 27 Aug 2024 09:39:21 -0700 Subject: [PATCH 15/50] Chore: Update Dependency review config (#13756) * update dependency review * update bundle size --- .../dependecy-review-config.yml | 7 +- package.json | 5 +- packages/aws-amplify/package.json | 18 +- yarn.lock | 1648 +++++++++-------- 4 files changed, 851 insertions(+), 827 deletions(-) diff --git a/.github/dependency-review/dependecy-review-config.yml b/.github/dependency-review/dependecy-review-config.yml index 173aefd36ef..6f66da66007 100644 --- a/.github/dependency-review/dependecy-review-config.yml +++ b/.github/dependency-review/dependecy-review-config.yml @@ -1,14 +1,16 @@ allow-licenses: - - 'Apache-2.0' - '0BSD' - - 'BSL-1.0' + - 'Apache-2.0' + - 'BlueOak-1.0.0' - 'BSD-1-Clause' - 'BSD-2-Clause-FreeBSD' - 'BSD-2-Clause' - 'BSD-3-Clause-Attribution' - 'BSD-3-Clause' + - 'BSL-1.0' - 'CC-BY-3.0' - 'CC-BY-4.0' + - 'CC0-1.0' - 'curl' - 'ISC' - 'JSON' @@ -20,4 +22,3 @@ allow-licenses: - 'Unlicense' - 'WTFPL' - 'Zlib' - - 'CC0-1.0' \ No newline at end of file diff --git a/package.json b/package.json index 06a17c0fdaf..fbe7ec06f07 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "eslint-plugin-promise": "^6.1.1", "eslint-plugin-unused-imports": "^3.0.0", "expect": "^29.7.0", - "glob": "10.3.10", + "glob": "^10.3.10", "husky": "^9.0.11", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -136,7 +136,6 @@ "**/glob/minipass": "6.0.2", "nx": "16.7.0", "xml2js": "0.5.0", - "tar": "6.2.1", - "glob@^10.0.0": "10.3.10" + "tar": "6.2.1" } } diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 9751dc9165d..d37a955da80 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -353,13 +353,13 @@ "name": "[Auth] resetPassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ resetPassword }", - "limit": "12.55 kB" + "limit": "12.57 kB" }, { "name": "[Auth] confirmResetPassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmResetPassword }", - "limit": "12.50 kB" + "limit": "12.51 kB" }, { "name": "[Auth] signIn (Cognito)", @@ -371,7 +371,7 @@ "name": "[Auth] resendSignUpCode (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ resendSignUpCode }", - "limit": "12.50 kB" + "limit": "12.53 kB" }, { "name": "[Auth] confirmSignUp (Cognito)", @@ -389,7 +389,7 @@ "name": "[Auth] updateMFAPreference (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updateMFAPreference }", - "limit": "11.85 kB" + "limit": "11.87 kB" }, { "name": "[Auth] fetchMFAPreference (Cognito)", @@ -407,7 +407,7 @@ "name": "[Auth] updatePassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updatePassword }", - "limit": "12.73 kB" + "limit": "12.76 kB" }, { "name": "[Auth] setUpTOTP (Cognito)", @@ -443,7 +443,7 @@ "name": "[Auth] fetchUserAttributes (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ fetchUserAttributes }", - "limit": "11.80 kB" + "limit": "11.81 kB" }, { "name": "[Auth] Basic Auth Flow (Cognito)", @@ -473,7 +473,7 @@ "name": "[Storage] getProperties (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ getProperties }", - "limit": "14.70 kB" + "limit": "14.71 kB" }, { "name": "[Storage] getUrl (S3)", @@ -485,13 +485,13 @@ "name": "[Storage] list (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ list }", - "limit": "15.30 kB" + "limit": "15.31 kB" }, { "name": "[Storage] remove (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ remove }", - "limit": "14.56 kB" + "limit": "14.57 kB" }, { "name": "[Storage] uploadData (S3)", diff --git a/yarn.lock b/yarn.lock index 2e664dbb994..a55f7941b12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1066,10 +1066,10 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.2.tgz#e41928bd33475305c586f6acbbb7e3ade7a6f7f5" - integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2", "@babel/compat-data@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" + integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== "@babel/core@7.17.2": version "7.17.2" @@ -1113,12 +1113,12 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.17.0", "@babel/generator@^7.20.0", "@babel/generator@^7.25.0", "@babel/generator@^7.7.2": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e" - integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== +"@babel/generator@^7.17.0", "@babel/generator@^7.20.0", "@babel/generator@^7.25.0", "@babel/generator@^7.25.4", "@babel/generator@^7.7.2": + version "7.25.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.5.tgz#b31cf05b3fe8c32d206b6dad03bb0aacbde73450" + integrity sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w== dependencies: - "@babel/types" "^7.25.0" + "@babel/types" "^7.25.4" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" @@ -1149,20 +1149,20 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz#a109bf9c3d58dfed83aaf42e85633c89f43a6253" - integrity sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14" + integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" "@babel/helper-member-expression-to-functions" "^7.24.8" "@babel/helper-optimise-call-expression" "^7.24.7" "@babel/helper-replace-supers" "^7.25.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/traverse" "^7.25.0" + "@babel/traverse" "^7.25.4" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0": +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0", "@babel/helper-create-regexp-features-plugin@^7.25.2": version "7.25.2" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== @@ -1171,7 +1171,7 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": +"@babel/helper-define-polyfill-provider@^0.6.2": version "0.6.2" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== @@ -1303,12 +1303,12 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.17.0", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3": - version "7.25.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" - integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.17.0", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.4.tgz#af4f2df7d02440286b7de57b1c21acfb2a6f257a" + integrity sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA== dependencies: - "@babel/types" "^7.25.2" + "@babel/types" "^7.25.4" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": version "7.25.3" @@ -1375,14 +1375,6 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-export-default-from" "^7.24.7" -"@babel/plugin-proposal-logical-assignment-operators@^7.18.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" @@ -1446,7 +1438,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -1502,7 +1494,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -1523,7 +1515,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -1537,7 +1529,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -1572,7 +1564,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -1580,11 +1572,11 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.24.7", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" - integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" + integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -1601,15 +1593,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-async-generator-functions@^7.25.0": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz#b785cf35d73437f6276b1e30439a57a50747bddf" - integrity sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q== +"@babel/plugin-transform-async-generator-functions@^7.24.3", "@babel/plugin-transform-async-generator-functions@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz#2afd4e639e2d055776c9f091b6c0c180ed8cf083" + integrity sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-remap-async-to-generator" "^7.25.0" "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/traverse" "^7.25.0" + "@babel/traverse" "^7.25.4" "@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.24.7": version "7.24.7" @@ -1634,13 +1626,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-class-properties@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" - integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== +"@babel/plugin-transform-class-properties@^7.24.1", "@babel/plugin-transform-class-properties@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz#bae7dbfcdcc2e8667355cd1fb5eda298f05189fd" + integrity sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.4" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-class-static-block@^7.24.7": version "7.24.7" @@ -1651,16 +1643,16 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.0": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz#63122366527d88e0ef61b612554fe3f8c793991e" - integrity sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw== +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz#d29dbb6a72d79f359952ad0b66d88518d65ef89a" + integrity sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-compilation-targets" "^7.25.2" "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-replace-supers" "^7.25.0" - "@babel/traverse" "^7.25.0" + "@babel/traverse" "^7.25.4" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.24.7": @@ -1765,7 +1757,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-logical-assignment-operators@^7.24.7": +"@babel/plugin-transform-logical-assignment-operators@^7.24.1", "@babel/plugin-transform-logical-assignment-operators@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== @@ -1830,7 +1822,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== @@ -1838,7 +1830,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.24.7": +"@babel/plugin-transform-numeric-separator@^7.24.1", "@babel/plugin-transform-numeric-separator@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== @@ -1846,7 +1838,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.24.7": +"@babel/plugin-transform-object-rest-spread@^7.24.5", "@babel/plugin-transform-object-rest-spread@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== @@ -1864,7 +1856,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/helper-replace-supers" "^7.24.7" -"@babel/plugin-transform-optional-catch-binding@^7.24.7": +"@babel/plugin-transform-optional-catch-binding@^7.24.1", "@babel/plugin-transform-optional-catch-binding@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== @@ -1872,7 +1864,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": +"@babel/plugin-transform-optional-chaining@^7.24.5", "@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== @@ -1888,13 +1880,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" - integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== +"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz#9bbefbe3649f470d681997e0b64a4b254d877242" + integrity sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.4" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.24.7": version "7.24.7" @@ -1960,7 +1952,7 @@ "@babel/helper-annotate-as-pure" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-regenerator@^7.24.7": +"@babel/plugin-transform-regenerator@^7.20.0", "@babel/plugin-transform-regenerator@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== @@ -1976,14 +1968,14 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-runtime@^7.0.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz#00a5bfaf8c43cf5c8703a8a6e82b59d9c58f38ca" - integrity sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz#96e4ad7bfbbe0b4a7b7e6f2a533ca326cf204963" + integrity sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ== dependencies: "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-corejs3 "^0.10.6" babel-plugin-polyfill-regenerator "^0.6.1" semver "^6.3.1" @@ -2057,20 +2049,20 @@ "@babel/helper-create-regexp-features-plugin" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-unicode-sets-regex@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" - integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== +"@babel/plugin-transform-unicode-sets-regex@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz#be664c2a0697ffacd3423595d5edef6049e8946c" + integrity sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-create-regexp-features-plugin" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/preset-env@^7.0.0", "@babel/preset-env@^7.20.0": - version "7.25.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.3.tgz#0bf4769d84ac51d1073ab4a86f00f30a3a83c67c" - integrity sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.4.tgz#be23043d43a34a2721cd0f676c7ba6f1481f6af6" + integrity sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw== dependencies: - "@babel/compat-data" "^7.25.2" + "@babel/compat-data" "^7.25.4" "@babel/helper-compilation-targets" "^7.25.2" "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-validator-option" "^7.24.8" @@ -2099,13 +2091,13 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.24.7" - "@babel/plugin-transform-async-generator-functions" "^7.25.0" + "@babel/plugin-transform-async-generator-functions" "^7.25.4" "@babel/plugin-transform-async-to-generator" "^7.24.7" "@babel/plugin-transform-block-scoped-functions" "^7.24.7" "@babel/plugin-transform-block-scoping" "^7.25.0" - "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-properties" "^7.25.4" "@babel/plugin-transform-class-static-block" "^7.24.7" - "@babel/plugin-transform-classes" "^7.25.0" + "@babel/plugin-transform-classes" "^7.25.4" "@babel/plugin-transform-computed-properties" "^7.24.7" "@babel/plugin-transform-destructuring" "^7.24.8" "@babel/plugin-transform-dotall-regex" "^7.24.7" @@ -2133,7 +2125,7 @@ "@babel/plugin-transform-optional-catch-binding" "^7.24.7" "@babel/plugin-transform-optional-chaining" "^7.24.8" "@babel/plugin-transform-parameters" "^7.24.7" - "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.25.4" "@babel/plugin-transform-private-property-in-object" "^7.24.7" "@babel/plugin-transform-property-literals" "^7.24.7" "@babel/plugin-transform-regenerator" "^7.24.7" @@ -2146,10 +2138,10 @@ "@babel/plugin-transform-unicode-escapes" "^7.24.7" "@babel/plugin-transform-unicode-property-regex" "^7.24.7" "@babel/plugin-transform-unicode-regex" "^7.24.7" - "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.25.4" "@babel/preset-modules" "0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-corejs3 "^0.10.6" babel-plugin-polyfill-regenerator "^0.6.1" core-js-compat "^3.37.1" semver "^6.3.1" @@ -2212,9 +2204,9 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.20.0", "@babel/runtime@^7.8.4": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" - integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.4.tgz#6ef37d678428306e7d75f054d5b1bdb8cf8aa8ee" + integrity sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w== dependencies: regenerator-runtime "^0.14.0" @@ -2227,23 +2219,23 @@ "@babel/parser" "^7.25.0" "@babel/types" "^7.25.0" -"@babel/traverse@^7.14.0", "@babel/traverse@^7.17.0", "@babel/traverse@^7.20.0", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3": - version "7.25.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490" - integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== +"@babel/traverse@^7.14.0", "@babel/traverse@^7.17.0", "@babel/traverse@^7.20.0", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.4.tgz#648678046990f2957407e3086e97044f13c3e18e" + integrity sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg== dependencies: "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.0" - "@babel/parser" "^7.25.3" + "@babel/generator" "^7.25.4" + "@babel/parser" "^7.25.4" "@babel/template" "^7.25.0" - "@babel/types" "^7.25.2" + "@babel/types" "^7.25.4" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.17.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" - integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== +"@babel/types@^7.0.0", "@babel/types@^7.17.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.4.tgz#6bcb46c72fdf1012a209d016c07f769e10adcb5f" + integrity sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ== dependencies: "@babel/helper-string-parser" "^7.24.8" "@babel/helper-validator-identifier" "^7.24.7" @@ -2867,55 +2859,55 @@ write-pkg "4.0.0" yargs "16.2.0" -"@next/env@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.5.tgz#1d9328ab828711d3517d0a1d505acb55e5ef7ad0" - integrity sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA== - -"@next/swc-darwin-arm64@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz#d0a160cf78c18731c51cc0bff131c706b3e9bb05" - integrity sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ== - -"@next/swc-darwin-x64@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz#eb832a992407f6e6352eed05a073379f1ce0589c" - integrity sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA== - -"@next/swc-linux-arm64-gnu@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz#098fdab57a4664969bc905f5801ef5a89582c689" - integrity sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA== - -"@next/swc-linux-arm64-musl@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz#243a1cc1087fb75481726dd289c7b219fa01f2b5" - integrity sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA== - -"@next/swc-linux-x64-gnu@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz#b8a2e436387ee4a52aa9719b718992e0330c4953" - integrity sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ== - -"@next/swc-linux-x64-musl@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz#cb8a9adad5fb8df86112cfbd363aab5c6d32757b" - integrity sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ== - -"@next/swc-win32-arm64-msvc@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz#81f996c1c38ea0900d4e7719cc8814be8a835da0" - integrity sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw== - -"@next/swc-win32-ia32-msvc@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz#f61c74ce823e10b2bc150e648fc192a7056422e0" - integrity sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg== - -"@next/swc-win32-x64-msvc@14.2.5": - version "14.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz#ed199a920efb510cfe941cd75ed38a7be21e756f" - integrity sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g== +"@next/env@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.6.tgz#4f8ab1ca549a90bf0c83454b798b0ebae7098b15" + integrity sha512-bs5DFKV+08EjWrl8EB+KKqev1ZTNONH1vFCaHh911aaB362NnP32UDTbE9VQhyiAgbFqJsfDkSxFERNDDb3j0g== + +"@next/swc-darwin-arm64@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.6.tgz#38dfd8716e52dd1f52cfd3e461721d3e984887c6" + integrity sha512-BtJZb+hYXGaVJJivpnDoi3JFVn80SHKCiiRUW3kk1SY6UCUy5dWFFSbh+tGi5lHAughzeduMyxbLt3pspvXNSg== + +"@next/swc-darwin-x64@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.6.tgz#605a6fafbdd672d72728db86aae0fea67e3338f9" + integrity sha512-ZHRbGpH6KHarzm6qEeXKSElSXh8dS2DtDPjQt3IMwY8QVk7GbdDYjvV4NgSnDA9huGpGgnyy3tH8i5yHCqVkiQ== + +"@next/swc-linux-arm64-gnu@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.6.tgz#2a4d3c6d159c70ded6b415cbf6d7082bd823e37d" + integrity sha512-O4HqUEe3ZvKshXHcDUXn1OybN4cSZg7ZdwHJMGCXSUEVUqGTJVsOh17smqilIjooP/sIJksgl+1kcf2IWMZWHg== + +"@next/swc-linux-arm64-musl@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.6.tgz#db4850182cef343a6539d646d613f2f0333a4dc1" + integrity sha512-xUcdhr2hfalG8RDDGSFxQ75yOG894UlmFS4K2M0jLrUhauRBGOtUOxoDVwiIIuZQwZ3Y5hDsazNjdYGB0cQ9yQ== + +"@next/swc-linux-x64-gnu@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.6.tgz#dbd75f0c3b3b3fb5c4ace0b5b52b050409701b3e" + integrity sha512-InosKxw8UMcA/wEib5n2QttwHSKHZHNSbGcMepBM0CTcNwpxWzX32KETmwbhKod3zrS8n1vJ+DuJKbL9ZAB0Ag== + +"@next/swc-linux-x64-musl@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.6.tgz#b045235257e78c87878b3651cb9c7b553a20005b" + integrity sha512-d4QXfJmt5pGJ7cG8qwxKSBnO5AXuKAFYxV7qyDRHnUNvY/dgDh+oX292gATpB2AAHgjdHd5ks1wXxIEj6muLUQ== + +"@next/swc-win32-arm64-msvc@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.6.tgz#be6ec8b97db574d9c2625fd181b6fa3e4625c29d" + integrity sha512-AlgIhk4/G+PzOG1qdF1b05uKTMsuRatFlFzAi5G8RZ9h67CVSSuZSbqGHbJDlcV1tZPxq/d4G0q6qcHDKWf4aQ== + +"@next/swc-win32-ia32-msvc@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.6.tgz#bc215a8488f10042c21890a83e79eee9e84cff6d" + integrity sha512-hNukAxq7hu4o5/UjPp5jqoBEtrpCbOmnUqZSKNJG8GrUVzfq0ucdhQFVrHcLRMvQcwqqDh1a5AJN9ORnNDpgBQ== + +"@next/swc-win32-x64-msvc@14.2.6": + version "14.2.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.6.tgz#6b63a7b4ff3b7b410a038e3ee839c951a3136dc9" + integrity sha512-NANtw+ead1rSDK1jxmzq3TYkl03UNK2KHqUYf1nIhNci6NkeqBD4s1njSzYGIlSHxCK+wSaL8RXZm4v+NF/pMw== "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" @@ -2943,6 +2935,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nolyfill/is-core-module@1.0.39": + version "1.0.39" + resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e" + integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== + "@npmcli/arborist@6.2.9": version "6.2.9" resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-6.2.9.tgz#9ac892e5444206bd9bb3cb1ff18232322ac0fe54" @@ -3344,12 +3341,12 @@ execa "^5.0.0" prompts "^2.4.0" -"@react-native-community/cli-clean@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.9.tgz#b6754f39c2b877c9d730feb848945150e1d52209" - integrity sha512-7Dj5+4p9JggxuVNOjPbduZBAP1SUgNhLKVw5noBUzT/3ZpUZkDM+RCSwyoyg8xKWoE4OrdUAXwAFlMcFDPKykA== +"@react-native-community/cli-clean@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-14.0.0.tgz#37b53762e5f3d02f452a44fc32a7f88a7419ccad" + integrity sha512-kvHthZTNur/wLLx8WL5Oh+r04zzzFAX16r8xuaLhu9qGTE6Th1JevbsIuiQb5IJqD8G/uZDKgIZ2a0/lONcbJg== dependencies: - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" @@ -3376,14 +3373,14 @@ glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-config@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.9.tgz#d609a64d40a173c89bd7d24e31807bb7dcba69f9" - integrity sha512-rFfVBcNojcMm+KKHE/xqpqXg8HoKl4EC7bFHUrahMJ+y/tZll55+oX/PGG37rzB8QzP2UbMQ19DYQKC1G7kXeg== +"@react-native-community/cli-config@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-14.0.0.tgz#641ec08ddb44c90ceb947d8fc8e35de1a4bcf4a4" + integrity sha512-2Nr8KR+dgn1z+HLxT8piguQ1SoEzgKJnOPQKE1uakxWaRFcQ4LOXgzpIAscYwDW6jmQxdNqqbg2cRUoOS7IMtQ== dependencies: - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" - cosmiconfig "^5.1.0" + cosmiconfig "^9.0.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" @@ -3407,10 +3404,17 @@ dependencies: serve-static "^1.13.1" -"@react-native-community/cli-debugger-ui@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.9.tgz#bc5727c51964206a00d417e5148b46331a81d5a5" - integrity sha512-TkN7IdFmGPPvTpAo3nCAH9uwGCPxWBEAwpqEZDrq0NWllI7Tdie8vDpGdrcuCcKalmhq6OYnkXzeBah7O1Ztpw== +"@react-native-community/cli-debugger-ui@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.0.0.tgz#ef02d531e70b86265d39773abc3b58ab5cb8f4b8" + integrity sha512-JpfzILfU7eKE9+7AMCAwNJv70H4tJGVv3ZGFqSVoK1YHg5QkVEGsHtoNW8AsqZRS6Fj4os+Fmh+r+z1L36sPmg== + dependencies: + serve-static "^1.13.1" + +"@react-native-community/cli-debugger-ui@14.0.0-alpha.11": + version "14.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.0.0-alpha.11.tgz#952bb7c162e136ebff1950e7e80706eb3155fe21" + integrity sha512-0wCNQxhCniyjyMXgR1qXliY180y/2QbvoiYpp2MleGQADr5M1b8lgI4GoyADh5kE+kX3VL0ssjgyxpmbpCD86A== dependencies: serve-static "^1.13.1" @@ -3445,22 +3449,21 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-doctor@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.9.tgz#f1d4eeff427ddc8a9d19851042621c10939c35cb" - integrity sha512-5quFaLdWFQB+677GXh5dGU9I5eg2z6Vg4jOX9vKnc9IffwyIFAyJfCZHrxLSRPDGNXD7biDQUdoezXYGwb6P/A== - dependencies: - "@react-native-community/cli-config" "13.6.9" - "@react-native-community/cli-platform-android" "13.6.9" - "@react-native-community/cli-platform-apple" "13.6.9" - "@react-native-community/cli-platform-ios" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" +"@react-native-community/cli-doctor@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-14.0.0.tgz#f6855495d5a53e9a2c206949958a8291ac3e326e" + integrity sha512-in6jylHjaPUaDzV+JtUblh8m9JYIHGjHOf6Xn57hrmE5Zwzwuueoe9rSMHF1P0mtDgRKrWPzAJVejElddfptWA== + dependencies: + "@react-native-community/cli-config" "14.0.0" + "@react-native-community/cli-platform-android" "14.0.0" + "@react-native-community/cli-platform-apple" "14.0.0" + "@react-native-community/cli-platform-ios" "14.0.0" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" - envinfo "^7.10.0" + envinfo "^7.13.0" execa "^5.0.0" - hermes-profile-transformer "^0.0.6" node-stream-zip "^1.9.1" ora "^5.4.1" semver "^7.5.2" @@ -3500,16 +3503,6 @@ hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-hermes@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.9.tgz#88c8dfe936a0d4272efc54429eda9ccc3fca3ad8" - integrity sha512-GvwiwgvFw4Ws+krg2+gYj8sR3g05evmNjAHkKIKMkDTJjZ8EdyxbkifRUs1ZCq3TMZy2oeblZBXCJVOH4W7ZbA== - dependencies: - "@react-native-community/cli-platform-android" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" - chalk "^4.1.2" - hermes-profile-transformer "^0.0.6" - "@react-native-community/cli-hermes@^10.0.0": version "10.2.7" resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-10.2.7.tgz#bcb28dfe551562a68d13c787550319f9831576b4" @@ -3542,12 +3535,12 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-android@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.9.tgz#b175b9b11334fc90da3f395432678bd53c30fae4" - integrity sha512-9KsYGdr08QhdvT3Ht7e8phQB3gDX9Fs427NJe0xnoBh+PDPTI2BD5ks5ttsH8CzEw8/P6H8tJCHq6hf2nxd9cw== +"@react-native-community/cli-platform-android@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-14.0.0.tgz#36f47999af9b386aaa8f8286923edd9a65101f28" + integrity sha512-nt7yVz3pGKQXnVa5MAk7zR+1n41kNKD3Hi2OgybH5tVShMBo7JQoL2ZVVH6/y/9wAwI/s7hXJgzf1OIP3sMq+Q== dependencies: - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" @@ -3565,16 +3558,16 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-apple@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.9.tgz#02fb5dc47d62acd85f4d7a852e93216927a772fa" - integrity sha512-KoeIHfhxMhKXZPXmhQdl6EE+jGKWwoO9jUVWgBvibpVmsNjo7woaG/tfJMEWfWF3najX1EkQAoJWpCDBMYWtlA== +"@react-native-community/cli-platform-apple@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.0.0.tgz#7050af6fbc01b4ebe72e1bdcb48d188cbbf1b9ef" + integrity sha512-WniJL8vR4MeIsjqio2hiWWuUYUJEL3/9TDL5aXNwG68hH3tYgK3742+X9C+vRzdjTmf5IKc/a6PwLsdplFeiwQ== dependencies: - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-tools" "14.0.0" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" - fast-xml-parser "^4.0.12" + fast-xml-parser "^4.2.4" ora "^5.4.1" "@react-native-community/cli-platform-ios@10.0.0": @@ -3600,12 +3593,12 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-platform-ios@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.9.tgz#f37ceab41c2302e8f0d4bcbd3bf58b3353db4306" - integrity sha512-CiUcHlGs8vE0CAB4oi1f+dzniqfGuhWPNrDvae2nm8dewlahTBwIcK5CawyGezjcJoeQhjBflh9vloska+nlnw== +"@react-native-community/cli-platform-ios@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.0.0.tgz#7c7c393a13415bf61aaad82f1a3583c30afb110e" + integrity sha512-8kxGv7mZ5nGMtueQDq+ndu08f0ikf3Zsqm3Ix8FY5KCXpSgP14uZloO2GlOImq/zFESij+oMhCkZJGggpWpfAw== dependencies: - "@react-native-community/cli-platform-apple" "13.6.9" + "@react-native-community/cli-platform-apple" "14.0.0" "@react-native-community/cli-platform-ios@^10.2.5": version "10.2.5" @@ -3668,20 +3661,35 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-server-api@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.9.tgz#269e666bc26e9d0b2f42c7f6099559b5f9259e9d" - integrity sha512-W8FSlCPWymO+tlQfM3E0JmM8Oei5HZsIk5S0COOl0MRi8h0NmHI4WSTF2GCfbFZkcr2VI/fRsocoN8Au4EZAug== +"@react-native-community/cli-server-api@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-14.0.0.tgz#1b62b78e5ea7dead0ae4590465c977bc4af880fc" + integrity sha512-A0FIsj0QCcDl1rswaVlChICoNbfN+mkrKB5e1ab5tOYeZMMyCHqvU+eFvAvXjHUlIvVI+LbqCkf4IEdQ6H/2AQ== dependencies: - "@react-native-community/cli-debugger-ui" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" + "@react-native-community/cli-debugger-ui" "14.0.0" + "@react-native-community/cli-tools" "14.0.0" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" nocache "^3.0.1" pretty-format "^26.6.2" serve-static "^1.13.1" - ws "^6.2.2" + ws "^6.2.3" + +"@react-native-community/cli-server-api@14.0.0-alpha.11": + version "14.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-14.0.0-alpha.11.tgz#505163e11d3a30ebc874950956f72f5b3b6c5fc1" + integrity sha512-I7YeYI7S5wSxnQAqeG8LNqhT99FojiGIk87DU0vTp6U8hIMLcA90fUuBAyJY38AuQZ12ZJpGa8ObkhIhWzGkvg== + dependencies: + "@react-native-community/cli-debugger-ui" "14.0.0-alpha.11" + "@react-native-community/cli-tools" "14.0.0-alpha.11" + compression "^1.7.1" + connect "^3.6.5" + errorhandler "^1.5.1" + nocache "^3.0.1" + pretty-format "^26.6.2" + serve-static "^1.13.1" + ws "^6.2.3" "@react-native-community/cli-server-api@^10.0.0", "@react-native-community/cli-server-api@^10.1.1": version "10.1.1" @@ -3713,17 +3721,32 @@ semver "^6.3.0" shell-quote "^1.7.3" -"@react-native-community/cli-tools@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.9.tgz#2baee279358ba1a863e737b2fa9f45659ad91929" - integrity sha512-OXaSjoN0mZVw3nrAwcY1PC0uMfyTd9fz7Cy06dh+EJc+h0wikABsVRzV8cIOPrVV+PPEEXE0DBrH20T2puZzgQ== +"@react-native-community/cli-tools@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-14.0.0.tgz#07b57a8942a131618c198e3b64fb1ec846cd631d" + integrity sha512-L7GX5hyYYv0ZWbAyIQKzhHuShnwDqlKYB0tqn57wa5riGCaxYuRPTK+u4qy+WRCye7+i8M4Xj6oQtSd4z0T9cA== + dependencies: + appdirsjs "^1.2.4" + chalk "^4.1.2" + execa "^5.0.0" + find-up "^5.0.0" + mime "^2.4.1" + open "^6.2.0" + ora "^5.4.1" + semver "^7.5.2" + shell-quote "^1.7.3" + sudo-prompt "^9.0.0" + +"@react-native-community/cli-tools@14.0.0-alpha.11": + version "14.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-14.0.0-alpha.11.tgz#95b148a3e65a4c2519af608b27ed7091e7e8b78a" + integrity sha512-HQCfVnX9aqRdKdLxmQy4fUAUo+YhNGlBV7ZjOayPbuEGWJ4RN+vSy0Cawk7epo7hXd6vKzc7P7y3HlU6Kxs7+w== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" execa "^5.0.0" find-up "^5.0.0" mime "^2.4.1" - node-fetch "^2.6.0" open "^6.2.0" ora "^5.4.1" semver "^7.5.2" @@ -3752,10 +3775,10 @@ dependencies: joi "^17.2.1" -"@react-native-community/cli-types@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.9.tgz#08bfb796eacf0daeb31e2de516e81e78a36a1a55" - integrity sha512-RLxDppvRxXfs3hxceW/mShi+6o5yS+kFPnPqZTaMKKR5aSg7LwDpLQW4K2D22irEG8e6RKDkZUeH9aL3vO2O0w== +"@react-native-community/cli-types@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-14.0.0.tgz#6cde2d2a93edd9b13238171edef30352d37e8dd2" + integrity sha512-CMUevd1pOWqvmvutkUiyQT2lNmMHUzSW7NKc1xvHgg39NjbS58Eh2pMzIUP85IwbYNeocfYc3PH19vA/8LnQtg== dependencies: joi "^17.2.1" @@ -3812,24 +3835,23 @@ prompts "^2.4.0" semver "^6.3.0" -"@react-native-community/cli@13.6.9": - version "13.6.9" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.9.tgz#ba6360b94e0aba9c4001bda256cf7e57e2ecb02c" - integrity sha512-hFJL4cgLPxncJJd/epQ4dHnMg5Jy/7Q56jFvA3MHViuKpzzfTCJCB+pGY54maZbtym53UJON9WTGpM3S81UfjQ== - dependencies: - "@react-native-community/cli-clean" "13.6.9" - "@react-native-community/cli-config" "13.6.9" - "@react-native-community/cli-debugger-ui" "13.6.9" - "@react-native-community/cli-doctor" "13.6.9" - "@react-native-community/cli-hermes" "13.6.9" - "@react-native-community/cli-server-api" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" - "@react-native-community/cli-types" "13.6.9" +"@react-native-community/cli@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-14.0.0.tgz#0c98d75ac55515d07972682c1053f46bfee93863" + integrity sha512-KwMKJB5jsDxqOhT8CGJ55BADDAYxlYDHv5R/ASQlEcdBEZxT0zZmnL0iiq2VqzETUy+Y/Nop+XDFgqyoQm0C2w== + dependencies: + "@react-native-community/cli-clean" "14.0.0" + "@react-native-community/cli-config" "14.0.0" + "@react-native-community/cli-debugger-ui" "14.0.0" + "@react-native-community/cli-doctor" "14.0.0" + "@react-native-community/cli-server-api" "14.0.0" + "@react-native-community/cli-tools" "14.0.0" + "@react-native-community/cli-types" "14.0.0" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" execa "^5.0.0" - find-up "^4.1.0" + find-up "^5.0.0" fs-extra "^8.1.0" graceful-fs "^4.1.3" prompts "^2.4.2" @@ -3840,10 +3862,10 @@ resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-4.7.0.tgz#7482d36836cac69d0a0ae25581f65bc472639930" integrity sha512-a/sDB+AsLEUNmhAUlAaTYeXKyQdFGBUfatqKkX5jluBo2CB3OAuTHfm7rSjcaLB9EmG5iSq3fOTpync2E7EYTA== -"@react-native/assets-registry@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.74.86.tgz#5a9dc5d4c74346194a895b0be6b87a7e6022cf53" - integrity sha512-rNWSa1MTqG3Z7ZfACIDlED+T63tNlt0Lr/ruvxFJL5IX6DRC6sIrb2SrbLrlXgz7C0FbhO0ub9zfHXISgrJOsQ== +"@react-native/assets-registry@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.75.2.tgz#2c522c537fa86298987b8c877c167ac9b485d3da" + integrity sha512-P1dLHjpUeC0AIkDHRYcx0qLMr+p92IPWL3pmczzo6T76Qa9XzruQOYy0jittxyBK91Csn6HHQ/eit8TeXW8MVw== "@react-native/assets-registry@^0.72.0": version "0.72.0" @@ -3855,44 +3877,45 @@ resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== -"@react-native/babel-plugin-codegen@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.86.tgz#4edbb8887c5cedefd52e8fda973b1da97c779db4" - integrity sha512-fO7exk0pdsOSsK3fvDz4YKe5nMeAMrsIGi525pft/L+dedjdeiWYmEoQVc9NElxwwNCldwRY6eNMw6IhKyjzLA== +"@react-native/babel-plugin-codegen@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.75.2.tgz#1d940df23ac4ca16b4bd3299f4a3c98081158960" + integrity sha512-BIKVh2ZJPkzluUGgCNgpoh6NTHgX8j04FCS0Z/rTmRJ66hir/EUBl8frMFKrOy/6i4VvZEltOWB5eWfHe1AYgw== dependencies: - "@react-native/codegen" "0.74.86" + "@react-native/codegen" "0.75.2" -"@react-native/babel-preset@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.86.tgz#8bb3fbd49ce11470eb8022dea2c1e51bfa8dedd4" - integrity sha512-6A+1NVAHugbBLFNU4iaYrq2lx8P7pINyqoyTtVAqd375PShRmLwu6GvuF3b/4avC97s6LmBljVTJ1xVHukA42g== +"@react-native/babel-preset@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.75.2.tgz#f66a762fd8e172e547eeebb25f2960a5144ea14f" + integrity sha512-mprpsas+WdCEMjQZnbDiAC4KKRmmLbMB+o/v4mDqKlH4Mcm7RdtP5t80MZGOVCHlceNp1uEIpXywx69DNwgbgg== dependencies: "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.18.0" "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.20.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.0" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-export-default-from" "^7.0.0" "@babel/plugin-syntax-flow" "^7.18.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" "@babel/plugin-syntax-optional-chaining" "^7.0.0" "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-generator-functions" "^7.24.3" "@babel/plugin-transform-async-to-generator" "^7.20.0" "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-class-properties" "^7.24.1" "@babel/plugin-transform-classes" "^7.0.0" "@babel/plugin-transform-computed-properties" "^7.0.0" "@babel/plugin-transform-destructuring" "^7.20.0" "@babel/plugin-transform-flow-strip-types" "^7.20.0" + "@babel/plugin-transform-for-of" "^7.0.0" "@babel/plugin-transform-function-name" "^7.0.0" "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" "@babel/plugin-transform-modules-commonjs" "^7.0.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" + "@babel/plugin-transform-numeric-separator" "^7.24.1" + "@babel/plugin-transform-object-rest-spread" "^7.24.5" + "@babel/plugin-transform-optional-catch-binding" "^7.24.1" + "@babel/plugin-transform-optional-chaining" "^7.24.5" "@babel/plugin-transform-parameters" "^7.0.0" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.11" @@ -3900,6 +3923,7 @@ "@babel/plugin-transform-react-jsx" "^7.0.0" "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-regenerator" "^7.20.0" "@babel/plugin-transform-runtime" "^7.0.0" "@babel/plugin-transform-shorthand-properties" "^7.0.0" "@babel/plugin-transform-spread" "^7.0.0" @@ -3907,22 +3931,23 @@ "@babel/plugin-transform-typescript" "^7.5.0" "@babel/plugin-transform-unicode-regex" "^7.0.0" "@babel/template" "^7.0.0" - "@react-native/babel-plugin-codegen" "0.74.86" + "@react-native/babel-plugin-codegen" "0.75.2" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/codegen@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.86.tgz#90933f5ee555ffb95ca27372ba1e836f698c3192" - integrity sha512-BOwABta9035GJ/zLMkxQfgPMr47u1/1HqNIMk10FqmTe0jmROOxKEAeP4FbeS5L1voO4ug3dqr+mcuHrG+HNhA== +"@react-native/codegen@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.75.2.tgz#15674a9b21cf413eb37657fb045a06640bf54476" + integrity sha512-OkWdbtO2jTkfOXfj3ibIL27rM6LoaEuApOByU2G8X+HS6v9U87uJVJlMIRWBDmnxODzazuHwNVA2/wAmSbucaw== dependencies: "@babel/parser" "^7.20.0" glob "^7.1.1" - hermes-parser "0.19.1" + hermes-parser "0.22.0" invariant "^2.2.4" jscodeshift "^0.14.0" mkdirp "^0.5.1" nullthrows "^1.1.1" + yargs "^17.6.2" "@react-native/codegen@^0.72.6": version "0.72.8" @@ -3937,15 +3962,15 @@ mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.86.tgz#239592475b222e990ac3bb229d7cdfb8f9afcc39" - integrity sha512-q0fPDe6vx1vT5PdE3AiL+DNm0q7opzySiGle8B64bAKsa0ClIoRXAzZqolceiMHbSoCIhUbZxYtNGavrjuPyKw== +"@react-native/community-cli-plugin@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.75.2.tgz#f5943c22e6dd24fa8fc6151de8ba52b92e3cc61b" + integrity sha512-/tz0bzVja4FU0aAimzzQ7iYR43peaD6pzksArdrrGhlm8OvFYAQPOYSNeIQVMSarwnkNeg1naFKaeYf1o3++yA== dependencies: - "@react-native-community/cli-server-api" "13.6.9" - "@react-native-community/cli-tools" "13.6.9" - "@react-native/dev-middleware" "0.74.86" - "@react-native/metro-babel-transformer" "0.74.86" + "@react-native-community/cli-server-api" "14.0.0-alpha.11" + "@react-native-community/cli-tools" "14.0.0-alpha.11" + "@react-native/dev-middleware" "0.75.2" + "@react-native/metro-babel-transformer" "0.75.2" chalk "^4.0.0" execa "^5.1.1" metro "^0.80.3" @@ -3955,20 +3980,20 @@ querystring "^0.2.1" readline "^1.3.0" -"@react-native/debugger-frontend@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.74.86.tgz#87a3c7dfb12ee6e981165e304bbbe20e9b1fa009" - integrity sha512-Spq1kFX4qvPmT4HuTwpi1ALFtojlJ6s4GpWU2OnpevC/z7ks36lhD3J0rd0D9U5bkxtTYLcg31fPv7nGFC7XZg== +"@react-native/debugger-frontend@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.75.2.tgz#ead66eff1b0f8ad3c7a86b5845acc0c2cf69236e" + integrity sha512-qIC6mrlG8RQOPaYLZQiJwqnPchAVGnHWcVDeQxPMPLkM/D5+PC8tuKWYOwgLcEau3RZlgz7QQNk31Qj2/OJG6Q== -"@react-native/dev-middleware@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.74.86.tgz#b95f936c141dd44309a9ec558ed5ce034e270bc4" - integrity sha512-sc0tYxYt6dkUbNFI1IANzKO67M41BhjbJ6k/CHoFi/tGoNmHzg9IUZ89V4g3H8hn/VW9dETnPOFna1VO0sWrXg== +"@react-native/dev-middleware@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.75.2.tgz#feb325a9ec5a0fda640a0897957a43030801b1d3" + integrity sha512-fTC5m2uVjYp1XPaIJBFgscnQjPdGVsl96z/RfLgXDq0HBffyqbg29ttx6yTCx7lIa9Gdvf6nKQom+e+Oa4izSw== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.74.86" - "@rnx-kit/chromium-edge-launcher" "^1.0.0" + "@react-native/debugger-frontend" "0.75.2" chrome-launcher "^0.15.2" + chromium-edge-launcher "^0.2.0" connect "^3.6.5" debug "^2.2.0" node-fetch "^2.2.0" @@ -3976,37 +4001,36 @@ open "^7.0.3" selfsigned "^2.4.1" serve-static "^1.13.1" - temp-dir "^2.0.0" ws "^6.2.2" -"@react-native/gradle-plugin@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.74.86.tgz#5092d6023a4cefb1055fff251a8dae894379db9e" - integrity sha512-aoYeX7mjf3Efwc5t8AdcwC42oicMRKauGMZimvXY3xqfYV97G4foAYXrxQYZsMaxecFStdYMiXWyMFO/UFmEpA== +"@react-native/gradle-plugin@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.75.2.tgz#f5627aef8e7f17df089f4f8dae6373ea05c11854" + integrity sha512-AELeAOCZi3B2vE6SeN+mjpZjjqzqa76yfFBB3L3f3NWiu4dm/YClTGOj+5IVRRgbt8LDuRImhDoaj7ukheXr4Q== "@react-native/gradle-plugin@^0.72.11": version "0.72.11" resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.72.11.tgz#c063ef12778706611de7a1e42b74b14d9405fb9f" integrity sha512-P9iRnxiR2w7EHcZ0mJ+fmbPzMby77ZzV6y9sJI3lVLJzF7TLSdbwcQyD3lwMsiL+q5lKUHoZJS4sYmih+P2HXw== -"@react-native/js-polyfills@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.74.86.tgz#5c89c2febfb72930fee68d3eb04ba690f82a8403" - integrity sha512-Yrsj4a1rTkk618LUJJxOWFnyAZR3sHmXJwcj4qupkJs+ou3aDkixfXgVVrvQP39iBptaQvCpo7PSqs+LjSNYbA== +"@react-native/js-polyfills@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.75.2.tgz#0586fa51c043bcf9b99710ecb10982d851a0e358" + integrity sha512-AtLd3mbiE+FXK2Ru3l2NFOXDhUvzdUsCP4qspUw0haVaO/9xzV97RVD2zz0lur2f/LmZqQ2+KXyYzr7048b5iw== "@react-native/js-polyfills@^0.72.1": version "0.72.1" resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.72.1.tgz#905343ef0c51256f128256330fccbdb35b922291" integrity sha512-cRPZh2rBswFnGt5X5EUEPs0r+pAsXxYsifv/fgy9ZLQokuT52bPH+9xjDR+7TafRua5CttGW83wP4TntRcWNDA== -"@react-native/metro-babel-transformer@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.86.tgz#d67d3bf1699fcf834a70155635b30ae9f667b6dd" - integrity sha512-/9qN5zcnTHGDkC4jWibnoGmRnzDXiurl5wmkvspgnsdrJINN6eGpK8sdIn6nrHFOuPlp3Metqw3HkxbuAfNUXw== +"@react-native/metro-babel-transformer@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.75.2.tgz#bcb0d135c735b5cd50a7eb1ba4e51669c1f6224d" + integrity sha512-EygglCCuOub2sZ00CSIiEekCXoGL2XbOC6ssOB47M55QKvhdPG/0WBQXvmOmiN42uZgJK99Lj749v4rB0PlPIQ== dependencies: "@babel/core" "^7.20.0" - "@react-native/babel-preset" "0.74.86" - hermes-parser "0.19.1" + "@react-native/babel-preset" "0.75.2" + hermes-parser "0.22.0" nullthrows "^1.1.1" "@react-native/metro-config@^0.72.11": @@ -4024,10 +4048,10 @@ resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/normalize-colors@*", "@react-native/normalize-colors@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.74.86.tgz#8dadd294565cdb70b333f790711a019f18bbdd8b" - integrity sha512-GGA+nhwrQ1umwnkv7tuGbGIk0oBTeNbG4cUxNQX/CbYW0R98RCNxSbXjfw1XnXZd3lCSFLDxzw154V4hum2pNQ== +"@react-native/normalize-colors@*", "@react-native/normalize-colors@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.75.2.tgz#de095f4b985580748ffa239a70ae63fbaa93724e" + integrity sha512-nPwWJFtsqNFS/qSG9yDOiSJ64mjG7RCP4X/HXFfyWzCM1jq49h/DYBdr+c3e7AvTKGIdy0gGT3vgaRUHZFVdUQ== "@react-native/normalize-colors@^0.72.0": version "0.72.0" @@ -4039,10 +4063,10 @@ resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa" integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== -"@react-native/virtualized-lists@0.74.86": - version "0.74.86" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.74.86.tgz#bcf99fa54de3b58c354afb77d5171afd0a0dbf05" - integrity sha512-f5wZpQvlGeWcyfK3Low0tOft9ounAaVQHpa4fiHjh9x3d2EPLwoaQe7sxS0q8/5pMISjddbF9S3ofpNuDxxoeA== +"@react-native/virtualized-lists@0.75.2": + version "0.75.2" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.75.2.tgz#6832fb0745a93e42dbda659426cc14a38a493282" + integrity sha512-pD5SVCjxc8k+JdoyQ+IlulBTEqJc3S4KUKsmv5zqbNCyETB0ZUvd4Su7bp+lLF6ALxx6KKmbGk8E3LaWEjUFFQ== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" @@ -4055,18 +4079,6 @@ invariant "^2.2.4" nullthrows "^1.1.1" -"@rnx-kit/chromium-edge-launcher@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz#c0df8ea00a902c7a417cd9655aab06de398b939c" - integrity sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg== - dependencies: - "@types/node" "^18.0.0" - escape-string-regexp "^4.0.0" - is-wsl "^2.2.0" - lighthouse-logger "^1.0.0" - mkdirp "^1.0.4" - rimraf "^3.0.2" - "@rollup/plugin-typescript@11.1.5": version "11.1.5" resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.5.tgz#039c763bf943a5921f3f42be255895e75764cb91" @@ -4092,85 +4104,85 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.2.tgz#6b991cb44bf69e50163528ea85bed545330ba821" - integrity sha512-OHflWINKtoCFSpm/WmuQaWW4jeX+3Qt3XQDepkkiFTsoxFc5BpF3Z5aDxFZgBqRjO6ATP5+b1iilp4kGIZVWlA== - -"@rollup/rollup-android-arm64@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.2.tgz#5d3c8c2f9742d62ba258cc378bd2d4720f0c431c" - integrity sha512-k0OC/b14rNzMLDOE6QMBCjDRm3fQOHAL8Ldc9bxEWvMo4Ty9RY6rWmGetNTWhPo+/+FNd1lsQYRd0/1OSix36A== - -"@rollup/rollup-darwin-arm64@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.2.tgz#8eac8682a34a705bb6a57eb3e739fd6bbedfabed" - integrity sha512-IIARRgWCNWMTeQH+kr/gFTHJccKzwEaI0YSvtqkEBPj7AshElFq89TyreKNFAGh5frLfDCbodnq+Ye3dqGKPBw== - -"@rollup/rollup-darwin-x64@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.2.tgz#70a9953fc624bd7f645901f4250f6b5807ac7e92" - integrity sha512-52udDMFDv54BTAdnw+KXNF45QCvcJOcYGl3vQkp4vARyrcdI/cXH8VXTEv/8QWfd6Fru8QQuw1b2uNersXOL0g== - -"@rollup/rollup-linux-arm-gnueabihf@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.2.tgz#8f6c4ff4c4972413ff94345080380d4e3caa3c69" - integrity sha512-r+SI2t8srMPYZeoa1w0o/AfoVt9akI1ihgazGYPQGRilVAkuzMGiTtexNZkrPkQsyFrvqq/ni8f3zOnHw4hUbA== - -"@rollup/rollup-linux-arm-musleabihf@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.2.tgz#5d3c0fe5ea5ddf2feb511b3cb031df17eaa7e33d" - integrity sha512-+tYiL4QVjtI3KliKBGtUU7yhw0GMcJJuB9mLTCEauHEsqfk49gtUBXGtGP3h1LW8MbaTY6rSFIQV1XOBps1gBA== - -"@rollup/rollup-linux-arm64-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.2.tgz#b7f104388b2f5624d9f8adfff10ba59af8ab8ed1" - integrity sha512-OR5DcvZiYN75mXDNQQxlQPTv4D+uNCUsmSCSY2FolLf9W5I4DSoJyg7z9Ea3TjKfhPSGgMJiey1aWvlWuBzMtg== - -"@rollup/rollup-linux-arm64-musl@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.2.tgz#6d5ca6d3904309bec285ea5202d589cebb93dee4" - integrity sha512-Hw3jSfWdUSauEYFBSFIte6I8m6jOj+3vifLg8EU3lreWulAUpch4JBjDMtlKosrBzkr0kwKgL9iCfjA8L3geoA== - -"@rollup/rollup-linux-powerpc64le-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.2.tgz#4df9be1396ea9eb0ca99fd0f2e858008d7f063e3" - integrity sha512-rhjvoPBhBwVnJRq/+hi2Q3EMiVF538/o9dBuj9TVLclo9DuONqt5xfWSaE6MYiFKpo/lFPJ/iSI72rYWw5Hc7w== - -"@rollup/rollup-linux-riscv64-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.2.tgz#80d63c5562915a2f8616a04251fcaee0218112b0" - integrity sha512-EAz6vjPwHHs2qOCnpQkw4xs14XJq84I81sDRGPEjKPFVPBw7fwvtwhVjcZR6SLydCv8zNK8YGFblKWd/vRmP8g== - -"@rollup/rollup-linux-s390x-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.2.tgz#ef62e9bc5cc3b84fcfe96ec0a42d1989691217b3" - integrity sha512-IJSUX1xb8k/zN9j2I7B5Re6B0NNJDJ1+soezjNojhT8DEVeDNptq2jgycCOpRhyGj0+xBn7Cq+PK7Q+nd2hxLA== - -"@rollup/rollup-linux-x64-gnu@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.2.tgz#6a275282a0080fee98ddd9fda0de23c4c6bafd48" - integrity sha512-OgaToJ8jSxTpgGkZSkwKE+JQGihdcaqnyHEFOSAU45utQ+yLruE1dkonB2SDI8t375wOKgNn8pQvaWY9kPzxDQ== - -"@rollup/rollup-linux-x64-musl@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.2.tgz#64f0c704107e6b45b26dd8c2e1ff64246e4a1251" - integrity sha512-5V3mPpWkB066XZZBgSd1lwozBk7tmOkKtquyCJ6T4LN3mzKENXyBwWNQn8d0Ci81hvlBw5RoFgleVpL6aScLYg== - -"@rollup/rollup-win32-arm64-msvc@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.2.tgz#bada17b0c5017ff58d0feba401c43ff5a646c693" - integrity sha512-ayVstadfLeeXI9zUPiKRVT8qF55hm7hKa+0N1V6Vj+OTNFfKSoUxyZvzVvgtBxqSb5URQ8sK6fhwxr9/MLmxdA== - -"@rollup/rollup-win32-ia32-msvc@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.2.tgz#a716d862f6ac39d88bdb825e27f63aeb0387cd66" - integrity sha512-Mda7iG4fOLHNsPqjWSjANvNZYoW034yxgrndof0DwCy0D3FvTjeNo+HGE6oGWgvcLZNLlcp0hLEFcRs+UGsMLg== - -"@rollup/rollup-win32-x64-msvc@4.19.2": - version "4.19.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.2.tgz#d67206c5f2e4b2832ce360bbbde194e96d16dc51" - integrity sha512-DPi0ubYhSow/00YqmG1jWm3qt1F8aXziHc/UNy8bo9cpCacqhuWu+iSq/fp2SyEQK7iYTZ60fBU9cat3MXTjIQ== +"@rollup/rollup-android-arm-eabi@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.1.tgz#c3a7938551273a2b72820cf5d22e54cf41dc206e" + integrity sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg== + +"@rollup/rollup-android-arm64@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.1.tgz#fa3693e4674027702c42fcbbb86bbd0c635fd3b9" + integrity sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g== + +"@rollup/rollup-darwin-arm64@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.1.tgz#e19922f4ac1e4552a230ff8f49d5688c5c07d284" + integrity sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA== + +"@rollup/rollup-darwin-x64@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.1.tgz#897f8d47b115ea84692a29cf2366899499d4d915" + integrity sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg== + +"@rollup/rollup-linux-arm-gnueabihf@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.1.tgz#7d1e2a542f3a5744f5c24320067bd5af99ec9d62" + integrity sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ== + +"@rollup/rollup-linux-arm-musleabihf@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.1.tgz#88bec1c9df85fc5e24d49f783e19934717dd69b5" + integrity sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew== + +"@rollup/rollup-linux-arm64-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.1.tgz#6dc60f0fe7bd49ed07a2d4d9eab15e671b3bd59d" + integrity sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow== + +"@rollup/rollup-linux-arm64-musl@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.1.tgz#a03b78775c129e8333aca9e1e420e8e217ee99b9" + integrity sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.1.tgz#ee3810647faf2c105a5a4e71260bb90b96bf87bc" + integrity sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ== + +"@rollup/rollup-linux-riscv64-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.1.tgz#385d76a088c27db8054d9f3f28d64d89294f838e" + integrity sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg== + +"@rollup/rollup-linux-s390x-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.1.tgz#daa2b62a6e6f737ebef6700a12a93c9764e18583" + integrity sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA== + +"@rollup/rollup-linux-x64-gnu@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.1.tgz#790ae96118cc892464e9f10da358c0c8a6b9acdd" + integrity sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w== + +"@rollup/rollup-linux-x64-musl@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.1.tgz#d613147f7ac15fafe2a0b6249e8484e161ca2847" + integrity sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA== + +"@rollup/rollup-win32-arm64-msvc@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.1.tgz#18349db8250559a5460d59eb3575f9781be4ab98" + integrity sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g== + +"@rollup/rollup-win32-ia32-msvc@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.1.tgz#199648b68271f7ab9d023f5c077725d51d12d466" + integrity sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw== + +"@rollup/rollup-win32-x64-msvc@4.21.1": + version "4.21.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.1.tgz#4d3ec02dbf280c20bfeac7e50cd5669b66f9108f" + integrity sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg== "@semantic-ui-react/event-stack@^3.1.0": version "3.1.3" @@ -4294,17 +4306,19 @@ tslib "^2.6.2" "@smithy/core@^2.3.1": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.3.2.tgz#4a1e3da41d2a3a494cbc6bd1fc6eeb26b2e27184" - integrity sha512-in5wwt6chDBcUv1Lw1+QzZxN9fBffi+qOixfb65yK4sDuKG7zAUO9HAFqmVzsZM3N+3tTyvZjtnDXePpvp007Q== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.0.tgz#56e917b6ab2dffeba681a05395c40a757d681147" + integrity sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w== dependencies: "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.14" + "@smithy/middleware-retry" "^3.0.15" "@smithy/middleware-serde" "^3.0.3" "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" + "@smithy/smithy-client" "^3.2.0" "@smithy/types" "^3.3.0" + "@smithy/util-body-length-browser" "^3.0.0" "@smithy/util-middleware" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" "@smithy/credential-provider-imds@^3.2.0": @@ -4339,11 +4353,11 @@ tslib "^2.6.2" "@smithy/eventstream-serde-browser@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.5.tgz#3e971afd2b8a02a098af8decc4b9e3f35296d6a2" - integrity sha512-dEyiUYL/ekDfk+2Ra4GxV+xNnFoCmk1nuIXg+fMChFTrM2uI/1r9AdiTYzPqgb72yIv/NtAj6C3dG//1wwgakQ== + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.6.tgz#a4ab4f7cfbd137bcaa54c375276f9214e568fd8f" + integrity sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.4" + "@smithy/eventstream-serde-universal" "^3.0.5" "@smithy/types" "^3.3.0" tslib "^2.6.2" @@ -4356,18 +4370,18 @@ tslib "^2.6.2" "@smithy/eventstream-serde-node@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.4.tgz#6301752ca51b3ebabcd2dec112f1dacd990de4c1" - integrity sha512-mjlG0OzGAYuUpdUpflfb9zyLrBGgmQmrobNT8b42ZTsGv/J03+t24uhhtVEKG/b2jFtPIHF74Bq+VUtbzEKOKg== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.5.tgz#2bbf5c9312a28f23bc55ae284efa9499f8b8f982" + integrity sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.4" + "@smithy/eventstream-serde-universal" "^3.0.5" "@smithy/types" "^3.3.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.4.tgz#6754de5b94bdc286d8ef1d6bcf22d80f6ab68f30" - integrity sha512-Od9dv8zh3PgOD7Vj4T3HSuox16n0VG8jJIM2gvKASL6aCtcS8CfHZDWe1Ik3ZXW6xBouU+45Q5wgoliWDZiJ0A== +"@smithy/eventstream-serde-universal@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.5.tgz#e1cc2f71f4d174a03e00ce4b563395a81dd17bec" + integrity sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ== dependencies: "@smithy/eventstream-codec" "^3.1.2" "@smithy/types" "^3.3.0" @@ -4447,15 +4461,15 @@ "@smithy/util-middleware" "^3.0.3" tslib "^2.6.2" -"@smithy/middleware-retry@^3.0.13", "@smithy/middleware-retry@^3.0.14": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.14.tgz#739e8bac6e465e0cda26446999db614418e79da3" - integrity sha512-7ZaWZJOjUxa5hgmuMspyt8v/zVsh0GXYuF7OvCmdcbVa/xbnKQoYC+uYKunAqRGTkxjOyuOCw9rmFUFOqqC0eQ== +"@smithy/middleware-retry@^3.0.13", "@smithy/middleware-retry@^3.0.15": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.15.tgz#9b96900cde70d8aafd267e13f4e79241be90e0c7" + integrity sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ== dependencies: "@smithy/node-config-provider" "^3.1.4" "@smithy/protocol-http" "^4.1.0" "@smithy/service-error-classification" "^3.0.3" - "@smithy/smithy-client" "^3.1.12" + "@smithy/smithy-client" "^3.2.0" "@smithy/types" "^3.3.0" "@smithy/util-middleware" "^3.0.3" "@smithy/util-retry" "^3.0.3" @@ -4561,10 +4575,10 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.1.11", "@smithy/smithy-client@^3.1.12": - version "3.1.12" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.12.tgz#fb6386816ff8a5c50eab7503d4ee3ba2e4ebac63" - integrity sha512-wtm8JtsycthkHy1YA4zjIh2thJgIQ9vGkoR639DBx5lLlLNU0v4GARpQZkr2WjXue74nZ7MiTSWfVrLkyD8RkA== +"@smithy/smithy-client@^3.1.11", "@smithy/smithy-client@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.2.0.tgz#6db94024e4bdaefa079ac68dbea23dafbea230c8" + integrity sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw== dependencies: "@smithy/middleware-endpoint" "^3.1.0" "@smithy/middleware-stack" "^3.0.3" @@ -4643,26 +4657,26 @@ tslib "^2.6.2" "@smithy/util-defaults-mode-browser@^3.0.13": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.14.tgz#21f3ebcb07b9d6ae1274b9d655c38bdac59e5c06" - integrity sha512-0iwTgKKmAIf+vFLV8fji21Jb2px11ktKVxbX6LIDPAUJyWQqGqBVfwba7xwa1f2FZUoolYQgLvxQEpJycXuQ5w== + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.15.tgz#df73b9ae3dddc9126e0bb93ebc720b09d7163858" + integrity sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg== dependencies: "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.12" + "@smithy/smithy-client" "^3.2.0" "@smithy/types" "^3.3.0" bowser "^2.11.0" tslib "^2.6.2" "@smithy/util-defaults-mode-node@^3.0.13": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.14.tgz#6bb9e837282e84bbf5093dbcd120fcd296593f7a" - integrity sha512-e9uQarJKfXApkTMMruIdxHprhcXivH1flYCe8JRDTzkkLx8dA3V5J8GZlST9yfDiRWkJpZJlUXGN9Rc9Ade3OQ== + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.15.tgz#d52476e1f2e66525d918b51f8d5a9b0972bf518e" + integrity sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A== dependencies: "@smithy/config-resolver" "^3.0.5" "@smithy/credential-provider-imds" "^3.2.0" "@smithy/node-config-provider" "^3.1.4" "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.1.12" + "@smithy/smithy-client" "^3.2.0" "@smithy/types" "^3.3.0" tslib "^2.6.2" @@ -5036,9 +5050,9 @@ integrity sha512-5ZZ5+YGmUE01yejiXsKnTcvhakMZ2UllZlMsQni53Doc1JWhe21ia8VntRoRD6fAEWw08JBh/z9qQHJ+//MrIg== "@types/aws-lambda@^8.10.134": - version "8.10.142" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.142.tgz#cb1d90bc45095e4f59e4ddfbb34a2e29c28d66b4" - integrity sha512-wy2y/2hQKrS6myOS++koXg3N1Hg+LLyPjaggCFajczSHZPqBnOMuT2sdH3kiASrmdBYyM3pmjyz5SoWraRllCQ== + version "8.10.143" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.143.tgz#383693fbaadc6994a71d64a7c09e8c244fad8dff" + integrity sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg== "@types/babel__core@^7.1.14": version "7.20.5" @@ -5083,26 +5097,10 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.5.1.tgz#b29aa1f91a59f35e29ff8f7cb24faf1a3a750554" integrity sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g== -"@types/eslint-scope@^3.7.3": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "9.6.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.0.tgz#51d4fe4d0316da9e9f2c80884f2c20ed5fb022ff" - integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - "@types/eslint@^8.56.10": - version "8.56.11" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.11.tgz#e2ff61510a3b9454b3329fe7731e3b4c6f780041" - integrity sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q== + version "8.56.12" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.12.tgz#1657c814ffeba4d2f84c0d4ba0f44ca7ea1ca53a" + integrity sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -5216,11 +5214,11 @@ "@types/node" "*" "@types/node@*": - version "22.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.0.2.tgz#9fb1a2b31970871e8bf696f0e8a40d2e6d2bd04e" - integrity sha512-yPL6DyFwY5PiMVEwymNeqUTKsDczQBJ/5T7W/46RwLU/VH+AA8aT5TZkvBviLKLbbm0hlfftEkGrNzfRk/fofQ== + version "22.5.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.0.tgz#10f01fe9465166b4cab72e75f60d8b99d019f958" + integrity sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg== dependencies: - undici-types "~6.11.1" + undici-types "~6.19.2" "@types/node@16.18.82": version "16.18.82" @@ -5228,18 +5226,18 @@ integrity sha512-pcDZtkx9z8XYV+ius2P3Ot2VVrcYOfXffBQUBuiszrlUzKSmoDYqo+mV+IoL8iIiIjjtOMvNSmH1hwJ+Q+f96Q== "@types/node@^18.0.0": - version "18.19.42" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.42.tgz#b54ed4752c85427906aab40917b0f7f3d724bf72" - integrity sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg== + version "18.19.46" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.46.tgz#51801396c01153e0626e36f43386e83bc768b072" + integrity sha512-vnRgMS7W6cKa1/0G3/DTtQYpVrZ8c0Xm6UkLaVFrb9jtcVC3okokW09Ki1Qdrj9ISokszD69nY4WDLRlvHlhAA== dependencies: undici-types "~5.26.4" "@types/node@^20.3.1": - version "20.14.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.13.tgz#bf4fe8959ae1c43bc284de78bd6c01730933736b" - integrity sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w== + version "20.16.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.1.tgz#0b44b15271d0e2191ca68faf1fbe506e06aed732" + integrity sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ== dependencies: - undici-types "~5.26.4" + undici-types "~6.19.2" "@types/node@^8.9.5": version "8.10.66" @@ -5289,9 +5287,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^18.2.13": - version "18.3.3" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" - integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== + version "18.3.4" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.4.tgz#dfdd534a1d081307144c00e325c06e00312c93a3" + integrity sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -5350,9 +5348,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== dependencies: "@types/yargs-parser" "*" @@ -5987,9 +5985,9 @@ async-limiter@~1.0.0: integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^3.2.2, async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== asynckit@^0.4.0: version "0.4.0" @@ -6009,9 +6007,9 @@ aws-jwt-verify@^4.0.1: integrity sha512-kzvi71eD3w/mCpYRUY7cz6DX4bfYihGdI2yV3FYQ2JuZZenqAqDPz0gWj0ew6vlAtdEVBNb7p+Dm2TAIxpVYMA== axios@^1.0.0: - version "1.7.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" - integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + version "1.7.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.5.tgz#21eed340eb5daf47d29b6e002424b3e88c8c54b1" + integrity sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -6086,13 +6084,13 @@ babel-plugin-polyfill-corejs2@^0.4.10: "@babel/helper-define-polyfill-provider" "^0.6.2" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: - version "0.10.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz#789ac82405ad664c20476d0233b485281deb9c77" - integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== +babel-plugin-polyfill-corejs3@^0.10.6: + version "0.10.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.1" - core-js-compat "^3.36.1" + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" babel-plugin-polyfill-regenerator@^0.6.1: version "0.6.2" @@ -6114,22 +6112,25 @@ babel-plugin-transform-flow-enums@^0.0.2: "@babel/plugin-syntax-flow" "^7.12.1" babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" babel-preset-fbjs@^3.4.0: version "3.4.0" @@ -6279,7 +6280,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.21.10, browserslist@^4.23.0, browserslist@^4.23.1: +browserslist@^4.21.10, browserslist@^4.23.1, browserslist@^4.23.3: version "4.23.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== @@ -6289,7 +6290,7 @@ browserslist@^4.21.10, browserslist@^4.23.0, browserslist@^4.23.1: node-releases "^2.0.18" update-browserslist-db "^1.1.0" -bs-logger@0.x: +bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== @@ -6493,9 +6494,9 @@ camelcase@^6.0.0, camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646: - version "1.0.30001646" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz#d472f2882259ba032dd73ee069ff01bfd059b25d" - integrity sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw== + version "1.0.30001653" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz#b8af452f8f33b1c77f122780a4aecebea0caca56" + integrity sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw== chalk@4.1.0: version "4.1.0" @@ -6582,6 +6583,18 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== +chromium-edge-launcher@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz#0c378f28c99aefc360705fa155de0113997f62fc" + integrity sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -6593,9 +6606,9 @@ ci-info@^3.2.0, ci-info@^3.6.1: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c" - integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== + version "1.4.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz#677de7ed7efff67cc40c9bf1897fea79d41b5215" + integrity sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g== classnames@^2.2.6: version "2.5.1" @@ -6998,12 +7011,12 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -core-js-compat@^3.36.1, core-js-compat@^3.37.1: - version "3.37.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.1.tgz#c844310c7852f4bdf49b8d339730b97e17ff09ee" - integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== +core-js-compat@^3.37.1, core-js-compat@^3.38.0: + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" + integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== dependencies: - browserslist "^4.23.0" + browserslist "^4.23.3" core-util-is@~1.0.0: version "1.0.3" @@ -7030,6 +7043,16 @@ cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + create-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" @@ -7154,9 +7177,9 @@ dateformat@^3.0.3: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.8.15: - version "1.11.12" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.12.tgz#5245226cc7f40a15bf52e0b99fd2a04669ccac1d" - integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg== + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== debounce@^1.2.1: version "1.2.1" @@ -7170,7 +7193,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@~4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@~4.3.6: version "4.3.6" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== @@ -7453,9 +7476,9 @@ ejs@^3.1.10, ejs@^3.1.7: jake "^10.8.5" electron-to-chromium@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz#cd477c830dd6fca41fbd5465c1ff6ce08ac22343" - integrity sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA== + version "1.5.13" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" + integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== emittery@^0.13.1: version "0.13.1" @@ -7463,9 +7486,9 @@ emittery@^0.13.1: integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" - integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + version "10.4.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" + integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== emoji-regex@^7.0.1: version "7.0.3" @@ -7506,7 +7529,7 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.12.0, enhanced-resolve@^5.17.0: +enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0, enhanced-resolve@^5.17.1: version "5.17.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== @@ -7526,7 +7549,7 @@ entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -env-paths@^2.2.0: +env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== @@ -7536,7 +7559,7 @@ envinfo@7.8.1: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -envinfo@^7.10.0, envinfo@^7.7.2, envinfo@^7.7.3: +envinfo@^7.13.0, envinfo@^7.7.2, envinfo@^7.7.3: version "7.13.0" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== @@ -7737,22 +7760,23 @@ eslint-import-resolver-node@^0.3.9: resolve "^1.22.4" eslint-import-resolver-typescript@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" - integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== + version "3.6.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz#bb8e388f6afc0f940ce5d2c5fd4a3d147f038d9e" + integrity sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA== dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - fast-glob "^3.3.1" - get-tsconfig "^4.5.0" - is-core-module "^2.11.0" + "@nolyfill/is-core-module" "1.0.39" + debug "^4.3.5" + enhanced-resolve "^5.15.0" + eslint-module-utils "^2.8.1" + fast-glob "^3.3.2" + get-tsconfig "^4.7.5" + is-bun-module "^1.0.2" is-glob "^4.0.3" -eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" - integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== +eslint-module-utils@^2.8.0, eslint-module-utils@^2.8.1: + version "2.8.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz#2ecad69d71e1fa81f17f7f24d5d3e46b168de663" + integrity sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg== dependencies: debug "^3.2.7" @@ -7789,9 +7813,9 @@ eslint-plugin-import@^2.29.1: tsconfig-paths "^3.15.0" eslint-plugin-jsdoc@^48.0.4: - version "48.10.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.10.2.tgz#dd3fb8b8d4c6a0add3191b7f00b32a1e1ca7880d" - integrity sha512-xTkf/MmEeVrTbezc6kDqCJmK9RcseIKo8X4oyoDCMvV4LY8dqrQi8kmfRrv9n0gNBkCclevaOh2Lkmu6Fs8SLg== + version "48.11.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.11.0.tgz#7c8dae6ce0d814aff54b87fdb808f02635691ade" + integrity sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA== dependencies: "@es-joy/jsdoccomment" "~0.46.0" are-docs-informative "^0.0.2" @@ -8134,7 +8158,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@3, fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2: +fast-glob@3, fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -8341,9 +8365,9 @@ flow-enums-runtime@^0.0.6: integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== flow-parser@0.*: - version "0.242.1" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.242.1.tgz#d95977303d2cca0c1cb39394f5f5098d1ed5fc95" - integrity sha512-E3ml21Q1S5cMAyPbtYslkvI6yZO5oCS/S2EoteeFH8Kx9iKOv/YOJ+dGd/yMf+H3YKfhMKjnOpyNwrO7NdddWA== + version "0.244.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.244.0.tgz#dc75ef468959ca72ad5fd89a6a9b0503c141ea8a" + integrity sha512-Dkc88m5k8bx1VvHTO9HEJ7tvMcSb3Zvcv1PY4OHK7pHdtdY2aUjhmPy6vpjVJ2uUUOIybRlb91sXE8g4doChtA== flow-parser@^0.185.0: version "0.185.2" @@ -8368,9 +8392,9 @@ for-each@^0.3.3: is-callable "^1.1.3" foreground-child@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" - integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" @@ -8575,7 +8599,7 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" -get-tsconfig@^4.5.0, get-tsconfig@^4.7.0: +get-tsconfig@^4.7.0, get-tsconfig@^4.7.5: version "4.7.6" resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== @@ -8663,17 +8687,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@10.3.10, glob@^10.0.0@10.3.10, glob@^10.2.2: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - glob@7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" @@ -8698,6 +8711,18 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^10.2.2, glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -8884,15 +8909,15 @@ hermes-estree@0.12.0: resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.12.0.tgz#8a289f9aee854854422345e6995a48613bac2ca8" integrity sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw== -hermes-estree@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.19.1.tgz#d5924f5fac2bf0532547ae9f506d6db8f3c96392" - integrity sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g== +hermes-estree@0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.22.0.tgz#38559502b119f728901d2cfe2ef422f277802a1d" + integrity sha512-FLBt5X9OfA8BERUdc6aZS36Xz3rRuB0Y/mfocSADWEJfomc1xfene33GdyAmtTkKTBXTN/EgAy+rjTKkkZJHlw== -hermes-estree@0.20.1: - version "0.20.1" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.20.1.tgz#0b9a544cf883a779a8e1444b915fa365bef7f72d" - integrity sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg== +hermes-estree@0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.23.0.tgz#89c5419877b9d6bce4bb616821f496f5c5daddbc" + integrity sha512-Rkp0PNLGpORw4ktsttkVbpYJbrYKS3hAnkxu8D9nvQi6LvSbuPa+tYw/t2u3Gjc35lYd/k95YkjqyTcN4zspag== hermes-estree@0.8.0: version "0.8.0" @@ -8906,19 +8931,19 @@ hermes-parser@0.12.0: dependencies: hermes-estree "0.12.0" -hermes-parser@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.19.1.tgz#1044348097165b7c93dc198a80b04ed5130d6b1a" - integrity sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A== +hermes-parser@0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.22.0.tgz#fc8e0e6c7bfa8db85b04c9f9544a102c4fcb4040" + integrity sha512-gn5RfZiEXCsIWsFGsKiykekktUoh0PdFWYocXsUdZIyWSckT6UIyPcyyUIPSR3kpnELWeK3n3ztAse7Mat6PSA== dependencies: - hermes-estree "0.19.1" + hermes-estree "0.22.0" -hermes-parser@0.20.1: - version "0.20.1" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.20.1.tgz#ad10597b99f718b91e283f81cbe636c50c3cff92" - integrity sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA== +hermes-parser@0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.23.0.tgz#3541907b77ca9e94fd093e8ef0ff97ca5340dee8" + integrity sha512-xLwM4ylfHGwrm+2qXfO1JT/fnqEDGSnpS/9hQ4VLtqTexSviu2ZpBgz07U8jVtndq67qdb/ps0qvaWDZ3fkTyg== dependencies: - hermes-estree "0.20.1" + hermes-estree "0.23.0" hermes-parser@0.8.0: version "0.8.0" @@ -9032,9 +9057,9 @@ humanize-ms@^1.2.1: ms "^2.0.0" husky@^9.0.11: - version "9.1.4" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.4.tgz#926fd19c18d345add5eab0a42b2b6d9a80259b34" - integrity sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA== + version "9.1.5" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.5.tgz#2b6edede53ee1adbbd3a3da490628a23f5243b83" + integrity sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag== iconv-lite@0.6.3, iconv-lite@^0.6.2: version "0.6.3" @@ -9075,9 +9100,9 @@ ignore-walk@^6.0.0: minimatch "^9.0.0" ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.2, ignore@^5.2.0, ignore@^5.2.4: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== image-size@^0.6.0: version "0.6.3" @@ -9310,6 +9335,13 @@ is-builtin-module@^3.2.1: dependencies: builtin-modules "^3.3.0" +is-bun-module@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.1.0.tgz#a66b9830869437f6cdad440ba49ab6e4dc837269" + integrity sha512-4mTAVPlrXpaN3jtF0lsnPCMGnq4+qZjVIKq0HCpfcqf8OC1SM5oATCIAPM5V5FN05qp2NNnFndphmdZS9CV3hA== + dependencies: + semver "^7.6.3" + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -9322,10 +9354,10 @@ is-ci@3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" - integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== +is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: hasown "^2.0.2" @@ -9635,10 +9667,10 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -10480,7 +10512,7 @@ lilconfig@^2.1.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== -lilconfig@^3.1.1, lilconfig@~3.1.1: +lilconfig@^3.1.1, lilconfig@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== @@ -10504,22 +10536,22 @@ lines-and-columns@~2.0.3: integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== lint-staged@^15.2.2: - version "15.2.7" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.7.tgz#97867e29ed632820c0fb90be06cd9ed384025649" - integrity sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw== + version "15.2.9" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.9.tgz#bf70d40b6b192df6ad756fb89822211615e0f4da" + integrity sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ== dependencies: chalk "~5.3.0" commander "~12.1.0" - debug "~4.3.4" + debug "~4.3.6" execa "~8.0.1" - lilconfig "~3.1.1" - listr2 "~8.2.1" + lilconfig "~3.1.2" + listr2 "~8.2.4" micromatch "~4.0.7" pidtree "~0.6.0" string-argv "~0.3.2" - yaml "~2.4.2" + yaml "~2.5.0" -listr2@~8.2.1: +listr2@~8.2.4: version "8.2.4" resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.4.tgz#486b51cbdb41889108cb7e2c90eeb44519f5a77f" integrity sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g== @@ -10605,7 +10637,7 @@ lodash.ismatch@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== -lodash.memoize@4.x: +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== @@ -10711,7 +10743,7 @@ make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@1.x: +make-error@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -10894,13 +10926,14 @@ metro-babel-transformer@0.76.9: hermes-parser "0.12.0" nullthrows "^1.1.1" -metro-babel-transformer@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.9.tgz#7051ba377b7d2140abd23f4846bbbb1e81fea99b" - integrity sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ== +metro-babel-transformer@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.10.tgz#a8d204ae51872b1024715e2c545363d7a3acdca3" + integrity sha512-GXHueUzgzcazfzORDxDzWS9jVVRV6u+cR6TGvHOfGdfLzJCj7/D0PretLfyq+MwN20twHxLW+BUXkoaB8sCQBg== dependencies: "@babel/core" "^7.20.0" - hermes-parser "0.20.1" + flow-enums-runtime "^0.0.6" + hermes-parser "0.23.0" nullthrows "^1.1.1" metro-cache-key@0.73.10: @@ -10918,10 +10951,12 @@ metro-cache-key@0.76.9: resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.9.tgz#6f17f821d6f306fa9028b7e79445eb18387d03d9" integrity sha512-ugJuYBLngHVh1t2Jj+uP9pSCQl7enzVXkuh6+N3l0FETfqjgOaSHlcnIhMPn6yueGsjmkiIfxQU4fyFVXRtSTw== -metro-cache-key@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.9.tgz#a04cbb0a7828509bb10dde9789ef761c0c60bc3d" - integrity sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg== +metro-cache-key@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.10.tgz#7b2505c16ac333af857cedb20bde0373e1855944" + integrity sha512-57qBhO3zQfoU/hP4ZlLW5hVej2jVfBX6B4NcSfMj4LgDPL3YknWg80IJBxzQfjQY/m+fmMLmPy8aUMHzUp/guA== + dependencies: + flow-enums-runtime "^0.0.6" metro-cache@0.73.10: version "0.73.10" @@ -10947,13 +10982,14 @@ metro-cache@0.76.9: metro-core "0.76.9" rimraf "^3.0.2" -metro-cache@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.9.tgz#b914318a90dbcd51b4c27836184519c441ba5123" - integrity sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w== +metro-cache@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.10.tgz#3110af31ee8d77397965d6c3e7afadb778bdc8a3" + integrity sha512-8CBtDJwMguIE5RvV3PU1QtxUG8oSSX54mIuAbRZmcQ0MYiOl9JdrMd4JCBvIyhiZLoSStph425SMyCSnjtJsdA== dependencies: - metro-core "0.80.9" - rimraf "^3.0.2" + exponential-backoff "^3.1.1" + flow-enums-runtime "^0.0.6" + metro-core "0.80.10" metro-config@0.73.10: version "0.73.10" @@ -10993,18 +11029,19 @@ metro-config@0.76.9, metro-config@^0.76.9: metro-core "0.76.9" metro-runtime "0.76.9" -metro-config@0.80.9, metro-config@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.9.tgz#4eb6948b0ddc7c38d9d4ba8ddf22a67ca1c2bc06" - integrity sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg== +metro-config@0.80.10, metro-config@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.10.tgz#86c7a5e2665fb8b4c7ffd08976803c88fd6ce962" + integrity sha512-0GYAw0LkmGbmA81FepKQepL1KU/85Cyv7sAiWm6QWeV6AcVCpsKg6jGLqGHJ0LLPL60rWzA4TV1DQAlzdJAEtA== dependencies: connect "^3.6.5" cosmiconfig "^5.0.5" + flow-enums-runtime "^0.0.6" jest-validate "^29.6.3" - metro "0.80.9" - metro-cache "0.80.9" - metro-core "0.80.9" - metro-runtime "0.80.9" + metro "0.80.10" + metro-cache "0.80.10" + metro-core "0.80.10" + metro-runtime "0.80.10" metro-core@0.73.10: version "0.73.10" @@ -11030,13 +11067,14 @@ metro-core@0.76.9: lodash.throttle "^4.1.1" metro-resolver "0.76.9" -metro-core@0.80.9, metro-core@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.9.tgz#3af21d0b09d71ec9c0840f028bffb36bc3619727" - integrity sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg== +metro-core@0.80.10, metro-core@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.10.tgz#a3a7986ca8b635ada250149efdcd9b69bfefca85" + integrity sha512-nwBB6HbpGlNsZMuzxVqxqGIOsn5F3JKpsp8PziS7Z4mV8a/jA1d44mVOgYmDa2q5WlH5iJfRIIhdz24XRNDlLA== dependencies: + flow-enums-runtime "^0.0.6" lodash.throttle "^4.1.1" - metro-resolver "0.80.9" + metro-resolver "0.80.10" metro-file-map@0.73.10: version "0.73.10" @@ -11099,14 +11137,15 @@ metro-file-map@0.76.9: optionalDependencies: fsevents "^2.3.2" -metro-file-map@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.9.tgz#ed8783f6e35dfc005794344c2a9fcd6e914885aa" - integrity sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ== +metro-file-map@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.10.tgz#7eef9e5ef96a5aad93e4f9680fadb6c1e1ca34bc" + integrity sha512-ytsUq8coneaN7ZCVk1IogojcGhLIbzWyiI2dNmw2nnBgV/0A+M5WaTTgZ6dJEz3dzjObPryDnkqWPvIGLCPtiw== dependencies: anymatch "^3.0.3" debug "^2.2.0" fb-watchman "^2.0.0" + flow-enums-runtime "^0.0.6" graceful-fs "^4.2.4" invariant "^2.2.4" jest-worker "^29.6.3" @@ -11175,11 +11214,12 @@ metro-minify-terser@0.76.9: dependencies: terser "^5.15.0" -metro-minify-terser@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.9.tgz#2b7798cba2bd4bd69cc5ce05a45bf66291542f83" - integrity sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A== +metro-minify-terser@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.10.tgz#21e10cdd52b05cc95c195b8c22bb09afc1b45347" + integrity sha512-Xyv9pEYpOsAerrld7cSLIcnCCpv8ItwysOmTA+AKf1q4KyE9cxrH2O2SA0FzMCkPzwxzBWmXwHUr+A89BpEM6g== dependencies: + flow-enums-runtime "^0.0.6" terser "^5.15.0" metro-minify-uglify@0.73.10: @@ -11491,10 +11531,12 @@ metro-resolver@0.76.9: resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.9.tgz#79c244784b16ca56076bc1fc816d2ba74860e882" integrity sha512-s86ipNRas9vNR5lChzzSheF7HoaQEmzxBLzwFA6/2YcGmUCowcoyPAfs1yPh4cjMw9F1T4KlMLaiwniGE7HCyw== -metro-resolver@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.9.tgz#bae9120a0553e0cb59da6429e83a7e97465cc1a8" - integrity sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w== +metro-resolver@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.10.tgz#d335e1daed29124d7f96dabe48f9c94a56176bac" + integrity sha512-EYC5CL7f+bSzrqdk1bylKqFNGabfiI5PDctxoPx70jFt89Jz+ThcOscENog8Jb4LEQFG6GkOYlwmPpsi7kx3QA== + dependencies: + flow-enums-runtime "^0.0.6" metro-runtime@0.73.10: version "0.73.10" @@ -11528,12 +11570,13 @@ metro-runtime@0.76.9, metro-runtime@^0.76.9: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" -metro-runtime@0.80.9, metro-runtime@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.9.tgz#665312bd4e4d38fea921b3153d6ab47846eb4f08" - integrity sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg== +metro-runtime@0.80.10, metro-runtime@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.10.tgz#3fbca798586fa3771018e1d2bd0ef7ac445805ba" + integrity sha512-Xh0N589ZmSIgJYAM+oYwlzTXEHfASZac9TYPCNbvjNTn0EHKqpoJ/+Im5G3MZT4oZzYv4YnvzRtjqS5k0tK94A== dependencies: "@babel/runtime" "^7.0.0" + flow-enums-runtime "^0.0.6" metro-source-map@0.73.10: version "0.73.10" @@ -11591,17 +11634,18 @@ metro-source-map@0.76.9: source-map "^0.5.6" vlq "^1.0.0" -metro-source-map@0.80.9, metro-source-map@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.9.tgz#df8f673137548f37ab9f9dcfa771b354a452cfab" - integrity sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw== +metro-source-map@0.80.10, metro-source-map@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.10.tgz#95bc0c1edccd3e0b53af4126deda7fbbe104ef15" + integrity sha512-EyZswqJW8Uukv/HcQr6K19vkMXW1nzHAZPWJSEyJFKIbgp708QfRZ6vnZGmrtFxeJEaFdNup4bGnu8/mIOYlyA== dependencies: "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" + flow-enums-runtime "^0.0.6" invariant "^2.2.4" - metro-symbolicate "0.80.9" + metro-symbolicate "0.80.10" nullthrows "^1.1.1" - ob1 "0.80.9" + ob1 "0.80.10" source-map "^0.5.6" vlq "^1.0.0" @@ -11653,13 +11697,14 @@ metro-symbolicate@0.76.9: through2 "^2.0.1" vlq "^1.0.0" -metro-symbolicate@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.9.tgz#8d1d19d26ebb36b9d13dbd29814fdd71d6009db7" - integrity sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA== +metro-symbolicate@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.10.tgz#441121d97408c5a3da25c49c3ce8ae7b034eadf7" + integrity sha512-qAoVUoSxpfZ2DwZV7IdnQGXCSsf2cAUExUcZyuCqGlY5kaWBb0mx2BL/xbMFDJ4wBp3sVvSBPtK/rt4J7a0xBA== dependencies: + flow-enums-runtime "^0.0.6" invariant "^2.2.4" - metro-source-map "0.80.9" + metro-source-map "0.80.10" nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" @@ -11698,15 +11743,16 @@ metro-transform-plugins@0.76.9: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-plugins@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.9.tgz#473a2c0a9e48043210547abe61cdeedb77725422" - integrity sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg== +metro-transform-plugins@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.10.tgz#df8f44396154ad0bf151533b9bbcdfdf90fccebb" + integrity sha512-leAx9gtA+2MHLsCeWK6XTLBbv2fBnNFu/QiYhWzMq8HsOAP4u1xQAU0tSgPs8+1vYO34Plyn79xTLUtQCRSSUQ== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/template" "^7.0.0" "@babel/traverse" "^7.20.0" + flow-enums-runtime "^0.0.6" nullthrows "^1.1.1" metro-transform-worker@0.73.10: @@ -11765,22 +11811,23 @@ metro-transform-worker@0.76.9: metro-transform-plugins "0.76.9" nullthrows "^1.1.1" -metro-transform-worker@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.9.tgz#f1d8ef4f77228bb7e1d20d3c06934166e8ee3b28" - integrity sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ== +metro-transform-worker@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.10.tgz#aa083673653d5555b2eb34fec316759e57aa97ab" + integrity sha512-zNfNLD8Rz99U+JdOTqtF2o7iTjcDMMYdVS90z6+81Tzd2D0lDWVpls7R1hadS6xwM+ymgXFQTjM6V6wFoZaC0g== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" - metro "0.80.9" - metro-babel-transformer "0.80.9" - metro-cache "0.80.9" - metro-cache-key "0.80.9" - metro-minify-terser "0.80.9" - metro-source-map "0.80.9" - metro-transform-plugins "0.80.9" + flow-enums-runtime "^0.0.6" + metro "0.80.10" + metro-babel-transformer "0.80.10" + metro-cache "0.80.10" + metro-cache-key "0.80.10" + metro-minify-terser "0.80.10" + metro-source-map "0.80.10" + metro-transform-plugins "0.80.10" nullthrows "^1.1.1" metro@0.73.10: @@ -11947,10 +11994,10 @@ metro@0.76.9: ws "^7.5.1" yargs "^17.6.2" -metro@0.80.9, metro@^0.80.3: - version "0.80.9" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.9.tgz#de3c2011df62036520d51d040d2dde0d015aecb6" - integrity sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg== +metro@0.80.10, metro@^0.80.3: + version "0.80.10" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.10.tgz#522f1ad7435632f0d9eac67f732083cf45205fbc" + integrity sha512-FDPi0X7wpafmDREXe1lgg3WzETxtXh6Kpq8+IwsG35R2tMyp2kFIqDdshdohuvDt1J/qDARcEPq7V/jElTb1kA== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -11966,34 +12013,34 @@ metro@0.80.9, metro@^0.80.3: debug "^2.2.0" denodeify "^1.2.1" error-stack-parser "^2.0.6" + flow-enums-runtime "^0.0.6" graceful-fs "^4.2.4" - hermes-parser "0.20.1" + hermes-parser "0.23.0" image-size "^1.0.2" invariant "^2.2.4" jest-worker "^29.6.3" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.80.9" - metro-cache "0.80.9" - metro-cache-key "0.80.9" - metro-config "0.80.9" - metro-core "0.80.9" - metro-file-map "0.80.9" - metro-resolver "0.80.9" - metro-runtime "0.80.9" - metro-source-map "0.80.9" - metro-symbolicate "0.80.9" - metro-transform-plugins "0.80.9" - metro-transform-worker "0.80.9" + metro-babel-transformer "0.80.10" + metro-cache "0.80.10" + metro-cache-key "0.80.10" + metro-config "0.80.10" + metro-core "0.80.10" + metro-file-map "0.80.10" + metro-resolver "0.80.10" + metro-runtime "0.80.10" + metro-source-map "0.80.10" + metro-symbolicate "0.80.10" + metro-transform-plugins "0.80.10" + metro-transform-worker "0.80.10" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" - rimraf "^3.0.2" serialize-error "^2.1.0" source-map "^0.5.6" strip-ansi "^6.0.0" throat "^5.0.0" - ws "^7.5.1" + ws "^7.5.10" yargs "^17.6.2" micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@~4.0.7: @@ -12063,7 +12110,7 @@ minimatch@3.0.5: dependencies: brace-expansion "^1.1.7" -"minimatch@6 || 7 || 8 || 9", minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: +"minimatch@6 || 7 || 8 || 9", minimatch@^9.0.0, minimatch@^9.0.3, minimatch@^9.0.4: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -12181,7 +12228,7 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@6.0.2, minipass@^4.2.4, "minipass@^5.0.0 || ^6.0.2", "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": +minipass@6.0.2, minipass@^4.2.4, "minipass@^5.0.0 || ^6.0.2", minipass@^7.1.2: version "6.0.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== @@ -12317,11 +12364,11 @@ neo-async@^2.5.0, neo-async@^2.6.2: integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== "next@>= 13.5.0 < 15.0.0": - version "14.2.5" - resolved "https://registry.yarnpkg.com/next/-/next-14.2.5.tgz#afe4022bb0b752962e2205836587a289270efbea" - integrity sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA== + version "14.2.6" + resolved "https://registry.yarnpkg.com/next/-/next-14.2.6.tgz#2d294fe1ac806231cffd52ae2cf2e469b940536d" + integrity sha512-57Su7RqXs5CBKKKOagt8gPhMM3CpjgbeQhrtei2KLAA1vTNm7jfKS+uDARkSW8ZETUflDCBIsUKGSyQdRs4U4g== dependencies: - "@next/env" "14.2.5" + "@next/env" "14.2.6" "@swc/helpers" "0.5.5" busboy "1.6.0" caniuse-lite "^1.0.30001579" @@ -12329,15 +12376,15 @@ neo-async@^2.5.0, neo-async@^2.6.2: postcss "8.4.31" styled-jsx "5.1.1" optionalDependencies: - "@next/swc-darwin-arm64" "14.2.5" - "@next/swc-darwin-x64" "14.2.5" - "@next/swc-linux-arm64-gnu" "14.2.5" - "@next/swc-linux-arm64-musl" "14.2.5" - "@next/swc-linux-x64-gnu" "14.2.5" - "@next/swc-linux-x64-musl" "14.2.5" - "@next/swc-win32-arm64-msvc" "14.2.5" - "@next/swc-win32-ia32-msvc" "14.2.5" - "@next/swc-win32-x64-msvc" "14.2.5" + "@next/swc-darwin-arm64" "14.2.6" + "@next/swc-darwin-x64" "14.2.6" + "@next/swc-linux-arm64-gnu" "14.2.6" + "@next/swc-linux-arm64-musl" "14.2.6" + "@next/swc-linux-x64-gnu" "14.2.6" + "@next/swc-linux-x64-musl" "14.2.6" + "@next/swc-win32-arm64-msvc" "14.2.6" + "@next/swc-win32-ia32-msvc" "14.2.6" + "@next/swc-win32-x64-msvc" "14.2.6" nice-try@^1.0.4: version "1.0.5" @@ -12350,9 +12397,9 @@ nocache@^3.0.1: integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== node-abi@^3.3.0: - version "3.65.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3" - integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA== + version "3.67.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.67.0.tgz#1d159907f18d18e18809dbbb5df47ed2426a08df" + integrity sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw== dependencies: semver "^7.3.5" @@ -12729,10 +12776,12 @@ ob1@0.76.9: resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.9.tgz#a493e4b83a0fb39200de639804b5d06eed5599dc" integrity sha512-g0I/OLnSxf6OrN3QjSew3bTDJCdbZoWxnh8adh1z36alwCuGF1dgDeRA25bTYSakrG5WULSaWJPOdgnf1O/oQw== -ob1@0.80.9: - version "0.80.9" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.9.tgz#4ae3edd807536097674ff943509089f5d4e0649f" - integrity sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA== +ob1@0.80.10: + version "0.80.10" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.10.tgz#30dc7e4619cf591d46d7e16db5d4aed3e2674172" + integrity sha512-dJHyB0S6JkMorUSfSGcYGkkg9kmq3qDUu3ygZUKIfkr47XOPuG35r2Sk6tbwtHXbdKIXmcMvM8DF2CwgdyaHfQ== + dependencies: + flow-enums-runtime "^0.0.6" object-assign@^4.1.1: version "4.1.1" @@ -13011,6 +13060,11 @@ p-waterfall@2.1.1: dependencies: p-reduce "^2.0.0" +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + pacote@^15.0.0, pacote@^15.0.8, pacote@^15.2.0: version "15.2.0" resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3" @@ -13160,7 +13214,7 @@ path-platform@~0.11.15: resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== -path-scurry@1.10.0, path-scurry@^1.10.1, path-scurry@^1.6.1: +path-scurry@1.10.0, path-scurry@^1.11.1, path-scurry@^1.6.1: version "1.10.0" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.0.tgz#0ffbd4c1f7de9600f98a1405507d9f9acb438ab3" integrity sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g== @@ -13266,9 +13320,9 @@ possible-typed-array-names@^1.0.0: integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== postcss-selector-parser@^6.0.10: - version "6.1.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz#5be94b277b8955904476a2400260002ce6c56e38" - integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -13519,7 +13573,7 @@ react-devtools-core@^4.26.1, react-devtools-core@^4.27.2: shell-quote "^1.6.1" ws "^7" -react-devtools-core@^5.0.0: +react-devtools-core@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-5.3.1.tgz#d57f5b8f74f16e622bd6a7bc270161e4ba162666" integrity sha512-7FSb9meX0btdBQLwdFOwt6bGqvRPabmVMMslv8fgoSPqXyuGpgQe36kx8gR86XPw7aV1yVouTp6fyZ0EH+NfUw== @@ -13669,21 +13723,21 @@ react-native@0.72.3: yargs "^17.6.2" react-native@>=0.70: - version "0.74.4" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.74.4.tgz#932901ac635b2f135a5e4e210bc52f3f1153b8d0" - integrity sha512-Cox7h0UkFPY+79DsInn2BAhnmGiqKBHKoYHoPAPW8oQCPyna8jvS0hfUmHBWm/MOHSXi4NYPKd5plpD50B3B2Q== + version "0.75.2" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.75.2.tgz#12d7e3e63c8ab93dcab7a6d4c4c9f4ad199141d4" + integrity sha512-pP+Yswd/EurzAlKizytRrid9LJaPJzuNldc+o5t01md2VLHym8V7FWH2z9omFKtFTer8ERg0fAhG1fpd0Qq6bQ== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "13.6.9" - "@react-native-community/cli-platform-android" "13.6.9" - "@react-native-community/cli-platform-ios" "13.6.9" - "@react-native/assets-registry" "0.74.86" - "@react-native/codegen" "0.74.86" - "@react-native/community-cli-plugin" "0.74.86" - "@react-native/gradle-plugin" "0.74.86" - "@react-native/js-polyfills" "0.74.86" - "@react-native/normalize-colors" "0.74.86" - "@react-native/virtualized-lists" "0.74.86" + "@react-native-community/cli" "14.0.0" + "@react-native-community/cli-platform-android" "14.0.0" + "@react-native-community/cli-platform-ios" "14.0.0" + "@react-native/assets-registry" "0.75.2" + "@react-native/codegen" "0.75.2" + "@react-native/community-cli-plugin" "0.75.2" + "@react-native/gradle-plugin" "0.75.2" + "@react-native/js-polyfills" "0.75.2" + "@react-native/normalize-colors" "0.75.2" + "@react-native/virtualized-lists" "0.75.2" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" @@ -13691,6 +13745,7 @@ react-native@>=0.70: chalk "^4.0.0" event-target-shim "^5.0.1" flow-enums-runtime "^0.0.6" + glob "^7.1.1" invariant "^2.2.4" jest-environment-node "^29.6.3" jsc-android "^250231.0.0" @@ -13701,11 +13756,11 @@ react-native@>=0.70: nullthrows "^1.1.1" pretty-format "^26.5.2" promise "^8.3.0" - react-devtools-core "^5.0.0" + react-devtools-core "^5.3.1" react-refresh "^0.14.0" - react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" scheduler "0.24.0-canary-efb381bbf-20230505" + semver "^7.1.3" stacktrace-parser "^0.1.10" whatwg-fetch "^3.0.0" ws "^6.2.2" @@ -14083,28 +14138,28 @@ rimraf@~2.6.2: glob "^7.1.3" rollup@^4.9.6: - version "4.19.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.19.2.tgz#4985cd2028965157e8d674a70e49f33aca9038eb" - integrity sha512-6/jgnN1svF9PjNYJ4ya3l+cqutg49vOZ4rVgsDKxdl+5gpGPnByFXWGyfH9YGx9i3nfBwSu1Iyu6vGwFFA0BdQ== + version "4.21.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.1.tgz#65b9b9e9de9a64604fab083fb127f3e9eac2935d" + integrity sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.19.2" - "@rollup/rollup-android-arm64" "4.19.2" - "@rollup/rollup-darwin-arm64" "4.19.2" - "@rollup/rollup-darwin-x64" "4.19.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.19.2" - "@rollup/rollup-linux-arm-musleabihf" "4.19.2" - "@rollup/rollup-linux-arm64-gnu" "4.19.2" - "@rollup/rollup-linux-arm64-musl" "4.19.2" - "@rollup/rollup-linux-powerpc64le-gnu" "4.19.2" - "@rollup/rollup-linux-riscv64-gnu" "4.19.2" - "@rollup/rollup-linux-s390x-gnu" "4.19.2" - "@rollup/rollup-linux-x64-gnu" "4.19.2" - "@rollup/rollup-linux-x64-musl" "4.19.2" - "@rollup/rollup-win32-arm64-msvc" "4.19.2" - "@rollup/rollup-win32-ia32-msvc" "4.19.2" - "@rollup/rollup-win32-x64-msvc" "4.19.2" + "@rollup/rollup-android-arm-eabi" "4.21.1" + "@rollup/rollup-android-arm64" "4.21.1" + "@rollup/rollup-darwin-arm64" "4.21.1" + "@rollup/rollup-darwin-x64" "4.21.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.21.1" + "@rollup/rollup-linux-arm-musleabihf" "4.21.1" + "@rollup/rollup-linux-arm64-gnu" "4.21.1" + "@rollup/rollup-linux-arm64-musl" "4.21.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.21.1" + "@rollup/rollup-linux-riscv64-gnu" "4.21.1" + "@rollup/rollup-linux-s390x-gnu" "4.21.1" + "@rollup/rollup-linux-x64-gnu" "4.21.1" + "@rollup/rollup-linux-x64-musl" "4.21.1" + "@rollup/rollup-win32-arm64-msvc" "4.21.1" + "@rollup/rollup-win32-ia32-msvc" "4.21.1" + "@rollup/rollup-win32-x64-msvc" "4.21.1" fsevents "~2.3.2" run-async@^2.4.0: @@ -14261,7 +14316,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: +semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -14614,9 +14669,9 @@ spdx-expression-parse@^4.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.18" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" - integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== + version "3.0.20" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" + integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== split2@^3.2.2: version "3.2.2" @@ -14727,16 +14782,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -14814,7 +14860,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -14828,13 +14874,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -15035,9 +15074,9 @@ terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.6: terser "^5.26.0" terser@^5.15.0, terser@^5.26.0: - version "5.31.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.3.tgz#b24b7beb46062f4653f049eea4f0cd165d0f0c38" - integrity sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA== + version "5.31.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" + integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -15170,19 +15209,19 @@ ts-api-utils@^1.0.1: integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== ts-jest@^29.1.1: - version "29.2.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.4.tgz#38ccf487407d7a63054a72689f6f99b075e296e5" - integrity sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw== + version "29.2.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63" + integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== dependencies: - bs-logger "0.x" + bs-logger "^0.2.6" ejs "^3.1.10" - fast-json-stable-stringify "2.x" + fast-json-stable-stringify "^2.1.0" jest-util "^29.0.0" json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "^7.5.3" - yargs-parser "^21.0.1" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.6.3" + yargs-parser "^21.1.1" ts-loader@^9.4.3: version "9.5.1" @@ -15215,9 +15254,9 @@ tsconfig-paths@^4.1.2: strip-bom "^3.0.0" "tslib@1 || 2", tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== tslib@^1.11.1, tslib@^1.8.1: version "1.14.1" @@ -15447,9 +15486,9 @@ uglify-es@^3.1.9: source-map "~0.6.1" uglify-js@^3.1.4: - version "3.19.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.1.tgz#2d5df6a0872c43da43187968308d7741d44b8056" - integrity sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A== + version "3.19.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.2.tgz#319ae26a5fbd18d03c7dc02496cfa1d6f1cd4307" + integrity sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ== ulid@^2.3.0: version "2.3.0" @@ -15471,10 +15510,10 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici-types@~6.11.1: - version "6.11.1" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.11.1.tgz#432ea6e8efd54a48569705a699e62d8f4981b197" - integrity sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ== +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" @@ -15732,9 +15771,9 @@ warning@^4.0.2, warning@^4.0.3: loose-envify "^1.0.0" watchpack@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" - integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -15823,11 +15862,10 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5, webpack@^5.75.0, webpack@^5.88.0: - version "5.93.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.93.0.tgz#2e89ec7035579bdfba9760d26c63ac5c3462a5e5" - integrity sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA== + version "5.94.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== dependencies: - "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.12.1" "@webassemblyjs/wasm-edit" "^1.12.1" @@ -15836,7 +15874,7 @@ webpack@^5, webpack@^5.75.0, webpack@^5.88.0: acorn-import-attributes "^1.9.5" browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -15973,7 +16011,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -16000,15 +16038,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -16078,14 +16107,14 @@ write-pkg@4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@^6.2.2: +ws@^6.2.2, ws@^6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee" integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== dependencies: async-limiter "~1.0.0" -ws@^7, ws@^7.3.1, ws@^7.5.1: +ws@^7, ws@^7.3.1, ws@^7.5.1, ws@^7.5.10: version "7.5.10" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== @@ -16161,22 +16190,17 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.1: +yaml@^2.2.1, yaml@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== -yaml@~2.4.2: - version "2.4.5" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" - integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== - yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1: +yargs-parser@21.1.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== From ced891c2e4f6b0f1fdeaf44ab80cae9d585b6d15 Mon Sep 17 00:00:00 2001 From: Ivan Artemiev <29709626+iartemiev@users.noreply.github.com> Date: Tue, 27 Aug 2024 16:02:01 -0400 Subject: [PATCH 16/50] feat(api-graphql): pass authToken via subprotocol (#13727) --- .../AWSAppSyncRealTimeProvider.test.ts | 88 ++++++++++++- .../api-graphql/__tests__/GraphQLAPI.test.ts | 2 +- .../AWSAppSyncRealTimeProvider/index.ts | 123 ++++++++++++------ packages/aws-amplify/package.json | 2 +- .../utils/convert/base64Encoder.test.ts | 8 ++ .../src/utils/convert/base64/base64Encoder.ts | 33 ++++- packages/core/src/utils/convert/types.ts | 1 + 7 files changed, 204 insertions(+), 53 deletions(-) diff --git a/packages/api-graphql/__tests__/AWSAppSyncRealTimeProvider.test.ts b/packages/api-graphql/__tests__/AWSAppSyncRealTimeProvider.test.ts index 29563594a30..d8456f5b373 100644 --- a/packages/api-graphql/__tests__/AWSAppSyncRealTimeProvider.test.ts +++ b/packages/api-graphql/__tests__/AWSAppSyncRealTimeProvider.test.ts @@ -245,8 +245,8 @@ describe('AWSAppSyncRealTimeProvider', () => { expect(newSocketSpy).toHaveBeenNthCalledWith( 1, - 'ws://localhost:8080/realtime?header=&payload=e30=', - 'graphql-ws', + 'ws://localhost:8080/realtime', + ['graphql-ws', 'header-'], ); }); @@ -271,8 +271,8 @@ describe('AWSAppSyncRealTimeProvider', () => { expect(newSocketSpy).toHaveBeenNthCalledWith( 1, - 'wss://localhost:8080/realtime?header=&payload=e30=', - 'graphql-ws', + 'wss://localhost:8080/realtime', + ['graphql-ws', 'header-'], ); }); @@ -298,8 +298,84 @@ describe('AWSAppSyncRealTimeProvider', () => { expect(newSocketSpy).toHaveBeenNthCalledWith( 1, - 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql?header=&payload=e30=', - 'graphql-ws', + 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql', + ['graphql-ws', 'header-'], + ); + }); + + test('subscription generates expected auth token', async () => { + expect.assertions(1); + + const newSocketSpy = jest + .spyOn(provider, 'getNewWebSocket') + .mockImplementation(() => { + fakeWebSocketInterface.newWebSocket(); + return fakeWebSocketInterface.webSocket; + }); + + provider + .subscribe({ + appSyncGraphqlEndpoint: + 'https://testaccounturl123456789123.appsync-api.us-east-1.amazonaws.com/graphql', + // using custom auth instead of apiKey, because the latter inserts a timestamp header => expected value changes + authenticationType: 'lambda', + additionalHeaders: { + Authorization: 'my-custom-auth-token', + }, + }) + .subscribe({ error: () => {} }); + + // Wait for the socket to be initialize + await fakeWebSocketInterface.readyForUse; + + /* + Regular base64 encoding of auth header {"Authorization":"my-custom-auth-token","host":"testaccounturl123456789123.appsync-api.us-east-1.amazonaws.com"} + Is: `eyJBdXRob3JpemF0aW9uIjoibXktY3VzdG9tLWF1dGgtdG9rZW4iLCJob3N0IjoidGVzdGFjY291bnR1cmwxMjM0NTY3ODkxMjMuYXBwc3luYy1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20ifQ==` + (note `==` at the end of the string) + base64url encoding is expected to drop padding chars `=` + */ + + expect(newSocketSpy).toHaveBeenNthCalledWith( + 1, + 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql', + [ + 'graphql-ws', + 'header-eyJBdXRob3JpemF0aW9uIjoibXktY3VzdG9tLWF1dGgtdG9rZW4iLCJob3N0IjoidGVzdGFjY291bnR1cmwxMjM0NTY3ODkxMjMuYXBwc3luYy1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20ifQ', + ], + ); + }); + + test('subscription generates expected auth token - custom domain', async () => { + expect.assertions(1); + + const newSocketSpy = jest + .spyOn(provider, 'getNewWebSocket') + .mockImplementation(() => { + fakeWebSocketInterface.newWebSocket(); + return fakeWebSocketInterface.webSocket; + }); + + provider + .subscribe({ + appSyncGraphqlEndpoint: 'https://unit-test.testurl.com', + // using custom auth instead of apiKey, because the latter inserts a timestamp header => expected value changes + authenticationType: 'lambda', + additionalHeaders: { + Authorization: 'my-custom-auth-token', + }, + }) + .subscribe({ error: () => {} }); + + // Wait for the socket to be initialize + await fakeWebSocketInterface.readyForUse; + + expect(newSocketSpy).toHaveBeenNthCalledWith( + 1, + 'wss://unit-test.testurl.com/realtime', + [ + 'graphql-ws', + 'header-eyJBdXRob3JpemF0aW9uIjoibXktY3VzdG9tLWF1dGgtdG9rZW4iLCJob3N0IjoidW5pdC10ZXN0LnRlc3R1cmwuY29tIn0', + ], ); }); diff --git a/packages/api-graphql/__tests__/GraphQLAPI.test.ts b/packages/api-graphql/__tests__/GraphQLAPI.test.ts index ec553952499..dd88a7e056b 100644 --- a/packages/api-graphql/__tests__/GraphQLAPI.test.ts +++ b/packages/api-graphql/__tests__/GraphQLAPI.test.ts @@ -1594,7 +1594,7 @@ describe('API test', () => { `; const resolvedUrl = - 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql?header=eyJBdXRob3JpemF0aW9uIjoiYWJjMTIzNDUiLCJob3N0IjoidGVzdGFjY291bnR1cmwxMjM0NTY3ODkxMjMuYXBwc3luYy1hcGkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20ifQ==&payload=e30=&x-amz-user-agent=aws-amplify%2F6.4.0%20api%2F1%20framework%2F2&ex-machina=is%20a%20good%20movie'; + 'wss://testaccounturl123456789123.appsync-realtime-api.us-east-1.amazonaws.com/graphql?x-amz-user-agent=aws-amplify%2F6.4.0+api%2F1+framework%2F2&ex-machina=is+a+good+movie'; ( client.graphql( diff --git a/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts b/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts index e25be1005d3..61a1f6149bc 100644 --- a/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts +++ b/packages/api-graphql/src/Providers/AWSAppSyncRealTimeProvider/index.ts @@ -11,6 +11,7 @@ import { import { signRequest } from '@aws-amplify/core/internals/aws-client-utils'; import { AmplifyUrl, + AmplifyUrlSearchParams, CustomUserAgentDetails, DocumentType, GraphQLAuthMode, @@ -181,7 +182,7 @@ export class AWSAppSyncRealTimeProvider { this.reconnectionMonitor.close(); } - getNewWebSocket(url: string, protocol: string) { + getNewWebSocket(url: string, protocol: string[]) { return new WebSocket(url, protocol); } @@ -734,20 +735,63 @@ export class AWSAppSyncRealTimeProvider { /** * * @param headers - http headers - * @returns query string of uri-encoded parameters derived from custom headers + * @returns uri-encoded query parameters derived from custom headers */ - private _queryStringFromCustomHeaders( + private _queryParamsFromCustomHeaders( headers?: AWSAppSyncRealTimeProviderOptions['additionalCustomHeaders'], - ): string { + ): URLSearchParams { const nonAuthHeaders = this._extractNonAuthHeaders(headers); - const queryParams: string[] = Object.entries(nonAuthHeaders).map( - ([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`, + const params = new AmplifyUrlSearchParams(); + + Object.entries(nonAuthHeaders).forEach(([k, v]) => { + params.append(k, v); + }); + + return params; + } + + /** + * Normalizes AppSync realtime endpoint URL + * + * @param appSyncGraphqlEndpoint - AppSync endpointUri from config + * @param urlParams - URLSearchParams + * @returns fully resolved string realtime endpoint URL + */ + private _realtimeUrlWithQueryString( + appSyncGraphqlEndpoint: string | undefined, + urlParams: URLSearchParams, + ): string { + const protocol = 'wss://'; + + let realtimeEndpoint = appSyncGraphqlEndpoint ?? ''; + + if (this.isCustomDomain(realtimeEndpoint)) { + realtimeEndpoint = realtimeEndpoint.concat(customDomainPath); + } else { + realtimeEndpoint = realtimeEndpoint + .replace('appsync-api', 'appsync-realtime-api') + .replace('gogi-beta', 'grt-beta'); + } + + realtimeEndpoint = realtimeEndpoint + .replace('https://', protocol) + .replace('http://', protocol); + + const realtimeEndpointUrl = new AmplifyUrl(realtimeEndpoint); + + // preserves any query params a customer might manually set in the configuration + const existingParams = new AmplifyUrlSearchParams( + realtimeEndpointUrl.search, ); - const queryString = queryParams.join('&'); + for (const [k, v] of urlParams.entries()) { + existingParams.append(k, v); + } - return queryString; + realtimeEndpointUrl.search = existingParams.toString(); + + return realtimeEndpointUrl.toString(); } private _initializeWebSocketConnection({ @@ -783,38 +827,27 @@ export class AWSAppSyncRealTimeProvider { }); const headerString = authHeader ? JSON.stringify(authHeader) : ''; - const headerQs = base64Encoder.convert(headerString); + // base64url-encoded string + const encodedHeader = base64Encoder.convert(headerString, { + urlSafe: true, + skipPadding: true, + }); - const payloadQs = base64Encoder.convert(payloadString); + const authTokenSubprotocol = `header-${encodedHeader}`; - const queryString = this._queryStringFromCustomHeaders( + const queryParams = this._queryParamsFromCustomHeaders( additionalCustomHeaders, ); - let discoverableEndpoint = appSyncGraphqlEndpoint ?? ''; - - if (this.isCustomDomain(discoverableEndpoint)) { - discoverableEndpoint = - discoverableEndpoint.concat(customDomainPath); - } else { - discoverableEndpoint = discoverableEndpoint - .replace('appsync-api', 'appsync-realtime-api') - .replace('gogi-beta', 'grt-beta'); - } - - // Creating websocket url with required query strings - const protocol = 'wss://'; - discoverableEndpoint = discoverableEndpoint - .replace('https://', protocol) - .replace('http://', protocol); - - let awsRealTimeUrl = `${discoverableEndpoint}?header=${headerQs}&payload=${payloadQs}`; - - if (queryString !== '') { - awsRealTimeUrl += `&${queryString}`; - } + const awsRealTimeUrl = this._realtimeUrlWithQueryString( + appSyncGraphqlEndpoint, + queryParams, + ); - await this._initializeRetryableHandshake(awsRealTimeUrl); + await this._initializeRetryableHandshake( + awsRealTimeUrl, + authTokenSubprotocol, + ); this.promiseArray.forEach(({ res }) => { logger.debug('Notifying connection successful'); @@ -841,23 +874,37 @@ export class AWSAppSyncRealTimeProvider { }); } - private async _initializeRetryableHandshake(awsRealTimeUrl: string) { + private async _initializeRetryableHandshake( + awsRealTimeUrl: string, + subprotocol: string, + ) { logger.debug(`Initializaling retryable Handshake`); await jitteredExponentialRetry( this._initializeHandshake.bind(this), - [awsRealTimeUrl], + [awsRealTimeUrl, subprotocol], MAX_DELAY_MS, ); } - private async _initializeHandshake(awsRealTimeUrl: string) { + /** + * + * @param subprotocol - + */ + private async _initializeHandshake( + awsRealTimeUrl: string, + subprotocol: string, + ) { logger.debug(`Initializing handshake ${awsRealTimeUrl}`); // Because connecting the socket is async, is waiting until connection is open // Step 1: connect websocket try { await (() => { return new Promise((resolve, reject) => { - const newSocket = this.getNewWebSocket(awsRealTimeUrl, 'graphql-ws'); + const newSocket = this.getNewWebSocket(awsRealTimeUrl, [ + 'graphql-ws', + subprotocol, + ]); + newSocket.onerror = () => { logger.debug(`WebSocket connection error`); }; diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index d37a955da80..c060dbbad92 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -335,7 +335,7 @@ "name": "[API] generateClient (AppSync)", "path": "./dist/esm/api/index.mjs", "import": "{ generateClient }", - "limit": "41 kB" + "limit": "41.5 kB" }, { "name": "[API] REST API handlers", diff --git a/packages/core/__tests__/utils/convert/base64Encoder.test.ts b/packages/core/__tests__/utils/convert/base64Encoder.test.ts index 14ffb0064b0..c1d1aeb203a 100644 --- a/packages/core/__tests__/utils/convert/base64Encoder.test.ts +++ b/packages/core/__tests__/utils/convert/base64Encoder.test.ts @@ -43,4 +43,12 @@ describe('base64Encoder (non-native)', () => { 'test-test_test', ); }); + + it('makes the result a base64url string with no padding chars', () => { + const mockResult = 'test+test/test=='; // = is the base64 padding char + mockBtoa.mockReturnValue(mockResult); + expect( + base64Encoder.convert('test', { urlSafe: true, skipPadding: true }), + ).toBe('test-test_test'); + }); }); diff --git a/packages/core/src/utils/convert/base64/base64Encoder.ts b/packages/core/src/utils/convert/base64/base64Encoder.ts index 05f01ab1a95..43184997819 100644 --- a/packages/core/src/utils/convert/base64/base64Encoder.ts +++ b/packages/core/src/utils/convert/base64/base64Encoder.ts @@ -2,18 +2,37 @@ // SPDX-License-Identifier: Apache-2.0 import { getBtoa } from '../../globalHelpers'; -import { Base64Encoder } from '../types'; +import type { Base64Encoder, Base64EncoderConvertOptions } from '../types'; import { bytesToString } from './bytesToString'; export const base64Encoder: Base64Encoder = { - convert(input, { urlSafe } = { urlSafe: false }) { + /** + * Convert input to base64-encoded string + * @param input - string to convert to base64 + * @param options - encoding options that can optionally produce a base64url string + * @returns base64-encoded string + */ + convert( + input, + options: Base64EncoderConvertOptions = { + urlSafe: false, + skipPadding: false, + }, + ) { const inputStr = typeof input === 'string' ? input : bytesToString(input); - const encodedStr = getBtoa()(inputStr); + let encodedStr = getBtoa()(inputStr); - // see details about the char replacing at https://datatracker.ietf.org/doc/html/rfc4648#section-5 - return urlSafe - ? encodedStr.replace(/\+/g, '-').replace(/\//g, '_') - : encodedStr; + // urlSafe char replacement and skipPadding options conform to the base64url spec + // https://datatracker.ietf.org/doc/html/rfc4648#section-5 + if (options.urlSafe) { + encodedStr = encodedStr.replace(/\+/g, '-').replace(/\//g, '_'); + } + + if (options.skipPadding) { + encodedStr = encodedStr.replace(/=/g, ''); + } + + return encodedStr; }, }; diff --git a/packages/core/src/utils/convert/types.ts b/packages/core/src/utils/convert/types.ts index ed53d507b81..7a1c4d4d86d 100644 --- a/packages/core/src/utils/convert/types.ts +++ b/packages/core/src/utils/convert/types.ts @@ -3,6 +3,7 @@ export interface Base64EncoderConvertOptions { urlSafe: boolean; + skipPadding?: boolean; } export interface Base64Encoder { From 7fc23a708e3fbddccfbd39b1fa31da17d5b10a5b Mon Sep 17 00:00:00 2001 From: AllanZhengYP Date: Tue, 27 Aug 2024 13:44:43 -0700 Subject: [PATCH 17/50] chore(storage-browser): pin crc-32 dep at 1.2.2 (#13752) * chore(storage-browser): pin crc-32 dep at 1.2.2 * chore: update lock file --- packages/storage/package.json | 2 +- yarn.lock | 33 ++++----------------------------- 2 files changed, 5 insertions(+), 30 deletions(-) diff --git a/packages/storage/package.json b/packages/storage/package.json index 560be8bf799..275d7315f4c 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -72,7 +72,7 @@ "@aws-sdk/types": "3.398.0", "@smithy/md5-js": "2.0.7", "buffer": "4.9.2", - "crc-32": "^1.2.2", + "crc-32": "1.2.2", "fast-xml-parser": "^4.4.1", "tslib": "^2.5.0" }, diff --git a/yarn.lock b/yarn.lock index 0fb5ad99009..4e7468f5942 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7037,7 +7037,7 @@ cosmiconfig@^8.2.0: parse-json "^5.2.0" path-type "^4.0.0" -crc-32@^1.2.2: +crc-32@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== @@ -14739,16 +14739,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -14826,7 +14817,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -14840,13 +14831,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -15985,7 +15969,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -16012,15 +15996,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 1a5366d113c9af4ce994168653df3aadb142c581 Mon Sep 17 00:00:00 2001 From: Jim Blanchard Date: Thu, 29 Aug 2024 15:33:53 -0500 Subject: [PATCH 18/50] feat: Label automation workflows & old workflow cleanup (#13734) * feat: Label automation workflows & old workflow cleanup. * Fix workflow syntax error. --- .github/ISSUE_TEMPLATE/1.bug_report.yaml | 1 - .github/ISSUE_TEMPLATE/2.feature_request.yaml | 1 - .github/ISSUE_TEMPLATE/3.usage-question.md | 23 ---------- .github/ISSUE_TEMPLATE/4.rfc.md | 46 ------------------- .github/workflows/issue-closed.yml | 22 +++++++++ .github/workflows/issue-comment.yml | 31 +++++++++++++ .github/workflows/issue-labeled.yml | 21 +++++++++ .github/workflows/issue-opened.yml | 25 ++++++++++ .github/workflows/issue-pending-response.yml | 15 ------ 9 files changed, 99 insertions(+), 86 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/3.usage-question.md delete mode 100644 .github/ISSUE_TEMPLATE/4.rfc.md create mode 100644 .github/workflows/issue-closed.yml create mode 100644 .github/workflows/issue-comment.yml create mode 100644 .github/workflows/issue-labeled.yml create mode 100644 .github/workflows/issue-opened.yml delete mode 100644 .github/workflows/issue-pending-response.yml diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yaml b/.github/ISSUE_TEMPLATE/1.bug_report.yaml index ed10dbad86d..9d73aee3760 100644 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/1.bug_report.yaml @@ -1,6 +1,5 @@ name: Bug report description: Create a report to help us improve Amplify JS -labels: pending-triage body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/2.feature_request.yaml b/.github/ISSUE_TEMPLATE/2.feature_request.yaml index 13eb5e1522d..c50290cbd22 100644 --- a/.github/ISSUE_TEMPLATE/2.feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/2.feature_request.yaml @@ -1,6 +1,5 @@ name: Feature request description: Suggest an idea for Amplify JS -labels: pending-triage body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/3.usage-question.md b/.github/ISSUE_TEMPLATE/3.usage-question.md deleted file mode 100644 index 82d079fe7be..00000000000 --- a/.github/ISSUE_TEMPLATE/3.usage-question.md +++ /dev/null @@ -1,23 +0,0 @@ - - ---- - -name: Usage Question -about: Ask a question about AWS Amplify usage -title: '' -labels: question,pending-triage -assignees: '' - ---- - -** Which Category is your question related to? ** -E.g. Auth, Predictions, Storage, etc. -** What AWS Services are you utilizing? ** -E.g. Cognito, AWS AppSync, etc. -** Provide additional details e.g. code snippets ** -E.g. Sample code, versions of Amplify you are using diff --git a/.github/ISSUE_TEMPLATE/4.rfc.md b/.github/ISSUE_TEMPLATE/4.rfc.md deleted file mode 100644 index 464d9aee63f..00000000000 --- a/.github/ISSUE_TEMPLATE/4.rfc.md +++ /dev/null @@ -1,46 +0,0 @@ ---- - -name: Request For Comments (RFC) -about: Gather community feedback regarding a proposed change to the library -title: 'RFC: PROPOSAL HEADLINE' -labels: feature-request -assignees: '' ----_This issue is a Request For Comments (RFC). It is intended to elicit community feedback regarding a proposed change to the library. Please feel free to post comments or questions here._ - -## Summary - -In one or two sentences, why should this change exist? - -## Motivation - -Why is this RFC needed? What will happen if accepted? And what would happen if it _isn't_ accepted? - -## Basic Example - -If the RFC involves a new or changed API, include a basic code example. (Omit if not applicable) - -## Detailed Design - -Provide enough detail on _how_ this should be implemented such that someone other than yourself could build it. -Include examples of how the implementation is used - -## Drawbacks - -- Is this a breaking change? Days/Weeks/Months to implement? Will it require extensive documentation & examples? - -## Adoption Strategy - -- What supporting efforts will be needed (e.g. documentation, tests, tutorials, public outreach, etc.)? - -## Related Issues - -Add GitHub issue numbers/URLs that informed or would be impacted by this proposal. - -- #1234 -- https://github.com/aws-amplify/amplify-js/issues/1234 - -## References - -List articles, resources, prior art, and inspiration for this proposal. - -- http://stackoverflow.com/ diff --git a/.github/workflows/issue-closed.yml b/.github/workflows/issue-closed.yml new file mode 100644 index 00000000000..fed460e0181 --- /dev/null +++ b/.github/workflows/issue-closed.yml @@ -0,0 +1,22 @@ +name: Issue Closed + +on: + issues: + types: [closed] + +permissions: + issues: write + +jobs: + cleanup-labels: + runs-on: ubuntu-latest + if: ${{ (contains(github.event.issue.labels.*.name, 'pending-community-response') || contains(github.event.issue.labels.*.name, 'pending-maintainer-response') || contains(github.event.issue.labels.*.name, 'pending-triage')) }} + steps: + - name: Remove unnecessary labels after closing + shell: bash + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + REPOSITORY_NAME: ${{ github.event.repository.full_name }} + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --remove-label "pending-community-response" --remove-label "pending-maintainer-response" --remove-label "pending-triage" diff --git a/.github/workflows/issue-comment.yml b/.github/workflows/issue-comment.yml new file mode 100644 index 00000000000..cfde2f7d331 --- /dev/null +++ b/.github/workflows/issue-comment.yml @@ -0,0 +1,31 @@ +name: Issue Comment + +on: + issue_comment: + types: [created] + +jobs: + adjust-labels: + runs-on: ubuntu-latest + permissions: + issues: write + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + REPOSITORY_NAME: ${{ github.event.repository.full_name }} + steps: + - name: Remove pending-community-response when new comment received + if: ${{ !contains(fromJSON('["MEMBER", "OWNER"]'), github.event.comment.author_association) && !github.event.issue.pull_request }} + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --remove-label "pending-community-response" + - name: Add pending-maintainer-response when new community comment received + if: ${{ !contains(fromJSON('["MEMBER", "OWNER"]'), github.event.comment.author_association) }} + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --add-label "pending-maintainer-response" + - name: Remove pending-maintainer-response when new owner/member comment received + if: ${{ contains(fromJSON('["MEMBER", "OWNER"]'), github.event.comment.author_association) }} + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --remove-label "pending-maintainer-response" diff --git a/.github/workflows/issue-labeled.yml b/.github/workflows/issue-labeled.yml new file mode 100644 index 00000000000..022fc996a3a --- /dev/null +++ b/.github/workflows/issue-labeled.yml @@ -0,0 +1,21 @@ +name: Issue Labeled + +on: + issues: + types: [labeled] + +jobs: + remove-pending-triage-label: + runs-on: ubuntu-latest + if: ${{ contains(fromJSON('["question", "bug", "feature-request"]'), github.event.label.name) }} + permissions: + issues: write + steps: + - name: Remove the pending-triage label + shell: bash + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + REPOSITORY_NAME: ${{ github.event.repository.full_name }} + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --remove-label "pending-triage" diff --git a/.github/workflows/issue-opened.yml b/.github/workflows/issue-opened.yml new file mode 100644 index 00000000000..6ac0a9ce124 --- /dev/null +++ b/.github/workflows/issue-opened.yml @@ -0,0 +1,25 @@ +name: Issue Opened + +on: + issues: + types: [opened] + +jobs: + add-issue-opened-labels: + runs-on: ubuntu-latest + permissions: + issues: write + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + REPOSITORY_NAME: ${{ github.event.repository.full_name }} + steps: + - name: Add the pending-triage label + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --add-label "pending-triage" + - name: Add the pending-maintainer-response label + if: ${{ !contains(fromJSON('["MEMBER", "OWNER"]'), github.event.issue.author_association) }} + shell: bash + run: | + gh issue edit $ISSUE_NUMBER --repo $REPOSITORY_NAME --add-label "pending-maintainer-response" diff --git a/.github/workflows/issue-pending-response.yml b/.github/workflows/issue-pending-response.yml deleted file mode 100644 index 8dd8ac9584d..00000000000 --- a/.github/workflows/issue-pending-response.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: issue-pending-response -on: - issue_comment: - types: [created] -permissions: - issues: write -jobs: - issue_commented: - if: ${{ !github.event.issue.pull_request && contains(github.event.issue.labels.*.name, 'pending-response') }} - runs-on: ubuntu-latest - steps: - - uses: siegerts/pending-author-response@409a63bf27370ba9a0e98e8d5fbda7a12398d456 # v1 https://github.com/siegerts/pending-author-response/commit/409a63bf27370ba9a0e98e8d5fbda7a12398d456 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - pending-response-label: pending-response From 3fedf6347823611ef5e28554911cf65c1419fce5 Mon Sep 17 00:00:00 2001 From: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Date: Tue, 3 Sep 2024 09:23:18 -0700 Subject: [PATCH 19/50] fix(adapter-nextjs): duplicate response Set-Cookie headers in pages router (#13765) * fix(adapter-nextjs): duplicate response Set-Cookie headers in pages router * chore: add unit tests --- ...torageAdapterFromNextServerContext.test.ts | 35 ++++++++++++++++ ...okieStorageAdapterFromNextServerContext.ts | 41 ++++++++++++++++--- 2 files changed, 70 insertions(+), 6 deletions(-) diff --git a/packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts b/packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts index e27b4243511..a42ec085e9c 100644 --- a/packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts +++ b/packages/adapter-nextjs/__tests__/utils/createCookieStorageAdapterFromNextServerContext.test.ts @@ -412,6 +412,41 @@ describe('createCookieStorageAdapterFromNextServerContext', () => { 'key3=;Expires=Thu, 01 Jan 1970 00:00:00 GMT', ]); }); + + it('does not add duplicate cookies when the cookies are defined in the response Set-Cookie headers', () => { + const mockExistingSetCookieValues = [ + 'CognitoIdentityServiceProvider.1234.accessToken=1234;Path=/', + 'CognitoIdentityServiceProvider.1234.refreshToken=1234;Path=/', + 'CognitoIdentityServiceProvider.1234.identityId=;Expires=Thu, 01 Jan 1970 00:00:00 GMT', + ]; + + const request = new IncomingMessage(new Socket()); + const response = new ServerResponse(request); + const appendHeaderSpy = jest.spyOn(response, 'appendHeader'); + const getHeaderSpy = jest.spyOn(response, 'getHeader'); + + Object.defineProperty(request, 'cookies', { + get() { + return {}; + }, + }); + + getHeaderSpy.mockReturnValue(mockExistingSetCookieValues); + + const result = createCookieStorageAdapterFromNextServerContext({ + request: request as any, + response, + }); + + result.set('CognitoIdentityServiceProvider.1234.accessToken', '5678'); + expect(appendHeaderSpy).not.toHaveBeenCalled(); + + result.set('CognitoIdentityServiceProvider.1234.refreshToken', '5678'); + expect(appendHeaderSpy).not.toHaveBeenCalled(); + + result.delete('CognitoIdentityServiceProvider.1234.identityId'); + expect(appendHeaderSpy).not.toHaveBeenCalled(); + }); }); it('should throw error when no cookie storage adapter is created from the context', () => { diff --git a/packages/adapter-nextjs/src/utils/createCookieStorageAdapterFromNextServerContext.ts b/packages/adapter-nextjs/src/utils/createCookieStorageAdapterFromNextServerContext.ts index 843235b7288..e3f99cbf96c 100644 --- a/packages/adapter-nextjs/src/utils/createCookieStorageAdapterFromNextServerContext.ts +++ b/packages/adapter-nextjs/src/utils/createCookieStorageAdapterFromNextServerContext.ts @@ -171,20 +171,44 @@ const createCookieStorageAdapterFromGetServerSidePropsContext = ( return allCookies; }, set(name, value, options) { + const encodedName = ensureEncodedForJSCookie(name); + + const existingValues = getExistingSetCookieValues( + response.getHeader('Set-Cookie'), + ); + + // if the cookies have already been set, we don't need to set them again. + if ( + existingValues.findIndex( + cookieValue => + cookieValue.startsWith(`${encodedName}=`) && + !cookieValue.startsWith(`${encodedName}=;`), + ) > -1 + ) { + return; + } + response.appendHeader( 'Set-Cookie', - `${ensureEncodedForJSCookie(name)}=${value};${ + `${encodedName}=${value};${ options ? serializeSetCookieOptions(options) : '' }`, ); }, delete(name) { - response.appendHeader( - 'Set-Cookie', - `${ensureEncodedForJSCookie( - name, - )}=;Expires=${DATE_IN_THE_PAST.toUTCString()}`, + const encodedName = ensureEncodedForJSCookie(name); + const setCookieValue = `${encodedName}=;Expires=${DATE_IN_THE_PAST.toUTCString()}`; + const existingValues = getExistingSetCookieValues( + response.getHeader('Set-Cookie'), ); + + // if the value for cookie deletion is already in the Set-Cookie header, we + // don't need to add the deletion value again. + if (existingValues.includes(setCookieValue)) { + return; + } + + response.appendHeader('Set-Cookie', setCookieValue); }, }; }; @@ -250,3 +274,8 @@ const serializeSetCookieOptions = ( // we are not using those chars in the auth keys. const ensureEncodedForJSCookie = (name: string): string => encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent); + +const getExistingSetCookieValues = ( + values: number | string | string[] | undefined, +): string[] => + values === undefined ? [] : Array.isArray(values) ? values : [String(values)]; From 1b30108ce9d7ab3a488b63003f21cc4339fc6dd5 Mon Sep 17 00:00:00 2001 From: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:21:46 -0700 Subject: [PATCH 20/50] chore: use macos-latest-large to run detox driven tests (#13776) --- .github/workflows/callable-e2e-test-detox.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/callable-e2e-test-detox.yml b/.github/workflows/callable-e2e-test-detox.yml index e9efa09f336..f663220385f 100644 --- a/.github/workflows/callable-e2e-test-detox.yml +++ b/.github/workflows/callable-e2e-test-detox.yml @@ -17,7 +17,7 @@ on: jobs: e2e-test: name: E2E-Detox ${{ inputs.test_name }} - runs-on: macos-latest + runs-on: macos-latest-large timeout-minutes: ${{ inputs.timeout_minutes }} steps: From 9fade3a9f098c8790826af9d062f5fa1bf1196b9 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Tue, 3 Sep 2024 21:03:19 +0000 Subject: [PATCH 21/50] chore(release): Set core metadata [skip release] --- packages/core/metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/metadata b/packages/core/metadata index 59b08aa26c5..8671bb0c082 100644 --- a/packages/core/metadata +++ b/packages/core/metadata @@ -1 +1 @@ -f44227795 +1b30108ce From eb86c26ff25c4385437a3d89b9f7be73e90d9c9d Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Tue, 3 Sep 2024 21:03:32 +0000 Subject: [PATCH 22/50] chore(release): Publish [skip release] - @aws-amplify/adapter-nextjs@1.2.16 - @aws-amplify/analytics@7.0.46 - @aws-amplify/api@6.0.48 - @aws-amplify/api-graphql@4.2.1 - @aws-amplify/api-rest@4.0.46 - @aws-amplify/auth@6.3.17 - aws-amplify@6.5.4 - @aws-amplify/core@6.3.13 - @aws-amplify/datastore@5.0.48 - @aws-amplify/datastore-storage-adapter@2.1.48 - @aws-amplify/geo@3.0.46 - @aws-amplify/interactions@6.0.45 - @aws-amplify/notifications@2.0.46 - @aws-amplify/predictions@6.1.21 - @aws-amplify/pubsub@6.1.21 - @aws-amplify/storage@6.6.4 - tsc-compliance-test@0.1.51 --- packages/adapter-nextjs/CHANGELOG.md | 6 ++++++ packages/adapter-nextjs/package.json | 4 ++-- packages/analytics/CHANGELOG.md | 4 ++++ packages/analytics/package.json | 4 ++-- packages/api-graphql/CHANGELOG.md | 4 ++++ packages/api-graphql/package.json | 6 +++--- packages/api-rest/CHANGELOG.md | 4 ++++ packages/api-rest/package.json | 4 ++-- packages/api/CHANGELOG.md | 4 ++++ packages/api/package.json | 6 +++--- packages/auth/CHANGELOG.md | 4 ++++ packages/auth/package.json | 4 ++-- packages/aws-amplify/CHANGELOG.md | 4 ++++ packages/aws-amplify/package.json | 16 ++++++++-------- packages/core/CHANGELOG.md | 4 ++++ packages/core/package.json | 2 +- packages/datastore-storage-adapter/CHANGELOG.md | 4 ++++ packages/datastore-storage-adapter/package.json | 6 +++--- packages/datastore/CHANGELOG.md | 4 ++++ packages/datastore/package.json | 6 +++--- packages/geo/CHANGELOG.md | 4 ++++ packages/geo/package.json | 4 ++-- packages/interactions/CHANGELOG.md | 4 ++++ packages/interactions/package.json | 4 ++-- packages/notifications/CHANGELOG.md | 4 ++++ packages/notifications/package.json | 4 ++-- packages/predictions/CHANGELOG.md | 4 ++++ packages/predictions/package.json | 6 +++--- packages/pubsub/CHANGELOG.md | 4 ++++ packages/pubsub/package.json | 6 +++--- packages/storage/CHANGELOG.md | 4 ++++ packages/storage/package.json | 4 ++-- scripts/tsc-compliance-test/CHANGELOG.md | 4 ++++ scripts/tsc-compliance-test/package.json | 4 ++-- 34 files changed, 115 insertions(+), 45 deletions(-) diff --git a/packages/adapter-nextjs/CHANGELOG.md b/packages/adapter-nextjs/CHANGELOG.md index 3497dfec206..bfa0c6f600a 100644 --- a/packages/adapter-nextjs/CHANGELOG.md +++ b/packages/adapter-nextjs/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.16](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.15...@aws-amplify/adapter-nextjs@1.2.16) (2024-09-03) + +### Bug Fixes + +- **adapter-nextjs:** duplicate response Set-Cookie headers in pages router ([#13765](https://github.com/aws-amplify/amplify-js/issues/13765)) ([3fedf63](https://github.com/aws-amplify/amplify-js/commit/3fedf6347823611ef5e28554911cf65c1419fce5)) + ## [1.2.15](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.14...@aws-amplify/adapter-nextjs@1.2.15) (2024-08-26) **Note:** Version bump only for package @aws-amplify/adapter-nextjs diff --git a/packages/adapter-nextjs/package.json b/packages/adapter-nextjs/package.json index 6ba476b4989..da249883ca6 100644 --- a/packages/adapter-nextjs/package.json +++ b/packages/adapter-nextjs/package.json @@ -1,7 +1,7 @@ { "author": "Amazon Web Services", "name": "@aws-amplify/adapter-nextjs", - "version": "1.2.15", + "version": "1.2.16", "description": "The adapter for the supporting of using Amplify APIs in Next.js.", "peerDependencies": { "aws-amplify": "^6.0.7", @@ -16,7 +16,7 @@ "@types/node": "^20.3.1", "@types/react": "^18.2.13", "@types/react-dom": "^18.2.6", - "aws-amplify": "6.5.3", + "aws-amplify": "6.5.4", "jest-fetch-mock": "3.0.3", "next": ">= 13.5.0 < 15.0.0", "typescript": "5.0.2" diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md index bac9f6f3afd..7b43dc3d4c2 100644 --- a/packages/analytics/CHANGELOG.md +++ b/packages/analytics/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.45...@aws-amplify/analytics@7.0.46) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/analytics + ## [7.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.44...@aws-amplify/analytics@7.0.45) (2024-08-26) **Note:** Version bump only for package @aws-amplify/analytics diff --git a/packages/analytics/package.json b/packages/analytics/package.json index e4ca091e490..cccfb008b3e 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/analytics", - "version": "7.0.45", + "version": "7.0.46", "description": "Analytics category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -103,7 +103,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "@aws-amplify/react-native": "1.1.4", "@aws-sdk/types": "3.398.0", "typescript": "5.0.2" diff --git a/packages/api-graphql/CHANGELOG.md b/packages/api-graphql/CHANGELOG.md index 3d8d2889767..7e0bb6a244b 100644 --- a/packages/api-graphql/CHANGELOG.md +++ b/packages/api-graphql/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.2.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.2.0...@aws-amplify/api-graphql@4.2.1) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/api-graphql + # [4.2.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.1.15...@aws-amplify/api-graphql@4.2.0) (2024-08-26) ### Features diff --git a/packages/api-graphql/package.json b/packages/api-graphql/package.json index 3ec73b8eff9..076ba2dc6ae 100644 --- a/packages/api-graphql/package.json +++ b/packages/api-graphql/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api-graphql", - "version": "4.2.0", + "version": "4.2.1", "description": "Api-graphql category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -84,8 +84,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-rest": "4.0.45", - "@aws-amplify/core": "6.3.12", + "@aws-amplify/api-rest": "4.0.46", + "@aws-amplify/core": "6.3.13", "@aws-amplify/data-schema": "^1.0.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", diff --git a/packages/api-rest/CHANGELOG.md b/packages/api-rest/CHANGELOG.md index 8eeebc0574c..73b62a515fe 100644 --- a/packages/api-rest/CHANGELOG.md +++ b/packages/api-rest/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.45...@aws-amplify/api-rest@4.0.46) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/api-rest + ## [4.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.44...@aws-amplify/api-rest@4.0.45) (2024-08-26) **Note:** Version bump only for package @aws-amplify/api-rest diff --git a/packages/api-rest/package.json b/packages/api-rest/package.json index f7a437275f8..916cd6df527 100644 --- a/packages/api-rest/package.json +++ b/packages/api-rest/package.json @@ -1,7 +1,7 @@ { "name": "@aws-amplify/api-rest", "private": false, - "version": "4.0.45", + "version": "4.0.46", "description": "Api-rest category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -87,7 +87,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" }, diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index b139c245189..a405d39e4b7 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.47...@aws-amplify/api@6.0.48) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/api + ## [6.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.46...@aws-amplify/api@6.0.47) (2024-08-26) **Note:** Version bump only for package @aws-amplify/api diff --git a/packages/api/package.json b/packages/api/package.json index 3138bfe21d9..649dad7c19a 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api", - "version": "6.0.47", + "version": "6.0.48", "description": "Api category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -79,8 +79,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-graphql": "4.2.0", - "@aws-amplify/api-rest": "4.0.45", + "@aws-amplify/api-graphql": "4.2.1", + "@aws-amplify/api-rest": "4.0.46", "tslib": "^2.5.0" } } diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index 71d9453b04c..69b5c0b3b1a 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.3.17](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.16...@aws-amplify/auth@6.3.17) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/auth + ## [6.3.16](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.15...@aws-amplify/auth@6.3.16) (2024-08-26) **Note:** Version bump only for package @aws-amplify/auth diff --git a/packages/auth/package.json b/packages/auth/package.json index 98def77b18a..7963232d851 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/auth", - "version": "6.3.16", + "version": "6.3.17", "description": "Auth category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -97,7 +97,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "@aws-amplify/react-native": "1.1.4", "@jest/test-sequencer": "^29.7.0", "typescript": "5.0.2" diff --git a/packages/aws-amplify/CHANGELOG.md b/packages/aws-amplify/CHANGELOG.md index 80fe546ca84..b9302cbdc77 100644 --- a/packages/aws-amplify/CHANGELOG.md +++ b/packages/aws-amplify/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.5.4](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.3...aws-amplify@6.5.4) (2024-09-03) + +**Note:** Version bump only for package aws-amplify + ## [6.5.3](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.2...aws-amplify@6.5.3) (2024-08-26) **Note:** Version bump only for package aws-amplify diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 9751dc9165d..0fc18fdb8a3 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -1,6 +1,6 @@ { "name": "aws-amplify", - "version": "6.5.3", + "version": "6.5.4", "description": "AWS Amplify is a JavaScript library for Frontend and mobile developers building cloud-enabled applications.", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -276,13 +276,13 @@ "utils" ], "dependencies": { - "@aws-amplify/analytics": "7.0.45", - "@aws-amplify/api": "6.0.47", - "@aws-amplify/auth": "6.3.16", - "@aws-amplify/core": "6.3.12", - "@aws-amplify/datastore": "5.0.47", - "@aws-amplify/notifications": "2.0.45", - "@aws-amplify/storage": "6.6.3", + "@aws-amplify/analytics": "7.0.46", + "@aws-amplify/api": "6.0.48", + "@aws-amplify/auth": "6.3.17", + "@aws-amplify/core": "6.3.13", + "@aws-amplify/datastore": "5.0.48", + "@aws-amplify/notifications": "2.0.46", + "@aws-amplify/storage": "6.6.4", "tslib": "^2.5.0" }, "devDependencies": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index f2b792d3443..5dde8f051aa 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.3.13](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.12...@aws-amplify/core@6.3.13) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/core + ## [6.3.12](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.11...@aws-amplify/core@6.3.12) (2024-08-26) **Note:** Version bump only for package @aws-amplify/core diff --git a/packages/core/package.json b/packages/core/package.json index ab70f553ce6..3c4d69e7382 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/core", - "version": "6.3.12", + "version": "6.3.13", "description": "Core category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", diff --git a/packages/datastore-storage-adapter/CHANGELOG.md b/packages/datastore-storage-adapter/CHANGELOG.md index 244bbd8d7f8..d29a6863038 100644 --- a/packages/datastore-storage-adapter/CHANGELOG.md +++ b/packages/datastore-storage-adapter/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.47...@aws-amplify/datastore-storage-adapter@2.1.48) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + ## [2.1.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.46...@aws-amplify/datastore-storage-adapter@2.1.47) (2024-08-26) **Note:** Version bump only for package @aws-amplify/datastore-storage-adapter diff --git a/packages/datastore-storage-adapter/package.json b/packages/datastore-storage-adapter/package.json index f0b2caa1671..ec6dff8e576 100644 --- a/packages/datastore-storage-adapter/package.json +++ b/packages/datastore-storage-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore-storage-adapter", - "version": "2.1.47", + "version": "2.1.48", "description": "SQLite storage adapter for Amplify DataStore ", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -36,8 +36,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", - "@aws-amplify/datastore": "5.0.47", + "@aws-amplify/core": "6.3.13", + "@aws-amplify/datastore": "5.0.48", "@types/react-native-sqlite-storage": "5.0.1", "expo-file-system": "13.1.4", "expo-sqlite": "10.1.0", diff --git a/packages/datastore/CHANGELOG.md b/packages/datastore/CHANGELOG.md index e46aa207480..c3caab6feea 100644 --- a/packages/datastore/CHANGELOG.md +++ b/packages/datastore/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.47...@aws-amplify/datastore@5.0.48) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/datastore + ## [5.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.46...@aws-amplify/datastore@5.0.47) (2024-08-26) **Note:** Version bump only for package @aws-amplify/datastore diff --git a/packages/datastore/package.json b/packages/datastore/package.json index 746b1ea01d1..3e489040e51 100644 --- a/packages/datastore/package.json +++ b/packages/datastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore", - "version": "5.0.47", + "version": "5.0.48", "description": "AppSyncLocal support for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -44,7 +44,7 @@ "src" ], "dependencies": { - "@aws-amplify/api": "6.0.47", + "@aws-amplify/api": "6.0.48", "buffer": "4.9.2", "idb": "5.0.6", "immer": "9.0.6", @@ -55,7 +55,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "@aws-amplify/react-native": "1.1.4", "@types/uuid-validate": "^0.0.1", "dexie": "3.2.2", diff --git a/packages/geo/CHANGELOG.md b/packages/geo/CHANGELOG.md index 3048aa0318b..0dcb421354e 100644 --- a/packages/geo/CHANGELOG.md +++ b/packages/geo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.45...@aws-amplify/geo@3.0.46) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/geo + ## [3.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.44...@aws-amplify/geo@3.0.45) (2024-08-26) **Note:** Version bump only for package @aws-amplify/geo diff --git a/packages/geo/package.json b/packages/geo/package.json index af194997ed8..3568904aa72 100644 --- a/packages/geo/package.json +++ b/packages/geo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/geo", - "version": "3.0.45", + "version": "3.0.46", "description": "Geo category for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -76,7 +76,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/interactions/CHANGELOG.md b/packages/interactions/CHANGELOG.md index 2d685d3e796..f3546e0a581 100644 --- a/packages/interactions/CHANGELOG.md +++ b/packages/interactions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.44...@aws-amplify/interactions@6.0.45) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/interactions + ## [6.0.44](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.43...@aws-amplify/interactions@6.0.44) (2024-08-26) **Note:** Version bump only for package @aws-amplify/interactions diff --git a/packages/interactions/package.json b/packages/interactions/package.json index ac7e818c4d9..45f1eaf28ba 100644 --- a/packages/interactions/package.json +++ b/packages/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/interactions", - "version": "6.0.44", + "version": "6.0.45", "description": "Interactions category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -81,7 +81,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "typescript": "^5.0.2" }, "size-limit": [ diff --git a/packages/notifications/CHANGELOG.md b/packages/notifications/CHANGELOG.md index 7dce35dbf64..d02f09ba4f7 100644 --- a/packages/notifications/CHANGELOG.md +++ b/packages/notifications/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.45...@aws-amplify/notifications@2.0.46) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/notifications + ## [2.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.44...@aws-amplify/notifications@2.0.45) (2024-08-26) **Note:** Version bump only for package @aws-amplify/notifications diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 02886fc8ad6..b8d5f42ffba 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/notifications", - "version": "2.0.45", + "version": "2.0.46", "description": "Notifications category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -98,7 +98,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" } diff --git a/packages/predictions/CHANGELOG.md b/packages/predictions/CHANGELOG.md index 584b8adb6d5..344aafe94bf 100644 --- a/packages/predictions/CHANGELOG.md +++ b/packages/predictions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.21](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.20...@aws-amplify/predictions@6.1.21) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/predictions + ## [6.1.20](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.19...@aws-amplify/predictions@6.1.20) (2024-08-26) **Note:** Version bump only for package @aws-amplify/predictions diff --git a/packages/predictions/package.json b/packages/predictions/package.json index 6f0a494acf1..21d5fbb8c87 100644 --- a/packages/predictions/package.json +++ b/packages/predictions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/predictions", - "version": "6.1.20", + "version": "6.1.21", "description": "Machine learning category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -43,7 +43,7 @@ "src" ], "dependencies": { - "@aws-amplify/storage": "6.6.3", + "@aws-amplify/storage": "6.6.4", "@aws-sdk/client-comprehend": "3.621.0", "@aws-sdk/client-polly": "3.621.0", "@aws-sdk/client-rekognition": "3.621.0", @@ -59,7 +59,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index 38fc679ea27..44ceecbb0d3 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.21](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.20...@aws-amplify/pubsub@6.1.21) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/pubsub + ## [6.1.20](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.19...@aws-amplify/pubsub@6.1.20) (2024-08-26) **Note:** Version bump only for package @aws-amplify/pubsub diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 72d767c182d..2a2479e34fd 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/pubsub", - "version": "6.1.20", + "version": "6.1.21", "description": "Pubsub category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -73,7 +73,7 @@ "mqtt" ], "dependencies": { - "@aws-amplify/auth": "6.3.16", + "@aws-amplify/auth": "6.3.17", "buffer": "4.9.2", "graphql": "15.8.0", "rxjs": "^7.8.1", @@ -84,7 +84,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index e8d1188a265..6e447c89979 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.4](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.3...@aws-amplify/storage@6.6.4) (2024-09-03) + +**Note:** Version bump only for package @aws-amplify/storage + ## [6.6.3](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.2...@aws-amplify/storage@6.6.3) (2024-08-26) **Note:** Version bump only for package @aws-amplify/storage diff --git a/packages/storage/package.json b/packages/storage/package.json index 700f467486e..f9c4d56098b 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/storage", - "version": "6.6.3", + "version": "6.6.4", "description": "Storage category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -101,7 +101,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.12", + "@aws-amplify/core": "6.3.13", "@aws-amplify/react-native": "1.1.4", "typescript": "5.0.2" } diff --git a/scripts/tsc-compliance-test/CHANGELOG.md b/scripts/tsc-compliance-test/CHANGELOG.md index d1eb6394211..b91050c6566 100644 --- a/scripts/tsc-compliance-test/CHANGELOG.md +++ b/scripts/tsc-compliance-test/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.51](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.50...tsc-compliance-test@0.1.51) (2024-09-03) + +**Note:** Version bump only for package tsc-compliance-test + ## [0.1.50](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.49...tsc-compliance-test@0.1.50) (2024-08-26) **Note:** Version bump only for package tsc-compliance-test diff --git a/scripts/tsc-compliance-test/package.json b/scripts/tsc-compliance-test/package.json index a3ac1b25c80..8025b0abd31 100644 --- a/scripts/tsc-compliance-test/package.json +++ b/scripts/tsc-compliance-test/package.json @@ -1,11 +1,11 @@ { "name": "tsc-compliance-test", - "version": "0.1.50", + "version": "0.1.51", "license": "MIT", "private": true, "devDependencies": { "@types/node": "16.18.82", - "aws-amplify": "6.5.3", + "aws-amplify": "6.5.4", "typescript": "4.2.x" }, "scripts": { From b351897a28296cba9fe87d53d9b8b4bb7f534d91 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Tue, 3 Sep 2024 21:05:05 +0000 Subject: [PATCH 23/50] chore(release): Update API docs [skip release] --- docs/api/modules/_aws_amplify_adapter_nextjs.html | 4 ++-- docs/api/modules/_aws_amplify_datastore_storage_adapter.html | 4 ++-- docs/api/modules/_aws_amplify_geo.html | 4 ++-- docs/api/modules/_aws_amplify_interactions.html | 4 ++-- docs/api/modules/_aws_amplify_predictions.html | 4 ++-- docs/api/modules/_aws_amplify_pubsub.html | 4 ++-- docs/api/modules/aws_amplify.html | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/api/modules/_aws_amplify_adapter_nextjs.html b/docs/api/modules/_aws_amplify_adapter_nextjs.html index a88b11a85a7..6a83b692489 100644 --- a/docs/api/modules/_aws_amplify_adapter_nextjs.html +++ b/docs/api/modules/_aws_amplify_adapter_nextjs.html @@ -1,5 +1,5 @@ -@aws-amplify/adapter-nextjs - v1.2.15 | Amplify JS API Documentation -

Module @aws-amplify/adapter-nextjs - v1.2.15

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

+@aws-amplify/adapter-nextjs - v1.2.16 | Amplify JS API Documentation +

Module @aws-amplify/adapter-nextjs - v1.2.16

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

Index

Modules

api index utils diff --git a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html index db2564269d4..b80708f5a82 100644 --- a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html +++ b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html @@ -1,5 +1,5 @@ -@aws-amplify/datastore-storage-adapter - v2.1.47 | Amplify JS API Documentation -

Module @aws-amplify/datastore-storage-adapter - v2.1.47

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

+@aws-amplify/datastore-storage-adapter - v2.1.48 | Amplify JS API Documentation +

Module @aws-amplify/datastore-storage-adapter - v2.1.48

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

Index

Modules

ExpoSQLiteAdapter/ExpoSQLiteAdapter SQLiteAdapter/SQLiteAdapter index diff --git a/docs/api/modules/_aws_amplify_geo.html b/docs/api/modules/_aws_amplify_geo.html index ce2187f3e29..0fa4a29bdfb 100644 --- a/docs/api/modules/_aws_amplify_geo.html +++ b/docs/api/modules/_aws_amplify_geo.html @@ -1,5 +1,5 @@ -@aws-amplify/geo - v3.0.45 | Amplify JS API Documentation -

Module @aws-amplify/geo - v3.0.45

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

+@aws-amplify/geo - v3.0.46 | Amplify JS API Documentation +

Module @aws-amplify/geo - v3.0.46

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

Index

Modules

\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_interactions.html b/docs/api/modules/_aws_amplify_interactions.html index ed5ec27b450..aa0d6204c36 100644 --- a/docs/api/modules/_aws_amplify_interactions.html +++ b/docs/api/modules/_aws_amplify_interactions.html @@ -1,5 +1,5 @@ -@aws-amplify/interactions - v6.0.44 | Amplify JS API Documentation -

Module @aws-amplify/interactions - v6.0.44

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

+@aws-amplify/interactions - v6.0.45 | Amplify JS API Documentation +

Module @aws-amplify/interactions - v6.0.45

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

Index

Modules

index lex-v1 lex-v2 diff --git a/docs/api/modules/_aws_amplify_predictions.html b/docs/api/modules/_aws_amplify_predictions.html index e59bc531c77..2206649e7d5 100644 --- a/docs/api/modules/_aws_amplify_predictions.html +++ b/docs/api/modules/_aws_amplify_predictions.html @@ -1,5 +1,5 @@ -@aws-amplify/predictions - v6.1.20 | Amplify JS API Documentation -

Module @aws-amplify/predictions - v6.1.20

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

+@aws-amplify/predictions - v6.1.21 | Amplify JS API Documentation +

Module @aws-amplify/predictions - v6.1.21

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

Index

Modules

Interfaces

IdentifyEntitiesInput IdentifyEntitiesOutput diff --git a/docs/api/modules/_aws_amplify_pubsub.html b/docs/api/modules/_aws_amplify_pubsub.html index 907a26c43ce..9f2b972d2bd 100644 --- a/docs/api/modules/_aws_amplify_pubsub.html +++ b/docs/api/modules/_aws_amplify_pubsub.html @@ -1,5 +1,5 @@ -@aws-amplify/pubsub - v6.1.20 | Amplify JS API Documentation -

Module @aws-amplify/pubsub - v6.1.20

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

+@aws-amplify/pubsub - v6.1.21 | Amplify JS API Documentation +

Module @aws-amplify/pubsub - v6.1.21

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

Index

Modules

clients/iot clients/mqtt index diff --git a/docs/api/modules/aws_amplify.html b/docs/api/modules/aws_amplify.html index e94a4ff09df..b1e2977c092 100644 --- a/docs/api/modules/aws_amplify.html +++ b/docs/api/modules/aws_amplify.html @@ -1,5 +1,5 @@ -aws-amplify - v6.5.3 | Amplify JS API Documentation -

Module aws-amplify - v6.5.3

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

+aws-amplify - v6.5.4 | Amplify JS API Documentation +

Module aws-amplify - v6.5.4

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

Documentation is available here.

Index

Modules

adapter-core analytics From e8fb9973f8e3e3490619416a778ec1460cafaf9a Mon Sep 17 00:00:00 2001 From: ManojNB Date: Tue, 3 Sep 2024 16:31:37 -0700 Subject: [PATCH 24/50] feat(auth): HostedUI oidc signout (#13512) * chore(auth): add oauth metadata into token orchestrator (#13712) (#13736) * chore: add oauth metadata into token orchestrator * chore: add unit tests * chore: address feedback * wip: hardcode signout uri for poc * chore: expose the prefferedRedirectSignOutUrl * chore: add prefered url change to native file * chore: correct param name * chore: update getRedirectUrl function to consider preferred url * chore: add unit test for the feature * chore: update input type to use the accepted format * chore: review comments * fix: address npm audit issues * chore: update comments, bundle size and rn version * chore: update bundle size limit * chore: update bundle size limit * chore: address coments and rename a param to getRedirecturl funciton * chore: make preid release ready * chore: update yarn.lock * chore: add test and update push-integ branch * chore: revert preid release updates * chore: update sample name * chore: enable react native tests with localhost server * chore: enable subdomain test * chore: update some function calls in tests * chore: minor reverts * fix: unit tests fail on mehtod params * chore: revert ppush branch * chore: remove subdomain test rdundant * chore: upadte step name * chore: reflect API changes and clean up * chore: revert unintented change glob * chore: bundle size minor adjustments * chore: move localhost page hosting to RN script in the app * chore: revert unintended change * chore: revert branch name for integ test --------- Co-authored-by: israx <70438514+israx@users.noreply.github.com> Co-authored-by: AllanZhengYP --- .github/integ-config/detox-integ-all.yml | 4 + .github/integ-config/integ-all.yml | 7 + .github/workflows/callable-e2e-test-detox.yml | 9 + .github/workflows/callable-e2e-tests.yml | 1 + package.json | 3 + .../providers/cognito/signOut.test.ts | 1 + .../utils/oauth/getRedirectUrl.native.test.ts | 35 ++ .../utils/oauth/getRedirectUrl.test.ts | 66 ++++ .../oauth/handleOAuthSignOut.native.test.ts | 48 ++- .../utils/oauth/handleOAuthSignOut.test.ts | 33 +- .../utils/oauth/oAuthSignOutRedirect.test.ts | 1 + packages/auth/src/errors/constants.ts | 17 + .../src/providers/cognito/apis/signOut.ts | 5 +- .../utils/oauth/getRedirectUrl.native.ts | 31 +- .../cognito/utils/oauth/getRedirectUrl.ts | 38 ++- .../utils/oauth/handleOAuthSignOut.native.ts | 6 +- .../cognito/utils/oauth/handleOAuthSignOut.ts | 3 +- .../utils/oauth/oAuthSignOutRedirect.ts | 3 +- packages/auth/src/types/inputs.ts | 3 + packages/aws-amplify/package.json | 26 +- packages/rtn-web-browser/package.json | 2 +- yarn.lock | 320 ++++++++++-------- 22 files changed, 463 insertions(+), 199 deletions(-) create mode 100644 packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.native.test.ts create mode 100644 packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.test.ts diff --git a/.github/integ-config/detox-integ-all.yml b/.github/integ-config/detox-integ-all.yml index b58aefdda5c..3debdf83482 100644 --- a/.github/integ-config/detox-integ-all.yml +++ b/.github/integ-config/detox-integ-all.yml @@ -16,3 +16,7 @@ - test_name: 'integ_rn_ios_api_v6_rn_72_detox_cli' working_directory: amplify-js-samples-staging/samples/react-native/api/v6/ApiGRAPHQL timeout_minutes: 120 +- test_name: 'integ_rn_ios_oidc_signout' + working_directory: amplify-js-samples-staging/samples/react-native/auth/HosteduiApp + timeout_minutes: 120 + host_signout_page: true diff --git a/.github/integ-config/integ-all.yml b/.github/integ-config/integ-all.yml index 00c0f3bf598..c7316c37c1f 100644 --- a/.github/integ-config/integ-all.yml +++ b/.github/integ-config/integ-all.yml @@ -514,6 +514,13 @@ tests: sample_name: [sign-in-with-oauth] spec: sign-in-with-oauth browser: [chrome] + - test_name: integ_vue_sign_out_of_oidc_provider + desc: 'Sign-out of OIDC provider' + framework: vue + category: auth + sample_name: [sign-in-with-oauth] + spec: sign-out-oidc-provider + browser: [chrome] # AUTH GEN2 - test_name: integ_react_javascript_authentication_gen2 diff --git a/.github/workflows/callable-e2e-test-detox.yml b/.github/workflows/callable-e2e-test-detox.yml index f663220385f..ffea13efb6a 100644 --- a/.github/workflows/callable-e2e-test-detox.yml +++ b/.github/workflows/callable-e2e-test-detox.yml @@ -13,6 +13,10 @@ on: timeout_minutes: required: true type: number + host_signout_page: + required: false + type: boolean + default: false jobs: e2e-test: @@ -70,6 +74,11 @@ jobs: JEST_JUNIT_OUTPUT_NAME: detox-test-results.xml working-directory: ${{ inputs.working_directory }} shell: bash + - name: Start the http-server and host the oidc signout page locally (background). + if: ${{ inputs.host_signout_page }} + run: yarn host:signout + working-directory: ${{ inputs.working_directory }} + shell: bash - name: Detox run run: | $GITHUB_WORKSPACE/amplify-js/scripts/retry-yarn-script.sh -s 'detox test -c ios.sim.debug -u' -n 3 diff --git a/.github/workflows/callable-e2e-tests.yml b/.github/workflows/callable-e2e-tests.yml index c27c51ce57f..4ae74a69c88 100644 --- a/.github/workflows/callable-e2e-tests.yml +++ b/.github/workflows/callable-e2e-tests.yml @@ -74,3 +74,4 @@ jobs: test_name: ${{ matrix.integ-config.test_name }} working_directory: ${{ matrix.integ-config.working_directory }} timeout_minutes: ${{ matrix.integ-config.timeout_minutes || 45 }} + host_signout_page: ${{ matrix.integ-config.host_signout_page || false }} diff --git a/package.json b/package.json index fbe7ec06f07..2dd5ff3ff32 100644 --- a/package.json +++ b/package.json @@ -137,5 +137,8 @@ "nx": "16.7.0", "xml2js": "0.5.0", "tar": "6.2.1" + }, + "overrides": { + "tar": "6.2.1" } } diff --git a/packages/auth/__tests__/providers/cognito/signOut.test.ts b/packages/auth/__tests__/providers/cognito/signOut.test.ts index e7003463f4e..4992b4a3a5c 100644 --- a/packages/auth/__tests__/providers/cognito/signOut.test.ts +++ b/packages/auth/__tests__/providers/cognito/signOut.test.ts @@ -221,6 +221,7 @@ describe('signOut', () => { cognitoConfigWithOauth, mockDefaultOAuthStoreInstance, mockTokenOrchestrator, + undefined, ); // In cases of OAuth, token removal and Hub dispatch should be performed by the OAuth handling since // these actions can be deferred or canceled out of altogether. diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.native.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.native.test.ts new file mode 100644 index 00000000000..248bc00814a --- /dev/null +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.native.test.ts @@ -0,0 +1,35 @@ +import { invalidAppSchemeException } from '../../../../../src/errors/constants'; +import { getRedirectUrl } from '../../../../../src/providers/cognito/utils/oauth/getRedirectUrl.native'; + +describe('getRedirectUrl (native)', () => { + const mockRedirectUrls = [ + 'myDevApp://', + 'myProdApp://', + 'https://intermidiateSite.com', + ]; + + it('should return the first non http/s url from the array when redirectUrl is not provided', () => { + expect(getRedirectUrl(mockRedirectUrls)).toStrictEqual(mockRedirectUrls[0]); + }); + + it('should return redirectUrl if it matches at least one of the redirect urls from config', () => { + const configRedirectUrl = mockRedirectUrls[2]; + + expect(getRedirectUrl(mockRedirectUrls, configRedirectUrl)).toStrictEqual( + configRedirectUrl, + ); + }); + + it('should throw an exception when there is no url with no http nor https as prefix irrespective of a redirectUrl is given or not', () => { + const mockRedirectUrlsWithNoAppScheme = ['https://intermidiateSite.com']; + expect(() => + getRedirectUrl( + mockRedirectUrlsWithNoAppScheme, + mockRedirectUrlsWithNoAppScheme[0], + ), + ).toThrow(invalidAppSchemeException); + expect(() => getRedirectUrl(mockRedirectUrlsWithNoAppScheme)).toThrow( + invalidAppSchemeException, + ); + }); +}); diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.test.ts new file mode 100644 index 00000000000..0f75d28c640 --- /dev/null +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/getRedirectUrl.test.ts @@ -0,0 +1,66 @@ +import { getRedirectUrl } from '../../../../../src/providers/cognito/utils/oauth'; +import { + invalidOriginException, + invalidPreferredRedirectUrlException, + invalidRedirectException, +} from '../../../../../src/errors/constants'; + +describe('getRedirectUrl', () => { + const mockRedirectUrls = ['https://example.com/app']; + let windowSpy: jest.SpyInstance; + + beforeEach(() => { + windowSpy = jest.spyOn(window, 'window', 'get'); + }); + + afterEach(() => { + windowSpy.mockRestore(); + }); + + it('should return the redirect url that has the same origin and same pathName', () => { + windowSpy.mockReturnValue({ + location: { + origin: 'https://example.com/', + pathname: 'app', + }, + }); + expect(getRedirectUrl(mockRedirectUrls)).toStrictEqual(mockRedirectUrls[0]); + }); + + it('should throw an invalid origin exception if there is no url that is the same origin and pathname', () => { + windowSpy.mockReturnValue({ + location: { + origin: 'https://differentOrigin.com/', + pathname: 'differentApp', + }, + }); + expect(() => getRedirectUrl(mockRedirectUrls)).toThrow( + invalidOriginException, + ); + }); + + it('should throw an invalid redirect exception if there is no url that is the same origin/pathname and is also not http or https', () => { + const mockNonHttpRedirectUrls = ['test-non-http-string']; + windowSpy.mockReturnValue({ + location: { + origin: 'https://differentOrigin.com/', + pathname: 'differentApp', + }, + }); + expect(() => getRedirectUrl(mockNonHttpRedirectUrls)).toThrow( + invalidRedirectException, + ); + }); + + it('should return the redirectUrl if it is provided and matches one of the redirectUrls from config', () => { + expect(getRedirectUrl(mockRedirectUrls, mockRedirectUrls[0])).toStrictEqual( + mockRedirectUrls[0], + ); + }); + + it('should throw an exception if redirectUrl is given but does not match any of the redirectUrls from config', () => { + expect(() => + getRedirectUrl(mockRedirectUrls, 'https://unknownOrigin.com'), + ).toThrow(invalidPreferredRedirectUrlException); + }); +}); diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.native.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.native.test.ts index 3d56cca1b90..bd056ccdf23 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.native.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.native.test.ts @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import { tokenOrchestrator } from '../../../../../src/providers/cognito/tokenProvider'; import { completeOAuthSignOut } from '../../../../../src/providers/cognito/utils/oauth/completeOAuthSignOut'; import { handleOAuthSignOut } from '../../../../../src/providers/cognito/utils/oauth/handleOAuthSignOut.native'; import { oAuthSignOutRedirect } from '../../../../../src/providers/cognito/utils/oauth/oAuthSignOutRedirect'; @@ -23,6 +24,9 @@ describe('handleOAuthSignOut (native)', () => { // assert mocks const mockCompleteOAuthSignOut = completeOAuthSignOut as jest.Mock; const mockOAuthSignOutRedirect = oAuthSignOutRedirect as jest.Mock; + const mockTokenOrchestrator = tokenOrchestrator as jest.Mocked< + typeof tokenOrchestrator + >; // create mocks const mockStore = { loadOAuthSignIn: jest.fn(), @@ -43,33 +47,51 @@ describe('handleOAuthSignOut (native)', () => { }); it('should complete OAuth sign out and redirect', async () => { mockOAuthSignOutRedirect.mockResolvedValue({ type: 'success' }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( cognitoConfig, false, + undefined, ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); }); it('should not complete OAuth sign out if redirect is canceled', async () => { mockOAuthSignOutRedirect.mockResolvedValue({ type: 'canceled' }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( cognitoConfig, false, + undefined, ); expect(mockCompleteOAuthSignOut).not.toHaveBeenCalled(); }); it('should not complete OAuth sign out if redirect failed', async () => { mockOAuthSignOutRedirect.mockResolvedValue({ type: 'error' }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( cognitoConfig, false, + undefined, ); expect(mockCompleteOAuthSignOut).not.toHaveBeenCalled(); }); @@ -81,9 +103,18 @@ describe('handleOAuthSignOut (native)', () => { preferPrivateSession: true, }); mockOAuthSignOutRedirect.mockResolvedValue({ type: 'error' }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); - expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith(cognitoConfig, true); + expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( + cognitoConfig, + true, + undefined, + ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); }); @@ -92,7 +123,12 @@ describe('handleOAuthSignOut (native)', () => { isOAuthSignIn: false, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockOAuthSignOutRedirect).not.toHaveBeenCalled(); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts index 1ce83d076ed..6109b2e68e7 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/handleOAuthSignOut.test.ts @@ -45,10 +45,19 @@ describe('handleOAuthSignOut', () => { isOAuthSignIn: true, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore, mockTokenOrchestrator); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); - expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith(cognitoConfig); + expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( + cognitoConfig, + false, + undefined, + ); }); it('should complete OAuth sign out and redirect when there oauth metadata in tokenOrchestrator', async () => { @@ -59,10 +68,19 @@ describe('handleOAuthSignOut', () => { isOAuthSignIn: false, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore, mockTokenOrchestrator); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); - expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith(cognitoConfig); + expect(mockOAuthSignOutRedirect).toHaveBeenCalledWith( + cognitoConfig, + false, + undefined, + ); }); it('should complete OAuth sign out but not redirect', async () => { @@ -70,7 +88,12 @@ describe('handleOAuthSignOut', () => { isOAuthSignIn: false, preferPrivateSession: false, }); - await handleOAuthSignOut(cognitoConfig, mockStore, mockTokenOrchestrator); + await handleOAuthSignOut( + cognitoConfig, + mockStore, + mockTokenOrchestrator, + undefined, + ); expect(mockCompleteOAuthSignOut).toHaveBeenCalledWith(mockStore); expect(mockOAuthSignOutRedirect).not.toHaveBeenCalled(); diff --git a/packages/auth/__tests__/providers/cognito/utils/oauth/oAuthSignOutRedirect.test.ts b/packages/auth/__tests__/providers/cognito/utils/oauth/oAuthSignOutRedirect.test.ts index a16bbb54eb1..97cde00e5a0 100644 --- a/packages/auth/__tests__/providers/cognito/utils/oauth/oAuthSignOutRedirect.test.ts +++ b/packages/auth/__tests__/providers/cognito/utils/oauth/oAuthSignOutRedirect.test.ts @@ -47,6 +47,7 @@ describe('oAuthSignOutRedirect', () => { expect(mockGetRedirectUrl).toHaveBeenCalledWith( authConfig.loginWith.oauth.redirectSignOut, + undefined, ); expect(mockOpenAuthSession).toHaveBeenCalledWith( `https://${domain}/logout?client_id=${userPoolClientId}&logout_uri=${encodedSignOutRedirectUrl}`, diff --git a/packages/auth/src/errors/constants.ts b/packages/auth/src/errors/constants.ts index 18ae41d71a6..faf1ceba375 100644 --- a/packages/auth/src/errors/constants.ts +++ b/packages/auth/src/errors/constants.ts @@ -10,6 +10,10 @@ export const DEVICE_METADATA_NOT_FOUND_EXCEPTION = 'DeviceMetadataNotFoundException'; export const AUTO_SIGN_IN_EXCEPTION = 'AutoSignInException'; export const INVALID_REDIRECT_EXCEPTION = 'InvalidRedirectException'; +export const INVALID_APP_SCHEME_EXCEPTION = 'InvalidAppSchemeException'; +export const INVALID_PREFERRED_REDIRECT_EXCEPTION = + 'InvalidPreferredRedirectUrlException'; + export const invalidRedirectException = new AuthError({ name: INVALID_REDIRECT_EXCEPTION, message: @@ -17,6 +21,19 @@ export const invalidRedirectException = new AuthError({ recoverySuggestion: 'Please make sure the signIn/Out redirect in your oauth config is valid.', }); +export const invalidAppSchemeException = new AuthError({ + name: INVALID_APP_SCHEME_EXCEPTION, + message: 'A valid non-http app scheme was not found in the config.', + recoverySuggestion: + 'Please make sure a valid custom app scheme is present in the config.', +}); +export const invalidPreferredRedirectUrlException = new AuthError({ + name: INVALID_PREFERRED_REDIRECT_EXCEPTION, + message: + 'The given preferredRedirectUrl does not match any items in the redirectSignOutUrls array from the config.', + recoverySuggestion: + 'Please make sure a matching preferredRedirectUrl is provided.', +}); export const INVALID_ORIGIN_EXCEPTION = 'InvalidOriginException'; export const invalidOriginException = new AuthError({ name: INVALID_ORIGIN_EXCEPTION, diff --git a/packages/auth/src/providers/cognito/apis/signOut.ts b/packages/auth/src/providers/cognito/apis/signOut.ts index fc98d3957f4..e073129ca10 100644 --- a/packages/auth/src/providers/cognito/apis/signOut.ts +++ b/packages/auth/src/providers/cognito/apis/signOut.ts @@ -60,7 +60,6 @@ export async function signOut(input?: SignOutInput): Promise { } catch (err) { hasOAuthConfig = false; } - if (hasOAuthConfig) { const oAuthStore = new DefaultOAuthStore(defaultStorage); oAuthStore.setAuthConfig(cognitoConfig); @@ -69,12 +68,12 @@ export async function signOut(input?: SignOutInput): Promise { cognitoConfig, oAuthStore, tokenOrchestrator, + input?.oauth?.redirectUrl, )) ?? {}; if (type === 'error') { throw new AuthError({ name: OAUTH_SIGNOUT_EXCEPTION, - message: - 'An error occurred when attempting to log out from OAuth provider.', + message: `An error occurred when attempting to log out from OAuth provider.`, }); } } else { diff --git a/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.native.ts b/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.native.ts index 315074aa69d..9719b5071cd 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.native.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.native.ts @@ -1,17 +1,34 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { invalidRedirectException } from '../../../../errors/constants'; +import { + invalidAppSchemeException, + invalidPreferredRedirectUrlException, +} from '../../../../errors/constants'; -/** @internal */ -export function getRedirectUrl(redirects: string[]): string { - const redirectUrl = redirects?.find( +/** +* - Validate there is always an appScheme (required), if not throw invalidAppSchemeException. +* - If a preferredRedirectUrl is given, validate it's in the configured list, if not throw invalidPreferredRedirectUrlException. +* - If preferredRedirectUrl is not given, use the appScheme which is present in the configured list. +@internal */ +export function getRedirectUrl( + redirects: string[], + preferredRedirectUrl?: string, +): string { + // iOS always requires a non http/s url (appScheme) to be registered so we validate it's existence here. + const appSchemeRedirectUrl = redirects?.find( redirect => !redirect.startsWith('http://') && !redirect.startsWith('https://'), ); - if (!redirectUrl) { - throw invalidRedirectException; + if (!appSchemeRedirectUrl) { + throw invalidAppSchemeException; + } + if (preferredRedirectUrl) { + if (redirects?.includes(preferredRedirectUrl)) { + return preferredRedirectUrl; + } + throw invalidPreferredRedirectUrlException; } - return redirectUrl; + return appSchemeRedirectUrl; } diff --git a/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts b/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts index 63c343b0e00..6becf884230 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts @@ -2,22 +2,38 @@ // SPDX-License-Identifier: Apache-2.0 import { invalidOriginException, + invalidPreferredRedirectUrlException, invalidRedirectException, } from '../../../../errors/constants'; /** @internal */ -export function getRedirectUrl(redirects: string[]): string { - const redirectUrlFromTheSameOrigin = - redirects?.find(isSameOriginAndPathName) ?? - redirects?.find(isTheSameDomain); - const redirectUrlFromDifferentOrigin = - redirects?.find(isHttps) ?? redirects?.find(isHttp); - if (redirectUrlFromTheSameOrigin) { - return redirectUrlFromTheSameOrigin; - } else if (redirectUrlFromDifferentOrigin) { - throw invalidOriginException; +export function getRedirectUrl( + redirects: string[], + preferredRedirectUrl?: string, +): string { + if (preferredRedirectUrl) { + const redirectUrl = redirects?.find( + redirect => redirect === preferredRedirectUrl, + ); + if (!redirectUrl) { + throw invalidPreferredRedirectUrlException; + } + + return redirectUrl; + } else { + const redirectUrlFromTheSameOrigin = + redirects?.find(isSameOriginAndPathName) ?? + redirects?.find(isTheSameDomain); + const redirectUrlFromDifferentOrigin = + redirects?.find(isHttps) ?? redirects?.find(isHttp); + + if (redirectUrlFromTheSameOrigin) { + return redirectUrlFromTheSameOrigin; + } else if (redirectUrlFromDifferentOrigin) { + throw invalidOriginException; + } + throw invalidRedirectException; } - throw invalidRedirectException; } // origin + pathname => https://example.com/app diff --git a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.native.ts b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.native.ts index bd9c8416b55..e67c8a255ef 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.native.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.native.ts @@ -5,6 +5,7 @@ import { CognitoUserPoolConfig } from '@aws-amplify/core'; import { OpenAuthSessionResult } from '../../../../utils/types'; import { DefaultOAuthStore } from '../../utils/signInWithRedirectStore'; +import { TokenOrchestrator } from '../../tokenProvider'; import { completeOAuthSignOut } from './completeOAuthSignOut'; import { oAuthSignOutRedirect } from './oAuthSignOutRedirect'; @@ -12,13 +13,16 @@ import { oAuthSignOutRedirect } from './oAuthSignOutRedirect'; export const handleOAuthSignOut = async ( cognitoConfig: CognitoUserPoolConfig, store: DefaultOAuthStore, + // No-op here as it's only used in the non-native implementation + tokenOrchestrator: TokenOrchestrator, + redirectUrl: string | undefined, ): Promise => { const { isOAuthSignIn, preferPrivateSession } = await store.loadOAuthSignIn(); - if (isOAuthSignIn) { const result = await oAuthSignOutRedirect( cognitoConfig, preferPrivateSession, + redirectUrl, ); // If this was a private session, clear data and tokens regardless of what happened with logout // endpoint. Otherwise, only do so if the logout endpoint was succesfully visited. diff --git a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts index ecb09f23bc5..da4f7eb380a 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts @@ -14,6 +14,7 @@ export const handleOAuthSignOut = async ( cognitoConfig: CognitoUserPoolConfig, store: DefaultOAuthStore, tokenOrchestrator: TokenOrchestrator, + redirectUrl: string | undefined, ): Promise => { const { isOAuthSignIn } = await store.loadOAuthSignIn(); const oauthMetadata = await tokenOrchestrator.getOAuthMetadata(); @@ -30,6 +31,6 @@ export const handleOAuthSignOut = async ( // storage mechanism that is used by Amplify. if (isOAuthSignIn || oauthMetadata?.oauthSignIn) { // On web, this will always end up being a void action - return oAuthSignOutRedirect(cognitoConfig); + return oAuthSignOutRedirect(cognitoConfig, false, redirectUrl); } }; diff --git a/packages/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts b/packages/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts index 2dd1eda520a..f86c0686df6 100644 --- a/packages/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts +++ b/packages/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts @@ -12,11 +12,12 @@ import { getRedirectUrl } from './getRedirectUrl'; export const oAuthSignOutRedirect = async ( authConfig: CognitoUserPoolConfig, preferPrivateSession = false, + redirectUrl?: string, ): Promise => { assertOAuthConfig(authConfig); const { loginWith, userPoolClientId } = authConfig; const { domain, redirectSignOut } = loginWith.oauth; - const signoutUri = getRedirectUrl(redirectSignOut); + const signoutUri = getRedirectUrl(redirectSignOut, redirectUrl); const oAuthLogoutEndpoint = `https://${domain}/logout?${Object.entries({ client_id: userPoolClientId, logout_uri: encodeURIComponent(signoutUri), diff --git a/packages/auth/src/types/inputs.ts b/packages/auth/src/types/inputs.ts index 437f5e398f4..6e152cdc1e5 100644 --- a/packages/auth/src/types/inputs.ts +++ b/packages/auth/src/types/inputs.ts @@ -47,6 +47,9 @@ export interface AuthSignInInput< } export interface AuthSignOutInput { global: boolean; + oauth?: { + redirectUrl?: string; + }; } export type AuthProvider = 'Amazon' | 'Apple' | 'Facebook' | 'Google'; diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index b79b7c15eaa..a5bbb244579 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -299,7 +299,7 @@ "name": "[Analytics] record (Kinesis)", "path": "./dist/esm/analytics/kinesis/index.mjs", "import": "{ record }", - "limit": "48.61 kB" + "limit": "48.74 kB" }, { "name": "[Analytics] record (Kinesis Firehose)", @@ -383,31 +383,31 @@ "name": "[Auth] confirmSignIn (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmSignIn }", - "limit": "28.38 kB" + "limit": "28.39 kB" }, { "name": "[Auth] updateMFAPreference (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updateMFAPreference }", - "limit": "11.87 kB" + "limit": "11.98 kB" }, { "name": "[Auth] fetchMFAPreference (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ fetchMFAPreference }", - "limit": "11.90 kB" + "limit": "12.1 kB" }, { "name": "[Auth] verifyTOTPSetup (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ verifyTOTPSetup }", - "limit": "12.75 kB" + "limit": "12.86 kB" }, { "name": "[Auth] updatePassword (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updatePassword }", - "limit": "12.76 kB" + "limit": "12.87 kB" }, { "name": "[Auth] setUpTOTP (Cognito)", @@ -419,43 +419,43 @@ "name": "[Auth] updateUserAttributes (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ updateUserAttributes }", - "limit": "12.00 kB" + "limit": "12.1 kB" }, { "name": "[Auth] getCurrentUser (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ getCurrentUser }", - "limit": "7.85 kB" + "limit": "7.97 kB" }, { "name": "[Auth] confirmUserAttribute (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmUserAttribute }", - "limit": "12.75 kB" + "limit": "12.86 kB" }, { "name": "[Auth] signInWithRedirect (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ signInWithRedirect }", - "limit": "21.15 kB" + "limit": "21.19 kB" }, { "name": "[Auth] fetchUserAttributes (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ fetchUserAttributes }", - "limit": "11.81 kB" + "limit": "11.93 kB" }, { "name": "[Auth] Basic Auth Flow (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ signIn, signOut, fetchAuthSession, confirmSignIn }", - "limit": "30.15 kB" + "limit": "30.23 kB" }, { "name": "[Auth] OAuth Auth Flow (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ signInWithRedirect, signOut, fetchAuthSession }", - "limit": "21.58 kB" + "limit": "21.66 kB" }, { "name": "[Storage] copy (S3)", diff --git a/packages/rtn-web-browser/package.json b/packages/rtn-web-browser/package.json index e1b0366cef3..edfc4bf0023 100644 --- a/packages/rtn-web-browser/package.json +++ b/packages/rtn-web-browser/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@types/react-native": "0.70.0", - "react-native": "0.72.3", + "react-native": "0.72.15", "typescript": "5.1.6" }, "repository": { diff --git a/yarn.lock b/yarn.lock index a55f7941b12..9da6aee53e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3331,12 +3331,12 @@ dependencies: merge-options "^3.0.4" -"@react-native-community/cli-clean@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.5.tgz#07c8a01e433ea6c6e32eb647908be48952888cdd" - integrity sha512-1+7BU962wKkIkHRp/uW3jYbQKKGtU7L+R3g59D8K6uLccuxJYUBJv18753ojMa6SD3SAq5Xh31bAre+YwVcOTA== +"@react-native-community/cli-clean@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.4.1.tgz#0155a02e4158c8a61ba3d7a2b08f3ebebed81906" + integrity sha512-cwUbY3c70oBGv3FvQJWe2Qkq6m1+/dcEBonMDTYyH6i+6OrkzI4RkIGpWmbG1IS5JfE9ISUZkNL3946sxyWNkw== dependencies: - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" execa "^5.0.0" prompts "^2.4.0" @@ -3361,12 +3361,12 @@ execa "^1.0.0" prompts "^2.4.0" -"@react-native-community/cli-config@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.5.tgz#07e48bb6cdecaa2aafa20da9888b5f35383a4382" - integrity sha512-fMblIsHlUleKfGsgWyjFJYfx1SqrsnhS/QXfA8w7iT6GrNOOjBp5UWx8+xlMDFcmOb9e42g1ExFDKl3n8FWkxQ== +"@react-native-community/cli-config@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.4.1.tgz#c27f91d2753f0f803cc79bbf299f19648a5d5627" + integrity sha512-sLdv1HFVqu5xNpeaR1+std0t7FFZaobpmpR0lFCOzKV7H/l611qS2Vo8zssmMK+oQbCs5JsX3SFPciODeIlaWA== dependencies: - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" @@ -3397,10 +3397,10 @@ glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.5.tgz#0dbb27759b9f6e4ca8cfcaab4fabfe349f765356" - integrity sha512-o5JVCKEpPUXMX4r3p1cYjiy3FgdOEkezZcQ6owWEae2dYvV19lLYyJwnocm9Y7aG9PvpgI3PIMVh3KZbhS21eA== +"@react-native-community/cli-debugger-ui@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.4.1.tgz#783cc276e1360baf8235dc8c6ebbbce0fe01d944" + integrity sha512-+pgIjGNW5TrJF37XG3djIOzP+WNoPp67to/ggDhrshuYgpymfb9XpDVsURJugy0Sy3RViqb83kQNK765QzTIvw== dependencies: serve-static "^1.13.1" @@ -3425,25 +3425,24 @@ dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.5.tgz#f11e0651c53e0b58487837a272af725f046a5842" - integrity sha512-+4BuFHjoV4FFjX5y60l0s6nS0agidb1izTVwsFixeFKW73LUkOLu+Ae5HI94RAFEPE4ePEVNgYX3FynIau6K0g== +"@react-native-community/cli-doctor@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.4.1.tgz#516ef5932de3e12989695e7cb7aba82b81e7b2de" + integrity sha512-O6oPiRsl8pdkcyNktpzvJAXUqdocoY4jh7Tt7wA69B1JKCJA7aPCecwJgpUZb63ZYoxOtRtYM3BYQKzRMLIuUw== dependencies: - "@react-native-community/cli-config" "11.3.5" - "@react-native-community/cli-platform-android" "11.3.5" - "@react-native-community/cli-platform-ios" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-config" "11.4.1" + "@react-native-community/cli-platform-android" "11.4.1" + "@react-native-community/cli-platform-ios" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" command-exists "^1.2.8" envinfo "^7.7.2" execa "^5.0.0" hermes-profile-transformer "^0.0.6" - ip "^1.1.5" node-stream-zip "^1.9.1" ora "^5.4.1" prompts "^2.4.0" - semver "^6.3.0" + semver "^7.5.2" strip-ansi "^5.2.0" sudo-prompt "^9.0.0" wcwidth "^1.0.1" @@ -3492,16 +3491,15 @@ sudo-prompt "^9.0.0" wcwidth "^1.0.1" -"@react-native-community/cli-hermes@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.5.tgz#fb557790a34f4354fa7a91b02217cdded26cafc4" - integrity sha512-+3m34hiaJpFel8BlJE7kJOaPzWR/8U8APZG2LXojbAdBAg99EGmQcwXIgsSVJFvH8h/nezf4DHbsPKigIe33zA== +"@react-native-community/cli-hermes@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.4.1.tgz#abf487ae8ab53c66f6f1178bcd37ecbbbac9fb5c" + integrity sha512-1VAjwcmv+i9BJTMMVn5Grw7AcgURhTyfHVghJ1YgBE2euEJxPuqPKSxP54wBOQKnWUwsuDQAtQf+jPJoCxJSSA== dependencies: - "@react-native-community/cli-platform-android" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-platform-android" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" - ip "^1.1.5" "@react-native-community/cli-hermes@^10.0.0": version "10.2.7" @@ -3524,12 +3522,12 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-android@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.5.tgz#8be7ef382a3182fe63a698ed2edd4d90ab19246a" - integrity sha512-s4Lj7FKxJ/BofGi/ifjPfrA9MjFwIgYpHnHBSlqtbsvPoSYzmVCU2qlWM8fb3AmkXIwyYt4A6MEr3MmNT2UoBg== +"@react-native-community/cli-platform-android@11.4.1", "@react-native-community/cli-platform-android@^11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.4.1.tgz#ec5fc97e87834f2e33cb0d34dcef6c17b20f60fc" + integrity sha512-VMmXWIzk0Dq5RAd+HIEa3Oe7xl2jso7+gOr6E2HALF4A3fCKUjKZQ6iK2t6AfnY04zftvaiKw6zUXtrfl52AVQ== dependencies: - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" execa "^5.0.0" glob "^7.1.3" @@ -3581,12 +3579,12 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-platform-ios@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.5.tgz#12a8cbf2638400b9986709466653ce4e7c9eca2a" - integrity sha512-ytJC/YCFD7P+KuQHOT5Jzh1ho2XbJEjq71yHa1gJP2PG/Q/uB4h1x2XpxDqv5iXU6E250yjvKMmkReKTW4CTig== +"@react-native-community/cli-platform-ios@11.4.1", "@react-native-community/cli-platform-ios@^11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.4.1.tgz#12d72741273b684734d5ed021415b7f543a6f009" + integrity sha512-RPhwn+q3IY9MpWc9w/Qmzv03mo8sXdah2eSZcECgweqD5SHWtOoRCUt11zM8jASpAQ8Tm5Je7YE9bHvdwGl4hA== dependencies: - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.0.12" @@ -3612,21 +3610,21 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.5.tgz#5614c7ef3bc83cf70bcb0e6d988ab9d84a76008a" - integrity sha512-r9AekfeLKdblB7LfWB71IrNy1XM03WrByQlUQajUOZAP2NmUUBLl9pMZscPjJeOSgLpHB9ixEFTIOhTabri/qg== +"@react-native-community/cli-plugin-metro@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.4.1.tgz#8d51c59a9a720f99150d4153e757d5d1d1dabd22" + integrity sha512-JxbIqknYcQ5Z4rWROtu5LNakLfMiKoWcMoPqIrBLrV5ILm1XUJj1/8fATCcotZqV3yzB3SCJ3RrhKx7dQ3YELw== dependencies: - "@react-native-community/cli-server-api" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-server-api" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" chalk "^4.1.2" execa "^5.0.0" - metro "0.76.7" - metro-config "0.76.7" - metro-core "0.76.7" - metro-react-native-babel-transformer "0.76.7" - metro-resolver "0.76.7" - metro-runtime "0.76.7" + metro "^0.76.9" + metro-config "^0.76.9" + metro-core "^0.76.9" + metro-react-native-babel-transformer "^0.76.9" + metro-resolver "^0.76.9" + metro-runtime "^0.76.9" readline "^1.3.0" "@react-native-community/cli-plugin-metro@^10.0.0": @@ -3646,13 +3644,13 @@ metro-runtime "0.73.10" readline "^1.3.0" -"@react-native-community/cli-server-api@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.5.tgz#6f43f5844bd1eb73166546b8fa8bfd32064b21e7" - integrity sha512-PM/jF13uD1eAKuC84lntNuM5ZvJAtyb+H896P1dBIXa9boPLa3KejfUvNVoyOUJ5s8Ht25JKbc3yieV2+GMBDA== +"@react-native-community/cli-server-api@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.4.1.tgz#3dda094c4ab2369db34fe991c320e3cd78f097b3" + integrity sha512-isxXE8X5x+C4kN90yilD08jaLWD34hfqTfn/Xbl1u/igtdTsCaQGvWe9eaFamrpWFWTpVtj6k+vYfy8AtYSiKA== dependencies: - "@react-native-community/cli-debugger-ui" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" + "@react-native-community/cli-debugger-ui" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -3706,10 +3704,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.5.tgz#3f9d23a4c961d963f85c254718636db8a5fa3bce" - integrity sha512-zDklE1+ah/zL4BLxut5XbzqCj9KTHzbYBKX7//cXw2/0TpkNCaY9c+iKx//gZ5m7U1OKbb86Fm2b0AKtKVRf6Q== +"@react-native-community/cli-tools@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.4.1.tgz#f6c69967e077b10cd8a884a83e53eb199dd9ee9f" + integrity sha512-GuQIuY/kCPfLeXB1aiPZ5HvF+e/wdO42AYuNEmT7FpH/0nAhdTxA9qjL8m3vatDD2/YK7WNOSVNsl2UBZuOISg== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -3718,7 +3716,7 @@ node-fetch "^2.6.0" open "^6.2.0" ora "^5.4.1" - semver "^6.3.0" + semver "^7.5.2" shell-quote "^1.7.3" "@react-native-community/cli-tools@14.0.0": @@ -3768,10 +3766,10 @@ semver "^6.3.0" shell-quote "^1.7.3" -"@react-native-community/cli-types@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.5.tgz#9051205e164d5585f1ae3869a3b3ca1f2f43b9ba" - integrity sha512-pf0kdWMEfPSV/+8rcViDCFzbLMtWIHMZ8ay7hKwqaoWegsJ0oprSF2tSTH+LSC/7X1Beb9ssIvHj1m5C4es5Xg== +"@react-native-community/cli-types@11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.4.1.tgz#3842dc37ba3b09f929b485bcbd8218de19349ac2" + integrity sha512-B3q9A5BCneLDSoK/iSJ06MNyBn1qTxjdJeOgeS3MiCxgJpPcxyn/Yrc6+h0Cu9T9sgWj/dmectQPYWxtZeo5VA== dependencies: joi "^17.2.1" @@ -3857,6 +3855,29 @@ prompts "^2.4.2" semver "^7.5.2" +"@react-native-community/cli@^11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.4.1.tgz#9a6346486622860dad721da406df70e29a45491f" + integrity sha512-NdAageVMtNhtvRsrq4NgJf5Ey2nA1CqmLvn7PhSawg+aIzMKmZuzWxGVwr9CoPGyjvNiqJlCWrLGR7NzOyi/sA== + dependencies: + "@react-native-community/cli-clean" "11.4.1" + "@react-native-community/cli-config" "11.4.1" + "@react-native-community/cli-debugger-ui" "11.4.1" + "@react-native-community/cli-doctor" "11.4.1" + "@react-native-community/cli-hermes" "11.4.1" + "@react-native-community/cli-plugin-metro" "11.4.1" + "@react-native-community/cli-server-api" "11.4.1" + "@react-native-community/cli-tools" "11.4.1" + "@react-native-community/cli-types" "11.4.1" + chalk "^4.1.2" + commander "^9.4.1" + execa "^5.0.0" + find-up "^4.1.0" + fs-extra "^8.1.0" + graceful-fs "^4.1.3" + prompts "^2.4.0" + semver "^7.5.2" + "@react-native-community/netinfo@4.7.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-4.7.0.tgz#7482d36836cac69d0a0ae25581f65bc472639930" @@ -3949,7 +3970,7 @@ nullthrows "^1.1.1" yargs "^17.6.2" -"@react-native/codegen@^0.72.6": +"@react-native/codegen@^0.72.8": version "0.72.8" resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.72.8.tgz#0593f628e1310f430450a9479fbb4be35e7b63d6" integrity sha512-jQCcBlXV7B7ap5VlHhwIPieYz89yiRgwd2FPUBu+unz+kcJ6pAiB2U8RdLDmyIs8fiWd+Vq1xxaWs4TR329/ng== @@ -4053,7 +4074,7 @@ resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.75.2.tgz#de095f4b985580748ffa239a70ae63fbaa93724e" integrity sha512-nPwWJFtsqNFS/qSG9yDOiSJ64mjG7RCP4X/HXFfyWzCM1jq49h/DYBdr+c3e7AvTKGIdy0gGT3vgaRUHZFVdUQ== -"@react-native/normalize-colors@^0.72.0": +"@react-native/normalize-colors@<0.73.0", "@react-native/normalize-colors@^0.72.0": version "0.72.0" resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.72.0.tgz#14294b7ed3c1d92176d2a00df48456e8d7d62212" integrity sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw== @@ -4071,7 +4092,7 @@ invariant "^2.2.4" nullthrows "^1.1.1" -"@react-native/virtualized-lists@^0.72.6": +"@react-native/virtualized-lists@^0.72.8": version "0.72.8" resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.72.8.tgz#a2c6a91ea0f1d40eb5a122fb063daedb92ed1dc3" integrity sha512-J3Q4Bkuo99k7mu+jPS9gSUSgq+lLRSI/+ahXNwV92XgJ/8UgOTxu2LPwhJnBk/sQKxq7E8WkZBnBiozukQMqrw== @@ -7338,15 +7359,6 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -deprecated-react-native-prop-types@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.1.0.tgz#8ed03a64c21b7fbdd2d000957b6838d4f38d2c66" - integrity sha512-WfepZHmRbbdTvhcolb8aOKEvQdcmTMn5tKLbqbXmkBvjFjRVWAYqsXk/DBsV8TZxws8SdGHLuHaJrHSQUPRdfw== - dependencies: - "@react-native/normalize-colors" "*" - invariant "*" - prop-types "*" - deprecated-react-native-prop-types@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.2.tgz#e724a9837e6a7ccb778753c06ae4f79065873493" @@ -9260,7 +9272,7 @@ interpret@^3.1.1: resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -invariant@*, invariant@^2.2.4: +invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -10908,10 +10920,10 @@ metro-babel-transformer@0.73.5: metro-source-map "0.73.5" nullthrows "^1.1.1" -metro-babel-transformer@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz#ba620d64cbaf97d1aa14146d654a3e5d7477fc62" - integrity sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw== +metro-babel-transformer@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz#5efd1027353b36b73706164ef09c290dceac096a" + integrity sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA== dependencies: "@babel/core" "^7.20.0" hermes-parser "0.12.0" @@ -11097,10 +11109,10 @@ metro-file-map@0.73.10: optionalDependencies: fsevents "^2.3.2" -metro-file-map@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.7.tgz#0f041a4f186ac672f0188180310609c8483ffe89" - integrity sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw== +metro-file-map@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.8.tgz#a1db1185b6c316904ba6b53d628e5d1323991d79" + integrity sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw== dependencies: anymatch "^3.0.3" debug "^2.2.0" @@ -11171,10 +11183,10 @@ metro-inspector-proxy@0.73.10: ws "^7.5.1" yargs "^17.5.1" -metro-inspector-proxy@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz#c067df25056e932002a72a4b45cf7b4b749f808e" - integrity sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg== +metro-inspector-proxy@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz#6b8678a7461b0b42f913a7881cc9319b4d3cddff" + integrity sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw== dependencies: connect "^3.6.5" debug "^2.2.0" @@ -11243,6 +11255,13 @@ metro-minify-uglify@0.76.9: dependencies: uglify-es "^3.1.9" +metro-minify-uglify@0.76.9: + version "0.76.9" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.9.tgz#e88c30c27911c053e1ee20e12077f0f4cbb154f8" + integrity sha512-MXRrM3lFo62FPISlPfTqC6n9HTEI3RJjDU5SvpE7sJFfJKLx02xXQEltsL/wzvEqK+DhRQ5DEYACTwf5W4Z3yA== + dependencies: + uglify-es "^3.1.9" + metro-react-native-babel-preset@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.10.tgz#304b24bb391537d2c987732cc0a9774be227d3f6" @@ -11331,10 +11350,10 @@ metro-react-native-babel-preset@0.73.5: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-preset@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz#dfe15c040d0918147a8b0e9f530d558287acbb54" - integrity sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw== +metro-react-native-babel-preset@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.8.tgz#7476efae14363cbdfeeec403b4f01d7348e6c048" + integrity sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" @@ -11492,15 +11511,15 @@ metro-react-native-babel-transformer@0.73.5: metro-source-map "0.73.5" nullthrows "^1.1.1" -metro-react-native-babel-transformer@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz#ccc7c25b49ee8a1860aafdbf48bfa5441d206f8f" - integrity sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA== +metro-react-native-babel-transformer@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz#c3a98e1f4cd5faf1e21eba8e004b94a90c4db69b" + integrity sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A== dependencies: "@babel/core" "^7.20.0" babel-preset-fbjs "^3.4.0" hermes-parser "0.12.0" - metro-react-native-babel-preset "0.76.7" + metro-react-native-babel-preset "0.76.8" nullthrows "^1.1.1" metro-react-native-babel-transformer@^0.76.9: @@ -11606,17 +11625,17 @@ metro-source-map@0.73.5: source-map "^0.5.6" vlq "^1.0.0" -metro-source-map@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.7.tgz#9a4aa3a35e1e8ffde9a74cd7ab5f49d9d4a4da14" - integrity sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w== +metro-source-map@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.8.tgz#f085800152a6ba0b41ca26833874d31ec36c5a53" + integrity sha512-Hh0ncPsHPVf6wXQSqJqB3K9Zbudht4aUtNpNXYXSxH+pteWqGAXnjtPsRAnCsCWl38wL0jYF0rJDdMajUI3BDw== dependencies: "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" invariant "^2.2.4" - metro-symbolicate "0.76.7" + metro-symbolicate "0.76.8" nullthrows "^1.1.1" - ob1 "0.76.7" + ob1 "0.76.8" source-map "^0.5.6" vlq "^1.0.0" @@ -11673,13 +11692,13 @@ metro-symbolicate@0.73.5: through2 "^2.0.1" vlq "^1.0.0" -metro-symbolicate@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz#1720e6b4ce5676935d7a8a440f25d3f16638e87a" - integrity sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ== +metro-symbolicate@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz#f102ac1a306d51597ecc8fdf961c0a88bddbca03" + integrity sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w== dependencies: invariant "^2.2.4" - metro-source-map "0.76.7" + metro-source-map "0.76.8" nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" @@ -11721,10 +11740,10 @@ metro-transform-plugins@0.73.10: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-plugins@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz#5d5f75371706fbf5166288e43ffd36b5e5bd05bc" - integrity sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg== +metro-transform-plugins@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz#d77c28a6547a8e3b72250f740fcfbd7f5408f8ba" + integrity sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" @@ -11887,10 +11906,10 @@ metro@0.73.10: ws "^7.5.1" yargs "^17.5.1" -metro@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.7.tgz#4885917ad28738c7d1e556630e0155f687336230" - integrity sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ== +metro@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.8.tgz#ba526808b99977ca3f9ac5a7432fd02a340d13a6" + integrity sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -11914,22 +11933,22 @@ metro@0.76.7: jest-worker "^27.2.0" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.76.7" - metro-cache "0.76.7" - metro-cache-key "0.76.7" - metro-config "0.76.7" - metro-core "0.76.7" - metro-file-map "0.76.7" - metro-inspector-proxy "0.76.7" - metro-minify-terser "0.76.7" - metro-minify-uglify "0.76.7" - metro-react-native-babel-preset "0.76.7" - metro-resolver "0.76.7" - metro-runtime "0.76.7" - metro-source-map "0.76.7" - metro-symbolicate "0.76.7" - metro-transform-plugins "0.76.7" - metro-transform-worker "0.76.7" + metro-babel-transformer "0.76.8" + metro-cache "0.76.8" + metro-cache-key "0.76.8" + metro-config "0.76.8" + metro-core "0.76.8" + metro-file-map "0.76.8" + metro-inspector-proxy "0.76.8" + metro-minify-terser "0.76.8" + metro-minify-uglify "0.76.8" + metro-react-native-babel-preset "0.76.8" + metro-resolver "0.76.8" + metro-runtime "0.76.8" + metro-source-map "0.76.8" + metro-symbolicate "0.76.8" + metro-transform-plugins "0.76.8" + metro-transform-worker "0.76.8" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" @@ -13464,7 +13483,7 @@ promzard@^1.0.0: dependencies: read "^3.0.1" -prop-types@*, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -13680,33 +13699,34 @@ react-native@0.71.0: whatwg-fetch "^3.0.0" ws "^6.2.2" -react-native@0.72.3: - version "0.72.3" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.3.tgz#f8d85ec81c9f3592d091ec8e9ac1694956a72765" - integrity sha512-QqISi+JVmCssNP2FlQ4MWhlc4O/I00MRE1/GClvyZ8h/6kdsyk/sOirkYdZqX3+DrJfI3q+OnyMnsyaXIQ/5tQ== +react-native@0.72.15: + version "0.72.15" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.15.tgz#9b74b0c39ec42befb70d494b535f863c4229ef55" + integrity sha512-UDxOZwCxhwb0dGuvcB/04uWzhDJ8etqW3fMOq6bv35WwEXMgKXXqZpshhMo64UVWm/m2ZmM32ckn5sf1EIqD9Q== dependencies: "@jest/create-cache-key-function" "^29.2.1" - "@react-native-community/cli" "11.3.5" - "@react-native-community/cli-platform-android" "11.3.5" - "@react-native-community/cli-platform-ios" "11.3.5" + "@react-native-community/cli" "^11.4.1" + "@react-native-community/cli-platform-android" "^11.4.1" + "@react-native-community/cli-platform-ios" "^11.4.1" "@react-native/assets-registry" "^0.72.0" - "@react-native/codegen" "^0.72.6" + "@react-native/codegen" "^0.72.8" "@react-native/gradle-plugin" "^0.72.11" "@react-native/js-polyfills" "^0.72.1" "@react-native/normalize-colors" "^0.72.0" - "@react-native/virtualized-lists" "^0.72.6" + "@react-native/virtualized-lists" "^0.72.8" abort-controller "^3.0.0" anser "^1.4.9" + ansi-regex "^5.0.0" base64-js "^1.1.2" - deprecated-react-native-prop-types "4.1.0" + deprecated-react-native-prop-types "^4.2.3" event-target-shim "^5.0.1" flow-enums-runtime "^0.0.5" invariant "^2.2.4" jest-environment-node "^29.2.1" jsc-android "^250231.0.0" memoize-one "^5.0.0" - metro-runtime "0.76.7" - metro-source-map "0.76.7" + metro-runtime "^0.76.9" + metro-source-map "^0.76.9" mkdirp "^0.5.1" nullthrows "^1.1.1" pretty-format "^26.5.2" From 614e5310449ba0fdb5acaeb6a0c8f702e35a3ea1 Mon Sep 17 00:00:00 2001 From: ManojNB Date: Wed, 4 Sep 2024 09:02:22 -0700 Subject: [PATCH 25/50] fix: update yarn lock file with correct versions (#13778) chore: update yarn lock file with correct versions --- yarn.lock | 325 +++--------------------------------------------------- 1 file changed, 14 insertions(+), 311 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9da6aee53e1..e3e9b5f2400 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3810,29 +3810,6 @@ prompts "^2.4.0" semver "^6.3.0" -"@react-native-community/cli@11.3.5": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.5.tgz#18ac20ba96182662cf1088cbed20b6065935ddba" - integrity sha512-wMXgKEWe6uesw7vyXKKjx5EDRog0QdXHxdgRguG14AjQRao1+4gXEWq2yyExOTi/GDY6dfJBUGTCwGQxhnk/Lg== - dependencies: - "@react-native-community/cli-clean" "11.3.5" - "@react-native-community/cli-config" "11.3.5" - "@react-native-community/cli-debugger-ui" "11.3.5" - "@react-native-community/cli-doctor" "11.3.5" - "@react-native-community/cli-hermes" "11.3.5" - "@react-native-community/cli-plugin-metro" "11.3.5" - "@react-native-community/cli-server-api" "11.3.5" - "@react-native-community/cli-tools" "11.3.5" - "@react-native-community/cli-types" "11.3.5" - chalk "^4.1.2" - commander "^9.4.1" - execa "^5.0.0" - find-up "^4.1.0" - fs-extra "^8.1.0" - graceful-fs "^4.1.3" - prompts "^2.4.0" - semver "^6.3.0" - "@react-native-community/cli@14.0.0": version "14.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-14.0.0.tgz#0c98d75ac55515d07972682c1053f46bfee93863" @@ -4069,7 +4046,7 @@ resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/normalize-colors@*", "@react-native/normalize-colors@0.75.2": +"@react-native/normalize-colors@0.75.2": version "0.75.2" resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.75.2.tgz#de095f4b985580748ffa239a70ae63fbaa93724e" integrity sha512-nPwWJFtsqNFS/qSG9yDOiSJ64mjG7RCP4X/HXFfyWzCM1jq49h/DYBdr+c3e7AvTKGIdy0gGT3vgaRUHZFVdUQ== @@ -7368,6 +7345,15 @@ deprecated-react-native-prop-types@^3.0.1: invariant "^2.2.4" prop-types "^15.8.1" +deprecated-react-native-prop-types@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.2.3.tgz#0ef845c1a80ef1636bd09060e4cdf70f9727e5ad" + integrity sha512-2rLTiMKidIFFYpIVM69UnQKngLqQfL6I11Ch8wGSBftS18FUXda+o2we2950X+1dmbgps28niI3qwyH4eX3Z1g== + dependencies: + "@react-native/normalize-colors" "<0.73.0" + invariant "^2.2.4" + prop-types "^15.8.1" + deprecation@^2.0.0: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -9287,11 +9273,6 @@ ip-address@^9.0.5: jsbn "1.1.0" sprintf-js "^1.1.3" -ip@^1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" - integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== - is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -10920,15 +10901,6 @@ metro-babel-transformer@0.73.5: metro-source-map "0.73.5" nullthrows "^1.1.1" -metro-babel-transformer@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz#5efd1027353b36b73706164ef09c290dceac096a" - integrity sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA== - dependencies: - "@babel/core" "^7.20.0" - hermes-parser "0.12.0" - nullthrows "^1.1.1" - metro-babel-transformer@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.9.tgz#659ba481d471b5f748c31a8f9397094b629f50ec" @@ -10953,11 +10925,6 @@ metro-cache-key@0.73.10: resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.73.10.tgz#8d63591187d295b62a80aed64a87864b1e9d67a2" integrity sha512-JMVDl/EREDiUW//cIcUzRjKSwE2AFxVWk47cFBer+KA4ohXIG2CQPEquT56hOw1Y1s6gKNxxs1OlAOEsubrFjw== -metro-cache-key@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.7.tgz#70913f43b92b313096673c37532edd07438cb325" - integrity sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ== - metro-cache-key@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.9.tgz#6f17f821d6f306fa9028b7e79445eb18387d03d9" @@ -10978,14 +10945,6 @@ metro-cache@0.73.10: metro-core "0.73.10" rimraf "^3.0.2" -metro-cache@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.7.tgz#e49e51423fa960df4eeff9760d131f03e003a9eb" - integrity sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg== - dependencies: - metro-core "0.76.7" - rimraf "^3.0.2" - metro-cache@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.9.tgz#64326d7a8b470c3886a5e97d5e2a20acab20bc5f" @@ -11015,19 +10974,6 @@ metro-config@0.73.10: metro-core "0.73.10" metro-runtime "0.73.10" -metro-config@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.7.tgz#f0fc171707523aa7d3a9311550872136880558c0" - integrity sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg== - dependencies: - connect "^3.6.5" - cosmiconfig "^5.0.5" - jest-validate "^29.2.1" - metro "0.76.7" - metro-cache "0.76.7" - metro-core "0.76.7" - metro-runtime "0.76.7" - metro-config@0.76.9, metro-config@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.9.tgz#5e60aff9d8894c1ee6bbc5de23b7c8515a0b84a3" @@ -11063,15 +11009,7 @@ metro-core@0.73.10: lodash.throttle "^4.1.1" metro-resolver "0.73.10" -metro-core@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.7.tgz#5d2b8bac2cde801dc22666ad7be1336d1f021b61" - integrity sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw== - dependencies: - lodash.throttle "^4.1.1" - metro-resolver "0.76.7" - -metro-core@0.76.9: +metro-core@0.76.9, metro-core@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.9.tgz#5f55f0fbde41d28957e4f3bb187d32251403f00e" integrity sha512-DSeEr43Wrd5Q7ySfRzYzDwfV89g2OZTQDf1s3exOcLjE5fb7awoLOkA2h46ZzN8NcmbbM0cuJy6hOwF073/yRQ== @@ -11109,26 +11047,6 @@ metro-file-map@0.73.10: optionalDependencies: fsevents "^2.3.2" -metro-file-map@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.8.tgz#a1db1185b6c316904ba6b53d628e5d1323991d79" - integrity sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw== - dependencies: - anymatch "^3.0.3" - debug "^2.2.0" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - invariant "^2.2.4" - jest-regex-util "^27.0.6" - jest-util "^27.2.0" - jest-worker "^27.2.0" - micromatch "^4.0.4" - node-abort-controller "^3.1.1" - nullthrows "^1.1.1" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - metro-file-map@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.9.tgz#dd3d76ec23fc0ba8cb7b3a3b8075bb09e0b5d378" @@ -11183,17 +11101,6 @@ metro-inspector-proxy@0.73.10: ws "^7.5.1" yargs "^17.5.1" -metro-inspector-proxy@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz#6b8678a7461b0b42f913a7881cc9319b4d3cddff" - integrity sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw== - dependencies: - connect "^3.6.5" - debug "^2.2.0" - node-fetch "^2.2.0" - ws "^7.5.1" - yargs "^17.6.2" - metro-inspector-proxy@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.9.tgz#0d333e64a7bc9d156d712265faa7b7ae88c775e8" @@ -11212,13 +11119,6 @@ metro-minify-terser@0.73.10: dependencies: terser "^5.15.0" -metro-minify-terser@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz#aefac8bb8b6b3a0fcb5ea0238623cf3e100893ff" - integrity sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA== - dependencies: - terser "^5.15.0" - metro-minify-terser@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.9.tgz#3f6271da74dd57179852118443b62cc8dc578aab" @@ -11241,20 +11141,6 @@ metro-minify-uglify@0.73.10: dependencies: uglify-es "^3.1.9" -metro-minify-uglify@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz#3e0143786718dcaea4e28a724698d4f8ac199a43" - integrity sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw== - dependencies: - uglify-es "^3.1.9" - -metro-minify-uglify@0.76.9: - version "0.76.9" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.9.tgz#e88c30c27911c053e1ee20e12077f0f4cbb154f8" - integrity sha512-MXRrM3lFo62FPISlPfTqC6n9HTEI3RJjDU5SvpE7sJFfJKLx02xXQEltsL/wzvEqK+DhRQ5DEYACTwf5W4Z3yA== - dependencies: - uglify-es "^3.1.9" - metro-minify-uglify@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.9.tgz#e88c30c27911c053e1ee20e12077f0f4cbb154f8" @@ -11395,51 +11281,6 @@ metro-react-native-babel-preset@0.76.8: babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.4.0" -metro-react-native-babel-preset@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.8.tgz#7476efae14363cbdfeeec403b4f01d7348e6c048" - integrity sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.18.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.20.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.20.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.20.0" - "@babel/plugin-transform-flow-strip-types" "^7.20.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.4.0" - metro-react-native-babel-preset@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.9.tgz#15868142122af14313429d7572c15cf01c16f077" @@ -11511,17 +11352,6 @@ metro-react-native-babel-transformer@0.73.5: metro-source-map "0.73.5" nullthrows "^1.1.1" -metro-react-native-babel-transformer@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz#c3a98e1f4cd5faf1e21eba8e004b94a90c4db69b" - integrity sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A== - dependencies: - "@babel/core" "^7.20.0" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.12.0" - metro-react-native-babel-preset "0.76.8" - nullthrows "^1.1.1" - metro-react-native-babel-transformer@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.9.tgz#464aab85669ed39f7a59f1fd993a05de9543b09e" @@ -11540,12 +11370,7 @@ metro-resolver@0.73.10: dependencies: absolute-path "^0.0.0" -metro-resolver@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.7.tgz#f00ebead64e451c060f30926ecbf4f797588df52" - integrity sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA== - -metro-resolver@0.76.9: +metro-resolver@0.76.9, metro-resolver@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.9.tgz#79c244784b16ca56076bc1fc816d2ba74860e882" integrity sha512-s86ipNRas9vNR5lChzzSheF7HoaQEmzxBLzwFA6/2YcGmUCowcoyPAfs1yPh4cjMw9F1T4KlMLaiwniGE7HCyw== @@ -11573,14 +11398,6 @@ metro-runtime@0.73.5: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" -metro-runtime@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.7.tgz#4d75f2dbbcd19a4f01e0d89494e140b0ba8247e4" - integrity sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug== - dependencies: - "@babel/runtime" "^7.0.0" - react-refresh "^0.4.0" - metro-runtime@0.76.9, metro-runtime@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.9.tgz#f8ebe150f8896ce1aef5d7f3a52844f8b4f721fb" @@ -11625,21 +11442,7 @@ metro-source-map@0.73.5: source-map "^0.5.6" vlq "^1.0.0" -metro-source-map@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.8.tgz#f085800152a6ba0b41ca26833874d31ec36c5a53" - integrity sha512-Hh0ncPsHPVf6wXQSqJqB3K9Zbudht4aUtNpNXYXSxH+pteWqGAXnjtPsRAnCsCWl38wL0jYF0rJDdMajUI3BDw== - dependencies: - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - invariant "^2.2.4" - metro-symbolicate "0.76.8" - nullthrows "^1.1.1" - ob1 "0.76.8" - source-map "^0.5.6" - vlq "^1.0.0" - -metro-source-map@0.76.9: +metro-source-map@0.76.9, metro-source-map@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.9.tgz#0f976ada836717f307427d3830aea52a2ca7ed5f" integrity sha512-q5qsMlu8EFvsT46wUUh+ao+efDsicT30zmaPATNhq+PcTawDbDgnMuUD+FT0bvxxnisU2PWl91RdzKfNc2qPQA== @@ -11692,18 +11495,6 @@ metro-symbolicate@0.73.5: through2 "^2.0.1" vlq "^1.0.0" -metro-symbolicate@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz#f102ac1a306d51597ecc8fdf961c0a88bddbca03" - integrity sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w== - dependencies: - invariant "^2.2.4" - metro-source-map "0.76.8" - nullthrows "^1.1.1" - source-map "^0.5.6" - through2 "^2.0.1" - vlq "^1.0.0" - metro-symbolicate@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.9.tgz#f1627ef6f73bb0c4d48c55684d3c87866a0b0920" @@ -11740,17 +11531,6 @@ metro-transform-plugins@0.73.10: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-plugins@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz#d77c28a6547a8e3b72250f740fcfbd7f5408f8ba" - integrity sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.20.0" - nullthrows "^1.1.1" - metro-transform-plugins@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.9.tgz#73e34f2014d3df3c336a882b13e541bceb826d37" @@ -11793,24 +11573,6 @@ metro-transform-worker@0.73.10: metro-transform-plugins "0.73.10" nullthrows "^1.1.1" -metro-transform-worker@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz#b842d5a542f1806cca401633fc002559b3e3d668" - integrity sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/types" "^7.20.0" - babel-preset-fbjs "^3.4.0" - metro "0.76.7" - metro-babel-transformer "0.76.7" - metro-cache "0.76.7" - metro-cache-key "0.76.7" - metro-source-map "0.76.7" - metro-transform-plugins "0.76.7" - nullthrows "^1.1.1" - metro-transform-worker@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.9.tgz#281fad223f0447e1ff9cc44d6f7e33dfab9ab120" @@ -11906,61 +11668,7 @@ metro@0.73.10: ws "^7.5.1" yargs "^17.5.1" -metro@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.8.tgz#ba526808b99977ca3f9ac5a7432fd02a340d13a6" - integrity sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - accepts "^1.3.7" - async "^3.2.2" - chalk "^4.0.0" - ci-info "^2.0.0" - connect "^3.6.5" - debug "^2.2.0" - denodeify "^1.2.1" - error-stack-parser "^2.0.6" - graceful-fs "^4.2.4" - hermes-parser "0.12.0" - image-size "^1.0.2" - invariant "^2.2.4" - jest-worker "^27.2.0" - jsc-safe-url "^0.2.2" - lodash.throttle "^4.1.1" - metro-babel-transformer "0.76.8" - metro-cache "0.76.8" - metro-cache-key "0.76.8" - metro-config "0.76.8" - metro-core "0.76.8" - metro-file-map "0.76.8" - metro-inspector-proxy "0.76.8" - metro-minify-terser "0.76.8" - metro-minify-uglify "0.76.8" - metro-react-native-babel-preset "0.76.8" - metro-resolver "0.76.8" - metro-runtime "0.76.8" - metro-source-map "0.76.8" - metro-symbolicate "0.76.8" - metro-transform-plugins "0.76.8" - metro-transform-worker "0.76.8" - mime-types "^2.1.27" - node-fetch "^2.2.0" - nullthrows "^1.1.1" - rimraf "^3.0.2" - serialize-error "^2.1.0" - source-map "^0.5.6" - strip-ansi "^6.0.0" - throat "^5.0.0" - ws "^7.5.1" - yargs "^17.6.2" - -metro@0.76.9: +metro@0.76.9, metro@^0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.9.tgz#605fddf1a54d27762ddba2f636420ae2408862df" integrity sha512-gcjcfs0l5qIPg0lc5P7pj0x7vPJ97tan+OnEjiYLbKjR1D7Oa78CE93YUPyymUPH6q7VzlzMm1UjT35waEkZUw== @@ -12785,11 +12493,6 @@ ob1@0.73.5: resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.5.tgz#b80dc4a6f787044e3d8afde3c2d034ae23d05a86" integrity sha512-MxQH/rCq9/COvgTQbjCldArmesGEidZVVQIn4vDUJvJJ8uMphXOTCBsgWTief2ugvb0WUimIaslKSA+qryFjjQ== -ob1@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.7.tgz#95b68fadafd47e7a6a0ad64cf80f3140dd6d1124" - integrity sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ== - ob1@0.76.9: version "0.76.9" resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.9.tgz#a493e4b83a0fb39200de639804b5d06eed5599dc" From cc7a607db54aa344bf6a25255c7efc13f00e8f94 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Wed, 4 Sep 2024 20:42:18 +0000 Subject: [PATCH 26/50] chore(release): Set core metadata [skip release] --- packages/core/metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/metadata b/packages/core/metadata index 8671bb0c082..2243de0562d 100644 --- a/packages/core/metadata +++ b/packages/core/metadata @@ -1 +1 @@ -1b30108ce +af85cb83f From af7e31a49fc1ad9f4e093d0d6129ea9c6b750d89 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Wed, 4 Sep 2024 20:42:33 +0000 Subject: [PATCH 27/50] chore(release): Publish [skip release] - @aws-amplify/adapter-nextjs@1.2.17 - @aws-amplify/analytics@7.0.47 - @aws-amplify/api@6.0.49 - @aws-amplify/api-graphql@4.3.0 - @aws-amplify/api-rest@4.0.47 - @aws-amplify/auth@6.4.0 - aws-amplify@6.6.0 - @aws-amplify/core@6.4.0 - @aws-amplify/datastore@5.0.49 - @aws-amplify/datastore-storage-adapter@2.1.49 - @aws-amplify/geo@3.0.47 - @aws-amplify/interactions@6.0.46 - @aws-amplify/notifications@2.0.47 - @aws-amplify/predictions@6.1.22 - @aws-amplify/pubsub@6.1.22 - @aws-amplify/react-native@1.1.5 - @aws-amplify/rtn-web-browser@1.1.0 - @aws-amplify/storage@6.6.5 - tsc-compliance-test@0.1.52 --- packages/adapter-nextjs/CHANGELOG.md | 4 ++++ packages/adapter-nextjs/package.json | 4 ++-- packages/analytics/CHANGELOG.md | 4 ++++ packages/analytics/package.json | 6 +++--- packages/api-graphql/CHANGELOG.md | 6 ++++++ packages/api-graphql/package.json | 6 +++--- packages/api-rest/CHANGELOG.md | 4 ++++ packages/api-rest/package.json | 6 +++--- packages/api/CHANGELOG.md | 4 ++++ packages/api/package.json | 6 +++--- packages/auth/CHANGELOG.md | 6 ++++++ packages/auth/package.json | 6 +++--- packages/aws-amplify/CHANGELOG.md | 7 +++++++ packages/aws-amplify/package.json | 16 ++++++++-------- packages/core/CHANGELOG.md | 6 ++++++ packages/core/package.json | 4 ++-- packages/datastore-storage-adapter/CHANGELOG.md | 4 ++++ packages/datastore-storage-adapter/package.json | 6 +++--- packages/datastore/CHANGELOG.md | 4 ++++ packages/datastore/package.json | 8 ++++---- packages/geo/CHANGELOG.md | 4 ++++ packages/geo/package.json | 4 ++-- packages/interactions/CHANGELOG.md | 4 ++++ packages/interactions/package.json | 4 ++-- packages/notifications/CHANGELOG.md | 4 ++++ packages/notifications/package.json | 6 +++--- packages/predictions/CHANGELOG.md | 4 ++++ packages/predictions/package.json | 6 +++--- packages/pubsub/CHANGELOG.md | 4 ++++ packages/pubsub/package.json | 6 +++--- packages/react-native/CHANGELOG.md | 4 ++++ packages/react-native/package.json | 4 ++-- packages/rtn-web-browser/CHANGELOG.md | 6 ++++++ packages/rtn-web-browser/package.json | 2 +- packages/storage/CHANGELOG.md | 4 ++++ packages/storage/package.json | 6 +++--- scripts/tsc-compliance-test/CHANGELOG.md | 4 ++++ scripts/tsc-compliance-test/package.json | 4 ++-- 38 files changed, 142 insertions(+), 55 deletions(-) diff --git a/packages/adapter-nextjs/CHANGELOG.md b/packages/adapter-nextjs/CHANGELOG.md index bfa0c6f600a..f6189b7fd38 100644 --- a/packages/adapter-nextjs/CHANGELOG.md +++ b/packages/adapter-nextjs/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.17](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.16...@aws-amplify/adapter-nextjs@1.2.17) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/adapter-nextjs + ## [1.2.16](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.15...@aws-amplify/adapter-nextjs@1.2.16) (2024-09-03) ### Bug Fixes diff --git a/packages/adapter-nextjs/package.json b/packages/adapter-nextjs/package.json index da249883ca6..ca1d9909000 100644 --- a/packages/adapter-nextjs/package.json +++ b/packages/adapter-nextjs/package.json @@ -1,7 +1,7 @@ { "author": "Amazon Web Services", "name": "@aws-amplify/adapter-nextjs", - "version": "1.2.16", + "version": "1.2.17", "description": "The adapter for the supporting of using Amplify APIs in Next.js.", "peerDependencies": { "aws-amplify": "^6.0.7", @@ -16,7 +16,7 @@ "@types/node": "^20.3.1", "@types/react": "^18.2.13", "@types/react-dom": "^18.2.6", - "aws-amplify": "6.5.4", + "aws-amplify": "6.6.0", "jest-fetch-mock": "3.0.3", "next": ">= 13.5.0 < 15.0.0", "typescript": "5.0.2" diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md index 7b43dc3d4c2..18dfc9a627c 100644 --- a/packages/analytics/CHANGELOG.md +++ b/packages/analytics/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.46...@aws-amplify/analytics@7.0.47) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/analytics + ## [7.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.45...@aws-amplify/analytics@7.0.46) (2024-09-03) **Note:** Version bump only for package @aws-amplify/analytics diff --git a/packages/analytics/package.json b/packages/analytics/package.json index cccfb008b3e..49e5b49d96d 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/analytics", - "version": "7.0.46", + "version": "7.0.47", "description": "Analytics category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -103,8 +103,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "@aws-sdk/types": "3.398.0", "typescript": "5.0.2" } diff --git a/packages/api-graphql/CHANGELOG.md b/packages/api-graphql/CHANGELOG.md index 7e0bb6a244b..2635af8b137 100644 --- a/packages/api-graphql/CHANGELOG.md +++ b/packages/api-graphql/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.3.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.2.1...@aws-amplify/api-graphql@4.3.0) (2024-09-04) + +### Features + +- **api-graphql:** pass authToken via subprotocol ([#13727](https://github.com/aws-amplify/amplify-js/issues/13727)) ([ced891c](https://github.com/aws-amplify/amplify-js/commit/ced891c2e4f6b0f1fdeaf44ab80cae9d585b6d15)) + ## [4.2.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.2.0...@aws-amplify/api-graphql@4.2.1) (2024-09-03) **Note:** Version bump only for package @aws-amplify/api-graphql diff --git a/packages/api-graphql/package.json b/packages/api-graphql/package.json index 076ba2dc6ae..ae98edafa95 100644 --- a/packages/api-graphql/package.json +++ b/packages/api-graphql/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api-graphql", - "version": "4.2.1", + "version": "4.3.0", "description": "Api-graphql category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -84,8 +84,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-rest": "4.0.46", - "@aws-amplify/core": "6.3.13", + "@aws-amplify/api-rest": "4.0.47", + "@aws-amplify/core": "6.4.0", "@aws-amplify/data-schema": "^1.0.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", diff --git a/packages/api-rest/CHANGELOG.md b/packages/api-rest/CHANGELOG.md index 73b62a515fe..378344c8fe6 100644 --- a/packages/api-rest/CHANGELOG.md +++ b/packages/api-rest/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.46...@aws-amplify/api-rest@4.0.47) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/api-rest + ## [4.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.45...@aws-amplify/api-rest@4.0.46) (2024-09-03) **Note:** Version bump only for package @aws-amplify/api-rest diff --git a/packages/api-rest/package.json b/packages/api-rest/package.json index 916cd6df527..8a7874ad183 100644 --- a/packages/api-rest/package.json +++ b/packages/api-rest/package.json @@ -1,7 +1,7 @@ { "name": "@aws-amplify/api-rest", "private": false, - "version": "4.0.46", + "version": "4.0.47", "description": "Api-rest category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -87,8 +87,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index a405d39e4b7..e58e7bbd920 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.48...@aws-amplify/api@6.0.49) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/api + ## [6.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.47...@aws-amplify/api@6.0.48) (2024-09-03) **Note:** Version bump only for package @aws-amplify/api diff --git a/packages/api/package.json b/packages/api/package.json index 649dad7c19a..35451cfa83a 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api", - "version": "6.0.48", + "version": "6.0.49", "description": "Api category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -79,8 +79,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-graphql": "4.2.1", - "@aws-amplify/api-rest": "4.0.46", + "@aws-amplify/api-graphql": "4.3.0", + "@aws-amplify/api-rest": "4.0.47", "tslib": "^2.5.0" } } diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index 69b5c0b3b1a..9441a03a56a 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.4.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.17...@aws-amplify/auth@6.4.0) (2024-09-04) + +### Features + +- **auth:** HostedUI oidc signout ([#13512](https://github.com/aws-amplify/amplify-js/issues/13512)) ([e8fb997](https://github.com/aws-amplify/amplify-js/commit/e8fb9973f8e3e3490619416a778ec1460cafaf9a)), closes [#13712](https://github.com/aws-amplify/amplify-js/issues/13712) [#13736](https://github.com/aws-amplify/amplify-js/issues/13736) + ## [6.3.17](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.16...@aws-amplify/auth@6.3.17) (2024-09-03) **Note:** Version bump only for package @aws-amplify/auth diff --git a/packages/auth/package.json b/packages/auth/package.json index 7963232d851..81032ed1b5e 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/auth", - "version": "6.3.17", + "version": "6.4.0", "description": "Auth category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -97,8 +97,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "@jest/test-sequencer": "^29.7.0", "typescript": "5.0.2" } diff --git a/packages/aws-amplify/CHANGELOG.md b/packages/aws-amplify/CHANGELOG.md index b9302cbdc77..50cf7bd31d8 100644 --- a/packages/aws-amplify/CHANGELOG.md +++ b/packages/aws-amplify/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.6.0](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.4...aws-amplify@6.6.0) (2024-09-04) + +### Features + +- **api-graphql:** pass authToken via subprotocol ([#13727](https://github.com/aws-amplify/amplify-js/issues/13727)) ([ced891c](https://github.com/aws-amplify/amplify-js/commit/ced891c2e4f6b0f1fdeaf44ab80cae9d585b6d15)) +- **auth:** HostedUI oidc signout ([#13512](https://github.com/aws-amplify/amplify-js/issues/13512)) ([e8fb997](https://github.com/aws-amplify/amplify-js/commit/e8fb9973f8e3e3490619416a778ec1460cafaf9a)), closes [#13712](https://github.com/aws-amplify/amplify-js/issues/13712) [#13736](https://github.com/aws-amplify/amplify-js/issues/13736) + ## [6.5.4](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.3...aws-amplify@6.5.4) (2024-09-03) **Note:** Version bump only for package aws-amplify diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index a5bbb244579..ceb48b8fa23 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -1,6 +1,6 @@ { "name": "aws-amplify", - "version": "6.5.4", + "version": "6.6.0", "description": "AWS Amplify is a JavaScript library for Frontend and mobile developers building cloud-enabled applications.", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -276,13 +276,13 @@ "utils" ], "dependencies": { - "@aws-amplify/analytics": "7.0.46", - "@aws-amplify/api": "6.0.48", - "@aws-amplify/auth": "6.3.17", - "@aws-amplify/core": "6.3.13", - "@aws-amplify/datastore": "5.0.48", - "@aws-amplify/notifications": "2.0.46", - "@aws-amplify/storage": "6.6.4", + "@aws-amplify/analytics": "7.0.47", + "@aws-amplify/api": "6.0.49", + "@aws-amplify/auth": "6.4.0", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/datastore": "5.0.49", + "@aws-amplify/notifications": "2.0.47", + "@aws-amplify/storage": "6.6.5", "tslib": "^2.5.0" }, "devDependencies": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 5dde8f051aa..a067fe29edd 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.4.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.13...@aws-amplify/core@6.4.0) (2024-09-04) + +### Features + +- **api-graphql:** pass authToken via subprotocol ([#13727](https://github.com/aws-amplify/amplify-js/issues/13727)) ([ced891c](https://github.com/aws-amplify/amplify-js/commit/ced891c2e4f6b0f1fdeaf44ab80cae9d585b6d15)) + ## [6.3.13](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.12...@aws-amplify/core@6.3.13) (2024-09-03) **Note:** Version bump only for package @aws-amplify/core diff --git a/packages/core/package.json b/packages/core/package.json index 3c4d69e7382..44e700c068d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/core", - "version": "6.3.13", + "version": "6.4.0", "description": "Core category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -60,7 +60,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/react-native": "1.1.5", "@types/js-cookie": "3.0.2", "genversion": "^2.2.0", "typescript": "5.0.2" diff --git a/packages/datastore-storage-adapter/CHANGELOG.md b/packages/datastore-storage-adapter/CHANGELOG.md index d29a6863038..938a74baa18 100644 --- a/packages/datastore-storage-adapter/CHANGELOG.md +++ b/packages/datastore-storage-adapter/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.48...@aws-amplify/datastore-storage-adapter@2.1.49) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + ## [2.1.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.47...@aws-amplify/datastore-storage-adapter@2.1.48) (2024-09-03) **Note:** Version bump only for package @aws-amplify/datastore-storage-adapter diff --git a/packages/datastore-storage-adapter/package.json b/packages/datastore-storage-adapter/package.json index ec6dff8e576..cdfb7b16dfe 100644 --- a/packages/datastore-storage-adapter/package.json +++ b/packages/datastore-storage-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore-storage-adapter", - "version": "2.1.48", + "version": "2.1.49", "description": "SQLite storage adapter for Amplify DataStore ", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -36,8 +36,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", - "@aws-amplify/datastore": "5.0.48", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/datastore": "5.0.49", "@types/react-native-sqlite-storage": "5.0.1", "expo-file-system": "13.1.4", "expo-sqlite": "10.1.0", diff --git a/packages/datastore/CHANGELOG.md b/packages/datastore/CHANGELOG.md index c3caab6feea..4ed6212011c 100644 --- a/packages/datastore/CHANGELOG.md +++ b/packages/datastore/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.48...@aws-amplify/datastore@5.0.49) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/datastore + ## [5.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.47...@aws-amplify/datastore@5.0.48) (2024-09-03) **Note:** Version bump only for package @aws-amplify/datastore diff --git a/packages/datastore/package.json b/packages/datastore/package.json index 3e489040e51..a5f9e320ba0 100644 --- a/packages/datastore/package.json +++ b/packages/datastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore", - "version": "5.0.48", + "version": "5.0.49", "description": "AppSyncLocal support for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -44,7 +44,7 @@ "src" ], "dependencies": { - "@aws-amplify/api": "6.0.48", + "@aws-amplify/api": "6.0.49", "buffer": "4.9.2", "idb": "5.0.6", "immer": "9.0.6", @@ -55,8 +55,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "@types/uuid-validate": "^0.0.1", "dexie": "3.2.2", "dexie-export-import": "1.0.3", diff --git a/packages/geo/CHANGELOG.md b/packages/geo/CHANGELOG.md index 0dcb421354e..a0ec1fda10c 100644 --- a/packages/geo/CHANGELOG.md +++ b/packages/geo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.46...@aws-amplify/geo@3.0.47) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/geo + ## [3.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.45...@aws-amplify/geo@3.0.46) (2024-09-03) **Note:** Version bump only for package @aws-amplify/geo diff --git a/packages/geo/package.json b/packages/geo/package.json index 3568904aa72..517bd975c51 100644 --- a/packages/geo/package.json +++ b/packages/geo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/geo", - "version": "3.0.46", + "version": "3.0.47", "description": "Geo category for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -76,7 +76,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", + "@aws-amplify/core": "6.4.0", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/interactions/CHANGELOG.md b/packages/interactions/CHANGELOG.md index f3546e0a581..4ec6748dccc 100644 --- a/packages/interactions/CHANGELOG.md +++ b/packages/interactions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.45...@aws-amplify/interactions@6.0.46) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/interactions + ## [6.0.45](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.44...@aws-amplify/interactions@6.0.45) (2024-09-03) **Note:** Version bump only for package @aws-amplify/interactions diff --git a/packages/interactions/package.json b/packages/interactions/package.json index 45f1eaf28ba..916cf22ff5c 100644 --- a/packages/interactions/package.json +++ b/packages/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/interactions", - "version": "6.0.45", + "version": "6.0.46", "description": "Interactions category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -81,7 +81,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", + "@aws-amplify/core": "6.4.0", "typescript": "^5.0.2" }, "size-limit": [ diff --git a/packages/notifications/CHANGELOG.md b/packages/notifications/CHANGELOG.md index d02f09ba4f7..ed1872cad49 100644 --- a/packages/notifications/CHANGELOG.md +++ b/packages/notifications/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.46...@aws-amplify/notifications@2.0.47) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/notifications + ## [2.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.45...@aws-amplify/notifications@2.0.46) (2024-09-03) **Note:** Version bump only for package @aws-amplify/notifications diff --git a/packages/notifications/package.json b/packages/notifications/package.json index b8d5f42ffba..176dd2da556 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/notifications", - "version": "2.0.46", + "version": "2.0.47", "description": "Notifications category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -98,8 +98,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" } } diff --git a/packages/predictions/CHANGELOG.md b/packages/predictions/CHANGELOG.md index 344aafe94bf..ca05ca840e3 100644 --- a/packages/predictions/CHANGELOG.md +++ b/packages/predictions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.22](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.21...@aws-amplify/predictions@6.1.22) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/predictions + ## [6.1.21](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.20...@aws-amplify/predictions@6.1.21) (2024-09-03) **Note:** Version bump only for package @aws-amplify/predictions diff --git a/packages/predictions/package.json b/packages/predictions/package.json index 21d5fbb8c87..4d605881b28 100644 --- a/packages/predictions/package.json +++ b/packages/predictions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/predictions", - "version": "6.1.21", + "version": "6.1.22", "description": "Machine learning category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -43,7 +43,7 @@ "src" ], "dependencies": { - "@aws-amplify/storage": "6.6.4", + "@aws-amplify/storage": "6.6.5", "@aws-sdk/client-comprehend": "3.621.0", "@aws-sdk/client-polly": "3.621.0", "@aws-sdk/client-rekognition": "3.621.0", @@ -59,7 +59,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", + "@aws-amplify/core": "6.4.0", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index 44ceecbb0d3..c76f43577f2 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.22](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.21...@aws-amplify/pubsub@6.1.22) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/pubsub + ## [6.1.21](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.20...@aws-amplify/pubsub@6.1.21) (2024-09-03) **Note:** Version bump only for package @aws-amplify/pubsub diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 2a2479e34fd..043eba118a2 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/pubsub", - "version": "6.1.21", + "version": "6.1.22", "description": "Pubsub category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -73,7 +73,7 @@ "mqtt" ], "dependencies": { - "@aws-amplify/auth": "6.3.17", + "@aws-amplify/auth": "6.4.0", "buffer": "4.9.2", "graphql": "15.8.0", "rxjs": "^7.8.1", @@ -84,7 +84,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", + "@aws-amplify/core": "6.4.0", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/react-native/CHANGELOG.md b/packages/react-native/CHANGELOG.md index 9798ff01dbc..b0781ff55cd 100644 --- a/packages/react-native/CHANGELOG.md +++ b/packages/react-native/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.5](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/react-native@1.1.4...@aws-amplify/react-native@1.1.5) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/react-native + ## [1.1.4](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/react-native@1.1.3...@aws-amplify/react-native@1.1.4) (2024-07-23) **Note:** Version bump only for package @aws-amplify/react-native diff --git a/packages/react-native/package.json b/packages/react-native/package.json index b347135b43a..a8f470b33e1 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/react-native", - "version": "1.1.4", + "version": "1.1.5", "description": "React Native core module for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -34,7 +34,7 @@ }, "devDependencies": { "@aws-amplify/rtn-push-notification": "1.2.31", - "@aws-amplify/rtn-web-browser": "1.0.31", + "@aws-amplify/rtn-web-browser": "1.1.0", "@react-native-async-storage/async-storage": "^1.17.12", "@react-native-community/netinfo": "4.7.0", "@types/base-64": "1.0.0", diff --git a/packages/rtn-web-browser/CHANGELOG.md b/packages/rtn-web-browser/CHANGELOG.md index 22f6623f5a2..468990e929c 100644 --- a/packages/rtn-web-browser/CHANGELOG.md +++ b/packages/rtn-web-browser/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.1.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/rtn-web-browser@1.0.31...@aws-amplify/rtn-web-browser@1.1.0) (2024-09-04) + +### Features + +- **auth:** HostedUI oidc signout ([#13512](https://github.com/aws-amplify/amplify-js/issues/13512)) ([e8fb997](https://github.com/aws-amplify/amplify-js/commit/e8fb9973f8e3e3490619416a778ec1460cafaf9a)), closes [#13712](https://github.com/aws-amplify/amplify-js/issues/13712) [#13736](https://github.com/aws-amplify/amplify-js/issues/13736) + ## [1.0.31](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/rtn-web-browser@1.0.30...@aws-amplify/rtn-web-browser@1.0.31) (2024-07-23) ### Bug Fixes diff --git a/packages/rtn-web-browser/package.json b/packages/rtn-web-browser/package.json index edfc4bf0023..f9230a22232 100644 --- a/packages/rtn-web-browser/package.json +++ b/packages/rtn-web-browser/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/rtn-web-browser", - "version": "1.0.31", + "version": "1.1.0", "description": "React Native module for aws-amplify web browser", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index 6e447c89979..0abef255db5 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.5](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.4...@aws-amplify/storage@6.6.5) (2024-09-04) + +**Note:** Version bump only for package @aws-amplify/storage + ## [6.6.4](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.3...@aws-amplify/storage@6.6.4) (2024-09-03) **Note:** Version bump only for package @aws-amplify/storage diff --git a/packages/storage/package.json b/packages/storage/package.json index f9c4d56098b..5d426e7c0fe 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/storage", - "version": "6.6.4", + "version": "6.6.5", "description": "Storage category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -101,8 +101,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.3.13", - "@aws-amplify/react-native": "1.1.4", + "@aws-amplify/core": "6.4.0", + "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" } } diff --git a/scripts/tsc-compliance-test/CHANGELOG.md b/scripts/tsc-compliance-test/CHANGELOG.md index b91050c6566..0ec07419208 100644 --- a/scripts/tsc-compliance-test/CHANGELOG.md +++ b/scripts/tsc-compliance-test/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.52](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.51...tsc-compliance-test@0.1.52) (2024-09-04) + +**Note:** Version bump only for package tsc-compliance-test + ## [0.1.51](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.50...tsc-compliance-test@0.1.51) (2024-09-03) **Note:** Version bump only for package tsc-compliance-test diff --git a/scripts/tsc-compliance-test/package.json b/scripts/tsc-compliance-test/package.json index 8025b0abd31..85be6d5064a 100644 --- a/scripts/tsc-compliance-test/package.json +++ b/scripts/tsc-compliance-test/package.json @@ -1,11 +1,11 @@ { "name": "tsc-compliance-test", - "version": "0.1.51", + "version": "0.1.52", "license": "MIT", "private": true, "devDependencies": { "@types/node": "16.18.82", - "aws-amplify": "6.5.4", + "aws-amplify": "6.6.0", "typescript": "4.2.x" }, "scripts": { From be1442d9591e5df92e5b88320b437857825fd3df Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Wed, 4 Sep 2024 20:43:59 +0000 Subject: [PATCH 28/50] chore(release): Update API docs [skip release] --- docs/api/assets/search.js | 2 +- ...mplify_adapter_nextjs.index._Reference_Types_.Blob.html | 7 ++++++- ...ws_amplify.auth._Reference_Types_.AuthSignOutInput.html | 5 +++-- docs/api/modules/_aws_amplify_adapter_nextjs.html | 4 ++-- .../modules/_aws_amplify_datastore_storage_adapter.html | 4 ++-- docs/api/modules/_aws_amplify_geo.html | 4 ++-- docs/api/modules/_aws_amplify_interactions.html | 4 ++-- docs/api/modules/_aws_amplify_predictions.html | 4 ++-- docs/api/modules/_aws_amplify_pubsub.html | 4 ++-- docs/api/modules/aws_amplify.html | 4 ++-- 10 files changed, 24 insertions(+), 18 deletions(-) diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index ba398a786d0..e7380ba25ab 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/api/classes/_aws_amplify_adapter_nextjs.index._Reference_Types_.Blob.html b/docs/api/classes/_aws_amplify_adapter_nextjs.index._Reference_Types_.Blob.html index 5e8597b6d59..d7a6a1fb1bc 100644 --- a/docs/api/classes/_aws_amplify_adapter_nextjs.index._Reference_Types_.Blob.html +++ b/docs/api/classes/_aws_amplify_adapter_nextjs.index._Reference_Types_.Blob.html @@ -6,6 +6,7 @@

Properties

Methods

arrayBuffer +bytes slice stream text @@ -20,6 +21,10 @@

Methods

  • Returns a promise that fulfills with an ArrayBuffer containing a copy of the Blob data.

    Returns Promise<ArrayBuffer>

    Since

    v15.7.0, v14.18.0

    +
  • The blob.bytes() method returns the byte of the Blob object as a Promise<Uint8Array>.

    +
    const blob = new Blob(['hello']);
    blob.bytes().then((bytes) => {
    console.log(bytes); // Outputs: Uint8Array(5) [ 104, 101, 108, 108, 111 ]
    }); +
    +

    Returns Promise<Uint8Array>

    Since

    v20.16.0

  • Creates and returns a new Blob containing a subset of this Blob objects data. The original Blob is not altered.

    Parameters

    • Optional start: number

      The starting index.

      @@ -31,4 +36,4 @@
  • Returns a promise that fulfills with the contents of the Blob decoded as a UTF-8 string.

    Returns Promise<string>

    Since

    v15.7.0, v14.18.0

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.auth._Reference_Types_.AuthSignOutInput.html b/docs/api/interfaces/aws_amplify.auth._Reference_Types_.AuthSignOutInput.html index 31c54915f61..ff7c2a06a74 100644 --- a/docs/api/interfaces/aws_amplify.auth._Reference_Types_.AuthSignOutInput.html +++ b/docs/api/interfaces/aws_amplify.auth._Reference_Types_.AuthSignOutInput.html @@ -1,3 +1,4 @@ AuthSignOutInput | Amplify JS API Documentation -
interface AuthSignOutInput {
    global: boolean;
}

Properties

Properties

global: boolean
\ No newline at end of file +
interface AuthSignOutInput {
    global: boolean;
    oauth?: {
        redirectUrl?: string;
    };
}

Properties

Properties

global: boolean
oauth?: {
    redirectUrl?: string;
}

Type declaration

  • Optional redirectUrl?: string
\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_adapter_nextjs.html b/docs/api/modules/_aws_amplify_adapter_nextjs.html index 6a83b692489..1ed6caaeb92 100644 --- a/docs/api/modules/_aws_amplify_adapter_nextjs.html +++ b/docs/api/modules/_aws_amplify_adapter_nextjs.html @@ -1,5 +1,5 @@ -@aws-amplify/adapter-nextjs - v1.2.16 | Amplify JS API Documentation -

Module @aws-amplify/adapter-nextjs - v1.2.16

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

+@aws-amplify/adapter-nextjs - v1.2.17 | Amplify JS API Documentation +

Module @aws-amplify/adapter-nextjs - v1.2.17

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

Index

Modules

api index utils diff --git a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html index b80708f5a82..44d0c2fe117 100644 --- a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html +++ b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html @@ -1,5 +1,5 @@ -@aws-amplify/datastore-storage-adapter - v2.1.48 | Amplify JS API Documentation -

Module @aws-amplify/datastore-storage-adapter - v2.1.48

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

+@aws-amplify/datastore-storage-adapter - v2.1.49 | Amplify JS API Documentation +

Module @aws-amplify/datastore-storage-adapter - v2.1.49

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

Index

Modules

ExpoSQLiteAdapter/ExpoSQLiteAdapter SQLiteAdapter/SQLiteAdapter index diff --git a/docs/api/modules/_aws_amplify_geo.html b/docs/api/modules/_aws_amplify_geo.html index 0fa4a29bdfb..66383451311 100644 --- a/docs/api/modules/_aws_amplify_geo.html +++ b/docs/api/modules/_aws_amplify_geo.html @@ -1,5 +1,5 @@ -@aws-amplify/geo - v3.0.46 | Amplify JS API Documentation -

Module @aws-amplify/geo - v3.0.46

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

+@aws-amplify/geo - v3.0.47 | Amplify JS API Documentation +

Module @aws-amplify/geo - v3.0.47

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

Index

Modules

\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_interactions.html b/docs/api/modules/_aws_amplify_interactions.html index aa0d6204c36..85a698f2c4f 100644 --- a/docs/api/modules/_aws_amplify_interactions.html +++ b/docs/api/modules/_aws_amplify_interactions.html @@ -1,5 +1,5 @@ -@aws-amplify/interactions - v6.0.45 | Amplify JS API Documentation -

Module @aws-amplify/interactions - v6.0.45

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

+@aws-amplify/interactions - v6.0.46 | Amplify JS API Documentation +

Module @aws-amplify/interactions - v6.0.46

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

Index

Modules

index lex-v1 lex-v2 diff --git a/docs/api/modules/_aws_amplify_predictions.html b/docs/api/modules/_aws_amplify_predictions.html index 2206649e7d5..66fee9cc27a 100644 --- a/docs/api/modules/_aws_amplify_predictions.html +++ b/docs/api/modules/_aws_amplify_predictions.html @@ -1,5 +1,5 @@ -@aws-amplify/predictions - v6.1.21 | Amplify JS API Documentation -

Module @aws-amplify/predictions - v6.1.21

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

+@aws-amplify/predictions - v6.1.22 | Amplify JS API Documentation +

Module @aws-amplify/predictions - v6.1.22

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

Index

Modules

Interfaces

IdentifyEntitiesInput IdentifyEntitiesOutput diff --git a/docs/api/modules/_aws_amplify_pubsub.html b/docs/api/modules/_aws_amplify_pubsub.html index 9f2b972d2bd..0f49860a3f3 100644 --- a/docs/api/modules/_aws_amplify_pubsub.html +++ b/docs/api/modules/_aws_amplify_pubsub.html @@ -1,5 +1,5 @@ -@aws-amplify/pubsub - v6.1.21 | Amplify JS API Documentation -

Module @aws-amplify/pubsub - v6.1.21

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

+@aws-amplify/pubsub - v6.1.22 | Amplify JS API Documentation +

Module @aws-amplify/pubsub - v6.1.22

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

Index

Modules

clients/iot clients/mqtt index diff --git a/docs/api/modules/aws_amplify.html b/docs/api/modules/aws_amplify.html index b1e2977c092..13dc39c24b9 100644 --- a/docs/api/modules/aws_amplify.html +++ b/docs/api/modules/aws_amplify.html @@ -1,5 +1,5 @@ -aws-amplify - v6.5.4 | Amplify JS API Documentation -

Module aws-amplify - v6.5.4

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

+aws-amplify - v6.6.0 | Amplify JS API Documentation +

Module aws-amplify - v6.6.0

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

Documentation is available here.

Index

Modules

adapter-core analytics From 36607e8a89acd7df60959cb0a00762d89ba28634 Mon Sep 17 00:00:00 2001 From: AllanZhengYP Date: Wed, 4 Sep 2024 21:37:22 -0700 Subject: [PATCH 29/50] fix(storage-browser): missing error wrapping for s3 control responses (#13779) --- packages/aws-amplify/package.json | 14 ++--- .../s3/utils/client/S3/cases/getDataAccess.ts | 10 +-- .../client/S3/cases/listCallerAccessGrants.ts | 10 +-- ...der.test.ts => createRetryDecider.test.ts} | 14 ++--- .../s3/utils/client/testUtils/types.ts | 2 +- .../s3/utils/client/s3control/base.ts | 29 ++++++++- .../utils/client/s3control/getDataAccess.ts | 5 +- .../s3control/listCallerAccessGrants.ts | 3 +- .../client/s3data/abortMultipartUpload.ts | 3 +- .../providers/s3/utils/client/s3data/base.ts | 26 +++++++- .../client/s3data/completeMultipartUpload.ts | 4 +- .../s3/utils/client/s3data/copyObject.ts | 3 +- .../client/s3data/createMultipartUpload.ts | 3 +- .../s3/utils/client/s3data/deleteObject.ts | 3 +- .../s3/utils/client/s3data/getObject.ts | 9 ++- .../s3/utils/client/s3data/headObject.ts | 3 +- .../s3/utils/client/s3data/listObjectsV2.ts | 3 +- .../s3/utils/client/s3data/listParts.ts | 3 +- .../s3/utils/client/s3data/putObject.ts | 3 +- .../s3/utils/client/s3data/uploadPart.ts | 3 +- ...{retryDecider.ts => createRetryDecider.ts} | 63 ++++++++++++------- .../providers/s3/utils/client/utils/index.ts | 4 +- .../s3/utils/client/utils/parsePayload.ts | 54 ++++++++++------ 23 files changed, 176 insertions(+), 98 deletions(-) rename packages/storage/__tests__/providers/s3/utils/client/S3/utils/{retryDecider.test.ts => createRetryDecider.test.ts} (86%) rename packages/storage/src/providers/s3/utils/client/utils/{retryDecider.ts => createRetryDecider.ts} (60%) diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 8af9fd02167..aa3203f6a3f 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -461,43 +461,43 @@ "name": "[Storage] copy (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ copy }", - "limit": "15.42 kB" + "limit": "15.47 kB" }, { "name": "[Storage] downloadData (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ downloadData }", - "limit": "15.93 kB" + "limit": "15.98 kB" }, { "name": "[Storage] getProperties (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ getProperties }", - "limit": "15.20 kB" + "limit": "15.25 kB" }, { "name": "[Storage] getUrl (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ getUrl }", - "limit": "16.43 kB" + "limit": "16.47 kB" }, { "name": "[Storage] list (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ list }", - "limit": "15.82 kB" + "limit": "15.88 kB" }, { "name": "[Storage] remove (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ remove }", - "limit": "15.05 kB" + "limit": "15.13 kB" }, { "name": "[Storage] uploadData (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ uploadData }", - "limit": "21.68 kB" + "limit": "21.73 kB" } ] } diff --git a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/getDataAccess.ts b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/getDataAccess.ts index b0a0d174a7a..851bc993a7c 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/getDataAccess.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/getDataAccess.ts @@ -83,12 +83,14 @@ const getDataAccessErrorCase: ApiFunctionalTestCase = [ headers: DEFAULT_RESPONSE_HEADERS, body: ` - - AccessDenied - Access Denied + + + AccessDenied + Access Denied + 656c76696e6727732072657175657374 Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg== - + `, }, { diff --git a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/listCallerAccessGrants.ts b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/listCallerAccessGrants.ts index f63c80bf4bc..961ef27b3bf 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/listCallerAccessGrants.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/listCallerAccessGrants.ts @@ -149,12 +149,14 @@ const listCallerAccessGrantsErrorCase: ApiFunctionalTestCase< headers: DEFAULT_RESPONSE_HEADERS, body: ` - - AccessDenied - Access Denied + + + AccessDenied + Access Denied + 656c76696e6727732072657175657374 Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg== - + `, }, { diff --git a/packages/storage/__tests__/providers/s3/utils/client/S3/utils/retryDecider.test.ts b/packages/storage/__tests__/providers/s3/utils/client/S3/utils/createRetryDecider.test.ts similarity index 86% rename from packages/storage/__tests__/providers/s3/utils/client/S3/utils/retryDecider.test.ts rename to packages/storage/__tests__/providers/s3/utils/client/S3/utils/createRetryDecider.test.ts index 5e1801c07db..7f30a9f0cab 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/S3/utils/retryDecider.test.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/S3/utils/createRetryDecider.test.ts @@ -5,17 +5,13 @@ import { getRetryDecider as getDefaultRetryDecider, } from '@aws-amplify/core/internals/aws-client-utils'; -import { retryDecider } from '../../../../../../../src/providers/s3/utils/client/utils'; -import { parseXmlError } from '../../../../../../../src/providers/s3/utils/client/utils/parsePayload'; +import { createRetryDecider } from '../../../../../../../src/providers/s3/utils/client/utils'; -jest.mock( - '../../../../../../../src/providers/s3/utils/client/utils/parsePayload', -); jest.mock('@aws-amplify/core/internals/aws-client-utils'); -const mockErrorParser = jest.mocked(parseXmlError); +const mockErrorParser = jest.fn(); -describe('retryDecider', () => { +describe('createRetryDecider', () => { const mockHttpResponse: HttpResponse = { statusCode: 200, headers: {}, @@ -34,6 +30,7 @@ describe('retryDecider', () => { it('should invoke the default retry decider', async () => { expect.assertions(3); + const retryDecider = createRetryDecider(mockErrorParser); const { retryable, isCredentialsExpiredError } = await retryDecider( mockHttpResponse, undefined, @@ -56,6 +53,7 @@ describe('retryDecider', () => { $metadata: {}, }; mockErrorParser.mockResolvedValue(parsedError); + const retryDecider = createRetryDecider(mockErrorParser); const { retryable, isCredentialsExpiredError } = await retryDecider( { ...mockHttpResponse, statusCode: 400 }, undefined, @@ -74,6 +72,7 @@ describe('retryDecider', () => { $metadata: {}, }; mockErrorParser.mockResolvedValue(parsedError); + const retryDecider = createRetryDecider(mockErrorParser); const { retryable, isCredentialsExpiredError } = await retryDecider( { ...mockHttpResponse, statusCode: 400 }, undefined, @@ -91,6 +90,7 @@ describe('retryDecider', () => { $metadata: {}, }; mockErrorParser.mockResolvedValue(parsedError); + const retryDecider = createRetryDecider(mockErrorParser); const { retryable, isCredentialsExpiredError } = await retryDecider( { ...mockHttpResponse, statusCode: 400 }, undefined, diff --git a/packages/storage/__tests__/providers/s3/utils/client/testUtils/types.ts b/packages/storage/__tests__/providers/s3/utils/client/testUtils/types.ts index b47d2ec7695..a3754b41707 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/testUtils/types.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/testUtils/types.ts @@ -3,7 +3,7 @@ import { HttpRequest } from '@aws-amplify/core/internals/aws-client-utils'; -interface MockFetchResponse { +export interface MockFetchResponse { body: BodyInit; headers: HeadersInit; status: number; diff --git a/packages/storage/src/providers/s3/utils/client/s3control/base.ts b/packages/storage/src/providers/s3/utils/client/s3control/base.ts index a40f9f6a5dd..590f2b26120 100644 --- a/packages/storage/src/providers/s3/utils/client/s3control/base.ts +++ b/packages/storage/src/providers/s3/utils/client/s3control/base.ts @@ -11,7 +11,7 @@ import { jitteredBackoff, } from '@aws-amplify/core/internals/aws-client-utils'; -import { retryDecider } from '../utils'; +import { createRetryDecider, createXmlErrorParser } from '../utils'; /** * The service name used to sign requests if the API requires authentication. @@ -57,6 +57,33 @@ const endpointResolver = ( return { url: endpoint }; }; +/** + * Error parser for the XML payload of S3 control plane error response. The + * error's `Code` and `Message` locates at the nested `Error` element instead of + * the XML root element. + * + * @example + * ``` + * + * + * + * AccessDenied + * Access Denied + * + * 656c76696e6727732072657175657374 + * Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg== + * + * ``` + * + * @internal + */ +export const parseXmlError = createXmlErrorParser(); + +/** + * @internal + */ +export const retryDecider = createRetryDecider(parseXmlError); + /** * @internal */ diff --git a/packages/storage/src/providers/s3/utils/client/s3control/getDataAccess.ts b/packages/storage/src/providers/s3/utils/client/s3control/getDataAccess.ts index f1053d8ddd7..84adb14e8aa 100644 --- a/packages/storage/src/providers/s3/utils/client/s3control/getDataAccess.ts +++ b/packages/storage/src/providers/s3/utils/client/s3control/getDataAccess.ts @@ -7,11 +7,11 @@ import { HttpResponse, parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils'; +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; import { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils'; -import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; import { assignStringVariables, @@ -19,7 +19,6 @@ import { deserializeTimestamp, map, parseXmlBody, - parseXmlError, s3TransferHandler, } from '../utils'; @@ -27,7 +26,7 @@ import type { GetDataAccessCommandInput, GetDataAccessCommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type GetDataAccessInput = GetDataAccessCommandInput; diff --git a/packages/storage/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts b/packages/storage/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts index a1e7038749d..81b0e62a9c8 100644 --- a/packages/storage/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts +++ b/packages/storage/src/providers/s3/utils/client/s3control/listCallerAccessGrants.ts @@ -19,7 +19,6 @@ import { emptyArrayGuard, map, parseXmlBody, - parseXmlError, s3TransferHandler, } from '../utils'; import { createStringEnumDeserializer } from '../utils/deserializeHelpers'; @@ -28,7 +27,7 @@ import type { ListCallerAccessGrantsCommandInput, ListCallerAccessGrantsCommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type ListCallerAccessGrantsInput = ListCallerAccessGrantsCommandInput; diff --git a/packages/storage/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts b/packages/storage/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts index fb541e803a0..fe2182e0c30 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/abortMultipartUpload.ts @@ -16,14 +16,13 @@ import { MetadataBearer } from '@aws-sdk/types'; import { buildStorageServiceError, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; import type { AbortMultipartUploadCommandInput } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type AbortMultipartUploadInput = Pick< AbortMultipartUploadCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/base.ts b/packages/storage/src/providers/s3/utils/client/s3data/base.ts index d51c3a18a11..c7aef5c033c 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/base.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/base.ts @@ -11,7 +11,7 @@ import { jitteredBackoff, } from '@aws-amplify/core/internals/aws-client-utils'; -import { retryDecider } from '../utils'; +import { createRetryDecider, createXmlErrorParser } from '../utils'; const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/; const IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/; @@ -99,6 +99,30 @@ export const isDnsCompatibleBucketName = (bucketName: string): boolean => !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName); +/** + * Error parser for the XML payload of S3 data plane error response. The error's + * `Code` and `Message` locates directly at the XML root element. + * + * @example + * ``` + * + * + * NoSuchKey + * The resource you requested does not exist + * /mybucket/myfoto.jpg + * 4442587FB7D0A2F9 + * + * ``` + * + * @internal + */ +export const parseXmlError = createXmlErrorParser({ noErrorWrapping: true }); + +/** + * @internal + */ +export const retryDecider = createRetryDecider(parseXmlError); + /** * @internal */ diff --git a/packages/storage/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts b/packages/storage/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts index d732044e953..00267d21172 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/completeMultipartUpload.ts @@ -20,8 +20,6 @@ import { buildStorageServiceError, map, parseXmlBody, - parseXmlError, - retryDecider, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, @@ -33,7 +31,7 @@ import type { CompletedMultipartUpload, CompletedPart, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError, retryDecider } from './base'; const INVALID_PARAMETER_ERROR_MSG = 'Invalid parameter for ComplteMultipartUpload API'; diff --git a/packages/storage/src/providers/s3/utils/client/s3data/copyObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/copyObject.ts index f56745680fa..612e650aabb 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/copyObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/copyObject.ts @@ -14,7 +14,6 @@ import { assignStringVariables, buildStorageServiceError, parseXmlBody, - parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, @@ -22,7 +21,7 @@ import { } from '../utils'; import type { CopyObjectCommandInput, CopyObjectCommandOutput } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type CopyObjectInput = Pick< CopyObjectCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/createMultipartUpload.ts b/packages/storage/src/providers/s3/utils/client/s3data/createMultipartUpload.ts index 45d755d2ef9..10549673a0e 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/createMultipartUpload.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/createMultipartUpload.ts @@ -15,7 +15,6 @@ import { buildStorageServiceError, map, parseXmlBody, - parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, @@ -27,7 +26,7 @@ import type { CreateMultipartUploadCommandOutput, } from './types'; import type { PutObjectInput } from './putObject'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type CreateMultipartUploadInput = Extract< CreateMultipartUploadCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/deleteObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/deleteObject.ts index f8843881668..eb9c98b47ac 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/deleteObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/deleteObject.ts @@ -14,7 +14,6 @@ import { buildStorageServiceError, deserializeBoolean, map, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, @@ -24,7 +23,7 @@ import type { DeleteObjectCommandInput, DeleteObjectCommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type DeleteObjectInput = Pick< DeleteObjectCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts index 4ef5afa6896..37ceade549d 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts @@ -11,8 +11,8 @@ import { parseMetadata, presignUrl, } from '@aws-amplify/core/internals/aws-client-utils'; -import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; +import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; import { CONTENT_SHA256_HEADER, @@ -22,13 +22,16 @@ import { deserializeNumber, deserializeTimestamp, map, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; -import { S3EndpointResolverOptions, defaultConfig } from './base'; +import { + S3EndpointResolverOptions, + defaultConfig, + parseXmlError, +} from './base'; import type { CompatibleHttpResponse, GetObjectCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts index 1ffdeedeb55..ebf0c374ff5 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts @@ -16,13 +16,12 @@ import { deserializeNumber, deserializeTimestamp, map, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; import type { HeadObjectCommandInput, HeadObjectCommandOutput } from './types'; export type HeadObjectInput = Pick; diff --git a/packages/storage/src/providers/s3/utils/client/s3data/listObjectsV2.ts b/packages/storage/src/providers/s3/utils/client/s3data/listObjectsV2.ts index 680111cf0e9..b5db2c04ae8 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/listObjectsV2.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/listObjectsV2.ts @@ -22,7 +22,6 @@ import { emptyArrayGuard, map, parseXmlBody, - parseXmlError, s3TransferHandler, } from '../utils'; @@ -30,7 +29,7 @@ import type { ListObjectsV2CommandInput, ListObjectsV2CommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type ListObjectsV2Input = ListObjectsV2CommandInput; diff --git a/packages/storage/src/providers/s3/utils/client/s3data/listParts.ts b/packages/storage/src/providers/s3/utils/client/s3data/listParts.ts index 392eff988d0..5c4583d1ed2 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/listParts.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/listParts.ts @@ -19,7 +19,6 @@ import { emptyArrayGuard, map, parseXmlBody, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, @@ -30,7 +29,7 @@ import type { ListPartsCommandInput, ListPartsCommandOutput, } from './types'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; export type ListPartsInput = Pick< ListPartsCommandInput, diff --git a/packages/storage/src/providers/s3/utils/client/s3data/putObject.ts b/packages/storage/src/providers/s3/utils/client/s3data/putObject.ts index 3330f260fba..3db17f66090 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/putObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/putObject.ts @@ -14,14 +14,13 @@ import { assignStringVariables, buildStorageServiceError, map, - parseXmlError, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; import type { PutObjectCommandInput, PutObjectCommandOutput } from './types'; export type PutObjectInput = Pick< diff --git a/packages/storage/src/providers/s3/utils/client/s3data/uploadPart.ts b/packages/storage/src/providers/s3/utils/client/s3data/uploadPart.ts index 6a37e143f7e..2ddea0dd836 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/uploadPart.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/uploadPart.ts @@ -17,13 +17,12 @@ import { assignStringVariables, buildStorageServiceError, map, - parseXmlError, s3TransferHandler, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils'; -import { defaultConfig } from './base'; +import { defaultConfig, parseXmlError } from './base'; import type { UploadPartCommandInput, UploadPartCommandOutput } from './types'; // Content-length is ignored here because it's forbidden header diff --git a/packages/storage/src/providers/s3/utils/client/utils/retryDecider.ts b/packages/storage/src/providers/s3/utils/client/utils/createRetryDecider.ts similarity index 60% rename from packages/storage/src/providers/s3/utils/client/utils/retryDecider.ts rename to packages/storage/src/providers/s3/utils/client/utils/createRetryDecider.ts index 3e1e0fcc3da..0cfbc0eacde 100644 --- a/packages/storage/src/providers/s3/utils/client/utils/retryDecider.ts +++ b/packages/storage/src/providers/s3/utils/client/utils/createRetryDecider.ts @@ -1,6 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import { + ErrorParser, HttpResponse, MiddlewareContext, RetryDeciderOutput, @@ -9,8 +10,6 @@ import { import { LocationCredentialsProvider } from '../../../types/options'; -import { parseXmlError } from './parsePayload'; - /** * Function to decide if the S3 request should be retried. For S3 APIs, we support forceRefresh option * for {@link LocationCredentialsProvider | LocationCredentialsProvider } option. It's set when S3 returns @@ -22,33 +21,49 @@ import { parseXmlError } from './parsePayload'; * @param middlewareContext Optional context object to store data between retries. * @returns True if the request should be retried. */ -export const retryDecider = async ( +export type RetryDecider = ( response?: HttpResponse, error?: unknown, middlewareContext?: MiddlewareContext, -): Promise => { - const defaultRetryDecider = getRetryDecider(parseXmlError); - const defaultRetryDecision = await defaultRetryDecider(response, error); - if (!response || response.statusCode < 300) { - return { retryable: false }; - } - const parsedError = await parseXmlError(response); - const errorCode = parsedError?.name; - const errorMessage = parsedError?.message; - const isCredentialsExpired = isCredentialsExpiredError( - errorCode, - errorMessage, - ); +) => Promise; + +/** + * Factory of a {@link RetryDecider} function. + * + * @param errorParser function to parse HTTP response wth XML payload to JS + * Error instance. + * @returns A structure indicating if the response is retryable; And if it is a + * CredentialsExpiredError + */ +export const createRetryDecider = + (errorParser: ErrorParser): RetryDecider => + async ( + response?: HttpResponse, + error?: unknown, + middlewareContext?: MiddlewareContext, + ): Promise => { + const defaultRetryDecider = getRetryDecider(errorParser); + const defaultRetryDecision = await defaultRetryDecider(response, error); + if (!response || response.statusCode < 300) { + return { retryable: false }; + } + const parsedError = await errorParser(response); + const errorCode = parsedError?.name; + const errorMessage = parsedError?.message; + const isCredentialsExpired = isCredentialsExpiredError( + errorCode, + errorMessage, + ); - return { - retryable: - defaultRetryDecision.retryable || - // If we know the previous retry attempt sets isCredentialsExpired in the - // middleware context, we don't want to retry anymore. - !!(isCredentialsExpired && !middlewareContext?.isCredentialsExpired), - isCredentialsExpiredError: isCredentialsExpired, + return { + retryable: + defaultRetryDecision.retryable || + // If we know the previous retry attempt sets isCredentialsExpired in the + // middleware context, we don't want to retry anymore. + !!(isCredentialsExpired && !middlewareContext?.isCredentialsExpired), + isCredentialsExpiredError: isCredentialsExpired, + }; }; -}; // Ref: https://github.com/aws/aws-sdk-js/blob/54829e341181b41573c419bd870dd0e0f8f10632/lib/event_listeners.js#L522-L541 const INVALID_TOKEN_ERROR_CODES = [ diff --git a/packages/storage/src/providers/s3/utils/client/utils/index.ts b/packages/storage/src/providers/s3/utils/client/utils/index.ts index 423987699f8..77042fafa0c 100644 --- a/packages/storage/src/providers/s3/utils/client/utils/index.ts +++ b/packages/storage/src/providers/s3/utils/client/utils/index.ts @@ -1,7 +1,7 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -export { parseXmlBody, parseXmlError } from './parsePayload'; +export { parseXmlBody, createXmlErrorParser } from './parsePayload'; export { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, @@ -25,4 +25,4 @@ export { serializePathnameObjectKey, validateS3RequiredParameter, } from './serializeHelpers'; -export { retryDecider } from './retryDecider'; +export { createRetryDecider } from './createRetryDecider'; diff --git a/packages/storage/src/providers/s3/utils/client/utils/parsePayload.ts b/packages/storage/src/providers/s3/utils/client/utils/parsePayload.ts index 9da44dcbdd0..f0284d573d2 100644 --- a/packages/storage/src/providers/s3/utils/client/utils/parsePayload.ts +++ b/packages/storage/src/providers/s3/utils/client/utils/parsePayload.ts @@ -9,25 +9,43 @@ import { import { parser } from '../runtime'; -export const parseXmlError: ErrorParser = async (response?: HttpResponse) => { - if (!response || response.statusCode < 300) { - return; - } - const { statusCode } = response; - const body = await parseXmlBody(response); - const code = body?.Code - ? (body.Code as string) - : statusCode === 404 - ? 'NotFound' - : statusCode.toString(); - const message = body?.message ?? body?.Message ?? code; - const error = new Error(message); +/** + * Factory creating a parser that parses the JS Error object from the XML + * response payload. + * + * @param input Input object + * @param input.noErrorWrapping Whether the error code and message are located + * directly in the root XML element, or in a nested `` element. + * See: https://smithy.io/2.0/aws/protocols/aws-restxml-protocol.html#restxml-errors + * + * Default to false. + * + * @internal + */ +export const createXmlErrorParser = + ({ + noErrorWrapping = false, + }: { noErrorWrapping?: boolean } = {}): ErrorParser => + async (response?: HttpResponse) => { + if (!response || response.statusCode < 300) { + return; + } + const { statusCode } = response; + const body = await parseXmlBody(response); + const errorLocation = noErrorWrapping ? body : body.Error; + const code = errorLocation?.Code + ? (errorLocation.Code as string) + : statusCode === 404 + ? 'NotFound' + : statusCode.toString(); + const message = errorLocation?.message ?? errorLocation?.Message ?? code; + const error = new Error(message); - return Object.assign(error, { - name: code, - $metadata: parseMetadata(response), - }); -}; + return Object.assign(error, { + name: code, + $metadata: parseMetadata(response), + }); + }; export const parseXmlBody = async (response: HttpResponse): Promise => { if (!response.body) { From 1fea052df23425abfb8dab42a34e35c94e6b16ec Mon Sep 17 00:00:00 2001 From: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Date: Fri, 6 Sep 2024 08:58:54 -0700 Subject: [PATCH 30/50] Reapply "feat(core): resolve webcrypto from node:crypto for Node18 (#13599)" (#13775) This reverts commit f8dbc95964e541818fb79203fd286f445feee46d. --- .../load-verdaccio-with-amplify-js/action.yml | 26 ++++++++++++------- .github/actions/node-and-build/action.yml | 6 +++-- .github/integ-config/integ-all.yml | 7 +++++ .github/workflows/callable-e2e-test.yml | 7 +++++ .github/workflows/callable-e2e-tests.yml | 1 + package.json | 3 +++ .../utils/globalHelpers/globalHelpers.test.ts | 6 ----- .../core/src/utils/globalHelpers/index.ts | 10 +++++++ 8 files changed, 48 insertions(+), 18 deletions(-) diff --git a/.github/actions/load-verdaccio-with-amplify-js/action.yml b/.github/actions/load-verdaccio-with-amplify-js/action.yml index c8cd349cb86..b0f2f5552ac 100644 --- a/.github/actions/load-verdaccio-with-amplify-js/action.yml +++ b/.github/actions/load-verdaccio-with-amplify-js/action.yml @@ -6,7 +6,8 @@ runs: steps: - name: Start verdaccio run: | - npx verdaccio@5.25.0 & + # This version supports Node.js v22 + npx verdaccio@5.31.1 & while ! nc -z localhost 4873; do echo "Verdaccio not running yet" sleep 1 @@ -18,25 +19,30 @@ runs: - name: Install and run npm-cli-login shell: bash env: - NPM_REGISTRY: http://localhost:4873/ + NPM_REGISTRY_HOST: localhost:4873 + NPM_REGISTRY: http://localhost:4873 NPM_USER: verdaccio NPM_PASS: verdaccio NPM_EMAIL: verdaccio@amplify.js run: | - npm i -g npm-cli-adduser - npm-cli-adduser - sleep 1 - - name: Configure registry and git + # Make the HTTP request that npm addUser makes to avoid the "Exit handler never called" error + TOKEN=$(curl -s \ + -H "Accept: application/json" \ + -H "Content-Type:application/json" \ + -X PUT --data "{\"name\": \"$NPM_USER\", \"password\": \"$NPM_PASS\", \"email\": \"$NPM_EMAIL\"}" \ + $NPM_REGISTRY/-/user/org.couchdb.user:$NPM_USER 2>&1 | jq -r '.token') + + # Set the Verdaccio registry and set the token for logging in + yarn config set registry $NPM_REGISTRY + npm set registry $NPM_REGISTRY + npm set //"$NPM_REGISTRY_HOST"/:_authToken $TOKEN + - name: Configure git shell: bash working-directory: ./amplify-js env: - NPM_REGISTRY: http://localhost:4873/ NPM_USER: verdaccio - NPM_PASS: verdaccio NPM_EMAIL: verdaccio@amplify.js run: | - yarn config set registry $NPM_REGISTRY - npm set registry $NPM_REGISTRY git config --global user.email $NPM_EMAIL git config --global user.name $NPM_USER git status diff --git a/.github/actions/node-and-build/action.yml b/.github/actions/node-and-build/action.yml index 0af092c4c84..becd2d49165 100644 --- a/.github/actions/node-and-build/action.yml +++ b/.github/actions/node-and-build/action.yml @@ -4,13 +4,15 @@ inputs: is-prebuild: required: false default: false + node_version: + required: false runs: using: 'composite' steps: - - name: Setup Node.js 18 + - name: Setup Node.js uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: - node-version: 18.20.2 + node-version: ${{ inputs.node_version || '18.x' }} env: SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 - uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0 diff --git a/.github/integ-config/integ-all.yml b/.github/integ-config/integ-all.yml index c7316c37c1f..e176add9ac5 100644 --- a/.github/integ-config/integ-all.yml +++ b/.github/integ-config/integ-all.yml @@ -870,3 +870,10 @@ tests: spec: ssr-context-isolation yarn_script: ci:ssr-context-isolation browser: [chrome] + - test_name: integ_node_envs + desc: 'Node.js environment tests' + framework: node + category: integration + sample_name: auth-gql-storage + yarn_script: ci:node-env-test + node_versions: ['18.x', '20.x', '22.x'] diff --git a/.github/workflows/callable-e2e-test.yml b/.github/workflows/callable-e2e-test.yml index 18697cf5dc5..fd9f9cb697a 100644 --- a/.github/workflows/callable-e2e-test.yml +++ b/.github/workflows/callable-e2e-test.yml @@ -37,6 +37,9 @@ on: yarn_script: required: false type: string + node_versions: + required: false + type: string env: AMPLIFY_DIR: /home/runner/work/amplify-js/amplify-js/amplify-js @@ -54,6 +57,8 @@ jobs: - ${{ fromJson(inputs.browser) }} sample_name: - ${{ fromJson(inputs.sample_name) }} + node_version: + - ${{ fromJson(inputs.node_versions) }} fail-fast: false timeout-minutes: ${{ inputs.timeout_minutes }} @@ -64,6 +69,8 @@ jobs: path: amplify-js - name: Setup node and build the repository uses: ./amplify-js/.github/actions/node-and-build + with: + node_version: ${{ matrix.node_version }} - name: Setup samples staging repository uses: ./amplify-js/.github/actions/setup-samples-staging with: diff --git a/.github/workflows/callable-e2e-tests.yml b/.github/workflows/callable-e2e-tests.yml index 4ae74a69c88..477ca28b3db 100644 --- a/.github/workflows/callable-e2e-tests.yml +++ b/.github/workflows/callable-e2e-tests.yml @@ -44,6 +44,7 @@ jobs: timeout_minutes: ${{ matrix.integ-config.timeout_minutes || 35 }} retry_count: ${{ matrix.integ-config.retry_count || 3 }} yarn_script: ${{ matrix.integ-config.yarn_script || '' }} + node_versions: ${{ toJSON(matrix.integ-config.node_versions) || '[""]' }} # e2e-test-runner-headless: # name: E2E test runnner_headless diff --git a/package.json b/package.json index 2dd5ff3ff32..eaf95c79cab 100644 --- a/package.json +++ b/package.json @@ -130,6 +130,9 @@ "webpack-bundle-analyzer": "^4.7.0", "webpack-cli": "^5.0.0" }, + "engines": { + "node": ">=18" + }, "resolutions": { "@types/babel__traverse": "7.20.0", "path-scurry": "1.10.0", diff --git a/packages/core/__tests__/utils/globalHelpers/globalHelpers.test.ts b/packages/core/__tests__/utils/globalHelpers/globalHelpers.test.ts index 4d9dbd8bc17..bb7d2e39a9b 100644 --- a/packages/core/__tests__/utils/globalHelpers/globalHelpers.test.ts +++ b/packages/core/__tests__/utils/globalHelpers/globalHelpers.test.ts @@ -44,12 +44,6 @@ describe('getGlobal', () => { expect(getCrypto()).toEqual(mockCrypto); }); - - it('should throw error if crypto is unavailable globally', () => { - mockWindow.mockImplementation(() => undefined); - - expect(() => getCrypto()).toThrow(AmplifyError); - }); }); describe('getBtoa()', () => { diff --git a/packages/core/src/utils/globalHelpers/index.ts b/packages/core/src/utils/globalHelpers/index.ts index 622f4d3c3ef..dc35f897bf6 100644 --- a/packages/core/src/utils/globalHelpers/index.ts +++ b/packages/core/src/utils/globalHelpers/index.ts @@ -13,6 +13,16 @@ export const getCrypto = () => { return crypto; } + try { + const crypto = require('node:crypto').webcrypto; + + if (typeof crypto === 'object') { + return crypto; + } + } catch (_) { + // no-op + } + throw new AmplifyError({ name: 'MissingPolyfill', message: 'Cannot resolve the `crypto` function from the environment.', From a76b594562430a85fd37f00bb2788959f7a69d6a Mon Sep 17 00:00:00 2001 From: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:59:30 -0700 Subject: [PATCH 31/50] fix(auth): custom `userPoolEndpoint` cannot be applied on the server-side (#13739) * chore(auth): add the service client factories into foundation * refactor(auth): use service clients in foundation * chore(auth): refactor existing unit test suites * chore(auth): add unit tests for newly added modules * chore(auth): add missing license header * chore(repo): update sdk type extractio destination for the auth package * chore: resolve most of the comments from cshfang * chore: resolve most of the comments from cshfang cont. * chore: resolve most of the comments from cshfang cont. 2 * chore: flatten out the /core from foundation * chore: update outdate test file name to match the src changes --- .../cognitoUserPoolEndpointResolver.test.ts | 16 + .../cognitoIdentityProvider/index.test.ts | 41 +++ .../cognitoUserPoolTransferHandler.test.ts | 43 +++ .../createEmptyResponseDeserializer.test.ts | 55 ++++ .../serde/createUserPoolDeserializer.test.ts | 59 ++++ .../serde/createUserPoolSerializer.test.ts | 27 ++ .../cognitoIdentityProvider/testUtils/data.ts | 7 + .../foundation/parsers/regionParsers.test.ts | 47 +++ .../providers/cognito/autoSignIn.test.ts | 37 +-- .../cognito/confirmResetPassword.test.ts | 39 ++- .../cognito/confirmSignInErrorCases.test.ts | 19 +- .../cognito/confirmSignInHappyCases.test.ts | 159 +++++----- .../providers/cognito/confirmSignUp.test.ts | 45 ++- .../cognito/confirmUserAttribute.test.ts | 40 ++- .../providers/cognito/deleteUser.test.ts | 35 ++- .../cognito/deleteUserAttributes.test.ts | 39 ++- ...ateCognitoUserPoolEndpointResolver.test.ts | 55 ++++ .../providers/cognito/fetchDevices.test.ts | 33 +- .../cognito/fetchMFAPreference.test.ts | 32 +- .../cognito/fetchUserAttributes.test.ts | 33 +- .../providers/cognito/forgetDevice.test.ts | 35 ++- .../cognito/getNewDeviceMetadata.test.ts | 93 ++++-- .../providers/cognito/refreshToken.test.ts | 58 +++- .../providers/cognito/rememberDevice.test.ts | 37 ++- .../cognito/resendSignUpCode.test.ts | 37 ++- .../providers/cognito/resetPassword.test.ts | 37 ++- .../sendUserAttributeVerificationCode.test.ts | 43 ++- .../providers/cognito/setUpTOTP.test.ts | 38 ++- .../cognito/signInErrorCases.test.ts | 11 +- .../cognito/signInStateManagement.test.ts | 2 +- .../cognito/signInWithCustomAuth.test.ts | 37 +-- .../cognito/signInWithCustomSRPAuth.test.ts | 36 ++- .../providers/cognito/signInWithSRP.test.ts | 70 +++-- .../cognito/signInWithUserPassword.test.ts | 51 ++-- .../providers/cognito/signOut.test.ts | 100 ++++-- .../providers/cognito/signUp.test.ts | 50 ++- .../cognito/updateMFAPreference.test.ts | 37 ++- .../providers/cognito/updatePassword.test.ts | 35 ++- .../cognito/updateUserAttributes.test.ts | 42 ++- .../providers/cognito/verifyTOTPSetup.test.ts | 41 ++- .../cognitoUserPoolEndpointResolver.ts | 17 ++ packages/auth/src/foundation/constants.ts | 6 + .../cognitoIdentityProvider/constants.ts | 19 ++ .../createAssociateSoftwareTokenClient.ts | 30 ++ .../createChangePasswordClient.ts | 26 ++ .../createConfirmDeviceClient.ts | 26 ++ .../createConfirmForgotPasswordClient.ts | 30 ++ .../createConfirmSignUpClient.ts | 26 ++ .../createDeleteUserAttributesClient.ts | 30 ++ .../createDeleteUserClient.ts | 26 ++ .../createForgetDeviceClient.ts | 26 ++ .../createForgotPasswordClient.ts | 26 ++ ...eGetUserAttributeVerificationCodeClient.ts | 30 ++ .../createGetUserClient.ts | 26 ++ .../createGlobalSignOutClient.ts | 26 ++ .../createInitiateAuthClient.ts | 27 ++ .../createListDevicesClient.ts | 26 ++ .../createResendConfirmationCodeClient.ts | 30 ++ .../createRespondToAuthChallengeClient.ts | 30 ++ .../createRevokeTokenClient.ts | 29 ++ .../createSetUserMFAPreferenceClient.ts | 30 ++ .../createSignUpClient.ts | 26 ++ .../createUpdateDeviceStatusClient.ts | 30 ++ .../createUpdateUserAttributesClient.ts | 30 ++ .../createVerifySoftwareTokenClient.ts | 30 ++ .../createVerifyUserAttributeClient.ts | 30 ++ .../cognitoIdentityProvider/index.ts | 26 ++ .../handler/cognitoUserPoolTransferHandler.ts | 37 +++ .../shared/handler/index.ts | 4 + .../serde/createEmptyResponseDeserializer.ts | 21 ++ .../serde/createUserPoolDeserializer.ts | 23 ++ .../shared/serde/createUserPoolSerializer.ts | 58 ++++ .../shared/serde/index.ts | 6 + .../cognitoIdentityProvider/types/index.ts | 4 + .../cognitoIdentityProvider/types/sdk.ts} | 0 .../types/serviceClient.ts | 8 + packages/auth/src/foundation/parsers/index.ts | 6 + .../parsers/regionParsers.ts} | 5 +- .../cognito/apis/confirmResetPassword.ts | 15 +- .../providers/cognito/apis/confirmSignIn.ts | 19 +- .../providers/cognito/apis/confirmSignUp.ts | 15 +- .../cognito/apis/confirmUserAttribute.ts | 13 +- .../src/providers/cognito/apis/deleteUser.ts | 15 +- .../cognito/apis/deleteUserAttributes.ts | 13 +- .../providers/cognito/apis/fetchDevices.ts | 17 +- .../cognito/apis/fetchMFAPreference.ts | 13 +- .../providers/cognito/apis/forgetDevice.ts | 15 +- .../apis/internal/fetchUserAttributes.ts | 14 +- .../providers/cognito/apis/rememberDevice.ts | 15 +- .../cognito/apis/resendSignUpCode.ts | 15 +- .../providers/cognito/apis/resetPassword.ts | 16 +- .../apis/sendUserAttributeVerificationCode.ts | 14 +- .../src/providers/cognito/apis/setUpTOTP.ts | 13 +- .../cognito/apis/signInWithCustomAuth.ts | 15 +- .../cognito/apis/signInWithCustomSRPAuth.ts | 15 +- .../providers/cognito/apis/signInWithSRP.ts | 15 +- .../cognito/apis/signInWithUserPassword.ts | 15 +- .../src/providers/cognito/apis/signOut.ts | 30 +- .../auth/src/providers/cognito/apis/signUp.ts | 15 +- .../cognito/apis/updateMFAPreference.ts | 15 +- .../providers/cognito/apis/updatePassword.ts | 13 +- .../cognito/apis/updateUserAttributes.ts | 15 +- .../providers/cognito/apis/verifyTOTPSetup.ts | 13 +- .../credentialsProvider/IdentityIdProvider.ts | 2 +- .../credentialsProvider.ts | 2 +- .../createCognitoUserPoolEndpointResolver.ts | 16 + .../src/providers/cognito/factories/index.ts | 3 + .../cognito/tokenProvider/cacheTokens.ts | 2 +- .../src/providers/cognito/utils/apiHelpers.ts | 3 +- .../clients/CognitoIdentityProvider/base.ts | 103 ------- .../clients/CognitoIdentityProvider/index.ts | 286 ------------------ .../providers/cognito/utils/clients/base.ts | 95 ------ .../cognito/utils/refreshAuthTokens.ts | 20 +- .../providers/cognito/utils/signInHelpers.ts | 190 +++++++++--- .../providers/cognito/utils/signInStore.ts | 3 +- .../providers/cognito/utils/signUpHelpers.ts | 3 +- scripts/dts-bundler/dts-bundler.config.js | 14 +- 117 files changed, 2775 insertions(+), 987 deletions(-) create mode 100644 packages/auth/__tests__/foundation/cognitoUserPoolEndpointResolver.test.ts create mode 100644 packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/index.test.ts create mode 100644 packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.test.ts create mode 100644 packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.test.ts create mode 100644 packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.test.ts create mode 100644 packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.test.ts create mode 100644 packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/testUtils/data.ts create mode 100644 packages/auth/__tests__/foundation/parsers/regionParsers.test.ts create mode 100644 packages/auth/__tests__/providers/cognito/factories/createCognitoUserPoolEndpointResolver.test.ts create mode 100644 packages/auth/src/foundation/cognitoUserPoolEndpointResolver.ts create mode 100644 packages/auth/src/foundation/constants.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/constants.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createAssociateSoftwareTokenClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createChangePasswordClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmDeviceClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmForgotPasswordClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmSignUpClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteUserAttributesClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteUserClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createForgetDeviceClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createForgotPasswordClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGetUserAttributeVerificationCodeClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGetUserClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGlobalSignOutClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createInitiateAuthClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createListDevicesClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createResendConfirmationCodeClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createRespondToAuthChallengeClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createRevokeTokenClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSetUserMFAPreferenceClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createUpdateDeviceStatusClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createUpdateUserAttributesClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createVerifySoftwareTokenClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createVerifyUserAttributeClient.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/index.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/index.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/index.ts create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.ts rename packages/auth/src/{providers/cognito/utils/clients/CognitoIdentityProvider/types.ts => foundation/factories/serviceClients/cognitoIdentityProvider/types/sdk.ts} (100%) create mode 100644 packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/serviceClient.ts create mode 100644 packages/auth/src/foundation/parsers/index.ts rename packages/auth/src/{providers/cognito/utils/clients/CognitoIdentityProvider/utils.ts => foundation/parsers/regionParsers.ts} (86%) create mode 100644 packages/auth/src/providers/cognito/factories/createCognitoUserPoolEndpointResolver.ts create mode 100644 packages/auth/src/providers/cognito/factories/index.ts delete mode 100644 packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/base.ts delete mode 100644 packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/index.ts delete mode 100644 packages/auth/src/providers/cognito/utils/clients/base.ts diff --git a/packages/auth/__tests__/foundation/cognitoUserPoolEndpointResolver.test.ts b/packages/auth/__tests__/foundation/cognitoUserPoolEndpointResolver.test.ts new file mode 100644 index 00000000000..04bbff52546 --- /dev/null +++ b/packages/auth/__tests__/foundation/cognitoUserPoolEndpointResolver.test.ts @@ -0,0 +1,16 @@ +import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; + +import { cognitoUserPoolEndpointResolver } from '../../src/foundation/cognitoUserPoolEndpointResolver'; +import { COGNITO_IDP_SERVICE_NAME } from '../../src/foundation/constants'; + +describe('cognitoUserPoolEndpointResolver', () => { + it('should return the Cognito User Pool endpoint', () => { + const region = 'us-west-2'; + const { url } = cognitoUserPoolEndpointResolver({ region }); + + expect(url instanceof AmplifyUrl).toBe(true); + expect(url.toString()).toEqual( + `https://${COGNITO_IDP_SERVICE_NAME}.us-west-2.amazonaws.com/`, + ); + }); +}); diff --git a/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/index.test.ts b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/index.test.ts new file mode 100644 index 00000000000..9138718bb58 --- /dev/null +++ b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/index.test.ts @@ -0,0 +1,41 @@ +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import * as serviceClients from '../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from '../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/constants'; + +import { mockServiceClientAPIConfig } from './testUtils/data'; + +jest.mock('@aws-amplify/core/internals/aws-client-utils/composers', () => ({ + ...jest.requireActual( + '@aws-amplify/core/internals/aws-client-utils/composers', + ), + composeServiceApi: jest.fn(), +})); + +export const mockComposeServiceApi = jest.mocked(composeServiceApi); + +describe('service clients', () => { + const serviceClientFactories = Object.keys(serviceClients); + + afterEach(() => { + mockComposeServiceApi.mockClear(); + }); + + test.each(serviceClientFactories)( + 'factory `%s` should invoke composeServiceApi with expected parameters', + serviceClientFactory => { + // eslint-disable-next-line import/namespace + serviceClients[serviceClientFactory](mockServiceClientAPIConfig); + + expect(mockComposeServiceApi).toHaveBeenCalledWith( + expect.any(Function), + expect.any(Function), + expect.any(Function), + expect.objectContaining({ + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...mockServiceClientAPIConfig, + }), + ); + }, + ); +}); diff --git a/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.test.ts b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.test.ts new file mode 100644 index 00000000000..8f5bbc8c7f9 --- /dev/null +++ b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.test.ts @@ -0,0 +1,43 @@ +import { unauthenticatedHandler } from '@aws-amplify/core/internals/aws-client-utils'; +import { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { cognitoUserPoolTransferHandler } from '../../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler'; + +jest.mock('@aws-amplify/core/internals/aws-client-utils/composers'); +jest.mock('@aws-amplify/core/internals/aws-client-utils'); + +const mockComposeTransferHandler = jest.mocked(composeTransferHandler); +const mockUnauthenticatedHandler = jest.mocked(unauthenticatedHandler); + +describe('cognitoUserPoolTransferHandler', () => { + beforeAll(() => { + // need to make sure cognitoUserPoolTransferHandler is imported and used in + // the scope of the test + const _ = cognitoUserPoolTransferHandler; + }); + + it('adds the disableCacheMiddlewareFactory at module loading', () => { + expect(mockComposeTransferHandler).toHaveBeenCalledTimes(1); + + const [core, middleware] = mockComposeTransferHandler.mock.calls[0]; + + expect(core).toStrictEqual(mockUnauthenticatedHandler); + expect(middleware).toHaveLength(1); + + const disableCacheMiddlewareFactory = middleware[0] as any; + const disableCacheMiddlewarePendingNext = disableCacheMiddlewareFactory(); + + const mockNext = jest.fn(); + const disableCacheMiddleware = disableCacheMiddlewarePendingNext(mockNext); + const mockRequest = { + headers: {}, + }; + + disableCacheMiddleware(mockRequest); + + expect(mockNext).toHaveBeenCalledWith(mockRequest); + expect(mockRequest.headers).toEqual({ + 'cache-control': 'no-store', + }); + }); +}); diff --git a/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.test.ts b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.test.ts new file mode 100644 index 00000000000..80f9ddfedb7 --- /dev/null +++ b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.test.ts @@ -0,0 +1,55 @@ +import { + HttpResponse, + parseJsonError, +} from '@aws-amplify/core/internals/aws-client-utils'; + +import { createEmptyResponseDeserializer } from '../../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer'; +import { AuthError } from '../../../../../../../src/errors/AuthError'; + +jest.mock('@aws-amplify/core/internals/aws-client-utils'); + +const mockParseJsonError = jest.mocked(parseJsonError); + +describe('createEmptyResponseDeserializer created response deserializer', () => { + const deserializer = createEmptyResponseDeserializer(); + + it('returns undefined for 2xx status code', async () => { + const response: HttpResponse = { + statusCode: 200, + body: { + json: () => Promise.resolve({}), + blob: () => Promise.resolve(new Blob()), + text: () => Promise.resolve(''), + }, + headers: {}, + }; + const output = await deserializer(response); + + expect(output).toBeUndefined(); + }); + + it('throws AuthError for 4xx status code', async () => { + const expectedErrorName = 'TestError'; + const expectedErrorMessage = 'TestErrorMessage'; + const expectedError = new Error(expectedErrorMessage); + expectedError.name = expectedErrorName; + + mockParseJsonError.mockReturnValueOnce(expectedError as any); + const response: HttpResponse = { + statusCode: 400, + body: { + json: () => Promise.resolve({}), + blob: () => Promise.resolve(new Blob()), + text: () => Promise.resolve(''), + }, + headers: {}, + }; + + expect(deserializer(response as any)).rejects.toThrow( + new AuthError({ + name: expectedErrorName, + message: expectedErrorMessage, + }), + ); + }); +}); diff --git a/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.test.ts b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.test.ts new file mode 100644 index 00000000000..18bc775caca --- /dev/null +++ b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.test.ts @@ -0,0 +1,59 @@ +import { + HttpResponse, + parseJsonBody, + parseJsonError, +} from '@aws-amplify/core/internals/aws-client-utils'; + +import { createUserPoolDeserializer } from '../../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer'; +import { AuthError } from '../../../../../../../src/errors/AuthError'; + +jest.mock('@aws-amplify/core/internals/aws-client-utils'); + +const mockParseJsonBody = jest.mocked(parseJsonBody); +const mockParseJsonError = jest.mocked(parseJsonError); + +describe('buildUserPoolDeserializer created response deserializer', () => { + const deserializer = createUserPoolDeserializer(); + + it('returns body for 2xx status code', async () => { + const expectedBody = { test: 'test' }; + mockParseJsonBody.mockResolvedValueOnce(expectedBody); + const response: HttpResponse = { + statusCode: 200, + body: { + json: () => Promise.resolve({}), + blob: () => Promise.resolve(new Blob()), + text: () => Promise.resolve(''), + }, + headers: {}, + }; + const output = await deserializer(response); + + expect(output).toStrictEqual(expectedBody); + }); + + it('throws AuthError for 4xx status code', async () => { + const expectedErrorName = 'TestError'; + const expectedErrorMessage = 'TestErrorMessage'; + const expectedError = new Error(expectedErrorMessage); + expectedError.name = expectedErrorName; + + mockParseJsonError.mockReturnValueOnce(expectedError as any); + const response: HttpResponse = { + statusCode: 400, + body: { + json: () => Promise.resolve({}), + blob: () => Promise.resolve(new Blob()), + text: () => Promise.resolve(''), + }, + headers: {}, + }; + + expect(deserializer(response as any)).rejects.toThrow( + new AuthError({ + name: expectedErrorName, + message: expectedErrorMessage, + }), + ); + }); +}); diff --git a/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.test.ts b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.test.ts new file mode 100644 index 00000000000..70d9a054a42 --- /dev/null +++ b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.test.ts @@ -0,0 +1,27 @@ +import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; + +import { createUserPoolSerializer } from '../../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer'; + +describe('createUserPoolSerializer created request serializer', () => { + test.each(['SignUp', 'InitiateAuth', 'RevokeToken'] as const)( + `it serializes requests from operation %s`, + operation => { + const testInput = { testBody: 'testBody' }; + const testEndpoint = { + url: new AmplifyUrl('http://test.com'), + }; + const serializer = createUserPoolSerializer(operation); + const result = serializer(testInput, testEndpoint); + + expect(result).toEqual({ + method: 'POST', + url: testEndpoint.url, + headers: { + 'content-type': 'application/x-amz-json-1.1', + 'x-amz-target': `AWSCognitoIdentityProviderService.${operation}`, + }, + body: JSON.stringify(testInput), + }); + }, + ); +}); diff --git a/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/testUtils/data.ts b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/testUtils/data.ts new file mode 100644 index 00000000000..33a9a3d5534 --- /dev/null +++ b/packages/auth/__tests__/foundation/factories/serviceClients/cognitoIdentityProvider/testUtils/data.ts @@ -0,0 +1,7 @@ +import { ServiceClientFactoryInput } from '../../../../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; + +export const mockServiceClientAPIConfig: ServiceClientFactoryInput = { + endpointResolver: jest.fn() as jest.MockedFunction< + ServiceClientFactoryInput['endpointResolver'] + >, +}; diff --git a/packages/auth/__tests__/foundation/parsers/regionParsers.test.ts b/packages/auth/__tests__/foundation/parsers/regionParsers.test.ts new file mode 100644 index 00000000000..978ac7d8029 --- /dev/null +++ b/packages/auth/__tests__/foundation/parsers/regionParsers.test.ts @@ -0,0 +1,47 @@ +import { AuthError } from '../../../src/errors/AuthError'; +import { + getRegionFromIdentityPoolId, + getRegionFromUserPoolId, +} from '../../../src/foundation/parsers/regionParsers'; + +describe('getRegionFromIdentityPoolId()', () => { + it('returns the region from the identity pool id', () => { + const identityPoolId = 'us-west-2:12345678-1234-1234-1234-123456789012'; + const region = getRegionFromIdentityPoolId(identityPoolId); + expect(region).toEqual('us-west-2'); + }); + + test.each([undefined, 'invalid-id-123'])( + `throws an error when the identity pool id is invalid as %p`, + identityPoolId => { + expect(() => getRegionFromIdentityPoolId(identityPoolId)).toThrow( + new AuthError({ + name: 'InvalidIdentityPoolIdException', + message: 'Invalid identity pool id provided.', + recoverySuggestion: + 'Make sure a valid identityPoolId is given in the config.', + }), + ); + }, + ); +}); + +describe('getRegionFromUserPoolId()', () => { + it('should return the region from the user pool id', () => { + const userPoolId = 'us-west-2_12345678'; + const region = getRegionFromUserPoolId(userPoolId); + expect(region).toEqual('us-west-2'); + }); + + test.each([undefined, 'invalid-id-123'])( + `throws an error when the user pool id is invalid as %p`, + userPoolId => { + expect(() => getRegionFromUserPoolId(userPoolId)).toThrow( + new AuthError({ + name: 'InvalidUserPoolId', + message: 'Invalid user pool id provided.', + }), + ); + }, + ); +}); diff --git a/packages/auth/__tests__/providers/cognito/autoSignIn.test.ts b/packages/auth/__tests__/providers/cognito/autoSignIn.test.ts index 783fc2e9699..d787c2cdedf 100644 --- a/packages/auth/__tests__/providers/cognito/autoSignIn.test.ts +++ b/packages/auth/__tests__/providers/cognito/autoSignIn.test.ts @@ -8,13 +8,10 @@ import { signUp, } from '../../../src/providers/cognito'; import { autoSignIn } from '../../../src/providers/cognito/apis/autoSignIn'; -import * as signUpClient from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; -import { - RespondToAuthChallengeCommandOutput, - SignUpCommandOutput, -} from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; import * as initiateAuthHelpers from '../../../src/providers/cognito/utils/signInHelpers'; import { AuthError } from '../../../src/errors/AuthError'; +import { createSignUpClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { RespondToAuthChallengeCommandOutput } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { authAPITestParams } from './testUtils/authApiTestParams'; @@ -23,6 +20,9 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ ...jest.requireActual('@aws-amplify/core/internals/utils'), isBrowser: jest.fn(() => false), })); +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); const authConfig = { Cognito: { @@ -35,27 +35,30 @@ Amplify.configure({ Auth: authConfig, }); describe('Auto sign-in API Happy Path Cases:', () => { - let signUpSpy; - let handleUserSRPAuthflowSpy; + let handleUserSRPAuthFlowSpy: jest.SpyInstance; + + const mockSignUp = jest.fn(); + const mockCreateSignUpClient = jest.mocked(createSignUpClient); + const { user1 } = authAPITestParams; beforeEach(async () => { - signUpSpy = jest - .spyOn(signUpClient, 'signUp') - .mockImplementationOnce( - async () => ({ UserConfirmed: true }) as SignUpCommandOutput, - ); + mockSignUp.mockResolvedValueOnce({ UserConfirmed: true }); + mockCreateSignUpClient.mockReturnValueOnce(mockSignUp); - handleUserSRPAuthflowSpy = jest + handleUserSRPAuthFlowSpy = jest .spyOn(initiateAuthHelpers, 'handleUserSRPAuthFlow') .mockImplementationOnce( async (): Promise => authAPITestParams.RespondToAuthChallengeCommandOutput, ); }); + afterEach(() => { - signUpSpy.mockClear(); - handleUserSRPAuthflowSpy.mockClear(); + mockSignUp.mockClear(); + mockCreateSignUpClient.mockClear(); + handleUserSRPAuthFlowSpy.mockClear(); }); + test('signUp should enable autoSignIn and return COMPLETE_AUTO_SIGN_IN step', async () => { const resp = await signUp({ username: user1.username, @@ -71,13 +74,13 @@ describe('Auto sign-in API Happy Path Cases:', () => { signUpStep: 'COMPLETE_AUTO_SIGN_IN', }, }); - expect(signUpSpy).toHaveBeenCalledTimes(1); + expect(mockSignUp).toHaveBeenCalledTimes(1); }); test('Auto sign-in should resolve to a signIn output', async () => { const signInOutput = await autoSignIn(); expect(signInOutput).toEqual(authAPITestParams.signInResult()); - expect(handleUserSRPAuthflowSpy).toHaveBeenCalledTimes(1); + expect(handleUserSRPAuthFlowSpy).toHaveBeenCalledTimes(1); }); }); diff --git a/packages/auth/__tests__/providers/cognito/confirmResetPassword.test.ts b/packages/auth/__tests__/providers/cognito/confirmResetPassword.test.ts index df8167e5030..d07979c5d9c 100644 --- a/packages/auth/__tests__/providers/cognito/confirmResetPassword.test.ts +++ b/packages/auth/__tests__/providers/cognito/confirmResetPassword.test.ts @@ -7,7 +7,8 @@ import { AuthError } from '../../../src/errors/AuthError'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { confirmResetPassword } from '../../../src/providers/cognito'; import { ConfirmForgotPasswordException } from '../../../src/providers/cognito/types/errors'; -import { confirmForgotPassword } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createConfirmForgotPasswordClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { authAPITestParams } from './testUtils/authApiTestParams'; import { getMockError } from './testUtils/data'; @@ -22,12 +23,19 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('confirmResetPassword', () => { // assert mocks - const mockConfirmForgotPassword = confirmForgotPassword as jest.Mock; + const mockConfirmForgotPassword = jest.fn(); + const mockCreateConfirmResetPasswordClient = jest.mocked( + createConfirmForgotPasswordClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -37,10 +45,15 @@ describe('confirmResetPassword', () => { mockConfirmForgotPassword.mockResolvedValue( authAPITestParams.confirmResetPasswordHttpCallResult, ); + mockCreateConfirmResetPasswordClient.mockReturnValueOnce( + mockConfirmForgotPassword, + ); }); afterEach(() => { mockConfirmForgotPassword.mockReset(); + mockCreateConfirmResetPasswordClient.mockClear(); + mockCreateCognitoUserPoolEndpointResolver.mockClear(); }); it('should call the confirmForgotPassword and return void', async () => { @@ -50,6 +63,26 @@ describe('confirmResetPassword', () => { expect(mockConfirmForgotPassword).toHaveBeenCalled(); }); + it('invokes createCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + + await confirmResetPassword(authAPITestParams.confirmResetPasswordRequest); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should contain clientMetadata from request', async () => { await confirmResetPassword({ username: 'username', diff --git a/packages/auth/__tests__/providers/cognito/confirmSignInErrorCases.test.ts b/packages/auth/__tests__/providers/cognito/confirmSignInErrorCases.test.ts index 0f20b1703f3..a2d561799d9 100644 --- a/packages/auth/__tests__/providers/cognito/confirmSignInErrorCases.test.ts +++ b/packages/auth/__tests__/providers/cognito/confirmSignInErrorCases.test.ts @@ -4,8 +4,8 @@ import { AuthError } from '../../../src/errors/AuthError'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { confirmSignIn } from '../../../src/providers/cognito/apis/confirmSignIn'; import { RespondToAuthChallengeException } from '../../../src/providers/cognito/types/errors'; -import { respondToAuthChallenge } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { signInStore } from '../../../src/providers/cognito/utils/signInStore'; +import { createRespondToAuthChallengeClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; import { getMockError } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -15,10 +15,11 @@ jest.mock('@aws-amplify/core', () => ({ ...(jest.createMockFromModule('@aws-amplify/core') as object), Amplify: { getConfig: jest.fn(() => ({})) }, })); +jest.mock('../../../src/providers/cognito/utils/signInStore'); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); -jest.mock('../../../src/providers/cognito/utils/signInStore'); +jest.mock('../../../src/providers/cognito/factories'); describe('confirmSignIn API error path cases:', () => { const challengeName = 'SELECT_MFA_TYPE'; @@ -26,7 +27,10 @@ describe('confirmSignIn API error path cases:', () => { const { username } = authAPITestParams.user1; // assert mocks const mockStoreGetState = signInStore.getState as jest.Mock; - const mockRespondToAuthChallenge = respondToAuthChallenge as jest.Mock; + const mockRespondToAuthChallenge = jest.fn(); + const mockCreateRespondToAuthChallengeClient = jest.mocked( + createRespondToAuthChallengeClient, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -37,8 +41,15 @@ describe('confirmSignIn API error path cases:', () => { }); }); + beforeEach(() => { + mockCreateRespondToAuthChallengeClient.mockReturnValueOnce( + mockRespondToAuthChallenge, + ); + }); + afterEach(() => { mockRespondToAuthChallenge.mockReset(); + mockCreateRespondToAuthChallengeClient.mockClear(); }); it('confirmSignIn API should throw an error when challengeResponse is empty', async () => { diff --git a/packages/auth/__tests__/providers/cognito/confirmSignInHappyCases.test.ts b/packages/auth/__tests__/providers/cognito/confirmSignInHappyCases.test.ts index ddeb3c368fd..ddfcc9c2d8e 100644 --- a/packages/auth/__tests__/providers/cognito/confirmSignInHappyCases.test.ts +++ b/packages/auth/__tests__/providers/cognito/confirmSignInHappyCases.test.ts @@ -9,16 +9,22 @@ import { signIn, } from '../../../src/providers/cognito/'; import * as signInHelpers from '../../../src/providers/cognito/utils/signInHelpers'; -import { RespondToAuthChallengeCommandOutput } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; import { cognitoUserPoolsTokenProvider, tokenOrchestrator, } from '../../../src/providers/cognito/tokenProvider'; -import * as clients from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { + createInitiateAuthClient, + createRespondToAuthChallengeClient, +} from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { RespondToAuthChallengeCommandOutput } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { authAPITestParams } from './testUtils/authApiTestParams'; jest.mock('../../../src/providers/cognito/apis/getCurrentUser'); +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); const authConfig = { Cognito: { @@ -35,6 +41,9 @@ describe('confirmSignIn API happy path cases', () => { let handleChallengeNameSpy: jest.SpyInstance; const { username, password } = authAPITestParams.user1; + const mockInitiateAuth = jest.fn(); + const mockCreateInitiateAuthClient = jest.mocked(createInitiateAuthClient); + beforeEach(async () => { cognitoUserPoolsTokenProvider.setAuthConfig(authConfig); @@ -56,10 +65,14 @@ describe('confirmSignIn API happy path cases', () => { $metadata: {}, }), ); + + mockCreateInitiateAuthClient.mockReturnValueOnce(mockInitiateAuth); }); afterEach(() => { handleChallengeNameSpy.mockClear(); + mockInitiateAuth.mockClear(); + mockCreateInitiateAuthClient.mockClear(); }); afterAll(() => { @@ -234,20 +247,16 @@ describe('confirmSignIn API happy path cases', () => { const mockedUserSub = '1111-2222-3333-4444'; const activeSignInSession = '1234234232'; const activeChallengeName = 'SMS_MFA'; - const initiateAuthSpy = jest - .spyOn(clients, 'initiateAuth') - .mockImplementationOnce( - async (): Promise => ({ - ChallengeName: activeChallengeName, - Session: activeSignInSession, - $metadata: {}, - ChallengeParameters: { - USER_ID_FOR_SRP: mockedUserSub, - CODE_DELIVERY_DELIVERY_MEDIUM: 'SMS', - CODE_DELIVERY_DESTINATION: '*******9878', - }, - }), - ); + mockInitiateAuth.mockResolvedValueOnce({ + ChallengeName: activeChallengeName, + Session: activeSignInSession, + $metadata: {}, + ChallengeParameters: { + USER_ID_FOR_SRP: mockedUserSub, + CODE_DELIVERY_DELIVERY_MEDIUM: 'SMS', + CODE_DELIVERY_DESTINATION: '*******9878', + }, + }); await signIn({ username, password, @@ -260,6 +269,7 @@ describe('confirmSignIn API happy path cases', () => { options: authAPITestParams.configWithClientMetadata, }); const options = authAPITestParams.configWithClientMetadata; + expect(handleChallengeNameSpy).toHaveBeenCalledWith( mockedUserSub, activeChallengeName, @@ -270,14 +280,17 @@ describe('confirmSignIn API happy path cases', () => { authAPITestParams.configWithClientMetadata.clientMetadata, options, ); - initiateAuthSpy.mockClear(); }); }); describe('Cognito ASF', () => { - let respondToAuthChallengeSpy: jest.SpyInstance; let handleUserSRPAuthFlowSpy: jest.SpyInstance; + const mockRespondToAuthChallenge = jest.fn(); + const mockCreateRespondToAuthChallengeClient = jest.mocked( + createRespondToAuthChallengeClient, + ); + const { username } = authAPITestParams.user1; const { password } = authAPITestParams.user1; beforeEach(() => { @@ -292,30 +305,28 @@ describe('Cognito ASF', () => { }, }; - respondToAuthChallengeSpy = jest - .spyOn(clients, 'respondToAuthChallenge') - .mockImplementation( - async (): Promise => { - return { - Session: '1234234232', - $metadata: {}, - ChallengeName: undefined, - ChallengeParameters: {}, - AuthenticationResult: { - AccessToken: - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE3MTAyOTMxMzB9.YzDpgJsrB3z-ZU1XxMcXSQsMbgCzwH_e-_76rnfehh0', - ExpiresIn: 1000, - IdToken: - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE3MTAyOTMxMzB9.YzDpgJsrB3z-ZU1XxMcXSQsMbgCzwH_e-_76rnfehh0', - RefreshToken: 'qwersfsafsfssfasf', - }, - }; - }, - ); + mockRespondToAuthChallenge.mockResolvedValueOnce({ + Session: '1234234232', + $metadata: {}, + ChallengeName: undefined, + ChallengeParameters: {}, + AuthenticationResult: { + AccessToken: + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE3MTAyOTMxMzB9.YzDpgJsrB3z-ZU1XxMcXSQsMbgCzwH_e-_76rnfehh0', + ExpiresIn: 1000, + IdToken: + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE3MTAyOTMxMzB9.YzDpgJsrB3z-ZU1XxMcXSQsMbgCzwH_e-_76rnfehh0', + RefreshToken: 'qwersfsafsfssfasf', + }, + }); + mockCreateRespondToAuthChallengeClient.mockReturnValueOnce( + mockRespondToAuthChallenge, + ); }); afterEach(() => { - respondToAuthChallengeSpy.mockClear(); + mockRespondToAuthChallenge.mockClear(); + mockCreateRespondToAuthChallengeClient.mockClear(); handleUserSRPAuthFlowSpy.mockClear(); (window as any).AmazonCognitoAdvancedSecurityData = undefined; }); @@ -342,15 +353,11 @@ describe('Cognito ASF', () => { expect(result.isSignedIn).toBe(false); expect(result.nextStep.signInStep).toBe('CONFIRM_SIGN_IN_WITH_SMS_CODE'); - try { - await confirmSignIn({ - challengeResponse: '777', - }); - } catch (err) { - console.log(err); - } - - expect(respondToAuthChallengeSpy).toHaveBeenCalledWith( + await confirmSignIn({ + challengeResponse: '777', + }); + + expect(mockRespondToAuthChallenge).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), @@ -384,15 +391,11 @@ describe('Cognito ASF', () => { expect(result.nextStep.signInStep).toBe( 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION', ); - try { - await confirmSignIn({ - challengeResponse: 'SMS', - }); - } catch (err) { - console.log(err); - } - - expect(respondToAuthChallengeSpy).toHaveBeenCalledWith( + await confirmSignIn({ + challengeResponse: 'SMS', + }); + + expect(mockRespondToAuthChallenge).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), @@ -427,15 +430,11 @@ describe('Cognito ASF', () => { expect(result.isSignedIn).toBe(false); expect(result.nextStep.signInStep).toBe('CONFIRM_SIGN_IN_WITH_TOTP_CODE'); - try { - await confirmSignIn({ - challengeResponse: '123456', - }); - } catch (err) { - console.log(err); - } - - expect(respondToAuthChallengeSpy).toHaveBeenCalledWith( + await confirmSignIn({ + challengeResponse: '123456', + }); + + expect(mockRespondToAuthChallenge).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), @@ -472,15 +471,11 @@ describe('Cognito ASF', () => { expect(result.nextStep.signInStep).toBe( 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED', ); - try { - await confirmSignIn({ - challengeResponse: 'password', - }); - } catch (err) { - console.log(err); - } - - expect(respondToAuthChallengeSpy).toHaveBeenCalledWith( + await confirmSignIn({ + challengeResponse: 'password', + }); + + expect(mockRespondToAuthChallenge).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), @@ -516,15 +511,11 @@ describe('Cognito ASF', () => { expect(result.nextStep.signInStep).toBe( 'CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE', ); - try { - await confirmSignIn({ - challengeResponse: 'secret-answer', - }); - } catch (err) { - console.log(err); - } - - expect(respondToAuthChallengeSpy).toHaveBeenCalledWith( + await confirmSignIn({ + challengeResponse: 'secret-answer', + }); + + expect(mockRespondToAuthChallenge).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), diff --git a/packages/auth/__tests__/providers/cognito/confirmSignUp.test.ts b/packages/auth/__tests__/providers/cognito/confirmSignUp.test.ts index e6528e4b1ed..3523f9495aa 100644 --- a/packages/auth/__tests__/providers/cognito/confirmSignUp.test.ts +++ b/packages/auth/__tests__/providers/cognito/confirmSignUp.test.ts @@ -4,16 +4,22 @@ import { Amplify } from '@aws-amplify/core'; import { confirmSignUp } from '../../../src/providers/cognito'; -import { confirmSignUp as providerConfirmSignUp } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { AuthError } from '../../../src/errors/AuthError'; import { ConfirmSignUpException } from '../../../src/providers/cognito/types/errors'; -import { ConfirmSignUpCommandOutput } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; +import { createConfirmSignUpClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; +import { ConfirmSignUpCommandOutput } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { authAPITestParams } from './testUtils/authApiTestParams'; import { getMockError } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); +jest.mock('../../../src/providers/cognito/factories'); + jest.mock('@aws-amplify/core', () => ({ ...(jest.createMockFromModule('@aws-amplify/core') as object), Amplify: { getConfig: jest.fn(() => ({})) }, @@ -22,15 +28,16 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ ...jest.requireActual('@aws-amplify/core/internals/utils'), isBrowser: jest.fn(() => false), })); -jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', -); describe('confirmSignUp', () => { const { user1 } = authAPITestParams; const confirmationCode = '123456'; // assert mocks - const mockConfirmSignUp = providerConfirmSignUp as jest.Mock; + const mockConfirmSignUp = jest.fn(); + const mockCreateConfirmSignUpClient = jest.mocked(createConfirmSignUpClient); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -38,10 +45,13 @@ describe('confirmSignUp', () => { beforeEach(() => { mockConfirmSignUp.mockResolvedValue({} as ConfirmSignUpCommandOutput); + mockCreateConfirmSignUpClient.mockReturnValueOnce(mockConfirmSignUp); }); afterEach(() => { mockConfirmSignUp.mockReset(); + mockCreateConfirmSignUpClient.mockClear(); + mockCreateCognitoUserPoolEndpointResolver.mockClear(); }); it('should call confirmSignUp and return a SignUpResult', async () => { @@ -68,6 +78,29 @@ describe('confirmSignUp', () => { expect(mockConfirmSignUp).toHaveBeenCalledTimes(1); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + + await confirmSignUp({ + username: user1.username, + confirmationCode, + }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should contain force alias creation', async () => { await confirmSignUp({ username: user1.username, diff --git a/packages/auth/__tests__/providers/cognito/confirmUserAttribute.test.ts b/packages/auth/__tests__/providers/cognito/confirmUserAttribute.test.ts index 3c7961d125a..56608241897 100644 --- a/packages/auth/__tests__/providers/cognito/confirmUserAttribute.test.ts +++ b/packages/auth/__tests__/providers/cognito/confirmUserAttribute.test.ts @@ -7,8 +7,9 @@ import { decodeJWT } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../src/errors/AuthError'; import { confirmUserAttribute } from '../../../src/providers/cognito'; import { VerifyUserAttributeException } from '../../../src/providers/cognito/types/errors'; -import { verifyUserAttribute } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; +import { createVerifyUserAttributeClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -22,14 +23,21 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('confirmUserAttribute', () => { const confirmationCode = '123456'; // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockVerifyUserAttribute = verifyUserAttribute as jest.Mock; + const mockVerifyUserAttribute = jest.fn(); + const mockCreateVerifyUserAttributeClient = jest.mocked( + createVerifyUserAttributeClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -40,11 +48,15 @@ describe('confirmUserAttribute', () => { beforeEach(() => { mockVerifyUserAttribute.mockResolvedValue({ $metadata: {} }); + mockCreateVerifyUserAttributeClient.mockReturnValueOnce( + mockVerifyUserAttribute, + ); }); afterEach(() => { mockVerifyUserAttribute.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateVerifyUserAttributeClient.mockClear(); }); it('should call the service', async () => { @@ -63,6 +75,28 @@ describe('confirmUserAttribute', () => { ); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await confirmUserAttribute({ + userAttributeKey: 'email', + confirmationCode, + }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when confirmationCode is not defined', async () => { try { await confirmUserAttribute({ diff --git a/packages/auth/__tests__/providers/cognito/deleteUser.test.ts b/packages/auth/__tests__/providers/cognito/deleteUser.test.ts index ec1cf3a90d9..b56e9736e12 100644 --- a/packages/auth/__tests__/providers/cognito/deleteUser.test.ts +++ b/packages/auth/__tests__/providers/cognito/deleteUser.test.ts @@ -7,9 +7,10 @@ import { decodeJWT } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../src/errors/AuthError'; import { deleteUser } from '../../../src/providers/cognito'; import { tokenOrchestrator } from '../../../src/providers/cognito/tokenProvider'; -import { deleteUser as providerDeleteUser } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { DeleteUserException } from '../../../src/providers/cognito/types/errors'; import { signOut } from '../../../src/providers/cognito/apis/signOut'; +import { createDeleteUserClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -23,18 +24,23 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock('../../../src/providers/cognito/apis/signOut'); +jest.mock('../../../src/providers/cognito/tokenProvider'); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); -jest.mock('../../../src/providers/cognito/tokenProvider'); +jest.mock('../../../src/providers/cognito/factories'); describe('deleteUser', () => { // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockDeleteUser = providerDeleteUser as jest.Mock; + const mockDeleteUser = jest.fn(); + const mockCreateDeleteUserClient = jest.mocked(createDeleteUserClient); const mockSignOut = signOut as jest.Mock; const mockClearDeviceMetadata = tokenOrchestrator.clearDeviceMetadata as jest.Mock; + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -45,12 +51,14 @@ describe('deleteUser', () => { beforeEach(() => { mockDeleteUser.mockResolvedValue({ $metadata: {} }); + mockCreateDeleteUserClient.mockReturnValueOnce(mockDeleteUser); }); afterEach(() => { mockDeleteUser.mockReset(); mockClearDeviceMetadata.mockClear(); mockFetchAuthSession.mockClear(); + mockCreateDeleteUserClient.mockClear(); }); it('should delete user, sign out and clear device tokens', async () => { @@ -72,6 +80,25 @@ describe('deleteUser', () => { ); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await deleteUser(); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockDeleteUser.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/deleteUserAttributes.test.ts b/packages/auth/__tests__/providers/cognito/deleteUserAttributes.test.ts index 959592a5b87..c791b224fdb 100644 --- a/packages/auth/__tests__/providers/cognito/deleteUserAttributes.test.ts +++ b/packages/auth/__tests__/providers/cognito/deleteUserAttributes.test.ts @@ -7,7 +7,8 @@ import { decodeJWT } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../src/errors/AuthError'; import { deleteUserAttributes } from '../../../src/providers/cognito'; import { DeleteUserAttributesException } from '../../../src/providers/cognito/types/errors'; -import { deleteUserAttributes as providerDeleteUserAttributes } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createDeleteUserAttributesClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -21,13 +22,20 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('deleteUserAttributes', () => { // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockDeleteUserAttributes = providerDeleteUserAttributes as jest.Mock; + const mockDeleteUserAttributes = jest.fn(); + const mockCreateDeleteUserAttributesClient = jest.mocked( + createDeleteUserAttributesClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -38,11 +46,15 @@ describe('deleteUserAttributes', () => { beforeEach(() => { mockDeleteUserAttributes.mockResolvedValue({ $metadata: {} }); + mockCreateDeleteUserAttributesClient.mockReturnValueOnce( + mockDeleteUserAttributes, + ); }); afterEach(() => { mockDeleteUserAttributes.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateDeleteUserAttributesClient.mockClear(); }); it('should delete user attributes', async () => { @@ -60,6 +72,27 @@ describe('deleteUserAttributes', () => { expect(mockDeleteUserAttributes).toHaveBeenCalledTimes(1); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await deleteUserAttributes({ + userAttributeKeys: ['given_name', 'address'], + }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockDeleteUserAttributes.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/factories/createCognitoUserPoolEndpointResolver.test.ts b/packages/auth/__tests__/providers/cognito/factories/createCognitoUserPoolEndpointResolver.test.ts new file mode 100644 index 00000000000..1c499146921 --- /dev/null +++ b/packages/auth/__tests__/providers/cognito/factories/createCognitoUserPoolEndpointResolver.test.ts @@ -0,0 +1,55 @@ +import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; + +import { cognitoUserPoolEndpointResolver } from '../../../../src/foundation/cognitoUserPoolEndpointResolver'; +import { createCognitoUserPoolEndpointResolver } from '../../../../src/providers/cognito/factories/createCognitoUserPoolEndpointResolver'; + +jest.mock('../../../../src/foundation/cognitoUserPoolEndpointResolver'); + +const mockCognitoUserPoolEndpointResolver = jest.mocked( + cognitoUserPoolEndpointResolver, +); + +describe('createCognitoUserPoolEndpointResolver()', () => { + afterEach(() => { + mockCognitoUserPoolEndpointResolver.mockClear(); + }); + + describe('creating a resolver with overrideEndpoint as `undefined`', () => { + const resolver = createCognitoUserPoolEndpointResolver({ + endpointOverride: undefined, + }); + + it('invokes cognitoUserPoolEndpointResolver with the expected region', () => { + const expectedReturningUrl = { + url: new AmplifyUrl('https://cognito-idp.us-west-2.amazonaws.com/'), + }; + mockCognitoUserPoolEndpointResolver.mockReturnValueOnce( + expectedReturningUrl, + ); + + const expectedRegion = 'us-west-2'; + const { url } = resolver({ region: expectedRegion }); + + expect(mockCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + region: expectedRegion, + }); + expect(url).toStrictEqual(expectedReturningUrl.url); + }); + }); + + describe('creating a resolver with overrideEndpoint', () => { + const endpointOverride = 'https://cognito-idp.example.com'; + const resolver = createCognitoUserPoolEndpointResolver({ + endpointOverride, + }); + + it('returns the endpoint override', () => { + const expectedRegion = 'us-west-2'; + const { url } = resolver({ region: expectedRegion }); + expect(mockCognitoUserPoolEndpointResolver).not.toHaveBeenCalled(); + expect(url).toStrictEqual( + new AmplifyUrl('https://cognito-idp.example.com'), + ); + }); + }); +}); diff --git a/packages/auth/__tests__/providers/cognito/fetchDevices.test.ts b/packages/auth/__tests__/providers/cognito/fetchDevices.test.ts index 1e8a48ab84e..4cdb79a13bd 100644 --- a/packages/auth/__tests__/providers/cognito/fetchDevices.test.ts +++ b/packages/auth/__tests__/providers/cognito/fetchDevices.test.ts @@ -6,8 +6,9 @@ import { decodeJWT } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../src/errors/AuthError'; import { fetchDevices } from '../../../src/providers/cognito'; -import { listDevices } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { ListDevicesException } from '../../../src/providers/cognito/types/errors'; +import { createListDevicesClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -21,8 +22,9 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('fetchDevices', () => { const dateEpoch = 1.696296885807e9; @@ -51,7 +53,11 @@ describe('fetchDevices', () => { }; // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockListDevices = listDevices as jest.Mock; + const mockListDevices = jest.fn(); + const mockCreateListDevicesClient = jest.mocked(createListDevicesClient); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -65,11 +71,13 @@ describe('fetchDevices', () => { Devices: [clientResponseDevice], $metadata: {}, }); + mockCreateListDevicesClient.mockReturnValueOnce(mockListDevices); }); afterEach(() => { mockListDevices.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateListDevicesClient.mockClear(); }); it('should fetch devices and parse client response correctly', async () => { @@ -84,6 +92,25 @@ describe('fetchDevices', () => { expect(mockListDevices).toHaveBeenCalledTimes(1); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await fetchDevices(); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockListDevices.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/fetchMFAPreference.test.ts b/packages/auth/__tests__/providers/cognito/fetchMFAPreference.test.ts index ed2517a358e..c4d8a7a9efa 100644 --- a/packages/auth/__tests__/providers/cognito/fetchMFAPreference.test.ts +++ b/packages/auth/__tests__/providers/cognito/fetchMFAPreference.test.ts @@ -4,10 +4,11 @@ import { Amplify, fetchAuthSession } from '@aws-amplify/core'; import { decodeJWT } from '@aws-amplify/core/internals/utils'; -import { getUser } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { AuthError } from '../../../src/errors/AuthError'; import { fetchMFAPreference } from '../../../src/providers/cognito/apis/fetchMFAPreference'; import { GetUserException } from '../../../src/providers/cognito/types/errors'; +import { createGetUserClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -17,13 +18,18 @@ jest.mock('@aws-amplify/core', () => ({ Amplify: { getConfig: jest.fn(() => ({})) }, })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('fetchMFAPreference', () => { // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockGetUser = getUser as jest.Mock; + const mockGetUser = jest.fn(); + const mockCreateGetUserClient = jest.mocked(createGetUserClient); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -40,6 +46,7 @@ describe('fetchMFAPreference', () => { UserMFASettingList: ['SMS_MFA', 'SOFTWARE_TOKEN_MFA'], $metadata: {}, }); + mockCreateGetUserClient.mockReturnValueOnce(mockGetUser); }); afterEach(() => { @@ -62,6 +69,25 @@ describe('fetchMFAPreference', () => { ); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await fetchMFAPreference(); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockGetUser.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/fetchUserAttributes.test.ts b/packages/auth/__tests__/providers/cognito/fetchUserAttributes.test.ts index cff5ff01b64..87cf79e715d 100644 --- a/packages/auth/__tests__/providers/cognito/fetchUserAttributes.test.ts +++ b/packages/auth/__tests__/providers/cognito/fetchUserAttributes.test.ts @@ -4,10 +4,11 @@ import { Amplify } from '@aws-amplify/core'; import { decodeJWT, fetchAuthSession } from '@aws-amplify/core/internals/utils'; -import { getUser } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { AuthError } from '../../../src/errors/AuthError'; import { GetUserException } from '../../../src/providers/cognito/types/errors'; import { fetchUserAttributes } from '../../../src/providers/cognito/apis/fetchUserAttributes'; +import { createGetUserClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -21,13 +22,18 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ fetchAuthSession: jest.fn(), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('fetchUserAttributes', () => { // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockGetUser = getUser as jest.Mock; + const mockGetUser = jest.fn(); + const mockCreateGetUserClient = jest.mocked(createGetUserClient); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -47,11 +53,13 @@ describe('fetchUserAttributes', () => { UserMFASettingList: ['SMS_MFA', 'SOFTWARE_TOKEN_MFA'], $metadata: {}, }); + mockCreateGetUserClient.mockReturnValueOnce(mockGetUser); }); afterEach(() => { mockGetUser.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateGetUserClient.mockClear(); }); it('should return the current user attributes into a map format', async () => { @@ -71,6 +79,25 @@ describe('fetchUserAttributes', () => { ); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await fetchUserAttributes(); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockGetUser.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/forgetDevice.test.ts b/packages/auth/__tests__/providers/cognito/forgetDevice.test.ts index 6371e2b41a8..cc0a2d37407 100644 --- a/packages/auth/__tests__/providers/cognito/forgetDevice.test.ts +++ b/packages/auth/__tests__/providers/cognito/forgetDevice.test.ts @@ -8,8 +8,9 @@ import { AuthError } from '../../../src/errors/AuthError'; import { DEVICE_METADATA_NOT_FOUND_EXCEPTION } from '../../../src/errors/constants'; import { forgetDevice } from '../../../src/providers/cognito'; import { ForgetDeviceException } from '../../../src/providers/cognito/types/errors'; -import { forgetDevice as providerForgetDevice } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { tokenOrchestrator } from '../../../src/providers/cognito/tokenProvider'; +import { createForgetDeviceClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -22,10 +23,11 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ ...jest.requireActual('@aws-amplify/core/internals/utils'), isBrowser: jest.fn(() => false), })); +jest.mock('../../../src/providers/cognito/tokenProvider'); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); -jest.mock('../../../src/providers/cognito/tokenProvider'); +jest.mock('../../../src/providers/cognito/factories'); describe('fetchMFAPreference', () => { const mockDeviceMetadata = { @@ -35,11 +37,15 @@ describe('fetchMFAPreference', () => { }; // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockForgetDevice = providerForgetDevice as jest.Mock; + const mockForgetDevice = jest.fn(); + const mockCreateForgetDeviceClient = jest.mocked(createForgetDeviceClient); const mockClearDeviceMetadata = tokenOrchestrator.clearDeviceMetadata as jest.Mock; const mockGetDeviceMetadata = tokenOrchestrator.getDeviceMetadata as jest.Mock; + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -51,6 +57,7 @@ describe('fetchMFAPreference', () => { beforeEach(() => { mockForgetDevice.mockResolvedValue({ $metadata: {} }); mockGetDeviceMetadata.mockResolvedValue(mockDeviceMetadata); + mockCreateForgetDeviceClient.mockReturnValueOnce(mockForgetDevice); }); afterEach(() => { @@ -58,6 +65,7 @@ describe('fetchMFAPreference', () => { mockGetDeviceMetadata.mockReset(); mockFetchAuthSession.mockClear(); mockClearDeviceMetadata.mockClear(); + mockCreateForgetDeviceClient.mockClear(); }); it(`should forget 'external device' 'with' inputParams when tokenStore deviceMetadata 'present'`, async () => { @@ -74,6 +82,25 @@ describe('fetchMFAPreference', () => { expect(mockClearDeviceMetadata).not.toHaveBeenCalled(); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await forgetDevice({ device: { id: 'externalDeviceKey' } }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it(`should forget 'current device' 'with' inputParams when tokenStore deviceMetadata 'present'`, async () => { expect.assertions(3); await forgetDevice({ device: { id: mockDeviceMetadata.deviceKey } }); diff --git a/packages/auth/__tests__/providers/cognito/getNewDeviceMetadata.test.ts b/packages/auth/__tests__/providers/cognito/getNewDeviceMetadata.test.ts index cb600ce133e..6058fc363b7 100644 --- a/packages/auth/__tests__/providers/cognito/getNewDeviceMetadata.test.ts +++ b/packages/auth/__tests__/providers/cognito/getNewDeviceMetadata.test.ts @@ -5,11 +5,17 @@ import { Amplify } from '@aws-amplify/core'; import { AuthError } from '../../../src/errors/AuthError'; import { ConfirmDeviceException } from '../../../src/providers/cognito/types/errors'; -import * as clients from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; -import { ConfirmDeviceCommandOutput } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; -import { getNewDeviceMetatada } from '../../../src/providers/cognito/utils/signInHelpers'; +import { getNewDeviceMetadata } from '../../../src/providers/cognito/utils/signInHelpers'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; +import { createConfirmDeviceClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; + +jest.mock('../../../src/providers/cognito/factories'); +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); const userPoolId = 'us-west-2_zzzzz'; + Amplify.configure({ Auth: { Cognito: { @@ -22,66 +28,95 @@ Amplify.configure({ const mockedAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'; +const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, +); + describe('test getNewDeviceMetadata API', () => { + const mockConfirmDevice = jest.fn(); + const mockCreateConfirmDeviceClient = jest.mocked(createConfirmDeviceClient); + + beforeEach(() => { + mockCreateConfirmDeviceClient.mockReturnValueOnce(mockConfirmDevice); + }); + + afterEach(() => { + mockConfirmDevice.mockClear(); + mockCreateConfirmDeviceClient.mockClear(); + }); + test('getNewDeviceMetadata should call confirmDevice and return DeviceMetadata', async () => { - const confirmDeviceClientSpy = jest - .spyOn(clients, 'confirmDevice') - .mockImplementationOnce(async (): Promise => { - return { UserConfirmationNecessary: true, $metadata: {} }; - }); + mockConfirmDevice.mockResolvedValueOnce({ + UserConfirmationNecessary: true, + $metadata: {}, + }); + const mockedDeviceKey = 'mockedDeviceKey'; const mockedGroupDeviceKey = 'mockedGroupDeviceKey'; - const deviceMetadata = await getNewDeviceMetatada( + const deviceMetadata = await getNewDeviceMetadata({ userPoolId, - { + userPoolEndpoint: undefined, + newDeviceMetadata: { DeviceKey: mockedDeviceKey, DeviceGroupKey: mockedGroupDeviceKey, }, - mockedAccessToken, - ); + accessToken: mockedAccessToken, + }); expect(deviceMetadata?.deviceKey).toBe(mockedDeviceKey); expect(deviceMetadata?.deviceGroupKey).toBe(mockedGroupDeviceKey); - expect(confirmDeviceClientSpy).toHaveBeenCalledWith( + expect(mockConfirmDevice).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2' }), expect.objectContaining({ AccessToken: mockedAccessToken, DeviceKey: mockedDeviceKey, }), ); - - confirmDeviceClientSpy.mockClear(); }); test('getNewDeviceMetadata should return undefined when ConfirmDevice throws an error', async () => { - const confirmDeviceClientSpy = jest - .spyOn(clients, 'confirmDevice') - .mockImplementationOnce(async (): Promise => { - throw new AuthError({ - name: ConfirmDeviceException.InternalErrorException, - message: 'error while calling confirmDevice', - }); - }); + mockConfirmDevice.mockRejectedValueOnce( + new AuthError({ + name: ConfirmDeviceException.InternalErrorException, + message: 'error while calling confirmDevice', + }), + ); const mockedDeviceKey = 'mockedDeviceKey'; const mockedGroupDeviceKey = 'mockedGroupDeviceKey'; - const deviceMetadata = await getNewDeviceMetatada( + const deviceMetadata = await getNewDeviceMetadata({ userPoolId, - { + userPoolEndpoint: undefined, + newDeviceMetadata: { DeviceKey: mockedDeviceKey, DeviceGroupKey: mockedGroupDeviceKey, }, - mockedAccessToken, - ); + accessToken: mockedAccessToken, + }); expect(deviceMetadata).toBeUndefined(); - expect(confirmDeviceClientSpy).toHaveBeenCalledWith( + expect(mockConfirmDevice).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2' }), expect.objectContaining({ AccessToken: mockedAccessToken, DeviceKey: mockedDeviceKey, }), ); + }); + + it('invokes createCognitoUserPoolEndpointResolver with expected userPoolEndpoint parameter', async () => { + const expectedEndpoint = 'https://custom-endpoint.com'; + await getNewDeviceMetadata({ + userPoolId, + userPoolEndpoint: expectedEndpoint, + newDeviceMetadata: { + DeviceKey: 'devicekey', + DeviceGroupKey: 'groupkey', + }, + accessToken: mockedAccessToken, + }); - confirmDeviceClientSpy.mockClear(); + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedEndpoint, + }); }); }); diff --git a/packages/auth/__tests__/providers/cognito/refreshToken.test.ts b/packages/auth/__tests__/providers/cognito/refreshToken.test.ts index 86ac80a1fee..bef5cb28d61 100644 --- a/packages/auth/__tests__/providers/cognito/refreshToken.test.ts +++ b/packages/auth/__tests__/providers/cognito/refreshToken.test.ts @@ -2,23 +2,39 @@ import { decodeJWT } from '@aws-amplify/core/internals/utils'; import { refreshAuthTokens } from '../../../src/providers/cognito/utils/refreshAuthTokens'; import { CognitoAuthTokens } from '../../../src/providers/cognito/tokenProvider/types'; -import { initiateAuth } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { oAuthTokenRefreshException, tokenRefreshException, } from '../../../src/providers/cognito/utils/types'; +import { createInitiateAuthClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { mockAccessToken, mockRequestId } from './testUtils/data'; jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); +jest.mock('../../../src/providers/cognito/factories'); + +const mockCreateInitiateAuthClient = jest.mocked(createInitiateAuthClient); +const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, ); describe('refreshToken', () => { const mockedUsername = 'mockedUsername'; const mockedRefreshToken = 'mockedRefreshToken'; - // assert mocks - const mockInitiateAuth = initiateAuth as jest.Mock; + const mockInitiateAuth = jest.fn(); + + beforeEach(() => { + mockCreateInitiateAuthClient.mockReturnValueOnce(mockInitiateAuth); + }); + + afterEach(() => { + mockCreateInitiateAuthClient.mockClear(); + mockCreateCognitoUserPoolEndpointResolver.mockClear(); + }); + describe('positive cases', () => { beforeEach(() => { mockInitiateAuth.mockResolvedValue({ @@ -119,6 +135,39 @@ describe('refreshToken', () => { ); (window as any).AmazonCognitoAdvancedSecurityData = undefined; }); + + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected parameters', async () => { + const expectedParam = 'https://my-custom-endpoint.com'; + const expectedEndpointResolver = jest.fn(); + mockCreateCognitoUserPoolEndpointResolver.mockReturnValueOnce( + expectedEndpointResolver, + ); + + await refreshAuthTokens({ + username: 'username', + tokens: { + accessToken: { payload: {} }, + idToken: { payload: {} }, + clockDrift: 0, + refreshToken: 'refreshtoken', + username: 'username', + }, + authConfig: { + Cognito: { + userPoolId: 'us-east-1_aaaaaaa', + userPoolClientId: 'aaaaaaaaaaaa', + userPoolEndpoint: expectedParam, + }, + }, + }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedParam, + }); + expect(mockCreateInitiateAuthClient).toHaveBeenCalledWith({ + endpointResolver: expectedEndpointResolver, + }); + }); }); describe('negative cases', () => { @@ -153,6 +202,7 @@ describe('refreshToken', () => { }), ).rejects.toThrow(oAuthTokenRefreshException); }); + it('should throw an exception when cognito tokens are not available', async () => { await expect( refreshAuthTokens({ diff --git a/packages/auth/__tests__/providers/cognito/rememberDevice.test.ts b/packages/auth/__tests__/providers/cognito/rememberDevice.test.ts index 820b2a1ef5f..0521e928654 100644 --- a/packages/auth/__tests__/providers/cognito/rememberDevice.test.ts +++ b/packages/auth/__tests__/providers/cognito/rememberDevice.test.ts @@ -7,9 +7,10 @@ import { Amplify, fetchAuthSession } from '@aws-amplify/core'; import { AuthError } from '../../../src/errors/AuthError'; import { rememberDevice } from '../../../src/providers/cognito'; import { UpdateDeviceStatusException } from '../../../src/providers/cognito/types/errors'; -import { updateDeviceStatus } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { tokenOrchestrator } from '../../../src/providers/cognito/tokenProvider'; import { DeviceMetadata } from '../../../src/providers/cognito/tokenProvider/types'; +import { createUpdateDeviceStatusClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -23,8 +24,9 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); jest.mock('../../../src/providers/cognito/tokenProvider'); describe('rememberDevice', () => { @@ -35,7 +37,13 @@ describe('rememberDevice', () => { }; // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockUpdateDeviceStatus = updateDeviceStatus as jest.Mock; + const mockUpdateDeviceStatus = jest.fn(); + const mockCreateUpdateDeviceStatusClient = jest.mocked( + createUpdateDeviceStatusClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); const mockGetDeviceMetadata = tokenOrchestrator.getDeviceMetadata as jest.Mock; @@ -49,12 +57,16 @@ describe('rememberDevice', () => { beforeEach(() => { mockGetDeviceMetadata.mockResolvedValue(mockDeviceMetadata); mockUpdateDeviceStatus.mockResolvedValue({ $metadata: {} }); + mockCreateUpdateDeviceStatusClient.mockReturnValueOnce( + mockUpdateDeviceStatus, + ); }); afterEach(() => { mockGetDeviceMetadata.mockReset(); mockUpdateDeviceStatus.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateUpdateDeviceStatusClient.mockClear(); }); it('should call updateDeviceStatus client with correct request', async () => { @@ -71,6 +83,25 @@ describe('rememberDevice', () => { expect(mockUpdateDeviceStatus).toHaveBeenCalledTimes(1); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await rememberDevice(); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockUpdateDeviceStatus.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/resendSignUpCode.test.ts b/packages/auth/__tests__/providers/cognito/resendSignUpCode.test.ts index d723a69eda8..d351a950484 100644 --- a/packages/auth/__tests__/providers/cognito/resendSignUpCode.test.ts +++ b/packages/auth/__tests__/providers/cognito/resendSignUpCode.test.ts @@ -7,7 +7,8 @@ import { resendSignUpCode } from '../../../src/providers/cognito'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { AuthError } from '../../../src/errors/AuthError'; import { ResendConfirmationException } from '../../../src/providers/cognito/types/errors'; -import { resendConfirmationCode } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createResendConfirmationCodeClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { authAPITestParams } from './testUtils/authApiTestParams'; import { getMockError } from './testUtils/data'; @@ -22,13 +23,20 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('resendSignUpCode', () => { const { user1 } = authAPITestParams; // assert mocks - const mockResendConfirmationCode = resendConfirmationCode as jest.Mock; + const mockResendConfirmationCode = jest.fn(); + const mockCreateResendConfirmationCodeClient = jest.mocked( + createResendConfirmationCodeClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -38,6 +46,9 @@ describe('resendSignUpCode', () => { mockResendConfirmationCode.mockResolvedValue( authAPITestParams.resendSignUpClientResult, ); + mockCreateResendConfirmationCodeClient.mockReturnValueOnce( + mockResendConfirmationCode, + ); }); afterEach(() => { @@ -63,6 +74,26 @@ describe('resendSignUpCode', () => { expect(mockResendConfirmationCode).toHaveBeenCalledTimes(1); }); + it('invokes createCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await resendSignUpCode({ + username: user1.username, + }); + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when username is empty', async () => { expect.assertions(2); try { diff --git a/packages/auth/__tests__/providers/cognito/resetPassword.test.ts b/packages/auth/__tests__/providers/cognito/resetPassword.test.ts index 3432ae17c0a..41deeeb170a 100644 --- a/packages/auth/__tests__/providers/cognito/resetPassword.test.ts +++ b/packages/auth/__tests__/providers/cognito/resetPassword.test.ts @@ -6,7 +6,8 @@ import { AuthError } from '../../../src/errors/AuthError'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { resetPassword } from '../../../src/providers/cognito'; import { ForgotPasswordException } from '../../../src/providers/cognito/types/errors'; -import { forgotPassword } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createForgotPasswordClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { authAPITestParams } from './testUtils/authApiTestParams'; import { getMockError } from './testUtils/data'; @@ -21,12 +22,19 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('resetPassword', () => { // assert mocks - const mockForgotPassword = forgotPassword as jest.Mock; + const mockForgotPassword = jest.fn(); + const mockCreateForgotPasswordClient = jest.mocked( + createForgotPasswordClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -36,10 +44,13 @@ describe('resetPassword', () => { mockForgotPassword.mockResolvedValue( authAPITestParams.resetPasswordHttpCallResult, ); + mockCreateForgotPasswordClient.mockReturnValueOnce(mockForgotPassword); }); afterEach(() => { mockForgotPassword.mockReset(); + mockCreateForgotPasswordClient.mockClear(); + mockCreateCognitoUserPoolEndpointResolver.mockClear(); }); it('should call forgotPassword and return a result', async () => { @@ -47,6 +58,26 @@ describe('resetPassword', () => { expect(result).toEqual(authAPITestParams.resetPasswordResult); }); + it('invokes createCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + + await resetPassword(authAPITestParams.resetPasswordRequest); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should contain clientMetadata from request', async () => { await resetPassword({ username: 'username', diff --git a/packages/auth/__tests__/providers/cognito/sendUserAttributeVerificationCode.test.ts b/packages/auth/__tests__/providers/cognito/sendUserAttributeVerificationCode.test.ts index 2b236d1db5a..31376edf642 100644 --- a/packages/auth/__tests__/providers/cognito/sendUserAttributeVerificationCode.test.ts +++ b/packages/auth/__tests__/providers/cognito/sendUserAttributeVerificationCode.test.ts @@ -7,7 +7,8 @@ import { decodeJWT } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../src/errors/AuthError'; import { sendUserAttributeVerificationCode } from '../../../src/providers/cognito'; import { GetUserAttributeVerificationException } from '../../../src/providers/cognito/types/errors'; -import { getUserAttributeVerificationCode } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createGetUserAttributeVerificationCodeClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { authAPITestParams } from './testUtils/authApiTestParams'; import { getMockError, mockAccessToken } from './testUtils/data'; @@ -22,14 +23,20 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('sendUserAttributeVerificationCode', () => { // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockGetUserAttributeVerificationCode = - getUserAttributeVerificationCode as jest.Mock; + const mockGetUserAttributeVerificationCode = jest.fn(); + const mockCreateGetUserAttributeVerificationCodeClient = jest.mocked( + createGetUserAttributeVerificationCodeClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -42,11 +49,15 @@ describe('sendUserAttributeVerificationCode', () => { mockGetUserAttributeVerificationCode.mockResolvedValue( authAPITestParams.resendSignUpClientResult, ); + mockCreateGetUserAttributeVerificationCodeClient.mockReturnValueOnce( + mockGetUserAttributeVerificationCode, + ); }); afterEach(() => { mockGetUserAttributeVerificationCode.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateGetUserAttributeVerificationCodeClient.mockClear(); }); it('should return a result', async () => { @@ -69,6 +80,30 @@ describe('sendUserAttributeVerificationCode', () => { expect(mockGetUserAttributeVerificationCode).toHaveBeenCalledTimes(1); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await sendUserAttributeVerificationCode({ + userAttributeKey: 'email', + options: { + clientMetadata: { foo: 'bar' }, + }, + }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockGetUserAttributeVerificationCode.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/setUpTOTP.test.ts b/packages/auth/__tests__/providers/cognito/setUpTOTP.test.ts index 1f7399093cc..1a7d0cfbc4b 100644 --- a/packages/auth/__tests__/providers/cognito/setUpTOTP.test.ts +++ b/packages/auth/__tests__/providers/cognito/setUpTOTP.test.ts @@ -6,8 +6,9 @@ import { decodeJWT } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../src/errors/AuthError'; import { AssociateSoftwareTokenException } from '../../../src/providers/cognito/types/errors'; -import { associateSoftwareToken } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { setUpTOTP } from '../../../src/providers/cognito'; +import { createAssociateSoftwareTokenClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -21,14 +22,21 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('setUpTOTP', () => { const secretCode = 'secret-code'; // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockAssociateSoftwareToken = associateSoftwareToken as jest.Mock; + const mockAssociateSoftwareToken = jest.fn(); + const mockCreateAssociateSoftwareTokenClient = jest.mocked( + createAssociateSoftwareTokenClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -42,11 +50,15 @@ describe('setUpTOTP', () => { SecretCode: secretCode, $metadata: {}, }); + mockCreateAssociateSoftwareTokenClient.mockReturnValueOnce( + mockAssociateSoftwareToken, + ); }); afterEach(() => { mockAssociateSoftwareToken.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateAssociateSoftwareTokenClient.mockClear(); }); it('setUpTOTP API should call the UserPoolClient and should return a TOTPSetupDetails', async () => { @@ -64,6 +76,26 @@ describe('setUpTOTP', () => { expect(result.getSetupUri('appName', 'amplify')).toBeInstanceOf(URL); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + + await setUpTOTP(); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockAssociateSoftwareToken.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/signInErrorCases.test.ts b/packages/auth/__tests__/providers/cognito/signInErrorCases.test.ts index b4e8453b17d..f66241497f3 100644 --- a/packages/auth/__tests__/providers/cognito/signInErrorCases.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInErrorCases.test.ts @@ -6,9 +6,9 @@ import { Amplify } from '@aws-amplify/core'; import { AuthError } from '../../../src/errors/AuthError'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { getCurrentUser, signIn } from '../../../src/providers/cognito'; -import { initiateAuth } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { InitiateAuthException } from '../../../src/providers/cognito/types/errors'; import { USER_ALREADY_AUTHENTICATED_EXCEPTION } from '../../../src/errors/constants'; +import { createInitiateAuthClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; import { authAPITestParams } from './testUtils/authApiTestParams'; import { getMockError } from './testUtils/data'; @@ -24,18 +24,23 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ })); jest.mock('../../../src/providers/cognito/apis/getCurrentUser'); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); describe('signIn API error path cases:', () => { // assert mocks - const mockInitiateAuth = initiateAuth as jest.Mock; + const mockCreateInitiateAuthClient = jest.mocked(createInitiateAuthClient); + const mockInitiateAuth = jest.fn(); const mockedGetCurrentUser = getCurrentUser as jest.Mock; beforeAll(() => { setUpGetConfig(Amplify); }); + beforeEach(() => { + mockCreateInitiateAuthClient.mockReturnValueOnce(mockInitiateAuth); + }); + afterEach(() => { mockedGetCurrentUser.mockReset(); mockInitiateAuth.mockClear(); diff --git a/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts b/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts index dcefb80a121..80006cbf675 100644 --- a/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts @@ -6,8 +6,8 @@ import { Amplify } from '@aws-amplify/core'; import { getCurrentUser, signIn } from '../../../src/providers/cognito'; import * as signInHelpers from '../../../src/providers/cognito/utils/signInHelpers'; import { signInStore } from '../../../src/providers/cognito/utils/signInStore'; -import { RespondToAuthChallengeCommandOutput } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; import { cognitoUserPoolsTokenProvider } from '../../../src/providers/cognito/tokenProvider'; +import { RespondToAuthChallengeCommandOutput } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { authAPITestParams } from './testUtils/authApiTestParams'; diff --git a/packages/auth/__tests__/providers/cognito/signInWithCustomAuth.test.ts b/packages/auth/__tests__/providers/cognito/signInWithCustomAuth.test.ts index 87828e427f8..c9e5ec7ab68 100644 --- a/packages/auth/__tests__/providers/cognito/signInWithCustomAuth.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInWithCustomAuth.test.ts @@ -6,12 +6,12 @@ import { Amplify } from 'aws-amplify'; import { signIn } from '../../../src/providers/cognito'; import { signInWithCustomAuth } from '../../../src/providers/cognito/apis/signInWithCustomAuth'; import * as initiateAuthHelpers from '../../../src/providers/cognito/utils/signInHelpers'; -import { InitiateAuthCommandOutput } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; import { cognitoUserPoolsTokenProvider, tokenOrchestrator, } from '../../../src/providers/cognito/tokenProvider'; -import * as clients from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createInitiateAuthClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { InitiateAuthCommandOutput } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { authAPITestParams } from './testUtils/authApiTestParams'; @@ -19,6 +19,9 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ ...jest.requireActual('@aws-amplify/core/internals/utils'), isBrowser: jest.fn(() => false), })); +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); const authConfig = { Cognito: { @@ -85,25 +88,23 @@ describe('signIn API happy path cases', () => { }); describe('Cognito ASF', () => { - let initiateAuthSpy: jest.SpyInstance; + const mockInitiateAuth = jest.fn(); + const mockCreateInitiateAuthClient = jest.mocked(createInitiateAuthClient); afterAll(() => { jest.restoreAllMocks(); }); beforeEach(() => { - initiateAuthSpy = jest - .spyOn(clients, 'initiateAuth') - .mockImplementationOnce( - async (): Promise => ({ - ChallengeName: 'SMS_MFA', - Session: '1234234232', - $metadata: {}, - ChallengeParameters: { - CODE_DELIVERY_DELIVERY_MEDIUM: 'SMS', - CODE_DELIVERY_DESTINATION: '*******9878', - }, - }), - ); + mockInitiateAuth.mockResolvedValueOnce({ + ChallengeName: 'SMS_MFA', + Session: '1234234232', + $metadata: {}, + ChallengeParameters: { + CODE_DELIVERY_DELIVERY_MEDIUM: 'SMS', + CODE_DELIVERY_DESTINATION: '*******9878', + }, + }); + mockCreateInitiateAuthClient.mockReturnValueOnce(mockInitiateAuth); // load Cognito ASF polyfill (window as any).AmazonCognitoAdvancedSecurityData = { getData() { @@ -113,7 +114,7 @@ describe('Cognito ASF', () => { }); afterEach(() => { - initiateAuthSpy.mockClear(); + mockInitiateAuth.mockClear(); (window as any).AmazonCognitoAdvancedSecurityData = undefined; }); @@ -124,7 +125,7 @@ describe('Cognito ASF', () => { authFlowType: 'CUSTOM_WITHOUT_SRP', }, }); - expect(initiateAuthSpy).toHaveBeenCalledWith( + expect(mockInitiateAuth).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), diff --git a/packages/auth/__tests__/providers/cognito/signInWithCustomSRPAuth.test.ts b/packages/auth/__tests__/providers/cognito/signInWithCustomSRPAuth.test.ts index 108e928d683..5d6aa8a1740 100644 --- a/packages/auth/__tests__/providers/cognito/signInWithCustomSRPAuth.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInWithCustomSRPAuth.test.ts @@ -6,12 +6,12 @@ import { Amplify } from 'aws-amplify'; import { signIn } from '../../../src/providers/cognito'; import * as initiateAuthHelpers from '../../../src/providers/cognito/utils/signInHelpers'; import { signInWithCustomSRPAuth } from '../../../src/providers/cognito/apis/signInWithCustomSRPAuth'; -import { RespondToAuthChallengeCommandOutput } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; import { cognitoUserPoolsTokenProvider, tokenOrchestrator, } from '../../../src/providers/cognito/tokenProvider'; -import * as clients from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createInitiateAuthClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { RespondToAuthChallengeCommandOutput } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { authAPITestParams } from './testUtils/authApiTestParams'; @@ -20,6 +20,10 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); + const authConfig = { Cognito: { userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', @@ -92,22 +96,23 @@ describe('signIn API happy path cases', () => { }); describe('Cognito ASF', () => { - let initiateAuthSpy: jest.SpyInstance; + const mockInitiateAuth = jest.fn(); + const mockCreateInitiateAuthClient = jest.mocked(createInitiateAuthClient); afterAll(() => { jest.restoreAllMocks(); }); beforeEach(() => { - initiateAuthSpy = jest - .spyOn(clients, 'initiateAuth') - .mockImplementationOnce(async () => ({ - ChallengeName: 'SRP_AUTH', - Session: '1234234232', - $metadata: {}, - ChallengeParameters: { - USER_ID_FOR_SRP: authAPITestParams.user1.username, - }, - })); + mockInitiateAuth.mockResolvedValueOnce({ + ChallengeName: 'SRP_AUTH', + Session: '1234234232', + $metadata: {}, + ChallengeParameters: { + USER_ID_FOR_SRP: authAPITestParams.user1.username, + }, + }); + mockCreateInitiateAuthClient.mockReturnValueOnce(mockInitiateAuth); + // load Cognito ASF polyfill (window as any).AmazonCognitoAdvancedSecurityData = { getData() { @@ -117,7 +122,8 @@ describe('Cognito ASF', () => { }); afterEach(() => { - initiateAuthSpy.mockClear(); + mockInitiateAuth.mockClear(); + mockCreateInitiateAuthClient.mockClear(); (window as any).AmazonCognitoAdvancedSecurityData = undefined; }); @@ -133,7 +139,7 @@ describe('Cognito ASF', () => { } catch (_) { // only want to test the contents } - expect(initiateAuthSpy).toHaveBeenCalledWith( + expect(mockInitiateAuth).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), diff --git a/packages/auth/__tests__/providers/cognito/signInWithSRP.test.ts b/packages/auth/__tests__/providers/cognito/signInWithSRP.test.ts index c43e773f1d7..36c8d3c118a 100644 --- a/packages/auth/__tests__/providers/cognito/signInWithSRP.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInWithSRP.test.ts @@ -6,14 +6,17 @@ import { Amplify } from 'aws-amplify'; import { signIn } from '../../../src/providers/cognito'; import { signInWithSRP } from '../../../src/providers/cognito/apis/signInWithSRP'; import * as initiateAuthHelpers from '../../../src/providers/cognito/utils/signInHelpers'; -import { RespondToAuthChallengeCommandOutput } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; import { cognitoUserPoolsTokenProvider, tokenOrchestrator, } from '../../../src/providers/cognito/tokenProvider'; import { AuthError } from '../../../src'; import { createKeysForAuthStorage } from '../../../src/providers/cognito/tokenProvider/TokenStore'; -import * as clients from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { + createInitiateAuthClient, + createRespondToAuthChallengeClient, +} from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { RespondToAuthChallengeCommandOutput } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { authAPITestParams } from './testUtils/authApiTestParams'; @@ -33,6 +36,9 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ ...jest.requireActual('@aws-amplify/core/internals/utils'), isBrowser: jest.fn(() => false), })); +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); const authConfig = { Cognito: { @@ -193,15 +199,17 @@ describe('signIn API happy path cases', () => { }); describe('sign in with device keys', () => { - const initiateAuthSpy = jest.spyOn(clients, 'initiateAuth'); - const respondToAuthChallengeAuthSpy = jest.spyOn( - clients, - 'respondToAuthChallenge', + const mockInitiateAuth = jest.fn(); + const mockCreateInitiateAuthClient = jest.mocked(createInitiateAuthClient); + const mockRespondToAuthChallenge = jest.fn(); + const mockCreateRespondToAuthChallengeClient = jest.mocked( + createRespondToAuthChallengeClient, ); + beforeEach(() => { setDeviceKeys(); handleUserSRPAuthflowSpy.mockRestore(); - initiateAuthSpy.mockResolvedValueOnce({ + mockInitiateAuth.mockResolvedValueOnce({ ChallengeName: 'SRP_AUTH', Session: '1234234232', $metadata: {}, @@ -209,14 +217,20 @@ describe('signIn API happy path cases', () => { USER_ID_FOR_SRP: lastAuthUser, }, }); - respondToAuthChallengeAuthSpy.mockResolvedValueOnce( + mockCreateInitiateAuthClient.mockReturnValueOnce(mockInitiateAuth); + mockRespondToAuthChallenge.mockResolvedValueOnce( authAPITestParams.RespondToAuthChallengeCommandOutput, ); + mockCreateRespondToAuthChallengeClient.mockReturnValueOnce( + mockRespondToAuthChallenge, + ); }); afterEach(() => { - initiateAuthSpy.mockClear(); - respondToAuthChallengeAuthSpy.mockClear(); + mockInitiateAuth.mockClear(); + mockCreateInitiateAuthClient.mockClear(); + mockRespondToAuthChallenge.mockClear(); + mockCreateRespondToAuthChallengeClient.mockClear(); }); test('respondToAuthChallenge should include device key in the request', async () => { @@ -225,9 +239,9 @@ describe('signIn API happy path cases', () => { password: 'XXXXXXXX', }); - expect(respondToAuthChallengeAuthSpy).toHaveBeenCalledTimes(1); + expect(mockRespondToAuthChallenge).toHaveBeenCalledTimes(1); const deviceKeyFromRequest = - respondToAuthChallengeAuthSpy.mock.calls[0][1].ChallengeResponses + mockRespondToAuthChallenge.mock.calls[0][1].ChallengeResponses ?.DEVICE_KEY; expect(deviceKeyFromRequest).toBe('mockedKey'); }); @@ -245,9 +259,9 @@ describe('signIn API happy path cases', () => { password: 'XXXXXXXX', }); - expect(respondToAuthChallengeAuthSpy).toHaveBeenCalledTimes(1); + expect(mockRespondToAuthChallenge).toHaveBeenCalledTimes(1); const deviceKeyFromRequest = - respondToAuthChallengeAuthSpy.mock.calls[0][1].ChallengeResponses + mockRespondToAuthChallenge.mock.calls[0][1].ChallengeResponses ?.DEVICE_KEY; expect(deviceKeyFromRequest).toBe(undefined); }, @@ -256,22 +270,23 @@ describe('signIn API happy path cases', () => { }); describe('Cognito ASF', () => { - let initiateAuthSpy: jest.SpyInstance; + const mockInitiateAuth = jest.fn(); + const mockCreateInitiateAuthClient = jest.mocked(createInitiateAuthClient); beforeAll(() => { jest.restoreAllMocks(); }); + beforeEach(() => { - initiateAuthSpy = jest - .spyOn(clients, 'initiateAuth') - .mockImplementationOnce(async () => ({ - ChallengeName: 'SRP_AUTH', - Session: '1234234232', - $metadata: {}, - ChallengeParameters: { - USER_ID_FOR_SRP: authAPITestParams.user1.username, - }, - })); + mockInitiateAuth.mockResolvedValueOnce({ + ChallengeName: 'SRP_AUTH', + Session: '1234234232', + $metadata: {}, + ChallengeParameters: { + USER_ID_FOR_SRP: authAPITestParams.user1.username, + }, + }); + mockCreateInitiateAuthClient.mockReturnValueOnce(mockInitiateAuth); // load Cognito ASF polyfill (window as any).AmazonCognitoAdvancedSecurityData = { getData() { @@ -281,7 +296,8 @@ describe('Cognito ASF', () => { }); afterEach(() => { - initiateAuthSpy.mockClear(); + mockInitiateAuth.mockClear(); + mockCreateInitiateAuthClient.mockClear(); (window as any).AmazonCognitoAdvancedSecurityData = undefined; }); @@ -294,7 +310,7 @@ describe('Cognito ASF', () => { } catch (_) { // only want to test the contents } - expect(initiateAuthSpy).toHaveBeenCalledWith( + expect(mockInitiateAuth).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), diff --git a/packages/auth/__tests__/providers/cognito/signInWithUserPassword.test.ts b/packages/auth/__tests__/providers/cognito/signInWithUserPassword.test.ts index 83f3a7d2813..d675ace40a2 100644 --- a/packages/auth/__tests__/providers/cognito/signInWithUserPassword.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInWithUserPassword.test.ts @@ -6,12 +6,12 @@ import { Amplify } from 'aws-amplify'; import { signIn } from '../../../src/providers/cognito'; import * as initiateAuthHelpers from '../../../src/providers/cognito/utils/signInHelpers'; import { signInWithUserPassword } from '../../../src/providers/cognito/apis/signInWithUserPassword'; -import { RespondToAuthChallengeCommandOutput } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/types'; import { cognitoUserPoolsTokenProvider, tokenOrchestrator, } from '../../../src/providers/cognito/tokenProvider'; -import * as clients from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createInitiateAuthClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { RespondToAuthChallengeCommandOutput } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { authAPITestParams } from './testUtils/authApiTestParams'; @@ -20,21 +20,28 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ ...jest.requireActual('@aws-amplify/core/internals/utils'), isBrowser: jest.fn(() => false), })); +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); const authConfig = { Cognito: { userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', userPoolId: 'us-west-2_zzzzz', + userPoolEndpoint: 'https://custom-endpoint.com', }, }; -cognitoUserPoolsTokenProvider.setAuthConfig(authConfig); -Amplify.configure({ - Auth: authConfig, -}); describe('signIn API happy path cases', () => { let handleUserPasswordFlowSpy: jest.SpyInstance; + beforeAll(() => { + Amplify.configure({ + Auth: authConfig, + }); + cognitoUserPoolsTokenProvider.setAuthConfig(authConfig); + }); + beforeEach(() => { handleUserPasswordFlowSpy = jest .spyOn(initiateAuthHelpers, 'handleUserPasswordAuthFlow') @@ -60,7 +67,7 @@ describe('signIn API happy path cases', () => { expect(handleUserPasswordFlowSpy).toHaveBeenCalledTimes(1); }); - test('handleUserPasswordAuthFlow should be called with clientMetada from request', async () => { + test('handleUserPasswordAuthFlow should be called with clientMetadata from request', async () => { const { username } = authAPITestParams.user1; const { password } = authAPITestParams.user1; await signInWithUserPassword({ @@ -79,22 +86,19 @@ describe('signIn API happy path cases', () => { }); describe('Cognito ASF', () => { - let initiateAuthSpy: jest.SpyInstance; + const mockInitiateAuth = jest.fn(); + const mockCreateInitiateAuthClient = jest.mocked(createInitiateAuthClient); - afterAll(() => { - jest.restoreAllMocks(); - }); beforeEach(() => { - initiateAuthSpy = jest - .spyOn(clients, 'initiateAuth') - .mockImplementationOnce(async () => ({ - ChallengeName: 'SRP_AUTH', - Session: '1234234232', - $metadata: {}, - ChallengeParameters: { - USER_ID_FOR_SRP: authAPITestParams.user1.username, - }, - })); + mockInitiateAuth.mockResolvedValueOnce({ + ChallengeName: 'SRP_AUTH', + Session: '1234234232', + $metadata: {}, + ChallengeParameters: { + USER_ID_FOR_SRP: authAPITestParams.user1.username, + }, + }); + mockCreateInitiateAuthClient.mockReturnValueOnce(mockInitiateAuth); // load Cognito ASF polyfill (window as any).AmazonCognitoAdvancedSecurityData = { getData() { @@ -104,7 +108,8 @@ describe('Cognito ASF', () => { }); afterEach(() => { - initiateAuthSpy.mockClear(); + mockInitiateAuth.mockClear(); + mockCreateInitiateAuthClient.mockClear(); (window as any).AmazonCognitoAdvancedSecurityData = undefined; }); @@ -120,7 +125,7 @@ describe('Cognito ASF', () => { } catch (_) { // only want to test the contents } - expect(initiateAuthSpy).toHaveBeenCalledWith( + expect(mockInitiateAuth).toHaveBeenCalledWith( expect.objectContaining({ region: 'us-west-2', }), diff --git a/packages/auth/__tests__/providers/cognito/signOut.test.ts b/packages/auth/__tests__/providers/cognito/signOut.test.ts index 4992b4a3a5c..49779a748ca 100644 --- a/packages/auth/__tests__/providers/cognito/signOut.test.ts +++ b/packages/auth/__tests__/providers/cognito/signOut.test.ts @@ -11,26 +11,26 @@ import { AMPLIFY_SYMBOL } from '@aws-amplify/core/internals/utils'; import { signOut } from '../../../src/providers/cognito/apis/signOut'; import { tokenOrchestrator } from '../../../src/providers/cognito/tokenProvider'; -import { - globalSignOut, - revokeToken, -} from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/utils'; import { DefaultOAuthStore } from '../../../src/providers/cognito/utils/signInWithRedirectStore'; import { handleOAuthSignOut } from '../../../src/providers/cognito/utils/oauth'; import { AuthTokenStore } from '../../../src/providers/cognito/tokenProvider/types'; +import { + createGlobalSignOutClient, + createRevokeTokenClient, +} from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { getRegionFromUserPoolId } from '../../../src/foundation/parsers'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; jest.mock('@aws-amplify/core'); jest.mock('../../../src/providers/cognito/tokenProvider'); -jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', -); -jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider/utils', -); jest.mock('../../../src/providers/cognito/utils/oauth'); jest.mock('../../../src/providers/cognito/utils/signInWithRedirectStore'); jest.mock('../../../src/utils'); +jest.mock( + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', +); +jest.mock('../../../src/foundation/parsers'); +jest.mock('../../../src/providers/cognito/factories'); describe('signOut', () => { // eslint-disable-next-line camelcase @@ -54,15 +54,20 @@ describe('signOut', () => { // assert mocks const mockAmplify = Amplify as jest.Mocked; const mockClearCredentials = clearCredentials as jest.Mock; - const mockGetRegion = getRegion as jest.Mock; - const mockGlobalSignOut = globalSignOut as jest.Mock; + const mockGetRegionFromUserPoolId = jest.mocked(getRegionFromUserPoolId); + const mockGlobalSignOut = jest.fn(); + const mockCreateGlobalSignOutClient = jest.mocked(createGlobalSignOutClient); const mockHandleOAuthSignOut = handleOAuthSignOut as jest.Mock; const mockHub = Hub as jest.Mocked; - const mockRevokeToken = revokeToken as jest.Mock; + const mockRevokeToken = jest.fn(); + const mockedRevokeTokenClient = jest.mocked(createRevokeTokenClient); const mockTokenOrchestrator = tokenOrchestrator as jest.Mocked< typeof tokenOrchestrator >; const MockDefaultOAuthStore = DefaultOAuthStore as jest.Mock; + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); // create mocks const mockLoadTokens = jest.fn(); const mockAuthTokenStore = { @@ -95,7 +100,7 @@ describe('signOut', () => { }); beforeAll(() => { - mockGetRegion.mockReturnValue(region); + mockGetRegionFromUserPoolId.mockReturnValue(region); MockDefaultOAuthStore.mockImplementation( () => mockDefaultOAuthStoreInstance, ); @@ -104,7 +109,9 @@ describe('signOut', () => { beforeEach(() => { mockAmplify.getConfig.mockReturnValue({ Auth: { Cognito: cognitoConfig } }); mockGlobalSignOut.mockResolvedValue({ $metadata: {} }); + mockCreateGlobalSignOutClient.mockReturnValueOnce(mockGlobalSignOut); mockRevokeToken.mockResolvedValue({}); + mockedRevokeTokenClient.mockReturnValueOnce(mockRevokeToken); mockTokenOrchestrator.getTokenStore.mockReturnValue(mockAuthTokenStore); mockLoadTokens.mockResolvedValue(cognitoAuthTokens); }); @@ -114,10 +121,11 @@ describe('signOut', () => { mockGlobalSignOut.mockReset(); mockRevokeToken.mockReset(); mockClearCredentials.mockClear(); - mockGetRegion.mockClear(); + mockGetRegionFromUserPoolId.mockClear(); mockHub.dispatch.mockClear(); mockTokenOrchestrator.clearTokens.mockClear(); loggerDebugSpy.mockClear(); + mockCreateCognitoUserPoolEndpointResolver.mockClear(); }); describe('Without OAuth configured', () => { @@ -128,11 +136,36 @@ describe('signOut', () => { { region }, { ClientId: cognitoConfig.userPoolClientId, Token: refreshToken }, ); - expect(mockGetRegion).toHaveBeenCalledTimes(1); + expect(mockGetRegionFromUserPoolId).toHaveBeenCalledTimes(1); expect(mockGlobalSignOut).not.toHaveBeenCalled(); expectSignOut().toComplete(); }); + it('invokes createCognitoUserPoolEndpointResolver with the userPoolEndpoint for creating the revokeToken client', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + const expectedEndpointResolver = jest.fn(); + mockAmplify.getConfig.mockReturnValueOnce({ + Auth: { + Cognito: { + ...cognitoConfig, + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + mockCreateCognitoUserPoolEndpointResolver.mockReturnValueOnce( + expectedEndpointResolver, + ); + + await signOut(); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + expect(mockedRevokeTokenClient).toHaveBeenCalledWith({ + endpointResolver: expectedEndpointResolver, + }); + }); + it('should perform client sign out on an irrevocable session', async () => { mockLoadTokens.mockResolvedValue({ ...cognitoAuthTokens, @@ -143,7 +176,7 @@ describe('signOut', () => { expect(mockRevokeToken).not.toHaveBeenCalled(); expect(mockGlobalSignOut).not.toHaveBeenCalled(); - expect(mockGetRegion).not.toHaveBeenCalled(); + expect(mockGetRegionFromUserPoolId).not.toHaveBeenCalled(); expectSignOut().toComplete(); }); @@ -154,11 +187,36 @@ describe('signOut', () => { { region: 'us-west-2' }, { AccessToken: accessToken.toString() }, ); - expect(mockGetRegion).toHaveBeenCalledTimes(1); + expect(mockGetRegionFromUserPoolId).toHaveBeenCalledTimes(1); expect(mockRevokeToken).not.toHaveBeenCalled(); expectSignOut().toComplete(); }); + it('invokes createCognitoUserPoolEndpointResolver with the userPoolEndpoint for creating the globalSignOut client', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + const expectedEndpointResolver = jest.fn(); + mockAmplify.getConfig.mockReturnValueOnce({ + Auth: { + Cognito: { + ...cognitoConfig, + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + mockCreateCognitoUserPoolEndpointResolver.mockReturnValueOnce( + expectedEndpointResolver, + ); + + await signOut({ global: true }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + expect(mockCreateGlobalSignOutClient).toHaveBeenCalledWith({ + endpointResolver: expectedEndpointResolver, + }); + }); + it('should still perform client sign out if token revoke fails', async () => { mockRevokeToken.mockRejectedValue(new Error()); @@ -167,7 +225,7 @@ describe('signOut', () => { expect(loggerDebugSpy).toHaveBeenCalledWith( expect.stringContaining('Client signOut error caught'), ); - expect(mockGetRegion).toHaveBeenCalledTimes(1); + expect(mockGetRegionFromUserPoolId).toHaveBeenCalledTimes(1); expectSignOut().toComplete(); }); @@ -179,7 +237,7 @@ describe('signOut', () => { expect(loggerDebugSpy).toHaveBeenCalledWith( expect.stringContaining('Global signOut error caught'), ); - expect(mockGetRegion).toHaveBeenCalledTimes(1); + expect(mockGetRegionFromUserPoolId).toHaveBeenCalledTimes(1); expectSignOut().toComplete(); }); }); diff --git a/packages/auth/__tests__/providers/cognito/signUp.test.ts b/packages/auth/__tests__/providers/cognito/signUp.test.ts index 87e0dda27c6..cb2b9b84d64 100644 --- a/packages/auth/__tests__/providers/cognito/signUp.test.ts +++ b/packages/auth/__tests__/providers/cognito/signUp.test.ts @@ -4,10 +4,11 @@ import { Amplify } from '@aws-amplify/core'; import { signUp } from '../../../src/providers/cognito'; -import { signUp as providerSignUp } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { AuthError } from '../../../src/errors/AuthError'; import { SignUpException } from '../../../src/providers/cognito/types/errors'; +import { createSignUpClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { authAPITestParams } from './testUtils/authApiTestParams'; import { getMockError } from './testUtils/data'; @@ -21,21 +22,35 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ ...jest.requireActual('@aws-amplify/core/internals/utils'), isBrowser: jest.fn(() => false), })); + jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); - -const userId = '1234567890'; +jest.mock('../../../src/providers/cognito/factories'); describe('signUp', () => { + const userId = '1234567890'; const { user1 } = authAPITestParams; // assert mocks - const mockSignUp = providerSignUp as jest.Mock; + const mockSignUp = jest.fn(); + const mockCreateSignUpClient = jest.mocked(createSignUpClient); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); }); + beforeEach(() => { + mockCreateSignUpClient.mockReturnValueOnce(mockSignUp); + }); + + afterEach(() => { + mockCreateSignUpClient.mockClear(); + mockCreateCognitoUserPoolEndpointResolver.mockClear(); + }); + describe('Happy Path Cases:', () => { beforeEach(() => { mockSignUp.mockResolvedValue(authAPITestParams.signUpHttpCallResult); @@ -70,6 +85,31 @@ describe('signUp', () => { expect(mockSignUp).toHaveBeenCalledTimes(1); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await signUp({ + username: user1.username, + password: user1.password, + options: { + userAttributes: { email: user1.email }, + }, + }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should return `CONFIRM_SIGN_UP` step when user isn`t confirmed yet', async () => { const result = await signUp({ username: user1.username, diff --git a/packages/auth/__tests__/providers/cognito/updateMFAPreference.test.ts b/packages/auth/__tests__/providers/cognito/updateMFAPreference.test.ts index dbaeca398f6..a9d4d6c9e65 100644 --- a/packages/auth/__tests__/providers/cognito/updateMFAPreference.test.ts +++ b/packages/auth/__tests__/providers/cognito/updateMFAPreference.test.ts @@ -8,10 +8,11 @@ import { UpdateMFAPreferenceInput, updateMFAPreference, } from '../../../src/providers/cognito'; -import { setUserMFAPreference } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { AuthError } from '../../../src/errors/AuthError'; import { SetUserMFAPreferenceException } from '../../../src/providers/cognito/types/errors'; import { getMFASettings } from '../../../src/providers/cognito/apis/updateMFAPreference'; +import { createSetUserMFAPreferenceClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -25,8 +26,9 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); const mfaChoices: UpdateMFAPreferenceInput[] = [ { sms: 'DISABLED', totp: 'DISABLED' }, @@ -51,7 +53,13 @@ const mfaChoices: UpdateMFAPreferenceInput[] = [ describe('updateMFAPreference', () => { // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockSetUserMFAPreference = setUserMFAPreference as jest.Mock; + const mockSetUserMFAPreference = jest.fn(); + const mockCreateSetUserMFAPreferenceClient = jest.mocked( + createSetUserMFAPreferenceClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -62,11 +70,15 @@ describe('updateMFAPreference', () => { beforeEach(() => { mockSetUserMFAPreference.mockResolvedValue({}); + mockCreateSetUserMFAPreferenceClient.mockReturnValueOnce( + mockSetUserMFAPreference, + ); }); afterEach(() => { mockSetUserMFAPreference.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateSetUserMFAPreferenceClient.mockClear(); }); it.each(mfaChoices)( @@ -88,6 +100,25 @@ describe('updateMFAPreference', () => { }, ); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await updateMFAPreference(mfaChoices[0]); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when service returns an error response', async () => { expect.assertions(2); mockSetUserMFAPreference.mockImplementation(() => { diff --git a/packages/auth/__tests__/providers/cognito/updatePassword.test.ts b/packages/auth/__tests__/providers/cognito/updatePassword.test.ts index 42c0869a9a3..72dfe80119e 100644 --- a/packages/auth/__tests__/providers/cognito/updatePassword.test.ts +++ b/packages/auth/__tests__/providers/cognito/updatePassword.test.ts @@ -8,7 +8,8 @@ import { AuthError } from '../../../src/errors/AuthError'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { updatePassword } from '../../../src/providers/cognito'; import { ChangePasswordException } from '../../../src/providers/cognito/types/errors'; -import { changePassword } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createChangePasswordClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -22,15 +23,22 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('updatePassword', () => { const oldPassword = 'oldPassword'; const newPassword = 'newPassword'; // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockChangePassword = changePassword as jest.Mock; + const mockChangePassword = jest.fn(); + const mockCreateChangePasswordClient = jest.mocked( + createChangePasswordClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -41,11 +49,13 @@ describe('updatePassword', () => { beforeEach(() => { mockChangePassword.mockResolvedValue({}); + mockCreateChangePasswordClient.mockReturnValueOnce(mockChangePassword); }); afterEach(() => { mockChangePassword.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateChangePasswordClient.mockClear(); }); it('should call changePassword', async () => { @@ -61,6 +71,25 @@ describe('updatePassword', () => { ); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await updatePassword({ oldPassword, newPassword }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when oldPassword is empty', async () => { expect.assertions(2); try { diff --git a/packages/auth/__tests__/providers/cognito/updateUserAttributes.test.ts b/packages/auth/__tests__/providers/cognito/updateUserAttributes.test.ts index 3b1ca0f9d99..bfa9643b76d 100644 --- a/packages/auth/__tests__/providers/cognito/updateUserAttributes.test.ts +++ b/packages/auth/__tests__/providers/cognito/updateUserAttributes.test.ts @@ -7,8 +7,9 @@ import { decodeJWT } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../src/errors/AuthError'; import { updateUserAttributes } from '../../../src/providers/cognito'; import { UpdateUserAttributesException } from '../../../src/providers/cognito/types/errors'; -import { updateUserAttributes as providerUpdateUserAttributes } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; import { toAttributeType } from '../../../src/providers/cognito/utils/apiHelpers'; +import { createUpdateUserAttributesClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -22,13 +23,20 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('updateUserAttributes', () => { // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockUpdateUserAttributes = providerUpdateUserAttributes as jest.Mock; + const mockUpdateUserAttributes = jest.fn(); + const mockCreateUpdateUserAttributesClient = jest.mocked( + createUpdateUserAttributesClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -52,11 +60,15 @@ describe('updateUserAttributes', () => { }, ], }); + mockCreateUpdateUserAttributesClient.mockReturnValueOnce( + mockUpdateUserAttributes, + ); }); afterEach(() => { mockUpdateUserAttributes.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateUpdateUserAttributesClient.mockClear(); }); it('should return a map with updated and not updated attributes', async () => { @@ -121,6 +133,30 @@ describe('updateUserAttributes', () => { ); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + await updateUserAttributes({ + userAttributes: {}, + options: { + clientMetadata: { foo: 'bar' }, + }, + }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('updateUserAttributes API should return a map with updated attributes only', async () => { mockUpdateUserAttributes.mockResolvedValue({}); const userAttributes = { diff --git a/packages/auth/__tests__/providers/cognito/verifyTOTPSetup.test.ts b/packages/auth/__tests__/providers/cognito/verifyTOTPSetup.test.ts index aceb6ed480a..0f7c5bcb109 100644 --- a/packages/auth/__tests__/providers/cognito/verifyTOTPSetup.test.ts +++ b/packages/auth/__tests__/providers/cognito/verifyTOTPSetup.test.ts @@ -8,7 +8,8 @@ import { AuthError } from '../../../src/errors/AuthError'; import { AuthValidationErrorCode } from '../../../src/errors/types/validation'; import { VerifySoftwareTokenException } from '../../../src/providers/cognito/types/errors'; import { verifyTOTPSetup } from '../../../src/providers/cognito'; -import { verifySoftwareToken } from '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider'; +import { createVerifySoftwareTokenClient } from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../../src/providers/cognito/factories'; import { getMockError, mockAccessToken } from './testUtils/data'; import { setUpGetConfig } from './testUtils/setUpGetConfig'; @@ -22,15 +23,22 @@ jest.mock('@aws-amplify/core/internals/utils', () => ({ isBrowser: jest.fn(() => false), })); jest.mock( - '../../../src/providers/cognito/utils/clients/CognitoIdentityProvider', + '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/factories'); describe('verifyTOTPSetup', () => { const code = '123456'; const friendlyDeviceName = 'FriendlyDeviceName'; // assert mocks const mockFetchAuthSession = fetchAuthSession as jest.Mock; - const mockVerifySoftwareToken = verifySoftwareToken as jest.Mock; + const mockVerifySoftwareToken = jest.fn(); + const mockCreateVerifySoftwareTokenClient = jest.mocked( + createVerifySoftwareTokenClient, + ); + const mockCreateCognitoUserPoolEndpointResolver = jest.mocked( + createCognitoUserPoolEndpointResolver, + ); beforeAll(() => { setUpGetConfig(Amplify); @@ -41,11 +49,15 @@ describe('verifyTOTPSetup', () => { beforeEach(() => { mockVerifySoftwareToken.mockResolvedValue({}); + mockCreateVerifySoftwareTokenClient.mockReturnValueOnce( + mockVerifySoftwareToken, + ); }); afterEach(() => { mockVerifySoftwareToken.mockReset(); mockFetchAuthSession.mockClear(); + mockCreateVerifySoftwareTokenClient.mockClear(); }); it('should return successful response', async () => { @@ -64,6 +76,29 @@ describe('verifyTOTPSetup', () => { ); }); + it('invokes mockCreateCognitoUserPoolEndpointResolver with expected endpointOverride', async () => { + const expectedUserPoolEndpoint = 'https://my-custom-endpoint.com'; + jest.mocked(Amplify.getConfig).mockReturnValueOnce({ + Auth: { + Cognito: { + userPoolClientId: '111111-aaaaa-42d8-891d-ee81a1549398', + userPoolId: 'us-west-2_zzzzz', + identityPoolId: 'us-west-2:xxxxxx', + userPoolEndpoint: expectedUserPoolEndpoint, + }, + }, + }); + + await verifyTOTPSetup({ + code, + options: { friendlyDeviceName }, + }); + + expect(mockCreateCognitoUserPoolEndpointResolver).toHaveBeenCalledWith({ + endpointOverride: expectedUserPoolEndpoint, + }); + }); + it('should throw an error when code is empty', async () => { expect.assertions(2); try { diff --git a/packages/auth/src/foundation/cognitoUserPoolEndpointResolver.ts b/packages/auth/src/foundation/cognitoUserPoolEndpointResolver.ts new file mode 100644 index 00000000000..dc57e2e0ce4 --- /dev/null +++ b/packages/auth/src/foundation/cognitoUserPoolEndpointResolver.ts @@ -0,0 +1,17 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { + EndpointResolverOptions, + getDnsSuffix, +} from '@aws-amplify/core/internals/aws-client-utils'; +import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; + +import { COGNITO_IDP_SERVICE_NAME } from './constants'; + +export const cognitoUserPoolEndpointResolver = ({ + region, +}: EndpointResolverOptions): { url: URL } => ({ + url: new AmplifyUrl( + `https://${COGNITO_IDP_SERVICE_NAME}.${region}.${getDnsSuffix(region)}`, + ), +}); diff --git a/packages/auth/src/foundation/constants.ts b/packages/auth/src/foundation/constants.ts new file mode 100644 index 00000000000..56814b3e66f --- /dev/null +++ b/packages/auth/src/foundation/constants.ts @@ -0,0 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +/** + * The service name used to sign requests if the API requires authentication. + */ +export const COGNITO_IDP_SERVICE_NAME = 'cognito-idp'; diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/constants.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/constants.ts new file mode 100644 index 00000000000..8898f8bc32a --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/constants.ts @@ -0,0 +1,19 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { + getRetryDecider, + jitteredBackoff, + parseJsonError, +} from '@aws-amplify/core/internals/aws-client-utils'; +import { getAmplifyUserAgent } from '@aws-amplify/core/internals/utils'; + +import { COGNITO_IDP_SERVICE_NAME } from '../../../constants'; + +export const DEFAULT_SERVICE_CLIENT_API_CONFIG = { + service: COGNITO_IDP_SERVICE_NAME, + retryDecider: getRetryDecider(parseJsonError), + computeDelay: jitteredBackoff, + userAgentValue: getAmplifyUserAgent(), + cache: 'no-store', +}; diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createAssociateSoftwareTokenClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createAssociateSoftwareTokenClient.ts new file mode 100644 index 00000000000..4fa07c8a217 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createAssociateSoftwareTokenClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + AssociateSoftwareTokenCommandInput, + AssociateSoftwareTokenCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createAssociateSoftwareTokenClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'AssociateSoftwareToken', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createChangePasswordClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createChangePasswordClient.ts new file mode 100644 index 00000000000..f8e76959850 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createChangePasswordClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { + ChangePasswordCommandInput, + ChangePasswordCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createChangePasswordClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('ChangePassword'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmDeviceClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmDeviceClient.ts new file mode 100644 index 00000000000..3d9ced2e060 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmDeviceClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { + ConfirmDeviceCommandInput, + ConfirmDeviceCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createConfirmDeviceClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('ConfirmDevice'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmForgotPasswordClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmForgotPasswordClient.ts new file mode 100644 index 00000000000..a300a4ccadb --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmForgotPasswordClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ConfirmForgotPasswordCommandInput, + ConfirmForgotPasswordCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createConfirmForgotPasswordClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'ConfirmForgotPassword', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmSignUpClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmSignUpClient.ts new file mode 100644 index 00000000000..d5a712af669 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createConfirmSignUpClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { + ConfirmSignUpCommandInput, + ConfirmSignUpCommandOutput, + ServiceClientFactoryInput, +} from './types'; + +export const createConfirmSignUpClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('ConfirmSignUp'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteUserAttributesClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteUserAttributesClient.ts new file mode 100644 index 00000000000..052ff8c9b0a --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteUserAttributesClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + DeleteUserAttributesCommandInput, + DeleteUserAttributesCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createDeleteUserAttributesClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'DeleteUserAttributes', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteUserClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteUserClient.ts new file mode 100644 index 00000000000..70cb9860ee2 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createDeleteUserClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + DeleteUserCommandInput, + DeleteUserCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createEmptyResponseDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createDeleteUserClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('DeleteUser'), + createEmptyResponseDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createForgetDeviceClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createForgetDeviceClient.ts new file mode 100644 index 00000000000..f2851a80f78 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createForgetDeviceClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createEmptyResponseDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { + ForgetDeviceCommandInput, + ForgetDeviceCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createForgetDeviceClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('ForgetDevice'), + createEmptyResponseDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createForgotPasswordClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createForgotPasswordClient.ts new file mode 100644 index 00000000000..965e8475d83 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createForgotPasswordClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ForgotPasswordCommandInput, + ForgotPasswordCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createForgotPasswordClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('ForgotPassword'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGetUserAttributeVerificationCodeClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGetUserAttributeVerificationCodeClient.ts new file mode 100644 index 00000000000..4b699383ffe --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGetUserAttributeVerificationCodeClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + GetUserAttributeVerificationCodeCommandInput, + GetUserAttributeVerificationCodeCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createGetUserAttributeVerificationCodeClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'GetUserAttributeVerificationCode', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGetUserClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGetUserClient.ts new file mode 100644 index 00000000000..0a0eed9f070 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGetUserClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + GetUserCommandInput, + GetUserCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createGetUserClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('GetUser'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGlobalSignOutClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGlobalSignOutClient.ts new file mode 100644 index 00000000000..3ef65818bbf --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createGlobalSignOutClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + GlobalSignOutCommandInput, + GlobalSignOutCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createGlobalSignOutClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('GlobalSignOut'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createInitiateAuthClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createInitiateAuthClient.ts new file mode 100644 index 00000000000..b505144933e --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createInitiateAuthClient.ts @@ -0,0 +1,27 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + InitiateAuthCommandInput, + InitiateAuthCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createInitiateAuthClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('InitiateAuth'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createListDevicesClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createListDevicesClient.ts new file mode 100644 index 00000000000..b6ec1ffd385 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createListDevicesClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ListDevicesCommandInput, + ListDevicesCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createListDevicesClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('ListDevices'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createResendConfirmationCodeClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createResendConfirmationCodeClient.ts new file mode 100644 index 00000000000..7fda8d140c5 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createResendConfirmationCodeClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ResendConfirmationCodeCommandInput, + ResendConfirmationCodeCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createResendConfirmationCodeClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'ResendConfirmationCode', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createRespondToAuthChallengeClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createRespondToAuthChallengeClient.ts new file mode 100644 index 00000000000..736fdfd0ed7 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createRespondToAuthChallengeClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + RespondToAuthChallengeCommandInput, + RespondToAuthChallengeCommandOutput, + ServiceClientFactoryInput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createRespondToAuthChallengeClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'RespondToAuthChallenge', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createRevokeTokenClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createRevokeTokenClient.ts new file mode 100644 index 00000000000..4deb8a8faf3 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createRevokeTokenClient.ts @@ -0,0 +1,29 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { ServiceClientFactoryInput } from './types'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +interface RevokeTokenInput { + Token: string; + ClientId: string; +} + +type RevokeTokenOutput = Record; + +export const createRevokeTokenClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('RevokeToken'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSetUserMFAPreferenceClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSetUserMFAPreferenceClient.ts new file mode 100644 index 00000000000..60b0f4bfddd --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSetUserMFAPreferenceClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ServiceClientFactoryInput, + SetUserMFAPreferenceCommandInput, + SetUserMFAPreferenceCommandOutput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createSetUserMFAPreferenceClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'SetUserMFAPreference', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.ts new file mode 100644 index 00000000000..e77676bab1d --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createSignUpClient.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ServiceClientFactoryInput, + SignUpCommandInput, + SignUpCommandOutput, +} from './types'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; + +export const createSignUpClient = (config: ServiceClientFactoryInput) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer('SignUp'), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createUpdateDeviceStatusClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createUpdateDeviceStatusClient.ts new file mode 100644 index 00000000000..9e511187ba5 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createUpdateDeviceStatusClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ServiceClientFactoryInput, + UpdateDeviceStatusCommandInput, + UpdateDeviceStatusCommandOutput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createUpdateDeviceStatusClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'UpdateDeviceStatus', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createUpdateUserAttributesClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createUpdateUserAttributesClient.ts new file mode 100644 index 00000000000..5c71001c41d --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createUpdateUserAttributesClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ServiceClientFactoryInput, + UpdateUserAttributesCommandInput, + UpdateUserAttributesCommandOutput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createUpdateUserAttributesClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'UpdateUserAttributes', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createVerifySoftwareTokenClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createVerifySoftwareTokenClient.ts new file mode 100644 index 00000000000..c5b63486c42 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createVerifySoftwareTokenClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ServiceClientFactoryInput, + VerifySoftwareTokenCommandInput, + VerifySoftwareTokenCommandOutput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createVerifySoftwareTokenClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'VerifySoftwareToken', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createVerifyUserAttributeClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createVerifyUserAttributeClient.ts new file mode 100644 index 00000000000..ad24b27c97a --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/createVerifyUserAttributeClient.ts @@ -0,0 +1,30 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; + +import { + ServiceClientFactoryInput, + VerifyUserAttributeCommandInput, + VerifyUserAttributeCommandOutput, +} from './types'; +import { cognitoUserPoolTransferHandler } from './shared/handler'; +import { + createUserPoolDeserializer, + createUserPoolSerializer, +} from './shared/serde'; +import { DEFAULT_SERVICE_CLIENT_API_CONFIG } from './constants'; + +export const createVerifyUserAttributeClient = ( + config: ServiceClientFactoryInput, +) => + composeServiceApi( + cognitoUserPoolTransferHandler, + createUserPoolSerializer( + 'VerifyUserAttribute', + ), + createUserPoolDeserializer(), + { + ...DEFAULT_SERVICE_CLIENT_API_CONFIG, + ...config, + }, + ); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/index.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/index.ts new file mode 100644 index 00000000000..2b93cd09150 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/index.ts @@ -0,0 +1,26 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +export { createInitiateAuthClient } from './createInitiateAuthClient'; +export { createRevokeTokenClient } from './createRevokeTokenClient'; +export { createSignUpClient } from './createSignUpClient'; +export { createConfirmSignUpClient } from './createConfirmSignUpClient'; +export { createForgotPasswordClient } from './createForgotPasswordClient'; +export { createConfirmForgotPasswordClient } from './createConfirmForgotPasswordClient'; +export { createRespondToAuthChallengeClient } from './createRespondToAuthChallengeClient'; +export { createResendConfirmationCodeClient } from './createResendConfirmationCodeClient'; +export { createVerifySoftwareTokenClient } from './createVerifySoftwareTokenClient'; +export { createAssociateSoftwareTokenClient } from './createAssociateSoftwareTokenClient'; +export { createSetUserMFAPreferenceClient } from './createSetUserMFAPreferenceClient'; +export { createGetUserClient } from './createGetUserClient'; +export { createChangePasswordClient } from './createChangePasswordClient'; +export { createConfirmDeviceClient } from './createConfirmDeviceClient'; +export { createForgetDeviceClient } from './createForgetDeviceClient'; +export { createDeleteUserClient } from './createDeleteUserClient'; +export { createGetUserAttributeVerificationCodeClient } from './createGetUserAttributeVerificationCodeClient'; +export { createGlobalSignOutClient } from './createGlobalSignOutClient'; +export { createUpdateUserAttributesClient } from './createUpdateUserAttributesClient'; +export { createVerifyUserAttributeClient } from './createVerifyUserAttributeClient'; +export { createUpdateDeviceStatusClient } from './createUpdateDeviceStatusClient'; +export { createListDevicesClient } from './createListDevicesClient'; +export { createDeleteUserAttributesClient } from './createDeleteUserAttributesClient'; diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.ts new file mode 100644 index 00000000000..b1b917f0a08 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/cognitoUserPoolTransferHandler.ts @@ -0,0 +1,37 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers'; +import { + HttpRequest, + Middleware, + unauthenticatedHandler, +} from '@aws-amplify/core/internals/aws-client-utils'; +import { HttpResponse } from '@aws-amplify/core/src/clients/types'; + +/** + * A Cognito Identity-specific middleware that disables caching for all requests. + */ +const disableCacheMiddlewareFactory: Middleware< + HttpRequest, + HttpResponse, + Record +> = () => (next, _) => + async function disableCacheMiddleware(request) { + request.headers['cache-control'] = 'no-store'; + + return next(request); + }; + +/** + * A Cognito Identity-specific transfer handler that does NOT sign requests, and + * disables caching. + * + * @internal + */ +export const cognitoUserPoolTransferHandler = composeTransferHandler< + [Parameters[0]], + HttpRequest, + HttpResponse, + typeof unauthenticatedHandler +>(unauthenticatedHandler, [disableCacheMiddlewareFactory]); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/index.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/index.ts new file mode 100644 index 00000000000..c0df8483e89 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/handler/index.ts @@ -0,0 +1,4 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +export { cognitoUserPoolTransferHandler } from './cognitoUserPoolTransferHandler'; diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.ts new file mode 100644 index 00000000000..a27f4ef0564 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createEmptyResponseDeserializer.ts @@ -0,0 +1,21 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { + HttpResponse, + parseJsonError, +} from '@aws-amplify/core/internals/aws-client-utils'; + +import { assertServiceError } from '../../../../../../errors/utils/assertServiceError'; +import { AuthError } from '../../../../../../errors/AuthError'; + +export const createEmptyResponseDeserializer = + (): ((response: HttpResponse) => Promise) => + async (response: HttpResponse): Promise => { + if (response.statusCode >= 300) { + const error = await parseJsonError(response); + assertServiceError(error); + throw new AuthError({ name: error.name, message: error.message }); + } else { + return undefined; + } + }; diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.ts new file mode 100644 index 00000000000..dc9c16d7d9f --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolDeserializer.ts @@ -0,0 +1,23 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { + HttpResponse, + parseJsonBody, + parseJsonError, +} from '@aws-amplify/core/internals/aws-client-utils'; + +import { assertServiceError } from '../../../../../../errors/utils/assertServiceError'; +import { AuthError } from '../../../../../../errors/AuthError'; + +export const createUserPoolDeserializer = + (): ((response: HttpResponse) => Promise) => + async (response: HttpResponse): Promise => { + if (response.statusCode >= 300) { + const error = await parseJsonError(response); + assertServiceError(error); + throw new AuthError({ name: error.name, message: error.message }); + } + + return parseJsonBody(response); + }; diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.ts new file mode 100644 index 00000000000..81f22df9312 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/createUserPoolSerializer.ts @@ -0,0 +1,58 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { + Endpoint, + Headers, + HttpRequest, +} from '@aws-amplify/core/internals/aws-client-utils'; + +type ClientOperation = + | 'SignUp' + | 'ConfirmSignUp' + | 'ForgotPassword' + | 'ConfirmForgotPassword' + | 'InitiateAuth' + | 'RespondToAuthChallenge' + | 'ResendConfirmationCode' + | 'VerifySoftwareToken' + | 'AssociateSoftwareToken' + | 'SetUserMFAPreference' + | 'GetUser' + | 'ChangePassword' + | 'ConfirmDevice' + | 'ForgetDevice' + | 'DeleteUser' + | 'GetUserAttributeVerificationCode' + | 'GlobalSignOut' + | 'UpdateUserAttributes' + | 'VerifyUserAttribute' + | 'DeleteUserAttributes' + | 'UpdateDeviceStatus' + | 'ListDevices' + | 'RevokeToken'; + +export const createUserPoolSerializer = + (operation: ClientOperation) => + (input: Input, endpoint: Endpoint): HttpRequest => { + const headers = getSharedHeaders(operation); + const body = JSON.stringify(input); + + return buildHttpRpcRequest(endpoint, headers, body); + }; + +const getSharedHeaders = (operation: string): Headers => ({ + 'content-type': 'application/x-amz-json-1.1', + 'x-amz-target': `AWSCognitoIdentityProviderService.${operation}`, +}); + +const buildHttpRpcRequest = ( + { url }: Endpoint, + headers: Headers, + body: string, +): HttpRequest => ({ + headers, + url, + body, + method: 'POST', +}); diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/index.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/index.ts new file mode 100644 index 00000000000..bb805866e28 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/shared/serde/index.ts @@ -0,0 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +export { createUserPoolSerializer } from './createUserPoolSerializer'; +export { createUserPoolDeserializer } from './createUserPoolDeserializer'; +export { createEmptyResponseDeserializer } from './createEmptyResponseDeserializer'; diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.ts new file mode 100644 index 00000000000..3374c6b6194 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/index.ts @@ -0,0 +1,4 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +export * from './sdk'; +export * from './serviceClient'; diff --git a/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/types.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/sdk.ts similarity index 100% rename from packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/types.ts rename to packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/sdk.ts diff --git a/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/serviceClient.ts b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/serviceClient.ts new file mode 100644 index 00000000000..0f358133832 --- /dev/null +++ b/packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/serviceClient.ts @@ -0,0 +1,8 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { EndpointResolverOptions } from '@aws-amplify/core/internals/aws-client-utils'; + +export interface ServiceClientFactoryInput { + endpointResolver(options: EndpointResolverOptions): { url: URL }; +} diff --git a/packages/auth/src/foundation/parsers/index.ts b/packages/auth/src/foundation/parsers/index.ts new file mode 100644 index 00000000000..901f99a010e --- /dev/null +++ b/packages/auth/src/foundation/parsers/index.ts @@ -0,0 +1,6 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +export { + getRegionFromUserPoolId, + getRegionFromIdentityPoolId, +} from './regionParsers'; diff --git a/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/utils.ts b/packages/auth/src/foundation/parsers/regionParsers.ts similarity index 86% rename from packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/utils.ts rename to packages/auth/src/foundation/parsers/regionParsers.ts index 2202f2dcd37..193ddee374d 100644 --- a/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/utils.ts +++ b/packages/auth/src/foundation/parsers/regionParsers.ts @@ -1,9 +1,8 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import { AuthError } from '../../errors/AuthError'; -import { AuthError } from '../../../../../errors/AuthError'; - -export function getRegion(userPoolId?: string): string { +export function getRegionFromUserPoolId(userPoolId?: string): string { const region = userPoolId?.split('_')[0]; if ( !userPoolId || diff --git a/packages/auth/src/providers/cognito/apis/confirmResetPassword.ts b/packages/auth/src/providers/cognito/apis/confirmResetPassword.ts index 29081093e5c..5c4edc100cf 100644 --- a/packages/auth/src/providers/cognito/apis/confirmResetPassword.ts +++ b/packages/auth/src/providers/cognito/apis/confirmResetPassword.ts @@ -10,11 +10,12 @@ import { import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { assertValidationError } from '../../../errors/utils/assertValidationError'; import { ConfirmResetPasswordInput } from '../types'; -import { confirmForgotPassword } from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; import { ConfirmForgotPasswordException } from '../../cognito/types/errors'; import { getAuthUserAgentValue } from '../../../utils'; import { getUserContextData } from '../utils/userContextData'; +import { createConfirmForgotPasswordClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; /** * Confirms the new password and verification code to reset the password. * @@ -30,7 +31,7 @@ export async function confirmResetPassword( ): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); - const { userPoolClientId, userPoolId } = authConfig; + const { userPoolClientId, userPoolId, userPoolEndpoint } = authConfig; const { username, newPassword } = input; assertValidationError( !!username, @@ -53,10 +54,14 @@ export async function confirmResetPassword( userPoolId, userPoolClientId, }); - + const confirmForgotPassword = createConfirmForgotPasswordClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await confirmForgotPassword( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(authConfig.userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmResetPassword), }, { diff --git a/packages/auth/src/providers/cognito/apis/confirmSignIn.ts b/packages/auth/src/providers/cognito/apis/confirmSignIn.ts index 6aad224af30..b8e8475aa42 100644 --- a/packages/auth/src/providers/cognito/apis/confirmSignIn.ts +++ b/packages/auth/src/providers/cognito/apis/confirmSignIn.ts @@ -17,7 +17,7 @@ import { } from '../utils/signInStore'; import { AuthError } from '../../../errors/AuthError'; import { - getNewDeviceMetatada, + getNewDeviceMetadata, getSignInResult, getSignInResultFromError, handleChallengeName, @@ -27,12 +27,12 @@ import { assertValidationError } from '../../../errors/utils/assertValidationErr import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { AuthErrorCodes } from '../../../common/AuthErrorStrings'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; +import { tokenOrchestrator } from '../tokenProvider'; +import { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent'; import { ChallengeName, ChallengeParameters, -} from '../utils/clients/CognitoIdentityProvider/types'; -import { tokenOrchestrator } from '../tokenProvider'; -import { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent'; +} from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; /** * Continues or completes the sign in process when required by the initial call to `signIn`. @@ -113,11 +113,12 @@ export async function confirmSignIn( await cacheCognitoTokens({ username, ...AuthenticationResult, - NewDeviceMetadata: await getNewDeviceMetatada( - authConfig.userPoolId, - AuthenticationResult.NewDeviceMetadata, - AuthenticationResult.AccessToken, - ), + NewDeviceMetadata: await getNewDeviceMetadata({ + userPoolId: authConfig.userPoolId, + userPoolEndpoint: authConfig.userPoolEndpoint, + newDeviceMetadata: AuthenticationResult.NewDeviceMetadata, + accessToken: AuthenticationResult.AccessToken, + }), signInDetails, }); diff --git a/packages/auth/src/providers/cognito/apis/confirmSignUp.ts b/packages/auth/src/providers/cognito/apis/confirmSignUp.ts index 62fdf93a82c..92adf180210 100644 --- a/packages/auth/src/providers/cognito/apis/confirmSignUp.ts +++ b/packages/auth/src/providers/cognito/apis/confirmSignUp.ts @@ -12,8 +12,7 @@ import { ConfirmSignUpInput, ConfirmSignUpOutput } from '../types'; import { assertValidationError } from '../../../errors/utils/assertValidationError'; import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { ConfirmSignUpException } from '../types/errors'; -import { confirmSignUp as confirmSignUpClient } from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { AutoSignInEventData } from '../types/models'; import { isAutoSignInStarted, @@ -22,6 +21,8 @@ import { } from '../utils/signUpHelpers'; import { getAuthUserAgentValue } from '../../../utils'; import { getUserContextData } from '../utils/userContextData'; +import { createConfirmSignUpClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Confirms a new user account. @@ -41,7 +42,7 @@ export async function confirmSignUp( const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); - const { userPoolId, userPoolClientId } = authConfig; + const { userPoolId, userPoolClientId, userPoolEndpoint } = authConfig; const clientMetadata = options?.clientMetadata; assertValidationError( !!username, @@ -58,9 +59,15 @@ export async function confirmSignUp( userPoolClientId, }); + const confirmSignUpClient = createConfirmSignUpClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + await confirmSignUpClient( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(authConfig.userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignUp), }, { diff --git a/packages/auth/src/providers/cognito/apis/confirmUserAttribute.ts b/packages/auth/src/providers/cognito/apis/confirmUserAttribute.ts index 951a97f2822..8c0c4dba1ad 100644 --- a/packages/auth/src/providers/cognito/apis/confirmUserAttribute.ts +++ b/packages/auth/src/providers/cognito/apis/confirmUserAttribute.ts @@ -9,12 +9,13 @@ import { import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { assertValidationError } from '../../../errors/utils/assertValidationError'; -import { verifyUserAttribute } from '../utils/clients/CognitoIdentityProvider'; import { VerifyUserAttributeException } from '../types/errors'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokens } from '../utils/types'; import { ConfirmUserAttributeInput } from '../types'; import { getAuthUserAgentValue } from '../../../utils'; +import { createVerifyUserAttributeClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Confirms a user attribute with the confirmation code. @@ -30,6 +31,7 @@ export async function confirmUserAttribute( ): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { confirmationCode, userAttributeKey } = input; assertValidationError( !!confirmationCode, @@ -37,9 +39,14 @@ export async function confirmUserAttribute( ); const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); + const verifyUserAttribute = createVerifyUserAttributeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await verifyUserAttribute( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmUserAttribute), }, { diff --git a/packages/auth/src/providers/cognito/apis/deleteUser.ts b/packages/auth/src/providers/cognito/apis/deleteUser.ts index e14bde07f09..53c0c18c6dd 100644 --- a/packages/auth/src/providers/cognito/apis/deleteUser.ts +++ b/packages/auth/src/providers/cognito/apis/deleteUser.ts @@ -7,12 +7,13 @@ import { assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokens } from '../utils/types'; -import { deleteUser as serviceDeleteUser } from '../utils/clients/CognitoIdentityProvider'; import { DeleteUserException } from '../types/errors'; import { tokenOrchestrator } from '../tokenProvider'; import { getAuthUserAgentValue } from '../../../utils'; +import { createDeleteUserClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; import { signOut } from './signOut'; @@ -25,13 +26,17 @@ import { signOut } from './signOut'; export async function deleteUser(): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); - + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession(); assertAuthTokens(tokens); - + const serviceDeleteUser = createDeleteUserClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await serviceDeleteUser( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.DeleteUser), }, { diff --git a/packages/auth/src/providers/cognito/apis/deleteUserAttributes.ts b/packages/auth/src/providers/cognito/apis/deleteUserAttributes.ts index 5812b656d60..b958dfacc1f 100644 --- a/packages/auth/src/providers/cognito/apis/deleteUserAttributes.ts +++ b/packages/auth/src/providers/cognito/apis/deleteUserAttributes.ts @@ -7,12 +7,13 @@ import { assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils'; -import { deleteUserAttributes as deleteUserAttributesClient } from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokens } from '../utils/types'; import { DeleteUserAttributesInput } from '../types'; import { DeleteUserAttributesException } from '../types/errors'; import { getAuthUserAgentValue } from '../../../utils'; +import { createDeleteUserAttributesClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Deletes user attributes. @@ -27,11 +28,17 @@ export async function deleteUserAttributes( const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); const { userAttributeKeys } = input; + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); + const deleteUserAttributesClient = createDeleteUserAttributesClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await deleteUserAttributesClient( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.DeleteUserAttributes), }, { diff --git a/packages/auth/src/providers/cognito/apis/fetchDevices.ts b/packages/auth/src/providers/cognito/apis/fetchDevices.ts index 29be20e7a78..c0dc69f22f4 100644 --- a/packages/auth/src/providers/cognito/apis/fetchDevices.ts +++ b/packages/auth/src/providers/cognito/apis/fetchDevices.ts @@ -8,12 +8,13 @@ import { } from '@aws-amplify/core/internals/utils'; import { FetchDevicesOutput } from '../types'; -import { listDevices } from '../utils/clients/CognitoIdentityProvider'; -import { DeviceType } from '../utils/clients/CognitoIdentityProvider/types'; +import { DeviceType } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { assertAuthTokens } from '../utils/types'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { rememberDevice } from '..'; import { getAuthUserAgentValue } from '../../../utils'; +import { createListDevicesClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; // Cognito Documentation for max device // https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html#API_ListDevices_RequestSyntax @@ -30,13 +31,17 @@ const MAX_DEVICES = 60; export async function fetchDevices(): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); - + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession(); assertAuthTokens(tokens); - + const listDevices = createListDevicesClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const response = await listDevices( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.FetchDevices), }, { diff --git a/packages/auth/src/providers/cognito/apis/fetchMFAPreference.ts b/packages/auth/src/providers/cognito/apis/fetchMFAPreference.ts index ef42d34f72f..e6da216ba81 100644 --- a/packages/auth/src/providers/cognito/apis/fetchMFAPreference.ts +++ b/packages/auth/src/providers/cognito/apis/fetchMFAPreference.ts @@ -10,10 +10,11 @@ import { import { FetchMFAPreferenceOutput } from '../types'; import { getMFAType, getMFATypes } from '../utils/signInHelpers'; import { GetUserException } from '../types/errors'; -import { getUser } from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokens } from '../utils/types'; import { getAuthUserAgentValue } from '../../../utils'; +import { createGetUserClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Fetches the preferred MFA setting and enabled MFA settings for the user. @@ -26,11 +27,17 @@ import { getAuthUserAgentValue } from '../../../utils'; export async function fetchMFAPreference(): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); + const getUser = createGetUserClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const { PreferredMfaSetting, UserMFASettingList } = await getUser( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.FetchMFAPreference), }, { diff --git a/packages/auth/src/providers/cognito/apis/forgetDevice.ts b/packages/auth/src/providers/cognito/apis/forgetDevice.ts index 66dd3488f7b..b1ca574e1e4 100644 --- a/packages/auth/src/providers/cognito/apis/forgetDevice.ts +++ b/packages/auth/src/providers/cognito/apis/forgetDevice.ts @@ -7,13 +7,14 @@ import { assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils'; -import { forgetDevice as serviceForgetDevice } from '../utils/clients/CognitoIdentityProvider'; import { assertAuthTokens, assertDeviceMetadata } from '../utils/types'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { tokenOrchestrator } from '../tokenProvider'; import { ForgetDeviceInput } from '../types'; import { ForgetDeviceException } from '../../cognito/types/errors'; import { getAuthUserAgentValue } from '../../../utils'; +import { createForgetDeviceClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Forget a remembered device while authenticated. @@ -27,17 +28,21 @@ export async function forgetDevice(input?: ForgetDeviceInput): Promise { const { device: { id: externalDeviceKey } = { id: undefined } } = input ?? {}; const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); - + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession(); assertAuthTokens(tokens); const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(); const currentDeviceKey = deviceMetadata?.deviceKey; if (!externalDeviceKey) assertDeviceMetadata(deviceMetadata); - + const serviceForgetDevice = createForgetDeviceClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await serviceForgetDevice( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ForgetDevice), }, { diff --git a/packages/auth/src/providers/cognito/apis/internal/fetchUserAttributes.ts b/packages/auth/src/providers/cognito/apis/internal/fetchUserAttributes.ts index c1e4e9dd008..01230bf5153 100644 --- a/packages/auth/src/providers/cognito/apis/internal/fetchUserAttributes.ts +++ b/packages/auth/src/providers/cognito/apis/internal/fetchUserAttributes.ts @@ -8,26 +8,32 @@ import { fetchAuthSession, } from '@aws-amplify/core/internals/utils'; -import { getUser } from '../../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../../foundation/parsers'; import { assertAuthTokens } from '../../utils/types'; import { FetchUserAttributesOutput } from '../../types'; import { toAuthUserAttribute } from '../../utils/apiHelpers'; import { getAuthUserAgentValue } from '../../../../utils'; +import { createGetUserClient } from '../../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../../factories'; export const fetchUserAttributes = async ( amplify: AmplifyClassV6, ): Promise => { const authConfig = amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession(amplify, { forceRefresh: false, }); assertAuthTokens(tokens); - + const getUser = createGetUserClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const { UserAttributes } = await getUser( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.FetchUserAttributes), }, { diff --git a/packages/auth/src/providers/cognito/apis/rememberDevice.ts b/packages/auth/src/providers/cognito/apis/rememberDevice.ts index 218b7b533e6..eb24022096e 100644 --- a/packages/auth/src/providers/cognito/apis/rememberDevice.ts +++ b/packages/auth/src/providers/cognito/apis/rememberDevice.ts @@ -7,12 +7,13 @@ import { assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils'; -import { updateDeviceStatus } from '../utils/clients/CognitoIdentityProvider'; import { assertAuthTokens, assertDeviceMetadata } from '../utils/types'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { tokenOrchestrator } from '../tokenProvider'; import { UpdateDeviceStatusException } from '../../cognito/types/errors'; import { getAuthUserAgentValue } from '../../../utils'; +import { createUpdateDeviceStatusClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Marks device as remembered while authenticated. @@ -24,16 +25,20 @@ import { getAuthUserAgentValue } from '../../../utils'; export async function rememberDevice(): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); - + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession(); assertAuthTokens(tokens); const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(); assertDeviceMetadata(deviceMetadata); - + const updateDeviceStatus = createUpdateDeviceStatusClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await updateDeviceStatus( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.RememberDevice), }, { diff --git a/packages/auth/src/providers/cognito/apis/resendSignUpCode.ts b/packages/auth/src/providers/cognito/apis/resendSignUpCode.ts index 99ef3996f52..cdda7b980eb 100644 --- a/packages/auth/src/providers/cognito/apis/resendSignUpCode.ts +++ b/packages/auth/src/providers/cognito/apis/resendSignUpCode.ts @@ -12,11 +12,12 @@ import { AuthDeliveryMedium } from '../../../types'; import { assertValidationError } from '../../../errors/utils/assertValidationError'; import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { ResendSignUpCodeInput, ResendSignUpCodeOutput } from '../types'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; -import { resendConfirmationCode } from '../utils/clients/CognitoIdentityProvider'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { getAuthUserAgentValue } from '../../../utils'; import { getUserContextData } from '../utils/userContextData'; import { ResendConfirmationException } from '../types/errors'; +import { createResendConfirmationCodeClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Resend the confirmation code while signing up @@ -37,7 +38,7 @@ export async function resendSignUpCode( ); const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); - const { userPoolClientId, userPoolId } = authConfig; + const { userPoolClientId, userPoolId, userPoolEndpoint } = authConfig; const clientMetadata = input.options?.clientMetadata; const UserContextData = getUserContextData({ @@ -45,10 +46,14 @@ export async function resendSignUpCode( userPoolId, userPoolClientId, }); - + const resendConfirmationCode = createResendConfirmationCodeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const { CodeDeliveryDetails } = await resendConfirmationCode( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(authConfig.userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ResendSignUpCode), }, { diff --git a/packages/auth/src/providers/cognito/apis/resetPassword.ts b/packages/auth/src/providers/cognito/apis/resetPassword.ts index 273a77d413d..cd6d37a39ca 100644 --- a/packages/auth/src/providers/cognito/apis/resetPassword.ts +++ b/packages/auth/src/providers/cognito/apis/resetPassword.ts @@ -12,11 +12,12 @@ import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { assertValidationError } from '../../../errors/utils/assertValidationError'; import { AuthDeliveryMedium } from '../../../types'; import { ResetPasswordInput, ResetPasswordOutput } from '../types'; -import { forgotPassword } from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { ForgotPasswordException } from '../../cognito/types/errors'; import { getAuthUserAgentValue } from '../../../utils'; import { getUserContextData } from '../utils/userContextData'; +import { createForgotPasswordClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Resets a user's password. @@ -39,7 +40,7 @@ export async function resetPassword( ); const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); - const { userPoolClientId, userPoolId } = authConfig; + const { userPoolClientId, userPoolId, userPoolEndpoint } = authConfig; const clientMetadata = input.options?.clientMetadata; const UserContextData = getUserContextData({ @@ -48,15 +49,20 @@ export async function resetPassword( userPoolClientId, }); + const forgotPassword = createForgotPasswordClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const res = await forgotPassword( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ResetPassword), }, { Username: username, ClientMetadata: clientMetadata, - ClientId: authConfig.userPoolClientId, + ClientId: userPoolClientId, UserContextData, }, ); diff --git a/packages/auth/src/providers/cognito/apis/sendUserAttributeVerificationCode.ts b/packages/auth/src/providers/cognito/apis/sendUserAttributeVerificationCode.ts index 55e5a8b5a84..4b04b2a85d1 100644 --- a/packages/auth/src/providers/cognito/apis/sendUserAttributeVerificationCode.ts +++ b/packages/auth/src/providers/cognito/apis/sendUserAttributeVerificationCode.ts @@ -13,11 +13,12 @@ import { SendUserAttributeVerificationCodeInput, SendUserAttributeVerificationCodeOutput, } from '../types'; -import { getUserAttributeVerificationCode } from '../utils/clients/CognitoIdentityProvider'; import { assertAuthTokens } from '../utils/types'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { GetUserAttributeVerificationException } from '../types/errors'; import { getAuthUserAgentValue } from '../../../utils'; +import { createGetUserAttributeVerificationCodeClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Resends user's confirmation code when updating attributes while authenticated. @@ -34,11 +35,18 @@ export const sendUserAttributeVerificationCode = async ( const authConfig = Amplify.getConfig().Auth?.Cognito; const clientMetadata = options?.clientMetadata; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); + const getUserAttributeVerificationCode = + createGetUserAttributeVerificationCodeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const { CodeDeliveryDetails } = await getUserAttributeVerificationCode( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue( AuthAction.SendUserAttributeVerificationCode, ), diff --git a/packages/auth/src/providers/cognito/apis/setUpTOTP.ts b/packages/auth/src/providers/cognito/apis/setUpTOTP.ts index e99b8618995..43dac4c787b 100644 --- a/packages/auth/src/providers/cognito/apis/setUpTOTP.ts +++ b/packages/auth/src/providers/cognito/apis/setUpTOTP.ts @@ -14,10 +14,11 @@ import { } from '../types/errors'; import { SetUpTOTPOutput } from '../types'; import { getTOTPSetupDetails } from '../utils/signInHelpers'; -import { associateSoftwareToken } from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokens } from '../utils/types'; import { getAuthUserAgentValue } from '../../../utils'; +import { createAssociateSoftwareTokenClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Sets up TOTP for the user. @@ -30,12 +31,18 @@ import { getAuthUserAgentValue } from '../../../utils'; export async function setUpTOTP(): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); const username = tokens.idToken?.payload['cognito:username'] ?? ''; + const associateSoftwareToken = createAssociateSoftwareTokenClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const { SecretCode } = await associateSoftwareToken( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.SetUpTOTP), }, { diff --git a/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts b/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts index e55e3f0a50d..a666fba0acb 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts @@ -9,7 +9,7 @@ import { assertValidationError } from '../../../errors/utils/assertValidationErr import { assertServiceError } from '../../../errors/utils/assertServiceError'; import { getActiveSignInUsername, - getNewDeviceMetatada, + getNewDeviceMetadata, getSignInResult, getSignInResultFromError, handleCustomAuthFlowWithoutSRP, @@ -29,7 +29,7 @@ import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { ChallengeName, ChallengeParameters, -} from '../utils/clients/CognitoIdentityProvider/types'; +} from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { tokenOrchestrator } from '../tokenProvider'; import { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent'; @@ -89,11 +89,12 @@ export async function signInWithCustomAuth( await cacheCognitoTokens({ username: activeUsername, ...AuthenticationResult, - NewDeviceMetadata: await getNewDeviceMetatada( - authConfig.userPoolId, - AuthenticationResult.NewDeviceMetadata, - AuthenticationResult.AccessToken, - ), + NewDeviceMetadata: await getNewDeviceMetadata({ + userPoolId: authConfig.userPoolId, + userPoolEndpoint: authConfig.userPoolEndpoint, + newDeviceMetadata: AuthenticationResult.NewDeviceMetadata, + accessToken: AuthenticationResult.AccessToken, + }), signInDetails, }); diff --git a/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts b/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts index a67fa9f861c..a22f98b3804 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts @@ -9,7 +9,7 @@ import { assertValidationError } from '../../../errors/utils/assertValidationErr import { assertServiceError } from '../../../errors/utils/assertServiceError'; import { getActiveSignInUsername, - getNewDeviceMetatada, + getNewDeviceMetadata, getSignInResult, getSignInResultFromError, handleCustomSRPAuthFlow, @@ -31,7 +31,7 @@ import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { ChallengeName, ChallengeParameters, -} from '../utils/clients/CognitoIdentityProvider/types'; +} from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { tokenOrchestrator } from '../tokenProvider'; import { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent'; @@ -92,11 +92,12 @@ export async function signInWithCustomSRPAuth( await cacheCognitoTokens({ username: activeUsername, ...AuthenticationResult, - NewDeviceMetadata: await getNewDeviceMetatada( - authConfig.userPoolId, - AuthenticationResult.NewDeviceMetadata, - AuthenticationResult.AccessToken, - ), + NewDeviceMetadata: await getNewDeviceMetadata({ + userPoolId: authConfig.userPoolId, + userPoolEndpoint: authConfig.userPoolEndpoint, + newDeviceMetadata: AuthenticationResult.NewDeviceMetadata, + accessToken: AuthenticationResult.AccessToken, + }), signInDetails, }); cleanActiveSignInState(); diff --git a/packages/auth/src/providers/cognito/apis/signInWithSRP.ts b/packages/auth/src/providers/cognito/apis/signInWithSRP.ts index 32f0ca11b99..9bb8d4deca7 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithSRP.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithSRP.ts @@ -10,14 +10,14 @@ import { assertServiceError } from '../../../errors/utils/assertServiceError'; import { ChallengeName, ChallengeParameters, -} from '../utils/clients/CognitoIdentityProvider/types'; +} from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { InitiateAuthException, RespondToAuthChallengeException, } from '../types/errors'; import { getActiveSignInUsername, - getNewDeviceMetatada, + getNewDeviceMetadata, getSignInResult, getSignInResultFromError, handleUserSRPAuthFlow, @@ -93,11 +93,12 @@ export async function signInWithSRP( await cacheCognitoTokens({ username: activeUsername, ...AuthenticationResult, - NewDeviceMetadata: await getNewDeviceMetatada( - authConfig.userPoolId, - AuthenticationResult.NewDeviceMetadata, - AuthenticationResult.AccessToken, - ), + NewDeviceMetadata: await getNewDeviceMetadata({ + userPoolId: authConfig.userPoolId, + userPoolEndpoint: authConfig.userPoolEndpoint, + newDeviceMetadata: AuthenticationResult.NewDeviceMetadata, + accessToken: AuthenticationResult.AccessToken, + }), signInDetails, }); diff --git a/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts b/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts index e1de730cb1c..071f54f8313 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts @@ -10,10 +10,10 @@ import { assertValidationError } from '../../../errors/utils/assertValidationErr import { ChallengeName, ChallengeParameters, -} from '../utils/clients/CognitoIdentityProvider/types'; +} from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { getActiveSignInUsername, - getNewDeviceMetatada, + getNewDeviceMetadata, getSignInResult, getSignInResultFromError, handleUserPasswordAuthFlow, @@ -87,11 +87,12 @@ export async function signInWithUserPassword( await cacheCognitoTokens({ ...AuthenticationResult, username: activeUsername, - NewDeviceMetadata: await getNewDeviceMetatada( - authConfig.userPoolId, - AuthenticationResult.NewDeviceMetadata, - AuthenticationResult.AccessToken, - ), + NewDeviceMetadata: await getNewDeviceMetadata({ + userPoolId: authConfig.userPoolId, + userPoolEndpoint: authConfig.userPoolEndpoint, + newDeviceMetadata: AuthenticationResult.NewDeviceMetadata, + accessToken: AuthenticationResult.AccessToken, + }), signInDetails, }); cleanActiveSignInState(); diff --git a/packages/auth/src/providers/cognito/apis/signOut.ts b/packages/auth/src/providers/cognito/apis/signOut.ts index e073129ca10..2fa52b73ee4 100644 --- a/packages/auth/src/providers/cognito/apis/signOut.ts +++ b/packages/auth/src/providers/cognito/apis/signOut.ts @@ -20,11 +20,7 @@ import { import { getAuthUserAgentValue } from '../../../utils'; import { SignOutInput } from '../types'; import { tokenOrchestrator } from '../tokenProvider'; -import { - globalSignOut as globalSignOutClient, - revokeToken, -} from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokens, assertAuthTokensWithRefreshToken, @@ -33,6 +29,11 @@ import { handleOAuthSignOut } from '../utils/oauth'; import { DefaultOAuthStore } from '../utils/signInWithRedirectStore'; import { AuthError } from '../../../errors/AuthError'; import { OAUTH_SIGNOUT_EXCEPTION } from '../../../errors/constants'; +import { + createGlobalSignOutClient, + createRevokeTokenClient, +} from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; const logger = new ConsoleLogger('Auth'); @@ -86,16 +87,23 @@ export async function signOut(input?: SignOutInput): Promise { async function clientSignOut(cognitoConfig: CognitoUserPoolConfig) { try { + const { userPoolEndpoint, userPoolId, userPoolClientId } = cognitoConfig; const authTokens = await tokenOrchestrator.getTokenStore().loadTokens(); assertAuthTokensWithRefreshToken(authTokens); if (isSessionRevocable(authTokens.accessToken)) { + const revokeToken = createRevokeTokenClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + await revokeToken( { - region: getRegion(cognitoConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.SignOut), }, { - ClientId: cognitoConfig.userPoolClientId, + ClientId: userPoolClientId, Token: authTokens.refreshToken, }, ); @@ -110,11 +118,17 @@ async function clientSignOut(cognitoConfig: CognitoUserPoolConfig) { async function globalSignOut(cognitoConfig: CognitoUserPoolConfig) { try { + const { userPoolEndpoint, userPoolId } = cognitoConfig; const authTokens = await tokenOrchestrator.getTokenStore().loadTokens(); assertAuthTokens(authTokens); + const globalSignOutClient = createGlobalSignOutClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await globalSignOutClient( { - region: getRegion(cognitoConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.SignOut), }, { diff --git a/packages/auth/src/providers/cognito/apis/signUp.ts b/packages/auth/src/providers/cognito/apis/signUp.ts index ef9aef32fa2..3ec246648f5 100644 --- a/packages/auth/src/providers/cognito/apis/signUp.ts +++ b/packages/auth/src/providers/cognito/apis/signUp.ts @@ -10,11 +10,10 @@ import { import { AuthDeliveryMedium } from '../../../types'; import { SignInInput, SignUpInput, SignUpOutput } from '../types'; -import { signUp as signUpClient } from '../utils/clients/CognitoIdentityProvider'; import { assertValidationError } from '../../../errors/utils/assertValidationError'; import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { SignUpException } from '../types/errors'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { toAttributeType } from '../utils/apiHelpers'; import { autoSignInUserConfirmed, @@ -27,6 +26,8 @@ import { } from '../utils/signUpHelpers'; import { getUserContextData } from '../utils/userContextData'; import { getAuthUserAgentValue } from '../../../utils'; +import { createSignUpClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; import { setAutoSignIn } from './autoSignIn'; @@ -72,11 +73,15 @@ export async function signUp(input: SignUpInput): Promise { setAutoSignInStarted(true); } - const { userPoolId, userPoolClientId } = authConfig; - + const { userPoolId, userPoolClientId, userPoolEndpoint } = authConfig; + const signUpClient = createSignUpClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const clientOutput = await signUpClient( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.SignUp), }, { diff --git a/packages/auth/src/providers/cognito/apis/updateMFAPreference.ts b/packages/auth/src/providers/cognito/apis/updateMFAPreference.ts index 790cc82f8bd..5f87522af5a 100644 --- a/packages/auth/src/providers/cognito/apis/updateMFAPreference.ts +++ b/packages/auth/src/providers/cognito/apis/updateMFAPreference.ts @@ -10,11 +10,12 @@ import { import { UpdateMFAPreferenceInput } from '../types'; import { SetUserMFAPreferenceException } from '../types/errors'; import { MFAPreference } from '../types/models'; -import { setUserMFAPreference } from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; -import { CognitoMFASettings } from '../utils/clients/CognitoIdentityProvider/types'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; +import { CognitoMFASettings } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { assertAuthTokens } from '../utils/types'; import { getAuthUserAgentValue } from '../../../utils'; +import { createSetUserMFAPreferenceClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Updates the MFA preference of the user. @@ -29,11 +30,17 @@ export async function updateMFAPreference( const { sms, totp } = input; const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); + const setUserMFAPreference = createSetUserMFAPreferenceClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await setUserMFAPreference( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.UpdateMFAPreference), }, { diff --git a/packages/auth/src/providers/cognito/apis/updatePassword.ts b/packages/auth/src/providers/cognito/apis/updatePassword.ts index 0f83fc9f1df..f8c8c4bdeae 100644 --- a/packages/auth/src/providers/cognito/apis/updatePassword.ts +++ b/packages/auth/src/providers/cognito/apis/updatePassword.ts @@ -10,11 +10,12 @@ import { import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { assertValidationError } from '../../../errors/utils/assertValidationError'; import { UpdatePasswordInput } from '../types'; -import { changePassword } from '../utils/clients/CognitoIdentityProvider'; import { ChangePasswordException } from '../../cognito/types/errors'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokens } from '../utils/types'; import { getAuthUserAgentValue } from '../../../utils'; +import { createChangePasswordClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Updates user's password while authenticated. @@ -29,6 +30,7 @@ export async function updatePassword( ): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { oldPassword, newPassword } = input; assertValidationError( !!oldPassword, @@ -41,9 +43,14 @@ export async function updatePassword( ); const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); + const changePassword = createChangePasswordClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await changePassword( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.UpdatePassword), }, { diff --git a/packages/auth/src/providers/cognito/apis/updateUserAttributes.ts b/packages/auth/src/providers/cognito/apis/updateUserAttributes.ts index b0e6cc7f3f7..5076e3145a5 100644 --- a/packages/auth/src/providers/cognito/apis/updateUserAttributes.ts +++ b/packages/auth/src/providers/cognito/apis/updateUserAttributes.ts @@ -16,13 +16,14 @@ import { UpdateUserAttributesInput, UpdateUserAttributesOutput, } from '../types'; -import { updateUserAttributes as updateUserAttributesClient } from '../utils/clients/CognitoIdentityProvider'; import { assertAuthTokens } from '../utils/types'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { toAttributeType } from '../utils/apiHelpers'; -import { CodeDeliveryDetailsType } from '../utils/clients/CognitoIdentityProvider/types'; +import { CodeDeliveryDetailsType } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { UpdateUserAttributesException } from '../types/errors'; import { getAuthUserAgentValue } from '../../../utils'; +import { createUpdateUserAttributesClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Updates user's attributes while authenticated. @@ -39,11 +40,17 @@ export const updateUserAttributes = async ( const authConfig = Amplify.getConfig().Auth?.Cognito; const clientMetadata = options?.clientMetadata; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); + const updateUserAttributesClient = createUpdateUserAttributesClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const { CodeDeliveryDetailsList } = await updateUserAttributesClient( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.UpdateUserAttributes), }, { diff --git a/packages/auth/src/providers/cognito/apis/verifyTOTPSetup.ts b/packages/auth/src/providers/cognito/apis/verifyTOTPSetup.ts index 66c68fe9690..c5c1212c194 100644 --- a/packages/auth/src/providers/cognito/apis/verifyTOTPSetup.ts +++ b/packages/auth/src/providers/cognito/apis/verifyTOTPSetup.ts @@ -10,11 +10,12 @@ import { import { AuthValidationErrorCode } from '../../../errors/types/validation'; import { assertValidationError } from '../../../errors/utils/assertValidationError'; import { VerifyTOTPSetupInput } from '../types'; -import { verifySoftwareToken } from '../utils/clients/CognitoIdentityProvider'; import { VerifySoftwareTokenException } from '../types/errors'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokens } from '../utils/types'; import { getAuthUserAgentValue } from '../../../utils'; +import { createVerifySoftwareTokenClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; /** * Verifies an OTP code retrieved from an associated authentication app. @@ -31,6 +32,7 @@ export async function verifyTOTPSetup( ): Promise { const authConfig = Amplify.getConfig().Auth?.Cognito; assertTokenProviderConfig(authConfig); + const { userPoolEndpoint, userPoolId } = authConfig; const { code, options } = input; assertValidationError( !!code, @@ -38,9 +40,14 @@ export async function verifyTOTPSetup( ); const { tokens } = await fetchAuthSession({ forceRefresh: false }); assertAuthTokens(tokens); + const verifySoftwareToken = createVerifySoftwareTokenClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await verifySoftwareToken( { - region: getRegion(authConfig.userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.VerifyTOTPSetup), }, { diff --git a/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdProvider.ts b/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdProvider.ts index 4a8614a3db0..b96adf08fbc 100644 --- a/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdProvider.ts +++ b/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdProvider.ts @@ -5,7 +5,7 @@ import { AuthTokens, ConsoleLogger, Identity, getId } from '@aws-amplify/core'; import { CognitoIdentityPoolConfig } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../errors/AuthError'; -import { getRegionFromIdentityPoolId } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromIdentityPoolId } from '../../../foundation/parsers'; import { GetIdException } from '../types/errors'; import { IdentityIdStore } from './types'; diff --git a/packages/auth/src/providers/cognito/credentialsProvider/credentialsProvider.ts b/packages/auth/src/providers/cognito/credentialsProvider/credentialsProvider.ts index fd02d349513..6356ff0fd09 100644 --- a/packages/auth/src/providers/cognito/credentialsProvider/credentialsProvider.ts +++ b/packages/auth/src/providers/cognito/credentialsProvider/credentialsProvider.ts @@ -15,7 +15,7 @@ import { } from '@aws-amplify/core/internals/utils'; import { AuthError } from '../../../errors/AuthError'; -import { getRegionFromIdentityPoolId } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromIdentityPoolId } from '../../../foundation/parsers'; import { assertIdTokenInAuthTokens } from '../utils/types'; import { IdentityIdStore } from './types'; diff --git a/packages/auth/src/providers/cognito/factories/createCognitoUserPoolEndpointResolver.ts b/packages/auth/src/providers/cognito/factories/createCognitoUserPoolEndpointResolver.ts new file mode 100644 index 00000000000..42a5b979402 --- /dev/null +++ b/packages/auth/src/providers/cognito/factories/createCognitoUserPoolEndpointResolver.ts @@ -0,0 +1,16 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { EndpointResolverOptions } from '@aws-amplify/core/internals/aws-client-utils'; +import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; + +import { cognitoUserPoolEndpointResolver } from '../../../foundation/cognitoUserPoolEndpointResolver'; + +export const createCognitoUserPoolEndpointResolver = + ({ endpointOverride }: { endpointOverride: string | undefined }) => + (input: EndpointResolverOptions): { url: URL } => { + if (endpointOverride) { + return { url: new AmplifyUrl(endpointOverride) }; + } + + return cognitoUserPoolEndpointResolver(input); + }; diff --git a/packages/auth/src/providers/cognito/factories/index.ts b/packages/auth/src/providers/cognito/factories/index.ts new file mode 100644 index 00000000000..7f8050064d3 --- /dev/null +++ b/packages/auth/src/providers/cognito/factories/index.ts @@ -0,0 +1,3 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +export { createCognitoUserPoolEndpointResolver } from './createCognitoUserPoolEndpointResolver'; diff --git a/packages/auth/src/providers/cognito/tokenProvider/cacheTokens.ts b/packages/auth/src/providers/cognito/tokenProvider/cacheTokens.ts index 198ec6c4283..0be44aeb697 100644 --- a/packages/auth/src/providers/cognito/tokenProvider/cacheTokens.ts +++ b/packages/auth/src/providers/cognito/tokenProvider/cacheTokens.ts @@ -3,7 +3,7 @@ import { AmplifyError, decodeJWT } from '@aws-amplify/core/internals/utils'; import { CognitoAuthSignInDetails } from '../types'; -import { AuthenticationResultType } from '../utils/clients/CognitoIdentityProvider/types'; +import { AuthenticationResultType } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; import { tokenOrchestrator } from './tokenProvider'; import { CognitoAuthTokens, DeviceMetadata } from './types'; diff --git a/packages/auth/src/providers/cognito/utils/apiHelpers.ts b/packages/auth/src/providers/cognito/utils/apiHelpers.ts index 5ddd544513c..70da22165a5 100644 --- a/packages/auth/src/providers/cognito/utils/apiHelpers.ts +++ b/packages/auth/src/providers/cognito/utils/apiHelpers.ts @@ -2,8 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { AuthUserAttributes } from '../../../types'; - -import { AttributeType } from './clients/CognitoIdentityProvider/types'; +import { AttributeType } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; /** * Transforms a user attributes object into an array of AttributeType objects. diff --git a/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/base.ts b/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/base.ts deleted file mode 100644 index cff58009b87..00000000000 --- a/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/base.ts +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -import { Amplify } from '@aws-amplify/core'; -import { - Endpoint, - EndpointResolverOptions, - Headers, - HttpRequest, - HttpResponse, - Middleware, - getDnsSuffix, - getRetryDecider, - jitteredBackoff, - parseJsonError, - unauthenticatedHandler, -} from '@aws-amplify/core/internals/aws-client-utils'; -import { - AmplifyUrl, - getAmplifyUserAgent, -} from '@aws-amplify/core/internals/utils'; -import { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers'; - -/** - * The service name used to sign requests if the API requires authentication. - */ -const SERVICE_NAME = 'cognito-idp'; - -/** - * The endpoint resolver function that returns the endpoint URL for a given region. - */ -const endpointResolver = ({ region }: EndpointResolverOptions) => { - const authConfig = Amplify.getConfig().Auth?.Cognito; - const customURL = authConfig?.userPoolEndpoint; - const defaultURL = new AmplifyUrl( - `https://${SERVICE_NAME}.${region}.${getDnsSuffix(region)}`, - ); - - return { - url: customURL ? new AmplifyUrl(customURL) : defaultURL, - }; -}; - -/** - * A Cognito Identity-specific middleware that disables caching for all requests. - */ -const disableCacheMiddlewareFactory: Middleware< - HttpRequest, - HttpResponse, - Record -> = () => (next, _) => - async function disableCacheMiddleware(request) { - request.headers['cache-control'] = 'no-store'; - - return next(request); - }; - -/** - * A Cognito Identity-specific transfer handler that does NOT sign requests, and - * disables caching. - * - * @internal - */ -export const cognitoUserPoolTransferHandler = composeTransferHandler< - [Parameters[0]], - HttpRequest, - HttpResponse, - typeof unauthenticatedHandler ->(unauthenticatedHandler, [disableCacheMiddlewareFactory]); - -/** - * @internal - */ -export const defaultConfig = { - service: SERVICE_NAME, - endpointResolver, - retryDecider: getRetryDecider(parseJsonError), - computeDelay: jitteredBackoff, - userAgentValue: getAmplifyUserAgent(), - cache: 'no-store', -}; - -/** - * @internal - */ -export const getSharedHeaders = (operation: string): Headers => ({ - 'content-type': 'application/x-amz-json-1.1', - 'x-amz-target': `AWSCognitoIdentityProviderService.${operation}`, -}); - -/** - * @internal - */ -export const buildHttpRpcRequest = ( - { url }: Endpoint, - headers: Headers, - body: string, -): HttpRequest => ({ - headers, - url, - body, - method: 'POST', -}); diff --git a/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/index.ts b/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/index.ts deleted file mode 100644 index 4ea8c01b599..00000000000 --- a/packages/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/index.ts +++ /dev/null @@ -1,286 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 -import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; -import { - Endpoint, - HttpRequest, - HttpResponse, - parseJsonBody, - parseJsonError, -} from '@aws-amplify/core/internals/aws-client-utils'; - -import { assertServiceError } from '../../../../../errors/utils/assertServiceError'; -import { AuthError } from '../../../../../errors/AuthError'; - -import { - buildHttpRpcRequest, - cognitoUserPoolTransferHandler, - defaultConfig, - getSharedHeaders, -} from './base'; -import type { - AssociateSoftwareTokenCommandInput as AssociateSoftwareTokenInput, - AssociateSoftwareTokenCommandOutput as AssociateSoftwareTokenOutput, - ChangePasswordCommandInput as ChangePasswordInput, - ChangePasswordCommandOutput as ChangePasswordOutput, - ConfirmDeviceCommandInput as ConfirmDeviceInput, - ConfirmDeviceCommandOutput as ConfirmDeviceOutput, - ConfirmForgotPasswordCommandInput as ConfirmForgotPasswordInput, - ConfirmForgotPasswordCommandOutput as ConfirmForgotPasswordOutput, - ConfirmSignUpCommandInput as ConfirmSignUpInput, - ConfirmSignUpCommandOutput as ConfirmSignUpOutput, - DeleteUserAttributesCommandInput as DeleteUserAttributesInput, - DeleteUserAttributesCommandOutput as DeleteUserAttributesOutput, - DeleteUserCommandInput as DeleteUserInput, - DeleteUserCommandOutput as DeleteUserOutput, - ForgetDeviceCommandInput as ForgetDeviceInput, - ForgetDeviceCommandOutput as ForgetDeviceOutput, - ForgotPasswordCommandInput as ForgotPasswordInput, - ForgotPasswordCommandOutput as ForgotPasswordOutput, - GetUserAttributeVerificationCodeCommandInput as GetUserAttributeVerificationCodeInput, - GetUserAttributeVerificationCodeCommandOutput as GetUserAttributeVerificationCodeOutput, - GetUserCommandInput as GetUserInput, - GetUserCommandOutput as GetUserOutput, - GlobalSignOutCommandInput as GlobalSignOutInput, - GlobalSignOutCommandOutput as GlobalSignOutOutput, - InitiateAuthCommandInput as InitiateAuthInput, - InitiateAuthCommandOutput as InitiateAuthOutput, - ListDevicesCommandInput as ListDevicesInput, - ListDevicesCommandOutput as ListDevicesOutput, - ResendConfirmationCodeCommandInput as ResendConfirmationCodeInput, - ResendConfirmationCodeCommandOutput as ResendConfirmationCodeOutput, - RespondToAuthChallengeCommandInput as RespondToAuthChallengeInput, - RespondToAuthChallengeCommandOutput as RespondToAuthChallengeOutput, - SetUserMFAPreferenceCommandInput as SetUserMFAPreferenceInput, - SetUserMFAPreferenceCommandOutput as SetUserMFAPreferenceOutput, - SignUpCommandInput as SignUpInput, - SignUpCommandOutput as SignUpOutput, - UpdateDeviceStatusCommandInput as UpdateDeviceStatusInput, - UpdateDeviceStatusCommandOutput as UpdateDeviceStatusOutput, - UpdateUserAttributesCommandInput as UpdateUserAttributesInput, - UpdateUserAttributesCommandOutput as UpdateUserAttributesOutput, - VerifySoftwareTokenCommandInput as VerifySoftwareTokenInput, - VerifySoftwareTokenCommandOutput as VerifySoftwareTokenOutput, - VerifyUserAttributeCommandInput as VerifyUserAttributeInput, - VerifyUserAttributeCommandOutput as VerifyUserAttributeOutput, -} from './types'; - -interface RevokeTokenInput { - Token: string; - ClientId: string; -} - -type RevokeTokenOutput = Record; - -type ClientOperation = - | 'SignUp' - | 'ConfirmSignUp' - | 'ForgotPassword' - | 'ConfirmForgotPassword' - | 'InitiateAuth' - | 'RespondToAuthChallenge' - | 'ResendConfirmationCode' - | 'VerifySoftwareToken' - | 'AssociateSoftwareToken' - | 'SetUserMFAPreference' - | 'GetUser' - | 'ChangePassword' - | 'ConfirmDevice' - | 'ForgetDevice' - | 'DeleteUser' - | 'GetUserAttributeVerificationCode' - | 'GlobalSignOut' - | 'UpdateUserAttributes' - | 'VerifyUserAttribute' - | 'DeleteUserAttributes' - | 'UpdateDeviceStatus' - | 'ListDevices' - | 'RevokeToken'; - -const buildUserPoolSerializer = - (operation: ClientOperation) => - (input: Input, endpoint: Endpoint): HttpRequest => { - const headers = getSharedHeaders(operation); - const body = JSON.stringify(input); - - return buildHttpRpcRequest(endpoint, headers, body); - }; - -const buildUserPoolDeserializer = (): (( - response: HttpResponse, -) => Promise) => { - return async (response: HttpResponse): Promise => { - if (response.statusCode >= 300) { - const error = await parseJsonError(response); - assertServiceError(error); - throw new AuthError({ name: error.name, message: error.message }); - } else { - const body = await parseJsonBody(response); - - return body; - } - }; -}; - -const handleEmptyResponseDeserializer = (): (( - response: HttpResponse, -) => Promise) => { - return async (response: HttpResponse): Promise => { - if (response.statusCode >= 300) { - const error = await parseJsonError(response); - assertServiceError(error); - throw new AuthError({ name: error.name, message: error.message }); - } else { - return undefined as any; - } - }; -}; - -export const initiateAuth = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('InitiateAuth'), - buildUserPoolDeserializer(), - defaultConfig, -); - -export const revokeToken = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('RevokeToken'), - buildUserPoolDeserializer(), - defaultConfig, -); - -export const signUp = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('SignUp'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const confirmSignUp = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('ConfirmSignUp'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const forgotPassword = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('ForgotPassword'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const confirmForgotPassword = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('ConfirmForgotPassword'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const respondToAuthChallenge = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer( - 'RespondToAuthChallenge', - ), - buildUserPoolDeserializer(), - defaultConfig, -); -export const resendConfirmationCode = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer( - 'ResendConfirmationCode', - ), - buildUserPoolDeserializer(), - defaultConfig, -); -export const verifySoftwareToken = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('VerifySoftwareToken'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const associateSoftwareToken = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer( - 'AssociateSoftwareToken', - ), - buildUserPoolDeserializer(), - defaultConfig, -); -export const setUserMFAPreference = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('SetUserMFAPreference'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const getUser = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('GetUser'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const changePassword = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('ChangePassword'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const confirmDevice = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('ConfirmDevice'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const forgetDevice = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('ForgetDevice'), - handleEmptyResponseDeserializer(), - defaultConfig, -); -export const deleteUser = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('DeleteUser'), - handleEmptyResponseDeserializer(), - defaultConfig, -); -export const getUserAttributeVerificationCode = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer( - 'GetUserAttributeVerificationCode', - ), - buildUserPoolDeserializer(), - defaultConfig, -); -export const globalSignOut = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('GlobalSignOut'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const updateUserAttributes = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('UpdateUserAttributes'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const verifyUserAttribute = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('VerifyUserAttribute'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const updateDeviceStatus = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('UpdateDeviceStatus'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const listDevices = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('ListDevices'), - buildUserPoolDeserializer(), - defaultConfig, -); -export const deleteUserAttributes = composeServiceApi( - cognitoUserPoolTransferHandler, - buildUserPoolSerializer('DeleteUserAttributes'), - buildUserPoolDeserializer(), - defaultConfig, -); diff --git a/packages/auth/src/providers/cognito/utils/clients/base.ts b/packages/auth/src/providers/cognito/utils/clients/base.ts deleted file mode 100644 index a6a5fb6aca0..00000000000 --- a/packages/auth/src/providers/cognito/utils/clients/base.ts +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -import { - Endpoint, - EndpointResolverOptions, - Headers, - HttpRequest, - HttpResponse, - Middleware, - getDnsSuffix, - getRetryDecider, - jitteredBackoff, - parseJsonError, - unauthenticatedHandler, -} from '@aws-amplify/core/internals/aws-client-utils'; -import { - AmplifyUrl, - getAmplifyUserAgent, -} from '@aws-amplify/core/internals/utils'; -import { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers'; - -/** - * The service name used to sign requests if the API requires authentication. - */ -const SERVICE_NAME = 'cognito-idp'; - -/** - * The endpoint resolver function that returns the endpoint URL for a given region. - */ -const endpointResolver = ({ region }: EndpointResolverOptions) => ({ - url: new AmplifyUrl( - `https://${SERVICE_NAME}.${region}.${getDnsSuffix(region)}`, - ), -}); - -/** - * A Cognito Identity-specific middleware that disables caching for all requests. - */ -const disableCacheMiddlewareFactory: Middleware< - HttpRequest, - HttpResponse, - Record -> = () => (next, _) => - async function disableCacheMiddleware(request) { - request.headers['cache-control'] = 'no-store'; - - return next(request); - }; - -/** - * A Cognito Identity-specific transfer handler that does NOT sign requests, and - * disables caching. - * - * @internal - */ -export const cognitoUserPoolTransferHandler = composeTransferHandler< - [Parameters[0]], - HttpRequest, - HttpResponse, - typeof unauthenticatedHandler ->(unauthenticatedHandler, [disableCacheMiddlewareFactory]); - -/** - * @internal - */ -export const defaultConfig = { - service: SERVICE_NAME, - endpointResolver, - retryDecider: getRetryDecider(parseJsonError), - computeDelay: jitteredBackoff, - userAgentValue: getAmplifyUserAgent(), -}; - -/** - * @internal - */ -export const getSharedHeaders = (operation: string): Headers => ({ - 'content-type': 'application/x-amz-json-1.1', - 'x-amz-target': `AWSCognitoIdentityProviderService.${operation}`, -}); - -/** - * @internal - */ -export const buildHttpRpcRequest = ( - { url }: Endpoint, - headers: Headers, - body: any, -): HttpRequest => ({ - headers, - url, - body, - method: 'POST', -}); diff --git a/packages/auth/src/providers/cognito/utils/refreshAuthTokens.ts b/packages/auth/src/providers/cognito/utils/refreshAuthTokens.ts index 6c3df620492..01f35a40b2b 100644 --- a/packages/auth/src/providers/cognito/utils/refreshAuthTokens.ts +++ b/packages/auth/src/providers/cognito/utils/refreshAuthTokens.ts @@ -9,10 +9,11 @@ import { } from '@aws-amplify/core/internals/utils'; import { CognitoAuthTokens, TokenRefresher } from '../tokenProvider/types'; -import { initiateAuth } from '../utils/clients/CognitoIdentityProvider'; -import { getRegion } from '../utils/clients/CognitoIdentityProvider/utils'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; import { assertAuthTokensWithRefreshToken } from '../utils/types'; import { AuthError } from '../../../errors/AuthError'; +import { createInitiateAuthClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; import { getUserContextData } from './userContextData'; @@ -26,7 +27,8 @@ const refreshAuthTokensFunction: TokenRefresher = async ({ username: string; }): Promise => { assertTokenProviderConfig(authConfig?.Cognito); - const region = getRegion(authConfig.Cognito.userPoolId); + const { userPoolId, userPoolClientId, userPoolEndpoint } = authConfig.Cognito; + const region = getRegionFromUserPoolId(userPoolId); assertAuthTokensWithRefreshToken(tokens); const refreshTokenString = tokens.refreshToken; @@ -39,14 +41,20 @@ const refreshAuthTokensFunction: TokenRefresher = async ({ const UserContextData = getUserContextData({ username, - userPoolId: authConfig.Cognito.userPoolId, - userPoolClientId: authConfig.Cognito.userPoolClientId, + userPoolId, + userPoolClientId, + }); + + const initiateAuth = createInitiateAuthClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), }); const { AuthenticationResult } = await initiateAuth( { region }, { - ClientId: authConfig?.Cognito?.userPoolClientId, + ClientId: userPoolClientId, AuthFlow: 'REFRESH_TOKEN_AUTH', AuthParameters, UserContextData, diff --git a/packages/auth/src/providers/cognito/utils/signInHelpers.ts b/packages/auth/src/providers/cognito/utils/signInHelpers.ts index 13edcd84e62..ef4c1422bf3 100644 --- a/packages/auth/src/providers/cognito/utils/signInHelpers.ts +++ b/packages/auth/src/providers/cognito/utils/signInHelpers.ts @@ -31,15 +31,14 @@ import { USER_ALREADY_AUTHENTICATED_EXCEPTION } from '../../../errors/constants' import { getCurrentUser } from '../apis/getCurrentUser'; import { AuthTokenOrchestrator, DeviceMetadata } from '../tokenProvider/types'; import { getAuthUserAgentValue } from '../../../utils'; - -import { signInStore } from './signInStore'; import { - associateSoftwareToken, - confirmDevice, - initiateAuth, - respondToAuthChallenge, - verifySoftwareToken, -} from './clients/CognitoIdentityProvider'; + createAssociateSoftwareTokenClient, + createConfirmDeviceClient, + createInitiateAuthClient, + createRespondToAuthChallengeClient, + createVerifySoftwareTokenClient, +} from '../../../foundation/factories/serviceClients/cognitoIdentityProvider'; +import { createCognitoUserPoolEndpointResolver } from '../factories'; import { ChallengeName, ChallengeParameters, @@ -49,8 +48,10 @@ import { NewDeviceMetadataType, RespondToAuthChallengeCommandInput, RespondToAuthChallengeCommandOutput, -} from './clients/CognitoIdentityProvider/types'; -import { getRegion } from './clients/CognitoIdentityProvider/utils'; +} from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; +import { getRegionFromUserPoolId } from '../../../foundation/parsers'; + +import { signInStore } from './signInStore'; import { assertDeviceMetadata } from './types'; import { getAuthenticationHelper, @@ -92,7 +93,7 @@ export async function handleCustomChallenge({ }: HandleAuthChallengeRequest & { tokenOrchestrator: AuthTokenOrchestrator; }): Promise { - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; const challengeResponses: Record = { USERNAME: username, ANSWER: challengeResponse, @@ -118,9 +119,14 @@ export async function handleCustomChallenge({ UserContextData, }; + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const response = await respondToAuthChallenge( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn), }, jsonReq, @@ -147,14 +153,18 @@ export async function handleMFASetupChallenge({ deviceName, config, }: HandleAuthChallengeRequest): Promise { - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; const challengeResponses = { USERNAME: username, }; - + const verifySoftwareToken = createVerifySoftwareTokenClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const { Session } = await verifySoftwareToken( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn), }, { @@ -177,7 +187,16 @@ export async function handleMFASetupChallenge({ ClientId: userPoolClientId, }; - return respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReq); + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + + return respondToAuthChallenge( + { region: getRegionFromUserPoolId(userPoolId) }, + jsonReq, + ); } export async function handleSelectMFATypeChallenge({ @@ -187,7 +206,7 @@ export async function handleSelectMFATypeChallenge({ session, config, }: HandleAuthChallengeRequest): Promise { - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; assertValidationError( challengeResponse === 'TOTP' || challengeResponse === 'SMS', AuthValidationErrorCode.IncorrectMFAMethod, @@ -213,9 +232,15 @@ export async function handleSelectMFATypeChallenge({ UserContextData, }; + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + return respondToAuthChallenge( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn), }, jsonReq, @@ -229,7 +254,7 @@ export async function handleSMSMFAChallenge({ username, config, }: HandleAuthChallengeRequest): Promise { - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; const challengeResponses = { USERNAME: username, SMS_MFA_CODE: challengeResponse, @@ -248,9 +273,15 @@ export async function handleSMSMFAChallenge({ UserContextData, }; + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + return respondToAuthChallenge( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn), }, jsonReq, @@ -263,7 +294,7 @@ export async function handleSoftwareTokenMFAChallenge({ username, config, }: HandleAuthChallengeRequest): Promise { - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; const challengeResponses = { USERNAME: username, SOFTWARE_TOKEN_MFA_CODE: challengeResponse, @@ -284,9 +315,15 @@ export async function handleSoftwareTokenMFAChallenge({ UserContextData, }; + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + return respondToAuthChallenge( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn), }, jsonReq, @@ -300,7 +337,7 @@ export async function handleCompleteNewPasswordChallenge({ requiredAttributes, config, }: HandleAuthChallengeRequest): Promise { - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; const challengeResponses = { ...createAttributes(requiredAttributes), NEW_PASSWORD: challengeResponse, @@ -322,9 +359,15 @@ export async function handleCompleteNewPasswordChallenge({ UserContextData, }; + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + return respondToAuthChallenge( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn), }, jsonReq, @@ -338,7 +381,7 @@ export async function handleUserPasswordAuthFlow( config: CognitoUserPoolConfig, tokenOrchestrator: AuthTokenOrchestrator, ): Promise { - const { userPoolClientId, userPoolId } = config; + const { userPoolClientId, userPoolId, userPoolEndpoint } = config; const authParameters: Record = { USERNAME: username, PASSWORD: password, @@ -363,9 +406,15 @@ export async function handleUserPasswordAuthFlow( UserContextData, }; + const initiateAuth = createInitiateAuthClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + const response = await initiateAuth( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.SignIn), }, jsonReq, @@ -397,7 +446,7 @@ export async function handleUserSRPAuthFlow( config: CognitoUserPoolConfig, tokenOrchestrator: AuthTokenOrchestrator, ): Promise { - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; const userPoolName = userPoolId?.split('_')[1] || ''; const authenticationHelper = await getAuthenticationHelper(userPoolName); @@ -420,9 +469,15 @@ export async function handleUserSRPAuthFlow( UserContextData, }; + const initiateAuth = createInitiateAuthClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + const resp = await initiateAuth( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.SignIn), }, jsonReq, @@ -453,7 +508,7 @@ export async function handleCustomAuthFlowWithoutSRP( config: CognitoUserPoolConfig, tokenOrchestrator: AuthTokenOrchestrator, ): Promise { - const { userPoolClientId, userPoolId } = config; + const { userPoolClientId, userPoolId, userPoolEndpoint } = config; const authParameters: Record = { USERNAME: username, }; @@ -477,9 +532,15 @@ export async function handleCustomAuthFlowWithoutSRP( UserContextData, }; + const initiateAuth = createInitiateAuthClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + const response = await initiateAuth( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.SignIn), }, jsonReq, @@ -506,7 +567,7 @@ export async function handleCustomSRPAuthFlow( tokenOrchestrator: AuthTokenOrchestrator, ) { assertTokenProviderConfig(config); - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; const userPoolName = userPoolId?.split('_')[1] || ''; const authenticationHelper = await getAuthenticationHelper(userPoolName); @@ -531,10 +592,16 @@ export async function handleCustomSRPAuthFlow( UserContextData, }; + const initiateAuth = createInitiateAuthClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + const { ChallengeParameters: challengeParameters, Session: session } = await initiateAuth( { - region: getRegion(userPoolId), + region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.SignIn), }, jsonReq, @@ -565,7 +632,7 @@ async function handleDeviceSRPAuth({ session, tokenOrchestrator, }: HandleDeviceSRPInput): Promise { - const { userPoolId } = config; + const { userPoolId, userPoolEndpoint } = config; const clientId = config.userPoolClientId; const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username); assertDeviceMetadata(deviceMetadata); @@ -585,9 +652,14 @@ async function handleDeviceSRPAuth({ ClientMetadata: clientMetadata, Session: session, }; + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); const { ChallengeParameters: respondedChallengeParameters, Session } = await respondToAuthChallenge( - { region: getRegion(userPoolId) }, + { region: getRegionFromUserPoolId(userPoolId) }, jsonReqResponseChallenge, ); @@ -608,7 +680,7 @@ async function handleDevicePasswordVerifier( clientMetadata: ClientMetadata | undefined, session: string | undefined, authenticationHelper: AuthenticationHelper, - { userPoolId, userPoolClientId }: CognitoUserPoolConfig, + { userPoolId, userPoolClientId, userPoolEndpoint }: CognitoUserPoolConfig, tokenOrchestrator?: AuthTokenOrchestrator, ): Promise { const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username); @@ -654,9 +726,14 @@ async function handleDevicePasswordVerifier( ClientMetadata: clientMetadata, UserContextData, }; + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); return respondToAuthChallenge( - { region: getRegion(userPoolId) }, + { region: getRegionFromUserPoolId(userPoolId) }, jsonReqResponseChallenge, ); } @@ -670,7 +747,7 @@ export async function handlePasswordVerifierChallenge( config: CognitoUserPoolConfig, tokenOrchestrator: AuthTokenOrchestrator, ): Promise { - const { userPoolId, userPoolClientId } = config; + const { userPoolId, userPoolClientId, userPoolEndpoint } = config; const userPoolName = userPoolId?.split('_')[1] || ''; const serverBValue = new (BigInteger as any)(challengeParameters?.SRP_B, 16); const salt = new (BigInteger as any)(challengeParameters?.SALT, 16); @@ -722,8 +799,14 @@ export async function handlePasswordVerifierChallenge( UserContextData, }; + const respondToAuthChallenge = createRespondToAuthChallengeClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); + const response = await respondToAuthChallenge( - { region: getRegion(userPoolId) }, + { region: getRegionFromUserPoolId(userPoolId) }, jsonReqResponseChallenge, ); @@ -766,8 +849,14 @@ export async function getSignInResult(params: { parseMFATypes(challengeParameters.MFAS_CAN_SETUP), )}`, }); + + const associateSoftwareToken = createAssociateSoftwareTokenClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: authConfig.userPoolEndpoint, + }), + }); const { Session, SecretCode: secretCode } = await associateSoftwareToken( - { region: getRegion(authConfig.userPoolId) }, + { region: getRegionFromUserPoolId(authConfig.userPoolId) }, { Session: signInSession, }, @@ -1037,11 +1126,17 @@ export async function assertUserNotAuthenticated() { * * @returns DeviceMetadata | undefined */ -export async function getNewDeviceMetatada( - userPoolId: string, - newDeviceMetadata?: NewDeviceMetadataType, - accessToken?: string, -): Promise { +export async function getNewDeviceMetadata({ + userPoolId, + userPoolEndpoint, + newDeviceMetadata, + accessToken, +}: { + userPoolId: string; + userPoolEndpoint: string | undefined; + newDeviceMetadata?: NewDeviceMetadataType; + accessToken?: string; +}): Promise { if (!newDeviceMetadata) return undefined; const userPoolName = userPoolId.split('_')[1] || ''; const authenticationHelper = await getAuthenticationHelper(userPoolName); @@ -1069,8 +1164,13 @@ export async function getNewDeviceMetatada( const randomPassword = authenticationHelper.getRandomPassword(); try { + const confirmDevice = createConfirmDeviceClient({ + endpointResolver: createCognitoUserPoolEndpointResolver({ + endpointOverride: userPoolEndpoint, + }), + }); await confirmDevice( - { region: getRegion(userPoolId) }, + { region: getRegionFromUserPoolId(userPoolId) }, { AccessToken: accessToken, DeviceName: await getDeviceName(), diff --git a/packages/auth/src/providers/cognito/utils/signInStore.ts b/packages/auth/src/providers/cognito/utils/signInStore.ts index 0028ab71067..fd07cb15e6d 100644 --- a/packages/auth/src/providers/cognito/utils/signInStore.ts +++ b/packages/auth/src/providers/cognito/utils/signInStore.ts @@ -2,8 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { CognitoAuthSignInDetails } from '../types'; - -import { ChallengeName } from './clients/CognitoIdentityProvider/types'; +import { ChallengeName } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; // TODO: replace all of this implementation with state machines interface SignInState { diff --git a/packages/auth/src/providers/cognito/utils/signUpHelpers.ts b/packages/auth/src/providers/cognito/utils/signUpHelpers.ts index 73e59c78406..8ab2943ce2a 100644 --- a/packages/auth/src/providers/cognito/utils/signUpHelpers.ts +++ b/packages/auth/src/providers/cognito/utils/signUpHelpers.ts @@ -10,8 +10,7 @@ import { AutoSignInCallback } from '../../../types/models'; import { AuthError } from '../../../errors/AuthError'; import { resetAutoSignIn, setAutoSignIn } from '../apis/autoSignIn'; import { AUTO_SIGN_IN_EXCEPTION } from '../../../errors/constants'; - -import { SignUpCommandOutput } from './clients/CognitoIdentityProvider/types'; +import { SignUpCommandOutput } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; const MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000; diff --git a/scripts/dts-bundler/dts-bundler.config.js b/scripts/dts-bundler/dts-bundler.config.js index 77671630aeb..90210b58cee 100644 --- a/scripts/dts-bundler/dts-bundler.config.js +++ b/scripts/dts-bundler/dts-bundler.config.js @@ -44,12 +44,15 @@ const authPackageSrcClientsPath = join( 'packages', 'auth', 'src', - 'providers', - 'cognito', - 'utils', - 'clients', + 'foundation', + 'factories', + 'serviceClients', + 'cognitoIdentityProvider', + 'types', ); +// packages/auth/src/foundation/factories/serviceClients/cognitoIdentityProvider/types/Sdk.ts + /** @type import('dts-bundle-generator/config-schema').BundlerConfig */ const config = { compilationOptions: { @@ -84,8 +87,7 @@ const config = { filePath: './cognito-identity-provider.d.ts', outFile: join( authPackageSrcClientsPath, - 'CognitoIdentityProvider', - 'types.ts', + 'Sdk.ts', ), libraries: { inlinedLibraries: ['@aws-sdk/client-cognito-identity-provider'], From e2e3482f421f89de9a50eb85a7c945e73cbabd2e Mon Sep 17 00:00:00 2001 From: Chris F <5827964+cshfang@users.noreply.github.com> Date: Thu, 12 Sep 2024 10:59:59 -0700 Subject: [PATCH 32/50] chore: Update GraphQL configuration shape to expect AI routes (#13799) * chore: Update GraphQL configuration shape to expect AI routes * Bump minimum data-schema version * Bump size limit --- packages/api-graphql/package.json | 2 +- packages/aws-amplify/package.json | 2 +- packages/core/src/singleton/API/types.ts | 45 ++++++++++++++++++++---- yarn.lock | 43 +++++++++++++++++----- 4 files changed, 76 insertions(+), 16 deletions(-) diff --git a/packages/api-graphql/package.json b/packages/api-graphql/package.json index ae98edafa95..7a6ed7ead52 100644 --- a/packages/api-graphql/package.json +++ b/packages/api-graphql/package.json @@ -86,7 +86,7 @@ "dependencies": { "@aws-amplify/api-rest": "4.0.47", "@aws-amplify/core": "6.4.0", - "@aws-amplify/data-schema": "^1.0.0", + "@aws-amplify/data-schema": "^1.5.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", "rxjs": "^7.8.1", diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index ceb48b8fa23..23885357eb9 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -335,7 +335,7 @@ "name": "[API] generateClient (AppSync)", "path": "./dist/esm/api/index.mjs", "import": "{ generateClient }", - "limit": "41.5 kB" + "limit": "43.1 kB" }, { "name": "[API] REST API handlers", diff --git a/packages/core/src/singleton/API/types.ts b/packages/core/src/singleton/API/types.ts index 20dd5bd3dfc..3909d264180 100644 --- a/packages/core/src/singleton/API/types.ts +++ b/packages/core/src/singleton/API/types.ts @@ -111,6 +111,8 @@ export interface ModelIntrospectionSchema { queries?: CustomOperations; mutations?: CustomOperations; subscriptions?: CustomOperations; + conversations?: SchemaConversationRoutes; + generations?: SchemaGenerationRoutes; } /** @@ -120,6 +122,27 @@ export type SchemaModels = Record; export type SchemaNonModels = Record; export type SchemaEnums = Record; export type CustomOperations = Record; +type SchemaConversationRoutes = Record; +type SchemaGenerationRoutes = Record; + +interface SchemaConversationRoute { + name: string; + models: SchemaModels; + nonModels: SchemaNonModels; + enums: SchemaEnums; + conversation: SchemaConversation; + message: SchemaConversationMessage; +} + +interface SchemaConversation { + modelName: string; +} + +interface SchemaConversationMessage { + modelName: string; + subscribe: CustomOperation; + send: CustomOperation; +} export interface SchemaModel { name: string; @@ -164,7 +187,7 @@ export type CustomOperationArguments = Record; export interface CustomOperationArgument { name: string; - type: FieldType; + type: InputFieldType; isArray: boolean; isRequired: boolean; isArrayNullable?: boolean; @@ -192,7 +215,15 @@ export interface NonModelFieldType { nonModel: string; } -export type FieldType = +interface EnumType { + enum: string; +} + +interface InputType { + input: string; +} + +type ScalarType = | 'ID' | 'String' | 'Int' @@ -206,10 +237,12 @@ export type FieldType = | 'AWSIPAddress' | 'Boolean' | 'AWSJSON' - | 'AWSPhone' - | { enum: string } - | ModelFieldType - | NonModelFieldType; + | 'AWSPhone'; + +type FieldType = ScalarType | EnumType | ModelFieldType | NonModelFieldType; + +type InputFieldType = ScalarType | EnumType | InputType; + export type FieldAttribute = ModelAttribute; /** diff --git a/yarn.lock b/yarn.lock index e3e9b5f2400..93e4fffdea3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,13 +18,15 @@ graphql "15.8.0" rxjs "^7.8.1" -"@aws-amplify/data-schema@^1.0.0": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@aws-amplify/data-schema/-/data-schema-1.3.10.tgz#e83ef1d8d11efb821b282e499c373f64f3bf60ae" - integrity sha512-rUo6wb+DO6aGCSeSiB8wb92O4cEuN4sZBXn7TgqaYc8Bv4HutrLaIlptgXCYJMkaAp/h9rxyi6wIFJ7bEyD/6g== +"@aws-amplify/data-schema@^1.5.0": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@aws-amplify/data-schema/-/data-schema-1.5.1.tgz#d9f2e263e10f7bd8dc9c1908a4ac0e795e581b7c" + integrity sha512-hFDqqwHqdoFazmvGOApCX8kqrdoum9YJikmAQN5tP2sgnCT++lqznFw2F4PPqDJRxhQP1AYuwhbbRBvGLMbs/w== dependencies: "@aws-amplify/data-schema-types" "*" + "@smithy/util-base64" "^3.0.0" "@types/aws-lambda" "^8.10.134" + "@types/json-schema" "^7.0.15" rxjs "^7.8.1" "@aws-crypto/crc32@3.0.0": @@ -5169,7 +5171,7 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -14505,7 +14507,16 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -14583,7 +14594,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -14597,6 +14608,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -15734,7 +15752,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -15761,6 +15779,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 59183604455df9e1bf1f0fd53f59b8c2135c5367 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 11:20:05 -0700 Subject: [PATCH 33/50] chore(deps): bump serve-static from 1.15.0 to 1.16.2 (#13805) Bumps [serve-static](https://github.com/expressjs/serve-static) from 1.15.0 to 1.16.2. - [Release notes](https://github.com/expressjs/serve-static/releases) - [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md) - [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2) --- updated-dependencies: - dependency-name: serve-static dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 93e4fffdea3..68e83991cff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7515,6 +7515,11 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + encoding@^0.1.12, encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -14046,10 +14051,10 @@ semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.3.4, semver@^7.3.5, semve resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== dependencies: debug "2.6.9" depd "2.0.0" @@ -14078,14 +14083,14 @@ serialize-javascript@^6.0.1: randombytes "^2.1.0" serve-static@^1.13.1: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== dependencies: - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.18.0" + send "0.19.0" set-blocking@^2.0.0: version "2.0.0" From a59ae68c7de9b176d48640a4107e6425176d94bd Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Mon, 16 Sep 2024 22:55:37 +0000 Subject: [PATCH 34/50] chore(release): Set core metadata [skip release] --- packages/core/metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/metadata b/packages/core/metadata index 2243de0562d..ed62dfbf234 100644 --- a/packages/core/metadata +++ b/packages/core/metadata @@ -1 +1 @@ -af85cb83f +4cf088c87 From 1c379970ce9e32c402b0c23f207c246eb8ffac24 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Mon, 16 Sep 2024 22:55:52 +0000 Subject: [PATCH 35/50] chore(release): Publish [skip release] - @aws-amplify/adapter-nextjs@1.2.18 - @aws-amplify/analytics@7.0.48 - @aws-amplify/api@6.0.50 - @aws-amplify/api-graphql@4.3.1 - @aws-amplify/api-rest@4.0.48 - @aws-amplify/auth@6.4.1 - aws-amplify@6.6.1 - @aws-amplify/core@6.4.1 - @aws-amplify/datastore@5.0.50 - @aws-amplify/datastore-storage-adapter@2.1.50 - @aws-amplify/geo@3.0.48 - @aws-amplify/interactions@6.0.47 - @aws-amplify/notifications@2.0.48 - @aws-amplify/predictions@6.1.23 - @aws-amplify/pubsub@6.1.23 - @aws-amplify/storage@6.6.6 - tsc-compliance-test@0.1.53 --- packages/adapter-nextjs/CHANGELOG.md | 4 ++++ packages/adapter-nextjs/package.json | 4 ++-- packages/analytics/CHANGELOG.md | 4 ++++ packages/analytics/package.json | 4 ++-- packages/api-graphql/CHANGELOG.md | 4 ++++ packages/api-graphql/package.json | 6 +++--- packages/api-rest/CHANGELOG.md | 4 ++++ packages/api-rest/package.json | 4 ++-- packages/api/CHANGELOG.md | 4 ++++ packages/api/package.json | 6 +++--- packages/auth/CHANGELOG.md | 6 ++++++ packages/auth/package.json | 4 ++-- packages/aws-amplify/CHANGELOG.md | 4 ++++ packages/aws-amplify/package.json | 16 ++++++++-------- packages/core/CHANGELOG.md | 4 ++++ packages/core/package.json | 2 +- packages/datastore-storage-adapter/CHANGELOG.md | 4 ++++ packages/datastore-storage-adapter/package.json | 6 +++--- packages/datastore/CHANGELOG.md | 4 ++++ packages/datastore/package.json | 6 +++--- packages/geo/CHANGELOG.md | 4 ++++ packages/geo/package.json | 4 ++-- packages/interactions/CHANGELOG.md | 4 ++++ packages/interactions/package.json | 4 ++-- packages/notifications/CHANGELOG.md | 4 ++++ packages/notifications/package.json | 4 ++-- packages/predictions/CHANGELOG.md | 4 ++++ packages/predictions/package.json | 6 +++--- packages/pubsub/CHANGELOG.md | 4 ++++ packages/pubsub/package.json | 6 +++--- packages/storage/CHANGELOG.md | 4 ++++ packages/storage/package.json | 4 ++-- scripts/tsc-compliance-test/CHANGELOG.md | 4 ++++ scripts/tsc-compliance-test/package.json | 4 ++-- 34 files changed, 115 insertions(+), 45 deletions(-) diff --git a/packages/adapter-nextjs/CHANGELOG.md b/packages/adapter-nextjs/CHANGELOG.md index f6189b7fd38..0ca250f9696 100644 --- a/packages/adapter-nextjs/CHANGELOG.md +++ b/packages/adapter-nextjs/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.18](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.17...@aws-amplify/adapter-nextjs@1.2.18) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/adapter-nextjs + ## [1.2.17](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.16...@aws-amplify/adapter-nextjs@1.2.17) (2024-09-04) **Note:** Version bump only for package @aws-amplify/adapter-nextjs diff --git a/packages/adapter-nextjs/package.json b/packages/adapter-nextjs/package.json index ca1d9909000..e25c727729a 100644 --- a/packages/adapter-nextjs/package.json +++ b/packages/adapter-nextjs/package.json @@ -1,7 +1,7 @@ { "author": "Amazon Web Services", "name": "@aws-amplify/adapter-nextjs", - "version": "1.2.17", + "version": "1.2.18", "description": "The adapter for the supporting of using Amplify APIs in Next.js.", "peerDependencies": { "aws-amplify": "^6.0.7", @@ -16,7 +16,7 @@ "@types/node": "^20.3.1", "@types/react": "^18.2.13", "@types/react-dom": "^18.2.6", - "aws-amplify": "6.6.0", + "aws-amplify": "6.6.1", "jest-fetch-mock": "3.0.3", "next": ">= 13.5.0 < 15.0.0", "typescript": "5.0.2" diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md index 18dfc9a627c..6a50cf79952 100644 --- a/packages/analytics/CHANGELOG.md +++ b/packages/analytics/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.47...@aws-amplify/analytics@7.0.48) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/analytics + ## [7.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.46...@aws-amplify/analytics@7.0.47) (2024-09-04) **Note:** Version bump only for package @aws-amplify/analytics diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 49e5b49d96d..402903662bc 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/analytics", - "version": "7.0.47", + "version": "7.0.48", "description": "Analytics category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -103,7 +103,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "@aws-amplify/react-native": "1.1.5", "@aws-sdk/types": "3.398.0", "typescript": "5.0.2" diff --git a/packages/api-graphql/CHANGELOG.md b/packages/api-graphql/CHANGELOG.md index 2635af8b137..50d375c51dc 100644 --- a/packages/api-graphql/CHANGELOG.md +++ b/packages/api-graphql/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.3.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.3.0...@aws-amplify/api-graphql@4.3.1) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/api-graphql + # [4.3.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.2.1...@aws-amplify/api-graphql@4.3.0) (2024-09-04) ### Features diff --git a/packages/api-graphql/package.json b/packages/api-graphql/package.json index 7a6ed7ead52..bcdbca151e6 100644 --- a/packages/api-graphql/package.json +++ b/packages/api-graphql/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api-graphql", - "version": "4.3.0", + "version": "4.3.1", "description": "Api-graphql category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -84,8 +84,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-rest": "4.0.47", - "@aws-amplify/core": "6.4.0", + "@aws-amplify/api-rest": "4.0.48", + "@aws-amplify/core": "6.4.1", "@aws-amplify/data-schema": "^1.5.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", diff --git a/packages/api-rest/CHANGELOG.md b/packages/api-rest/CHANGELOG.md index 378344c8fe6..dd1b12efeeb 100644 --- a/packages/api-rest/CHANGELOG.md +++ b/packages/api-rest/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.47...@aws-amplify/api-rest@4.0.48) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/api-rest + ## [4.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.46...@aws-amplify/api-rest@4.0.47) (2024-09-04) **Note:** Version bump only for package @aws-amplify/api-rest diff --git a/packages/api-rest/package.json b/packages/api-rest/package.json index 8a7874ad183..866d44b15b7 100644 --- a/packages/api-rest/package.json +++ b/packages/api-rest/package.json @@ -1,7 +1,7 @@ { "name": "@aws-amplify/api-rest", "private": false, - "version": "4.0.47", + "version": "4.0.48", "description": "Api-rest category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -87,7 +87,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" }, diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index e58e7bbd920..06518f7fceb 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.50](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.49...@aws-amplify/api@6.0.50) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/api + ## [6.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.48...@aws-amplify/api@6.0.49) (2024-09-04) **Note:** Version bump only for package @aws-amplify/api diff --git a/packages/api/package.json b/packages/api/package.json index 35451cfa83a..0358c4fa8b4 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api", - "version": "6.0.49", + "version": "6.0.50", "description": "Api category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -79,8 +79,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-graphql": "4.3.0", - "@aws-amplify/api-rest": "4.0.47", + "@aws-amplify/api-graphql": "4.3.1", + "@aws-amplify/api-rest": "4.0.48", "tslib": "^2.5.0" } } diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index 9441a03a56a..26daa0a88d1 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.4.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.4.0...@aws-amplify/auth@6.4.1) (2024-09-16) + +### Bug Fixes + +- **auth:** custom `userPoolEndpoint` cannot be applied on the server-side ([#13739](https://github.com/aws-amplify/amplify-js/issues/13739)) ([a76b594](https://github.com/aws-amplify/amplify-js/commit/a76b594562430a85fd37f00bb2788959f7a69d6a)) + # [6.4.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.3.17...@aws-amplify/auth@6.4.0) (2024-09-04) ### Features diff --git a/packages/auth/package.json b/packages/auth/package.json index 81032ed1b5e..91a8550df26 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/auth", - "version": "6.4.0", + "version": "6.4.1", "description": "Auth category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -97,7 +97,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "@aws-amplify/react-native": "1.1.5", "@jest/test-sequencer": "^29.7.0", "typescript": "5.0.2" diff --git a/packages/aws-amplify/CHANGELOG.md b/packages/aws-amplify/CHANGELOG.md index 50cf7bd31d8..d58b245aa88 100644 --- a/packages/aws-amplify/CHANGELOG.md +++ b/packages/aws-amplify/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.1](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.6.0...aws-amplify@6.6.1) (2024-09-16) + +**Note:** Version bump only for package aws-amplify + # [6.6.0](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.5.4...aws-amplify@6.6.0) (2024-09-04) ### Features diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 23885357eb9..5b37ee15f1d 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -1,6 +1,6 @@ { "name": "aws-amplify", - "version": "6.6.0", + "version": "6.6.1", "description": "AWS Amplify is a JavaScript library for Frontend and mobile developers building cloud-enabled applications.", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -276,13 +276,13 @@ "utils" ], "dependencies": { - "@aws-amplify/analytics": "7.0.47", - "@aws-amplify/api": "6.0.49", - "@aws-amplify/auth": "6.4.0", - "@aws-amplify/core": "6.4.0", - "@aws-amplify/datastore": "5.0.49", - "@aws-amplify/notifications": "2.0.47", - "@aws-amplify/storage": "6.6.5", + "@aws-amplify/analytics": "7.0.48", + "@aws-amplify/api": "6.0.50", + "@aws-amplify/auth": "6.4.1", + "@aws-amplify/core": "6.4.1", + "@aws-amplify/datastore": "5.0.50", + "@aws-amplify/notifications": "2.0.48", + "@aws-amplify/storage": "6.6.6", "tslib": "^2.5.0" }, "devDependencies": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index a067fe29edd..baabb8a4463 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.4.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.4.0...@aws-amplify/core@6.4.1) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/core + # [6.4.0](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.3.13...@aws-amplify/core@6.4.0) (2024-09-04) ### Features diff --git a/packages/core/package.json b/packages/core/package.json index 44e700c068d..395b6ab8a72 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/core", - "version": "6.4.0", + "version": "6.4.1", "description": "Core category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", diff --git a/packages/datastore-storage-adapter/CHANGELOG.md b/packages/datastore-storage-adapter/CHANGELOG.md index 938a74baa18..35263122fef 100644 --- a/packages/datastore-storage-adapter/CHANGELOG.md +++ b/packages/datastore-storage-adapter/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.50](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.49...@aws-amplify/datastore-storage-adapter@2.1.50) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + ## [2.1.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.48...@aws-amplify/datastore-storage-adapter@2.1.49) (2024-09-04) **Note:** Version bump only for package @aws-amplify/datastore-storage-adapter diff --git a/packages/datastore-storage-adapter/package.json b/packages/datastore-storage-adapter/package.json index cdfb7b16dfe..cb1d0bff460 100644 --- a/packages/datastore-storage-adapter/package.json +++ b/packages/datastore-storage-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore-storage-adapter", - "version": "2.1.49", + "version": "2.1.50", "description": "SQLite storage adapter for Amplify DataStore ", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -36,8 +36,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", - "@aws-amplify/datastore": "5.0.49", + "@aws-amplify/core": "6.4.1", + "@aws-amplify/datastore": "5.0.50", "@types/react-native-sqlite-storage": "5.0.1", "expo-file-system": "13.1.4", "expo-sqlite": "10.1.0", diff --git a/packages/datastore/CHANGELOG.md b/packages/datastore/CHANGELOG.md index 4ed6212011c..647ca27ef57 100644 --- a/packages/datastore/CHANGELOG.md +++ b/packages/datastore/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.50](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.49...@aws-amplify/datastore@5.0.50) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/datastore + ## [5.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.48...@aws-amplify/datastore@5.0.49) (2024-09-04) **Note:** Version bump only for package @aws-amplify/datastore diff --git a/packages/datastore/package.json b/packages/datastore/package.json index a5f9e320ba0..f26d11aa0f5 100644 --- a/packages/datastore/package.json +++ b/packages/datastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore", - "version": "5.0.49", + "version": "5.0.50", "description": "AppSyncLocal support for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -44,7 +44,7 @@ "src" ], "dependencies": { - "@aws-amplify/api": "6.0.49", + "@aws-amplify/api": "6.0.50", "buffer": "4.9.2", "idb": "5.0.6", "immer": "9.0.6", @@ -55,7 +55,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "@aws-amplify/react-native": "1.1.5", "@types/uuid-validate": "^0.0.1", "dexie": "3.2.2", diff --git a/packages/geo/CHANGELOG.md b/packages/geo/CHANGELOG.md index a0ec1fda10c..2ae355bd406 100644 --- a/packages/geo/CHANGELOG.md +++ b/packages/geo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.47...@aws-amplify/geo@3.0.48) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/geo + ## [3.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.46...@aws-amplify/geo@3.0.47) (2024-09-04) **Note:** Version bump only for package @aws-amplify/geo diff --git a/packages/geo/package.json b/packages/geo/package.json index 517bd975c51..23233578a10 100644 --- a/packages/geo/package.json +++ b/packages/geo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/geo", - "version": "3.0.47", + "version": "3.0.48", "description": "Geo category for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -76,7 +76,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/interactions/CHANGELOG.md b/packages/interactions/CHANGELOG.md index 4ec6748dccc..f3d2d37dd3e 100644 --- a/packages/interactions/CHANGELOG.md +++ b/packages/interactions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.46...@aws-amplify/interactions@6.0.47) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/interactions + ## [6.0.46](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.45...@aws-amplify/interactions@6.0.46) (2024-09-04) **Note:** Version bump only for package @aws-amplify/interactions diff --git a/packages/interactions/package.json b/packages/interactions/package.json index 916cf22ff5c..ce8c7520a27 100644 --- a/packages/interactions/package.json +++ b/packages/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/interactions", - "version": "6.0.46", + "version": "6.0.47", "description": "Interactions category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -81,7 +81,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "typescript": "^5.0.2" }, "size-limit": [ diff --git a/packages/notifications/CHANGELOG.md b/packages/notifications/CHANGELOG.md index ed1872cad49..0e51a59ed12 100644 --- a/packages/notifications/CHANGELOG.md +++ b/packages/notifications/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.47...@aws-amplify/notifications@2.0.48) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/notifications + ## [2.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.46...@aws-amplify/notifications@2.0.47) (2024-09-04) **Note:** Version bump only for package @aws-amplify/notifications diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 176dd2da556..528641f3932 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/notifications", - "version": "2.0.47", + "version": "2.0.48", "description": "Notifications category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -98,7 +98,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" } diff --git a/packages/predictions/CHANGELOG.md b/packages/predictions/CHANGELOG.md index ca05ca840e3..b70bca27c5f 100644 --- a/packages/predictions/CHANGELOG.md +++ b/packages/predictions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.23](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.22...@aws-amplify/predictions@6.1.23) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/predictions + ## [6.1.22](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.21...@aws-amplify/predictions@6.1.22) (2024-09-04) **Note:** Version bump only for package @aws-amplify/predictions diff --git a/packages/predictions/package.json b/packages/predictions/package.json index 4d605881b28..6063aa51752 100644 --- a/packages/predictions/package.json +++ b/packages/predictions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/predictions", - "version": "6.1.22", + "version": "6.1.23", "description": "Machine learning category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -43,7 +43,7 @@ "src" ], "dependencies": { - "@aws-amplify/storage": "6.6.5", + "@aws-amplify/storage": "6.6.6", "@aws-sdk/client-comprehend": "3.621.0", "@aws-sdk/client-polly": "3.621.0", "@aws-sdk/client-rekognition": "3.621.0", @@ -59,7 +59,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index c76f43577f2..1632301b2f4 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.23](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.22...@aws-amplify/pubsub@6.1.23) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/pubsub + ## [6.1.22](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.21...@aws-amplify/pubsub@6.1.22) (2024-09-04) **Note:** Version bump only for package @aws-amplify/pubsub diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 043eba118a2..8c17c353ed0 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/pubsub", - "version": "6.1.22", + "version": "6.1.23", "description": "Pubsub category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -73,7 +73,7 @@ "mqtt" ], "dependencies": { - "@aws-amplify/auth": "6.4.0", + "@aws-amplify/auth": "6.4.1", "buffer": "4.9.2", "graphql": "15.8.0", "rxjs": "^7.8.1", @@ -84,7 +84,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index 0abef255db5..34c8c61988b 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.6](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.5...@aws-amplify/storage@6.6.6) (2024-09-16) + +**Note:** Version bump only for package @aws-amplify/storage + ## [6.6.5](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.4...@aws-amplify/storage@6.6.5) (2024-09-04) **Note:** Version bump only for package @aws-amplify/storage diff --git a/packages/storage/package.json b/packages/storage/package.json index 5d426e7c0fe..78dd670db1d 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/storage", - "version": "6.6.5", + "version": "6.6.6", "description": "Storage category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -101,7 +101,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.0", + "@aws-amplify/core": "6.4.1", "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" } diff --git a/scripts/tsc-compliance-test/CHANGELOG.md b/scripts/tsc-compliance-test/CHANGELOG.md index 0ec07419208..db324d16ea5 100644 --- a/scripts/tsc-compliance-test/CHANGELOG.md +++ b/scripts/tsc-compliance-test/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.53](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.52...tsc-compliance-test@0.1.53) (2024-09-16) + +**Note:** Version bump only for package tsc-compliance-test + ## [0.1.52](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.51...tsc-compliance-test@0.1.52) (2024-09-04) **Note:** Version bump only for package tsc-compliance-test diff --git a/scripts/tsc-compliance-test/package.json b/scripts/tsc-compliance-test/package.json index 85be6d5064a..3e944ee7f49 100644 --- a/scripts/tsc-compliance-test/package.json +++ b/scripts/tsc-compliance-test/package.json @@ -1,11 +1,11 @@ { "name": "tsc-compliance-test", - "version": "0.1.52", + "version": "0.1.53", "license": "MIT", "private": true, "devDependencies": { "@types/node": "16.18.82", - "aws-amplify": "6.6.0", + "aws-amplify": "6.6.1", "typescript": "4.2.x" }, "scripts": { From e6177860774d49cbdbdddd1505316abcaa6222c6 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Mon, 16 Sep 2024 22:57:19 +0000 Subject: [PATCH 36/50] chore(release): Update API docs [skip release] --- docs/api/assets/navigation.js | 2 +- docs/api/assets/search.js | 2 +- ...js.api._Reference_Types_.CustomOperationArgument.html | 4 ++-- ...fy_adapter_nextjs.api._Reference_Types_.EnumType.html | 3 +++ ...y_adapter_nextjs.api._Reference_Types_.InputType.html | 3 +++ ...s.api._Reference_Types_.ModelIntrospectionSchema.html | 6 ++++-- ..._nextjs.api._Reference_Types_.SchemaConversation.html | 3 +++ ....api._Reference_Types_.SchemaConversationMessage.html | 5 +++++ ...js.api._Reference_Types_.SchemaConversationRoute.html | 8 ++++++++ ....index._Reference_Types_.CustomOperationArgument.html | 4 ++-- .../aws_amplify.index._Reference_Types_.EnumType.html | 3 +++ .../aws_amplify.index._Reference_Types_.InputType.html | 3 +++ ...index._Reference_Types_.ModelIntrospectionSchema.html | 6 ++++-- ...plify.index._Reference_Types_.SchemaConversation.html | 3 +++ ...ndex._Reference_Types_.SchemaConversationMessage.html | 5 +++++ ....index._Reference_Types_.SchemaConversationRoute.html | 8 ++++++++ ...aws_amplify_adapter_nextjs.api._Reference_Types_.html | 9 +++++++++ docs/api/modules/_aws_amplify_adapter_nextjs.html | 4 ++-- .../modules/_aws_amplify_datastore_storage_adapter.html | 4 ++-- docs/api/modules/_aws_amplify_geo.html | 4 ++-- docs/api/modules/_aws_amplify_interactions.html | 4 ++-- docs/api/modules/_aws_amplify_predictions.html | 4 ++-- docs/api/modules/_aws_amplify_pubsub.html | 4 ++-- docs/api/modules/aws_amplify.html | 4 ++-- .../api/modules/aws_amplify.index._Reference_Types_.html | 9 +++++++++ ...y_adapter_nextjs.api._Reference_Types_.FieldType.html | 2 +- ...pter_nextjs.api._Reference_Types_.InputFieldType.html | 2 ++ ..._adapter_nextjs.api._Reference_Types_.ScalarType.html | 2 ++ ...s.api._Reference_Types_.SchemaConversationRoutes.html | 2 ++ ...tjs.api._Reference_Types_.SchemaGenerationRoutes.html | 2 ++ .../aws_amplify.index._Reference_Types_.FieldType.html | 2 +- ...s_amplify.index._Reference_Types_.InputFieldType.html | 2 ++ .../aws_amplify.index._Reference_Types_.ScalarType.html | 2 ++ ...index._Reference_Types_.SchemaConversationRoutes.html | 2 ++ ...y.index._Reference_Types_.SchemaGenerationRoutes.html | 2 ++ 35 files changed, 108 insertions(+), 26 deletions(-) create mode 100644 docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.EnumType.html create mode 100644 docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.InputType.html create mode 100644 docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversation.html create mode 100644 docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationMessage.html create mode 100644 docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationRoute.html create mode 100644 docs/api/interfaces/aws_amplify.index._Reference_Types_.EnumType.html create mode 100644 docs/api/interfaces/aws_amplify.index._Reference_Types_.InputType.html create mode 100644 docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversation.html create mode 100644 docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversationMessage.html create mode 100644 docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversationRoute.html create mode 100644 docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.InputFieldType.html create mode 100644 docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.ScalarType.html create mode 100644 docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationRoutes.html create mode 100644 docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaGenerationRoutes.html create mode 100644 docs/api/types/aws_amplify.index._Reference_Types_.InputFieldType.html create mode 100644 docs/api/types/aws_amplify.index._Reference_Types_.ScalarType.html create mode 100644 docs/api/types/aws_amplify.index._Reference_Types_.SchemaConversationRoutes.html create mode 100644 docs/api/types/aws_amplify.index._Reference_Types_.SchemaGenerationRoutes.html diff --git a/docs/api/assets/navigation.js b/docs/api/assets/navigation.js index 93a2ff84046..2f434fcdca7 100644 --- a/docs/api/assets/navigation.js +++ b/docs/api/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index e7380ba25ab..64d3774df34 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.CustomOperationArgument.html b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.CustomOperationArgument.html index 6cbe35e3722..d8d06354057 100644 --- a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.CustomOperationArgument.html +++ b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.CustomOperationArgument.html @@ -1,7 +1,7 @@ CustomOperationArgument | Amplify JS API Documentation -
interface CustomOperationArgument {
    isArray: boolean;
    isArrayNullable?: boolean;
    isRequired: boolean;
    name: string;
    type: FieldType;
}

Properties

isArray +
interface CustomOperationArgument {
    isArray: boolean;
    isArrayNullable?: boolean;
    isRequired: boolean;
    name: string;
    type: InputFieldType;
}

Properties

isArray: boolean
isArrayNullable?: boolean
isRequired: boolean
name: string
type: FieldType
\ No newline at end of file +

Properties

isArray: boolean
isArrayNullable?: boolean
isRequired: boolean
name: string
\ No newline at end of file diff --git a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.EnumType.html b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.EnumType.html new file mode 100644 index 00000000000..a5ebf6562e1 --- /dev/null +++ b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.EnumType.html @@ -0,0 +1,3 @@ +EnumType | Amplify JS API Documentation +
interface EnumType {
    enum: string;
}

Properties

Properties

enum: string
\ No newline at end of file diff --git a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.InputType.html b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.InputType.html new file mode 100644 index 00000000000..99f56ed01c5 --- /dev/null +++ b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.InputType.html @@ -0,0 +1,3 @@ +InputType | Amplify JS API Documentation +
interface InputType {
    input: string;
}

Properties

Properties

input: string
\ No newline at end of file diff --git a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.ModelIntrospectionSchema.html b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.ModelIntrospectionSchema.html index 75983470829..bd71784e221 100644 --- a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.ModelIntrospectionSchema.html +++ b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.ModelIntrospectionSchema.html @@ -1,11 +1,13 @@ ModelIntrospectionSchema | Amplify JS API Documentation
interface ModelIntrospectionSchema {
    enums: SchemaEnums;
    models: SchemaModels;
    mutations?: CustomOperations;
    nonModels: SchemaNonModels;
    queries?: CustomOperations;
    subscriptions?: CustomOperations;
    version: 1;
}

Properties

interface ModelIntrospectionSchema {
    conversations?: SchemaConversationRoutes;
    enums: SchemaEnums;
    generations?: SchemaGenerationRoutes;
    models: SchemaModels;
    mutations?: CustomOperations;
    nonModels: SchemaNonModels;
    queries?: CustomOperations;
    subscriptions?: CustomOperations;
    version: 1;
}

Properties

models: SchemaModels
mutations?: CustomOperations
nonModels: SchemaNonModels
subscriptions?: CustomOperations
version: 1
\ No newline at end of file +

Properties

conversations?: SchemaConversationRoutes
models: SchemaModels
mutations?: CustomOperations
nonModels: SchemaNonModels
subscriptions?: CustomOperations
version: 1
\ No newline at end of file diff --git a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversation.html b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversation.html new file mode 100644 index 00000000000..d6370f1a59c --- /dev/null +++ b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversation.html @@ -0,0 +1,3 @@ +SchemaConversation | Amplify JS API Documentation +
interface SchemaConversation {
    modelName: string;
}

Properties

Properties

modelName: string
\ No newline at end of file diff --git a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationMessage.html b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationMessage.html new file mode 100644 index 00000000000..875e81123cb --- /dev/null +++ b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationMessage.html @@ -0,0 +1,5 @@ +SchemaConversationMessage | Amplify JS API Documentation +
interface SchemaConversationMessage {
    modelName: string;
    send: CustomOperation;
    subscribe: CustomOperation;
}

Properties

Properties

modelName: string
subscribe: CustomOperation
\ No newline at end of file diff --git a/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationRoute.html b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationRoute.html new file mode 100644 index 00000000000..0a04c622ced --- /dev/null +++ b/docs/api/interfaces/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationRoute.html @@ -0,0 +1,8 @@ +SchemaConversationRoute | Amplify JS API Documentation +
interface SchemaConversationRoute {
    conversation: SchemaConversation;
    enums: SchemaEnums;
    message: SchemaConversationMessage;
    models: SchemaModels;
    name: string;
    nonModels: SchemaNonModels;
}

Properties

conversation: SchemaConversation
models: SchemaModels
name: string
nonModels: SchemaNonModels
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.index._Reference_Types_.CustomOperationArgument.html b/docs/api/interfaces/aws_amplify.index._Reference_Types_.CustomOperationArgument.html index e7dc8ad4f78..957cce39925 100644 --- a/docs/api/interfaces/aws_amplify.index._Reference_Types_.CustomOperationArgument.html +++ b/docs/api/interfaces/aws_amplify.index._Reference_Types_.CustomOperationArgument.html @@ -1,7 +1,7 @@ CustomOperationArgument | Amplify JS API Documentation -
interface CustomOperationArgument {
    isArray: boolean;
    isArrayNullable?: boolean;
    isRequired: boolean;
    name: string;
    type: FieldType;
}

Properties

isArray +
interface CustomOperationArgument {
    isArray: boolean;
    isArrayNullable?: boolean;
    isRequired: boolean;
    name: string;
    type: InputFieldType;
}

Properties

isArray: boolean
isArrayNullable?: boolean
isRequired: boolean
name: string
type: FieldType
\ No newline at end of file +

Properties

isArray: boolean
isArrayNullable?: boolean
isRequired: boolean
name: string
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.index._Reference_Types_.EnumType.html b/docs/api/interfaces/aws_amplify.index._Reference_Types_.EnumType.html new file mode 100644 index 00000000000..bc92c593fff --- /dev/null +++ b/docs/api/interfaces/aws_amplify.index._Reference_Types_.EnumType.html @@ -0,0 +1,3 @@ +EnumType | Amplify JS API Documentation +
interface EnumType {
    enum: string;
}

Properties

Properties

enum: string
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.index._Reference_Types_.InputType.html b/docs/api/interfaces/aws_amplify.index._Reference_Types_.InputType.html new file mode 100644 index 00000000000..89124e2dedf --- /dev/null +++ b/docs/api/interfaces/aws_amplify.index._Reference_Types_.InputType.html @@ -0,0 +1,3 @@ +InputType | Amplify JS API Documentation +
interface InputType {
    input: string;
}

Properties

Properties

input: string
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.index._Reference_Types_.ModelIntrospectionSchema.html b/docs/api/interfaces/aws_amplify.index._Reference_Types_.ModelIntrospectionSchema.html index 30a48c6059c..fd8bfc48f4d 100644 --- a/docs/api/interfaces/aws_amplify.index._Reference_Types_.ModelIntrospectionSchema.html +++ b/docs/api/interfaces/aws_amplify.index._Reference_Types_.ModelIntrospectionSchema.html @@ -1,11 +1,13 @@ ModelIntrospectionSchema | Amplify JS API Documentation
interface ModelIntrospectionSchema {
    enums: SchemaEnums;
    models: SchemaModels;
    mutations?: CustomOperations;
    nonModels: SchemaNonModels;
    queries?: CustomOperations;
    subscriptions?: CustomOperations;
    version: 1;
}

Properties

interface ModelIntrospectionSchema {
    conversations?: SchemaConversationRoutes;
    enums: SchemaEnums;
    generations?: SchemaGenerationRoutes;
    models: SchemaModels;
    mutations?: CustomOperations;
    nonModels: SchemaNonModels;
    queries?: CustomOperations;
    subscriptions?: CustomOperations;
    version: 1;
}

Properties

models: SchemaModels
mutations?: CustomOperations
nonModels: SchemaNonModels
subscriptions?: CustomOperations
version: 1
\ No newline at end of file +

Properties

conversations?: SchemaConversationRoutes
models: SchemaModels
mutations?: CustomOperations
nonModels: SchemaNonModels
subscriptions?: CustomOperations
version: 1
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversation.html b/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversation.html new file mode 100644 index 00000000000..ecce961cbce --- /dev/null +++ b/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversation.html @@ -0,0 +1,3 @@ +SchemaConversation | Amplify JS API Documentation +
interface SchemaConversation {
    modelName: string;
}

Properties

Properties

modelName: string
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversationMessage.html b/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversationMessage.html new file mode 100644 index 00000000000..afa62925ee3 --- /dev/null +++ b/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversationMessage.html @@ -0,0 +1,5 @@ +SchemaConversationMessage | Amplify JS API Documentation +
interface SchemaConversationMessage {
    modelName: string;
    send: CustomOperation;
    subscribe: CustomOperation;
}

Properties

Properties

modelName: string
subscribe: CustomOperation
\ No newline at end of file diff --git a/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversationRoute.html b/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversationRoute.html new file mode 100644 index 00000000000..8253f72e272 --- /dev/null +++ b/docs/api/interfaces/aws_amplify.index._Reference_Types_.SchemaConversationRoute.html @@ -0,0 +1,8 @@ +SchemaConversationRoute | Amplify JS API Documentation +
interface SchemaConversationRoute {
    conversation: SchemaConversation;
    enums: SchemaEnums;
    message: SchemaConversationMessage;
    models: SchemaModels;
    name: string;
    nonModels: SchemaNonModels;
}

Properties

conversation: SchemaConversation
models: SchemaModels
name: string
nonModels: SchemaNonModels
\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_adapter_nextjs.api._Reference_Types_.html b/docs/api/modules/_aws_amplify_adapter_nextjs.api._Reference_Types_.html index 898f549b6fd..32fff701935 100644 --- a/docs/api/modules/_aws_amplify_adapter_nextjs.api._Reference_Types_.html +++ b/docs/api/modules/_aws_amplify_adapter_nextjs.api._Reference_Types_.html @@ -30,6 +30,7 @@ DirectiveDefinitionNode DirectiveNode DocumentNode +EnumType EnumTypeDefinitionNode EnumTypeExtensionNode EnumValueDefinitionNode @@ -55,6 +56,7 @@ InlineFragmentNode InputObjectTypeDefinitionNode InputObjectTypeExtensionNode +InputType InputValueDefinitionNode IntValueNode InteractionsLexV1Config @@ -104,6 +106,9 @@ S3ProviderConfig ScalarTypeDefinitionNode ScalarTypeExtensionNode +SchemaConversation +SchemaConversationMessage +SchemaConversationRoute SchemaDefinitionNode SchemaEnum SchemaExtensionNode @@ -165,6 +170,7 @@ GraphQLSubscription GraphQLVariablesV6 GraphqlSubscriptionResult +InputFieldType InteractionsConfig Maybe ModelTypes @@ -176,7 +182,10 @@ OperationTypeNode PredictionsConfig PromiseConstructorLike +ScalarType +SchemaConversationRoutes SchemaEnums +SchemaGenerationRoutes SchemaModels SchemaNonModels SelectionNode diff --git a/docs/api/modules/_aws_amplify_adapter_nextjs.html b/docs/api/modules/_aws_amplify_adapter_nextjs.html index 1ed6caaeb92..7016dc0b9ba 100644 --- a/docs/api/modules/_aws_amplify_adapter_nextjs.html +++ b/docs/api/modules/_aws_amplify_adapter_nextjs.html @@ -1,5 +1,5 @@ -@aws-amplify/adapter-nextjs - v1.2.17 | Amplify JS API Documentation -

Module @aws-amplify/adapter-nextjs - v1.2.17

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

+@aws-amplify/adapter-nextjs - v1.2.18 | Amplify JS API Documentation +

Module @aws-amplify/adapter-nextjs - v1.2.18

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

Index

Modules

api index utils diff --git a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html index 44d0c2fe117..0b31c7e27be 100644 --- a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html +++ b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html @@ -1,5 +1,5 @@ -@aws-amplify/datastore-storage-adapter - v2.1.49 | Amplify JS API Documentation -

Module @aws-amplify/datastore-storage-adapter - v2.1.49

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

+@aws-amplify/datastore-storage-adapter - v2.1.50 | Amplify JS API Documentation +

Module @aws-amplify/datastore-storage-adapter - v2.1.50

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

Index

Modules

ExpoSQLiteAdapter/ExpoSQLiteAdapter SQLiteAdapter/SQLiteAdapter index diff --git a/docs/api/modules/_aws_amplify_geo.html b/docs/api/modules/_aws_amplify_geo.html index 66383451311..4772c003dc6 100644 --- a/docs/api/modules/_aws_amplify_geo.html +++ b/docs/api/modules/_aws_amplify_geo.html @@ -1,5 +1,5 @@ -@aws-amplify/geo - v3.0.47 | Amplify JS API Documentation -

Module @aws-amplify/geo - v3.0.47

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

+@aws-amplify/geo - v3.0.48 | Amplify JS API Documentation +

Module @aws-amplify/geo - v3.0.48

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

Index

Modules

\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_interactions.html b/docs/api/modules/_aws_amplify_interactions.html index 85a698f2c4f..25ef8da6114 100644 --- a/docs/api/modules/_aws_amplify_interactions.html +++ b/docs/api/modules/_aws_amplify_interactions.html @@ -1,5 +1,5 @@ -@aws-amplify/interactions - v6.0.46 | Amplify JS API Documentation -

Module @aws-amplify/interactions - v6.0.46

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

+@aws-amplify/interactions - v6.0.47 | Amplify JS API Documentation +

Module @aws-amplify/interactions - v6.0.47

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

Index

Modules

index lex-v1 lex-v2 diff --git a/docs/api/modules/_aws_amplify_predictions.html b/docs/api/modules/_aws_amplify_predictions.html index 66fee9cc27a..e21e287b072 100644 --- a/docs/api/modules/_aws_amplify_predictions.html +++ b/docs/api/modules/_aws_amplify_predictions.html @@ -1,5 +1,5 @@ -@aws-amplify/predictions - v6.1.22 | Amplify JS API Documentation -

Module @aws-amplify/predictions - v6.1.22

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

+@aws-amplify/predictions - v6.1.23 | Amplify JS API Documentation +

Module @aws-amplify/predictions - v6.1.23

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

Index

Modules

Interfaces

IdentifyEntitiesInput IdentifyEntitiesOutput diff --git a/docs/api/modules/_aws_amplify_pubsub.html b/docs/api/modules/_aws_amplify_pubsub.html index 0f49860a3f3..3229a16dc26 100644 --- a/docs/api/modules/_aws_amplify_pubsub.html +++ b/docs/api/modules/_aws_amplify_pubsub.html @@ -1,5 +1,5 @@ -@aws-amplify/pubsub - v6.1.22 | Amplify JS API Documentation -

Module @aws-amplify/pubsub - v6.1.22

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

+@aws-amplify/pubsub - v6.1.23 | Amplify JS API Documentation +

Module @aws-amplify/pubsub - v6.1.23

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

Index

Modules

clients/iot clients/mqtt index diff --git a/docs/api/modules/aws_amplify.html b/docs/api/modules/aws_amplify.html index 13dc39c24b9..44622152aee 100644 --- a/docs/api/modules/aws_amplify.html +++ b/docs/api/modules/aws_amplify.html @@ -1,5 +1,5 @@ -aws-amplify - v6.6.0 | Amplify JS API Documentation -

Module aws-amplify - v6.6.0

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

+aws-amplify - v6.6.1 | Amplify JS API Documentation +

Module aws-amplify - v6.6.1

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

Documentation is available here.

Index

Modules

adapter-core analytics diff --git a/docs/api/modules/aws_amplify.index._Reference_Types_.html b/docs/api/modules/aws_amplify.index._Reference_Types_.html index 198e7105463..314878e6a95 100644 --- a/docs/api/modules/aws_amplify.index._Reference_Types_.html +++ b/docs/api/modules/aws_amplify.index._Reference_Types_.html @@ -10,6 +10,7 @@ ConvertConfig CustomOperation CustomOperationArgument +EnumType EventBufferConfig Field GraphQLProviderConfig @@ -18,6 +19,7 @@ IdentifyTextDefaults IdentityLabelsDefaults InAppMessagingProviderConfig +InputType InteractionsLexV1Config InteractionsLexV2Config InterpretConfig @@ -41,6 +43,9 @@ PushNotificationProviderConfig RESTProviderConfig S3ProviderConfig +SchemaConversation +SchemaConversationMessage +SchemaConversationRoute SchemaEnum SchemaModel SchemaNonModel @@ -60,13 +65,17 @@ Fields GeoConfig GraphQLAuthMode +InputFieldType InteractionsConfig NotificationsConfig Partial Pick PredictionsConfig Record +ScalarType +SchemaConversationRoutes SchemaEnums +SchemaGenerationRoutes SchemaModels SchemaNonModels StorageConfig diff --git a/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.FieldType.html b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.FieldType.html index 985f5888607..7c97ed889f9 100644 --- a/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.FieldType.html +++ b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.FieldType.html @@ -1,2 +1,2 @@ FieldType | Amplify JS API Documentation -
FieldType: "ID" | "String" | "Int" | "Float" | "AWSDate" | "AWSTime" | "AWSDateTime" | "AWSTimestamp" | "AWSEmail" | "AWSURL" | "AWSIPAddress" | "Boolean" | "AWSJSON" | "AWSPhone" | {
    enum: string;
} | ModelFieldType | NonModelFieldType

Type declaration

  • enum: string
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.InputFieldType.html b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.InputFieldType.html new file mode 100644 index 00000000000..ae8877fd113 --- /dev/null +++ b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.InputFieldType.html @@ -0,0 +1,2 @@ +InputFieldType | Amplify JS API Documentation +
\ No newline at end of file diff --git a/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.ScalarType.html b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.ScalarType.html new file mode 100644 index 00000000000..304cc4425a9 --- /dev/null +++ b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.ScalarType.html @@ -0,0 +1,2 @@ +ScalarType | Amplify JS API Documentation +
ScalarType: "ID" | "String" | "Int" | "Float" | "AWSDate" | "AWSTime" | "AWSDateTime" | "AWSTimestamp" | "AWSEmail" | "AWSURL" | "AWSIPAddress" | "Boolean" | "AWSJSON" | "AWSPhone"
\ No newline at end of file diff --git a/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationRoutes.html b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationRoutes.html new file mode 100644 index 00000000000..f75c9601692 --- /dev/null +++ b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaConversationRoutes.html @@ -0,0 +1,2 @@ +SchemaConversationRoutes | Amplify JS API Documentation +
\ No newline at end of file diff --git a/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaGenerationRoutes.html b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaGenerationRoutes.html new file mode 100644 index 00000000000..4d15cc9e08b --- /dev/null +++ b/docs/api/types/_aws_amplify_adapter_nextjs.api._Reference_Types_.SchemaGenerationRoutes.html @@ -0,0 +1,2 @@ +SchemaGenerationRoutes | Amplify JS API Documentation +
\ No newline at end of file diff --git a/docs/api/types/aws_amplify.index._Reference_Types_.FieldType.html b/docs/api/types/aws_amplify.index._Reference_Types_.FieldType.html index 1f490bc0577..4ed26cca63a 100644 --- a/docs/api/types/aws_amplify.index._Reference_Types_.FieldType.html +++ b/docs/api/types/aws_amplify.index._Reference_Types_.FieldType.html @@ -1,2 +1,2 @@ FieldType | Amplify JS API Documentation -
FieldType: "ID" | "String" | "Int" | "Float" | "AWSDate" | "AWSTime" | "AWSDateTime" | "AWSTimestamp" | "AWSEmail" | "AWSURL" | "AWSIPAddress" | "Boolean" | "AWSJSON" | "AWSPhone" | {
    enum: string;
} | ModelFieldType | NonModelFieldType

Type declaration

  • enum: string
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/types/aws_amplify.index._Reference_Types_.InputFieldType.html b/docs/api/types/aws_amplify.index._Reference_Types_.InputFieldType.html new file mode 100644 index 00000000000..04549210e36 --- /dev/null +++ b/docs/api/types/aws_amplify.index._Reference_Types_.InputFieldType.html @@ -0,0 +1,2 @@ +InputFieldType | Amplify JS API Documentation +
\ No newline at end of file diff --git a/docs/api/types/aws_amplify.index._Reference_Types_.ScalarType.html b/docs/api/types/aws_amplify.index._Reference_Types_.ScalarType.html new file mode 100644 index 00000000000..feece45fe8a --- /dev/null +++ b/docs/api/types/aws_amplify.index._Reference_Types_.ScalarType.html @@ -0,0 +1,2 @@ +ScalarType | Amplify JS API Documentation +
ScalarType: "ID" | "String" | "Int" | "Float" | "AWSDate" | "AWSTime" | "AWSDateTime" | "AWSTimestamp" | "AWSEmail" | "AWSURL" | "AWSIPAddress" | "Boolean" | "AWSJSON" | "AWSPhone"
\ No newline at end of file diff --git a/docs/api/types/aws_amplify.index._Reference_Types_.SchemaConversationRoutes.html b/docs/api/types/aws_amplify.index._Reference_Types_.SchemaConversationRoutes.html new file mode 100644 index 00000000000..18b0096022d --- /dev/null +++ b/docs/api/types/aws_amplify.index._Reference_Types_.SchemaConversationRoutes.html @@ -0,0 +1,2 @@ +SchemaConversationRoutes | Amplify JS API Documentation +
\ No newline at end of file diff --git a/docs/api/types/aws_amplify.index._Reference_Types_.SchemaGenerationRoutes.html b/docs/api/types/aws_amplify.index._Reference_Types_.SchemaGenerationRoutes.html new file mode 100644 index 00000000000..8170049841b --- /dev/null +++ b/docs/api/types/aws_amplify.index._Reference_Types_.SchemaGenerationRoutes.html @@ -0,0 +1,2 @@ +SchemaGenerationRoutes | Amplify JS API Documentation +
\ No newline at end of file From 953d578fabd69ab8eb7bf494a50c5a15ebf0b74c Mon Sep 17 00:00:00 2001 From: Hui Zhao Date: Tue, 17 Sep 2024 15:16:56 -0700 Subject: [PATCH 37/50] Revert "Reapply "feat(core): resolve webcrypto from node:crypto for Node18 (#13599)" (#13775)" This reverts commit 1fea052df23425abfb8dab42a34e35c94e6b16ec. --- .../load-verdaccio-with-amplify-js/action.yml | 26 +++++++------------ .github/actions/node-and-build/action.yml | 6 ++--- .github/integ-config/integ-all.yml | 7 ----- .github/workflows/callable-e2e-test.yml | 7 ----- .github/workflows/callable-e2e-tests.yml | 1 - package.json | 3 --- .../utils/globalHelpers/globalHelpers.test.ts | 6 +++++ .../core/src/utils/globalHelpers/index.ts | 10 ------- 8 files changed, 18 insertions(+), 48 deletions(-) diff --git a/.github/actions/load-verdaccio-with-amplify-js/action.yml b/.github/actions/load-verdaccio-with-amplify-js/action.yml index b0f2f5552ac..c8cd349cb86 100644 --- a/.github/actions/load-verdaccio-with-amplify-js/action.yml +++ b/.github/actions/load-verdaccio-with-amplify-js/action.yml @@ -6,8 +6,7 @@ runs: steps: - name: Start verdaccio run: | - # This version supports Node.js v22 - npx verdaccio@5.31.1 & + npx verdaccio@5.25.0 & while ! nc -z localhost 4873; do echo "Verdaccio not running yet" sleep 1 @@ -19,30 +18,25 @@ runs: - name: Install and run npm-cli-login shell: bash env: - NPM_REGISTRY_HOST: localhost:4873 - NPM_REGISTRY: http://localhost:4873 + NPM_REGISTRY: http://localhost:4873/ NPM_USER: verdaccio NPM_PASS: verdaccio NPM_EMAIL: verdaccio@amplify.js run: | - # Make the HTTP request that npm addUser makes to avoid the "Exit handler never called" error - TOKEN=$(curl -s \ - -H "Accept: application/json" \ - -H "Content-Type:application/json" \ - -X PUT --data "{\"name\": \"$NPM_USER\", \"password\": \"$NPM_PASS\", \"email\": \"$NPM_EMAIL\"}" \ - $NPM_REGISTRY/-/user/org.couchdb.user:$NPM_USER 2>&1 | jq -r '.token') - - # Set the Verdaccio registry and set the token for logging in - yarn config set registry $NPM_REGISTRY - npm set registry $NPM_REGISTRY - npm set //"$NPM_REGISTRY_HOST"/:_authToken $TOKEN - - name: Configure git + npm i -g npm-cli-adduser + npm-cli-adduser + sleep 1 + - name: Configure registry and git shell: bash working-directory: ./amplify-js env: + NPM_REGISTRY: http://localhost:4873/ NPM_USER: verdaccio + NPM_PASS: verdaccio NPM_EMAIL: verdaccio@amplify.js run: | + yarn config set registry $NPM_REGISTRY + npm set registry $NPM_REGISTRY git config --global user.email $NPM_EMAIL git config --global user.name $NPM_USER git status diff --git a/.github/actions/node-and-build/action.yml b/.github/actions/node-and-build/action.yml index becd2d49165..0af092c4c84 100644 --- a/.github/actions/node-and-build/action.yml +++ b/.github/actions/node-and-build/action.yml @@ -4,15 +4,13 @@ inputs: is-prebuild: required: false default: false - node_version: - required: false runs: using: 'composite' steps: - - name: Setup Node.js + - name: Setup Node.js 18 uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: - node-version: ${{ inputs.node_version || '18.x' }} + node-version: 18.20.2 env: SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 - uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0 diff --git a/.github/integ-config/integ-all.yml b/.github/integ-config/integ-all.yml index e176add9ac5..c7316c37c1f 100644 --- a/.github/integ-config/integ-all.yml +++ b/.github/integ-config/integ-all.yml @@ -870,10 +870,3 @@ tests: spec: ssr-context-isolation yarn_script: ci:ssr-context-isolation browser: [chrome] - - test_name: integ_node_envs - desc: 'Node.js environment tests' - framework: node - category: integration - sample_name: auth-gql-storage - yarn_script: ci:node-env-test - node_versions: ['18.x', '20.x', '22.x'] diff --git a/.github/workflows/callable-e2e-test.yml b/.github/workflows/callable-e2e-test.yml index fd9f9cb697a..18697cf5dc5 100644 --- a/.github/workflows/callable-e2e-test.yml +++ b/.github/workflows/callable-e2e-test.yml @@ -37,9 +37,6 @@ on: yarn_script: required: false type: string - node_versions: - required: false - type: string env: AMPLIFY_DIR: /home/runner/work/amplify-js/amplify-js/amplify-js @@ -57,8 +54,6 @@ jobs: - ${{ fromJson(inputs.browser) }} sample_name: - ${{ fromJson(inputs.sample_name) }} - node_version: - - ${{ fromJson(inputs.node_versions) }} fail-fast: false timeout-minutes: ${{ inputs.timeout_minutes }} @@ -69,8 +64,6 @@ jobs: path: amplify-js - name: Setup node and build the repository uses: ./amplify-js/.github/actions/node-and-build - with: - node_version: ${{ matrix.node_version }} - name: Setup samples staging repository uses: ./amplify-js/.github/actions/setup-samples-staging with: diff --git a/.github/workflows/callable-e2e-tests.yml b/.github/workflows/callable-e2e-tests.yml index 477ca28b3db..4ae74a69c88 100644 --- a/.github/workflows/callable-e2e-tests.yml +++ b/.github/workflows/callable-e2e-tests.yml @@ -44,7 +44,6 @@ jobs: timeout_minutes: ${{ matrix.integ-config.timeout_minutes || 35 }} retry_count: ${{ matrix.integ-config.retry_count || 3 }} yarn_script: ${{ matrix.integ-config.yarn_script || '' }} - node_versions: ${{ toJSON(matrix.integ-config.node_versions) || '[""]' }} # e2e-test-runner-headless: # name: E2E test runnner_headless diff --git a/package.json b/package.json index eaf95c79cab..2dd5ff3ff32 100644 --- a/package.json +++ b/package.json @@ -130,9 +130,6 @@ "webpack-bundle-analyzer": "^4.7.0", "webpack-cli": "^5.0.0" }, - "engines": { - "node": ">=18" - }, "resolutions": { "@types/babel__traverse": "7.20.0", "path-scurry": "1.10.0", diff --git a/packages/core/__tests__/utils/globalHelpers/globalHelpers.test.ts b/packages/core/__tests__/utils/globalHelpers/globalHelpers.test.ts index bb7d2e39a9b..4d9dbd8bc17 100644 --- a/packages/core/__tests__/utils/globalHelpers/globalHelpers.test.ts +++ b/packages/core/__tests__/utils/globalHelpers/globalHelpers.test.ts @@ -44,6 +44,12 @@ describe('getGlobal', () => { expect(getCrypto()).toEqual(mockCrypto); }); + + it('should throw error if crypto is unavailable globally', () => { + mockWindow.mockImplementation(() => undefined); + + expect(() => getCrypto()).toThrow(AmplifyError); + }); }); describe('getBtoa()', () => { diff --git a/packages/core/src/utils/globalHelpers/index.ts b/packages/core/src/utils/globalHelpers/index.ts index dc35f897bf6..622f4d3c3ef 100644 --- a/packages/core/src/utils/globalHelpers/index.ts +++ b/packages/core/src/utils/globalHelpers/index.ts @@ -13,16 +13,6 @@ export const getCrypto = () => { return crypto; } - try { - const crypto = require('node:crypto').webcrypto; - - if (typeof crypto === 'object') { - return crypto; - } - } catch (_) { - // no-op - } - throw new AmplifyError({ name: 'MissingPolyfill', message: 'Cannot resolve the `crypto` function from the environment.', From 72354a1b9cd599ba90bb3ce15d640db4c746c117 Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Tue, 17 Sep 2024 23:43:22 +0000 Subject: [PATCH 38/50] chore(release): Set core metadata [skip release] --- packages/core/metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/metadata b/packages/core/metadata index ed62dfbf234..5a9cb296e96 100644 --- a/packages/core/metadata +++ b/packages/core/metadata @@ -1 +1 @@ -4cf088c87 +3ef5df5f7 From 716cc95cb08bc1e700b3f57752457be28d18e4fd Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Tue, 17 Sep 2024 23:43:37 +0000 Subject: [PATCH 39/50] chore(release): Publish [skip release] - @aws-amplify/adapter-nextjs@1.2.19 - @aws-amplify/analytics@7.0.49 - @aws-amplify/api@6.0.51 - @aws-amplify/api-graphql@4.3.2 - @aws-amplify/api-rest@4.0.49 - @aws-amplify/auth@6.4.2 - aws-amplify@6.6.2 - @aws-amplify/core@6.4.2 - @aws-amplify/datastore@5.0.51 - @aws-amplify/datastore-storage-adapter@2.1.51 - @aws-amplify/geo@3.0.49 - @aws-amplify/interactions@6.0.48 - @aws-amplify/notifications@2.0.49 - @aws-amplify/predictions@6.1.24 - @aws-amplify/pubsub@6.1.24 - @aws-amplify/storage@6.6.7 - tsc-compliance-test@0.1.54 --- packages/adapter-nextjs/CHANGELOG.md | 4 ++++ packages/adapter-nextjs/package.json | 4 ++-- packages/analytics/CHANGELOG.md | 4 ++++ packages/analytics/package.json | 4 ++-- packages/api-graphql/CHANGELOG.md | 4 ++++ packages/api-graphql/package.json | 6 +++--- packages/api-rest/CHANGELOG.md | 4 ++++ packages/api-rest/package.json | 4 ++-- packages/api/CHANGELOG.md | 4 ++++ packages/api/package.json | 6 +++--- packages/auth/CHANGELOG.md | 4 ++++ packages/auth/package.json | 4 ++-- packages/aws-amplify/CHANGELOG.md | 4 ++++ packages/aws-amplify/package.json | 16 ++++++++-------- packages/core/CHANGELOG.md | 6 ++++++ packages/core/package.json | 2 +- packages/datastore-storage-adapter/CHANGELOG.md | 4 ++++ packages/datastore-storage-adapter/package.json | 6 +++--- packages/datastore/CHANGELOG.md | 4 ++++ packages/datastore/package.json | 6 +++--- packages/geo/CHANGELOG.md | 4 ++++ packages/geo/package.json | 4 ++-- packages/interactions/CHANGELOG.md | 4 ++++ packages/interactions/package.json | 4 ++-- packages/notifications/CHANGELOG.md | 4 ++++ packages/notifications/package.json | 4 ++-- packages/predictions/CHANGELOG.md | 4 ++++ packages/predictions/package.json | 6 +++--- packages/pubsub/CHANGELOG.md | 4 ++++ packages/pubsub/package.json | 6 +++--- packages/storage/CHANGELOG.md | 4 ++++ packages/storage/package.json | 4 ++-- scripts/tsc-compliance-test/CHANGELOG.md | 4 ++++ scripts/tsc-compliance-test/package.json | 4 ++-- 34 files changed, 115 insertions(+), 45 deletions(-) diff --git a/packages/adapter-nextjs/CHANGELOG.md b/packages/adapter-nextjs/CHANGELOG.md index 0ca250f9696..4c2e0b811c3 100644 --- a/packages/adapter-nextjs/CHANGELOG.md +++ b/packages/adapter-nextjs/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.19](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.18...@aws-amplify/adapter-nextjs@1.2.19) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/adapter-nextjs + ## [1.2.18](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/adapter-nextjs@1.2.17...@aws-amplify/adapter-nextjs@1.2.18) (2024-09-16) **Note:** Version bump only for package @aws-amplify/adapter-nextjs diff --git a/packages/adapter-nextjs/package.json b/packages/adapter-nextjs/package.json index e25c727729a..ca7c63c084d 100644 --- a/packages/adapter-nextjs/package.json +++ b/packages/adapter-nextjs/package.json @@ -1,7 +1,7 @@ { "author": "Amazon Web Services", "name": "@aws-amplify/adapter-nextjs", - "version": "1.2.18", + "version": "1.2.19", "description": "The adapter for the supporting of using Amplify APIs in Next.js.", "peerDependencies": { "aws-amplify": "^6.0.7", @@ -16,7 +16,7 @@ "@types/node": "^20.3.1", "@types/react": "^18.2.13", "@types/react-dom": "^18.2.6", - "aws-amplify": "6.6.1", + "aws-amplify": "6.6.2", "jest-fetch-mock": "3.0.3", "next": ">= 13.5.0 < 15.0.0", "typescript": "5.0.2" diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md index 6a50cf79952..158c642f74f 100644 --- a/packages/analytics/CHANGELOG.md +++ b/packages/analytics/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.48...@aws-amplify/analytics@7.0.49) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/analytics + ## [7.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/analytics@7.0.47...@aws-amplify/analytics@7.0.48) (2024-09-16) **Note:** Version bump only for package @aws-amplify/analytics diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 402903662bc..36044ebe240 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/analytics", - "version": "7.0.48", + "version": "7.0.49", "description": "Analytics category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -103,7 +103,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "@aws-amplify/react-native": "1.1.5", "@aws-sdk/types": "3.398.0", "typescript": "5.0.2" diff --git a/packages/api-graphql/CHANGELOG.md b/packages/api-graphql/CHANGELOG.md index 50d375c51dc..227ea1276da 100644 --- a/packages/api-graphql/CHANGELOG.md +++ b/packages/api-graphql/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.3.2](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.3.1...@aws-amplify/api-graphql@4.3.2) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/api-graphql + ## [4.3.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-graphql@4.3.0...@aws-amplify/api-graphql@4.3.1) (2024-09-16) **Note:** Version bump only for package @aws-amplify/api-graphql diff --git a/packages/api-graphql/package.json b/packages/api-graphql/package.json index bcdbca151e6..cc1c3061b6b 100644 --- a/packages/api-graphql/package.json +++ b/packages/api-graphql/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api-graphql", - "version": "4.3.1", + "version": "4.3.2", "description": "Api-graphql category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -84,8 +84,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-rest": "4.0.48", - "@aws-amplify/core": "6.4.1", + "@aws-amplify/api-rest": "4.0.49", + "@aws-amplify/core": "6.4.2", "@aws-amplify/data-schema": "^1.5.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", diff --git a/packages/api-rest/CHANGELOG.md b/packages/api-rest/CHANGELOG.md index dd1b12efeeb..56840cb1fe0 100644 --- a/packages/api-rest/CHANGELOG.md +++ b/packages/api-rest/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.48...@aws-amplify/api-rest@4.0.49) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/api-rest + ## [4.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api-rest@4.0.47...@aws-amplify/api-rest@4.0.48) (2024-09-16) **Note:** Version bump only for package @aws-amplify/api-rest diff --git a/packages/api-rest/package.json b/packages/api-rest/package.json index 866d44b15b7..d64fbd67fea 100644 --- a/packages/api-rest/package.json +++ b/packages/api-rest/package.json @@ -1,7 +1,7 @@ { "name": "@aws-amplify/api-rest", "private": false, - "version": "4.0.48", + "version": "4.0.49", "description": "Api-rest category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -87,7 +87,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" }, diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 06518f7fceb..dc714d5e55c 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.51](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.50...@aws-amplify/api@6.0.51) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/api + ## [6.0.50](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/api@6.0.49...@aws-amplify/api@6.0.50) (2024-09-16) **Note:** Version bump only for package @aws-amplify/api diff --git a/packages/api/package.json b/packages/api/package.json index 0358c4fa8b4..b1b3253549b 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/api", - "version": "6.0.50", + "version": "6.0.51", "description": "Api category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -79,8 +79,8 @@ "server" ], "dependencies": { - "@aws-amplify/api-graphql": "4.3.1", - "@aws-amplify/api-rest": "4.0.48", + "@aws-amplify/api-graphql": "4.3.2", + "@aws-amplify/api-rest": "4.0.49", "tslib": "^2.5.0" } } diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index 26daa0a88d1..7abc1e1a0a5 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.4.2](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.4.1...@aws-amplify/auth@6.4.2) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/auth + ## [6.4.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/auth@6.4.0...@aws-amplify/auth@6.4.1) (2024-09-16) ### Bug Fixes diff --git a/packages/auth/package.json b/packages/auth/package.json index 91a8550df26..705e909d167 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/auth", - "version": "6.4.1", + "version": "6.4.2", "description": "Auth category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -97,7 +97,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "@aws-amplify/react-native": "1.1.5", "@jest/test-sequencer": "^29.7.0", "typescript": "5.0.2" diff --git a/packages/aws-amplify/CHANGELOG.md b/packages/aws-amplify/CHANGELOG.md index d58b245aa88..815d5baa26a 100644 --- a/packages/aws-amplify/CHANGELOG.md +++ b/packages/aws-amplify/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.2](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.6.1...aws-amplify@6.6.2) (2024-09-17) + +**Note:** Version bump only for package aws-amplify + ## [6.6.1](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@6.6.0...aws-amplify@6.6.1) (2024-09-16) **Note:** Version bump only for package aws-amplify diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 5b37ee15f1d..be4869398ad 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -1,6 +1,6 @@ { "name": "aws-amplify", - "version": "6.6.1", + "version": "6.6.2", "description": "AWS Amplify is a JavaScript library for Frontend and mobile developers building cloud-enabled applications.", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -276,13 +276,13 @@ "utils" ], "dependencies": { - "@aws-amplify/analytics": "7.0.48", - "@aws-amplify/api": "6.0.50", - "@aws-amplify/auth": "6.4.1", - "@aws-amplify/core": "6.4.1", - "@aws-amplify/datastore": "5.0.50", - "@aws-amplify/notifications": "2.0.48", - "@aws-amplify/storage": "6.6.6", + "@aws-amplify/analytics": "7.0.49", + "@aws-amplify/api": "6.0.51", + "@aws-amplify/auth": "6.4.2", + "@aws-amplify/core": "6.4.2", + "@aws-amplify/datastore": "5.0.51", + "@aws-amplify/notifications": "2.0.49", + "@aws-amplify/storage": "6.6.7", "tslib": "^2.5.0" }, "devDependencies": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index baabb8a4463..9cb66e815c7 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.4.2](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.4.1...@aws-amplify/core@6.4.2) (2024-09-17) + +### Reverts + +- Revert "Reapply "feat(core): resolve webcrypto from node:crypto for Node18 (#13599)" (#13775)" ([953d578](https://github.com/aws-amplify/amplify-js/commit/953d578fabd69ab8eb7bf494a50c5a15ebf0b74c)), closes [#13599](https://github.com/aws-amplify/amplify-js/issues/13599) [#13775](https://github.com/aws-amplify/amplify-js/issues/13775) + ## [6.4.1](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/core@6.4.0...@aws-amplify/core@6.4.1) (2024-09-16) **Note:** Version bump only for package @aws-amplify/core diff --git a/packages/core/package.json b/packages/core/package.json index 395b6ab8a72..453774ab5ea 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/core", - "version": "6.4.1", + "version": "6.4.2", "description": "Core category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", diff --git a/packages/datastore-storage-adapter/CHANGELOG.md b/packages/datastore-storage-adapter/CHANGELOG.md index 35263122fef..70ea3a88d99 100644 --- a/packages/datastore-storage-adapter/CHANGELOG.md +++ b/packages/datastore-storage-adapter/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.51](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.50...@aws-amplify/datastore-storage-adapter@2.1.51) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/datastore-storage-adapter + ## [2.1.50](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore-storage-adapter@2.1.49...@aws-amplify/datastore-storage-adapter@2.1.50) (2024-09-16) **Note:** Version bump only for package @aws-amplify/datastore-storage-adapter diff --git a/packages/datastore-storage-adapter/package.json b/packages/datastore-storage-adapter/package.json index cb1d0bff460..2df8924bcd0 100644 --- a/packages/datastore-storage-adapter/package.json +++ b/packages/datastore-storage-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore-storage-adapter", - "version": "2.1.50", + "version": "2.1.51", "description": "SQLite storage adapter for Amplify DataStore ", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -36,8 +36,8 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", - "@aws-amplify/datastore": "5.0.50", + "@aws-amplify/core": "6.4.2", + "@aws-amplify/datastore": "5.0.51", "@types/react-native-sqlite-storage": "5.0.1", "expo-file-system": "13.1.4", "expo-sqlite": "10.1.0", diff --git a/packages/datastore/CHANGELOG.md b/packages/datastore/CHANGELOG.md index 647ca27ef57..33ddbed03e7 100644 --- a/packages/datastore/CHANGELOG.md +++ b/packages/datastore/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.51](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.50...@aws-amplify/datastore@5.0.51) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/datastore + ## [5.0.50](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@5.0.49...@aws-amplify/datastore@5.0.50) (2024-09-16) **Note:** Version bump only for package @aws-amplify/datastore diff --git a/packages/datastore/package.json b/packages/datastore/package.json index f26d11aa0f5..266a67ab709 100644 --- a/packages/datastore/package.json +++ b/packages/datastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/datastore", - "version": "5.0.50", + "version": "5.0.51", "description": "AppSyncLocal support for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -44,7 +44,7 @@ "src" ], "dependencies": { - "@aws-amplify/api": "6.0.50", + "@aws-amplify/api": "6.0.51", "buffer": "4.9.2", "idb": "5.0.6", "immer": "9.0.6", @@ -55,7 +55,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "@aws-amplify/react-native": "1.1.5", "@types/uuid-validate": "^0.0.1", "dexie": "3.2.2", diff --git a/packages/geo/CHANGELOG.md b/packages/geo/CHANGELOG.md index 2ae355bd406..274012c9430 100644 --- a/packages/geo/CHANGELOG.md +++ b/packages/geo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.48...@aws-amplify/geo@3.0.49) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/geo + ## [3.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/geo@3.0.47...@aws-amplify/geo@3.0.48) (2024-09-16) **Note:** Version bump only for package @aws-amplify/geo diff --git a/packages/geo/package.json b/packages/geo/package.json index 23233578a10..d0a2ef0bfe6 100644 --- a/packages/geo/package.json +++ b/packages/geo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/geo", - "version": "3.0.48", + "version": "3.0.49", "description": "Geo category for aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -76,7 +76,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/interactions/CHANGELOG.md b/packages/interactions/CHANGELOG.md index f3d2d37dd3e..bba981b2cb8 100644 --- a/packages/interactions/CHANGELOG.md +++ b/packages/interactions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.47...@aws-amplify/interactions@6.0.48) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/interactions + ## [6.0.47](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/interactions@6.0.46...@aws-amplify/interactions@6.0.47) (2024-09-16) **Note:** Version bump only for package @aws-amplify/interactions diff --git a/packages/interactions/package.json b/packages/interactions/package.json index ce8c7520a27..48bf93fa22e 100644 --- a/packages/interactions/package.json +++ b/packages/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/interactions", - "version": "6.0.47", + "version": "6.0.48", "description": "Interactions category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -81,7 +81,7 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "typescript": "^5.0.2" }, "size-limit": [ diff --git a/packages/notifications/CHANGELOG.md b/packages/notifications/CHANGELOG.md index 0e51a59ed12..c53699d38b7 100644 --- a/packages/notifications/CHANGELOG.md +++ b/packages/notifications/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.49](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.48...@aws-amplify/notifications@2.0.49) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/notifications + ## [2.0.48](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/notifications@2.0.47...@aws-amplify/notifications@2.0.48) (2024-09-16) **Note:** Version bump only for package @aws-amplify/notifications diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 528641f3932..b5165be75f9 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/notifications", - "version": "2.0.48", + "version": "2.0.49", "description": "Notifications category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -98,7 +98,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" } diff --git a/packages/predictions/CHANGELOG.md b/packages/predictions/CHANGELOG.md index b70bca27c5f..3779351617a 100644 --- a/packages/predictions/CHANGELOG.md +++ b/packages/predictions/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.24](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.23...@aws-amplify/predictions@6.1.24) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/predictions + ## [6.1.23](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/predictions@6.1.22...@aws-amplify/predictions@6.1.23) (2024-09-16) **Note:** Version bump only for package @aws-amplify/predictions diff --git a/packages/predictions/package.json b/packages/predictions/package.json index 6063aa51752..69904a9fd29 100644 --- a/packages/predictions/package.json +++ b/packages/predictions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/predictions", - "version": "6.1.23", + "version": "6.1.24", "description": "Machine learning category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -43,7 +43,7 @@ "src" ], "dependencies": { - "@aws-amplify/storage": "6.6.6", + "@aws-amplify/storage": "6.6.7", "@aws-sdk/client-comprehend": "3.621.0", "@aws-sdk/client-polly": "3.621.0", "@aws-sdk/client-rekognition": "3.621.0", @@ -59,7 +59,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index 1632301b2f4..bb73137f569 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.24](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.23...@aws-amplify/pubsub@6.1.24) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/pubsub + ## [6.1.23](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/pubsub@6.1.22...@aws-amplify/pubsub@6.1.23) (2024-09-16) **Note:** Version bump only for package @aws-amplify/pubsub diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 8c17c353ed0..76d5f6997cd 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/pubsub", - "version": "6.1.23", + "version": "6.1.24", "description": "Pubsub category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -73,7 +73,7 @@ "mqtt" ], "dependencies": { - "@aws-amplify/auth": "6.4.1", + "@aws-amplify/auth": "6.4.2", "buffer": "4.9.2", "graphql": "15.8.0", "rxjs": "^7.8.1", @@ -84,7 +84,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "typescript": "5.0.2" }, "size-limit": [ diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index 34c8c61988b..1e3f7c7d995 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.6.7](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.6...@aws-amplify/storage@6.6.7) (2024-09-17) + +**Note:** Version bump only for package @aws-amplify/storage + ## [6.6.6](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/storage@6.6.5...@aws-amplify/storage@6.6.6) (2024-09-16) **Note:** Version bump only for package @aws-amplify/storage diff --git a/packages/storage/package.json b/packages/storage/package.json index 78dd670db1d..1725a474379 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@aws-amplify/storage", - "version": "6.6.6", + "version": "6.6.7", "description": "Storage category of aws-amplify", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", @@ -101,7 +101,7 @@ "@aws-amplify/core": "^6.1.0" }, "devDependencies": { - "@aws-amplify/core": "6.4.1", + "@aws-amplify/core": "6.4.2", "@aws-amplify/react-native": "1.1.5", "typescript": "5.0.2" } diff --git a/scripts/tsc-compliance-test/CHANGELOG.md b/scripts/tsc-compliance-test/CHANGELOG.md index db324d16ea5..781daba852a 100644 --- a/scripts/tsc-compliance-test/CHANGELOG.md +++ b/scripts/tsc-compliance-test/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.54](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.53...tsc-compliance-test@0.1.54) (2024-09-17) + +**Note:** Version bump only for package tsc-compliance-test + ## [0.1.53](https://github.com/aws-amplify/amplify-js/compare/tsc-compliance-test@0.1.52...tsc-compliance-test@0.1.53) (2024-09-16) **Note:** Version bump only for package tsc-compliance-test diff --git a/scripts/tsc-compliance-test/package.json b/scripts/tsc-compliance-test/package.json index 3e944ee7f49..6ba25acf486 100644 --- a/scripts/tsc-compliance-test/package.json +++ b/scripts/tsc-compliance-test/package.json @@ -1,11 +1,11 @@ { "name": "tsc-compliance-test", - "version": "0.1.53", + "version": "0.1.54", "license": "MIT", "private": true, "devDependencies": { "@types/node": "16.18.82", - "aws-amplify": "6.6.1", + "aws-amplify": "6.6.2", "typescript": "4.2.x" }, "scripts": { From 4dae76e4f0b583563f51c6c48f232713987c628f Mon Sep 17 00:00:00 2001 From: aws-amplify-bot Date: Tue, 17 Sep 2024 23:44:57 +0000 Subject: [PATCH 40/50] chore(release): Update API docs [skip release] --- docs/api/modules/_aws_amplify_adapter_nextjs.html | 4 ++-- docs/api/modules/_aws_amplify_datastore_storage_adapter.html | 4 ++-- docs/api/modules/_aws_amplify_geo.html | 4 ++-- docs/api/modules/_aws_amplify_interactions.html | 4 ++-- docs/api/modules/_aws_amplify_predictions.html | 4 ++-- docs/api/modules/_aws_amplify_pubsub.html | 4 ++-- docs/api/modules/aws_amplify.html | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/api/modules/_aws_amplify_adapter_nextjs.html b/docs/api/modules/_aws_amplify_adapter_nextjs.html index 7016dc0b9ba..5f547379ee5 100644 --- a/docs/api/modules/_aws_amplify_adapter_nextjs.html +++ b/docs/api/modules/_aws_amplify_adapter_nextjs.html @@ -1,5 +1,5 @@ -@aws-amplify/adapter-nextjs - v1.2.18 | Amplify JS API Documentation -

Module @aws-amplify/adapter-nextjs - v1.2.18

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

+@aws-amplify/adapter-nextjs - v1.2.19 | Amplify JS API Documentation +

Module @aws-amplify/adapter-nextjs - v1.2.19

This package contains the AWS Amplify Next.js Adapter. For more information on using Next.js in your application please reference the Amplify Dev Center.

Index

Modules

api index utils diff --git a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html index 0b31c7e27be..d5ba4855913 100644 --- a/docs/api/modules/_aws_amplify_datastore_storage_adapter.html +++ b/docs/api/modules/_aws_amplify_datastore_storage_adapter.html @@ -1,5 +1,5 @@ -@aws-amplify/datastore-storage-adapter - v2.1.50 | Amplify JS API Documentation -

Module @aws-amplify/datastore-storage-adapter - v2.1.50

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

+@aws-amplify/datastore-storage-adapter - v2.1.51 | Amplify JS API Documentation +

Module @aws-amplify/datastore-storage-adapter - v2.1.51

This package contains the AWS Amplify DataStore storage adapter. For more information on using the DataStore storage adapter in your application please reference the Amplify Dev Center.

Index

Modules

ExpoSQLiteAdapter/ExpoSQLiteAdapter SQLiteAdapter/SQLiteAdapter index diff --git a/docs/api/modules/_aws_amplify_geo.html b/docs/api/modules/_aws_amplify_geo.html index 4772c003dc6..8ce5e20a24d 100644 --- a/docs/api/modules/_aws_amplify_geo.html +++ b/docs/api/modules/_aws_amplify_geo.html @@ -1,5 +1,5 @@ -@aws-amplify/geo - v3.0.48 | Amplify JS API Documentation -

Module @aws-amplify/geo - v3.0.48

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

+@aws-amplify/geo - v3.0.49 | Amplify JS API Documentation +

Module @aws-amplify/geo - v3.0.49

This package contains the AWS Amplify Geo category. For more information on using Geo in your application please reference the Amplify Dev Center.

Index

Modules

\ No newline at end of file diff --git a/docs/api/modules/_aws_amplify_interactions.html b/docs/api/modules/_aws_amplify_interactions.html index 25ef8da6114..7ac801f91b0 100644 --- a/docs/api/modules/_aws_amplify_interactions.html +++ b/docs/api/modules/_aws_amplify_interactions.html @@ -1,5 +1,5 @@ -@aws-amplify/interactions - v6.0.47 | Amplify JS API Documentation -

Module @aws-amplify/interactions - v6.0.47

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

+@aws-amplify/interactions - v6.0.48 | Amplify JS API Documentation +

Module @aws-amplify/interactions - v6.0.48

This package contains the AWS Amplify Interactions category. For more information on using Interactions in your application please reference the Amplify Dev Center.

Index

Modules

index lex-v1 lex-v2 diff --git a/docs/api/modules/_aws_amplify_predictions.html b/docs/api/modules/_aws_amplify_predictions.html index e21e287b072..784fe1cf826 100644 --- a/docs/api/modules/_aws_amplify_predictions.html +++ b/docs/api/modules/_aws_amplify_predictions.html @@ -1,5 +1,5 @@ -@aws-amplify/predictions - v6.1.23 | Amplify JS API Documentation -

Module @aws-amplify/predictions - v6.1.23

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

+@aws-amplify/predictions - v6.1.24 | Amplify JS API Documentation +

Module @aws-amplify/predictions - v6.1.24

This package contains the AWS Amplify Predictions category. For more information on using Predictions in your application please reference the Amplify Dev Center.

Index

Modules

Interfaces

IdentifyEntitiesInput IdentifyEntitiesOutput diff --git a/docs/api/modules/_aws_amplify_pubsub.html b/docs/api/modules/_aws_amplify_pubsub.html index 3229a16dc26..7ea9c8e179d 100644 --- a/docs/api/modules/_aws_amplify_pubsub.html +++ b/docs/api/modules/_aws_amplify_pubsub.html @@ -1,5 +1,5 @@ -@aws-amplify/pubsub - v6.1.23 | Amplify JS API Documentation -

Module @aws-amplify/pubsub - v6.1.23

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

+@aws-amplify/pubsub - v6.1.24 | Amplify JS API Documentation +

Module @aws-amplify/pubsub - v6.1.24

This package contains the AWS Amplify PubSub category. For more information on using PubSub in your application please reference the Amplify Dev Center.

Index

Modules

clients/iot clients/mqtt index diff --git a/docs/api/modules/aws_amplify.html b/docs/api/modules/aws_amplify.html index 44622152aee..a7615c10fbb 100644 --- a/docs/api/modules/aws_amplify.html +++ b/docs/api/modules/aws_amplify.html @@ -1,5 +1,5 @@ -aws-amplify - v6.6.1 | Amplify JS API Documentation -

Module aws-amplify - v6.6.1

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

+aws-amplify - v6.6.2 | Amplify JS API Documentation +

Module aws-amplify - v6.6.2

AWS Amplify Package - aws-amplify

AWS Amplify is a JavaScript library for frontend and mobile developers building cloud-enabled applications. The library is a declarative interface across different categories of operations in order to make common tasks easier to add into your application. The default implementation works with Amazon Web Services (AWS) resources but is designed to be open and pluggable for usage with other cloud services that wish to provide an implementation or custom backends.

Documentation is available here.

Index

Modules

adapter-core analytics From 118196956f651f1a71e9e08073f670fec1ae2380 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 09:33:10 -0700 Subject: [PATCH 41/50] chore(deps-dev): bump next from 14.2.6 to 14.2.10 (#13822) Bumps [next](https://github.com/vercel/next.js) from 14.2.6 to 14.2.10. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v14.2.6...v14.2.10) --- updated-dependencies: - dependency-name: next dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 124 +++++++++++++++++++++++++++--------------------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/yarn.lock b/yarn.lock index 68e83991cff..68846d68d83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2861,55 +2861,55 @@ write-pkg "4.0.0" yargs "16.2.0" -"@next/env@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.6.tgz#4f8ab1ca549a90bf0c83454b798b0ebae7098b15" - integrity sha512-bs5DFKV+08EjWrl8EB+KKqev1ZTNONH1vFCaHh911aaB362NnP32UDTbE9VQhyiAgbFqJsfDkSxFERNDDb3j0g== - -"@next/swc-darwin-arm64@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.6.tgz#38dfd8716e52dd1f52cfd3e461721d3e984887c6" - integrity sha512-BtJZb+hYXGaVJJivpnDoi3JFVn80SHKCiiRUW3kk1SY6UCUy5dWFFSbh+tGi5lHAughzeduMyxbLt3pspvXNSg== - -"@next/swc-darwin-x64@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.6.tgz#605a6fafbdd672d72728db86aae0fea67e3338f9" - integrity sha512-ZHRbGpH6KHarzm6qEeXKSElSXh8dS2DtDPjQt3IMwY8QVk7GbdDYjvV4NgSnDA9huGpGgnyy3tH8i5yHCqVkiQ== - -"@next/swc-linux-arm64-gnu@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.6.tgz#2a4d3c6d159c70ded6b415cbf6d7082bd823e37d" - integrity sha512-O4HqUEe3ZvKshXHcDUXn1OybN4cSZg7ZdwHJMGCXSUEVUqGTJVsOh17smqilIjooP/sIJksgl+1kcf2IWMZWHg== - -"@next/swc-linux-arm64-musl@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.6.tgz#db4850182cef343a6539d646d613f2f0333a4dc1" - integrity sha512-xUcdhr2hfalG8RDDGSFxQ75yOG894UlmFS4K2M0jLrUhauRBGOtUOxoDVwiIIuZQwZ3Y5hDsazNjdYGB0cQ9yQ== - -"@next/swc-linux-x64-gnu@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.6.tgz#dbd75f0c3b3b3fb5c4ace0b5b52b050409701b3e" - integrity sha512-InosKxw8UMcA/wEib5n2QttwHSKHZHNSbGcMepBM0CTcNwpxWzX32KETmwbhKod3zrS8n1vJ+DuJKbL9ZAB0Ag== - -"@next/swc-linux-x64-musl@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.6.tgz#b045235257e78c87878b3651cb9c7b553a20005b" - integrity sha512-d4QXfJmt5pGJ7cG8qwxKSBnO5AXuKAFYxV7qyDRHnUNvY/dgDh+oX292gATpB2AAHgjdHd5ks1wXxIEj6muLUQ== - -"@next/swc-win32-arm64-msvc@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.6.tgz#be6ec8b97db574d9c2625fd181b6fa3e4625c29d" - integrity sha512-AlgIhk4/G+PzOG1qdF1b05uKTMsuRatFlFzAi5G8RZ9h67CVSSuZSbqGHbJDlcV1tZPxq/d4G0q6qcHDKWf4aQ== - -"@next/swc-win32-ia32-msvc@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.6.tgz#bc215a8488f10042c21890a83e79eee9e84cff6d" - integrity sha512-hNukAxq7hu4o5/UjPp5jqoBEtrpCbOmnUqZSKNJG8GrUVzfq0ucdhQFVrHcLRMvQcwqqDh1a5AJN9ORnNDpgBQ== - -"@next/swc-win32-x64-msvc@14.2.6": - version "14.2.6" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.6.tgz#6b63a7b4ff3b7b410a038e3ee839c951a3136dc9" - integrity sha512-NANtw+ead1rSDK1jxmzq3TYkl03UNK2KHqUYf1nIhNci6NkeqBD4s1njSzYGIlSHxCK+wSaL8RXZm4v+NF/pMw== +"@next/env@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.10.tgz#1d3178340028ced2d679f84140877db4f420333c" + integrity sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw== + +"@next/swc-darwin-arm64@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.10.tgz#49d10ca4086fbd59ee68e204f75d7136eda2aa80" + integrity sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ== + +"@next/swc-darwin-x64@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.10.tgz#0ebeae3afb8eac433882b79543295ab83624a1a8" + integrity sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA== + +"@next/swc-linux-arm64-gnu@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.10.tgz#7e602916d2fb55a3c532f74bed926a0137c16f20" + integrity sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA== + +"@next/swc-linux-arm64-musl@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.10.tgz#6b143f628ccee490b527562e934f8de578d4be47" + integrity sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ== + +"@next/swc-linux-x64-gnu@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.10.tgz#086f2f16a0678890a1eb46518c4dda381b046082" + integrity sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg== + +"@next/swc-linux-x64-musl@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.10.tgz#1befef10ed8dbcc5047b5d637a25ae3c30a0bfc3" + integrity sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA== + +"@next/swc-win32-arm64-msvc@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.10.tgz#731f52c3ae3c56a26cf21d474b11ae1529531209" + integrity sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ== + +"@next/swc-win32-ia32-msvc@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.10.tgz#32723ef7f04e25be12af357cc72ddfdd42fd1041" + integrity sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg== + +"@next/swc-win32-x64-msvc@14.2.10": + version "14.2.10" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.10.tgz#ee1d036cb5ec871816f96baee7991035bb242455" + integrity sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ== "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" @@ -12098,11 +12098,11 @@ neo-async@^2.5.0, neo-async@^2.6.2: integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== "next@>= 13.5.0 < 15.0.0": - version "14.2.6" - resolved "https://registry.yarnpkg.com/next/-/next-14.2.6.tgz#2d294fe1ac806231cffd52ae2cf2e469b940536d" - integrity sha512-57Su7RqXs5CBKKKOagt8gPhMM3CpjgbeQhrtei2KLAA1vTNm7jfKS+uDARkSW8ZETUflDCBIsUKGSyQdRs4U4g== + version "14.2.10" + resolved "https://registry.yarnpkg.com/next/-/next-14.2.10.tgz#331981a4fecb1ae8af1817d4db98fc9687ee1cb6" + integrity sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww== dependencies: - "@next/env" "14.2.6" + "@next/env" "14.2.10" "@swc/helpers" "0.5.5" busboy "1.6.0" caniuse-lite "^1.0.30001579" @@ -12110,15 +12110,15 @@ neo-async@^2.5.0, neo-async@^2.6.2: postcss "8.4.31" styled-jsx "5.1.1" optionalDependencies: - "@next/swc-darwin-arm64" "14.2.6" - "@next/swc-darwin-x64" "14.2.6" - "@next/swc-linux-arm64-gnu" "14.2.6" - "@next/swc-linux-arm64-musl" "14.2.6" - "@next/swc-linux-x64-gnu" "14.2.6" - "@next/swc-linux-x64-musl" "14.2.6" - "@next/swc-win32-arm64-msvc" "14.2.6" - "@next/swc-win32-ia32-msvc" "14.2.6" - "@next/swc-win32-x64-msvc" "14.2.6" + "@next/swc-darwin-arm64" "14.2.10" + "@next/swc-darwin-x64" "14.2.10" + "@next/swc-linux-arm64-gnu" "14.2.10" + "@next/swc-linux-arm64-musl" "14.2.10" + "@next/swc-linux-x64-gnu" "14.2.10" + "@next/swc-linux-x64-musl" "14.2.10" + "@next/swc-win32-arm64-msvc" "14.2.10" + "@next/swc-win32-ia32-msvc" "14.2.10" + "@next/swc-win32-x64-msvc" "14.2.10" nice-try@^1.0.4: version "1.0.5" From 63bceabcaf0085fa46aa2d5c976fed709c63ef9d Mon Sep 17 00:00:00 2001 From: Ashwin Kumar Date: Mon, 23 Sep 2024 13:49:20 -0700 Subject: [PATCH 42/50] fix(storage): md5 calculation for react native (#13836) * fix(storage): md5 calculation for react native * chore: update unit tests * code cleanup --------- Co-authored-by: Ashwin Kumar --- .../providers/s3/utils/md5.native.test.ts | 18 +++++++++--------- .../__tests__/providers/s3/utils/md5.test.ts | 18 +++++++++--------- .../src/providers/s3/utils/md5.native.ts | 12 ++---------- packages/storage/src/providers/s3/utils/md5.ts | 12 ++---------- 4 files changed, 22 insertions(+), 38 deletions(-) diff --git a/packages/storage/__tests__/providers/s3/utils/md5.native.test.ts b/packages/storage/__tests__/providers/s3/utils/md5.native.test.ts index aea1eab7743..ec70d0a8e14 100644 --- a/packages/storage/__tests__/providers/s3/utils/md5.native.test.ts +++ b/packages/storage/__tests__/providers/s3/utils/md5.native.test.ts @@ -69,23 +69,23 @@ describe('calculateContentMd5 (native)', () => { mockMd5.mockReset(); }); - it('calculates MD5 for content type: string', async () => { - await calculateContentMd5(stringContent); - const [mockMd5Instance] = mockMd5.mock.instances; - expect(mockMd5Instance.update.mock.calls[0][0]).toBe(stringContent); - expect(mockToBase64).toHaveBeenCalled(); - }); - it.each([ + { type: 'string', content: stringContent }, { type: 'ArrayBuffer view', content: new Uint8Array() }, { type: 'ArrayBuffer', content: new ArrayBuffer(8) }, - { type: 'Blob', content: new Blob([stringContent]) }, ])('calculates MD5 for content type: $type', async ({ content }) => { + await calculateContentMd5(content); + const [mockMd5Instance] = mockMd5.mock.instances; + expect(mockMd5Instance.update.mock.calls[0][0]).toBe(content); + expect(mockToBase64).toHaveBeenCalled(); + }); + + it('calculates MD5 for content type: blob', async () => { Object.defineProperty(global, 'FileReader', { writable: true, value: jest.fn(() => mockSuccessfulFileReader), }); - await calculateContentMd5(content); + await calculateContentMd5(new Blob([stringContent])); const [mockMd5Instance] = mockMd5.mock.instances; expect(mockMd5Instance.update.mock.calls[0][0]).toBe(fileReaderResult); expect(mockSuccessfulFileReader.readAsArrayBuffer).toHaveBeenCalled(); diff --git a/packages/storage/__tests__/providers/s3/utils/md5.test.ts b/packages/storage/__tests__/providers/s3/utils/md5.test.ts index 2de7f7dfd0e..7412d58e571 100644 --- a/packages/storage/__tests__/providers/s3/utils/md5.test.ts +++ b/packages/storage/__tests__/providers/s3/utils/md5.test.ts @@ -46,23 +46,23 @@ describe('calculateContentMd5', () => { mockMd5.mockReset(); }); - it('calculates MD5 for content type: string', async () => { - await calculateContentMd5(stringContent); - const [mockMd5Instance] = mockMd5.mock.instances; - expect(mockMd5Instance.update.mock.calls[0][0]).toBe(stringContent); - expect(mockToBase64).toHaveBeenCalled(); - }); - it.each([ + { type: 'string', content: stringContent }, { type: 'ArrayBuffer view', content: new Uint8Array() }, { type: 'ArrayBuffer', content: new ArrayBuffer(8) }, - { type: 'Blob', content: new Blob([stringContent]) }, ])('calculates MD5 for content type: $type', async ({ content }) => { + await calculateContentMd5(content); + const [mockMd5Instance] = mockMd5.mock.instances; + expect(mockMd5Instance.update.mock.calls[0][0]).toBe(content); + expect(mockToBase64).toHaveBeenCalled(); + }); + + it('calculates MD5 for content type: blob', async () => { Object.defineProperty(global, 'FileReader', { writable: true, value: jest.fn(() => mockSuccessfulFileReader), }); - await calculateContentMd5(content); + await calculateContentMd5(new Blob([stringContent])); const [mockMd5Instance] = mockMd5.mock.instances; expect(mockMd5Instance.update.mock.calls[0][0]).toBe(fileReaderResult); expect(mockSuccessfulFileReader.readAsArrayBuffer).toHaveBeenCalled(); diff --git a/packages/storage/src/providers/s3/utils/md5.native.ts b/packages/storage/src/providers/s3/utils/md5.native.ts index 6c43cad24b0..a0c5a2365d8 100644 --- a/packages/storage/src/providers/s3/utils/md5.native.ts +++ b/packages/storage/src/providers/s3/utils/md5.native.ts @@ -14,16 +14,8 @@ export const calculateContentMd5 = async ( content: Blob | string | ArrayBuffer | ArrayBufferView, ): Promise => { const hasher = new Md5(); - if (typeof content === 'string') { - hasher.update(content); - } else if (ArrayBuffer.isView(content) || content instanceof ArrayBuffer) { - const blob = new Blob([content]); - const buffer = await readFile(blob); - hasher.update(buffer); - } else { - const buffer = await readFile(content); - hasher.update(buffer); - } + const buffer = content instanceof Blob ? await readFile(content) : content; + hasher.update(buffer); const digest = await hasher.digest(); return toBase64(digest); diff --git a/packages/storage/src/providers/s3/utils/md5.ts b/packages/storage/src/providers/s3/utils/md5.ts index 80292d95eea..98e04fdaf99 100644 --- a/packages/storage/src/providers/s3/utils/md5.ts +++ b/packages/storage/src/providers/s3/utils/md5.ts @@ -9,16 +9,8 @@ export const calculateContentMd5 = async ( content: Blob | string | ArrayBuffer | ArrayBufferView, ): Promise => { const hasher = new Md5(); - if (typeof content === 'string') { - hasher.update(content); - } else if (ArrayBuffer.isView(content) || content instanceof ArrayBuffer) { - const blob = new Blob([content]); - const buffer = await readFile(blob); - hasher.update(buffer); - } else { - const buffer = await readFile(content); - hasher.update(buffer); - } + const buffer = content instanceof Blob ? await readFile(content) : content; + hasher.update(buffer); const digest = await hasher.digest(); return toBase64(digest); From f3421f190da7473c30b5688c281935645488c663 Mon Sep 17 00:00:00 2001 From: Joon Choi Date: Mon, 23 Sep 2024 15:02:52 -0700 Subject: [PATCH 43/50] feat(auth): Enable resumable SignIn (#13483) * Auth Resumable Sign In --------- Co-authored-by: JoonWon Choi --- .github/integ-config/integ-all.yml | 14 + .../providers/cognito/signInResumable.test.ts | 268 ++++++++++++++++++ .../cognito/signInStateManagement.test.ts | 1 + .../cognito/signInWithRedirect.test.ts | 15 +- .../providers/cognito/apis/confirmSignIn.ts | 9 +- .../cognito/apis/signInWithCustomAuth.ts | 9 +- .../cognito/apis/signInWithCustomSRPAuth.ts | 9 +- .../providers/cognito/apis/signInWithSRP.ts | 9 +- .../cognito/apis/signInWithUserPassword.ts | 9 +- .../providers/cognito/utils/signInStore.ts | 112 +++++++- packages/aws-amplify/package.json | 6 +- .../storage/SyncSessionStorage.test.ts | 80 ++++++ .../storage-mechanisms-node-runtime.test.ts | 29 -- packages/core/src/index.ts | 1 + .../core/src/storage/SyncKeyValueStorage.ts | 59 ++++ .../core/src/storage/SyncSessionStorage.ts | 14 + packages/core/src/storage/index.ts | 2 + packages/core/src/types/storage.ts | 7 + 18 files changed, 577 insertions(+), 76 deletions(-) create mode 100644 packages/auth/__tests__/providers/cognito/signInResumable.test.ts create mode 100644 packages/core/__tests__/storage/SyncSessionStorage.test.ts delete mode 100644 packages/core/__tests__/storage/storage-mechanisms-node-runtime.test.ts create mode 100644 packages/core/src/storage/SyncKeyValueStorage.ts create mode 100644 packages/core/src/storage/SyncSessionStorage.ts diff --git a/.github/integ-config/integ-all.yml b/.github/integ-config/integ-all.yml index c7316c37c1f..249c54a53fd 100644 --- a/.github/integ-config/integ-all.yml +++ b/.github/integ-config/integ-all.yml @@ -609,6 +609,20 @@ tests: sample_name: [subdomains] spec: subdomains browser: [chrome] + - test_name: integ_next_custom_auth + desc: 'Sign-in with Custom Auth flow' + framework: next + category: auth + sample_name: [custom-auth] + spec: custom-auth + browser: *minimal_browser_list + - test_name: integ_next_auth_sign_in_with_sms_mfa + desc: 'Resumable sign in with SMS MFA flow' + framework: next + category: auth + sample_name: [mfa] + spec: sign-in-resumable-mfa + browser: [chrome] # DISABLED Angular/Vue tests: # TODO: delete tests or add custom ui logic to support them. diff --git a/packages/auth/__tests__/providers/cognito/signInResumable.test.ts b/packages/auth/__tests__/providers/cognito/signInResumable.test.ts new file mode 100644 index 00000000000..92f2170a9c6 --- /dev/null +++ b/packages/auth/__tests__/providers/cognito/signInResumable.test.ts @@ -0,0 +1,268 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { Amplify, syncSessionStorage } from '@aws-amplify/core'; + +import { + setActiveSignInState, + signInStore, +} from '../../../src/providers/cognito/utils/signInStore'; +import { cognitoUserPoolsTokenProvider } from '../../../src/providers/cognito/tokenProvider'; +import { + ChallengeName, + RespondToAuthChallengeCommandOutput, +} from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; +import * as signInHelpers from '../../../src/providers/cognito/utils/signInHelpers'; +import { signIn } from '../../../src/providers/cognito'; + +import { setUpGetConfig } from './testUtils/setUpGetConfig'; +import { authAPITestParams } from './testUtils/authApiTestParams'; + +const signInStoreImplementation = require('../../../src/providers/cognito/utils/signInStore'); + +jest.mock('@aws-amplify/core/internals/utils'); +jest.mock('../../../src/providers/cognito/apis/getCurrentUser'); +jest.mock('@aws-amplify/core', () => ({ + ...(jest.createMockFromModule('@aws-amplify/core') as object), + Amplify: { + getConfig: jest.fn(() => ({})), + ADD_OAUTH_LISTENER: jest.fn(() => ({})), + }, + syncSessionStorage: { + setItem: jest.fn((key, value) => { + window.sessionStorage.setItem(key, value); + }), + getItem: jest.fn((key: string) => { + return window.sessionStorage.getItem(key); + }), + removeItem: jest.fn((key: string) => { + window.sessionStorage.removeItem(key); + }), + }, +})); + +const signInStateKeys: Record = { + username: 'CognitoSignInState.username', + challengeName: 'CognitoSignInState.challengeName', + signInSession: 'CognitoSignInState.signInSession', + expiry: 'CognitoSignInState.expiry', +}; + +const user1: Record = { + username: 'joonchoi', + challengeName: 'CUSTOM_CHALLENGE', + signInSession: '888577-ltfgo-42d8-891d-666l858766g7', + expiry: '1234567', +}; + +const populateValidTestSyncStorage = () => { + syncSessionStorage.setItem(signInStateKeys.username, user1.username); + syncSessionStorage.setItem( + signInStateKeys.signInSession, + user1.signInSession, + ); + syncSessionStorage.setItem( + signInStateKeys.challengeName, + user1.challengeName, + ); + syncSessionStorage.setItem( + signInStateKeys.expiry, + (new Date().getTime() + 9999999).toString(), + ); + + signInStore.dispatch({ + type: 'SET_INITIAL_STATE', + }); +}; + +const populateInvalidTestSyncStorage = () => { + syncSessionStorage.setItem(signInStateKeys.username, user1.username); + syncSessionStorage.setItem( + signInStateKeys.signInSession, + user1.signInSession, + ); + syncSessionStorage.setItem( + signInStateKeys.challengeName, + user1.challengeName, + ); + syncSessionStorage.setItem( + signInStateKeys.expiry, + (new Date().getTime() - 99999).toString(), + ); + + signInStore.dispatch({ + type: 'SET_INITIAL_STATE', + }); +}; + +describe('signInStore', () => { + const authConfig = { + Cognito: { + userPoolClientId: '123456-abcde-42d8-891d-666l858766g7', + userPoolId: 'us-west-7_ampjc', + }, + }; + + const session = '1234234232'; + const challengeName = 'SMS_MFA'; + const { username } = authAPITestParams.user1; + const { password } = authAPITestParams.user1; + + beforeEach(() => { + cognitoUserPoolsTokenProvider.setAuthConfig(authConfig); + }); + + beforeAll(() => { + setUpGetConfig(Amplify); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + afterAll(() => { + jest.restoreAllMocks(); + }); + + test('LocalSignInState is empty after initialization', async () => { + const localSignInState = signInStore.getState(); + + expect(localSignInState).toEqual({ + challengeName: undefined, + signInSession: undefined, + username: undefined, + }); + signInStore.dispatch({ type: 'RESET_STATE' }); + }); + + test('State is set after calling setActiveSignInState', async () => { + const persistSignInStateSpy = jest.spyOn( + signInStoreImplementation, + 'persistSignInState', + ); + setActiveSignInState(user1); + const localSignInState = signInStore.getState(); + + expect(localSignInState).toEqual(user1); + expect(persistSignInStateSpy).toHaveBeenCalledTimes(1); + expect(persistSignInStateSpy).toHaveBeenCalledWith(user1); + signInStore.dispatch({ type: 'RESET_STATE' }); + }); + + test('State is updated after calling SignIn', async () => { + const handleUserSRPAuthflowSpy = jest + .spyOn(signInHelpers, 'handleUserSRPAuthFlow') + .mockImplementationOnce( + async (): Promise => ({ + ChallengeName: challengeName, + Session: session, + $metadata: {}, + ChallengeParameters: { + CODE_DELIVERY_DELIVERY_MEDIUM: 'SMS', + CODE_DELIVERY_DESTINATION: '*******9878', + }, + }), + ); + + await signIn({ + username, + password, + }); + const newLocalSignInState = signInStore.getState(); + + expect(handleUserSRPAuthflowSpy).toHaveBeenCalledTimes(1); + expect(newLocalSignInState).toEqual({ + challengeName, + signInSession: session, + username, + signInDetails: { + loginId: username, + authFlowType: 'USER_SRP_AUTH', + }, + }); + handleUserSRPAuthflowSpy.mockClear(); + }); + + test('The stored sign-in state should be rehydrated if the sign-in session is still valid.', () => { + populateValidTestSyncStorage(); + + const localSignInState = signInStore.getState(); + + expect(localSignInState).toEqual({ + username: user1.username, + challengeName: user1.challengeName, + signInSession: user1.signInSession, + }); + signInStore.dispatch({ type: 'RESET_STATE' }); + }); + + test('sign-in store should return undefined state when the sign-in session is expired', async () => { + populateInvalidTestSyncStorage(); + + const localSignInState = signInStore.getState(); + + expect(localSignInState).toEqual({ + username: undefined, + challengeName: undefined, + signInSession: undefined, + }); + signInStore.dispatch({ type: 'RESET_STATE' }); + }); + + test('State SignInSession is updated after dispatching custom session value', () => { + const persistSignInStateSpy = jest.spyOn( + signInStoreImplementation, + 'persistSignInState', + ); + const newSignInSessionID = '135790-dodge-2468-9aaa-kersh23lad00'; + + populateValidTestSyncStorage(); + + const localSignInState = signInStore.getState(); + expect(localSignInState).toEqual({ + username: user1.username, + challengeName: user1.challengeName, + signInSession: user1.signInSession, + }); + + signInStore.dispatch({ + type: 'SET_SIGN_IN_SESSION', + value: newSignInSessionID, + }); + + expect(persistSignInStateSpy).toHaveBeenCalledTimes(1); + expect(persistSignInStateSpy).toHaveBeenCalledWith({ + signInSession: newSignInSessionID, + }); + const newLocalSignInState = signInStore.getState(); + expect(newLocalSignInState).toEqual({ + username: user1.username, + challengeName: user1.challengeName, + signInSession: newSignInSessionID, + }); + }); + + test('State Challenge Name is updated after dispatching custom challenge name', () => { + const newChallengeName = 'RANDOM_CHALLENGE' as ChallengeName; + + populateValidTestSyncStorage(); + + const localSignInState = signInStore.getState(); + expect(localSignInState).toEqual({ + username: user1.username, + challengeName: user1.challengeName, + signInSession: user1.signInSession, + }); + + signInStore.dispatch({ + type: 'SET_CHALLENGE_NAME', + value: newChallengeName, + }); + + const newLocalSignInState = signInStore.getState(); + expect(newLocalSignInState).toEqual({ + username: user1.username, + challengeName: newChallengeName, + signInSession: user1.signInSession, + }); + }); +}); diff --git a/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts b/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts index 80006cbf675..5e43c1c7636 100644 --- a/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts @@ -30,6 +30,7 @@ describe('local sign-in state management tests', () => { beforeEach(() => { cognitoUserPoolsTokenProvider.setAuthConfig(authConfig); + signInStore.dispatch({ type: 'RESET_STATE' }); }); test('local state management should return state after signIn returns a ChallengeName', async () => { diff --git a/packages/auth/__tests__/providers/cognito/signInWithRedirect.test.ts b/packages/auth/__tests__/providers/cognito/signInWithRedirect.test.ts index 8f91323319f..486d4fd9a81 100644 --- a/packages/auth/__tests__/providers/cognito/signInWithRedirect.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInWithRedirect.test.ts @@ -42,7 +42,20 @@ jest.mock('@aws-amplify/core', () => { getConfig: jest.fn(() => mockAuthConfigWithOAuth), [ACTUAL_ADD_OAUTH_LISTENER]: jest.fn(), }, - ConsoleLogger: jest.fn(), + ConsoleLogger: jest.fn().mockImplementation(() => { + return { warn: jest.fn() }; + }), + syncSessionStorage: { + setItem: jest.fn((key, value) => { + window.sessionStorage.setItem(key, value); + }), + getItem: jest.fn((key: string) => { + return window.sessionStorage.getItem(key); + }), + removeItem: jest.fn((key: string) => { + window.sessionStorage.removeItem(key); + }), + }, }; }); diff --git a/packages/auth/src/providers/cognito/apis/confirmSignIn.ts b/packages/auth/src/providers/cognito/apis/confirmSignIn.ts index b8e8475aa42..eb51651eaed 100644 --- a/packages/auth/src/providers/cognito/apis/confirmSignIn.ts +++ b/packages/auth/src/providers/cognito/apis/confirmSignIn.ts @@ -10,11 +10,7 @@ import { VerifySoftwareTokenException, } from '../types/errors'; import { ConfirmSignInInput, ConfirmSignInOutput } from '../types'; -import { - cleanActiveSignInState, - setActiveSignInState, - signInStore, -} from '../utils/signInStore'; +import { setActiveSignInState, signInStore } from '../utils/signInStore'; import { AuthError } from '../../../errors/AuthError'; import { getNewDeviceMetadata, @@ -109,7 +105,8 @@ export async function confirmSignIn( }); if (AuthenticationResult) { - cleanActiveSignInState(); + signInStore.dispatch({ type: 'RESET_STATE' }); + await cacheCognitoTokens({ username, ...AuthenticationResult, diff --git a/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts b/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts index a666fba0acb..e783f1fff3f 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts @@ -21,10 +21,7 @@ import { SignInWithCustomAuthInput, SignInWithCustomAuthOutput, } from '../types'; -import { - cleanActiveSignInState, - setActiveSignInState, -} from '../utils/signInStore'; +import { setActiveSignInState, signInStore } from '../utils/signInStore'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { ChallengeName, @@ -84,7 +81,7 @@ export async function signInWithCustomAuth( signInDetails, }); if (AuthenticationResult) { - cleanActiveSignInState(); + signInStore.dispatch({ type: 'RESET_STATE' }); await cacheCognitoTokens({ username: activeUsername, @@ -111,7 +108,7 @@ export async function signInWithCustomAuth( challengeParameters: retiredChallengeParameters as ChallengeParameters, }); } catch (error) { - cleanActiveSignInState(); + signInStore.dispatch({ type: 'RESET_STATE' }); assertServiceError(error); const result = getSignInResultFromError(error.name); if (result) return result; diff --git a/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts b/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts index a22f98b3804..b5e44f2937c 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts @@ -23,10 +23,7 @@ import { SignInWithCustomSRPAuthInput, SignInWithCustomSRPAuthOutput, } from '../types'; -import { - cleanActiveSignInState, - setActiveSignInState, -} from '../utils/signInStore'; +import { setActiveSignInState, signInStore } from '../utils/signInStore'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { ChallengeName, @@ -89,6 +86,7 @@ export async function signInWithCustomSRPAuth( signInDetails, }); if (AuthenticationResult) { + signInStore.dispatch({ type: 'RESET_STATE' }); await cacheCognitoTokens({ username: activeUsername, ...AuthenticationResult, @@ -100,7 +98,6 @@ export async function signInWithCustomSRPAuth( }), signInDetails, }); - cleanActiveSignInState(); await dispatchSignedInHubEvent(); @@ -115,7 +112,7 @@ export async function signInWithCustomSRPAuth( challengeParameters: handledChallengeParameters as ChallengeParameters, }); } catch (error) { - cleanActiveSignInState(); + signInStore.dispatch({ type: 'RESET_STATE' }); assertServiceError(error); const result = getSignInResultFromError(error.name); if (result) return result; diff --git a/packages/auth/src/providers/cognito/apis/signInWithSRP.ts b/packages/auth/src/providers/cognito/apis/signInWithSRP.ts index 9bb8d4deca7..5e7cb57a08e 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithSRP.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithSRP.ts @@ -27,10 +27,7 @@ import { SignInWithSRPInput, SignInWithSRPOutput, } from '../types'; -import { - cleanActiveSignInState, - setActiveSignInState, -} from '../utils/signInStore'; +import { setActiveSignInState, signInStore } from '../utils/signInStore'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { tokenOrchestrator } from '../tokenProvider'; import { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent'; @@ -89,7 +86,7 @@ export async function signInWithSRP( signInDetails, }); if (AuthenticationResult) { - cleanActiveSignInState(); + signInStore.dispatch({ type: 'RESET_STATE' }); await cacheCognitoTokens({ username: activeUsername, ...AuthenticationResult, @@ -115,7 +112,7 @@ export async function signInWithSRP( challengeParameters: handledChallengeParameters as ChallengeParameters, }); } catch (error) { - cleanActiveSignInState(); + signInStore.dispatch({ type: 'RESET_STATE' }); assertServiceError(error); const result = getSignInResultFromError(error.name); if (result) return result; diff --git a/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts b/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts index 071f54f8313..01cfb868924 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts @@ -25,10 +25,7 @@ import { SignInWithUserPasswordInput, SignInWithUserPasswordOutput, } from '../types'; -import { - cleanActiveSignInState, - setActiveSignInState, -} from '../utils/signInStore'; +import { setActiveSignInState, signInStore } from '../utils/signInStore'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { tokenOrchestrator } from '../tokenProvider'; import { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent'; @@ -84,6 +81,7 @@ export async function signInWithUserPassword( signInDetails, }); if (AuthenticationResult) { + signInStore.dispatch({ type: 'RESET_STATE' }); await cacheCognitoTokens({ ...AuthenticationResult, username: activeUsername, @@ -95,7 +93,6 @@ export async function signInWithUserPassword( }), signInDetails, }); - cleanActiveSignInState(); await dispatchSignedInHubEvent(); @@ -110,7 +107,7 @@ export async function signInWithUserPassword( challengeParameters: retriedChallengeParameters as ChallengeParameters, }); } catch (error) { - cleanActiveSignInState(); + signInStore.dispatch({ type: 'RESET_STATE' }); assertServiceError(error); const result = getSignInResultFromError(error.name); if (result) return result; diff --git a/packages/auth/src/providers/cognito/utils/signInStore.ts b/packages/auth/src/providers/cognito/utils/signInStore.ts index fd07cb15e6d..748e6f0eccf 100644 --- a/packages/auth/src/providers/cognito/utils/signInStore.ts +++ b/packages/auth/src/providers/cognito/utils/signInStore.ts @@ -1,6 +1,8 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +import { syncSessionStorage } from '@aws-amplify/core'; + import { CognitoAuthSignInDetails } from '../types'; import { ChallengeName } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; @@ -17,7 +19,8 @@ type SignInAction = | { type: 'SET_SIGN_IN_STATE'; value: SignInState } | { type: 'SET_USERNAME'; value?: string } | { type: 'SET_CHALLENGE_NAME'; value?: ChallengeName } - | { type: 'SET_SIGN_IN_SESSION'; value?: string }; + | { type: 'SET_SIGN_IN_SESSION'; value?: string } + | { type: 'RESET_STATE' }; type Store = (reducer: Reducer) => { getState(): ReturnType>; @@ -26,44 +29,110 @@ type Store = (reducer: Reducer) => { type Reducer = (state: State, action: Action) => State; +// Minutes until stored session invalidates +const MS_TO_EXPIRY = 3 * 60 * 1000; // 3 mins +const TGT_STATE = 'CognitoSignInState'; +const SIGN_IN_STATE_KEYS = { + username: `${TGT_STATE}.username`, + challengeName: `${TGT_STATE}.challengeName`, + signInSession: `${TGT_STATE}.signInSession`, + expiry: `${TGT_STATE}.expiry`, +}; + const signInReducer: Reducer = (state, action) => { switch (action.type) { case 'SET_SIGN_IN_SESSION': + persistSignInState({ signInSession: action.value }); + return { ...state, signInSession: action.value, }; + case 'SET_SIGN_IN_STATE': + persistSignInState(action.value); + return { ...action.value, }; + case 'SET_CHALLENGE_NAME': + persistSignInState({ challengeName: action.value }); + return { ...state, challengeName: action.value, }; + case 'SET_USERNAME': + persistSignInState({ username: action.value }); + return { ...state, username: action.value, }; + case 'SET_INITIAL_STATE': - return defaultState(); + return initializeState(); + + case 'RESET_STATE': + clearPersistedSignInState(); + + return getDefaultState(); + + // this state is never reachable default: return state; } }; -function defaultState(): SignInState { - return { - username: undefined, - challengeName: undefined, - signInSession: undefined, - }; -} +const isExpired = (expiryDate: string | null): boolean => { + const expiryTimestamp = Number(expiryDate); + const currentTimestamp = Date.now(); + + return expiryTimestamp <= currentTimestamp; +}; + +const clearPersistedSignInState = () => { + for (const storedKey of Object.values(SIGN_IN_STATE_KEYS)) { + syncSessionStorage.removeItem(storedKey); + } +}; + +const getDefaultState = (): SignInState => ({ + username: undefined, + challengeName: undefined, + signInSession: undefined, +}); + +// Hydrate signInStore from Synced Session Storage +const initializeState = (): SignInState => { + const expiry = syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.expiry); + + if (!expiry || (expiry && isExpired(expiry))) { + clearPersistedSignInState(); + + return getDefaultState(); + } else { + const username = + syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.username) ?? undefined; + + const challengeName = (syncSessionStorage.getItem( + SIGN_IN_STATE_KEYS.challengeName, + ) ?? undefined) as ChallengeName; + const signInSession = + syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.signInSession) ?? undefined; + + return { + username, + challengeName, + signInSession, + }; + } +}; const createStore: Store = reducer => { - let currentState = reducer(defaultState(), { type: 'SET_INITIAL_STATE' }); + let currentState = reducer(getDefaultState(), { type: 'SET_INITIAL_STATE' }); return { getState: () => currentState, @@ -82,6 +151,23 @@ export function setActiveSignInState(state: SignInState): void { }); } -export function cleanActiveSignInState(): void { - signInStore.dispatch({ type: 'SET_INITIAL_STATE' }); -} +// Save local state into Session Storage +export const persistSignInState = ({ + challengeName, + signInSession, + username, +}: SignInState) => { + username && syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.username, username); + challengeName && + syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.challengeName, challengeName); + + if (signInSession) { + syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.signInSession, signInSession); + + // Updates expiry when session is passed + syncSessionStorage.setItem( + SIGN_IN_STATE_KEYS.expiry, + String(Date.now() + MS_TO_EXPIRY), + ); + } +}; diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index be4869398ad..d87979bcba3 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -383,7 +383,7 @@ "name": "[Auth] confirmSignIn (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmSignIn }", - "limit": "28.39 kB" + "limit": "28.60 kB" }, { "name": "[Auth] updateMFAPreference (Cognito)", @@ -449,7 +449,7 @@ "name": "[Auth] Basic Auth Flow (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ signIn, signOut, fetchAuthSession, confirmSignIn }", - "limit": "30.23 kB" + "limit": "30.45 kB" }, { "name": "[Auth] OAuth Auth Flow (Cognito)", @@ -497,7 +497,7 @@ "name": "[Storage] uploadData (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ uploadData }", - "limit": "19.95 kB" + "limit": "19.99 kB" } ] } diff --git a/packages/core/__tests__/storage/SyncSessionStorage.test.ts b/packages/core/__tests__/storage/SyncSessionStorage.test.ts new file mode 100644 index 00000000000..5b27081891b --- /dev/null +++ b/packages/core/__tests__/storage/SyncSessionStorage.test.ts @@ -0,0 +1,80 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import { SyncSessionStorage } from '../../src/storage/SyncSessionStorage'; + +describe('SyncSessionStorage', () => { + let sessionStorage: SyncSessionStorage; + const signInStateKeys: Record = { + username: 'CognitoSignInState.username', + challengeName: 'CognitoSignInState.challengeName', + signInSession: 'CognitoSignInState.signInSession', + expiry: 'CognitoSignInState.expiry', + }; + + const user1 = { + username: 'joonchoi', + challengeName: 'CUSTOM_CHALLENGE', + signInSession: '888577-ltfgo-42d8-891d-666l858766g7', + expiry: '1234567', + }; + + beforeEach(() => { + sessionStorage = new SyncSessionStorage(); + }); + + it('can set and retrieve item by key', () => { + sessionStorage.setItem(signInStateKeys.username, user1.username); + sessionStorage.setItem(signInStateKeys.challengeName, user1.challengeName); + sessionStorage.setItem(signInStateKeys.signInSession, user1.signInSession); + sessionStorage.setItem(signInStateKeys.expiry, user1.expiry); + + expect(sessionStorage.getItem(signInStateKeys.username)).toBe( + user1.username, + ); + expect(sessionStorage.getItem(signInStateKeys.challengeName)).toBe( + user1.challengeName, + ); + expect(sessionStorage.getItem(signInStateKeys.signInSession)).toBe( + user1.signInSession, + ); + expect(sessionStorage.getItem(signInStateKeys.expiry)).toBe(user1.expiry); + }); + + it('can override item by setting with the same key', () => { + const newUserName = 'joonchoi+test'; + sessionStorage.setItem(signInStateKeys.username, user1.username); + sessionStorage.setItem(signInStateKeys.username, newUserName); + + expect(sessionStorage.getItem(signInStateKeys.username)).toBe(newUserName); + }); + + it('can remove item by key', () => { + const newUserName = 'joonchoi+tobedeleted'; + sessionStorage.setItem(signInStateKeys.username, newUserName); + expect(sessionStorage.getItem(signInStateKeys.username)).toBe(newUserName); + sessionStorage.removeItem(signInStateKeys.username); + expect(sessionStorage.getItem(signInStateKeys.username)).toBeNull(); + }); + + it('clears all items', () => { + sessionStorage.setItem(signInStateKeys.username, user1.username); + sessionStorage.setItem(signInStateKeys.challengeName, user1.challengeName); + sessionStorage.setItem(signInStateKeys.signInSession, user1.signInSession); + sessionStorage.setItem(signInStateKeys.expiry, user1.expiry); + + sessionStorage.clear(); + + expect(sessionStorage.getItem(signInStateKeys.username)).toBeNull(); + expect(sessionStorage.getItem(signInStateKeys.challengeName)).toBeNull(); + expect(sessionStorage.getItem(signInStateKeys.signInSession)).toBeNull(); + expect(sessionStorage.getItem(signInStateKeys.expiry)).toBeNull(); + }); + + it('will not throw if trying to delete a non existing key', () => { + const badKey = 'nonExistingKey'; + + expect(() => { + sessionStorage.removeItem(badKey); + }).not.toThrow(); + }); +}); diff --git a/packages/core/__tests__/storage/storage-mechanisms-node-runtime.test.ts b/packages/core/__tests__/storage/storage-mechanisms-node-runtime.test.ts deleted file mode 100644 index 0566237962b..00000000000 --- a/packages/core/__tests__/storage/storage-mechanisms-node-runtime.test.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * @jest-environment node - */ - -import { AmplifyError, AmplifyErrorCode } from '../../src/libraryUtils'; -import { defaultStorage, sessionStorage } from '../../src/storage'; - -const key = 'k'; -const value = 'value'; - -describe('test mechanisms', () => { - test('test defaultStorage operations in node environment', async () => { - try { - await defaultStorage.setItem(key, value); - } catch (error: any) { - expect(error).toBeInstanceOf(AmplifyError); - expect(error.name).toBe(AmplifyErrorCode.PlatformNotSupported); - } - }); - - test('test sessionStorage operations in node environment', async () => { - try { - await sessionStorage.setItem(key, value); - } catch (error: any) { - expect(error).toBeInstanceOf(AmplifyError); - expect(error.name).toBe(AmplifyErrorCode.PlatformNotSupported); - } - }); -}); diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index f17968928c6..2ead3026682 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -59,6 +59,7 @@ export { CookieStorage, defaultStorage, sessionStorage, + syncSessionStorage, sharedInMemoryStorage, } from './storage'; export { KeyValueStorageInterface } from './types'; diff --git a/packages/core/src/storage/SyncKeyValueStorage.ts b/packages/core/src/storage/SyncKeyValueStorage.ts new file mode 100644 index 00000000000..33885f2af31 --- /dev/null +++ b/packages/core/src/storage/SyncKeyValueStorage.ts @@ -0,0 +1,59 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { PlatformNotSupportedError } from '../errors'; +import { SyncStorage } from '../types'; + +/** + * @internal + */ +export class SyncKeyValueStorage implements SyncStorage { + _storage?: Storage; + + constructor(storage?: Storage) { + this._storage = storage; + } + + get storage() { + if (!this._storage) throw new PlatformNotSupportedError(); + + return this._storage; + } + + /** + * This is used to set a specific item in storage + * @param {string} key - the key for the item + * @param {object} value - the value + * @returns {string} value that was set + */ + setItem(key: string, value: string) { + this.storage.setItem(key, value); + } + + /** + * This is used to get a specific key from storage + * @param {string} key - the key for the item + * This is used to clear the storage + * @returns {string} the data item + */ + getItem(key: string) { + return this.storage.getItem(key); + } + + /** + * This is used to remove an item from storage + * @param {string} key - the key being set + * @returns {string} value - value that was deleted + */ + removeItem(key: string) { + this.storage.removeItem(key); + } + + /** + * This is used to clear the storage + * @returns {string} nothing + */ + clear() { + this.storage.clear(); + } +} diff --git a/packages/core/src/storage/SyncSessionStorage.ts b/packages/core/src/storage/SyncSessionStorage.ts new file mode 100644 index 00000000000..83224bfc878 --- /dev/null +++ b/packages/core/src/storage/SyncSessionStorage.ts @@ -0,0 +1,14 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { SyncKeyValueStorage } from './SyncKeyValueStorage'; +import { getSessionStorageWithFallback } from './utils'; + +/** + * @internal + */ +export class SyncSessionStorage extends SyncKeyValueStorage { + constructor() { + super(getSessionStorageWithFallback()); + } +} diff --git a/packages/core/src/storage/index.ts b/packages/core/src/storage/index.ts index 29fba0b3dea..72219167521 100644 --- a/packages/core/src/storage/index.ts +++ b/packages/core/src/storage/index.ts @@ -5,9 +5,11 @@ import { DefaultStorage } from './DefaultStorage'; import { InMemoryStorage } from './InMemoryStorage'; import { KeyValueStorage } from './KeyValueStorage'; import { SessionStorage } from './SessionStorage'; +import { SyncSessionStorage } from './SyncSessionStorage'; export { CookieStorage } from './CookieStorage'; export const defaultStorage = new DefaultStorage(); export const sessionStorage = new SessionStorage(); +export const syncSessionStorage = new SyncSessionStorage(); export const sharedInMemoryStorage = new KeyValueStorage(new InMemoryStorage()); diff --git a/packages/core/src/types/storage.ts b/packages/core/src/types/storage.ts index d664a95b446..79a0c63e74b 100644 --- a/packages/core/src/types/storage.ts +++ b/packages/core/src/types/storage.ts @@ -21,3 +21,10 @@ export interface CookieStorageData { secure?: boolean; sameSite?: SameSite; } + +export interface SyncStorage { + setItem(key: string, value: string): void; + getItem(key: string): string | null; + removeItem(key: string): void; + clear(): void; +} From 555defc9b9915db513a58ffe642ebbd1d6adb9e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 08:23:29 -0700 Subject: [PATCH 44/50] chore(deps-dev): bump rollup from 4.21.1 to 4.22.4 (#13843) Bumps [rollup](https://github.com/rollup/rollup) from 4.21.1 to 4.22.4. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.21.1...v4.22.4) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 196 +++++++++++++++++++++++++++--------------------------- 1 file changed, 98 insertions(+), 98 deletions(-) diff --git a/yarn.lock b/yarn.lock index 68846d68d83..7c8955dfc37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4104,85 +4104,85 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.1.tgz#c3a7938551273a2b72820cf5d22e54cf41dc206e" - integrity sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg== - -"@rollup/rollup-android-arm64@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.1.tgz#fa3693e4674027702c42fcbbb86bbd0c635fd3b9" - integrity sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g== - -"@rollup/rollup-darwin-arm64@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.1.tgz#e19922f4ac1e4552a230ff8f49d5688c5c07d284" - integrity sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA== - -"@rollup/rollup-darwin-x64@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.1.tgz#897f8d47b115ea84692a29cf2366899499d4d915" - integrity sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg== - -"@rollup/rollup-linux-arm-gnueabihf@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.1.tgz#7d1e2a542f3a5744f5c24320067bd5af99ec9d62" - integrity sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ== - -"@rollup/rollup-linux-arm-musleabihf@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.1.tgz#88bec1c9df85fc5e24d49f783e19934717dd69b5" - integrity sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew== - -"@rollup/rollup-linux-arm64-gnu@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.1.tgz#6dc60f0fe7bd49ed07a2d4d9eab15e671b3bd59d" - integrity sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow== - -"@rollup/rollup-linux-arm64-musl@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.1.tgz#a03b78775c129e8333aca9e1e420e8e217ee99b9" - integrity sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA== - -"@rollup/rollup-linux-powerpc64le-gnu@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.1.tgz#ee3810647faf2c105a5a4e71260bb90b96bf87bc" - integrity sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ== - -"@rollup/rollup-linux-riscv64-gnu@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.1.tgz#385d76a088c27db8054d9f3f28d64d89294f838e" - integrity sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg== - -"@rollup/rollup-linux-s390x-gnu@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.1.tgz#daa2b62a6e6f737ebef6700a12a93c9764e18583" - integrity sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA== - -"@rollup/rollup-linux-x64-gnu@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.1.tgz#790ae96118cc892464e9f10da358c0c8a6b9acdd" - integrity sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w== - -"@rollup/rollup-linux-x64-musl@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.1.tgz#d613147f7ac15fafe2a0b6249e8484e161ca2847" - integrity sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA== - -"@rollup/rollup-win32-arm64-msvc@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.1.tgz#18349db8250559a5460d59eb3575f9781be4ab98" - integrity sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g== - -"@rollup/rollup-win32-ia32-msvc@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.1.tgz#199648b68271f7ab9d023f5c077725d51d12d466" - integrity sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw== - -"@rollup/rollup-win32-x64-msvc@4.21.1": - version "4.21.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.1.tgz#4d3ec02dbf280c20bfeac7e50cd5669b66f9108f" - integrity sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg== +"@rollup/rollup-android-arm-eabi@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5" + integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w== + +"@rollup/rollup-android-arm64@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb" + integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA== + +"@rollup/rollup-darwin-arm64@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b" + integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q== + +"@rollup/rollup-darwin-x64@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791" + integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw== + +"@rollup/rollup-linux-arm-gnueabihf@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232" + integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ== + +"@rollup/rollup-linux-arm-musleabihf@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa" + integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg== + +"@rollup/rollup-linux-arm64-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15" + integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw== + +"@rollup/rollup-linux-arm64-musl@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820" + integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e" + integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg== + +"@rollup/rollup-linux-riscv64-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128" + integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA== + +"@rollup/rollup-linux-s390x-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc" + integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q== + +"@rollup/rollup-linux-x64-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0" + integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg== + +"@rollup/rollup-linux-x64-musl@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f" + integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g== + +"@rollup/rollup-win32-arm64-msvc@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0" + integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw== + +"@rollup/rollup-win32-ia32-msvc@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422" + integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g== + +"@rollup/rollup-win32-x64-msvc@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202" + integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q== "@semantic-ui-react/event-stack@^3.1.0": version "3.1.3" @@ -13868,28 +13868,28 @@ rimraf@~2.6.2: glob "^7.1.3" rollup@^4.9.6: - version "4.21.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.1.tgz#65b9b9e9de9a64604fab083fb127f3e9eac2935d" - integrity sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg== + version "4.22.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f" + integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.21.1" - "@rollup/rollup-android-arm64" "4.21.1" - "@rollup/rollup-darwin-arm64" "4.21.1" - "@rollup/rollup-darwin-x64" "4.21.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.21.1" - "@rollup/rollup-linux-arm-musleabihf" "4.21.1" - "@rollup/rollup-linux-arm64-gnu" "4.21.1" - "@rollup/rollup-linux-arm64-musl" "4.21.1" - "@rollup/rollup-linux-powerpc64le-gnu" "4.21.1" - "@rollup/rollup-linux-riscv64-gnu" "4.21.1" - "@rollup/rollup-linux-s390x-gnu" "4.21.1" - "@rollup/rollup-linux-x64-gnu" "4.21.1" - "@rollup/rollup-linux-x64-musl" "4.21.1" - "@rollup/rollup-win32-arm64-msvc" "4.21.1" - "@rollup/rollup-win32-ia32-msvc" "4.21.1" - "@rollup/rollup-win32-x64-msvc" "4.21.1" + "@rollup/rollup-android-arm-eabi" "4.22.4" + "@rollup/rollup-android-arm64" "4.22.4" + "@rollup/rollup-darwin-arm64" "4.22.4" + "@rollup/rollup-darwin-x64" "4.22.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.22.4" + "@rollup/rollup-linux-arm-musleabihf" "4.22.4" + "@rollup/rollup-linux-arm64-gnu" "4.22.4" + "@rollup/rollup-linux-arm64-musl" "4.22.4" + "@rollup/rollup-linux-powerpc64le-gnu" "4.22.4" + "@rollup/rollup-linux-riscv64-gnu" "4.22.4" + "@rollup/rollup-linux-s390x-gnu" "4.22.4" + "@rollup/rollup-linux-x64-gnu" "4.22.4" + "@rollup/rollup-linux-x64-musl" "4.22.4" + "@rollup/rollup-win32-arm64-msvc" "4.22.4" + "@rollup/rollup-win32-ia32-msvc" "4.22.4" + "@rollup/rollup-win32-x64-msvc" "4.22.4" fsevents "~2.3.2" run-async@^2.4.0: From bcc3cbc306262ce3992f511cdf4ce72c3098f35d Mon Sep 17 00:00:00 2001 From: ashika112 <155593080+ashika112@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:26:59 -0700 Subject: [PATCH 45/50] [Chore] Refactor Storage Options (#13613) * refactor storage options naming * update casts * add bytelength base test --- .../s3/apis/uploadData/byteLength.test.ts | 39 +++++++++++++ .../src/providers/s3/apis/internal/list.ts | 6 +- .../uploadData/multipart/uploadHandlers.ts | 4 +- .../storage/src/providers/s3/types/errors.ts | 8 --- .../storage/src/providers/s3/types/index.ts | 31 +++++----- .../storage/src/providers/s3/types/inputs.ts | 56 +++++++++---------- .../storage/src/providers/s3/types/options.ts | 40 ++++++------- 7 files changed, 106 insertions(+), 78 deletions(-) create mode 100644 packages/storage/__tests__/providers/s3/apis/uploadData/byteLength.test.ts delete mode 100644 packages/storage/src/providers/s3/types/errors.ts diff --git a/packages/storage/__tests__/providers/s3/apis/uploadData/byteLength.test.ts b/packages/storage/__tests__/providers/s3/apis/uploadData/byteLength.test.ts new file mode 100644 index 00000000000..24b46ac4f0d --- /dev/null +++ b/packages/storage/__tests__/providers/s3/apis/uploadData/byteLength.test.ts @@ -0,0 +1,39 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { byteLength } from '../../../../../src/providers/s3/apis/uploadData/byteLength'; + +describe('byteLength', () => { + it('returns 0 for null or undefined', () => { + expect(byteLength(undefined)).toBe(0); + expect(byteLength(null)).toBe(0); + }); + + it('calculates byte length correctly for ASCII strings', () => { + expect(byteLength('hello')).toBe(5); + }); + + it('calculates byte length correctly for multi-byte characters', () => { + expect(byteLength('èちは')).toBe(8); + }); + + it('handles Uint8Array correctly', () => { + const input = new Uint8Array([1, 2, 3]); + expect(byteLength(input)).toBe(3); + }); + + it('handles ArrayBuffer correctly', () => { + const buffer = new ArrayBuffer(8); + expect(byteLength(buffer)).toBe(8); + }); + + it('handles File object correctly', () => { + const file = new Blob(['hello']); + expect(byteLength(file)).toBe(5); + }); + + it('returns undefined for unsupported types', () => { + const input = { unsupportedType: true }; + expect(byteLength(input)).toBeUndefined(); + }); +}); diff --git a/packages/storage/src/providers/s3/apis/internal/list.ts b/packages/storage/src/providers/s3/apis/internal/list.ts index 7fe8ccf1ed0..bbcb342a603 100644 --- a/packages/storage/src/providers/s3/apis/internal/list.ts +++ b/packages/storage/src/providers/s3/apis/internal/list.ts @@ -21,8 +21,8 @@ import { validateStorageOperationInputWithPrefix, } from '../../utils'; import { - ListAllOptionsWithPath, - ListPaginateOptionsWithPath, + ListAllWithPathOptions, + ListPaginateWithPathOptions, ResolvedS3Config, } from '../../types/options'; import { @@ -267,7 +267,7 @@ const mapCommonPrefixesToExcludedSubpaths = ( }; const getDelimiter = ( - options?: ListAllOptionsWithPath | ListPaginateOptionsWithPath, + options?: ListAllWithPathOptions | ListPaginateWithPathOptions, ): string | undefined => { if (options?.subpathStrategy?.strategy === 'exclude') { return options?.subpathStrategy?.delimiter ?? DEFAULT_DELIMITER; diff --git a/packages/storage/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts b/packages/storage/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts index e216feeede7..8d002df37db 100644 --- a/packages/storage/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +++ b/packages/storage/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts @@ -17,7 +17,7 @@ import { } from '../../../utils/constants'; import { ResolvedS3Config, - UploadDataOptionsWithKey, + UploadDataWithKeyOptions, } from '../../../types/options'; import { StorageError } from '../../../../../errors/StorageError'; import { CanceledError } from '../../../../../errors/CanceledError'; @@ -99,7 +99,7 @@ export const getMultipartUploadHandlers = ( // Resolve "key" specific options if (inputType === STORAGE_INPUT_KEY) { - const accessLevel = (uploadDataOptions as UploadDataOptionsWithKey) + const accessLevel = (uploadDataOptions as UploadDataWithKeyOptions) ?.accessLevel; resolvedKeyPrefix = resolvedS3Options.keyPrefix; diff --git a/packages/storage/src/providers/s3/types/errors.ts b/packages/storage/src/providers/s3/types/errors.ts deleted file mode 100644 index 9d757af7b6f..00000000000 --- a/packages/storage/src/providers/s3/types/errors.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -export enum S3Exception { - NotFoundException = 'NotFoundException', - ForbiddenException = 'ForbiddenException', - BadRequestException = 'BadRequestException', -} diff --git a/packages/storage/src/providers/s3/types/index.ts b/packages/storage/src/providers/s3/types/index.ts index 4efd666fb33..d38e3b8b523 100644 --- a/packages/storage/src/providers/s3/types/index.ts +++ b/packages/storage/src/providers/s3/types/index.ts @@ -2,23 +2,21 @@ // SPDX-License-Identifier: Apache-2.0 export { - GetUrlOptionsWithKey, - GetUrlOptionsWithPath, - UploadDataOptionsWithPath, - UploadDataOptionsWithKey, - GetPropertiesOptionsWithKey, - GetPropertiesOptionsWithPath, - ListAllOptionsWithPrefix, - ListPaginateOptionsWithPrefix, - ListAllOptionsWithPath, - ListPaginateOptionsWithPath, + GetUrlWithKeyOptions, + GetUrlWithPathOptions, + UploadDataWithPathOptions, + UploadDataWithKeyOptions, + GetPropertiesWithKeyOptions, + GetPropertiesWithPathOptions, + ListAllWithPrefixOptions, + ListPaginateWithPrefixOptions, + ListAllWithPathOptions, + ListPaginateWithPathOptions, RemoveOptions, - DownloadDataOptionsWithPath, - DownloadDataOptionsWithKey, - CopyDestinationOptionsWithKey, - CopySourceOptionsWithKey, - CopyWithPathSourceOptions, - CopyWithPathDestinationOptions, + DownloadDataWithPathOptions, + DownloadDataWithKeyOptions, + CopyDestinationWithKeyOptions, + CopySourceWithKeyOptions, } from './options'; export { UploadDataOutput, @@ -58,4 +56,3 @@ export { ListAllWithPathInput, ListPaginateWithPathInput, } from './inputs'; -export { S3Exception } from './errors'; diff --git a/packages/storage/src/providers/s3/types/inputs.ts b/packages/storage/src/providers/s3/types/inputs.ts index f7bd6c5db44..7b405964fb6 100644 --- a/packages/storage/src/providers/s3/types/inputs.ts +++ b/packages/storage/src/providers/s3/types/inputs.ts @@ -18,21 +18,21 @@ import { StorageUploadDataInputWithPath, } from '../../../types'; import { - CopyDestinationOptionsWithKey, - CopySourceOptionsWithKey, - DownloadDataOptionsWithKey, - DownloadDataOptionsWithPath, - GetPropertiesOptionsWithKey, - GetPropertiesOptionsWithPath, - GetUrlOptionsWithKey, - GetUrlOptionsWithPath, - ListAllOptionsWithPath, - ListAllOptionsWithPrefix, - ListPaginateOptionsWithPath, - ListPaginateOptionsWithPrefix, + CopyDestinationWithKeyOptions, + CopySourceWithKeyOptions, + DownloadDataWithKeyOptions, + DownloadDataWithPathOptions, + GetPropertiesWithKeyOptions, + GetPropertiesWithPathOptions, + GetUrlWithKeyOptions, + GetUrlWithPathOptions, + ListAllWithPathOptions, + ListAllWithPrefixOptions, + ListPaginateWithPathOptions, + ListPaginateWithPrefixOptions, RemoveOptions, - UploadDataOptionsWithKey, - UploadDataOptionsWithPath, + UploadDataWithKeyOptions, + UploadDataWithPathOptions, } from '../types'; // TODO: support use accelerate endpoint option @@ -41,8 +41,8 @@ import { * Input type for S3 copy API. */ export type CopyInput = StorageCopyInputWithKey< - CopySourceOptionsWithKey, - CopyDestinationOptionsWithKey + CopySourceWithKeyOptions, + CopyDestinationWithKeyOptions >; /** * Input type with path for S3 copy API. @@ -54,48 +54,48 @@ export type CopyWithPathInput = StorageCopyInputWithPath; * Input type for S3 getProperties API. */ export type GetPropertiesInput = - StorageGetPropertiesInputWithKey; + StorageGetPropertiesInputWithKey; /** * Input type with for S3 getProperties API. */ export type GetPropertiesWithPathInput = - StorageGetPropertiesInputWithPath; + StorageGetPropertiesInputWithPath; /** * @deprecated Use {@link GetUrlWithPathInput} instead. * Input type for S3 getUrl API. */ -export type GetUrlInput = StorageGetUrlInputWithKey; +export type GetUrlInput = StorageGetUrlInputWithKey; /** * Input type with path for S3 getUrl API. */ export type GetUrlWithPathInput = - StorageGetUrlInputWithPath; + StorageGetUrlInputWithPath; /** * Input type with path for S3 list API. Lists all bucket objects. */ export type ListAllWithPathInput = - StorageListInputWithPath; + StorageListInputWithPath; /** * Input type with path for S3 list API. Lists bucket objects with pagination. */ export type ListPaginateWithPathInput = - StorageListInputWithPath; + StorageListInputWithPath; /** * @deprecated Use {@link ListAllWithPathInput} instead. * Input type for S3 list API. Lists all bucket objects. */ -export type ListAllInput = StorageListInputWithPrefix; +export type ListAllInput = StorageListInputWithPrefix; /** * @deprecated Use {@link ListPaginateWithPathInput} instead. * Input type for S3 list API. Lists bucket objects with pagination. */ export type ListPaginateInput = - StorageListInputWithPrefix; + StorageListInputWithPrefix; /** * @deprecated Use {@link RemoveWithPathInput} instead. @@ -115,23 +115,23 @@ export type RemoveWithPathInput = StorageRemoveInputWithPath< * Input type for S3 downloadData API. */ export type DownloadDataInput = - StorageDownloadDataInputWithKey; + StorageDownloadDataInputWithKey; /** * Input type with path for S3 downloadData API. */ export type DownloadDataWithPathInput = - StorageDownloadDataInputWithPath; + StorageDownloadDataInputWithPath; /** * @deprecated Use {@link UploadDataWithPathInput} instead. * Input type for S3 uploadData API. */ export type UploadDataInput = - StorageUploadDataInputWithKey; + StorageUploadDataInputWithKey; /** * Input type with path for S3 uploadData API. */ export type UploadDataWithPathInput = - StorageUploadDataInputWithPath; + StorageUploadDataInputWithPath; diff --git a/packages/storage/src/providers/s3/types/options.ts b/packages/storage/src/providers/s3/types/options.ts index c9948eabe3b..9a608c6dd2b 100644 --- a/packages/storage/src/providers/s3/types/options.ts +++ b/packages/storage/src/providers/s3/types/options.ts @@ -74,9 +74,9 @@ interface TransferOptions { /** * Input options type for S3 getProperties API. */ -/** @deprecated Use {@link GetPropertiesOptionsWithPath} instead. */ -export type GetPropertiesOptionsWithKey = ReadOptions & CommonOptions; -export type GetPropertiesOptionsWithPath = CommonOptions; +/** @deprecated Use {@link GetPropertiesWithPathOptions} instead. */ +export type GetPropertiesWithKeyOptions = ReadOptions & CommonOptions; +export type GetPropertiesWithPathOptions = CommonOptions; /** * Input options type for S3 getProperties API. @@ -84,25 +84,25 @@ export type GetPropertiesOptionsWithPath = CommonOptions; export type RemoveOptions = WriteOptions & CommonOptions; /** - * @deprecated Use {@link ListAllOptionsWithPath} instead. + * @deprecated Use {@link ListAllWithPathOptions} instead. * Input options type with prefix for S3 list all API. */ -export type ListAllOptionsWithPrefix = StorageListAllOptions & +export type ListAllWithPrefixOptions = StorageListAllOptions & ReadOptions & CommonOptions; /** - * @deprecated Use {@link ListPaginateOptionsWithPath} instead. + * @deprecated Use {@link ListPaginateWithPathOptions} instead. * Input options type with prefix for S3 list API to paginate items. */ -export type ListPaginateOptionsWithPrefix = StorageListPaginateOptions & +export type ListPaginateWithPrefixOptions = StorageListPaginateOptions & ReadOptions & CommonOptions; /** * Input options type with path for S3 list all API. */ -export type ListAllOptionsWithPath = Omit< +export type ListAllWithPathOptions = Omit< StorageListAllOptions, 'accessLevel' > & @@ -113,7 +113,7 @@ export type ListAllOptionsWithPath = Omit< /** * Input options type with path for S3 list API to paginate items. */ -export type ListPaginateOptionsWithPath = Omit< +export type ListPaginateWithPathOptions = Omit< StorageListPaginateOptions, 'accessLevel' > & @@ -150,9 +150,9 @@ export type GetUrlOptions = CommonOptions & { contentType?: string; }; -/** @deprecated Use {@link GetUrlOptionsWithPath} instead. */ -export type GetUrlOptionsWithKey = ReadOptions & GetUrlOptions; -export type GetUrlOptionsWithPath = GetUrlOptions; +/** @deprecated Use {@link GetUrlWithPathOptions} instead. */ +export type GetUrlWithKeyOptions = ReadOptions & GetUrlOptions; +export type GetUrlWithPathOptions = GetUrlOptions; /** * Input options type for S3 downloadData API. @@ -161,9 +161,9 @@ export type DownloadDataOptions = CommonOptions & TransferOptions & BytesRangeOptions; -/** @deprecated Use {@link DownloadDataOptionsWithPath} instead. */ -export type DownloadDataOptionsWithKey = ReadOptions & DownloadDataOptions; -export type DownloadDataOptionsWithPath = DownloadDataOptions; +/** @deprecated Use {@link DownloadDataWithPathOptions} instead. */ +export type DownloadDataWithKeyOptions = ReadOptions & DownloadDataOptions; +export type DownloadDataWithPathOptions = DownloadDataOptions; export type UploadDataOptions = CommonOptions & TransferOptions & { @@ -192,19 +192,19 @@ export type UploadDataOptions = CommonOptions & metadata?: Record; }; -/** @deprecated Use {@link UploadDataOptionsWithPath} instead. */ -export type UploadDataOptionsWithKey = WriteOptions & UploadDataOptions; -export type UploadDataOptionsWithPath = UploadDataOptions; +/** @deprecated Use {@link UploadDataWithPathOptions} instead. */ +export type UploadDataWithKeyOptions = WriteOptions & UploadDataOptions; +export type UploadDataWithPathOptions = UploadDataOptions; /** @deprecated This may be removed in the next major version. */ -export type CopySourceOptionsWithKey = ReadOptions & { +export type CopySourceWithKeyOptions = ReadOptions & { /** @deprecated This may be removed in the next major version. */ key: string; bucket?: StorageBucket; }; /** @deprecated This may be removed in the next major version. */ -export type CopyDestinationOptionsWithKey = WriteOptions & { +export type CopyDestinationWithKeyOptions = WriteOptions & { /** @deprecated This may be removed in the next major version. */ key: string; bucket?: StorageBucket; From b26e7199d25cbc1821ff7c45b8ad78b5544b7a2f Mon Sep 17 00:00:00 2001 From: Joon Choi Date: Thu, 26 Sep 2024 12:58:45 -0700 Subject: [PATCH 46/50] Revert "feat(auth): Enable resumable SignIn" (#13855) Revert "feat(auth): Enable resumable SignIn (#13483)" This reverts commit f3421f190da7473c30b5688c281935645488c663. --- .github/integ-config/integ-all.yml | 14 - .../providers/cognito/signInResumable.test.ts | 268 ------------------ .../cognito/signInStateManagement.test.ts | 1 - .../cognito/signInWithRedirect.test.ts | 15 +- .../providers/cognito/apis/confirmSignIn.ts | 9 +- .../cognito/apis/signInWithCustomAuth.ts | 9 +- .../cognito/apis/signInWithCustomSRPAuth.ts | 9 +- .../providers/cognito/apis/signInWithSRP.ts | 9 +- .../cognito/apis/signInWithUserPassword.ts | 9 +- .../providers/cognito/utils/signInStore.ts | 112 +------- packages/aws-amplify/package.json | 6 +- .../storage/SyncSessionStorage.test.ts | 80 ------ .../storage-mechanisms-node-runtime.test.ts | 29 ++ packages/core/src/index.ts | 1 - .../core/src/storage/SyncKeyValueStorage.ts | 59 ---- .../core/src/storage/SyncSessionStorage.ts | 14 - packages/core/src/storage/index.ts | 2 - packages/core/src/types/storage.ts | 7 - 18 files changed, 76 insertions(+), 577 deletions(-) delete mode 100644 packages/auth/__tests__/providers/cognito/signInResumable.test.ts delete mode 100644 packages/core/__tests__/storage/SyncSessionStorage.test.ts create mode 100644 packages/core/__tests__/storage/storage-mechanisms-node-runtime.test.ts delete mode 100644 packages/core/src/storage/SyncKeyValueStorage.ts delete mode 100644 packages/core/src/storage/SyncSessionStorage.ts diff --git a/.github/integ-config/integ-all.yml b/.github/integ-config/integ-all.yml index 249c54a53fd..c7316c37c1f 100644 --- a/.github/integ-config/integ-all.yml +++ b/.github/integ-config/integ-all.yml @@ -609,20 +609,6 @@ tests: sample_name: [subdomains] spec: subdomains browser: [chrome] - - test_name: integ_next_custom_auth - desc: 'Sign-in with Custom Auth flow' - framework: next - category: auth - sample_name: [custom-auth] - spec: custom-auth - browser: *minimal_browser_list - - test_name: integ_next_auth_sign_in_with_sms_mfa - desc: 'Resumable sign in with SMS MFA flow' - framework: next - category: auth - sample_name: [mfa] - spec: sign-in-resumable-mfa - browser: [chrome] # DISABLED Angular/Vue tests: # TODO: delete tests or add custom ui logic to support them. diff --git a/packages/auth/__tests__/providers/cognito/signInResumable.test.ts b/packages/auth/__tests__/providers/cognito/signInResumable.test.ts deleted file mode 100644 index 92f2170a9c6..00000000000 --- a/packages/auth/__tests__/providers/cognito/signInResumable.test.ts +++ /dev/null @@ -1,268 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 -import { Amplify, syncSessionStorage } from '@aws-amplify/core'; - -import { - setActiveSignInState, - signInStore, -} from '../../../src/providers/cognito/utils/signInStore'; -import { cognitoUserPoolsTokenProvider } from '../../../src/providers/cognito/tokenProvider'; -import { - ChallengeName, - RespondToAuthChallengeCommandOutput, -} from '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider/types'; -import * as signInHelpers from '../../../src/providers/cognito/utils/signInHelpers'; -import { signIn } from '../../../src/providers/cognito'; - -import { setUpGetConfig } from './testUtils/setUpGetConfig'; -import { authAPITestParams } from './testUtils/authApiTestParams'; - -const signInStoreImplementation = require('../../../src/providers/cognito/utils/signInStore'); - -jest.mock('@aws-amplify/core/internals/utils'); -jest.mock('../../../src/providers/cognito/apis/getCurrentUser'); -jest.mock('@aws-amplify/core', () => ({ - ...(jest.createMockFromModule('@aws-amplify/core') as object), - Amplify: { - getConfig: jest.fn(() => ({})), - ADD_OAUTH_LISTENER: jest.fn(() => ({})), - }, - syncSessionStorage: { - setItem: jest.fn((key, value) => { - window.sessionStorage.setItem(key, value); - }), - getItem: jest.fn((key: string) => { - return window.sessionStorage.getItem(key); - }), - removeItem: jest.fn((key: string) => { - window.sessionStorage.removeItem(key); - }), - }, -})); - -const signInStateKeys: Record = { - username: 'CognitoSignInState.username', - challengeName: 'CognitoSignInState.challengeName', - signInSession: 'CognitoSignInState.signInSession', - expiry: 'CognitoSignInState.expiry', -}; - -const user1: Record = { - username: 'joonchoi', - challengeName: 'CUSTOM_CHALLENGE', - signInSession: '888577-ltfgo-42d8-891d-666l858766g7', - expiry: '1234567', -}; - -const populateValidTestSyncStorage = () => { - syncSessionStorage.setItem(signInStateKeys.username, user1.username); - syncSessionStorage.setItem( - signInStateKeys.signInSession, - user1.signInSession, - ); - syncSessionStorage.setItem( - signInStateKeys.challengeName, - user1.challengeName, - ); - syncSessionStorage.setItem( - signInStateKeys.expiry, - (new Date().getTime() + 9999999).toString(), - ); - - signInStore.dispatch({ - type: 'SET_INITIAL_STATE', - }); -}; - -const populateInvalidTestSyncStorage = () => { - syncSessionStorage.setItem(signInStateKeys.username, user1.username); - syncSessionStorage.setItem( - signInStateKeys.signInSession, - user1.signInSession, - ); - syncSessionStorage.setItem( - signInStateKeys.challengeName, - user1.challengeName, - ); - syncSessionStorage.setItem( - signInStateKeys.expiry, - (new Date().getTime() - 99999).toString(), - ); - - signInStore.dispatch({ - type: 'SET_INITIAL_STATE', - }); -}; - -describe('signInStore', () => { - const authConfig = { - Cognito: { - userPoolClientId: '123456-abcde-42d8-891d-666l858766g7', - userPoolId: 'us-west-7_ampjc', - }, - }; - - const session = '1234234232'; - const challengeName = 'SMS_MFA'; - const { username } = authAPITestParams.user1; - const { password } = authAPITestParams.user1; - - beforeEach(() => { - cognitoUserPoolsTokenProvider.setAuthConfig(authConfig); - }); - - beforeAll(() => { - setUpGetConfig(Amplify); - }); - - afterEach(() => { - jest.clearAllMocks(); - }); - - afterAll(() => { - jest.restoreAllMocks(); - }); - - test('LocalSignInState is empty after initialization', async () => { - const localSignInState = signInStore.getState(); - - expect(localSignInState).toEqual({ - challengeName: undefined, - signInSession: undefined, - username: undefined, - }); - signInStore.dispatch({ type: 'RESET_STATE' }); - }); - - test('State is set after calling setActiveSignInState', async () => { - const persistSignInStateSpy = jest.spyOn( - signInStoreImplementation, - 'persistSignInState', - ); - setActiveSignInState(user1); - const localSignInState = signInStore.getState(); - - expect(localSignInState).toEqual(user1); - expect(persistSignInStateSpy).toHaveBeenCalledTimes(1); - expect(persistSignInStateSpy).toHaveBeenCalledWith(user1); - signInStore.dispatch({ type: 'RESET_STATE' }); - }); - - test('State is updated after calling SignIn', async () => { - const handleUserSRPAuthflowSpy = jest - .spyOn(signInHelpers, 'handleUserSRPAuthFlow') - .mockImplementationOnce( - async (): Promise => ({ - ChallengeName: challengeName, - Session: session, - $metadata: {}, - ChallengeParameters: { - CODE_DELIVERY_DELIVERY_MEDIUM: 'SMS', - CODE_DELIVERY_DESTINATION: '*******9878', - }, - }), - ); - - await signIn({ - username, - password, - }); - const newLocalSignInState = signInStore.getState(); - - expect(handleUserSRPAuthflowSpy).toHaveBeenCalledTimes(1); - expect(newLocalSignInState).toEqual({ - challengeName, - signInSession: session, - username, - signInDetails: { - loginId: username, - authFlowType: 'USER_SRP_AUTH', - }, - }); - handleUserSRPAuthflowSpy.mockClear(); - }); - - test('The stored sign-in state should be rehydrated if the sign-in session is still valid.', () => { - populateValidTestSyncStorage(); - - const localSignInState = signInStore.getState(); - - expect(localSignInState).toEqual({ - username: user1.username, - challengeName: user1.challengeName, - signInSession: user1.signInSession, - }); - signInStore.dispatch({ type: 'RESET_STATE' }); - }); - - test('sign-in store should return undefined state when the sign-in session is expired', async () => { - populateInvalidTestSyncStorage(); - - const localSignInState = signInStore.getState(); - - expect(localSignInState).toEqual({ - username: undefined, - challengeName: undefined, - signInSession: undefined, - }); - signInStore.dispatch({ type: 'RESET_STATE' }); - }); - - test('State SignInSession is updated after dispatching custom session value', () => { - const persistSignInStateSpy = jest.spyOn( - signInStoreImplementation, - 'persistSignInState', - ); - const newSignInSessionID = '135790-dodge-2468-9aaa-kersh23lad00'; - - populateValidTestSyncStorage(); - - const localSignInState = signInStore.getState(); - expect(localSignInState).toEqual({ - username: user1.username, - challengeName: user1.challengeName, - signInSession: user1.signInSession, - }); - - signInStore.dispatch({ - type: 'SET_SIGN_IN_SESSION', - value: newSignInSessionID, - }); - - expect(persistSignInStateSpy).toHaveBeenCalledTimes(1); - expect(persistSignInStateSpy).toHaveBeenCalledWith({ - signInSession: newSignInSessionID, - }); - const newLocalSignInState = signInStore.getState(); - expect(newLocalSignInState).toEqual({ - username: user1.username, - challengeName: user1.challengeName, - signInSession: newSignInSessionID, - }); - }); - - test('State Challenge Name is updated after dispatching custom challenge name', () => { - const newChallengeName = 'RANDOM_CHALLENGE' as ChallengeName; - - populateValidTestSyncStorage(); - - const localSignInState = signInStore.getState(); - expect(localSignInState).toEqual({ - username: user1.username, - challengeName: user1.challengeName, - signInSession: user1.signInSession, - }); - - signInStore.dispatch({ - type: 'SET_CHALLENGE_NAME', - value: newChallengeName, - }); - - const newLocalSignInState = signInStore.getState(); - expect(newLocalSignInState).toEqual({ - username: user1.username, - challengeName: newChallengeName, - signInSession: user1.signInSession, - }); - }); -}); diff --git a/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts b/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts index 5e43c1c7636..80006cbf675 100644 --- a/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInStateManagement.test.ts @@ -30,7 +30,6 @@ describe('local sign-in state management tests', () => { beforeEach(() => { cognitoUserPoolsTokenProvider.setAuthConfig(authConfig); - signInStore.dispatch({ type: 'RESET_STATE' }); }); test('local state management should return state after signIn returns a ChallengeName', async () => { diff --git a/packages/auth/__tests__/providers/cognito/signInWithRedirect.test.ts b/packages/auth/__tests__/providers/cognito/signInWithRedirect.test.ts index 486d4fd9a81..8f91323319f 100644 --- a/packages/auth/__tests__/providers/cognito/signInWithRedirect.test.ts +++ b/packages/auth/__tests__/providers/cognito/signInWithRedirect.test.ts @@ -42,20 +42,7 @@ jest.mock('@aws-amplify/core', () => { getConfig: jest.fn(() => mockAuthConfigWithOAuth), [ACTUAL_ADD_OAUTH_LISTENER]: jest.fn(), }, - ConsoleLogger: jest.fn().mockImplementation(() => { - return { warn: jest.fn() }; - }), - syncSessionStorage: { - setItem: jest.fn((key, value) => { - window.sessionStorage.setItem(key, value); - }), - getItem: jest.fn((key: string) => { - return window.sessionStorage.getItem(key); - }), - removeItem: jest.fn((key: string) => { - window.sessionStorage.removeItem(key); - }), - }, + ConsoleLogger: jest.fn(), }; }); diff --git a/packages/auth/src/providers/cognito/apis/confirmSignIn.ts b/packages/auth/src/providers/cognito/apis/confirmSignIn.ts index eb51651eaed..b8e8475aa42 100644 --- a/packages/auth/src/providers/cognito/apis/confirmSignIn.ts +++ b/packages/auth/src/providers/cognito/apis/confirmSignIn.ts @@ -10,7 +10,11 @@ import { VerifySoftwareTokenException, } from '../types/errors'; import { ConfirmSignInInput, ConfirmSignInOutput } from '../types'; -import { setActiveSignInState, signInStore } from '../utils/signInStore'; +import { + cleanActiveSignInState, + setActiveSignInState, + signInStore, +} from '../utils/signInStore'; import { AuthError } from '../../../errors/AuthError'; import { getNewDeviceMetadata, @@ -105,8 +109,7 @@ export async function confirmSignIn( }); if (AuthenticationResult) { - signInStore.dispatch({ type: 'RESET_STATE' }); - + cleanActiveSignInState(); await cacheCognitoTokens({ username, ...AuthenticationResult, diff --git a/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts b/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts index e783f1fff3f..a666fba0acb 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithCustomAuth.ts @@ -21,7 +21,10 @@ import { SignInWithCustomAuthInput, SignInWithCustomAuthOutput, } from '../types'; -import { setActiveSignInState, signInStore } from '../utils/signInStore'; +import { + cleanActiveSignInState, + setActiveSignInState, +} from '../utils/signInStore'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { ChallengeName, @@ -81,7 +84,7 @@ export async function signInWithCustomAuth( signInDetails, }); if (AuthenticationResult) { - signInStore.dispatch({ type: 'RESET_STATE' }); + cleanActiveSignInState(); await cacheCognitoTokens({ username: activeUsername, @@ -108,7 +111,7 @@ export async function signInWithCustomAuth( challengeParameters: retiredChallengeParameters as ChallengeParameters, }); } catch (error) { - signInStore.dispatch({ type: 'RESET_STATE' }); + cleanActiveSignInState(); assertServiceError(error); const result = getSignInResultFromError(error.name); if (result) return result; diff --git a/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts b/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts index b5e44f2937c..a22f98b3804 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts @@ -23,7 +23,10 @@ import { SignInWithCustomSRPAuthInput, SignInWithCustomSRPAuthOutput, } from '../types'; -import { setActiveSignInState, signInStore } from '../utils/signInStore'; +import { + cleanActiveSignInState, + setActiveSignInState, +} from '../utils/signInStore'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { ChallengeName, @@ -86,7 +89,6 @@ export async function signInWithCustomSRPAuth( signInDetails, }); if (AuthenticationResult) { - signInStore.dispatch({ type: 'RESET_STATE' }); await cacheCognitoTokens({ username: activeUsername, ...AuthenticationResult, @@ -98,6 +100,7 @@ export async function signInWithCustomSRPAuth( }), signInDetails, }); + cleanActiveSignInState(); await dispatchSignedInHubEvent(); @@ -112,7 +115,7 @@ export async function signInWithCustomSRPAuth( challengeParameters: handledChallengeParameters as ChallengeParameters, }); } catch (error) { - signInStore.dispatch({ type: 'RESET_STATE' }); + cleanActiveSignInState(); assertServiceError(error); const result = getSignInResultFromError(error.name); if (result) return result; diff --git a/packages/auth/src/providers/cognito/apis/signInWithSRP.ts b/packages/auth/src/providers/cognito/apis/signInWithSRP.ts index 5e7cb57a08e..9bb8d4deca7 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithSRP.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithSRP.ts @@ -27,7 +27,10 @@ import { SignInWithSRPInput, SignInWithSRPOutput, } from '../types'; -import { setActiveSignInState, signInStore } from '../utils/signInStore'; +import { + cleanActiveSignInState, + setActiveSignInState, +} from '../utils/signInStore'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { tokenOrchestrator } from '../tokenProvider'; import { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent'; @@ -86,7 +89,7 @@ export async function signInWithSRP( signInDetails, }); if (AuthenticationResult) { - signInStore.dispatch({ type: 'RESET_STATE' }); + cleanActiveSignInState(); await cacheCognitoTokens({ username: activeUsername, ...AuthenticationResult, @@ -112,7 +115,7 @@ export async function signInWithSRP( challengeParameters: handledChallengeParameters as ChallengeParameters, }); } catch (error) { - signInStore.dispatch({ type: 'RESET_STATE' }); + cleanActiveSignInState(); assertServiceError(error); const result = getSignInResultFromError(error.name); if (result) return result; diff --git a/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts b/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts index 01cfb868924..071f54f8313 100644 --- a/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts +++ b/packages/auth/src/providers/cognito/apis/signInWithUserPassword.ts @@ -25,7 +25,10 @@ import { SignInWithUserPasswordInput, SignInWithUserPasswordOutput, } from '../types'; -import { setActiveSignInState, signInStore } from '../utils/signInStore'; +import { + cleanActiveSignInState, + setActiveSignInState, +} from '../utils/signInStore'; import { cacheCognitoTokens } from '../tokenProvider/cacheTokens'; import { tokenOrchestrator } from '../tokenProvider'; import { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent'; @@ -81,7 +84,6 @@ export async function signInWithUserPassword( signInDetails, }); if (AuthenticationResult) { - signInStore.dispatch({ type: 'RESET_STATE' }); await cacheCognitoTokens({ ...AuthenticationResult, username: activeUsername, @@ -93,6 +95,7 @@ export async function signInWithUserPassword( }), signInDetails, }); + cleanActiveSignInState(); await dispatchSignedInHubEvent(); @@ -107,7 +110,7 @@ export async function signInWithUserPassword( challengeParameters: retriedChallengeParameters as ChallengeParameters, }); } catch (error) { - signInStore.dispatch({ type: 'RESET_STATE' }); + cleanActiveSignInState(); assertServiceError(error); const result = getSignInResultFromError(error.name); if (result) return result; diff --git a/packages/auth/src/providers/cognito/utils/signInStore.ts b/packages/auth/src/providers/cognito/utils/signInStore.ts index 748e6f0eccf..fd07cb15e6d 100644 --- a/packages/auth/src/providers/cognito/utils/signInStore.ts +++ b/packages/auth/src/providers/cognito/utils/signInStore.ts @@ -1,8 +1,6 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { syncSessionStorage } from '@aws-amplify/core'; - import { CognitoAuthSignInDetails } from '../types'; import { ChallengeName } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider/types'; @@ -19,8 +17,7 @@ type SignInAction = | { type: 'SET_SIGN_IN_STATE'; value: SignInState } | { type: 'SET_USERNAME'; value?: string } | { type: 'SET_CHALLENGE_NAME'; value?: ChallengeName } - | { type: 'SET_SIGN_IN_SESSION'; value?: string } - | { type: 'RESET_STATE' }; + | { type: 'SET_SIGN_IN_SESSION'; value?: string }; type Store = (reducer: Reducer) => { getState(): ReturnType>; @@ -29,110 +26,44 @@ type Store = (reducer: Reducer) => { type Reducer = (state: State, action: Action) => State; -// Minutes until stored session invalidates -const MS_TO_EXPIRY = 3 * 60 * 1000; // 3 mins -const TGT_STATE = 'CognitoSignInState'; -const SIGN_IN_STATE_KEYS = { - username: `${TGT_STATE}.username`, - challengeName: `${TGT_STATE}.challengeName`, - signInSession: `${TGT_STATE}.signInSession`, - expiry: `${TGT_STATE}.expiry`, -}; - const signInReducer: Reducer = (state, action) => { switch (action.type) { case 'SET_SIGN_IN_SESSION': - persistSignInState({ signInSession: action.value }); - return { ...state, signInSession: action.value, }; - case 'SET_SIGN_IN_STATE': - persistSignInState(action.value); - return { ...action.value, }; - case 'SET_CHALLENGE_NAME': - persistSignInState({ challengeName: action.value }); - return { ...state, challengeName: action.value, }; - case 'SET_USERNAME': - persistSignInState({ username: action.value }); - return { ...state, username: action.value, }; - case 'SET_INITIAL_STATE': - return initializeState(); - - case 'RESET_STATE': - clearPersistedSignInState(); - - return getDefaultState(); - - // this state is never reachable + return defaultState(); default: return state; } }; -const isExpired = (expiryDate: string | null): boolean => { - const expiryTimestamp = Number(expiryDate); - const currentTimestamp = Date.now(); - - return expiryTimestamp <= currentTimestamp; -}; - -const clearPersistedSignInState = () => { - for (const storedKey of Object.values(SIGN_IN_STATE_KEYS)) { - syncSessionStorage.removeItem(storedKey); - } -}; - -const getDefaultState = (): SignInState => ({ - username: undefined, - challengeName: undefined, - signInSession: undefined, -}); - -// Hydrate signInStore from Synced Session Storage -const initializeState = (): SignInState => { - const expiry = syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.expiry); - - if (!expiry || (expiry && isExpired(expiry))) { - clearPersistedSignInState(); - - return getDefaultState(); - } else { - const username = - syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.username) ?? undefined; - - const challengeName = (syncSessionStorage.getItem( - SIGN_IN_STATE_KEYS.challengeName, - ) ?? undefined) as ChallengeName; - const signInSession = - syncSessionStorage.getItem(SIGN_IN_STATE_KEYS.signInSession) ?? undefined; - - return { - username, - challengeName, - signInSession, - }; - } -}; +function defaultState(): SignInState { + return { + username: undefined, + challengeName: undefined, + signInSession: undefined, + }; +} const createStore: Store = reducer => { - let currentState = reducer(getDefaultState(), { type: 'SET_INITIAL_STATE' }); + let currentState = reducer(defaultState(), { type: 'SET_INITIAL_STATE' }); return { getState: () => currentState, @@ -151,23 +82,6 @@ export function setActiveSignInState(state: SignInState): void { }); } -// Save local state into Session Storage -export const persistSignInState = ({ - challengeName, - signInSession, - username, -}: SignInState) => { - username && syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.username, username); - challengeName && - syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.challengeName, challengeName); - - if (signInSession) { - syncSessionStorage.setItem(SIGN_IN_STATE_KEYS.signInSession, signInSession); - - // Updates expiry when session is passed - syncSessionStorage.setItem( - SIGN_IN_STATE_KEYS.expiry, - String(Date.now() + MS_TO_EXPIRY), - ); - } -}; +export function cleanActiveSignInState(): void { + signInStore.dispatch({ type: 'SET_INITIAL_STATE' }); +} diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index d87979bcba3..be4869398ad 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -383,7 +383,7 @@ "name": "[Auth] confirmSignIn (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ confirmSignIn }", - "limit": "28.60 kB" + "limit": "28.39 kB" }, { "name": "[Auth] updateMFAPreference (Cognito)", @@ -449,7 +449,7 @@ "name": "[Auth] Basic Auth Flow (Cognito)", "path": "./dist/esm/auth/index.mjs", "import": "{ signIn, signOut, fetchAuthSession, confirmSignIn }", - "limit": "30.45 kB" + "limit": "30.23 kB" }, { "name": "[Auth] OAuth Auth Flow (Cognito)", @@ -497,7 +497,7 @@ "name": "[Storage] uploadData (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ uploadData }", - "limit": "19.99 kB" + "limit": "19.95 kB" } ] } diff --git a/packages/core/__tests__/storage/SyncSessionStorage.test.ts b/packages/core/__tests__/storage/SyncSessionStorage.test.ts deleted file mode 100644 index 5b27081891b..00000000000 --- a/packages/core/__tests__/storage/SyncSessionStorage.test.ts +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 -import { SyncSessionStorage } from '../../src/storage/SyncSessionStorage'; - -describe('SyncSessionStorage', () => { - let sessionStorage: SyncSessionStorage; - const signInStateKeys: Record = { - username: 'CognitoSignInState.username', - challengeName: 'CognitoSignInState.challengeName', - signInSession: 'CognitoSignInState.signInSession', - expiry: 'CognitoSignInState.expiry', - }; - - const user1 = { - username: 'joonchoi', - challengeName: 'CUSTOM_CHALLENGE', - signInSession: '888577-ltfgo-42d8-891d-666l858766g7', - expiry: '1234567', - }; - - beforeEach(() => { - sessionStorage = new SyncSessionStorage(); - }); - - it('can set and retrieve item by key', () => { - sessionStorage.setItem(signInStateKeys.username, user1.username); - sessionStorage.setItem(signInStateKeys.challengeName, user1.challengeName); - sessionStorage.setItem(signInStateKeys.signInSession, user1.signInSession); - sessionStorage.setItem(signInStateKeys.expiry, user1.expiry); - - expect(sessionStorage.getItem(signInStateKeys.username)).toBe( - user1.username, - ); - expect(sessionStorage.getItem(signInStateKeys.challengeName)).toBe( - user1.challengeName, - ); - expect(sessionStorage.getItem(signInStateKeys.signInSession)).toBe( - user1.signInSession, - ); - expect(sessionStorage.getItem(signInStateKeys.expiry)).toBe(user1.expiry); - }); - - it('can override item by setting with the same key', () => { - const newUserName = 'joonchoi+test'; - sessionStorage.setItem(signInStateKeys.username, user1.username); - sessionStorage.setItem(signInStateKeys.username, newUserName); - - expect(sessionStorage.getItem(signInStateKeys.username)).toBe(newUserName); - }); - - it('can remove item by key', () => { - const newUserName = 'joonchoi+tobedeleted'; - sessionStorage.setItem(signInStateKeys.username, newUserName); - expect(sessionStorage.getItem(signInStateKeys.username)).toBe(newUserName); - sessionStorage.removeItem(signInStateKeys.username); - expect(sessionStorage.getItem(signInStateKeys.username)).toBeNull(); - }); - - it('clears all items', () => { - sessionStorage.setItem(signInStateKeys.username, user1.username); - sessionStorage.setItem(signInStateKeys.challengeName, user1.challengeName); - sessionStorage.setItem(signInStateKeys.signInSession, user1.signInSession); - sessionStorage.setItem(signInStateKeys.expiry, user1.expiry); - - sessionStorage.clear(); - - expect(sessionStorage.getItem(signInStateKeys.username)).toBeNull(); - expect(sessionStorage.getItem(signInStateKeys.challengeName)).toBeNull(); - expect(sessionStorage.getItem(signInStateKeys.signInSession)).toBeNull(); - expect(sessionStorage.getItem(signInStateKeys.expiry)).toBeNull(); - }); - - it('will not throw if trying to delete a non existing key', () => { - const badKey = 'nonExistingKey'; - - expect(() => { - sessionStorage.removeItem(badKey); - }).not.toThrow(); - }); -}); diff --git a/packages/core/__tests__/storage/storage-mechanisms-node-runtime.test.ts b/packages/core/__tests__/storage/storage-mechanisms-node-runtime.test.ts new file mode 100644 index 00000000000..0566237962b --- /dev/null +++ b/packages/core/__tests__/storage/storage-mechanisms-node-runtime.test.ts @@ -0,0 +1,29 @@ +/** + * @jest-environment node + */ + +import { AmplifyError, AmplifyErrorCode } from '../../src/libraryUtils'; +import { defaultStorage, sessionStorage } from '../../src/storage'; + +const key = 'k'; +const value = 'value'; + +describe('test mechanisms', () => { + test('test defaultStorage operations in node environment', async () => { + try { + await defaultStorage.setItem(key, value); + } catch (error: any) { + expect(error).toBeInstanceOf(AmplifyError); + expect(error.name).toBe(AmplifyErrorCode.PlatformNotSupported); + } + }); + + test('test sessionStorage operations in node environment', async () => { + try { + await sessionStorage.setItem(key, value); + } catch (error: any) { + expect(error).toBeInstanceOf(AmplifyError); + expect(error.name).toBe(AmplifyErrorCode.PlatformNotSupported); + } + }); +}); diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 2ead3026682..f17968928c6 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -59,7 +59,6 @@ export { CookieStorage, defaultStorage, sessionStorage, - syncSessionStorage, sharedInMemoryStorage, } from './storage'; export { KeyValueStorageInterface } from './types'; diff --git a/packages/core/src/storage/SyncKeyValueStorage.ts b/packages/core/src/storage/SyncKeyValueStorage.ts deleted file mode 100644 index 33885f2af31..00000000000 --- a/packages/core/src/storage/SyncKeyValueStorage.ts +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -import { PlatformNotSupportedError } from '../errors'; -import { SyncStorage } from '../types'; - -/** - * @internal - */ -export class SyncKeyValueStorage implements SyncStorage { - _storage?: Storage; - - constructor(storage?: Storage) { - this._storage = storage; - } - - get storage() { - if (!this._storage) throw new PlatformNotSupportedError(); - - return this._storage; - } - - /** - * This is used to set a specific item in storage - * @param {string} key - the key for the item - * @param {object} value - the value - * @returns {string} value that was set - */ - setItem(key: string, value: string) { - this.storage.setItem(key, value); - } - - /** - * This is used to get a specific key from storage - * @param {string} key - the key for the item - * This is used to clear the storage - * @returns {string} the data item - */ - getItem(key: string) { - return this.storage.getItem(key); - } - - /** - * This is used to remove an item from storage - * @param {string} key - the key being set - * @returns {string} value - value that was deleted - */ - removeItem(key: string) { - this.storage.removeItem(key); - } - - /** - * This is used to clear the storage - * @returns {string} nothing - */ - clear() { - this.storage.clear(); - } -} diff --git a/packages/core/src/storage/SyncSessionStorage.ts b/packages/core/src/storage/SyncSessionStorage.ts deleted file mode 100644 index 83224bfc878..00000000000 --- a/packages/core/src/storage/SyncSessionStorage.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -import { SyncKeyValueStorage } from './SyncKeyValueStorage'; -import { getSessionStorageWithFallback } from './utils'; - -/** - * @internal - */ -export class SyncSessionStorage extends SyncKeyValueStorage { - constructor() { - super(getSessionStorageWithFallback()); - } -} diff --git a/packages/core/src/storage/index.ts b/packages/core/src/storage/index.ts index 72219167521..29fba0b3dea 100644 --- a/packages/core/src/storage/index.ts +++ b/packages/core/src/storage/index.ts @@ -5,11 +5,9 @@ import { DefaultStorage } from './DefaultStorage'; import { InMemoryStorage } from './InMemoryStorage'; import { KeyValueStorage } from './KeyValueStorage'; import { SessionStorage } from './SessionStorage'; -import { SyncSessionStorage } from './SyncSessionStorage'; export { CookieStorage } from './CookieStorage'; export const defaultStorage = new DefaultStorage(); export const sessionStorage = new SessionStorage(); -export const syncSessionStorage = new SyncSessionStorage(); export const sharedInMemoryStorage = new KeyValueStorage(new InMemoryStorage()); diff --git a/packages/core/src/types/storage.ts b/packages/core/src/types/storage.ts index 79a0c63e74b..d664a95b446 100644 --- a/packages/core/src/types/storage.ts +++ b/packages/core/src/types/storage.ts @@ -21,10 +21,3 @@ export interface CookieStorageData { secure?: boolean; sameSite?: SameSite; } - -export interface SyncStorage { - setItem(key: string, value: string): void; - getItem(key: string): string | null; - removeItem(key: string): void; - clear(): void; -} From c586b7b1d243df4cdaf5a4fe15deeac545639b24 Mon Sep 17 00:00:00 2001 From: AnantTiwari001 <101414969+AnantTiwari001@users.noreply.github.com> Date: Fri, 27 Sep 2024 21:54:04 +0545 Subject: [PATCH 47/50] fix(rtn-web-browser): prevent CustomTab to show in recent used app (#13847) prevent CustomTab to show in recent used app. Co-authored-by: Hui Zhao <10602282+HuiSF@users.noreply.github.com> --- .../com/amazonaws/amplify/rtnwebbrowser/WebBrowserModule.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/WebBrowserModule.kt b/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/WebBrowserModule.kt index eaa7fe5eaba..e883b90a20b 100644 --- a/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/WebBrowserModule.kt +++ b/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/WebBrowserModule.kt @@ -44,6 +44,7 @@ class WebBrowserModule( getCustomTabsPackageName(reactApplicationContext)?.let { val customTabsIntent = CustomTabsIntent.Builder(connection?.getSession()).build() customTabsIntent.intent.setPackage(it).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + customTabsIntent.intent.setPackage(it).addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) customTabsIntent.launchUrl(reactApplicationContext, Uri.parse(uriStr)) } ?: run { promise.reject(Throwable("No eligible browser found on device")) From a0d1447b6234ab1678a837d90deddf805779bc3a Mon Sep 17 00:00:00 2001 From: Hui Zhao <10602282+HuiSF@users.noreply.github.com> Date: Fri, 27 Sep 2024 12:47:12 -0700 Subject: [PATCH 48/50] fix(auth): remove redundant remove guest identityId call (#13789) --- .../IdentityIdStore.test.ts | 125 ++++++++++++++++++ .../providers/cognito/identityIdStore.test.ts | 97 -------------- .../credentialsProvider/IdentityIdStore.ts | 11 +- 3 files changed, 135 insertions(+), 98 deletions(-) create mode 100644 packages/auth/__tests__/providers/cognito/credentialsProvider/IdentityIdStore.test.ts delete mode 100644 packages/auth/__tests__/providers/cognito/identityIdStore.test.ts diff --git a/packages/auth/__tests__/providers/cognito/credentialsProvider/IdentityIdStore.test.ts b/packages/auth/__tests__/providers/cognito/credentialsProvider/IdentityIdStore.test.ts new file mode 100644 index 00000000000..94475367ec3 --- /dev/null +++ b/packages/auth/__tests__/providers/cognito/credentialsProvider/IdentityIdStore.test.ts @@ -0,0 +1,125 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { Identity, ResourcesConfig } from '@aws-amplify/core'; + +import { DefaultIdentityIdStore } from '../../../../src/providers/cognito/credentialsProvider/IdentityIdStore'; + +const mockKeyValueStorage = { + setItem: jest.fn(), + getItem: jest.fn(), + removeItem: jest.fn(), + clear: jest.fn(), +}; + +const validAuthConfig: ResourcesConfig = { + Auth: { + Cognito: { + userPoolId: 'us-east-1_test-id', + identityPoolId: 'us-east-1:test-id', + userPoolClientId: 'test-id', + allowGuestAccess: true, + }, + }, +}; +const validAuthKey = { + identityId: `com.amplify.Cognito.${ + validAuthConfig.Auth!.Cognito!.identityPoolId + }.identityId`, +}; +const validGuestIdentityId: Identity = { type: 'guest', id: 'guest-id' }; +const validPrimaryIdentityId: Identity = { type: 'primary', id: 'primary-id' }; + +const noIdentityPoolIdAuthConfig: ResourcesConfig = { + Auth: { + Cognito: { + userPoolId: 'us-east-1_test-id', + userPoolClientId: 'test-id', + }, + }, +}; + +describe('DefaultIdentityIdStore', () => { + const defaultIdStore = new DefaultIdentityIdStore(mockKeyValueStorage); + beforeAll(() => { + defaultIdStore.setAuthConfig(validAuthConfig.Auth!); + }); + + afterEach(() => { + mockKeyValueStorage.setItem.mockClear(); + mockKeyValueStorage.getItem.mockClear(); + mockKeyValueStorage.removeItem.mockClear(); + mockKeyValueStorage.clear.mockClear(); + }); + + it('should set the Auth config required to form the storage keys', async () => { + expect(defaultIdStore._authKeys).toEqual(validAuthKey); + }); + + it('should store guest identityId in keyValueStorage', async () => { + defaultIdStore.storeIdentityId(validGuestIdentityId); + expect(mockKeyValueStorage.setItem).toHaveBeenCalledWith( + validAuthKey.identityId, + validGuestIdentityId.id, + ); + expect(defaultIdStore._primaryIdentityId).toBeUndefined(); + expect(defaultIdStore._hasGuestIdentityId).toBe(true); + }); + + it('should load guest identityId from keyValueStorage', async () => { + mockKeyValueStorage.getItem.mockReturnValue(validGuestIdentityId.id); + + expect(await defaultIdStore.loadIdentityId()).toEqual(validGuestIdentityId); + }); + + it('should store primary identityId in keyValueStorage', async () => { + defaultIdStore.storeIdentityId(validPrimaryIdentityId); + expect(mockKeyValueStorage.removeItem).toHaveBeenCalledWith( + validAuthKey.identityId, + ); + expect(defaultIdStore._primaryIdentityId).toEqual( + validPrimaryIdentityId.id, + ); + expect(defaultIdStore._hasGuestIdentityId).toBe(false); + }); + + it('should load primary identityId from keyValueStorage', async () => { + expect(await defaultIdStore.loadIdentityId()).toEqual( + validPrimaryIdentityId, + ); + }); + + it('should clear the cached identityId', async () => { + defaultIdStore.clearIdentityId(); + expect(mockKeyValueStorage.removeItem).toHaveBeenCalledWith( + validAuthKey.identityId, + ); + expect(defaultIdStore._primaryIdentityId).toBeUndefined(); + }); + + it('should throw when identityPoolId is not present while setting the auth config', async () => { + expect(() => { + defaultIdStore.setAuthConfig(noIdentityPoolIdAuthConfig.Auth!); + }).toThrow('Invalid identity pool id provided.'); + }); + + it('should return null when the underlying keyValueStorage method returns null', async () => { + mockKeyValueStorage.getItem.mockReturnValue(null); + expect(await defaultIdStore.loadIdentityId()).toBeNull(); + }); + + it('should return null when the underlying keyValueStorage method throws', async () => { + mockKeyValueStorage.getItem.mockRejectedValue(new Error('Error')); + expect(await defaultIdStore.loadIdentityId()).toBeNull(); + }); + + it('should not call keyValueStorage.removeItem when there is no guest identityId to clear', async () => { + const refreshIdentityIdStore = new DefaultIdentityIdStore( + mockKeyValueStorage, + ); + refreshIdentityIdStore.setAuthConfig(validAuthConfig.Auth!); + + refreshIdentityIdStore.storeIdentityId(validPrimaryIdentityId); + expect(mockKeyValueStorage.removeItem).not.toHaveBeenCalled(); + }); +}); diff --git a/packages/auth/__tests__/providers/cognito/identityIdStore.test.ts b/packages/auth/__tests__/providers/cognito/identityIdStore.test.ts deleted file mode 100644 index 8eeb1fef5e3..00000000000 --- a/packages/auth/__tests__/providers/cognito/identityIdStore.test.ts +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -import { Identity, ResourcesConfig } from '@aws-amplify/core'; - -import { DefaultIdentityIdStore } from '../../../src/providers/cognito'; - -const mockKeyValueStorage = { - setItem: jest.fn(), - getItem: jest.fn(), - removeItem: jest.fn(), - clear: jest.fn(), -}; - -const validAuthConfig: ResourcesConfig = { - Auth: { - Cognito: { - userPoolId: 'us-east-1_test-id', - identityPoolId: 'us-east-1:test-id', - userPoolClientId: 'test-id', - allowGuestAccess: true, - }, - }, -}; -const validAuthKey = { - identityId: `com.amplify.Cognito.${ - validAuthConfig.Auth!.Cognito!.identityPoolId - }.identityId`, -}; -const validGuestIdentityId: Identity = { type: 'guest', id: 'guest-id' }; -const validPrimaryIdentityId: Identity = { type: 'primary', id: 'primary-id' }; - -const noIdentityPoolIdAuthConfig: ResourcesConfig = { - Auth: { - Cognito: { - userPoolId: 'us-east-1_test-id', - userPoolClientId: 'test-id', - }, - }, -}; - -describe('DefaultIdentityIdStore', () => { - const defaultIdStore = new DefaultIdentityIdStore(mockKeyValueStorage); - describe('Happy Path Cases:', () => { - beforeAll(() => { - defaultIdStore.setAuthConfig(validAuthConfig.Auth!); - }); - it('Should set the Auth config required to form the storage keys', async () => { - expect(defaultIdStore._authKeys).toEqual(validAuthKey); - }); - it('Should store guest identityId in keyValueStorage', async () => { - defaultIdStore.storeIdentityId(validGuestIdentityId); - expect(mockKeyValueStorage.setItem).toHaveBeenCalledWith( - validAuthKey.identityId, - validGuestIdentityId.id, - ); - expect(defaultIdStore._primaryIdentityId).toBeUndefined(); - }); - it('Should load guest identityId from keyValueStorage', async () => { - mockKeyValueStorage.getItem.mockReturnValue(validGuestIdentityId.id); - - expect(await defaultIdStore.loadIdentityId()).toEqual( - validGuestIdentityId, - ); - }); - it('Should store primary identityId in keyValueStorage', async () => { - defaultIdStore.storeIdentityId(validPrimaryIdentityId); - expect(mockKeyValueStorage.removeItem).toHaveBeenCalledWith( - validAuthKey.identityId, - ); - expect(defaultIdStore._primaryIdentityId).toEqual( - validPrimaryIdentityId.id, - ); - }); - it('Should load primary identityId from keyValueStorage', async () => { - expect(await defaultIdStore.loadIdentityId()).toEqual( - validPrimaryIdentityId, - ); - }); - it('Should clear the cached identityId', async () => { - defaultIdStore.clearIdentityId(); - expect(mockKeyValueStorage.removeItem).toHaveBeenCalledWith( - validAuthKey.identityId, - ); - expect(defaultIdStore._primaryIdentityId).toBeUndefined(); - }); - }); - describe('Error Path Cases:', () => { - it('Should assert when identityPoolId is not present while setting the auth config', async () => { - try { - defaultIdStore.setAuthConfig(noIdentityPoolIdAuthConfig.Auth!); - } catch (e: any) { - expect(e.name).toEqual('InvalidIdentityPoolIdException'); - } - }); - }); -}); diff --git a/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts b/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts index ec4bc9ef6b4..283b0e9cd3f 100644 --- a/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts +++ b/packages/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts @@ -23,6 +23,8 @@ export class DefaultIdentityIdStore implements IdentityIdStore { // Used as in-memory storage _primaryIdentityId: string | undefined; _authKeys: AuthKeys = {}; + _hasGuestIdentityId = false; + setAuthConfig(authConfigParam: AuthConfig) { assertIdentityPoolIdConfig(authConfigParam.Cognito); this.authConfig = authConfigParam; @@ -48,7 +50,10 @@ export class DefaultIdentityIdStore implements IdentityIdStore { const storedIdentityId = await this.keyValueStorage.getItem( this._authKeys.identityId, ); + if (storedIdentityId) { + this._hasGuestIdentityId = true; + return { id: storedIdentityId, type: 'guest', @@ -71,10 +76,14 @@ export class DefaultIdentityIdStore implements IdentityIdStore { this.keyValueStorage.setItem(this._authKeys.identityId, identity.id); // Clear in-memory storage of primary identityId this._primaryIdentityId = undefined; + this._hasGuestIdentityId = true; } else { this._primaryIdentityId = identity.id; // Clear locally stored guest id - this.keyValueStorage.removeItem(this._authKeys.identityId); + if (this._hasGuestIdentityId) { + this.keyValueStorage.removeItem(this._authKeys.identityId); + this._hasGuestIdentityId = false; + } } } From 090dad4cbdf2c78a44b3ddf80cd881c99fd5eab6 Mon Sep 17 00:00:00 2001 From: Ashwin Kumar Date: Mon, 30 Sep 2024 12:45:07 -0700 Subject: [PATCH 49/50] chore: increse bundle size --- packages/aws-amplify/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index c9fba3f55c7..5dc6691e9cb 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -335,7 +335,7 @@ "name": "[API] generateClient (AppSync)", "path": "./dist/esm/api/index.mjs", "import": "{ generateClient }", - "limit": "43.1 kB" + "limit": "43.17 kB" }, { "name": "[API] REST API handlers", From fcf945efc1735d18b98b04c20a416ad758b68910 Mon Sep 17 00:00:00 2001 From: Ashwin Kumar Date: Mon, 30 Sep 2024 16:57:03 -0700 Subject: [PATCH 50/50] chore: increase bundle size --- packages/aws-amplify/package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/aws-amplify/package.json b/packages/aws-amplify/package.json index 468b1be5c6c..1cede57f7ad 100644 --- a/packages/aws-amplify/package.json +++ b/packages/aws-amplify/package.json @@ -461,43 +461,43 @@ "name": "[Storage] copy (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ copy }", - "limit": "15.75 kB" + "limit": "15.80 kB" }, { "name": "[Storage] downloadData (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ downloadData }", - "limit": "16.1 kB" + "limit": "16.18 kB" }, { "name": "[Storage] getProperties (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ getProperties }", - "limit": "15.35 kB" + "limit": "15.41 kB" }, { "name": "[Storage] getUrl (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ getUrl }", - "limit": "16.55 kB" + "limit": "16.64 kB" }, { "name": "[Storage] list (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ list }", - "limit": "16.10 kB" + "limit": "16.16 kB" }, { "name": "[Storage] remove (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ remove }", - "limit": "15.20 kB" + "limit": "15.28 kB" }, { "name": "[Storage] uploadData (S3)", "path": "./dist/esm/storage/index.mjs", "import": "{ uploadData }", - "limit": "22.01 kB" + "limit": "22.07 kB" } ] }