diff --git a/.gitallowed b/.gitallowed new file mode 100644 index 00000000000..17095be3900 --- /dev/null +++ b/.gitallowed @@ -0,0 +1,4 @@ +# The following regexes are exceptions for git-secrets - https://github.com/awslabs/git-secrets + +# The only AWS account number allowed to be used in tests +ACCOUNT_ID = '123456789012'; \ No newline at end of file diff --git a/.github/dependency-review/dependency-review-config.yml b/.github/dependency-review/dependency-review-config.yml index 3de4b2504ec..7801cb53483 100644 --- a/.github/dependency-review/dependency-review-config.yml +++ b/.github/dependency-review/dependency-review-config.yml @@ -10,6 +10,7 @@ allow-licenses: - 'BSL-1.0' - 'CC-BY-3.0' - 'CC-BY-4.0' + - 'CC-BY-SA-4.0' - 'CC0-1.0' - 'curl' - 'ISC' diff --git a/.github/workflows/callable-git-secrets-check.yml b/.github/workflows/callable-git-secrets-check.yml new file mode 100644 index 00000000000..6424d7fb4d4 --- /dev/null +++ b/.github/workflows/callable-git-secrets-check.yml @@ -0,0 +1,25 @@ +name: Git Secrets Check +on: workflow_call + +jobs: + git_secrets_check: + name: Scan for secrets + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + path: amplify-js + + - name: Install git-secrets + run: | + git clone https://github.com/awslabs/git-secrets.git + cd git-secrets + sudo make install + + - name: Register AWS patterns and scan + working-directory: ./amplify-js + run: | + git secrets --register-aws + # Scan only the files in the current checkout (PR merge commit) + git secrets --scan diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 99024c07a14..5f22f05c0a4 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -43,6 +43,8 @@ jobs: dependency-review: needs: prebuild uses: ./.github/workflows/callable-dependency-review.yml + git-secrets-check: + uses: ./.github/workflows/callable-git-secrets-check.yml all-unit-tests-pass: name: Unit and Bundle tests have passed needs: @@ -52,6 +54,7 @@ jobs: - github-actions-test - tsc-compliance-test - dependency-review + - git-secrets-check runs-on: ubuntu-latest if: success() # only run when all checks have passed # store success output flag for ci job diff --git a/.gitignore b/.gitignore index feb3ede744a..33a707d8cc6 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ packages/**/esm/ packages/**/cjs/ **/.DS_Store .vscode +.kiro .idea *.log .npm/ diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 00000000000..ec96441610a --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,24 @@ +#!/usr/bin/env sh + +# Pre-push hook to scan for secrets using git-secrets +# This prevents accidentally pushing AWS credentials or other secrets + +# Check if git-secrets is installed +if ! command -v git-secrets >/dev/null 2>&1; then + echo "" + echo "ERROR: git-secrets is not installed." + echo "" + echo "Please install git-secrets to continue:" + echo "" + echo " macOS: brew install git-secrets" + echo " Linux: See https://github.com/awslabs/git-secrets#installing-git-secrets" + echo " Windows: See https://github.com/awslabs/git-secrets#installing-git-secrets" + echo "" + echo "After installation, register AWS patterns:" + echo " git secrets --register-aws" + echo "" + exit 1 +fi + +# Run git-secrets scan and propagate exit code +git secrets --scan diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c949c24e9e5..57f2eb7b71b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,6 +8,7 @@ Whether it's a bug report, new feature, correction, or additional documentation, - [Our Design](#our-design) - [Development Process](#development-process) - [Setting up for local development](#setting-up-for-local-development) + - [Setting up git-secrets](#setting-up-git-secrets) - [Architecture of the codebase](#architecture-of-the-codebase) - [Steps towards contributions](#steps-towards-contributions) - [Bug Reports](#bug-reports) @@ -68,6 +69,74 @@ yarn build > Note: Make sure to always [sync your fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/syncing-a-fork) with main branch of `amplify-js` +## Setting up git-secrets + +This repository uses [git-secrets](https://github.com/awslabs/git-secrets) to prevent accidentally pushing AWS credentials or other secrets. A pre-push hook will scan your commits before pushing to the remote repository. + +### Installing git-secrets + +**macOS (using Homebrew):** + +```bash +brew install git-secrets +``` + +**Linux (Debian/Ubuntu):** + +```bash +sudo apt-get install git-secrets +``` + +**Linux (manual installation):** + +```bash +git clone https://github.com/awslabs/git-secrets.git +cd git-secrets +sudo make install +``` + +**Windows (manual installation):** + +1. Clone the repository: `git clone https://github.com/awslabs/git-secrets.git` +2. Add the `git-secrets` directory to your PATH +3. Alternatively, copy `git-secrets` to a directory already in your PATH + +### Registering AWS patterns + +After installing git-secrets, register the AWS secret patterns in your local repository: + +```bash +git secrets --register-aws +``` + +This registers patterns to detect: + +- AWS Access Key IDs (e.g., `AKIAIOSFODNN7EXAMPLE`) +- AWS Secret Access Keys +- AWS Session Tokens + +You can verify the registered patterns with: + +```bash +git secrets --list +``` + +### Handling false positives + +If git-secrets flags a legitimate string as a potential secret (false positive), you can add an allowed pattern: + +```bash +# Allow a specific pattern +git secrets --add --allowed 'AKIAIOSFODNN7EXAMPLE' + +# Allow patterns matching a regex +git secrets --add --allowed 'my-test-pattern.*' +``` + +Allowed patterns are stored in `.git/config` and apply only to your local repository. + +> **Note:** The pre-push hook will block pushes if git-secrets is not installed. Please install and configure git-secrets before contributing. + ## Architecture of the codebase Amplify JS is a monorepo built with `Yarn` and `Lerna`. All the categories of Amplify live within the `packages` directory in the root. Each category inside packages has its own `src/` and `package.json`. diff --git a/package.json b/package.json index 92bf8b40df4..315449b3ef6 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "publish:verdaccio": "lerna publish --canary --force-publish --no-push --dist-tag=unstable --preid=unstable --yes", "generate-metadata": "git rev-parse --short HEAD > packages/core/metadata && git commit -am 'chore(release): Set core metadata [skip release]'", "ts-coverage": "lerna run ts-coverage", - "prepare": "husky && ./scripts/set-preid-versions.sh" + "prepare": "husky && ./scripts/setup-git-secrets.sh && ./scripts/set-preid-versions.sh" }, "workspaces": { "packages": [ @@ -136,6 +136,7 @@ "webpack-cli": "^5.0.0" }, "resolutions": { + "@react-native-community/cli": "^18.0.1", "@types/babel__traverse": "7.20.0", "path-scurry": "1.10.0", "**/glob/minipass": "6.0.2", @@ -146,9 +147,11 @@ "**/brace-expansion": "1.1.12", "**/on-headers": "1.1.0", "**/form-data": "4.0.4", - "tmp": "^0.2.4" + "tmp": "^0.2.4", + "js-yaml": "4.1.1" }, "overrides": { + "js-yaml": "4.1.1", "tar": "6.2.1", "cross-spawn": "7.0.5", "brace-expansion": "1.1.12", diff --git a/packages/api-rest/__tests__/apis/common/publicApis.test.ts b/packages/api-rest/__tests__/apis/common/publicApis.test.ts index 3b1c7efd8c4..893322f5359 100644 --- a/packages/api-rest/__tests__/apis/common/publicApis.test.ts +++ b/packages/api-rest/__tests__/apis/common/publicApis.test.ts @@ -681,5 +681,113 @@ describe('public APIs', () => { expect(result).toEqual({ retryable: false }); }); }); + + describe('defaultAuthMode option', () => { + it('should skip credential resolution when defaultAuthMode is "none"', async () => { + mockFetchAuthSession.mockClear(); + + await fn(mockAmplifyInstance, { + apiName: 'restApi1', + path: '/public', + options: { + defaultAuthMode: 'none', + }, + }).response; + + expect(mockFetchAuthSession).not.toHaveBeenCalled(); + expect(mockUnauthenticatedHandler).toHaveBeenCalled(); + expect(mockAuthenticatedHandler).not.toHaveBeenCalled(); + }); + + it('should resolve credentials when defaultAuthMode is "iam"', async () => { + mockFetchAuthSession.mockResolvedValue({ + credentials: { + accessKeyId: 'test-key', + secretAccessKey: 'test-secret', + }, + }); + + await fn(mockAmplifyInstance, { + apiName: 'restApi1', + path: '/private', + options: { + defaultAuthMode: 'iam', + }, + }).response; + + expect(mockFetchAuthSession).toHaveBeenCalled(); + expect(mockAuthenticatedHandler).toHaveBeenCalled(); + }); + + it('should maintain default behavior when no defaultAuthMode specified', async () => { + mockFetchAuthSession.mockResolvedValue({ + credentials: null, + }); + + await fn(mockAmplifyInstance, { + apiName: 'restApi1', + path: '/endpoint', + }).response; + + expect(mockFetchAuthSession).toHaveBeenCalled(); + expect(mockUnauthenticatedHandler).toHaveBeenCalled(); + }); + + it('should use global defaultAuthMode configuration when no local defaultAuthMode is specified', async () => { + const mockAmplifyWithGlobalConfig = { + ...mockAmplifyInstance, + libraryOptions: { + ...mockAmplifyInstance.libraryOptions, + API: { + ...mockAmplifyInstance.libraryOptions?.API, + REST: { + defaultAuthMode: 'none' as const, + }, + }, + }, + } as any as AmplifyClassV6; + + mockFetchAuthSession.mockClear(); + + await fn(mockAmplifyWithGlobalConfig, { + apiName: 'restApi1', + path: '/public', + }).response; + + expect(mockFetchAuthSession).not.toHaveBeenCalled(); + expect(mockUnauthenticatedHandler).toHaveBeenCalled(); + expect(mockAuthenticatedHandler).not.toHaveBeenCalled(); + }); + + it('should override global defaultAuthMode with local defaultAuthMode configuration', async () => { + const mockAmplifyWithGlobalConfig = { + ...mockAmplifyInstance, + libraryOptions: { + ...mockAmplifyInstance.libraryOptions, + API: { + ...mockAmplifyInstance.libraryOptions?.API, + REST: { + defaultAuthMode: 'none' as const, + }, + }, + }, + } as any as AmplifyClassV6; + + mockFetchAuthSession.mockClear(); + mockFetchAuthSession.mockResolvedValue({ credentials }); + + await fn(mockAmplifyWithGlobalConfig, { + apiName: 'restApi1', + path: '/private', + options: { + defaultAuthMode: 'iam', + }, + }).response; + + expect(mockFetchAuthSession).toHaveBeenCalled(); + expect(mockAuthenticatedHandler).toHaveBeenCalled(); + expect(mockUnauthenticatedHandler).not.toHaveBeenCalled(); + }); + }); }); }); diff --git a/packages/api-rest/src/apis/common/transferHandler.ts b/packages/api-rest/src/apis/common/transferHandler.ts index 84a1d1f799c..48824f1c38d 100644 --- a/packages/api-rest/src/apis/common/transferHandler.ts +++ b/packages/api-rest/src/apis/common/transferHandler.ts @@ -11,6 +11,7 @@ import { import { AWSCredentials, DocumentType, + RESTAuthMode, RetryStrategy, } from '@aws-amplify/core/internals/utils'; @@ -18,6 +19,7 @@ import { logger, parseRestApiServiceError, parseSigningInfo, + resolveLibraryOptions, } from '../../utils'; import { resolveHeaders } from '../../utils/resolveHeaders'; import { RestApiResponse, SigningServiceInfo } from '../../types'; @@ -30,6 +32,7 @@ type HandlerOptions = Omit & { headers?: Headers; withCredentials?: boolean; retryStrategy?: RetryStrategy; + defaultAuthMode?: RESTAuthMode; }; type RetryDecider = RetryOptions['retryDecider']; @@ -75,19 +78,29 @@ export const transferHandler = async ( method, body: resolvedBody, }; + const { + retryStrategy: libraryRetryStrategy, + defaultAuthMode: libraryDefaultAuthMode, + } = resolveLibraryOptions(amplify); const baseOptions = { retryDecider: getRetryDeciderFromStrategy( - retryStrategy ?? amplify?.libraryOptions?.API?.REST?.retryStrategy, + retryStrategy ?? libraryRetryStrategy, ), computeDelay: jitteredBackoff, withCrossDomainCredentials: withCredentials, abortSignal, }; - const isIamAuthApplicable = iamAuthApplicable(request, signingServiceInfo); + const defaultAuthMode = options.defaultAuthMode ?? libraryDefaultAuthMode; + + let credentials: AWSCredentials | null = null; + if (defaultAuthMode !== 'none') { + credentials = await resolveCredentials(amplify); + } let response: RestApiResponse; - const credentials = await resolveCredentials(amplify); + const isIamAuthApplicable = iamAuthApplicable(request, signingServiceInfo); + if (isIamAuthApplicable && credentials) { const signingInfoFromUrl = parseSigningInfo(url); const signingService = diff --git a/packages/api-rest/src/types/index.ts b/packages/api-rest/src/types/index.ts index 99aa759b769..c867993cddf 100644 --- a/packages/api-rest/src/types/index.ts +++ b/packages/api-rest/src/types/index.ts @@ -1,6 +1,10 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { DocumentType, RetryStrategy } from '@aws-amplify/core/internals/utils'; +import { + DocumentType, + RESTAuthMode, + RetryStrategy, +} from '@aws-amplify/core/internals/utils'; export type GetInput = ApiInput; export type PostInput = ApiInput; @@ -41,6 +45,7 @@ export interface RestApiOptionsBase { * @default ` { strategy: 'jittered-exponential-backoff' } ` */ retryStrategy?: RetryStrategy; + defaultAuthMode?: RESTAuthMode; /** * custom timeout in milliseconds. */ diff --git a/packages/api-rest/src/utils/index.ts b/packages/api-rest/src/utils/index.ts index 783308821f0..73ce9cddff1 100644 --- a/packages/api-rest/src/utils/index.ts +++ b/packages/api-rest/src/utils/index.ts @@ -5,4 +5,5 @@ export { createCancellableOperation } from './createCancellableOperation'; export { parseSigningInfo } from './parseSigningInfo'; export { parseRestApiServiceError } from './serviceError'; export { resolveApiUrl } from './resolveApiUrl'; +export { resolveLibraryOptions } from './resolveLibraryOptions'; export { logger } from './logger'; diff --git a/packages/api-rest/src/utils/resolveLibraryOptions.ts b/packages/api-rest/src/utils/resolveLibraryOptions.ts new file mode 100644 index 00000000000..029bbcbaa94 --- /dev/null +++ b/packages/api-rest/src/utils/resolveLibraryOptions.ts @@ -0,0 +1,14 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { AmplifyClassV6 } from '@aws-amplify/core'; + +/** + * @internal + */ +export const resolveLibraryOptions = (amplify: AmplifyClassV6) => { + const retryStrategy = amplify.libraryOptions?.API?.REST?.retryStrategy; + const defaultAuthMode = amplify.libraryOptions?.API?.REST?.defaultAuthMode; + + return { retryStrategy, defaultAuthMode }; +}; diff --git a/packages/auth/__tests__/providers/cognito/confirmSignInHappyCases.test.ts b/packages/auth/__tests__/providers/cognito/confirmSignInHappyCases.test.ts index 8ebd38b52e1..fd127aa381f 100644 --- a/packages/auth/__tests__/providers/cognito/confirmSignInHappyCases.test.ts +++ b/packages/auth/__tests__/providers/cognito/confirmSignInHappyCases.test.ts @@ -9,6 +9,7 @@ import { signIn, } from '../../../src/providers/cognito/'; import * as signInHelpers from '../../../src/providers/cognito/utils/signInHelpers'; +import { handleDeviceSRPAuth } from '../../../src/providers/cognito/utils/handleDeviceSRPAuth'; import { cognitoUserPoolsTokenProvider, tokenOrchestrator, @@ -27,6 +28,7 @@ jest.mock('../../../src/providers/cognito/apis/getCurrentUser'); jest.mock( '../../../src/foundation/factories/serviceClients/cognitoIdentityProvider', ); +jest.mock('../../../src/providers/cognito/utils/handleDeviceSRPAuth'); const authConfig = { Cognito: { @@ -447,6 +449,69 @@ describe('confirmSignIn API happy path cases', () => { options, ); }); + + test('device metadata is retrieved and handled during MFA challenge', async () => { + const mockGetDeviceMetadata = jest + .spyOn(tokenOrchestrator, 'getDeviceMetadata') + .mockResolvedValue({ + deviceKey: 'device-123', + deviceGroupKey: 'group-456', + randomPassword: 'random-password', + }); + + const mockHandleDeviceSRPAuth = jest.mocked(handleDeviceSRPAuth); + mockHandleDeviceSRPAuth.mockResolvedValue({ + ChallengeName: undefined, + $metadata: {}, + AuthenticationResult: { + AccessToken: 'access-token', + IdToken: 'id-token', + RefreshToken: 'refresh-token', + }, + }); + + const mockRespondToAuthChallenge = jest.fn().mockResolvedValue({ + ChallengeName: 'DEVICE_SRP_AUTH', + Session: 'device-session', + $metadata: {}, + }); + + const mockCreateRespondToAuthChallengeClient = jest.mocked( + createRespondToAuthChallengeClient, + ); + mockCreateRespondToAuthChallengeClient.mockReturnValueOnce( + mockRespondToAuthChallenge, + ); + + await signInHelpers.handleMFAChallenge({ + challengeName: 'SOFTWARE_TOKEN_MFA', + challengeResponse: '123456', + clientMetadata: undefined, + session: 'test-session', + username, + config: authConfig.Cognito, + tokenOrchestrator, + }); + + expect(mockGetDeviceMetadata).toHaveBeenCalledWith(username); + expect(mockRespondToAuthChallenge).toHaveBeenCalledWith( + expect.anything(), + expect.objectContaining({ + ChallengeResponses: expect.objectContaining({ + DEVICE_KEY: 'device-123', + SOFTWARE_TOKEN_MFA_CODE: '123456', + USERNAME: username, + }), + }), + ); + expect(mockHandleDeviceSRPAuth).toHaveBeenCalledWith({ + username, + config: authConfig.Cognito, + clientMetadata: undefined, + session: 'device-session', + tokenOrchestrator, + }); + }); }); describe('Cognito ASF', () => { diff --git a/packages/auth/src/providers/cognito/utils/signInHelpers.ts b/packages/auth/src/providers/cognito/utils/signInHelpers.ts index 85bb060aa9d..0911df68889 100644 --- a/packages/auth/src/providers/cognito/utils/signInHelpers.ts +++ b/packages/auth/src/providers/cognito/utils/signInHelpers.ts @@ -71,6 +71,7 @@ interface HandleAuthChallengeRequest { deviceName?: string; requiredAttributes?: AuthUserAttributes; config: CognitoUserPoolConfig; + tokenOrchestrator: AuthTokenOrchestrator; } function isWebAuthnResultAuthSignInOutput( @@ -834,6 +835,7 @@ export async function handleChallengeName( session, username, config, + tokenOrchestrator, }); case 'MFA_SETUP': return handleMFASetupChallenge({ @@ -843,6 +845,7 @@ export async function handleChallengeName( username, deviceName, config, + tokenOrchestrator, }); case 'NEW_PASSWORD_REQUIRED': return handleCompleteNewPasswordChallenge({ @@ -852,6 +855,7 @@ export async function handleChallengeName( username, requiredAttributes: userAttributes, config, + tokenOrchestrator, }); case 'CUSTOM_CHALLENGE': return retryOnResourceNotFoundException( @@ -880,6 +884,7 @@ export async function handleChallengeName( session, username, config, + tokenOrchestrator, }); case 'PASSWORD': return handleSelectChallengeWithPassword( @@ -967,6 +972,7 @@ export async function handleMFAChallenge({ session, username, config, + tokenOrchestrator, }: HandleAuthChallengeRequest & { challengeName: Extract< ChallengeName, @@ -995,6 +1001,11 @@ export async function handleMFAChallenge({ challengeResponses.SOFTWARE_TOKEN_MFA_CODE = challengeResponse; } + const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username); + if (deviceMetadata && deviceMetadata.deviceKey) { + challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey; + } + const userContextData = getUserContextData({ username, userPoolId, @@ -1016,11 +1027,22 @@ export async function handleMFAChallenge({ }), }); - return respondToAuthChallenge( + const response = await respondToAuthChallenge( { region: getRegionFromUserPoolId(userPoolId), userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn), }, jsonReq, ); + if (response.ChallengeName === 'DEVICE_SRP_AUTH') { + return handleDeviceSRPAuth({ + username, + config, + clientMetadata, + session: response.Session, + tokenOrchestrator, + }); + } + + return response; } diff --git a/packages/core/__tests__/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.test.ts b/packages/core/__tests__/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.test.ts index db7289da109..ec9914bdea3 100644 --- a/packages/core/__tests__/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.test.ts +++ b/packages/core/__tests__/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.test.ts @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { getHashedPayload } from '../../../../../../../src/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload'; +import { UNSIGNED_PAYLOAD } from '../../../../../../../src/clients/middleware/signing/signer/signatureV4/constants'; describe('getHashedPayload', () => { test('returns empty hash if nullish', () => { @@ -34,4 +35,10 @@ describe('getHashedPayload', () => { expect(getHashedPayload(scalar as any)).toStrictEqual('UNSIGNED-PAYLOAD'); } }); + + test('returns UNSIGNED_PAYLOAD constant without hashing when passed as body', () => { + expect(getHashedPayload(UNSIGNED_PAYLOAD as any)).toStrictEqual( + 'UNSIGNED-PAYLOAD', + ); + }); }); diff --git a/packages/core/src/clients/index.ts b/packages/core/src/clients/index.ts index f1c4d671223..743d62cdc5b 100644 --- a/packages/core/src/clients/index.ts +++ b/packages/core/src/clients/index.ts @@ -13,7 +13,10 @@ export { PresignUrlOptions, SignRequestOptions, } from './middleware/signing/signer/signatureV4'; -export { EMPTY_HASH as EMPTY_SHA256_HASH } from './middleware/signing/signer/signatureV4/constants'; +export { + EMPTY_HASH as EMPTY_SHA256_HASH, + UNSIGNED_PAYLOAD, +} from './middleware/signing/signer/signatureV4/constants'; export { extendedEncodeURIComponent } from './middleware/signing/utils/extendedEncodeURIComponent'; export { signingMiddlewareFactory, diff --git a/packages/core/src/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.ts b/packages/core/src/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.ts index 8fa93dc2136..7dd22cdc0bf 100644 --- a/packages/core/src/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.ts +++ b/packages/core/src/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.ts @@ -34,7 +34,9 @@ export const getHashedPayload = (body: HttpRequest['body']): string => { }; const isSourceData = (body: HttpRequest['body']): body is SourceData => - typeof body === 'string' || ArrayBuffer.isView(body) || isArrayBuffer(body); + // Exclude UNSIGNED_PAYLOAD constant to prevent it from being hashed as a string + body !== UNSIGNED_PAYLOAD && + (typeof body === 'string' || ArrayBuffer.isView(body) || isArrayBuffer(body)); const isArrayBuffer = (arg: any): arg is ArrayBuffer => (typeof ArrayBuffer === 'function' && arg instanceof ArrayBuffer) || diff --git a/packages/core/src/libraryUtils.ts b/packages/core/src/libraryUtils.ts index bba46ba7ce9..ea1c6c7c7a5 100644 --- a/packages/core/src/libraryUtils.ts +++ b/packages/core/src/libraryUtils.ts @@ -48,6 +48,7 @@ export { AssociationHasOne, DocumentType, GraphQLAuthMode, + RESTAuthMode, ModelFieldType, NonModelFieldType, ModelIntrospectionSchema, diff --git a/packages/core/src/singleton/API/types.ts b/packages/core/src/singleton/API/types.ts index 3311a32072d..c3be780cb8f 100644 --- a/packages/core/src/singleton/API/types.ts +++ b/packages/core/src/singleton/API/types.ts @@ -25,6 +25,10 @@ export interface LibraryAPIOptions { * @default ` { strategy: 'jittered-exponential-backoff' } ` */ retryStrategy?: RetryStrategy; + /** + * Default auth mode for REST API calls when no explicit auth is provided. + */ + defaultAuthMode?: RESTAuthMode; /** * custom timeout in milliseconds configurable for given REST service, or/and method. */ @@ -142,6 +146,8 @@ export type GraphQLAuthMode = | 'lambda' | 'none'; +export type RESTAuthMode = 'none' | 'iam'; + /** * Type representing a plain JavaScript object that can be serialized to JSON. */ diff --git a/packages/react-native/example/Gemfile b/packages/react-native/example/Gemfile index 6613f00a25b..281e7f75986 100644 --- a/packages/react-native/example/Gemfile +++ b/packages/react-native/example/Gemfile @@ -2,6 +2,12 @@ source 'https://rubygems.org' ruby ">= 2.6.10" +# Ruby 3.4.0 has removed some libraries from the standard library. +gem 'bigdecimal' +gem 'logger' +gem 'benchmark' +gem 'mutex_m' + # Exclude problematic versions of cocoapods and activesupport that causes build failures. gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' diff --git a/packages/react-native/example/android/app/src/main/java/com/amplifyrtncoreexample/MainApplication.kt b/packages/react-native/example/android/app/src/main/java/com/amplifyrtncoreexample/MainApplication.kt index 554e7e1ec92..ef48238e586 100644 --- a/packages/react-native/example/android/app/src/main/java/com/amplifyrtncoreexample/MainApplication.kt +++ b/packages/react-native/example/android/app/src/main/java/com/amplifyrtncoreexample/MainApplication.kt @@ -9,6 +9,7 @@ import com.facebook.react.ReactPackage import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.react.soloader.OpenSourceMergedSoMapping import com.facebook.soloader.SoLoader class MainApplication : Application(), ReactApplication { @@ -34,7 +35,7 @@ class MainApplication : Application(), ReactApplication { override fun onCreate() { super.onCreate() - SoLoader.init(this, false) + SoLoader.init(this, OpenSourceMergedSoMapping) if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { // If you opted-in for the New Architecture, we load the native entry point for this app. load() diff --git a/packages/react-native/example/android/build.gradle b/packages/react-native/example/android/build.gradle index 7bd29eaa02f..da27b9dd6ed 100644 --- a/packages/react-native/example/android/build.gradle +++ b/packages/react-native/example/android/build.gradle @@ -1,11 +1,11 @@ buildscript { ext { - buildToolsVersion = "34.0.0" - minSdkVersion = 23 - compileSdkVersion = 34 - targetSdkVersion = 34 - ndkVersion = "26.1.10909125" - kotlinVersion = "1.9.25" + buildToolsVersion = "35.0.0" + minSdkVersion = 24 + compileSdkVersion = 35 + targetSdkVersion = 35 + ndkVersion = "27.0.12077973" + kotlinVersion = "2.0.21" } repositories { google() @@ -18,4 +18,4 @@ buildscript { } } -apply plugin: "com.facebook.react.rootproject" \ No newline at end of file +// apply plugin: "com.facebook.react.rootproject" \ No newline at end of file diff --git a/packages/react-native/example/android/gradle.properties b/packages/react-native/example/android/gradle.properties index 4b851cc1216..67c3f656a2f 100644 --- a/packages/react-native/example/android/gradle.properties +++ b/packages/react-native/example/android/gradle.properties @@ -1,4 +1,3 @@ - org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m android.useAndroidX=true reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 diff --git a/packages/react-native/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/react-native/example/android/gradle/wrapper/gradle-wrapper.properties index bb6c1919470..36074adc5de 100644 --- a/packages/react-native/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/react-native/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/react-native/example/babel.config.js b/packages/react-native/example/babel.config.js index 7831c6c40b6..9ed010149e0 100644 --- a/packages/react-native/example/babel.config.js +++ b/packages/react-native/example/babel.config.js @@ -3,7 +3,7 @@ const path = require('path'); const pak = require('../package.json'); module.exports = { - presets: ['module:metro-react-native-babel-preset'], + presets: ['module:@react-native/babel-preset'], plugins: [ [ 'module-resolver', diff --git a/packages/react-native/example/ios/AmplifyRTNCoreExample/AppDelegate.mm b/packages/react-native/example/ios/AmplifyRTNCoreExample/AppDelegate.mm index 6ab144c6142..26d32d9e708 100644 --- a/packages/react-native/example/ios/AmplifyRTNCoreExample/AppDelegate.mm +++ b/packages/react-native/example/ios/AmplifyRTNCoreExample/AppDelegate.mm @@ -15,6 +15,11 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( } - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ + return [self bundleURL]; +} + +- (NSURL *)bundleURL { #if DEBUG return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; diff --git a/packages/react-native/example/ios/Podfile b/packages/react-native/example/ios/Podfile index bbb82265c6d..a1d98f45faa 100644 --- a/packages/react-native/example/ios/Podfile +++ b/packages/react-native/example/ios/Podfile @@ -7,7 +7,6 @@ require Pod::Executable.execute_command('node', ['-p', platform :ios, min_ios_version_supported prepare_react_native_project! - linkage = ENV['USE_FRAMEWORKS'] if linkage != nil Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green @@ -22,7 +21,8 @@ target 'AmplifyRTNCoreExample' do use_react_native!( :path => config[:reactNativePath], :hermes_enabled => flags[:hermes_enabled], - :fabric_enabled => flags[:fabric_enabled], + :fabric_enabled => false, + :new_arch_enabled => false, :app_path => "#{Pod::Config.instance.installation_root}/.." ) @@ -35,7 +35,8 @@ target 'AmplifyRTNCoreExample' do react_native_post_install( installer, config[:reactNativePath], - :mac_catalyst_enabled => false + :mac_catalyst_enabled => false, + :ccache_enabled => ENV['USE_CCACHE'] == '1' ) end end diff --git a/packages/react-native/example/metro.config.js b/packages/react-native/example/metro.config.js index c056e7306e1..4770d9b86a9 100644 --- a/packages/react-native/example/metro.config.js +++ b/packages/react-native/example/metro.config.js @@ -17,7 +17,7 @@ const config = { // We need to make sure that only one version is loaded for peerDependencies // So we block them at the root, and alias them to the versions in example's node_modules resolver: { - blacklistRE: exclusionList( + blockList: exclusionList( modules.map( m => new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`), ), @@ -27,19 +27,8 @@ const config = { return acc; }, {}), - // eslint-disable-next-line camelcase unstable_enableSymlinks: true, }, - transformer: { - getTransformOptions: async () => ({ - transform: { - experimentalImportSupport: false, - inlineRequires: true, - }, - }), - }, }; -config.resetCache = true; - module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/packages/react-native/example/package.json b/packages/react-native/example/package.json index f88e466c73f..3507a277907 100644 --- a/packages/react-native/example/package.json +++ b/packages/react-native/example/package.json @@ -10,19 +10,23 @@ "build:ios": "cd ios && xcodebuild -workspace AmplifyRTNCoreExample.xcworkspace -scheme AmplifyRTNCoreExample -configuration Debug -sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO" }, "dependencies": { - "react": "^18.3.1", - "react-native": "0.75.5" + "react": "19.2.1", + "react-native": "0.79.2" }, "devDependencies": { - "@babel/core": "^7.20.0", - "@babel/preset-env": "^7.20.0", - "@babel/runtime": "^7.20.0", - "@react-native/metro-config": "^0.72.11", - "babel-plugin-module-resolver": "^5.0.0", - "metro-react-native-babel-preset": "0.76.8" + "@babel/core": "^7.25.2", + "@babel/preset-env": "^7.25.3", + "@babel/runtime": "^7.25.0", + "@react-native-community/cli": "18.0.1", + "@react-native-community/cli-platform-android": "18.0.0", + "@react-native-community/cli-platform-ios": "18.0.0", + "@react-native/babel-preset": "0.79.2", + "@react-native/metro-config": "0.79.2", + "@react-native/typescript-config": "0.79.2", + "babel-plugin-module-resolver": "^5.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "workspaces": { "nohoist": [ diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 969e34192bf..e3dc7eed022 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -29,7 +29,7 @@ "dependencies": { "base-64": "^1.0.0", "buffer": "^6.0.3", - "react-native-url-polyfill": "^2.0.0" + "react-native-url-polyfill": "^3.0.0" }, "peerDependencies": { "@aws-amplify/rtn-passkeys": "^1.0.0", diff --git a/packages/rtn-passkeys/example/package.json b/packages/rtn-passkeys/example/package.json index c1135f85ca4..3d494e7632a 100644 --- a/packages/rtn-passkeys/example/package.json +++ b/packages/rtn-passkeys/example/package.json @@ -15,7 +15,7 @@ "@aws-amplify/rtn-passkeys": "1.1.0", "@react-native-async-storage/async-storage": "^2.1.2", "aws-amplify": "6.15.8", - "react": "19.0.0", + "react": "19.2.1", "react-native": "0.79.2", "react-native-get-random-values": "^1.11.0" }, @@ -23,15 +23,22 @@ "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", - "@react-native-community/cli": "18.0.0", + "@react-native-community/cli": "18.0.1", "@react-native-community/cli-platform-android": "18.0.0", "@react-native-community/cli-platform-ios": "18.0.0", "@react-native/babel-preset": "0.79.2", + "@react-native/codegen": "0.79.2", "@react-native/eslint-config": "0.79.2", "@react-native/metro-config": "0.79.2", "@react-native/typescript-config": "0.79.2" }, "engines": { "node": ">=18" + }, + "workspaces": { + "nohoist": [ + "**/@react-native/codegen", + "**/@react-native/codegen/**" + ] } } diff --git a/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/ChromeOSModule.kt b/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/ChromeOSModule.kt new file mode 100644 index 00000000000..3004c0a6a75 --- /dev/null +++ b/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/ChromeOSModule.kt @@ -0,0 +1,37 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package com.amazonaws.amplify.rtnwebbrowser + +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.ReactContextBaseJavaModule +import com.facebook.react.bridge.ReactMethod + +class ChromeOSModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { + + override fun getName() = "ChromeOS" + + @ReactMethod + fun isChromeOS(promise: Promise) { + try { + val isChromeOS = detectChromeOS() + promise.resolve(isChromeOS) + } catch (e: Exception) { + promise.reject("CHROMEOS_DETECTION_ERROR", "Failed to detect ChromeOS", e) + } + } + + private fun detectChromeOS(): Boolean { + return try { + // Check for Android Runtime for Chrome (ARC) system feature + val packageManager = reactApplicationContext.packageManager + + packageManager.hasSystemFeature("org.chromium.arc.device_management") || + packageManager.hasSystemFeature("org.chromium.arc") + } catch (e: Exception) { + // If we can't check system features, return false + false + } + } +} diff --git a/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/WebBrowserPackage.kt b/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/WebBrowserPackage.kt index 88df29ed3eb..0ace775d193 100644 --- a/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/WebBrowserPackage.kt +++ b/packages/rtn-web-browser/android/src/main/kotlin/com/amazonaws/amplify/rtnwebbrowser/WebBrowserPackage.kt @@ -18,5 +18,8 @@ class WebBrowserPackage : ReactPackage { override fun createNativeModules( reactContext: ReactApplicationContext - ): MutableList = listOf(WebBrowserModule(reactContext)).toMutableList() + ): MutableList = listOf( + WebBrowserModule(reactContext), + ChromeOSModule(reactContext) + ).toMutableList() } diff --git a/packages/rtn-web-browser/src/apis/openAuthSessionAsync.ts b/packages/rtn-web-browser/src/apis/openAuthSessionAsync.ts index 9ced0313653..48baba486b0 100644 --- a/packages/rtn-web-browser/src/apis/openAuthSessionAsync.ts +++ b/packages/rtn-web-browser/src/apis/openAuthSessionAsync.ts @@ -37,14 +37,16 @@ export const openAuthSessionAsync = async ( if (Platform.OS === 'android') { try { const isChromebookRes = await isChromebook(); - if (isChromebookRes) { - return openAuthSessionChromeOs(httpsUrl, redirectUrls); + if (!isChromebookRes) { + // If it is not a Chromebook, it probably supports custom tabs + return await openAuthSessionAndroid(httpsUrl, redirectUrls); } } catch { // ignore and fallback to android } - return openAuthSessionAndroid(httpsUrl, redirectUrls); + // The ChromeOS way without custom tabs works everywhere + return openAuthSessionChromeOs(httpsUrl, redirectUrls); } }; diff --git a/packages/storage/__tests__/providers/s3/apis/internal/downloadData.test.ts b/packages/storage/__tests__/providers/s3/apis/internal/downloadData.test.ts index cb0dafdaf27..7cc077c1aaa 100644 --- a/packages/storage/__tests__/providers/s3/apis/internal/downloadData.test.ts +++ b/packages/storage/__tests__/providers/s3/apis/internal/downloadData.test.ts @@ -310,6 +310,48 @@ describe('downloadData with key', () => { ); }); }); + + describe('ResponseCacheControl passed in options', () => { + it('should include cacheControl in headers when provided', async () => { + (getObject as jest.Mock).mockResolvedValueOnce({ Body: 'body' }); + downloadData({ + path: inputKey, + options: { + cacheControl: 'no-store', + }, + }); + + const { job } = mockCreateDownloadTask.mock.calls[0][0]; + await job(); + + expect(getObject).toHaveBeenCalledTimes(1); + await expect(getObject).toBeLastCalledWithConfigAndInput( + expect.any(Object), + expect.objectContaining({ + ResponseCacheControl: 'no-store', + }), + ); + }); + + it('should NOT include cacheControl in headers when not provided', async () => { + (getObject as jest.Mock).mockResolvedValueOnce({ Body: 'body' }); + downloadData({ + path: inputKey, + }); + + const { job } = mockCreateDownloadTask.mock.calls[0][0]; + await job(); + + expect(getObject).toHaveBeenCalledTimes(1); + await expect(getObject).toBeLastCalledWithConfigAndInput( + expect.any(Object), + { + Bucket: bucket, + Key: 'public/key', + }, + ); + }); + }); }); describe('downloadData with path', () => { @@ -544,4 +586,46 @@ describe('downloadData with path', () => { ); }); }); + + describe('ResponseCacheControl passed in options', () => { + it('should include cacheControl in headers when provided', async () => { + (getObject as jest.Mock).mockResolvedValueOnce({ Body: 'body' }); + downloadData({ + path: inputKey, + options: { + cacheControl: 'no-store', + }, + }); + + const { job } = mockCreateDownloadTask.mock.calls[0][0]; + await job(); + + expect(getObject).toHaveBeenCalledTimes(1); + await expect(getObject).toBeLastCalledWithConfigAndInput( + expect.any(Object), + expect.objectContaining({ + ResponseCacheControl: 'no-store', + }), + ); + }); + + it('should NOT include cacheControl in headers when not provided', async () => { + (getObject as jest.Mock).mockResolvedValueOnce({ Body: 'body' }); + downloadData({ + path: inputKey, + }); + + const { job } = mockCreateDownloadTask.mock.calls[0][0]; + await job(); + + expect(getObject).toHaveBeenCalledTimes(1); + await expect(getObject).toBeLastCalledWithConfigAndInput( + expect.any(Object), + { + Bucket: bucket, + Key: inputPath, + }, + ); + }); + }); }); diff --git a/packages/storage/__tests__/providers/s3/apis/internal/getUrl.test.ts b/packages/storage/__tests__/providers/s3/apis/internal/getUrl.test.ts index 03ade454d44..c9b18d8beac 100644 --- a/packages/storage/__tests__/providers/s3/apis/internal/getUrl.test.ts +++ b/packages/storage/__tests__/providers/s3/apis/internal/getUrl.test.ts @@ -182,6 +182,49 @@ describe('getUrl test with key', () => { ); }); }); + + describe('cacheControl passed in options', () => { + it('should include ResponseCacheControl header', async () => { + const cacheControl = 'no-store'; + await getUrlWrapper({ + key: 'key', + options: { + cacheControl, + }, + }); + expect(getPresignedGetObjectUrl).toHaveBeenCalledTimes(1); + await expect(getPresignedGetObjectUrl).toBeLastCalledWithConfigAndInput( + { + credentials, + region, + expiration: expect.any(Number), + }, + { + Bucket: bucket, + Key: 'public/key', + ResponseCacheControl: cacheControl, + }, + ); + }); + + it('should NOT include ResponseCacheControl header', async () => { + await getUrlWrapper({ + key: 'key', + }); + expect(getPresignedGetObjectUrl).toHaveBeenCalledTimes(1); + await expect(getPresignedGetObjectUrl).toBeLastCalledWithConfigAndInput( + { + credentials, + region, + expiration: expect.any(Number), + }, + { + Bucket: bucket, + Key: 'public/key', + }, + ); + }); + }); }); describe('Error cases : With key', () => { afterAll(() => { @@ -330,6 +373,51 @@ describe('getUrl test with path', () => { ); }); }); + + describe('cacheControl passed in options', () => { + it('should include ResponseCacheControl header', async () => { + const inputPath = 'path/'; + const cacheControl = 'no-store'; + await getUrlWrapper({ + path: inputPath, + options: { + cacheControl, + }, + }); + expect(getPresignedGetObjectUrl).toHaveBeenCalledTimes(1); + await expect(getPresignedGetObjectUrl).toBeLastCalledWithConfigAndInput( + { + credentials, + region, + expiration: expect.any(Number), + }, + { + Bucket: bucket, + Key: inputPath, + ResponseCacheControl: cacheControl, + }, + ); + }); + + it('should not include ResponseCacheControl header', async () => { + const inputPath = 'path/'; + await getUrlWrapper({ + path: inputPath, + }); + expect(getPresignedGetObjectUrl).toHaveBeenCalledTimes(1); + await expect(getPresignedGetObjectUrl).toBeLastCalledWithConfigAndInput( + { + credentials, + region, + expiration: expect.any(Number), + }, + { + Bucket: bucket, + Key: inputPath, + }, + ); + }); + }); }); describe('Happy cases: With path and Content Disposition, Content Type', () => { const config = { diff --git a/packages/storage/__tests__/providers/s3/apis/internal/uploadData/putObjectJob.test.ts b/packages/storage/__tests__/providers/s3/apis/internal/uploadData/putObjectJob.test.ts index f93e304cc3c..46f20b879df 100644 --- a/packages/storage/__tests__/providers/s3/apis/internal/uploadData/putObjectJob.test.ts +++ b/packages/storage/__tests__/providers/s3/apis/internal/uploadData/putObjectJob.test.ts @@ -235,6 +235,30 @@ describe('putObjectJob with key', () => { ); }); }); + + describe('cacheControl passed in option', () => { + it('should include CacheControl header', async () => { + const job = putObjectJob( + { + path: testPath, + data, + options: { + cacheControl: 'no-store', + }, + }, + new AbortController().signal, + dataLength, + ); + await job(); + + await expect(mockPutObject).toBeLastCalledWithConfigAndInput( + expect.objectContaining({ credentials, region }), + expect.objectContaining({ + CacheControl: 'no-store', + }), + ); + }); + }); }); describe('putObjectJob with path', () => { @@ -520,4 +544,50 @@ describe('putObjectJob with path', () => { ); }); }); + + describe('cacheControl passed in option', () => { + it('should include CacheControl header', async () => { + const job = putObjectJob( + { + path: testPath, + data, + options: { + cacheControl: 'no-store', + }, + }, + new AbortController().signal, + dataLength, + ); + await job(); + + await expect(mockPutObject).toBeLastCalledWithConfigAndInput( + expect.objectContaining({ credentials, region }), + expect.objectContaining({ + CacheControl: 'no-store', + }), + ); + }); + + it('should NOT include CacheControl header', async () => { + const job = putObjectJob( + { + path: testPath, + data, + }, + new AbortController().signal, + dataLength, + ); + await job(); + + await expect(mockPutObject).toBeLastCalledWithConfigAndInput( + expect.objectContaining({ credentials, region }), + { + Bucket: bucket, + Key: testPath, + Body: data, + ContentType: 'application/octet-stream', + }, + ); + }); + }); }); diff --git a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/headObject.ts b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/headObject.ts index a392e121c8c..983f4f113b9 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/S3/cases/headObject.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/S3/cases/headObject.ts @@ -22,7 +22,7 @@ const headObjectHappyCase: ApiFunctionalTestCase = [ }, expect.objectContaining({ url: expect.objectContaining({ - href: 'https://bucket.s3.us-east-1.amazonaws.com/key', + href: 'https://bucket.s3.us-east-1.amazonaws.com/key?response-cache-control=no-store', }), method: 'HEAD', }), @@ -65,7 +65,7 @@ const headObjectHappyCaseCustomEndpoint: ApiFunctionalTestCase< }, expect.objectContaining({ url: expect.objectContaining({ - href: 'https://custom.endpoint.com/bucket/key', + href: 'https://custom.endpoint.com/bucket/key?response-cache-control=no-store', }), }), { diff --git a/packages/storage/__tests__/providers/s3/utils/client/S3/getPresignedGetObjectUrl.test.ts b/packages/storage/__tests__/providers/s3/utils/client/S3/getPresignedGetObjectUrl.test.ts index a208859a7c8..403a6162010 100644 --- a/packages/storage/__tests__/providers/s3/utils/client/S3/getPresignedGetObjectUrl.test.ts +++ b/packages/storage/__tests__/providers/s3/utils/client/S3/getPresignedGetObjectUrl.test.ts @@ -1,7 +1,10 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import { presignUrl } from '@aws-amplify/core/internals/aws-client-utils'; +import { + UNSIGNED_PAYLOAD, + presignUrl, +} from '@aws-amplify/core/internals/aws-client-utils'; import { getPresignedGetObjectUrl } from '../../../../../../src/providers/s3/utils/client/s3data'; @@ -42,9 +45,6 @@ describe('serializeGetObjectRequest', () => { ); expect(actualUrl.pathname).toEqual('/key'); expect(actualUrl.searchParams.get('X-Amz-Expires')).toEqual('900'); - expect(actualUrl.searchParams.get('x-amz-content-sha256')).toEqual( - expect.any(String), - ); expect(actualUrl.searchParams.get('x-amz-user-agent')).toEqual('UA'); }); @@ -99,9 +99,6 @@ describe('serializeGetObjectRequest', () => { ); expect(actual.searchParams.get('X-Amz-Expires')).toBe('900'); - expect(actual.searchParams.get('x-amz-content-sha256')).toEqual( - expect.any(String), - ); expect(actual.searchParams.get('response-content-disposition')).toBe( 'attachment; filename="filename.jpg"', ); @@ -110,4 +107,32 @@ describe('serializeGetObjectRequest', () => { ); expect(actual.searchParams.get('x-amz-user-agent')).toBe('UA'); }); + + it('should use UNSIGNED-PAYLOAD for presigned URLs', async () => { + mockPresignUrl.mockClear(); + + const result = await getPresignedGetObjectUrl( + { + ...defaultConfigWithStaticCredentials, + signingRegion: defaultConfigWithStaticCredentials.region, + signingService: 's3', + expiration: 900, + }, + { + Bucket: 'bucket', + Key: 'key', + }, + ); + + // Verify UNSIGNED-PAYLOAD is used in the signature calculation + expect(mockPresignUrl).toHaveBeenCalledWith( + expect.objectContaining({ + body: UNSIGNED_PAYLOAD, + }), + expect.anything(), + ); + + // Verify x-amz-content-sha256 is NOT in the presigned URL query parameters + expect(result.searchParams.get('x-amz-content-sha256')).toBeNull(); + }); }); diff --git a/packages/storage/src/providers/s3/apis/internal/downloadData.ts b/packages/storage/src/providers/s3/apis/internal/downloadData.ts index f1d804b323d..80283acfcb1 100644 --- a/packages/storage/src/providers/s3/apis/internal/downloadData.ts +++ b/packages/storage/src/providers/s3/apis/internal/downloadData.ts @@ -77,6 +77,7 @@ const downloadDataJob = ...(downloadDataOptions?.bytesRange && { Range: `bytes=${downloadDataOptions.bytesRange.start}-${downloadDataOptions.bytesRange.end}`, }), + ResponseCacheControl: downloadDataOptions?.cacheControl, ExpectedBucketOwner: downloadDataOptions?.expectedBucketOwner, }, ); diff --git a/packages/storage/src/providers/s3/apis/internal/getUrl.ts b/packages/storage/src/providers/s3/apis/internal/getUrl.ts index db2315ddb78..6334a9717cd 100644 --- a/packages/storage/src/providers/s3/apis/internal/getUrl.ts +++ b/packages/storage/src/providers/s3/apis/internal/getUrl.ts @@ -82,6 +82,7 @@ export const getUrl = async ( ...(getUrlOptions?.contentType && { ResponseContentType: getUrlOptions.contentType, }), + ResponseCacheControl: getUrlOptions?.cacheControl, ExpectedBucketOwner: getUrlOptions?.expectedBucketOwner, }, ), diff --git a/packages/storage/src/providers/s3/apis/internal/uploadData/putObjectJob.ts b/packages/storage/src/providers/s3/apis/internal/uploadData/putObjectJob.ts index 5424a9ec783..fd05dbb8afe 100644 --- a/packages/storage/src/providers/s3/apis/internal/uploadData/putObjectJob.ts +++ b/packages/storage/src/providers/s3/apis/internal/uploadData/putObjectJob.ts @@ -69,6 +69,7 @@ export const putObjectJob = checksumAlgorithm, onProgress, expectedBucketOwner, + cacheControl, } = uploadDataOptions ?? {}; const checksumCRC32 = @@ -96,6 +97,7 @@ export const putObjectJob = ContentType: contentType, ContentDisposition: constructContentDisposition(contentDisposition), ContentEncoding: contentEncoding, + CacheControl: cacheControl, Metadata: metadata, ContentMD5: contentMD5, ChecksumCRC32: checksumCRC32, diff --git a/packages/storage/src/providers/s3/types/options.ts b/packages/storage/src/providers/s3/types/options.ts index 39891185185..cfaba32565d 100644 --- a/packages/storage/src/providers/s3/types/options.ts +++ b/packages/storage/src/providers/s3/types/options.ts @@ -181,6 +181,11 @@ export type GetUrlOptions = CommonOptions & { * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type */ contentType?: string; + /** + * The cache-control header value of the file when downloading it. + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control + */ + cacheControl?: string; }; /** @deprecated Use {@link GetUrlWithPathOptions} instead. */ @@ -192,7 +197,13 @@ export type GetUrlWithPathOptions = GetUrlOptions; */ export type DownloadDataOptions = CommonOptions & TransferOptions & - BytesRangeOptions; + BytesRangeOptions & { + /** + * The cache-control header value of the file when downloading it. + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control + */ + cacheControl?: string; + }; /** @deprecated Use {@link DownloadDataWithPathOptions} instead. */ export type DownloadDataWithKeyOptions = ReadOptions & DownloadDataOptions; @@ -236,6 +247,11 @@ export type UploadDataOptions = CommonOptions & * @default undefined */ checksumAlgorithm?: UploadDataChecksumAlgorithm; + /** + * The cache-control header value of the file when downloading it. + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control + */ + cacheControl?: string; }; /** @deprecated Use {@link UploadDataWithPathOptions} instead. */ 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 40d8e067892..91a8a1bdb03 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/getObject.ts @@ -2,11 +2,11 @@ // SPDX-License-Identifier: Apache-2.0 import { - EMPTY_SHA256_HASH, Endpoint, HttpRequest, HttpResponse, PresignUrlOptions, + UNSIGNED_PAYLOAD, UserAgentOptions, parseMetadata, presignUrl, @@ -18,7 +18,6 @@ import { } from '@aws-amplify/core/internals/utils'; import { - CONTENT_SHA256_HEADER, assignStringVariables, buildStorageServiceError, deserializeBoolean, @@ -53,6 +52,7 @@ export type GetObjectInput = Pick< | 'ResponseContentDisposition' | 'ResponseContentType' | 'ExpectedBucketOwner' + | 'ResponseCacheControl' >; export type GetObjectOutput = GetObjectCommandOutput; @@ -66,6 +66,9 @@ const getObjectSerializer = async ( url.pathname = serializePathnameObjectKey(url, input.Key); url.search = new AmplifyUrlSearchParams({ 'x-id': 'GetObject', + ...(input.ResponseCacheControl && { + 'response-cache-control': input.ResponseCacheControl, + }), }).toString(); validateObjectUrl({ bucketName: input.Bucket, @@ -172,10 +175,6 @@ export const getPresignedGetObjectUrl = async ( const endpoint = defaultConfig.endpointResolver(config, input); const { url, headers, method } = await getObjectSerializer(input, endpoint); - // TODO: set content sha256 query parameter with value of UNSIGNED-PAYLOAD instead of empty hash. - // It requires changes in presignUrl. Without this change, the generated url still works, - // but not the same as other tools like AWS SDK and CLI. - url.searchParams.append(CONTENT_SHA256_HEADER, EMPTY_SHA256_HASH); if (config.userAgentValue) { url.searchParams.append( config.userAgentHeader ?? USER_AGENT_HEADER, @@ -199,7 +198,7 @@ export const getPresignedGetObjectUrl = async ( } return presignUrl( - { method, url, body: undefined }, + { method, url, body: UNSIGNED_PAYLOAD }, { signingService: defaultConfig.service, signingRegion: config.region, 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 0825cbc66a9..b94fdf50c40 100644 --- a/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts +++ b/packages/storage/src/providers/s3/utils/client/s3data/headObject.ts @@ -7,7 +7,10 @@ import { HttpResponse, parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils'; -import { AmplifyUrl } from '@aws-amplify/core/internals/utils'; +import { + AmplifyUrl, + AmplifyUrlSearchParams, +} from '@aws-amplify/core/internals/utils'; import { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers'; import { @@ -49,6 +52,9 @@ const headObjectSerializer = async ( const url = new AmplifyUrl(endpoint.url.toString()); validateS3RequiredParameter(!!input.Key, 'Key'); url.pathname = serializePathnameObjectKey(url, input.Key); + url.search = new AmplifyUrlSearchParams({ + 'response-cache-control': 'no-store', + }).toString(); validateObjectUrl({ bucketName: input.Bucket, key: input.Key, diff --git a/scripts/setup-git-secrets.sh b/scripts/setup-git-secrets.sh new file mode 100755 index 00000000000..df63b4ad7c1 --- /dev/null +++ b/scripts/setup-git-secrets.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +# This script registers AWS secret patterns with git-secrets when available. +# It runs as part of the repository setup process to ensure developers have +# proper secret detection configured. +# +# @remarks +# This script is designed to be non-blocking - if git-secrets is not installed, +# it will display a warning but allow setup to continue. The pre-push hook will +# enforce git-secrets installation at push time. + +LOG_PREFIX="[git-secrets setup]" + +# Check if git-secrets is installed +if ! command -v git-secrets >/dev/null 2>&1; then + echo "$LOG_PREFIX ⚠️ git-secrets is not installed." + echo "$LOG_PREFIX Install it to enable secret scanning on push:" + echo "$LOG_PREFIX macOS: brew install git-secrets" + echo "$LOG_PREFIX Linux: See https://github.com/awslabs/git-secrets#installing-git-secrets" + echo "$LOG_PREFIX Windows: See https://github.com/awslabs/git-secrets#installing-git-secrets" + echo "$LOG_PREFIX Skipping pattern registration." + exit 0 +fi + +echo "$LOG_PREFIX git-secrets is installed, registering AWS patterns..." + +# Register AWS patterns with git-secrets +# This adds patterns to detect: +# - AWS access key IDs (AKIA[0-9A-Z]{16}) +# - AWS secret access keys +# - AWS session tokens +git secrets --register-aws 2>/dev/null || true + +echo "$LOG_PREFIX ✅ AWS patterns registered successfully!" +echo "$LOG_PREFIX Run 'git secrets --list' to view registered patterns." diff --git a/yarn.lock b/yarn.lock index 5e514eb62c6..e0228bad3d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1077,7 +1077,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.27.2", "@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.0": +"@babel/compat-data@^7.27.2", "@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790" integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== @@ -1124,7 +1124,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/core@^7.13.16", "@babel/core@^7.20.0", "@babel/core@^7.23.9": +"@babel/core@^7.13.16", "@babel/core@^7.23.9": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.0.tgz#55dad808d5bf3445a108eefc88ea3fdf034749a4" integrity sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ== @@ -1175,7 +1175,7 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.17.0", "@babel/generator@^7.20.0", "@babel/generator@^7.28.0": +"@babel/generator@^7.17.0", "@babel/generator@^7.28.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.0.tgz#9cc2f7bd6eb054d77dc66c2664148a0c5118acd2" integrity sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg== @@ -1204,7 +1204,7 @@ dependencies: "@babel/types" "^7.27.3" -"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": +"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== @@ -1261,13 +1261,6 @@ lodash.debounce "^4.0.8" resolve "^1.22.10" -"@babel/helper-environment-visitor@^7.18.9": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" - integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== - dependencies: - "@babel/types" "^7.24.7" - "@babel/helper-globals@^7.28.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" @@ -1319,7 +1312,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== -"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.27.1": +"@babel/helper-remap-async-to-generator@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== @@ -1471,17 +1464,7 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/traverse" "^7.28.3" -"@babel/plugin-proposal-async-generator-functions@^7.0.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.0": +"@babel/plugin-proposal-class-properties@^7.13.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -1489,14 +1472,14 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-export-default-from@^7.0.0", "@babel/plugin-proposal-export-default-from@^7.24.7": +"@babel/plugin-proposal-export-default-from@^7.24.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz#59b050b0e5fdc366162ab01af4fcbac06ea40919" integrity sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": 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" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -1504,34 +1487,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.20.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.20.0": +"@babel/plugin-proposal-optional-chaining@^7.13.12": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -1559,7 +1515,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.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== @@ -1573,21 +1529,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.24.7": +"@babel/plugin-syntax-export-default-from@^7.24.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.27.1.tgz#8efed172e79ab657c7fa4d599224798212fb7e18" integrity sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.27.1": +"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz#6c83cf0d7d635b716827284b7ecd5aead9237662" integrity sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA== @@ -1622,7 +1578,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.27.1", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.27.1", "@babel/plugin-syntax-jsx@^7.7.2": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== @@ -1636,7 +1592,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== @@ -1650,7 +1606,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -1664,7 +1620,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": +"@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== @@ -1700,14 +1656,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.24.7", "@babel/plugin-transform-arrow-functions@^7.27.1": +"@babel/plugin-transform-arrow-functions@^7.24.7", "@babel/plugin-transform-arrow-functions@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-async-generator-functions@^7.24.3", "@babel/plugin-transform-async-generator-functions@^7.25.4", "@babel/plugin-transform-async-generator-functions@^7.28.0": +"@babel/plugin-transform-async-generator-functions@^7.25.4", "@babel/plugin-transform-async-generator-functions@^7.28.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz#1276e6c7285ab2cd1eccb0bc7356b7a69ff842c2" integrity sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q== @@ -1716,7 +1672,7 @@ "@babel/helper-remap-async-to-generator" "^7.27.1" "@babel/traverse" "^7.28.0" -"@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.24.7", "@babel/plugin-transform-async-to-generator@^7.27.1": +"@babel/plugin-transform-async-to-generator@^7.24.7", "@babel/plugin-transform-async-to-generator@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== @@ -1725,20 +1681,13 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-remap-async-to-generator" "^7.27.1" -"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.27.1": +"@babel/plugin-transform-block-scoped-functions@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz#e7c50cbacc18034f210b93defa89638666099451" - integrity sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-block-scoping@^7.25.0": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.4.tgz#e19ac4ddb8b7858bac1fd5c1be98a994d9726410" @@ -1746,7 +1695,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-properties@^7.24.1", "@babel/plugin-transform-class-properties@^7.25.4", "@babel/plugin-transform-class-properties@^7.27.1": +"@babel/plugin-transform-block-scoping@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz#e7c50cbacc18034f210b93defa89638666099451" + integrity sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-class-properties@^7.25.4", "@babel/plugin-transform-class-properties@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== @@ -1770,31 +1726,31 @@ "@babel/helper-create-class-features-plugin" "^7.28.3" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz#12fa46cffc32a6e084011b650539e880add8a0f8" - integrity sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA== +"@babel/plugin-transform-classes@^7.25.4", "@babel/plugin-transform-classes@^7.28.3": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz#75d66175486788c56728a73424d67cbc7473495c" + integrity sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-globals" "^7.28.0" "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.28.0" + "@babel/traverse" "^7.28.4" -"@babel/plugin-transform-classes@^7.25.4", "@babel/plugin-transform-classes@^7.28.3": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz#75d66175486788c56728a73424d67cbc7473495c" - integrity sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA== +"@babel/plugin-transform-classes@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz#12fa46cffc32a6e084011b650539e880add8a0f8" + integrity sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-globals" "^7.28.0" "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.28.4" + "@babel/traverse" "^7.28.0" -"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.24.7", "@babel/plugin-transform-computed-properties@^7.27.1": +"@babel/plugin-transform-computed-properties@^7.24.7", "@babel/plugin-transform-computed-properties@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== @@ -1802,7 +1758,7 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/template" "^7.27.1" -"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.20.0", "@babel/plugin-transform-destructuring@^7.24.8", "@babel/plugin-transform-destructuring@^7.28.0": +"@babel/plugin-transform-destructuring@^7.24.8", "@babel/plugin-transform-destructuring@^7.28.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz#0f156588f69c596089b7d5b06f5af83d9aa7f97a" integrity sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A== @@ -1862,7 +1818,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.25.2", "@babel/plugin-transform-flow-strip-types@^7.27.1": +"@babel/plugin-transform-flow-strip-types@^7.25.2", "@babel/plugin-transform-flow-strip-types@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz#5def3e1e7730f008d683144fb79b724f92c5cdf9" integrity sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg== @@ -1870,7 +1826,7 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-syntax-flow" "^7.27.1" -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.24.7", "@babel/plugin-transform-for-of@^7.27.1": +"@babel/plugin-transform-for-of@^7.24.7", "@babel/plugin-transform-for-of@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== @@ -1878,7 +1834,7 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.25.1", "@babel/plugin-transform-function-name@^7.27.1": +"@babel/plugin-transform-function-name@^7.25.1", "@babel/plugin-transform-function-name@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== @@ -1894,21 +1850,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.25.2", "@babel/plugin-transform-literals@^7.27.1": +"@babel/plugin-transform-literals@^7.25.2", "@babel/plugin-transform-literals@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-logical-assignment-operators@^7.24.1", "@babel/plugin-transform-logical-assignment-operators@^7.24.7", "@babel/plugin-transform-logical-assignment-operators@^7.27.1": +"@babel/plugin-transform-logical-assignment-operators@^7.24.7", "@babel/plugin-transform-logical-assignment-operators@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz#890cb20e0270e0e5bebe3f025b434841c32d5baa" integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.27.1": +"@babel/plugin-transform-member-expression-literals@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== @@ -1923,7 +1879,7 @@ "@babel/helper-module-transforms" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.24.8", "@babel/plugin-transform-modules-commonjs@^7.27.1": +"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.24.8", "@babel/plugin-transform-modules-commonjs@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== @@ -1949,7 +1905,7 @@ "@babel/helper-module-transforms" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== @@ -1964,43 +1920,43 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator@^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-numeric-separator@^7.24.1", "@babel/plugin-transform-numeric-separator@^7.24.7", "@babel/plugin-transform-numeric-separator@^7.27.1": +"@babel/plugin-transform-numeric-separator@^7.24.7", "@babel/plugin-transform-numeric-separator@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-object-rest-spread@^7.24.5", "@babel/plugin-transform-object-rest-spread@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz#d23021857ffd7cd809f54d624299b8086402ed8d" - integrity sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA== +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz#9ee1ceca80b3e6c4bac9247b2149e36958f7f98d" + integrity sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew== dependencies: "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-destructuring" "^7.28.0" "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/traverse" "^7.28.0" + "@babel/traverse" "^7.28.4" -"@babel/plugin-transform-object-rest-spread@^7.24.7": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz#9ee1ceca80b3e6c4bac9247b2149e36958f7f98d" - integrity sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew== +"@babel/plugin-transform-object-rest-spread@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz#d23021857ffd7cd809f54d624299b8086402ed8d" + integrity sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA== dependencies: "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-destructuring" "^7.28.0" "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/traverse" "^7.28.4" + "@babel/traverse" "^7.28.0" -"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.27.1": +"@babel/plugin-transform-object-super@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== @@ -2008,14 +1964,14 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" -"@babel/plugin-transform-optional-catch-binding@^7.24.1", "@babel/plugin-transform-optional-catch-binding@^7.24.7", "@babel/plugin-transform-optional-catch-binding@^7.27.1": +"@babel/plugin-transform-optional-catch-binding@^7.24.7", "@babel/plugin-transform-optional-catch-binding@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-optional-chaining@^7.24.5", "@babel/plugin-transform-optional-chaining@^7.24.8", "@babel/plugin-transform-optional-chaining@^7.27.1": +"@babel/plugin-transform-optional-chaining@^7.24.8", "@babel/plugin-transform-optional-chaining@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz#874ce3c4f06b7780592e946026eb76a32830454f" integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== @@ -2023,14 +1979,14 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.7", "@babel/plugin-transform-parameters@^7.27.7": +"@babel/plugin-transform-parameters@^7.24.7", "@babel/plugin-transform-parameters@^7.27.7": version "7.27.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.24.7", "@babel/plugin-transform-private-methods@^7.27.1": +"@babel/plugin-transform-private-methods@^7.24.7", "@babel/plugin-transform-private-methods@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== @@ -2038,7 +1994,7 @@ "@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.24.7", "@babel/plugin-transform-private-property-in-object@^7.27.1": +"@babel/plugin-transform-private-property-in-object@^7.24.7", "@babel/plugin-transform-private-property-in-object@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== @@ -2047,14 +2003,14 @@ "@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.27.1": +"@babel/plugin-transform-property-literals@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-display-name@^7.0.0", "@babel/plugin-transform-react-display-name@^7.24.7", "@babel/plugin-transform-react-display-name@^7.27.1": +"@babel/plugin-transform-react-display-name@^7.24.7", "@babel/plugin-transform-react-display-name@^7.27.1": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz#6f20a7295fea7df42eb42fed8f896813f5b934de" integrity sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA== @@ -2068,21 +2024,21 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.27.1" -"@babel/plugin-transform-react-jsx-self@^7.0.0", "@babel/plugin-transform-react-jsx-self@^7.24.7": +"@babel/plugin-transform-react-jsx-self@^7.24.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz#af678d8506acf52c577cac73ff7fe6615c85fc92" integrity sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-jsx-source@^7.0.0", "@babel/plugin-transform-react-jsx-source@^7.24.7": +"@babel/plugin-transform-react-jsx-source@^7.24.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz#dcfe2c24094bb757bf73960374e7c55e434f19f0" integrity sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.25.2", "@babel/plugin-transform-react-jsx@^7.27.1": +"@babel/plugin-transform-react-jsx@^7.25.2", "@babel/plugin-transform-react-jsx@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz#1023bc94b78b0a2d68c82b5e96aed573bcfb9db0" integrity sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw== @@ -2101,13 +2057,6 @@ "@babel/helper-annotate-as-pure" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.20.0", "@babel/plugin-transform-regenerator@^7.28.0": - version "7.28.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz#bde80603442ff4bb4e910bc8b35485295d556ab1" - integrity sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-regenerator@^7.24.7", "@babel/plugin-transform-regenerator@^7.28.3": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz#9d3fa3bebb48ddd0091ce5729139cd99c67cea51" @@ -2115,6 +2064,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" +"@babel/plugin-transform-regenerator@^7.28.0": + version "7.28.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz#bde80603442ff4bb4e910bc8b35485295d556ab1" + integrity sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-regexp-modifiers@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" @@ -2130,18 +2086,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-runtime@^7.0.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.0.tgz#462e79008cc7bdac03e4c5e1765b9de2bcd31c21" - integrity sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - babel-plugin-polyfill-corejs2 "^0.4.14" - babel-plugin-polyfill-corejs3 "^0.13.0" - babel-plugin-polyfill-regenerator "^0.6.5" - semver "^6.3.1" - "@babel/plugin-transform-runtime@^7.24.7": version "7.28.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz#f5990a1b2d2bde950ed493915e0719841c8d0eaa" @@ -2154,14 +2098,14 @@ babel-plugin-polyfill-regenerator "^0.6.5" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.24.7", "@babel/plugin-transform-shorthand-properties@^7.27.1": +"@babel/plugin-transform-shorthand-properties@^7.24.7", "@babel/plugin-transform-shorthand-properties@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.24.7", "@babel/plugin-transform-spread@^7.27.1": +"@babel/plugin-transform-spread@^7.24.7", "@babel/plugin-transform-spread@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== @@ -2169,14 +2113,14 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.24.7", "@babel/plugin-transform-sticky-regex@^7.27.1": +"@babel/plugin-transform-sticky-regex@^7.24.7", "@babel/plugin-transform-sticky-regex@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.27.1": +"@babel/plugin-transform-template-literals@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== @@ -2190,7 +2134,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-typescript@^7.25.2", "@babel/plugin-transform-typescript@^7.27.1", "@babel/plugin-transform-typescript@^7.5.0": +"@babel/plugin-transform-typescript@^7.25.2", "@babel/plugin-transform-typescript@^7.27.1": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz#796cbd249ab56c18168b49e3e1d341b72af04a6b" integrity sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg== @@ -2216,7 +2160,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.24.7", "@babel/plugin-transform-unicode-regex@^7.27.1": +"@babel/plugin-transform-unicode-regex@^7.24.7", "@babel/plugin-transform-unicode-regex@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== @@ -2232,7 +2176,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.20.0": +"@babel/preset-env@^7.0.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.0.tgz#d23a6bc17b43227d11db77081a0779c706b5569c" integrity sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg== @@ -2436,12 +2380,12 @@ pirates "^4.0.6" source-map-support "^0.5.16" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.20.0", "@babel/runtime@^7.25.0": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.25.0": version "7.27.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.6.tgz#ec4070a04d76bae8ddbb10770ba55714a417b7c6" integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q== -"@babel/template@^7.0.0", "@babel/template@^7.16.7", "@babel/template@^7.25.0", "@babel/template@^7.27.1", "@babel/template@^7.27.2", "@babel/template@^7.3.3": +"@babel/template@^7.16.7", "@babel/template@^7.25.0", "@babel/template@^7.27.1", "@babel/template@^7.27.2", "@babel/template@^7.3.3": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== @@ -2502,7 +2446,7 @@ "@babel/types" "^7.28.2" debug "^4.3.1" -"@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.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.28.0", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.17.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.28.0", "@babel/types@^7.4.4": version "7.28.1" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.1.tgz#2aaf3c10b31ba03a77ac84f52b3912a0edef4cf9" integrity sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ== @@ -2864,7 +2808,7 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/create-cache-key-function@^29.2.1", "@jest/create-cache-key-function@^29.6.3", "@jest/create-cache-key-function@^29.7.0": +"@jest/create-cache-key-function@^29.2.1", "@jest/create-cache-key-function@^29.7.0": version "29.7.0" resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz#793be38148fab78e65f40ae30c36785f4ad859f0" integrity sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA== @@ -3016,17 +2960,6 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - "@jest/types@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" @@ -3730,42 +3663,32 @@ dependencies: merge-options "^3.0.4" -"@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.4.1" - chalk "^4.1.2" - execa "^5.0.0" - prompts "^2.4.0" - -"@react-native-community/cli-clean@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-14.1.0.tgz#fee1a178fa58c84dfe18e23ee79fd3110d974971" - integrity sha512-/C4j1yntLo6faztNgZnsDtgpGqa6j0+GYrxOY8LqaKAN03OCnoeUUKO6w78dycbYSGglc1xjJg2RZI/M2oF2AA== +"@react-native-community/cli-clean@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-18.0.1.tgz#de53bf0b72d77d5680f600d5459019583de7774e" + integrity sha512-brXqk//lmA2Vs5lGq9YLhk7X4IYBSrDRte6t1AktouJpCrH4Tp1sl45yJDS2CHOi/OY1oOfI3kA61tXNX5a/5A== dependencies: - "@react-native-community/cli-tools" "14.1.0" + "@react-native-community/cli-tools" "18.0.1" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-clean@18.0.0": +"@react-native-community/cli-config-android@18.0.0": version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-18.0.0.tgz#cdb414c069e0f6d2c1bca02cb48ec3c0f9686e3e" - integrity sha512-+k64EnJaMI5U8iNDF9AftHBJW+pO/isAhncEXuKRc6IjRtIh6yoaUIIf5+C98fgjfux7CNRZAMQIkPbZodv2Gw== + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-android/-/cli-config-android-18.0.0.tgz#9f154a05142d881f9f4950246f1d9bcd2ae2b8d0" + integrity sha512-pgnhEO2cmOeb+bBFEBZFYjeFjDTqWoV0JTorTiugj9bb4RQRCl8cr35baVlBGhxAuaio3722CsJ9GRF1oHjP8w== dependencies: "@react-native-community/cli-tools" "18.0.0" chalk "^4.1.2" - execa "^5.0.0" fast-glob "^3.3.2" + fast-xml-parser "^4.4.1" -"@react-native-community/cli-config-android@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-android/-/cli-config-android-18.0.0.tgz#9f154a05142d881f9f4950246f1d9bcd2ae2b8d0" - integrity sha512-pgnhEO2cmOeb+bBFEBZFYjeFjDTqWoV0JTorTiugj9bb4RQRCl8cr35baVlBGhxAuaio3722CsJ9GRF1oHjP8w== +"@react-native-community/cli-config-android@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-android/-/cli-config-android-18.0.1.tgz#6f9c66feea44d99d104f816dfb15eec848a1cbcc" + integrity sha512-1wzmGLfS7qgzm0ZfwX/f6Lat/af8/UYdjwtb3ap6RfKNclvIoap0wN6uBeiANmLfk0/BhoG8K1vKtIPwlU/V1A== dependencies: - "@react-native-community/cli-tools" "18.0.0" + "@react-native-community/cli-tools" "18.0.1" chalk "^4.1.2" fast-glob "^3.3.2" fast-xml-parser "^4.4.1" @@ -3780,89 +3703,38 @@ execa "^5.0.0" fast-glob "^3.3.2" -"@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== +"@react-native-community/cli-config-apple@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-apple/-/cli-config-apple-18.0.1.tgz#2ec00756d01cc0746f2a4c0eb505dfdb2797e09f" + integrity sha512-ybr1ZrOSd/Z+oCJ1qVSKVQauvneObTu3VjvYPhhrme7tUUSaYmd3iikaWonbKk5rVp+2WqOFR6Cy7XqVfwwG8A== dependencies: - "@react-native-community/cli-tools" "11.4.1" + "@react-native-community/cli-tools" "18.0.1" chalk "^4.1.2" - cosmiconfig "^5.1.0" - deepmerge "^4.3.0" - glob "^7.1.3" - joi "^17.2.1" - -"@react-native-community/cli-config@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-14.1.0.tgz#8cdebb890eeb3c25d6c117ee56c952e96ea2afbf" - integrity sha512-P3FK2rPUJBD1fmQHLgTqpHxsc111pnMdEEFR7KeqprCNz+Qr2QpPxfNy0V7s15tGL5rAv+wpbOGcioIV50EbxA== - dependencies: - "@react-native-community/cli-tools" "14.1.0" - chalk "^4.1.2" - cosmiconfig "^9.0.0" - deepmerge "^4.3.0" + execa "^5.0.0" fast-glob "^3.3.2" - joi "^17.2.1" -"@react-native-community/cli-config@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-18.0.0.tgz#95252f881b7c9abbffe7bc87b911de2a3ed9a68f" - integrity sha512-GUGvyek06JRF4mfd9zXao9YQW4+H8ny69HznqNXVRtVSIIekFyjOpKQeSEzdcyqJEEa5gej22GOz1JCHMKBccg== +"@react-native-community/cli-config@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-18.0.1.tgz#7d7dca6166e35f4680eff43d144ae7dc75869ad5" + integrity sha512-O4DDJVMx+DYfwEgF/6lB4hoI9sVjrYW6AlLqeJY/D2XH2e4yqK/Pr3SAi4sOMgvjvYZKzLHqIQVxx54v+LyMQA== dependencies: - "@react-native-community/cli-tools" "18.0.0" + "@react-native-community/cli-tools" "18.0.1" chalk "^4.1.2" cosmiconfig "^9.0.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" -"@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== +"@react-native-community/cli-doctor@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-18.0.1.tgz#9d21b0362755d2fce1a024100896df880b7c0eca" + integrity sha512-B1UWpiVeJ45DX0ip1Et62knAHLzeA1B3XcTJu16PscednnNxV6GBH52kRUoWMsB8HQ8f9IWdFTol8LAp5Y0wwg== dependencies: - serve-static "^1.13.1" - -"@react-native-community/cli-debugger-ui@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.1.0.tgz#0008039ad2c386730c415d9dfc6884d68fda2c93" - integrity sha512-+YbeCL0wLcBcqDwraJFGsqzcXu9S+bwTVrfImne/4mT6itfe3Oa93yrOVJgNbstrt5pJHuwpU76ZXfXoiuncsg== - dependencies: - serve-static "^1.13.1" - -"@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.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" - node-stream-zip "^1.9.1" - ora "^5.4.1" - prompts "^2.4.0" - semver "^7.5.2" - strip-ansi "^5.2.0" - sudo-prompt "^9.0.0" - wcwidth "^1.0.1" - yaml "^2.2.1" - -"@react-native-community/cli-doctor@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-14.1.0.tgz#129b25a7792f7bb0ed1218d17665ce74bb995d08" - integrity sha512-xIf0oQDRKt7lufUenRwcLYdINGc0x1FSXHaHjd7lQDGT5FJnCEYlIkYEDDgAl5tnVJSvM/IL2c6O+mffkNEPzQ== - dependencies: - "@react-native-community/cli-config" "14.1.0" - "@react-native-community/cli-platform-android" "14.1.0" - "@react-native-community/cli-platform-apple" "14.1.0" - "@react-native-community/cli-platform-ios" "14.1.0" - "@react-native-community/cli-tools" "14.1.0" + "@react-native-community/cli-config" "18.0.1" + "@react-native-community/cli-platform-android" "18.0.1" + "@react-native-community/cli-platform-apple" "18.0.1" + "@react-native-community/cli-platform-ios" "18.0.1" + "@react-native-community/cli-tools" "18.0.1" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -3871,42 +3743,32 @@ node-stream-zip "^1.9.1" ora "^5.4.1" semver "^7.5.2" - strip-ansi "^5.2.0" wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-doctor@18.0.0": +"@react-native-community/cli-platform-android@18.0.0": version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-18.0.0.tgz#5d1f90e355b8b9ca7c7d860acef147b8979495ec" - integrity sha512-cD3LJfu2h2QSFmZai+fl7RrORKodd5XHSuB7Y9oF1zkebpRYN720vaUtK+GsepqBOElwKk5gl8uVolJ3j+xm8A== + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-18.0.0.tgz#6bc69b0cccaa8d8138d31eb9b449e17528cd8f63" + integrity sha512-3Y3RleN/des1C3oRS6s6fDvFYKN0KwsLrYFRpVx9vzdDnH1OGyFJOy4DbrruSPtdNiHUpvvHnOOxeLMj0+/tmw== dependencies: - "@react-native-community/cli-config" "18.0.0" - "@react-native-community/cli-platform-android" "18.0.0" - "@react-native-community/cli-platform-apple" "18.0.0" - "@react-native-community/cli-platform-ios" "18.0.0" + "@react-native-community/cli-config-android" "18.0.0" "@react-native-community/cli-tools" "18.0.0" chalk "^4.1.2" - command-exists "^1.2.8" - deepmerge "^4.3.0" - envinfo "^7.13.0" execa "^5.0.0" - node-stream-zip "^1.9.1" - ora "^5.4.1" - semver "^7.5.2" - wcwidth "^1.0.1" - yaml "^2.2.1" + logkitty "^0.7.1" -"@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== +"@react-native-community/cli-platform-android@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-18.0.1.tgz#feb14427b47028646c8d7cf3b9ffff19a754e4ee" + integrity sha512-DCltVWDR7jfZZG5MXREVKG0fmIr1b0irEhmdkk/R87dG6HJ8tGXWXnAa4Kap8bx2v6lKFXDW5QxNecyyLCOkVw== dependencies: - "@react-native-community/cli-platform-android" "11.4.1" - "@react-native-community/cli-tools" "11.4.1" + "@react-native-community/cli-config-android" "18.0.1" + "@react-native-community/cli-tools" "18.0.1" chalk "^4.1.2" - hermes-profile-transformer "^0.0.6" + execa "^5.0.0" + logkitty "^0.7.1" -"@react-native-community/cli-platform-android@11.4.1", "@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== @@ -3917,41 +3779,6 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-android@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-14.1.0.tgz#3545347a810d209bba24941f62f802fdc09e252f" - integrity sha512-4JnXkAV+ca8XdUhZ7xjgDhXAMwTVjQs8JqiwP7FTYVrayShXy2cBXm/C3HNDoe+oQOF5tPT2SqsDAF2vYTnKiQ== - dependencies: - "@react-native-community/cli-tools" "14.1.0" - chalk "^4.1.2" - execa "^5.0.0" - fast-glob "^3.3.2" - fast-xml-parser "^4.4.1" - logkitty "^0.7.1" - -"@react-native-community/cli-platform-android@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-18.0.0.tgz#6bc69b0cccaa8d8138d31eb9b449e17528cd8f63" - integrity sha512-3Y3RleN/des1C3oRS6s6fDvFYKN0KwsLrYFRpVx9vzdDnH1OGyFJOy4DbrruSPtdNiHUpvvHnOOxeLMj0+/tmw== - dependencies: - "@react-native-community/cli-config-android" "18.0.0" - "@react-native-community/cli-tools" "18.0.0" - chalk "^4.1.2" - execa "^5.0.0" - logkitty "^0.7.1" - -"@react-native-community/cli-platform-apple@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.1.0.tgz#d232cd0fc1ec0bccd165e40dd7d8a3c4bec5f571" - integrity sha512-DExd+pZ7hHxXt8I6BBmckeYUxxq7PQ+o4YSmGIeQx0xUpi+f82obBct2WNC3VWU72Jw6obwfoN6Fwe6F7Wxp5Q== - dependencies: - "@react-native-community/cli-tools" "14.1.0" - chalk "^4.1.2" - execa "^5.0.0" - fast-glob "^3.3.2" - fast-xml-parser "^4.4.1" - ora "^5.4.1" - "@react-native-community/cli-platform-apple@18.0.0": version "18.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-18.0.0.tgz#044b5a57ec81960f5bdbcf44f18f2fe7931fa5f7" @@ -3963,24 +3790,16 @@ execa "^5.0.0" fast-xml-parser "^4.4.1" -"@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== +"@react-native-community/cli-platform-apple@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-18.0.1.tgz#8565ce05ae0fa287e64b4460b61c913e96b3ee93" + integrity sha512-7WxGXT/ui7VtyLVjx5rkYkkTMlbufI6p5BdRKjGp/zQDnDzs/0rle0JEHJxwgvs5VQnt+VOnHBMipkQAhydIqQ== dependencies: - "@react-native-community/cli-tools" "11.4.1" + "@react-native-community/cli-config-apple" "18.0.1" + "@react-native-community/cli-tools" "18.0.1" chalk "^4.1.2" execa "^5.0.0" - fast-xml-parser "^4.0.12" - glob "^7.1.3" - ora "^5.4.1" - -"@react-native-community/cli-platform-ios@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.1.0.tgz#e3b7ae8a97b69da4c7c89d9767ea58fb90c9c05f" - integrity sha512-ah/ZTiJXUdCVHujyRJ4OmCL5nTq8OWcURcE3UXa1z0sIIiA8io06n+v5n299T9rtPKMwRtVJlQjtO/nbODABPQ== - dependencies: - "@react-native-community/cli-platform-apple" "14.1.0" + fast-xml-parser "^4.4.1" "@react-native-community/cli-platform-ios@18.0.0": version "18.0.0" @@ -3989,59 +3808,31 @@ dependencies: "@react-native-community/cli-platform-apple" "18.0.0" -"@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== +"@react-native-community/cli-platform-ios@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-18.0.1.tgz#fb99bf0e2b7dd690e4e2df65b60303546a2804bc" + integrity sha512-GtO1FB+xaz+vcHIdvl94AkD5B8Y+H8XHb6QwnYX+A3WwteGsHrR8iD/bLLcRtNPtLaAWMa/RgWJpgs4KG+eU4w== dependencies: - "@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.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-platform-apple" "18.0.1" -"@react-native-community/cli-server-api@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-server-api/-/cli-server-api-11.4.1.tgz#3dda094c4ab2369db34fe991c320e3cd78f097b3" - integrity sha512-isxXE8X5x+C4kN90yilD08jaLWD34hfqTfn/Xbl1u/igtdTsCaQGvWe9eaFamrpWFWTpVtj6k+vYfy8AtYSiKA== + 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-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" - nocache "^3.0.1" - pretty-format "^26.6.2" - serve-static "^1.13.1" - ws "^7.5.1" - -"@react-native-community/cli-server-api@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-14.1.0.tgz#b658f96014f6d725ddb50da69833eacdbb8263c8" - integrity sha512-1k2LBQaYsy9RDWFIfKVne3frOye73O33MV6eYMoRPff7wqxHCrsX1CYJQkmwpgVigZHxYwalHj+Axtu3gpomCA== - dependencies: - "@react-native-community/cli-debugger-ui" "14.1.0" - "@react-native-community/cli-tools" "14.1.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.3" + chalk "^4.1.2" + execa "^5.0.0" + fast-xml-parser "^4.0.12" + glob "^7.1.3" + ora "^5.4.1" -"@react-native-community/cli-server-api@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-18.0.0.tgz#172df67c473361e060689a50d7aed93efeae4456" - integrity sha512-tdmGV7ZntYmzrXWheZNpAy6dVI2yrsX4sQH+xAzU7lCfKHk6J8GucxedduXnB5qBB4JgSrrbzg2RLNxv5v0S/Q== +"@react-native-community/cli-server-api@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-18.0.1.tgz#d3f35644727b4427a442c38e6b4f77fe1f071d63" + integrity sha512-ZRy2IjEM4ljP05bZcnXho0sCxVGI/9SkWkLuzXl+cRu/4I8vLRleihn2GJCopg82QHLLrajUCHhpDKE8NJWcRw== dependencies: - "@react-native-community/cli-tools" "18.0.0" + "@react-native-community/cli-tools" "18.0.1" body-parser "^1.20.3" compression "^1.7.1" connect "^3.6.5" @@ -4067,22 +3858,6 @@ semver "^7.5.2" shell-quote "^1.7.3" -"@react-native-community/cli-tools@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-14.1.0.tgz#fbbd40e9ccd93842992c8e45c10dfd8eeb56ff4a" - integrity sha512-r1KxSu2+OSuhWFoE//1UR7aSTXMLww/UYWQprEw4bSo/kvutGX//4r9ywgXSWp+39udpNN4jQpNTHuWhGZd/Bg== - 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@18.0.0": version "18.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-18.0.0.tgz#742330d3315bc78f1e57c03969231252f6584a29" @@ -4099,60 +3874,40 @@ prompts "^2.4.2" semver "^7.5.2" -"@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" - -"@react-native-community/cli-types@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-14.1.0.tgz#0ea5dad716f30cd49d2edd5d9fdea8e552cb44e8" - integrity sha512-aJwZI9mGRx3HdP8U4CGhqjt3S4r8GmeOqv4kRagC1UHDk4QNMC+bZ8JgPA4W7FrGiPey+lJQHMDPAXOo51SOUw== +"@react-native-community/cli-tools@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-18.0.1.tgz#b418d2d1e51b621d4ec4ba7b26474f41ecc142fa" + integrity sha512-WxWFXwfYhHR2eYiB4lkHZVC/PmIkRWeVHBQKmn0h1mecr3GrHYO4BzW1jpD5Xt6XZ9jojQ9wE5xrCqXjiMSAIQ== dependencies: - joi "^17.2.1" - -"@react-native-community/cli-types@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-18.0.0.tgz#225159de80c0b6a39f993fa003030c2eca2add00" - integrity sha512-J84+4IRXl8WlVdoe1maTD5skYZZO9CbQ6LNXEHx1kaZcFmvPZKfjsaxuyQ+8BsSqZnM2izOw8dEWnAp/Zuwb0w== - dependencies: - joi "^17.2.1" - -"@react-native-community/cli@14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-14.1.0.tgz#bbcc14e9b7ee54589e645c7cd42da0cc79307f41" - integrity sha512-k7aTdKNZIec7WMSqMJn9bDVLWPPOaYmshXcnjWy6t5ItsJnREju9p2azMTR5tXY5uIeynose3cxettbhk2Tbnw== - dependencies: - "@react-native-community/cli-clean" "14.1.0" - "@react-native-community/cli-config" "14.1.0" - "@react-native-community/cli-debugger-ui" "14.1.0" - "@react-native-community/cli-doctor" "14.1.0" - "@react-native-community/cli-server-api" "14.1.0" - "@react-native-community/cli-tools" "14.1.0" - "@react-native-community/cli-types" "14.1.0" + "@vscode/sudo-prompt" "^9.0.0" + appdirsjs "^1.2.4" chalk "^4.1.2" - commander "^9.4.1" - deepmerge "^4.3.0" execa "^5.0.0" find-up "^5.0.0" - fs-extra "^8.1.0" - graceful-fs "^4.1.3" + launch-editor "^2.9.1" + mime "^2.4.1" + ora "^5.4.1" prompts "^2.4.2" semver "^7.5.2" -"@react-native-community/cli@18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-18.0.0.tgz#27d0160b7c0a44b1bcc0f45d736bbc6b7d2d5ca6" - integrity sha512-DyKptlG78XPFo7tDod+we5a3R+U9qjyhaVFbOPvH4pFNu5Dehewtol/srl44K6Cszq0aEMlAJZ3juk0W4WnOJA== +"@react-native-community/cli-types@18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-18.0.1.tgz#5b3493adc0d8913aa7cb60cb3e54461f10bca5a7" + integrity sha512-pGxr/TSP9Xiw2+9TUn3OWLdcuI4+PJozPsCYZVTGWJ96X6Pv7YX/rNy4emIDkaWaFZ7IWgWXUA725KhEINSf3Q== dependencies: - "@react-native-community/cli-clean" "18.0.0" - "@react-native-community/cli-config" "18.0.0" - "@react-native-community/cli-doctor" "18.0.0" - "@react-native-community/cli-server-api" "18.0.0" - "@react-native-community/cli-tools" "18.0.0" - "@react-native-community/cli-types" "18.0.0" + joi "^17.2.1" + +"@react-native-community/cli@18.0.1", "@react-native-community/cli@^11.4.1", "@react-native-community/cli@^18.0.1": + version "18.0.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-18.0.1.tgz#bc9bfa096943984844160ffc850374f2da59e146" + integrity sha512-nEEYwfyP00j9i4nr/HhwPabDscoBhhCjxDBpcKERi2oTYHcBr3FTu9PV1gbeJCa4vRCHr6b6VgOcVTdy99NddQ== + dependencies: + "@react-native-community/cli-clean" "18.0.1" + "@react-native-community/cli-config" "18.0.1" + "@react-native-community/cli-doctor" "18.0.1" + "@react-native-community/cli-server-api" "18.0.1" + "@react-native-community/cli-tools" "18.0.1" + "@react-native-community/cli-types" "18.0.1" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" @@ -4163,39 +3918,11 @@ 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" integrity sha512-a/sDB+AsLEUNmhAUlAaTYeXKyQdFGBUfatqKkX5jluBo2CB3OAuTHfm7rSjcaLB9EmG5iSq3fOTpync2E7EYTA== -"@react-native/assets-registry@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.75.5.tgz#e432010450afb235483413bfb2b4ed2e7145ef07" - integrity sha512-5Arp90qqwT4svF9izcFxM2tiDZlHSVKBuLT6gS1FbOABzHkKDK06Pv+CWNKZ2TM0l7qxRxNAd6e86tvnkMlGZw== - "@react-native/assets-registry@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.79.2.tgz#731963e664c8543f5b277e56c058bde612b69f50" @@ -4206,13 +3933,6 @@ resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.72.0.tgz#c82a76a1d86ec0c3907be76f7faf97a32bbed05d" integrity sha512-Im93xRJuHHxb1wniGhBMsxLwcfzdYreSZVQGDoMJgkd6+Iky61LInGEHnQCTN0fKNYF1Dvcofb4uMmE1RQHXHQ== -"@react-native/babel-plugin-codegen@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.75.5.tgz#53c5af5fae6a1f3f0ea7b28814240b13dd78cf28" - integrity sha512-WUYzABcKhjCYCFsMTkvJ4CPSSeQ0ayLoIQjN87NtgrKzRq6yISTxF2J/2vgUuJgT99U7J6x6AgdNqlQ/U6M+qw== - dependencies: - "@react-native/codegen" "0.75.5" - "@react-native/babel-plugin-codegen@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.79.2.tgz#f3f86766a01487aaaa623ec62514af4c84400953" @@ -4221,57 +3941,6 @@ "@babel/traverse" "^7.25.3" "@react-native/codegen" "0.79.2" -"@react-native/babel-preset@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.75.5.tgz#e137328d496f40e1f4bf1ac8a238d80c5c45c440" - integrity sha512-VEJvWUu2zg9PacO6RL3n10TQ05IdbTIKiCpRAulexSAZZamURelX8Ko9VbWpIP0Wg/zFyYoDwsKOhCe+rFfhvA== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-export-default-from" "^7.0.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" - "@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-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" - "@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" - "@react-native/babel-plugin-codegen" "0.75.5" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.14.0" - "@react-native/babel-preset@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.79.2.tgz#5a683a6efeea357a326f70c84a881be2bafbeae3" @@ -4323,20 +3992,6 @@ babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/codegen@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.75.5.tgz#ffac04d501bdd5dc1bce62203a1b49130a514e3d" - integrity sha512-xIhr7UpnUySYJGgQmLrTPtTcaDlri7YECkAJwcLAxdDu2KVJzGoxNdHa2poCkTLceDBxvL+3hYYsoevl1PD45w== - dependencies: - "@babel/parser" "^7.20.0" - glob "^7.1.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.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.79.2.tgz#75270d8162e78c02b0272396a3c6942e39e8703d" @@ -4361,23 +4016,6 @@ mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.75.5.tgz#18ca546a16ffd8230b5b5c64458b7af97da97e91" - integrity sha512-rtZqsTb+2gtPw8BZgJlZ7p5ycXSGu4uql1gxybcv9qNgqlsNBZofiIdZEAade67/GfeQEvy/UY96SvoIsmVW6A== - dependencies: - "@react-native-community/cli-server-api" "14.1.0" - "@react-native-community/cli-tools" "14.1.0" - "@react-native/dev-middleware" "0.75.5" - "@react-native/metro-babel-transformer" "0.75.5" - chalk "^4.0.0" - execa "^5.1.1" - metro "^0.80.3" - metro-config "^0.80.3" - metro-core "^0.80.3" - node-fetch "^2.2.0" - readline "^1.3.0" - "@react-native/community-cli-plugin@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.79.2.tgz#d3a0efbdfb554cf3a7e9bfb27865a7caeeeaa1b3" @@ -4392,34 +4030,11 @@ metro-core "^0.82.0" semver "^7.1.3" -"@react-native/debugger-frontend@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.75.5.tgz#f3eafdca29e12aad20baf79845ffb0d9c3c9ca7c" - integrity sha512-/mW0ELovNVAdZZFs0JC9147zF/GlvgrFPHhLhkgT95lOir/8cACLvR1kdVnH59sAQw2zKxyrFbrwhO80zPfp9g== - "@react-native/debugger-frontend@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.79.2.tgz#1377de6d9cabe5455bf332e06408167da5f60c19" integrity sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg== -"@react-native/dev-middleware@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.75.5.tgz#4d62e0842094d144035e0b8847f02647194184e0" - integrity sha512-agVYocKP6YjW2g296jS1fipvC4U1vaykPnIgIgQfXhhVAYsFFJwO4Fh8oLcI82ceGc3mikv9cPrv8IrUoIWKsg== - dependencies: - "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.75.5" - chrome-launcher "^0.15.2" - chromium-edge-launcher "^0.2.0" - connect "^3.6.5" - debug "^2.2.0" - node-fetch "^2.2.0" - nullthrows "^1.1.1" - open "^7.0.3" - selfsigned "^2.4.1" - serve-static "^1.13.1" - ws "^6.2.2" - "@react-native/dev-middleware@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.79.2.tgz#f09f1a75b4cd0b56dfd82a07bf41157a9c45619c" @@ -4460,11 +4075,6 @@ resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.79.2.tgz#23d18226bb4335404e6db561bf1a47ac7d1380ed" integrity sha512-Abu+0OuwTje9E5eQOvYpTUuXvDgGjHeFhnfNVY9BXalBK8OrX20EFlonWvIbFqii136eS5KLEBm2Wjqk2V5XJg== -"@react-native/gradle-plugin@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.75.5.tgz#6f0aab0d3772b393cb4251928f9553cf1eead050" - integrity sha512-s6lPOVPLoGdQNbfgkVHvCC5Mg/mdTkg+5l5gChG6tNI4LZ6NVvaN0Ettt8bIKMoYlExsXQ2zpdBLopnjro5JgA== - "@react-native/gradle-plugin@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.79.2.tgz#d41d4e2c63baf688a2b47652c6260f2a2f1ec091" @@ -4475,11 +4085,6 @@ 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.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.75.5.tgz#c87d96d72f8a6d005fa3bdc6131a5aa8b3ede4f9" - integrity sha512-zDMMq2mtWZ1/P3CnOguBucMSsvzPSDuLHZPn33DjZv1VFSOjqyAbGy9F7ZEQ0Y+vNiApOH9tPcsBZRFuTATzng== - "@react-native/js-polyfills@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.79.2.tgz#15eb4da0fe9e8d61d2980d08fd06b5f49e133b0f" @@ -4490,16 +4095,6 @@ 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.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.75.5.tgz#65d5fc9f1122d564ff0476cf5520595b3879d32b" - integrity sha512-As/3zryghF12L983GaoBIgJFsDsepZfMCGGYz3zsfRqh4JjYaaGR5QAoWkk+NE+VDOwnvDp3zoVYtAqsu3wPbQ== - dependencies: - "@babel/core" "^7.20.0" - "@react-native/babel-preset" "0.75.5" - hermes-parser "0.22.0" - nullthrows "^1.1.1" - "@react-native/metro-babel-transformer@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.79.2.tgz#bd7c1adbf5b2423a612c5752d554914cafcbd667" @@ -4520,26 +4115,11 @@ metro-config "^0.82.0" metro-runtime "^0.82.0" -"@react-native/metro-config@^0.72.11": - version "0.72.12" - resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.72.12.tgz#f55a0a68100824ac57989ee9ae9518a69b0c43c5" - integrity sha512-6NC5nr70oV8gH5vTz0yVYig6TGn97NfE58DdYottuOGPEODZf9Jpb7gdLs6Rqj5ryFDsKVPU3NsFmXKBJwEgXQ== - dependencies: - "@react-native/js-polyfills" "^0.72.1" - metro-config "^0.76.9" - metro-react-native-babel-transformer "^0.76.9" - metro-runtime "^0.76.9" - "@react-native/normalize-color@^2.0.0": version "2.1.0" 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@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.75.5.tgz#6c3df4e3ae938ddab6df2ac00f1ad0559cbd2bf7" - integrity sha512-8yooxuLIwxI11O+pJ9LDtiaAiyXQeubROXALdAhU3kZQI49Nz0WB1ugLWj0Et+D8miD+79XPOFflcUqqoIY1nw== - "@react-native/normalize-colors@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.79.2.tgz#9ab70ca257c7411e4ab74cf7f91332c27d39cc6f" @@ -4555,14 +4135,6 @@ resolved "https://registry.yarnpkg.com/@react-native/typescript-config/-/typescript-config-0.79.2.tgz#02cb07db89ef80159b3c1b3e82e81b0c0d5ce908" integrity sha512-krHAkkPRCOEhuqN3iwRUwIyE1rAnUQ9//huzUc1ukcoQ7Y4qFxM6amhNloAmYn4QH1Ay6o5At00VbEh2xoHISA== -"@react-native/virtualized-lists@0.75.5": - version "0.75.5" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.75.5.tgz#8e37332d08e337158c7e3f969330d48b61be8968" - integrity sha512-B1XMDXgptPpeWmmZABverRE9tBjDYuP97wQ/FeU7gHhZ+cwD+w68mwFZxcivr5fDz0Z4FaGlM7pR6oGjEn8NXA== - dependencies: - invariant "^2.2.4" - nullthrows "^1.1.1" - "@react-native/virtualized-lists@0.79.2": version "0.79.2" resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.79.2.tgz#ed5a419a30b7ddec978b7816ff698a9d85507e15" @@ -5745,13 +5317,6 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== -"@types/node-forge@^1.3.0": - version "1.3.13" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.13.tgz#1797af20f7eccaf5f37b4d1739923bb0519d95b6" - integrity sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww== - dependencies: - "@types/node" "*" - "@types/node@*": version "24.1.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-24.1.0.tgz#0993f7dc31ab5cc402d112315b463e383d68a49c" @@ -5882,13 +5447,6 @@ dependencies: "@types/yargs-parser" "*" -"@types/yargs@^16.0.0": - version "16.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.9.tgz#ba506215e45f7707e6cbcaf386981155b7ab956e" - integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^17.0.8": version "17.0.33" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" @@ -6658,13 +6216,6 @@ are-we-there-yet@^3.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -6818,7 +6369,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^3.2.2, async@^3.2.3: +async@^3.2.3: version "3.2.6" resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== @@ -6940,11 +6491,6 @@ babel-plugin-syntax-hermes-parser@0.25.1: dependencies: hermes-parser "0.25.1" -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== - babel-plugin-transform-flow-enums@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz#d1d0cc9bdc799c850ca110d0ddc9f21b9ec3ef25" @@ -6973,39 +6519,6 @@ babel-preset-current-node-syntax@^1.0.0: "@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" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.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.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.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-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - babel-preset-jest@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" @@ -7676,11 +7189,6 @@ commander@^9.4.1: resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" - integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== - comment-parser@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.1.tgz#bdafead37961ac079be11eb7ec65c4d021eaf9cc" @@ -7864,7 +7372,7 @@ cosmiconfig@9.0.0, cosmiconfig@^9.0.0: js-yaml "^4.1.0" parse-json "^5.2.0" -cosmiconfig@^5.0.5, cosmiconfig@^5.1.0: +cosmiconfig@^5.0.5: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== @@ -8138,11 +7646,6 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -denodeify@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" - integrity sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg== - depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -8367,7 +7870,7 @@ envinfo@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== -envinfo@^7.13.0, envinfo@^7.7.2, envinfo@^7.7.3: +envinfo@^7.13.0, envinfo@^7.7.3: version "7.14.0" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== @@ -8851,7 +8354,7 @@ espree@^10.0.1, espree@^10.3.0, espree@^10.4.0: acorn-jsx "^5.3.2" eslint-visitor-keys "^4.2.1" -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: +esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -8930,7 +8433,7 @@ execa@5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^5.0.0, execa@^5.1.1: +execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -9606,9 +9109,9 @@ glob@7.1.6: 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== + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== dependencies: foreground-child "^3.1.0" jackspeak "^3.1.2" @@ -9785,21 +9288,6 @@ hasown@^2.0.2: dependencies: function-bind "^1.1.2" -hermes-estree@0.12.0: - version "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.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.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.23.1.tgz#d0bac369a030188120ee7024926aabe5a9f84fdb" - integrity sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg== - hermes-estree@0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.25.1.tgz#6aeec17d1983b4eabf69721f3aa3eb705b17f480" @@ -9810,27 +9298,6 @@ hermes-estree@0.29.1: resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.29.1.tgz#043c7db076e0e8ef8c5f6ed23828d1ba463ebcc5" integrity sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ== -hermes-parser@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.12.0.tgz#114dc26697cfb41a6302c215b859b74224383773" - integrity sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw== - dependencies: - hermes-estree "0.12.0" - -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.22.0" - -hermes-parser@0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.23.1.tgz#e5de648e664f3b3d84d01b48fc7ab164f4b68205" - integrity sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA== - dependencies: - hermes-estree "0.23.1" - hermes-parser@0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.25.1.tgz#5be0e487b2090886c62bd8a11724cd766d5f54d1" @@ -9845,13 +9312,6 @@ hermes-parser@0.29.1: dependencies: hermes-estree "0.29.1" -hermes-profile-transformer@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz#bd0f5ecceda80dd0ddaae443469ab26fb38fc27b" - integrity sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ== - dependencies: - source-map "^0.7.3" - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -10771,7 +10231,7 @@ jest-environment-jsdom@^29.7.0: jest-util "^29.7.0" jsdom "^20.0.0" -jest-environment-node@^29.2.1, jest-environment-node@^29.6.3, jest-environment-node@^29.7.0: +jest-environment-node@^29.2.1, jest-environment-node@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== @@ -10862,11 +10322,6 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^27.0.6: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== - jest-regex-util@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" @@ -10976,18 +10431,6 @@ jest-snapshot@^29.7.0: pretty-format "^29.7.0" semver "^7.5.3" -jest-util@^27.2.0: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - jest-util@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" @@ -11000,7 +10443,7 @@ jest-util@^29.7.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.1, jest-validate@^29.6.3, jest-validate@^29.7.0: +jest-validate@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== @@ -11026,7 +10469,7 @@ jest-watcher@^29.7.0: jest-util "^29.7.0" string-length "^4.0.1" -jest-worker@^27.2.0, jest-worker@^27.4.5: +jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== @@ -11035,7 +10478,7 @@ jest-worker@^27.2.0, jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.6.3, jest-worker@^29.7.0: +jest-worker@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== @@ -11083,21 +10526,13 @@ js-cookie@^3.0.5: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== +js-yaml@4.1.0, js-yaml@4.1.1, js-yaml@^3.10.0, js-yaml@^3.13.1, js-yaml@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" -js-yaml@^3.10.0, js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" @@ -11833,27 +11268,8 @@ merge-stream@^2.0.0: merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -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" - integrity sha512-dAnAmBqRdTwTPVn4W4JrowPolxD1MDbuU97u3MqtWZgVRvDpmr+Cqnn5oSxLQk3Uc+Zy3wkqVrB/zXNRlLDSAQ== - dependencies: - "@babel/core" "^7.20.0" - hermes-parser "0.12.0" - nullthrows "^1.1.1" - -metro-babel-transformer@0.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz#ad02ade921dd4ced27b26b18ff31eb60608e3f56" - integrity sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg== - dependencies: - "@babel/core" "^7.20.0" - flow-enums-runtime "^0.0.6" - hermes-parser "0.23.1" - nullthrows "^1.1.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== metro-babel-transformer@0.82.5: version "0.82.5" @@ -11865,18 +11281,6 @@ metro-babel-transformer@0.82.5: hermes-parser "0.29.1" nullthrows "^1.1.1" -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" - integrity sha512-ugJuYBLngHVh1t2Jj+uP9pSCQl7enzVXkuh6+N3l0FETfqjgOaSHlcnIhMPn6yueGsjmkiIfxQU4fyFVXRtSTw== - -metro-cache-key@0.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.12.tgz#52f5de698b85866503ace45d0ad76f75aaec92a4" - integrity sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA== - dependencies: - flow-enums-runtime "^0.0.6" - metro-cache-key@0.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.82.5.tgz#290a0054b28a708266fb91c8028cf94be04f99c9" @@ -11884,23 +11288,6 @@ metro-cache-key@0.82.5: dependencies: flow-enums-runtime "^0.0.6" -metro-cache@0.76.9: - version "0.76.9" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.9.tgz#64326d7a8b470c3886a5e97d5e2a20acab20bc5f" - integrity sha512-W6QFEU5AJG1gH4Ltv8S2IvhmEhSDYnbPafyj5fGR3YLysdykj+olKv9B0V+YQXtcLGyY5CqpXLYUx595GdiKzA== - dependencies: - metro-core "0.76.9" - rimraf "^3.0.2" - -metro-cache@0.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.12.tgz#bd81af02c4f17b5aeab19bb030566b14147cee8b" - integrity sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA== - dependencies: - exponential-backoff "^3.1.1" - flow-enums-runtime "^0.0.6" - metro-core "0.80.12" - metro-cache@0.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.82.5.tgz#4c8fe58cd5fa30b87db0b2b6a650a771ec6fe162" @@ -11911,33 +11298,6 @@ metro-cache@0.82.5: https-proxy-agent "^7.0.5" metro-core "0.82.5" -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" - integrity sha512-oYyJ16PY3rprsfoi80L+gDJhFJqsKI3Pob5LKQbJpvL+gGr8qfZe1eQzYp5Xxxk9DOHKBV1xD94NB8GdT/DA8Q== - dependencies: - connect "^3.6.5" - cosmiconfig "^5.0.5" - jest-validate "^29.2.1" - metro "0.76.9" - metro-cache "0.76.9" - metro-core "0.76.9" - metro-runtime "0.76.9" - -metro-config@0.80.12, metro-config@^0.80.3: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.12.tgz#1543009f37f7ad26352ffc493fc6305d38bdf1c0" - integrity sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ== - dependencies: - connect "^3.6.5" - cosmiconfig "^5.0.5" - flow-enums-runtime "^0.0.6" - jest-validate "^29.6.3" - metro "0.80.12" - metro-cache "0.80.12" - metro-core "0.80.12" - metro-runtime "0.80.12" - metro-config@0.82.5, metro-config@^0.82.0: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.82.5.tgz#07366f32c3fe6203d630af7df4781900816c7c85" @@ -11952,23 +11312,6 @@ metro-config@0.82.5, metro-config@^0.82.0: metro-core "0.82.5" metro-runtime "0.82.5" -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== - dependencies: - lodash.throttle "^4.1.1" - metro-resolver "0.76.9" - -metro-core@0.80.12, metro-core@^0.80.3: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.12.tgz#5ae337923ab19ff524077efa1aeacdf4480cfa28" - integrity sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw== - dependencies: - flow-enums-runtime "^0.0.6" - lodash.throttle "^4.1.1" - metro-resolver "0.80.12" - metro-core@0.82.5, metro-core@^0.82.0: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.82.5.tgz#fda1b2f7365e3a09055dd72ba1681f8fc1f6f492" @@ -11978,45 +11321,6 @@ metro-core@0.82.5, metro-core@^0.82.0: lodash.throttle "^4.1.1" metro-resolver "0.82.5" -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" - integrity sha512-7vJd8kksMDTO/0fbf3081bTrlw8SLiploeDf+vkkf0OwlrtDUWPOikfebp+MpZB2S61kamKjCNRfRkgrbPfSwg== - 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.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.12.tgz#b03240166a68aa16c5a168c26e190d9da547eefb" - integrity sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw== - 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" - 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.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.82.5.tgz#3e47410a9ce8f6c913480970226a17371c2d2974" @@ -12032,32 +11336,6 @@ metro-file-map@0.82.5: nullthrows "^1.1.1" walker "^1.0.7" -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" - integrity sha512-idIiPkb8CYshc0WZmbzwmr4B1QwsQUbpDwBzHwxE1ni27FWKWhV9CD5p+qlXZHgfwJuMRfPN+tIaLSR8+vttYg== - dependencies: - connect "^3.6.5" - debug "^2.2.0" - node-fetch "^2.2.0" - ws "^7.5.1" - yargs "^17.6.2" - -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" - integrity sha512-ju2nUXTKvh96vHPoGZH/INhSvRRKM14CbGAJXQ98+g8K5z1v3luYJ/7+dFQB202eVzJdTB2QMtBjI1jUUpooCg== - dependencies: - terser "^5.15.0" - -metro-minify-terser@0.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz#9951030e3bc52d7f3ac8664ce5862401c673e3c6" - integrity sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ== - dependencies: - flow-enums-runtime "^0.0.6" - terser "^5.15.0" - metro-minify-terser@0.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.82.5.tgz#5dc77d53b6ef4079bd9c752ae046d557df4ae584" @@ -12066,126 +11344,6 @@ metro-minify-terser@0.82.5: flow-enums-runtime "^0.0.6" terser "^5.15.0" -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.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" - integrity sha512-eCBtW/UkJPDr6HlMgFEGF+964DZsUEF9RGeJdZLKWE7d/0nY3ABZ9ZAGxzu9efQ35EWRox5bDMXUGaOwUe5ikQ== - 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-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" - integrity sha512-xXzHcfngSIkbQj+U7i/anFkNL0q2QVarYSzr34CFkzKLa79Rp16B8ki7z9eVVqo9W3B4TBcTXl3BipgRoOoZSQ== - dependencies: - "@babel/core" "^7.20.0" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.12.0" - metro-react-native-babel-preset "0.76.9" - nullthrows "^1.1.1" - -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== - -metro-resolver@0.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.12.tgz#e3815914c21315b04db200032c3243a4cc22dfb6" - integrity sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw== - dependencies: - flow-enums-runtime "^0.0.6" - metro-resolver@0.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.82.5.tgz#cb810038d488a47334df444312b23f0090eca5c3" @@ -12193,22 +11351,6 @@ metro-resolver@0.82.5: dependencies: flow-enums-runtime "^0.0.6" -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" - integrity sha512-/5vezDpGUtA0Fv6cJg0+i6wB+QeBbvLeaw9cTSG7L76liP0b91f8vOcYzGaUbHI8pznJCCTerxRzpQ8e3/NcDw== - dependencies: - "@babel/runtime" "^7.0.0" - react-refresh "^0.4.0" - -metro-runtime@0.80.12, metro-runtime@^0.80.3: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.12.tgz#a68af3a2a013f5372d3b8cee234fdd467455550b" - integrity sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw== - dependencies: - "@babel/runtime" "^7.25.0" - flow-enums-runtime "^0.0.6" - metro-runtime@0.82.5, metro-runtime@^0.82.0: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.82.5.tgz#97840760e4cee49f08948dd918dbeba08dd0d0ec" @@ -12217,6 +11359,14 @@ metro-runtime@0.82.5, metro-runtime@^0.82.0: "@babel/runtime" "^7.25.0" flow-enums-runtime "^0.0.6" +metro-runtime@^0.76.9: + version "0.76.9" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.9.tgz#f8ebe150f8896ce1aef5d7f3a52844f8b4f721fb" + integrity sha512-/5vezDpGUtA0Fv6cJg0+i6wB+QeBbvLeaw9cTSG7L76liP0b91f8vOcYzGaUbHI8pznJCCTerxRzpQ8e3/NcDw== + dependencies: + "@babel/runtime" "^7.0.0" + react-refresh "^0.4.0" + 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" @@ -12231,21 +11381,6 @@ metro-source-map@0.76.9, metro-source-map@^0.76.9: source-map "^0.5.6" vlq "^1.0.0" -metro-source-map@0.80.12, metro-source-map@^0.80.3: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.12.tgz#36a2768c880f8c459d6d758e2d0975e36479f49c" - integrity sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw== - 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.12" - nullthrows "^1.1.1" - ob1 "0.80.12" - source-map "^0.5.6" - vlq "^1.0.0" - metro-source-map@0.82.5, metro-source-map@^0.82.0: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.82.5.tgz#85e2e9672bff6d6cefb3b65b96fcc69f929c69c6" @@ -12274,19 +11409,6 @@ metro-symbolicate@0.76.9: through2 "^2.0.1" vlq "^1.0.0" -metro-symbolicate@0.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz#3a6aa783c6e494e2879342d88d5379fab69d1ed2" - integrity sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw== - dependencies: - flow-enums-runtime "^0.0.6" - invariant "^2.2.4" - metro-source-map "0.80.12" - nullthrows "^1.1.1" - source-map "^0.5.6" - through2 "^2.0.1" - vlq "^1.0.0" - metro-symbolicate@0.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.82.5.tgz#b53255cad11f1e6795f319ca4b41857bfe295d65" @@ -12299,29 +11421,6 @@ metro-symbolicate@0.82.5: source-map "^0.5.6" vlq "^1.0.0" -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" - integrity sha512-YEQeNlOCt92I7S9A3xbrfaDfwfgcxz9PpD/1eeop3c4cO3z3Q3otYuxw0WJ/rUIW8pZfOm5XCehd+1NRbWlAaw== - 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.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz#4a3853630ad0f36cc2bffd53bae659ee171a389c" - integrity sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA== - 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-plugins@0.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.82.5.tgz#678da4d0f9085b2a3fc0b4350062f19cc625c5fc" @@ -12334,44 +11433,6 @@ metro-transform-plugins@0.82.5: flow-enums-runtime "^0.0.6" 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" - integrity sha512-F69A0q0qFdJmP2Clqr6TpTSn4WTV9p5A28h5t9o+mB22ryXBZfUQ6BFBBW/6Wp2k/UtPH+oOsBfV9guiqm3d2Q== - 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.9" - metro-babel-transformer "0.76.9" - metro-cache "0.76.9" - metro-cache-key "0.76.9" - metro-minify-terser "0.76.9" - metro-source-map "0.76.9" - metro-transform-plugins "0.76.9" - nullthrows "^1.1.1" - -metro-transform-worker@0.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz#80be8a185b7deb93402b682f58a1dd6724317ad1" - integrity sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/types" "^7.20.0" - flow-enums-runtime "^0.0.6" - metro "0.80.12" - metro-babel-transformer "0.80.12" - metro-cache "0.80.12" - metro-cache-key "0.80.12" - metro-minify-terser "0.80.12" - metro-source-map "0.80.12" - metro-transform-plugins "0.80.12" - nullthrows "^1.1.1" - metro-transform-worker@0.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.82.5.tgz#aabdccf17aaa584ec0fd97b5283e806958fb3418" @@ -12391,107 +11452,6 @@ metro-transform-worker@0.82.5: metro-transform-plugins "0.82.5" nullthrows "^1.1.1" -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== - 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.9" - metro-cache "0.76.9" - metro-cache-key "0.76.9" - metro-config "0.76.9" - metro-core "0.76.9" - metro-file-map "0.76.9" - metro-inspector-proxy "0.76.9" - metro-minify-uglify "0.76.9" - metro-react-native-babel-preset "0.76.9" - metro-resolver "0.76.9" - metro-runtime "0.76.9" - metro-source-map "0.76.9" - metro-symbolicate "0.76.9" - metro-transform-plugins "0.76.9" - metro-transform-worker "0.76.9" - 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.80.12, metro@^0.80.3: - version "0.80.12" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.12.tgz#29a61fb83581a71e50c4d8d5d8458270edfe34cc" - integrity sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA== - 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" - 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" - flow-enums-runtime "^0.0.6" - graceful-fs "^4.2.4" - hermes-parser "0.23.1" - 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.12" - metro-cache "0.80.12" - metro-cache-key "0.80.12" - metro-config "0.80.12" - metro-core "0.80.12" - metro-file-map "0.80.12" - metro-resolver "0.80.12" - metro-runtime "0.80.12" - metro-source-map "0.80.12" - metro-symbolicate "0.80.12" - metro-transform-plugins "0.80.12" - metro-transform-worker "0.80.12" - mime-types "^2.1.27" - nullthrows "^1.1.1" - serialize-error "^2.1.0" - source-map "^0.5.6" - strip-ansi "^6.0.0" - throat "^5.0.0" - ws "^7.5.10" - yargs "^17.6.2" - metro@0.82.5, metro@^0.82.0: version "0.82.5" resolved "https://registry.yarnpkg.com/metro/-/metro-0.82.5.tgz#a27fbc08dd283a14ae58496288c10adaae65f461" @@ -12893,11 +11853,6 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" -node-abort-controller@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" - integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== - node-addon-api@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" @@ -12922,18 +11877,13 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.7.0: +node-fetch@^2.6.0, node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - node-gyp-build@^4.3.0: version "4.8.4" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" @@ -13205,13 +12155,6 @@ ob1@0.76.9: resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.9.tgz#a493e4b83a0fb39200de639804b5d06eed5599dc" integrity sha512-g0I/OLnSxf6OrN3QjSew3bTDJCdbZoWxnh8adh1z36alwCuGF1dgDeRA25bTYSakrG5WULSaWJPOdgnf1O/oQw== -ob1@0.80.12: - version "0.80.12" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.12.tgz#0451944ba6e5be225cc9751d8cd0d7309d2d1537" - integrity sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw== - dependencies: - flow-enums-runtime "^0.0.6" - ob1@0.82.5: version "0.82.5" resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.82.5.tgz#a2860e39385f4602bc2666c46f331b7531b94a8b" @@ -13905,7 +12848,7 @@ promise@^8.3.0: dependencies: asap "~2.0.6" -prompts@^2.0.1, prompts@^2.4.0, prompts@^2.4.2: +prompts@^2.0.1, prompts@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== @@ -14043,14 +12986,6 @@ react-devtools-core@^4.27.2: shell-quote "^1.6.1" ws "^7" -react-devtools-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-5.3.2.tgz#d5df92f8ef2a587986d094ef2c47d84cf4ae46ec" - integrity sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg== - dependencies: - shell-quote "^1.6.1" - ws "^7" - react-devtools-core@^6.1.1: version "6.1.5" resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-6.1.5.tgz#c5eca79209dab853a03b2158c034c5166975feee" @@ -14103,10 +13038,10 @@ react-native-sqlite-storage@5.0.0: resolved "https://registry.yarnpkg.com/react-native-sqlite-storage/-/react-native-sqlite-storage-5.0.0.tgz#fb015c928b59d3000360fb0774a99545e7a695d6" integrity sha512-c1Joq3/tO1nmIcP8SkRZNolPSbfvY8uZg5lXse0TmjIPC0qHVbk96IMvWGyly1TmYCIpxpuDRc0/xCffDbYIvg== -react-native-url-polyfill@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-native-url-polyfill/-/react-native-url-polyfill-2.0.0.tgz#db714520a2985cff1d50ab2e66279b9f91ffd589" - integrity sha512-My330Do7/DvKnEvwQc0WdcBnFPploYKp9CYlefDXzIdEaA+PAhDYllkvGeEroEzvc4Kzzj2O4yVdz8v6fjRvhA== +react-native-url-polyfill@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-native-url-polyfill/-/react-native-url-polyfill-3.0.0.tgz#16b809c35d45f7d4cf968967bc35ab73b7542826" + integrity sha512-aA5CiuUCUb/lbrliVCJ6lZ17/RpNJzvTO/C7gC/YmDQhTUoRD5q5HlJfwLWcxz4VgAhHwXKzhxH+wUN24tAdqg== dependencies: whatwg-url-without-unicode "8.0.0-3" @@ -14153,51 +13088,6 @@ react-native@0.72.17: ws "^6.2.2" yargs "^17.6.2" -react-native@0.75.5: - version "0.75.5" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.75.5.tgz#93a8c74efd6234467442a3b7f482dddd4d731e81" - integrity sha512-9vyUHhkmesL2A++b3dKuhprEq7Nh/1gKgB7MD0ybjCgI4ARob0+j6Myfphzes8fYRcVSAwuiNdp8H+N96+eXSA== - dependencies: - "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "14.1.0" - "@react-native-community/cli-platform-android" "14.1.0" - "@react-native-community/cli-platform-ios" "14.1.0" - "@react-native/assets-registry" "0.75.5" - "@react-native/codegen" "0.75.5" - "@react-native/community-cli-plugin" "0.75.5" - "@react-native/gradle-plugin" "0.75.5" - "@react-native/js-polyfills" "0.75.5" - "@react-native/normalize-colors" "0.75.5" - "@react-native/virtualized-lists" "0.75.5" - abort-controller "^3.0.0" - anser "^1.4.9" - ansi-regex "^5.0.0" - base64-js "^1.5.1" - chalk "^4.0.0" - commander "^9.4.1" - 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" - memoize-one "^5.0.0" - metro-runtime "^0.80.3" - metro-source-map "^0.80.3" - mkdirp "^0.5.1" - nullthrows "^1.1.1" - pretty-format "^26.5.2" - promise "^8.3.0" - react-devtools-core "^5.3.1" - react-refresh "^0.14.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" - yargs "^17.6.2" - react-native@0.79.2: version "0.79.2" resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.79.2.tgz#f1a53099701c1736d09e441eb79f97cfc90dd202" @@ -14271,10 +13161,10 @@ react-shallow-renderer@^16.15.0: object-assign "^4.1.1" react-is "^16.12.0 || ^17.0.0 || ^18.0.0" -react@19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" - integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== +react@19.2.1: + version "19.2.1" + resolved "https://registry.yarnpkg.com/react/-/react-19.2.1.tgz#8600fa205e58e2e807f6ef431c9f6492591a2700" + integrity sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw== react@^16.13.1: version "16.14.0" @@ -14285,13 +13175,6 @@ react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" -react@^18.3.1: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" - integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== - dependencies: - loose-envify "^1.1.0" - read-cmd-shim@4.0.0, read-cmd-shim@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" @@ -14377,11 +13260,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -readline@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c" - integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg== - realistic-structured-clone@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/realistic-structured-clone/-/realistic-structured-clone-3.0.0.tgz#7b518049ce2dad41ac32b421cd297075b00e3e35" @@ -14759,14 +13637,6 @@ schema-utils@^4.3.0, schema-utils@^4.3.2: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -selfsigned@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== - dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - semantic-ui-react@^0.88.2: version "0.88.2" resolved "https://registry.yarnpkg.com/semantic-ui-react/-/semantic-ui-react-0.88.2.tgz#3d4b54f8b799769b412435c8531475fd34aa4149" @@ -15149,7 +14019,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@^0.7.4: +source-map@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== @@ -15207,11 +14077,6 @@ sprintf-js@^1.1.3: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - sqlite3@^5.0.2: version "5.1.7" resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.7.tgz#59ca1053c1ab38647396586edad019b1551041b7" @@ -15512,11 +14377,6 @@ styled-jsx@5.1.1: dependencies: client-only "0.0.1" -sudo-prompt@^9.0.0: - version "9.2.1" - resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd" - integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -16046,14 +14906,6 @@ typeson@^6.0.0, typeson@^6.1.0: resolved "https://registry.yarnpkg.com/typeson/-/typeson-6.1.0.tgz#5b2a53705a5f58ff4d6f82f965917cabd0d7448b" integrity sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA== -uglify-es@^3.1.9: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" - integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ== - dependencies: - commander "~2.13.0" - source-map "~0.6.1" - uglify-js@^3.1.4: version "3.19.3" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" @@ -16732,7 +15584,7 @@ ws@^6.2.2, ws@^6.2.3: dependencies: async-limiter "~1.0.0" -ws@^7, ws@^7.3.1, ws@^7.5.1, ws@^7.5.10: +ws@^7, ws@^7.3.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==