diff --git a/packages/authentication/CHANGELOG.md b/packages/authentication/CHANGELOG.md index 7997ea79..e543cb9d 100644 --- a/packages/authentication/CHANGELOG.md +++ b/packages/authentication/CHANGELOG.md @@ -1,5 +1,16 @@ # @baseapp-frontend/authentication +## 4.1.0 + +### Minor Changes + +- Adapt `useLogin` to use `isMobilePlatform` to omit current profile logic from mobile platforms. +- Replace `process.env.EXPO_PUBLIC_API_BASE_URL` usage with `getExpoConstant`. +- Adapt `getUser` and `getUserAsync` tests to mock `getToken` and `getTokenAsync`. +- Add `expo` and `react-native` mock files. +- Updated dependencies + - @baseapp-frontend/utils@3.0.6 + ## 4.0.7 ### Patch Changes diff --git a/packages/authentication/__mocks__/expo.ts b/packages/authentication/__mocks__/expo.ts new file mode 100644 index 00000000..2efcf15b --- /dev/null +++ b/packages/authentication/__mocks__/expo.ts @@ -0,0 +1,3 @@ +module.exports = require('@baseapp-frontend/test/__mocks__/expo.ts') + +export {} diff --git a/packages/authentication/__mocks__/expoSecureStoreMock.ts b/packages/authentication/__mocks__/expoSecureStoreMock.ts deleted file mode 100644 index 67ba6132..00000000 --- a/packages/authentication/__mocks__/expoSecureStoreMock.ts +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = require('@baseapp-frontend/test/__mocks__/expoSecureStoreMock.ts') - -export {} diff --git a/packages/authentication/__mocks__/react-native.ts b/packages/authentication/__mocks__/react-native.ts new file mode 100644 index 00000000..0247ad20 --- /dev/null +++ b/packages/authentication/__mocks__/react-native.ts @@ -0,0 +1,3 @@ +module.exports = require('@baseapp-frontend/test/__mocks__/react-native.ts') + +export {} diff --git a/packages/authentication/modules/access/preAuthenticateJWT/index.ts b/packages/authentication/modules/access/preAuthenticateJWT/index.ts index 3af5e634..9771479b 100644 --- a/packages/authentication/modules/access/preAuthenticateJWT/index.ts +++ b/packages/authentication/modules/access/preAuthenticateJWT/index.ts @@ -1,3 +1,4 @@ +import { getExpoConstant } from '@baseapp-frontend/utils' import type { JWTResponse } from '@baseapp-frontend/utils/types/jwt' const preAuthenticateJWT = async (token?: string) => { @@ -6,8 +7,9 @@ const preAuthenticateJWT = async (token?: string) => { throw new Error('No token provided.') } + const EXPO_PUBLIC_API_BASE_URL = getExpoConstant('EXPO_PUBLIC_API_BASE_URL') const response = await fetch( - `${process.env.NEXT_PUBLIC_API_BASE_URL ?? process.env.EXPO_PUBLIC_API_BASE_URL}/auth/pre-auth/jwt`, + `${process.env.NEXT_PUBLIC_API_BASE_URL ?? EXPO_PUBLIC_API_BASE_URL}/auth/pre-auth/jwt`, { method: 'POST', body: JSON.stringify({ token }), diff --git a/packages/authentication/modules/access/useLogin/index.ts b/packages/authentication/modules/access/useLogin/index.ts index 49106635..08b4f7fe 100644 --- a/packages/authentication/modules/access/useLogin/index.ts +++ b/packages/authentication/modules/access/useLogin/index.ts @@ -9,6 +9,7 @@ import { setFormApiErrors, setTokenAsync, } from '@baseapp-frontend/utils' +import { isMobilePlatform } from '@baseapp-frontend/utils/functions/os' import { zodResolver } from '@hookform/resolvers/zod' import { useMutation } from '@tanstack/react-query' @@ -53,16 +54,21 @@ const useLogin = ({ if (isLoginChangeExpiredPasswordRedirectResponse(response)) { return } - const user = decodeJWT(response.access) - if (user) { - // TODO: handle the absolute image path on the backend - const baseUrl = process.env.NEXT_PUBLIC_API_BASE_URL?.replace('/v1', '') - const absoluteImagePath = user?.profile?.image ? `${baseUrl}${user.profile.image}` : null - setCurrentProfile({ - ...user.profile, - image: absoluteImagePath, - }) + + // TODO: adapt this flow to work with mobile + if (!isMobilePlatform()) { + const user = decodeJWT(response.access) + if (user) { + // TODO: handle the absolute image path on the backend + const baseUrl = process.env.NEXT_PUBLIC_API_BASE_URL?.replace('/v1', '') + const absoluteImagePath = user?.profile?.image ? `${baseUrl}${user.profile.image}` : null + setCurrentProfile({ + ...user.profile, + image: absoluteImagePath, + }) + } } + await setTokenAsync(accessKeyName, response.access, { secure: process.env.NODE_ENV === 'production', }) @@ -91,8 +97,9 @@ const useLogin = ({ if (isLoginMfaResponse(response)) { setMfaEphemeralToken(response.ephemeralToken) } else { - handleLoginSuccess(response) + await handleLoginSuccess(response) } + // onSuccess should only run after we successfully await the handleLoginSuccess (that sets the auth tokens asynchonously) loginOptions?.onSuccess?.(response, variables, context) }, }) diff --git a/packages/authentication/modules/user/getUser/__tests__/getUser.test.ts b/packages/authentication/modules/user/getUser/__tests__/getUser.test.ts index 6ee7e845..60d3dba7 100644 --- a/packages/authentication/modules/user/getUser/__tests__/getUser.test.ts +++ b/packages/authentication/modules/user/getUser/__tests__/getUser.test.ts @@ -1,24 +1,24 @@ -import type { CookiesGetByNameFn } from '@baseapp-frontend/test' - -import Cookies from 'js-cookie' +import { getToken } from '@baseapp-frontend/utils/functions/token/getToken' import getUser from '../index' import jwt from './fixtures/jwt.json' +jest.mock('@baseapp-frontend/utils/functions/token/getToken', () => ({ + getToken: jest.fn(), +})) + describe('getUser', () => { - it('should return the user from the JWT cookie', async () => { - ;(Cookies.get as CookiesGetByNameFn) = jest.fn(() => jwt.token) + it('should return the user from the JWT token', () => { + ;(getToken as jest.Mock).mockReturnValue(jwt.token) const user = getUser() - expect(user?.email).toBe('user@company.com') expect(user?.firstName).toBe('John') expect(user?.lastName).toBe('Doe') }) - it('should return null if the JWT cookie is not set', async () => { - ;(Cookies.get as CookiesGetByNameFn) = jest.fn(() => undefined) + it('should return null if no token is set', () => { + ;(getToken as jest.Mock).mockReturnValue(undefined) const user = getUser() - expect(user).toBeNull() }) }) diff --git a/packages/authentication/modules/user/getUser/index.ts b/packages/authentication/modules/user/getUser/index.ts index fecbb02c..372b9bba 100644 --- a/packages/authentication/modules/user/getUser/index.ts +++ b/packages/authentication/modules/user/getUser/index.ts @@ -1,5 +1,6 @@ import { ACCESS_KEY_NAME } from '@baseapp-frontend/utils/constants/jwt' -import { decodeJWT, getToken } from '@baseapp-frontend/utils/functions/token' +import { decodeJWT } from '@baseapp-frontend/utils/functions/token/decodeJWT' +import { getToken } from '@baseapp-frontend/utils/functions/token/getToken' import type { JWTContent } from '@baseapp-frontend/utils/types/jwt' import type { User } from '../../../types/user' diff --git a/packages/authentication/modules/user/getUserAsync/__tests__/getUserAsync.test.ts b/packages/authentication/modules/user/getUserAsync/__tests__/getUserAsync.test.ts index 3ba12633..2ef07eaf 100644 --- a/packages/authentication/modules/user/getUserAsync/__tests__/getUserAsync.test.ts +++ b/packages/authentication/modules/user/getUserAsync/__tests__/getUserAsync.test.ts @@ -1,13 +1,16 @@ -import type { CookiesGetByNameFn } from '@baseapp-frontend/test' - -import Cookies from 'js-cookie' +import { getTokenAsync } from '@baseapp-frontend/utils/functions/token/getTokenAsync' import getUserAsync from '../index' import jwt from './fixtures/jwt.json' +jest.mock('@baseapp-frontend/utils/functions/token/getTokenAsync', () => ({ + getTokenAsync: jest.fn(), +})) + describe('getUserAsync', () => { - it('should return the user from the JWT cookie', async () => { - ;(Cookies.get as CookiesGetByNameFn) = jest.fn(() => jwt.token) + it('should return the user from the JWT token', async () => { + ;(getTokenAsync as jest.Mock).mockReturnValue(jwt.token) + const user = await getUserAsync() expect(user?.email).toBe('user@company.com') @@ -15,8 +18,9 @@ describe('getUserAsync', () => { expect(user?.lastName).toBe('Doe') }) - it('should return null if the JWT cookie is not set', async () => { - ;(Cookies.get as CookiesGetByNameFn) = jest.fn(() => undefined) + it('should return null if no token is set', async () => { + ;(getTokenAsync as jest.Mock).mockReturnValue(undefined) + const user = await getUserAsync() expect(user).toBeNull() diff --git a/packages/authentication/modules/user/getUserAsync/index.ts b/packages/authentication/modules/user/getUserAsync/index.ts index 7edc1611..7e1bcc79 100644 --- a/packages/authentication/modules/user/getUserAsync/index.ts +++ b/packages/authentication/modules/user/getUserAsync/index.ts @@ -1,5 +1,6 @@ import { ACCESS_KEY_NAME } from '@baseapp-frontend/utils/constants/jwt' -import { decodeJWT, getTokenAsync } from '@baseapp-frontend/utils/functions/token' +import { decodeJWT } from '@baseapp-frontend/utils/functions/token/decodeJWT' +import { getTokenAsync } from '@baseapp-frontend/utils/functions/token/getTokenAsync' import type { JWTContent } from '@baseapp-frontend/utils/types/jwt' import type { User } from '../../../types/user' diff --git a/packages/authentication/package.json b/packages/authentication/package.json index 4f46e10e..96a75d3c 100644 --- a/packages/authentication/package.json +++ b/packages/authentication/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/authentication", "description": "Authentication modules.", - "version": "4.0.7", + "version": "4.1.0", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 75d7ecb3..3d519b64 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -1,5 +1,16 @@ # @baseapp-frontend/components +## 0.0.44 + +### Patch Changes + +- Add `expo` and `react-native` mock files. +- Updated dependencies + - @baseapp-frontend/authentication@4.0.7 + - @baseapp-frontend/graphql@1.2.0 + - @baseapp-frontend/utils@3.1.0 + - @baseapp-frontend/design-system@0.0.28 + ## 0.0.43 ### Patch Changes diff --git a/packages/components/__mocks__/expo.ts b/packages/components/__mocks__/expo.ts new file mode 100644 index 00000000..2efcf15b --- /dev/null +++ b/packages/components/__mocks__/expo.ts @@ -0,0 +1,3 @@ +module.exports = require('@baseapp-frontend/test/__mocks__/expo.ts') + +export {} diff --git a/packages/components/__mocks__/expoSecureStoreMock.ts b/packages/components/__mocks__/expoSecureStoreMock.ts deleted file mode 100644 index 67ba6132..00000000 --- a/packages/components/__mocks__/expoSecureStoreMock.ts +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = require('@baseapp-frontend/test/__mocks__/expoSecureStoreMock.ts') - -export {} diff --git a/packages/components/__mocks__/react-native.ts b/packages/components/__mocks__/react-native.ts new file mode 100644 index 00000000..0247ad20 --- /dev/null +++ b/packages/components/__mocks__/react-native.ts @@ -0,0 +1,3 @@ +module.exports = require('@baseapp-frontend/test/__mocks__/react-native.ts') + +export {} diff --git a/packages/components/package.json b/packages/components/package.json index 6b448f62..46f47b26 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/components", "description": "BaseApp components modules such as comments, notifications, messages, and more.", - "version": "0.0.43", + "version": "0.0.44", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/design-system/CHANGELOG.md b/packages/design-system/CHANGELOG.md index bb2b4daf..6dce98ba 100644 --- a/packages/design-system/CHANGELOG.md +++ b/packages/design-system/CHANGELOG.md @@ -1,8 +1,15 @@ # @baseapp-frontend/design-system +## 0.0.29 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/utils@3.1.0 + ## 0.0.28 -### Major Changes +### Patch Changes - MDX documentation files added for several components diff --git a/packages/graphql/CHANGELOG.md b/packages/graphql/CHANGELOG.md index e5748467..36a67dbd 100644 --- a/packages/graphql/CHANGELOG.md +++ b/packages/graphql/CHANGELOG.md @@ -1,5 +1,13 @@ # @baseapp-frontend/graphql +## 1.2.0 + +### Minor Changes + +- Replace `process.env.EXPO_PUBLIC_API_BASE_URL` and `EXPO_PUBLIC_WS_RELAY_ENDPOINT` usage with `getExpoConstant`. +- Updated dependencies + - @baseapp-frontend/utils@3.1.0 + ## 1.1.15 ### Patch Changes diff --git a/packages/graphql/config/environment.ts b/packages/graphql/config/environment.ts index 9f1c351e..89f0a094 100644 --- a/packages/graphql/config/environment.ts +++ b/packages/graphql/config/environment.ts @@ -1,3 +1,4 @@ +import { getExpoConstant } from '@baseapp-frontend/utils' import { baseAppFetch } from '@baseapp-frontend/utils/functions/fetch/baseAppFetch' import { getToken } from '@baseapp-frontend/utils/functions/token/getToken' @@ -64,9 +65,10 @@ export async function httpFetch( uploadables?: UploadableMap | null, ): Promise { const fetchOptions = getFetchOptions({ request, variables, uploadables }) + const EXPO_PUBLIC_RELAY_ENDPOINT = getExpoConstant('EXPO_PUBLIC_RELAY_ENDPOINT') + const response = await baseAppFetch('', { - baseUrl: (process.env.NEXT_PUBLIC_RELAY_ENDPOINT || - process.env.EXPO_PUBLIC_RELAY_ENDPOINT) as string, + baseUrl: (process.env.NEXT_PUBLIC_RELAY_ENDPOINT ?? EXPO_PUBLIC_RELAY_ENDPOINT) as string, decamelizeRequestBodyKeys: false, decamelizeRequestParamsKeys: false, camelizeResponseDataKeys: false, @@ -89,9 +91,9 @@ export async function httpFetch( return response } +const EXPO_PUBLIC_WS_RELAY_ENDPOINT = getExpoConstant('EXPO_PUBLIC_WS_RELAY_ENDPOINT') const wsClient = createClient({ - url: (process.env.NEXT_PUBLIC_WS_RELAY_ENDPOINT || - process.env.EXPO_PUBLIC_WS_RELAY_ENDPOINT) as string, + url: (process.env.NEXT_PUBLIC_WS_RELAY_ENDPOINT ?? EXPO_PUBLIC_WS_RELAY_ENDPOINT) as string, connectionParams: () => { const Authorization = getToken() if (!Authorization) return {} diff --git a/packages/graphql/package.json b/packages/graphql/package.json index 20135aca..74c1460e 100644 --- a/packages/graphql/package.json +++ b/packages/graphql/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/graphql", "description": "GraphQL configurations and utilities", - "version": "1.1.15", + "version": "1.2.0", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/graphql/utils/createTestEnvironment/index.ts b/packages/graphql/utils/createTestEnvironment/index.ts index 79c9420c..f5c24cbd 100644 --- a/packages/graphql/utils/createTestEnvironment/index.ts +++ b/packages/graphql/utils/createTestEnvironment/index.ts @@ -38,12 +38,8 @@ const createTestEnvironment = () => { queryName, }: QueueOperationResolverParams) => { try { - console.log('queueOperationResolver', mockResolvers, data, queryName) environment.mock.queueOperationResolver((operationToResolve) => { - console.log('AOPS', operationToResolve) if (mockResolvers) { - console.log('mockResolvers', mockResolvers) - return MockPayloadGenerator.generate(operationToResolve, mockResolvers) } @@ -56,6 +52,7 @@ const createTestEnvironment = () => { } console.warn('The operation was not mocked.') + return null }) } catch (e) { diff --git a/packages/provider/CHANGELOG.md b/packages/provider/CHANGELOG.md index 080ecbd9..83cd8397 100644 --- a/packages/provider/CHANGELOG.md +++ b/packages/provider/CHANGELOG.md @@ -1,5 +1,12 @@ # @baseapp-frontend/provider +## 2.0.7 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/utils@3.1.0 + ## 2.0.6 ### Patch Changes diff --git a/packages/provider/package.json b/packages/provider/package.json index 1217afa2..03715e6f 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/provider", "description": "Providers for React Query and Emotion.", - "version": "2.0.6", + "version": "2.0.7", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/test/CHANGELOG.md b/packages/test/CHANGELOG.md index 1dec8fb0..15fab3d3 100644 --- a/packages/test/CHANGELOG.md +++ b/packages/test/CHANGELOG.md @@ -1,5 +1,11 @@ # @baseapp-frontend/test +## 2.0.6 + +### Patch Changes + +- Add `expo` and `react-native` mock files. + ## 2.0.5 ### Patch Changes diff --git a/packages/test/__mocks__/expo.ts b/packages/test/__mocks__/expo.ts new file mode 100644 index 00000000..952199e7 --- /dev/null +++ b/packages/test/__mocks__/expo.ts @@ -0,0 +1,26 @@ +const ExpoSecureStore = { + getItemAsync: jest.fn(async (key: string) => { + return key === 'ACCESS_KEY_NAME' ? 'mocked_value' : null + }), + setItemAsync: jest.fn(async (key: string, value: string) => { + return true + }), + deleteItemAsync: jest.fn(async (key: string) => { + return true + }), +} + +const Constants = { + expoConfig: { + extra: { + EXPO_PUBLIC_API_BASE_URL: undefined, + EXPO_PUBLIC_RELAY_ENDPOINT: undefined, + EXPO_PUBLIC_WS_RELAY_ENDPOINT: undefined, + }, + }, +} + +module.exports = { + ...ExpoSecureStore, + ...Constants, +} diff --git a/packages/test/__mocks__/expoSecureStoreMock.ts b/packages/test/__mocks__/expoSecureStoreMock.ts deleted file mode 100644 index f765942c..00000000 --- a/packages/test/__mocks__/expoSecureStoreMock.ts +++ /dev/null @@ -1,13 +0,0 @@ -const ExpoSecureStore = { - getItemAsync: jest.fn(async (key) => { - return key === 'ACCESS_KEY_NAME' ? 'mocked_value' : null - }), - setItemAsync: jest.fn(async (key, value) => { - return true - }), - deleteItemAsync: jest.fn(async (key) => { - return true - }), -} - -module.exports = ExpoSecureStore diff --git a/packages/test/__mocks__/react-native.ts b/packages/test/__mocks__/react-native.ts new file mode 100644 index 00000000..aacf17b3 --- /dev/null +++ b/packages/test/__mocks__/react-native.ts @@ -0,0 +1,4 @@ +// ignoring react-native imports in tests, we may change this in the future +module.exports = { + Platform: { OS: 'web' }, +} diff --git a/packages/test/jest.config.ts b/packages/test/jest.config.ts index 91e1c3a6..b45862a3 100644 --- a/packages/test/jest.config.ts +++ b/packages/test/jest.config.ts @@ -19,7 +19,8 @@ module.exports = { '/__mocks__/fileMock.ts', '\\.(css|less)$': '/__mocks__/styleMock.ts', 'next/font/google': '/__mocks__/nextFontMock.ts', - 'expo-secure-store': '/__mocks__/expoSecureStoreMock.ts', + '^expo.*$': '/__mocks__/expo.ts', + 'react-native': '/__mocks__/react-native.ts', }, transformIgnorePatterns: [ '/node_modules/(?!(@testing-library|@baseapp-frontend|expo-secure-store)/)', diff --git a/packages/test/package.json b/packages/test/package.json index 3c700bd8..e11802e7 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/test", "description": "Test utils that extends React Testing Library.", - "version": "2.0.5", + "version": "2.0.6", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 3020c016..60bf3aeb 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -1,5 +1,15 @@ # @baseapp-frontend/utils +## 3.1.0 + +### Minor Changes + +- Update `createAxiosInstance` to achieve feature parity with `baseAppFetch` adding `decamelizeRequestBodyKeys`, `decamelizeRequestParamsKeys`, `camelizeResponseDataKeys`, `stringifyBody`, `setContentType`, `baseUrl` optional params. +- `baseAppFetch` accept `text/plain, */*` by default, like axios do. +- Replace `process.env.EXPO_PUBLIC_API_BASE_URL` usage with `getExpoConstant`. +- Replace `process.env.EXPO_PUBLIC_PLATFORM` usage with `isMobilePlatform`. +- Add `expo` and `react-native` mock files. + ## 3.0.5 ### Patch Changes diff --git a/packages/utils/__mocks__/expo.ts b/packages/utils/__mocks__/expo.ts new file mode 100644 index 00000000..2efcf15b --- /dev/null +++ b/packages/utils/__mocks__/expo.ts @@ -0,0 +1,3 @@ +module.exports = require('@baseapp-frontend/test/__mocks__/expo.ts') + +export {} diff --git a/packages/utils/__mocks__/expoSecureStoreMock.ts b/packages/utils/__mocks__/expoSecureStoreMock.ts deleted file mode 100644 index 67ba6132..00000000 --- a/packages/utils/__mocks__/expoSecureStoreMock.ts +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = require('@baseapp-frontend/test/__mocks__/expoSecureStoreMock.ts') - -export {} diff --git a/packages/utils/__mocks__/react-native.ts b/packages/utils/__mocks__/react-native.ts new file mode 100644 index 00000000..0247ad20 --- /dev/null +++ b/packages/utils/__mocks__/react-native.ts @@ -0,0 +1,3 @@ +module.exports = require('@baseapp-frontend/test/__mocks__/react-native.ts') + +export {} diff --git a/packages/utils/functions/axios/createAxiosInstance/__tests__/createAxiosInstance.test.ts b/packages/utils/functions/axios/createAxiosInstance/__tests__/createAxiosInstance.test.ts index d602dd23..0bd13d8d 100644 --- a/packages/utils/functions/axios/createAxiosInstance/__tests__/createAxiosInstance.test.ts +++ b/packages/utils/functions/axios/createAxiosInstance/__tests__/createAxiosInstance.test.ts @@ -1,6 +1,12 @@ +import humps from 'humps' + import { createAxiosInstance } from '..' -jest.mock('humps') +jest.mock('humps', () => ({ + decamelize: jest.fn().mockImplementation((key) => key.replace(/([A-Z])/g, '_$1').toLowerCase()), + decamelizeKeys: jest.fn().mockImplementation((keys) => keys), + camelizeKeys: jest.fn().mockImplementation((keys) => keys), +})) jest.mock('axios', () => ({ ...jest.requireActual('axios'), create: () => ({ @@ -8,19 +14,26 @@ jest.mock('axios', () => ({ interceptors: { ...jest.requireActual('axios').create().interceptors, request: { eject: jest.fn(), use: jest.fn() }, - response: { use: jest.fn() }, + response: { eject: jest.fn(), use: jest.fn() }, }, }), })) jest.mock('js-cookie', () => ({ ...jest.requireActual('js-cookie'), - get: () => 'someAuthToken', + get: () => 'someLanguage', })) jest.mock('../../../token/decodeJWT', () => ({ - decodeJWT: () => ({ exp: 1234567890 }), + decodeJWT: jest.fn(() => ({ exp: 1234567890 })), })) jest.mock('../../../token/isUserTokenValid', () => ({ - isUserTokenValid: () => true, + isUserTokenValid: jest.fn(() => true), +})) +jest.mock('../../../token/refreshAccessToken', () => ({ + refreshAccessToken: jest.fn().mockResolvedValue('refreshedAuthToken'), +})) +jest.mock('../../../token', () => ({ + ...jest.requireActual('../../../token'), + getTokenAsync: jest.fn().mockResolvedValue('someAuthToken'), })) describe('createAxiosInstance', () => { @@ -44,7 +57,7 @@ describe('createAxiosInstance', () => { expect(axios.defaults.headers.put['Content-Type']).toEqual('multipart/form-data') }) - it('should use Token as tokenType when provided', () => { + it('should use Token as tokenType when provided', async () => { const { axios: { interceptors: { @@ -52,15 +65,20 @@ describe('createAxiosInstance', () => { }, }, } = createAxiosInstance({ tokenType: 'Token' }) + const [[interceptorFn]] = (use as jest.Mock).mock.calls - const request = { headers: { Authorization: undefined }, url: 'someUrl' } - interceptorFn(request) + const request = { + headers: { Authorization: undefined }, + url: 'someUrl', + } + + await interceptorFn(request) expect(request.headers.Authorization).toBe('Token someAuthToken') }) - it('should add Authorization header using jwt authToken by default', () => { + it('should add Authorization header using jwt authToken by default', async () => { const { axios: { interceptors: { @@ -68,15 +86,16 @@ describe('createAxiosInstance', () => { }, }, } = createAxiosInstance() + const [[interceptorFn]] = (use as jest.Mock).mock.calls const request = { headers: { Authorization: undefined }, url: 'someUrl' } - interceptorFn(request) + await interceptorFn(request) expect(request.headers.Authorization).toBe('Bearer someAuthToken') }) - it('should not add Authorization header for services without token', () => { + it('should not add Authorization header for services without token', async () => { const { axios: { interceptors: { @@ -86,16 +105,18 @@ describe('createAxiosInstance', () => { } = createAxiosInstance({ servicesWithoutToken: [/\/someUrl$/, /\/someUrl\/\d+\/withSomethingInTheMiddle$/], }) + const [[interceptorFn]] = (use as jest.Mock).mock.calls + let request = { headers: { Authorization: undefined }, url: '/someUrl' } - interceptorFn(request) + await interceptorFn(request) expect(request.headers.Authorization).toBeUndefined() request = { headers: { Authorization: undefined }, url: '/someUrl/123/withSomethingInTheMiddle', } - interceptorFn(request) + await interceptorFn(request) expect(request.headers.Authorization).toBeUndefined() }) @@ -113,51 +134,139 @@ describe('createAxiosInstance', () => { expect(eject).toBeCalledWith(requestInterceptorId) }) - it('should transform request.data to FormData when file is true and useFormData is true', () => { - const has = jest - .fn() - .mockImplementation( - (key) => key === 'some_file' || key === 'some_object' || key === 'simple_key', - ) - + it('should transform request.data to FormData when file is true and useFormData is true', async () => { // @ts-ignore - global.FormData = class CustomFormData { - entries = jest.fn() + global.FormData = class MockFormData { + _store = {} + append(key: any, value: any) { + // @ts-ignore + this._store[key] = value + } + has(key: any) { + return Object.prototype.hasOwnProperty.call(this._store, key) + } + } - append = jest.fn() + const { + axios: { + interceptors: { + request: { use }, + }, + }, + } = createAxiosInstance({ file: true, useFormData: true }) - has = has - } + const [[interceptorFn]] = (use as jest.Mock).mock.calls - const testFile = new File(['test'], 'test.txt', { type: 'text/plain' }) - const requestData = { - someFile: testFile, - someObject: { nestedKey: 'nestedValue' }, - simpleKey: 'simpleValue', - } - const mockRequest = { - data: requestData, + const request = { + data: { someKey: 'someValue' }, headers: {}, } + await interceptorFn(request) + + expect(request.data instanceof FormData).toBeTruthy() + }) + + it('should stringify and decamelize request body by default', async () => { const { axios: { interceptors: { request: { use }, }, }, - } = createAxiosInstance({ file: true, useFormData: true }) + } = createAxiosInstance() + const [[interceptorFn]] = (use as jest.Mock).mock.calls - const request = mockRequest - interceptorFn(request) + const requestBody = { testKey: 'testValue' } + const request = { data: requestBody, method: 'POST', headers: {} } - expect(request.data instanceof FormData).toBeTruthy() - // @ts-ignore - expect(request.data.has('some_file')).toBeTruthy() - // @ts-ignore - expect(request.data.has('some_object')).toBeTruthy() - // @ts-ignore - expect(request.data.has('simple_key')).toBeTruthy() + await interceptorFn(request) + + expect(humps.decamelizeKeys).toHaveBeenCalledWith(requestBody) + expect(request.data).toEqual(JSON.stringify(requestBody)) + }) + + it('should not stringify and decamelize the body if `stringifyBody` is false', async () => { + const { + axios: { + interceptors: { + request: { use }, + }, + }, + } = createAxiosInstance({ stringifyBody: false }) + + const [[interceptorFn]] = (use as jest.Mock).mock.calls + + const requestBody = { testKey: 'testValue' } + const request = { data: requestBody, method: 'POST', headers: {} } + + await interceptorFn(request) + + expect(humps.decamelizeKeys).toHaveBeenCalledWith(requestBody) + expect(request.data).toEqual(requestBody) }) + + it('should not decamelize the body if `decamelizeRequestBodyKeys` is false', async () => { + const { + axios: { + interceptors: { + request: { use }, + }, + }, + } = createAxiosInstance({ decamelizeRequestBodyKeys: false }) + + const [[interceptorFn]] = (use as jest.Mock).mock.calls + + const requestBody = { testKey: 'testValue' } + const request = { data: requestBody, method: 'POST', headers: {} } + + await interceptorFn(request) + + expect(humps.decamelizeKeys).not.toHaveBeenCalled() + expect(request.data).toEqual(JSON.stringify(requestBody)) + }) + + it('should decamelize request params keys by default', async () => { + const { + axios: { + interceptors: { + request: { use }, + }, + }, + } = createAxiosInstance() + + const [[interceptorFn]] = (use as jest.Mock).mock.calls + + const params = { testParam: 'value' } + const request = { params, headers: {}, method: 'GET' } + + await interceptorFn(request) + + expect(humps.decamelizeKeys).toHaveBeenCalledWith(params) + }) + + it('should not decamelize request params keys if `decamelizeRequestParamsKeys` is false', async () => { + const { + axios: { + interceptors: { + request: { use }, + }, + }, + } = createAxiosInstance({ decamelizeRequestParamsKeys: false }) + + const [[interceptorFn]] = (use as jest.Mock).mock.calls + + const params = { testParam: 'value' } + const request = { params, headers: {}, method: 'GET' } + + await interceptorFn(request) + + expect(humps.decamelizeKeys).not.toHaveBeenCalled() + expect(request.params).toEqual(params) + }) + + // TODO: add tests for response interceptor + // - should decamelize response data by default + // - should not decamelize response data if `decamelizeResponseData` is false }) diff --git a/packages/utils/functions/axios/createAxiosInstance/index.ts b/packages/utils/functions/axios/createAxiosInstance/index.ts index 6c159a59..099fa826 100644 --- a/packages/utils/functions/axios/createAxiosInstance/index.ts +++ b/packages/utils/functions/axios/createAxiosInstance/index.ts @@ -7,8 +7,11 @@ import { LOGOUT_EVENT } from '../../../constants/events' import { SERVICES_WITHOUT_TOKEN } from '../../../constants/fetch' import { ACCESS_KEY_NAME, REFRESH_KEY_NAME } from '../../../constants/jwt' import { eventEmitter } from '../../events' +import { getExpoConstant } from '../../expo' import { buildQueryString } from '../../string' -import { decodeJWT, isUserTokenValid } from '../../token' +import { getTokenAsync } from '../../token' +import { decodeJWT } from '../../token/decodeJWT' +import { isUserTokenValid } from '../../token/isUserTokenValid' import { refreshAccessToken } from '../../token/refreshAccessToken' export const createAxiosInstance = ({ @@ -21,23 +24,32 @@ export const createAxiosInstance = ({ useFormData = true, refreshToken = true, tokenType = 'Bearer', + decamelizeRequestBodyKeys = true, + decamelizeRequestParamsKeys = true, + camelizeResponseDataKeys = true, + stringifyBody = true, + setContentType = true, + baseUrl = process.env.NEXT_PUBLIC_API_BASE_URL, } = {}) => { + const EXPO_PUBLIC_API_BASE_URL = getExpoConstant('EXPO_PUBLIC_API_BASE_URL') + const instance = _axios.create({ - baseURL: process.env.NEXT_PUBLIC_API_BASE_URL, + baseURL: baseUrl ?? EXPO_PUBLIC_API_BASE_URL, paramsSerializer(params: Record) { return buildQueryString(params) }, }) - const contentType = file ? 'multipart/form-data' : 'application/json' - - instance.defaults.headers.post['Content-Type'] = contentType - instance.defaults.headers.patch['Content-Type'] = contentType - instance.defaults.headers.put['Content-Type'] = contentType + if (setContentType) { + const contentType = file ? 'multipart/form-data' : 'application/json' + instance.defaults.headers.post['Content-Type'] = contentType + instance.defaults.headers.patch['Content-Type'] = contentType + instance.defaults.headers.put['Content-Type'] = contentType + } const requestInterceptorId = instance.interceptors.request.use(async (request) => { const isAuthTokenRequired = !servicesWithoutToken.some((regex) => regex.test(request.url || '')) - let authToken = Cookies.get(accessKeyName) + let authToken = await getTokenAsync(accessKeyName, { noSSR: false }) if (authToken && isAuthTokenRequired && refreshToken) { const isTokenValid = isUserTokenValid(decodeJWT(authToken)) @@ -62,26 +74,35 @@ export const createAxiosInstance = ({ request.headers['Accept-Language'] = language } - if (request.data && !file) { - request.data = JSON.stringify(humps.decamelizeKeys(request.data)) - } - if (request.data && file && useFormData) { - const formData = new FormData() - Object.entries(request.data).forEach(([key, value]) => { - const decamelizedKey = humps.decamelize(key) - if (!value) return - if (value instanceof File) { - formData.append(decamelizedKey, value) - } else if (typeof value === 'object') { - formData.append(decamelizedKey, JSON.stringify(value)) - } else { - formData.append(decamelizedKey, value?.toString()) + if (request.data) { + if (!file || !useFormData) { + if (stringifyBody) { + if (decamelizeRequestBodyKeys) { + request.data = JSON.stringify(humps.decamelizeKeys(request.data)) + } else { + request.data = JSON.stringify(request.data) + } + } else if (decamelizeRequestBodyKeys) { + request.data = humps.decamelizeKeys(request.data) } - }) - request.data = formData + } else if (file && useFormData) { + const formData = new FormData() + Object.entries(request.data).forEach(([key, value]) => { + const decamelizedKey = humps.decamelize(key) + if (!value) return + if (value instanceof File) { + formData.append(decamelizedKey, value) + } else if (typeof value === 'object') { + formData.append(decamelizedKey, JSON.stringify(value)) + } else { + formData.append(decamelizedKey, value.toString()) + } + }) + request.data = formData + } } - if (request.params) { + if (request.params && decamelizeRequestParamsKeys) { request.params = humps.decamelizeKeys(request.params) } @@ -90,21 +111,27 @@ export const createAxiosInstance = ({ const responseInterceptorId = instance.interceptors.response.use( (response) => { - if (response.data && response.headers?.['content-type'] === 'application/json') { + const contentTypeHeader = response.headers?.['content-type'] || '' + const isJsonResponse = contentTypeHeader.includes('application/json') + + if (isJsonResponse && response.data && camelizeResponseDataKeys) { response.data = humps.camelizeKeys(response.data) } return returnData && response.data ? response.data : response }, - async (error) => { - if ( - error.response?.data && - error.response?.headers?.['content-type'] === 'application/json' - ) { + (error) => { + const contentTypeHeader = error.response?.headers?.['content-type'] || '' + const isJsonError = contentTypeHeader.includes('application/json') + + if (isJsonError && error.response?.data) { const newError = { response: { data: {} } } - newError.response.data = humps.camelizeKeys(error.response.data) + newError.response.data = camelizeResponseDataKeys + ? humps.camelizeKeys(error.response.data) + : error.response.data return Promise.reject(newError) } + return Promise.reject(error) }, ) @@ -112,7 +139,6 @@ export const createAxiosInstance = ({ return { axios: instance, requestInterceptorId, responseInterceptorId } } -// we export the interceptors ids so it can easily ejected if needed export const { axios, requestInterceptorId, responseInterceptorId } = createAxiosInstance() export const { diff --git a/packages/utils/functions/expo/index.ts b/packages/utils/functions/expo/index.ts new file mode 100644 index 00000000..c20c7689 --- /dev/null +++ b/packages/utils/functions/expo/index.ts @@ -0,0 +1,13 @@ +import Constants from 'expo-constants' + +import type { MobileDefaultEnvironmentVariables } from '../../types/env' + +export const getExpoConstant = < + T extends Record = MobileDefaultEnvironmentVariables, +>( + key: keyof T, +) => { + if (!Constants?.expoConfig?.extra) return undefined + + return (Constants.expoConfig.extra as T)[key] +} diff --git a/packages/utils/functions/fetch/baseAppFetch/__tests__/baseAppFetch.test.ts b/packages/utils/functions/fetch/baseAppFetch/__tests__/baseAppFetch.test.ts index e6a46068..8e70a15f 100644 --- a/packages/utils/functions/fetch/baseAppFetch/__tests__/baseAppFetch.test.ts +++ b/packages/utils/functions/fetch/baseAppFetch/__tests__/baseAppFetch.test.ts @@ -215,7 +215,7 @@ describe('baseAppFetch', () => { expect.any(String), expect.objectContaining({ headers: expect.objectContaining({ - 'Content-Type': 'application/json', + 'Content-Type': 'application/json; charset=utf-8', }), }), ) @@ -225,7 +225,7 @@ describe('baseAppFetch', () => { expect.any(String), expect.objectContaining({ headers: expect.objectContaining({ - 'Content-Type': 'application/json', + 'Content-Type': 'application/json; charset=utf-8', }), }), ) @@ -235,7 +235,7 @@ describe('baseAppFetch', () => { expect.any(String), expect.objectContaining({ headers: expect.objectContaining({ - 'Content-Type': 'application/json', + 'Content-Type': 'application/json; charset=utf-8', }), }), ) @@ -245,7 +245,7 @@ describe('baseAppFetch', () => { expect.any(String), expect.not.objectContaining({ headers: expect.objectContaining({ - 'Content-Type': 'application/json', + 'Content-Type': 'application/json; charset=utf-8', }), }), ) diff --git a/packages/utils/functions/fetch/baseAppFetch/index.ts b/packages/utils/functions/fetch/baseAppFetch/index.ts index fd2d575b..7d6eb92a 100644 --- a/packages/utils/functions/fetch/baseAppFetch/index.ts +++ b/packages/utils/functions/fetch/baseAppFetch/index.ts @@ -5,6 +5,7 @@ import { LOGOUT_EVENT } from '../../../constants/events' import { SERVICES_WITHOUT_TOKEN } from '../../../constants/fetch' import { ACCESS_KEY_NAME, REFRESH_KEY_NAME } from '../../../constants/jwt' import { eventEmitter } from '../../events' +import { getExpoConstant } from '../../expo' import { getLanguage } from '../../language/getLanguage' import { buildQueryString } from '../../string' import { decodeJWT, getToken, isUserTokenValid, refreshAccessToken } from '../../token' @@ -70,7 +71,7 @@ export const baseAppFetch: BaseAppFetch = async ( accessKeyName = ACCESS_KEY_NAME, refreshKeyName = REFRESH_KEY_NAME, languageCookieName = LANGUAGE_COOKIE_NAME, - baseUrl = process.env.NEXT_PUBLIC_API_BASE_URL ?? process.env.EXPO_PUBLIC_API_BASE_URL, + baseUrl = process.env.NEXT_PUBLIC_API_BASE_URL, servicesWithoutToken = SERVICES_WITHOUT_TOKEN, params = {}, decamelizeRequestBodyKeys = true, @@ -84,13 +85,15 @@ export const baseAppFetch: BaseAppFetch = async ( ...options } = {}, ) => { - const url = `${baseUrl}${path}` + const EXPO_PUBLIC_API_BASE_URL = getExpoConstant('EXPO_PUBLIC_API_BASE_URL') + + const url = `${baseUrl ?? EXPO_PUBLIC_API_BASE_URL}${path}` const isAuthTokenRequired = !servicesWithoutToken.some((regex) => regex.test(path || '')) const fetchOptions: RequestOptions = { ...options, headers: { - Accept: 'application/json', + Accept: 'application/json, text/plain, */*', ...options.headers, }, } @@ -135,7 +138,7 @@ export const baseAppFetch: BaseAppFetch = async ( // set content-type header const methodsToSetContentType = ['POST', 'PUT', 'PATCH'] if (setContentType && methodsToSetContentType.includes(fetchOptions.method || '')) { - fetchOptions.headers!['Content-Type'] = 'application/json' + fetchOptions.headers!['Content-Type'] = 'application/json; charset=utf-8' } let fetchUrl = url diff --git a/packages/utils/functions/os/__tests__/os.test.ts b/packages/utils/functions/os/__tests__/os.test.ts new file mode 100644 index 00000000..7bd422b1 --- /dev/null +++ b/packages/utils/functions/os/__tests__/os.test.ts @@ -0,0 +1,41 @@ +describe('isMobilePlatform Tests', () => { + afterEach(() => { + jest.resetModules() + }) + + it('returns true for ios', () => { + jest.doMock('react-native', () => ({ + Platform: { OS: 'ios' }, + })) + + const { isMobilePlatform } = require('..') + expect(isMobilePlatform()).toBe(true) + }) + + it('returns true for android', () => { + jest.doMock('react-native', () => ({ + Platform: { OS: 'android' }, + })) + + const { isMobilePlatform } = require('..') + expect(isMobilePlatform()).toBe(true) + }) + + it('returns false for web', () => { + jest.doMock('react-native', () => ({ + Platform: { OS: 'web' }, + })) + + const { isMobilePlatform } = require('..') + expect(isMobilePlatform()).toBe(false) + }) + + it('returns false if Platform is undefined', () => { + jest.doMock('react-native', () => ({ + Platform: undefined, + })) + + const { isMobilePlatform } = require('..') + expect(isMobilePlatform()).toBe(false) + }) +}) diff --git a/packages/utils/functions/os/index.ts b/packages/utils/functions/os/index.ts new file mode 100644 index 00000000..9b23ee83 --- /dev/null +++ b/packages/utils/functions/os/index.ts @@ -0,0 +1,7 @@ +import { Platform } from 'react-native' + +export const isMobilePlatform = () => { + if (!Platform) return false + + return Platform.OS === 'ios' || Platform.OS === 'android' +} diff --git a/packages/utils/functions/token/getAccessToken/__tests__/getAccessToken.test.ts b/packages/utils/functions/token/getAccessToken/__tests__/getAccessToken.test.ts index 9af91890..1da7ec14 100644 --- a/packages/utils/functions/token/getAccessToken/__tests__/getAccessToken.test.ts +++ b/packages/utils/functions/token/getAccessToken/__tests__/getAccessToken.test.ts @@ -21,6 +21,8 @@ describe('getAccessToken', () => { }) it('should call fetch with the correct URL and headers', async () => { + process.env.NEXT_PUBLIC_API_BASE_URL = 'http://localhost:3000' + const refreshToken = 'test-refresh-token' const expectedUrl = `${process.env.NEXT_PUBLIC_API_BASE_URL}/auth/refresh` mockFetchResponse({ access: 'test-access-token' }) diff --git a/packages/utils/functions/token/getAccessToken/index.ts b/packages/utils/functions/token/getAccessToken/index.ts index 57ed1527..c3ffef16 100644 --- a/packages/utils/functions/token/getAccessToken/index.ts +++ b/packages/utils/functions/token/getAccessToken/index.ts @@ -1,4 +1,5 @@ import { type JWTResponse } from '../../../types/jwt' +import { getExpoConstant } from '../../expo' export const getAccessToken = async (refreshToken: string) => { if (!refreshToken) { @@ -6,8 +7,10 @@ export const getAccessToken = async (refreshToken: string) => { } try { + const EXPO_PUBLIC_API_BASE_URL = getExpoConstant('EXPO_PUBLIC_API_BASE_URL') + const response = await fetch( - `${process.env.NEXT_PUBLIC_API_BASE_URL ?? process.env.EXPO_PUBLIC_API_BASE_URL}/auth/refresh`, + `${process.env.NEXT_PUBLIC_API_BASE_URL ?? EXPO_PUBLIC_API_BASE_URL}/auth/refresh`, { method: 'POST', body: JSON.stringify({ refresh: refreshToken }), diff --git a/packages/utils/functions/token/getToken/__tests__/getToken.client.test.ts b/packages/utils/functions/token/getToken/__tests__/getToken.client.test.ts index c2fd5338..994e3ec1 100644 --- a/packages/utils/functions/token/getToken/__tests__/getToken.client.test.ts +++ b/packages/utils/functions/token/getToken/__tests__/getToken.client.test.ts @@ -3,6 +3,7 @@ import { getItem } from 'expo-secure-store' import { getToken } from '..' import { ACCESS_KEY_NAME } from '../../../../constants/jwt' import { getCookie } from '../../../cookie' +import { isMobilePlatform } from '../../../os' const clientCookieValue = 'client-value' const mobileTokenValue = 'mobile-token-value' @@ -15,6 +16,10 @@ jest.mock('../../../cookie', () => ({ getCookie: jest.fn(), })) +jest.mock('../../../os', () => ({ + isMobilePlatform: jest.fn(), +})) + describe('getToken', () => { const accessKeyName = ACCESS_KEY_NAME @@ -23,7 +28,7 @@ describe('getToken', () => { }) it('should retrieve the token from SecureStore on mobile platform', () => { - process.env.EXPO_PUBLIC_PLATFORM = 'mobile' + ;(isMobilePlatform as jest.Mock).mockReturnValue(true) ;(getItem as jest.Mock).mockReturnValue(mobileTokenValue) const result = getToken(accessKeyName) @@ -34,7 +39,7 @@ describe('getToken', () => { }) it('should retrieve the token using getCookie on non-mobile platform', () => { - process.env.EXPO_PUBLIC_PLATFORM = undefined + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) ;(getCookie as jest.Mock).mockReturnValue(clientCookieValue) const result = getToken(accessKeyName) @@ -45,7 +50,7 @@ describe('getToken', () => { }) it('should retrieve a client-side cookie using getCookie with noSSR option set to true', () => { - process.env.EXPO_PUBLIC_PLATFORM = undefined + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) ;(getCookie as jest.Mock).mockReturnValue(clientCookieValue) const result = getToken(accessKeyName, { noSSR: true }) diff --git a/packages/utils/functions/token/getToken/__tests__/getToken.server.test.ts b/packages/utils/functions/token/getToken/__tests__/getToken.server.test.ts index c50c2c18..aa86cefc 100644 --- a/packages/utils/functions/token/getToken/__tests__/getToken.server.test.ts +++ b/packages/utils/functions/token/getToken/__tests__/getToken.server.test.ts @@ -6,6 +6,7 @@ import { getItem } from 'expo-secure-store' import { getToken } from '..' import { ACCESS_KEY_NAME } from '../../../../constants/jwt' import { getCookie } from '../../../cookie' +import { isMobilePlatform } from '../../../os' const serverCookieValue = 'server-value' @@ -17,12 +18,16 @@ jest.mock('../../../cookie', () => ({ getCookie: jest.fn(), })) +jest.mock('../../../os', () => ({ + isMobilePlatform: jest.fn(), +})) + describe('getToken function on the server', () => { const accessKeyName = ACCESS_KEY_NAME beforeEach(() => { jest.clearAllMocks() - process.env.EXPO_PUBLIC_PLATFORM = undefined // Ensure the platform is non-mobile to simulate server environment + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) }) it('retrieves a server-side cookie using getCookie', () => { diff --git a/packages/utils/functions/token/getToken/index.ts b/packages/utils/functions/token/getToken/index.ts index fe0287db..ac484d8a 100644 --- a/packages/utils/functions/token/getToken/index.ts +++ b/packages/utils/functions/token/getToken/index.ts @@ -3,12 +3,13 @@ import { getItem } from 'expo-secure-store' import { ACCESS_KEY_NAME } from '../../../constants/jwt' import type { ServerSideRenderingOption } from '../../../types/server' import { getCookie } from '../../cookie' +import { isMobilePlatform } from '../../os' export const getToken = ( key = ACCESS_KEY_NAME, { noSSR = false }: ServerSideRenderingOption = {}, ) => { - if (process.env.EXPO_PUBLIC_PLATFORM === 'mobile') return getItem(key) + if (isMobilePlatform()) return getItem(key) return getCookie(key, { noSSR }) } diff --git a/packages/utils/functions/token/getTokenAsync/__tests__/getTokenAsync.client.test.ts b/packages/utils/functions/token/getTokenAsync/__tests__/getTokenAsync.client.test.ts index e5fd9471..5727aa46 100644 --- a/packages/utils/functions/token/getTokenAsync/__tests__/getTokenAsync.client.test.ts +++ b/packages/utils/functions/token/getTokenAsync/__tests__/getTokenAsync.client.test.ts @@ -3,6 +3,7 @@ import { getItemAsync } from 'expo-secure-store' import { getTokenAsync } from '..' import { ACCESS_KEY_NAME } from '../../../../constants/jwt' import { getCookieAsync } from '../../../cookie' +import { isMobilePlatform } from '../../../os' const clientCookieValue = 'client-value' const mobileTokenValue = 'mobile-token-value' @@ -15,6 +16,10 @@ jest.mock('../../../cookie', () => ({ getCookieAsync: jest.fn(), })) +jest.mock('../../../os', () => ({ + isMobilePlatform: jest.fn(), +})) + describe('getTokenAsync', () => { const accessKeyName = ACCESS_KEY_NAME @@ -23,7 +28,7 @@ describe('getTokenAsync', () => { }) it('should retrieve the token from SecureStore on mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = 'mobile' + ;(isMobilePlatform as jest.Mock).mockReturnValue(true) ;(getItemAsync as jest.Mock).mockResolvedValue(mobileTokenValue) const result = await getTokenAsync(accessKeyName) @@ -34,7 +39,7 @@ describe('getTokenAsync', () => { }) it('should retrieve the token using getCookieAsync on non-mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = undefined + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) ;(getCookieAsync as jest.Mock).mockResolvedValue(clientCookieValue) const result = await getTokenAsync(accessKeyName) @@ -45,7 +50,7 @@ describe('getTokenAsync', () => { }) it('should retrieve a client-side cookie using getCookieAsync with noSSR option set to true', async () => { - process.env.EXPO_PUBLIC_PLATFORM = undefined + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) ;(getCookieAsync as jest.Mock).mockResolvedValue(clientCookieValue) const result = await getTokenAsync(accessKeyName, { noSSR: true }) diff --git a/packages/utils/functions/token/getTokenAsync/__tests__/getTokenAsync.server.test.ts b/packages/utils/functions/token/getTokenAsync/__tests__/getTokenAsync.server.test.ts index 9446d433..e9710d8a 100644 --- a/packages/utils/functions/token/getTokenAsync/__tests__/getTokenAsync.server.test.ts +++ b/packages/utils/functions/token/getTokenAsync/__tests__/getTokenAsync.server.test.ts @@ -6,6 +6,7 @@ import { getItemAsync } from 'expo-secure-store' import { getTokenAsync } from '..' import { ACCESS_KEY_NAME } from '../../../../constants/jwt' import { getCookieAsync } from '../../../cookie' +import { isMobilePlatform } from '../../../os' const serverCookieValue = 'server-value' @@ -17,12 +18,16 @@ jest.mock('../../../cookie', () => ({ getCookieAsync: jest.fn(), })) +jest.mock('../../../os', () => ({ + isMobilePlatform: jest.fn(), +})) + describe('getTokenAsync function on the server', () => { const accessKeyName = ACCESS_KEY_NAME beforeEach(() => { jest.clearAllMocks() - process.env.EXPO_PUBLIC_PLATFORM = undefined // Ensure we're not in a mobile environment + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) // Simulate server environment }) it('retrieves a server-side cookie using getCookieAsync', async () => { diff --git a/packages/utils/functions/token/getTokenAsync/index.ts b/packages/utils/functions/token/getTokenAsync/index.ts index a724c3b3..de5e07f1 100644 --- a/packages/utils/functions/token/getTokenAsync/index.ts +++ b/packages/utils/functions/token/getTokenAsync/index.ts @@ -3,12 +3,13 @@ import { getItemAsync } from 'expo-secure-store' import { ACCESS_KEY_NAME } from '../../../constants/jwt' import type { ServerSideRenderingOption } from '../../../types/server' import { getCookieAsync } from '../../cookie' +import { isMobilePlatform } from '../../os' export const getTokenAsync = async ( key = ACCESS_KEY_NAME, { noSSR = false }: ServerSideRenderingOption = {}, ) => { - if (process.env.EXPO_PUBLIC_PLATFORM === 'mobile') { + if (isMobilePlatform()) { const token = await getItemAsync(key) return token } diff --git a/packages/utils/functions/token/refreshAccessToken/__tests__/refreshAccessToken.test.ts b/packages/utils/functions/token/refreshAccessToken/__tests__/refreshAccessToken.test.ts index 91dd7c44..58559712 100644 --- a/packages/utils/functions/token/refreshAccessToken/__tests__/refreshAccessToken.test.ts +++ b/packages/utils/functions/token/refreshAccessToken/__tests__/refreshAccessToken.test.ts @@ -1,65 +1,77 @@ -import Cookies from 'js-cookie' - import { refreshAccessToken } from '..' import { ACCESS_KEY_NAME, REFRESH_KEY_NAME } from '../../../../constants/jwt' -import { getAccessToken } from '../../getAccessToken' -import { getToken } from '../../getToken' -import { setTokenAsync } from '../../setTokenAsync' -jest.mock('../../getAccessToken') -jest.mock('../../getToken') +jest.mock('../../getAccessToken', () => ({ + getAccessToken: jest.fn(), +})) + +jest.mock('../../getToken', () => ({ + getToken: jest.fn(), +})) + +jest.mock('../../setTokenAsync', () => ({ + setTokenAsync: jest.fn(), +})) + +jest.mock('../../removeTokenAsync', () => ({ + removeTokenAsync: jest.fn(), +})) + jest.mock('js-cookie', () => ({ set: jest.fn(), remove: jest.fn(), })) -jest.mock('../../setTokenAsync') - describe('refreshAccessToken', () => { + const mockGetAccessToken = require('../../getAccessToken').getAccessToken + const mockGetToken = require('../../getToken').getToken + const mockSetTokenAsync = require('../../setTokenAsync').setTokenAsync + const mockRemoveTokenAsync = require('../../removeTokenAsync').removeTokenAsync + beforeEach(() => { jest.clearAllMocks() }) it('should refresh the access token and set it in cookies', async () => { const refreshToken = 'valid-refresh-token' - const getTokenMock = getToken as jest.Mock - getTokenMock.mockReturnValue(refreshToken) - const newAccessToken = 'new-access-token' - const getAccessTokenMock = getAccessToken as jest.Mock - getAccessTokenMock.mockResolvedValue(newAccessToken) + + mockGetToken.mockReturnValue(refreshToken) + mockGetAccessToken.mockResolvedValue(newAccessToken) await refreshAccessToken() - expect(getToken).toHaveBeenCalledWith(REFRESH_KEY_NAME) - expect(getAccessToken).toHaveBeenCalledWith(refreshToken) - expect(setTokenAsync).toHaveBeenCalledWith(ACCESS_KEY_NAME, newAccessToken, { + expect(mockGetToken).toHaveBeenCalledWith(REFRESH_KEY_NAME) + expect(mockGetAccessToken).toHaveBeenCalledWith(refreshToken) + expect(mockSetTokenAsync).toHaveBeenCalledWith(ACCESS_KEY_NAME, newAccessToken, { secure: false, }) + expect(mockRemoveTokenAsync).not.toHaveBeenCalled() }) it('should remove tokens if refreshing the access token fails', async () => { const refreshToken = 'valid-refresh-token' - const getTokenMock = getToken as jest.Mock - getTokenMock.mockReturnValue(refreshToken) - const getAccessTokenMock = getAccessToken as jest.Mock - getAccessTokenMock.mockRejectedValue(new Error('Failed to refresh token')) + mockGetToken.mockReturnValue(refreshToken) + mockGetAccessToken.mockRejectedValue(new Error('Failed to refresh token')) await expect(refreshAccessToken()).rejects.toThrow('Failed to refresh token') - expect(getToken).toHaveBeenCalledWith(REFRESH_KEY_NAME) - expect(getAccessToken).toHaveBeenCalledWith(refreshToken) - expect(Cookies.remove).toHaveBeenCalledWith(ACCESS_KEY_NAME) - expect(Cookies.remove).toHaveBeenCalledWith(REFRESH_KEY_NAME) + + expect(mockGetToken).toHaveBeenCalledWith(REFRESH_KEY_NAME) + expect(mockGetAccessToken).toHaveBeenCalledWith(refreshToken) + expect(mockRemoveTokenAsync).toHaveBeenCalledWith(ACCESS_KEY_NAME) + expect(mockRemoveTokenAsync).toHaveBeenCalledWith(REFRESH_KEY_NAME) + expect(mockSetTokenAsync).not.toHaveBeenCalled() }) it('should remove tokens if no refresh token is available', async () => { - const getTokenMock = getToken as jest.Mock - getTokenMock.mockReturnValue('') + mockGetToken.mockReturnValue('') await expect(refreshAccessToken()).rejects.toThrow() - expect(getToken).toHaveBeenCalledWith(REFRESH_KEY_NAME) - expect(Cookies.remove).toHaveBeenCalledWith(ACCESS_KEY_NAME) - expect(Cookies.remove).toHaveBeenCalledWith(REFRESH_KEY_NAME) + + expect(mockGetToken).toHaveBeenCalledWith(REFRESH_KEY_NAME) + expect(mockRemoveTokenAsync).toHaveBeenCalledWith(ACCESS_KEY_NAME) + expect(mockRemoveTokenAsync).toHaveBeenCalledWith(REFRESH_KEY_NAME) + expect(mockSetTokenAsync).not.toHaveBeenCalled() }) }) diff --git a/packages/utils/functions/token/removeTokenAsync/__tests__/removeTokenAsync.test.ts b/packages/utils/functions/token/removeTokenAsync/__tests__/removeTokenAsync.test.ts index 3024a71d..7ea6a75f 100644 --- a/packages/utils/functions/token/removeTokenAsync/__tests__/removeTokenAsync.test.ts +++ b/packages/utils/functions/token/removeTokenAsync/__tests__/removeTokenAsync.test.ts @@ -2,6 +2,7 @@ import { deleteItemAsync } from 'expo-secure-store' import { removeTokenAsync } from '..' import { removeCookie } from '../../../cookie' +import { isMobilePlatform } from '../../../os' jest.mock('expo-secure-store', () => ({ deleteItemAsync: jest.fn(), @@ -11,6 +12,10 @@ jest.mock('../../../cookie', () => ({ removeCookie: jest.fn(), })) +jest.mock('../../../os', () => ({ + isMobilePlatform: jest.fn(), +})) + describe('removeTokenAsync', () => { const mockKey = 'test-key' @@ -19,7 +24,7 @@ describe('removeTokenAsync', () => { }) it('should call deleteItemAsync on mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = 'mobile' + ;(isMobilePlatform as jest.Mock).mockReturnValue(true) await removeTokenAsync(mockKey) @@ -29,7 +34,7 @@ describe('removeTokenAsync', () => { }) it('should call removeCookie on non-mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = undefined + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) await removeTokenAsync(mockKey) @@ -39,7 +44,7 @@ describe('removeTokenAsync', () => { }) it('should not throw error when deleteItemAsync fails on mobile', async () => { - process.env.EXPO_PUBLIC_PLATFORM = 'mobile' + ;(isMobilePlatform as jest.Mock).mockReturnValue(true) ;(deleteItemAsync as jest.Mock).mockImplementationOnce(async () => { throw new Error('SecureStore Error') }) @@ -51,7 +56,7 @@ describe('removeTokenAsync', () => { }) it('should not throw error when removeCookie fails on non-mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = undefined + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) ;(removeCookie as jest.Mock).mockImplementationOnce(() => { throw new Error('Cookie Error') }) diff --git a/packages/utils/functions/token/removeTokenAsync/index.ts b/packages/utils/functions/token/removeTokenAsync/index.ts index 45d62762..55ef8f8d 100644 --- a/packages/utils/functions/token/removeTokenAsync/index.ts +++ b/packages/utils/functions/token/removeTokenAsync/index.ts @@ -1,10 +1,11 @@ import { deleteItemAsync } from 'expo-secure-store' import { removeCookie } from '../../cookie' +import { isMobilePlatform } from '../../os' export const removeTokenAsync = async (key: string) => { try { - if (process.env.EXPO_PUBLIC_PLATFORM === 'mobile') { + if (isMobilePlatform()) { await deleteItemAsync(key) } else { removeCookie(key) diff --git a/packages/utils/functions/token/setTokenAsync/__tests__/setTokenAsync.test.ts b/packages/utils/functions/token/setTokenAsync/__tests__/setTokenAsync.test.ts index 84b0c303..e7743249 100644 --- a/packages/utils/functions/token/setTokenAsync/__tests__/setTokenAsync.test.ts +++ b/packages/utils/functions/token/setTokenAsync/__tests__/setTokenAsync.test.ts @@ -2,6 +2,7 @@ import { setItemAsync } from 'expo-secure-store' import { setTokenAsync } from '..' import { setCookie } from '../../../cookie' +import { isMobilePlatform } from '../../../os' jest.mock('expo-secure-store', () => ({ setItemAsync: jest.fn(), @@ -11,6 +12,10 @@ jest.mock('../../../cookie', () => ({ setCookie: jest.fn(), })) +jest.mock('../../../os', () => ({ + isMobilePlatform: jest.fn(), +})) + describe('setTokenAsync', () => { const mockKey = 'test-key' const mockValue = 'test-value' @@ -20,7 +25,7 @@ describe('setTokenAsync', () => { }) it('should call setItemAsync on mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = 'mobile' + ;(isMobilePlatform as jest.Mock).mockReturnValue(true) await setTokenAsync(mockKey, mockValue) @@ -31,7 +36,7 @@ describe('setTokenAsync', () => { }) it('should call setCookie on non-mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = undefined + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) await setTokenAsync(mockKey, mockValue) @@ -42,7 +47,7 @@ describe('setTokenAsync', () => { }) it('should not throw error when setItemAsync fails on mobile', async () => { - process.env.EXPO_PUBLIC_PLATFORM = 'mobile' + ;(isMobilePlatform as jest.Mock).mockReturnValue(true) ;(setItemAsync as jest.Mock).mockImplementationOnce(async () => { throw new Error('SecureStore Error') }) @@ -54,7 +59,7 @@ describe('setTokenAsync', () => { }) it('should not throw error when setCookie fails on non-mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = undefined + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) ;(setCookie as jest.Mock).mockImplementationOnce(() => { throw new Error('Cookie Error') }) @@ -66,7 +71,7 @@ describe('setTokenAsync', () => { }) it('should call setCookie with the configuration object on non-mobile platform', async () => { - process.env.EXPO_PUBLIC_PLATFORM = 'web' + ;(isMobilePlatform as jest.Mock).mockReturnValue(false) const mockConfig = { secure: true } await setTokenAsync(mockKey, mockValue, mockConfig) diff --git a/packages/utils/functions/token/setTokenAsync/index.ts b/packages/utils/functions/token/setTokenAsync/index.ts index b63186a6..9ccd0329 100644 --- a/packages/utils/functions/token/setTokenAsync/index.ts +++ b/packages/utils/functions/token/setTokenAsync/index.ts @@ -2,10 +2,11 @@ import { setItemAsync } from 'expo-secure-store' import { CookieAttributes } from 'js-cookie' import { setCookie } from '../../cookie' +import { isMobilePlatform } from '../../os' export const setTokenAsync = async (key: string, value: string, config?: CookieAttributes) => { try { - if (process.env.EXPO_PUBLIC_PLATFORM === 'mobile') { + if (isMobilePlatform()) { await setItemAsync(key, value) } else { setCookie(key, value, config) diff --git a/packages/utils/index.ts b/packages/utils/index.ts index b60cfc47..1f136b17 100644 --- a/packages/utils/index.ts +++ b/packages/utils/index.ts @@ -13,6 +13,7 @@ export * from './functions/axios' export * from './functions/cookie' export * from './functions/date' export * from './functions/events' +export * from './functions/expo' export * from './functions/fetch' export * from './functions/file' export * from './functions/form' @@ -29,6 +30,7 @@ export { default as useBoolean } from './hooks/useBoolean' export type * from './types/date' export type * from './types/django' +export type * from './types/env' export type * from './types/form' export type * from './types/jwt' export type * from './types/server' diff --git a/packages/utils/package.json b/packages/utils/package.json index fa337198..0828ef39 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/utils", "description": "Util functions, constants and types.", - "version": "3.0.5", + "version": "3.1.0", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, @@ -16,7 +16,8 @@ "dependencies": { "axios": "catalog:", "events": "^3.3.0", - "expo-secure-store": "^13.0.2", + "expo-constants": "catalog:react-native-core", + "expo-secure-store": "catalog:react-native-core", "humps": "^2.0.1", "js-cookie": "catalog:", "jwt-decode": "^4.0.0", @@ -25,6 +26,7 @@ "next": "catalog:", "qs": "^6.12.1", "react-hook-form": "catalog:", + "react-native": "catalog:react-native-core", "server-only": "^0.0.1", "zustand": "catalog:" }, diff --git a/packages/utils/types/env.ts b/packages/utils/types/env.ts new file mode 100644 index 00000000..2fe03a6b --- /dev/null +++ b/packages/utils/types/env.ts @@ -0,0 +1,5 @@ +export type MobileDefaultEnvironmentVariables = { + EXPO_PUBLIC_API_BASE_URL: string + EXPO_PUBLIC_RELAY_ENDPOINT: string + EXPO_PUBLIC_WS_RELAY_ENDPOINT: string +} diff --git a/packages/wagtail/CHANGELOG.md b/packages/wagtail/CHANGELOG.md index e3961cba..9ee7986d 100644 --- a/packages/wagtail/CHANGELOG.md +++ b/packages/wagtail/CHANGELOG.md @@ -1,5 +1,14 @@ # @baseapp-frontend/wagtail +## 1.0.14 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/design-system@0.0.29 + - @baseapp-frontend/graphql@1.2.0 + - @baseapp-frontend/utils@3.1.0 + ## 1.0.13 ### Patch Changes diff --git a/packages/wagtail/package.json b/packages/wagtail/package.json index b6745346..61af37c9 100644 --- a/packages/wagtail/package.json +++ b/packages/wagtail/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/wagtail", "description": "BaseApp Wagtail", - "version": "1.0.13", + "version": "1.0.14", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4974c0e1..c6d594b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -183,6 +183,16 @@ catalogs: '@mui/x-date-pickers': specifier: 7.6.2 version: 7.6.2 + react-native-core: + expo-constants: + specifier: ~17.0.3 + version: 17.0.3 + expo-secure-store: + specifier: ~14.0.0 + version: 14.0.0 + react-native: + specifier: 0.76.3 + version: 0.76.3 react18: '@types/react': specifier: 18.3.3 @@ -372,7 +382,7 @@ importers: version: 5.4.5 yaml: specifier: ^2.5.1 - version: 2.6.1 + version: 2.7.0 packages/authentication: dependencies: @@ -508,7 +518,7 @@ importers: version: 5.45.1(react@18.3.1) framer-motion: specifier: ^11.5.4 - version: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.16.4(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql: specifier: catalog:graphql version: 16.8.1 @@ -611,13 +621,13 @@ importers: version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@tailwindcss/typography': specifier: catalog:tailwind - version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) + version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5))) '@testing-library/cypress': specifier: catalog:test version: 10.0.2(cypress@13.16.1) '@testing-library/jest-dom': specifier: catalog:test - version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) + version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5))) '@testing-library/react': specifier: catalog:test version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -689,7 +699,7 @@ importers: version: 5.6.0(webpack@5.93.0) jest: specifier: catalog:test - version: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + version: 29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) jest-environment-jsdom: specifier: catalog:test version: 29.7.0 @@ -698,10 +708,10 @@ importers: version: 2.9.3(@types/react@18.3.3)(react@18.3.1) msw: specifier: catalog:storybook - version: 2.6.6(@types/node@22.10.2)(typescript@5.4.5) + version: 2.6.6(@types/node@22.10.5)(typescript@5.4.5) msw-storybook-addon: specifier: catalog:storybook - version: 2.0.4(msw@2.6.6(@types/node@22.10.2)(typescript@5.4.5)) + version: 2.0.4(msw@2.6.6(@types/node@22.10.5)(typescript@5.4.5)) postcss: specifier: catalog:tailwind version: 8.4.38 @@ -722,13 +732,13 @@ importers: version: 4.0.0(webpack@5.93.0) tailwindcss: specifier: catalog:tailwind - version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) ts-jest: specifier: catalog:test - version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)))(typescript@5.4.5) ts-node: specifier: catalog:test - version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5) typescript: specifier: 'catalog:' version: 5.4.5 @@ -812,7 +822,7 @@ importers: version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@iconify/react': specifier: ^5.0.1 - version: 5.1.0(react@18.3.1) + version: 5.2.0(react@18.3.1) '@mui/icons-material': specifier: catalog:material-ui version: 5.15.19(@mui/material@5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) @@ -836,7 +846,7 @@ importers: version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) framer-motion: specifier: ^11.2.10 - version: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.16.4(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) jotai: specifier: 'catalog:' version: 2.9.3(@types/react@18.3.3)(react@18.3.1) @@ -915,7 +925,7 @@ importers: version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@tailwindcss/typography': specifier: catalog:tailwind - version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) + version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5))) '@types/lodash': specifier: 'catalog:' version: 4.17.7 @@ -948,7 +958,7 @@ importers: version: 4.0.0(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) tailwindcss: specifier: catalog:tailwind - version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) typescript: specifier: 'catalog:' version: 5.4.5 @@ -973,7 +983,7 @@ importers: version: 2.13.3(@swc/helpers@0.5.15)(postcss@8.4.49)(relateurl@0.2.7)(terser@5.37.0)(typescript@5.4.5) ts-node: specifier: catalog:test - version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5) typescript: specifier: 'catalog:' version: 5.4.5 @@ -1153,9 +1163,12 @@ importers: events: specifier: ^3.3.0 version: 3.3.0 + expo-constants: + specifier: catalog:react-native-core + version: 17.0.3(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)) expo-secure-store: - specifier: ^13.0.2 - version: 13.0.2(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)) + specifier: catalog:react-native-core + version: 14.0.0(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)) humps: specifier: ^2.0.1 version: 2.0.1 @@ -1183,6 +1196,9 @@ importers: react-hook-form: specifier: 'catalog:' version: 7.51.5(react@18.3.1) + react-native: + specifier: catalog:react-native-core + version: 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) server-only: specifier: ^0.0.1 version: 0.0.1 @@ -1340,7 +1356,7 @@ importers: version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@tailwindcss/typography': specifier: catalog:tailwind - version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) + version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5))) '@testing-library/cypress': specifier: catalog:test version: 10.0.2(cypress@13.16.1) @@ -1397,10 +1413,10 @@ importers: version: 5.6.0(webpack@5.93.0) msw: specifier: catalog:storybook - version: 2.6.6(@types/node@22.10.2)(typescript@5.4.5) + version: 2.6.6(@types/node@22.10.5)(typescript@5.4.5) msw-storybook-addon: specifier: catalog:storybook - version: 2.0.4(msw@2.6.6(@types/node@22.10.2)(typescript@5.4.5)) + version: 2.0.4(msw@2.6.6(@types/node@22.10.5)(typescript@5.4.5)) postcss: specifier: catalog:tailwind version: 8.4.38 @@ -1421,7 +1437,7 @@ importers: version: 4.0.0(webpack@5.93.0) tailwindcss: specifier: catalog:tailwind - version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) typescript: specifier: 'catalog:' version: 5.4.5 @@ -1437,8 +1453,8 @@ importers: packages: - '@0no-co/graphql.web@1.0.12': - resolution: {integrity: sha512-BTDjjsV/zSPy5fqItwm+KWUfh9CSe9tTtR6rCB72ddtkAxdcHbi4Ir4r/L1Et4lyxmL+i7Rb3m9sjLLi9tYrzA==} + '@0no-co/graphql.web@1.0.13': + resolution: {integrity: sha512-jqYxOevheVTU1S36ZdzAkJIdvRp2m3OYIG5SEoKDw5NI8eVwkoI0D/Q3DYNGmXCxkA6CQuoa7zvMiDPTLqUNuw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 peerDependenciesMeta: @@ -2159,6 +2175,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/preset-react@7.26.3': + resolution: {integrity: sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.26.0': resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} engines: {node: '>=6.9.0'} @@ -2534,21 +2556,21 @@ packages: resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} engines: {node: '>=0.10.0'} - '@expo/cli@0.22.7': - resolution: {integrity: sha512-aNrUPVFPdIX42Q6UM6qygrN4DUqnXMDS1CnkTfNFVIZWRiJ1TUA05Zk6aF35M674CKd/c/dWHFjmbgjsyN/hEA==} + '@expo/cli@0.22.8': + resolution: {integrity: sha512-MpHrfPKcHL+b1wwx+WiniEL5n33tl964tN8EW1K4okW3/tAPgbu3R00NZs6OExH9PZGQP8OKhCXhZttbK2jUnA==} hasBin: true '@expo/code-signing-certificates@0.0.5': resolution: {integrity: sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==} - '@expo/config-plugins@9.0.12': - resolution: {integrity: sha512-/Ko/NM+GzvJyRkq8PITm8ms0KY5v0wmN1OQFYRMkcJqOi3PjlhndW+G6bHpJI9mkQXBaUnHwAiGLqIC3+MQ5Wg==} + '@expo/config-plugins@9.0.13': + resolution: {integrity: sha512-9mSjuMoCijA0O4JONJwWXg+xaD4tVeVv7pXWQovnQGxorgMNgygOGEzGi9GXFMki8FJ1Zlt2gyXrcPFXiId7Hw==} - '@expo/config-types@52.0.1': - resolution: {integrity: sha512-vD8ZetyKV7U29lR6+NJohYeoLYTH+eNYXJeNiSOrWCz0witJYY11meMmEnpEaVbN89EfC6uauSUOa6wihtbyPQ==} + '@expo/config-types@52.0.2': + resolution: {integrity: sha512-4hYwnaCxOLlXXF1TE17RY+GU1CyBqzRx7s13VUDhU1PQ8Zr9/kzGoJI0McmfayncO9RIeSqeDWO6dELZWk/0uw==} - '@expo/config@10.0.6': - resolution: {integrity: sha512-xXkfPElrtxznkOZxFASJ7OPa6E9IHSjcZwj5BQ6XUF2dz5M7AFa2h5sXM8AalSaDU5tEBSgoUOjTh5957TlR8g==} + '@expo/config@10.0.7': + resolution: {integrity: sha512-fS9xuxH3U9tuiXofwxrmsan8TfzlDXgPiX38SDMkq/AQctmRtWllD8GNHRIk9Bdz3vODeBv7vRVGKXPBYG72cQ==} '@expo/devcert@1.1.4': resolution: {integrity: sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==} @@ -2573,14 +2595,14 @@ packages: resolution: {integrity: sha512-LcPjxJ5FOFpqPORm+5MRLV0CuYWMthJYV6eerF+lQVXKlvgSn3EOqaHC3Vf3H+vmB0f6G4kdvvFtg40vG4bIhA==} engines: {node: '>=12'} - '@expo/package-manager@1.6.1': - resolution: {integrity: sha512-4rT46wP/94Ll+CWXtFKok1Lbo9XncSUtErFOo/9/3FVughGbIfdG4SKZOAWIpr9wxwEfkyhHfAP9q71ONlWODw==} + '@expo/package-manager@1.7.0': + resolution: {integrity: sha512-yWn5TIjd42wLHZjNtdZkvCkcxqUGxlI4YHb+bQmgm3tWZ8aBHnLhPb0rgU8+hVHCofmRvVUXfVZv8Uh+kkLXgw==} '@expo/plist@0.2.0': resolution: {integrity: sha512-F/IZJQaf8OIVnVA6XWUeMPC3OH6MV00Wxf0WC0JhTQht2QgjyHUa3U5Gs3vRtDq8tXNsZneOQRDVwpaOnd4zTQ==} - '@expo/prebuild-config@8.0.23': - resolution: {integrity: sha512-Zf01kFiN2PISmLb0DhIAJh76v3J2oYUKSjiAtGZLOH0HUz59by/qdyU4mGHWdeyRdCCrLUA21Rct2MBykvRMsg==} + '@expo/prebuild-config@8.0.24': + resolution: {integrity: sha512-zxbKW+oHn0/QwKaShjbxD7tv+5WtK2+C5ZJTHztyXJXrBP6BOL5dK4lP2djQVzpHYU1p6ZzKFvp9d1bW/+S32Q==} '@expo/rudder-sdk-node@1.1.1': resolution: {integrity: sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==} @@ -2604,11 +2626,11 @@ packages: resolution: {integrity: sha512-r0tJ3ZOkMd9xsu3VRfqlFR6cz0V/jFYRswAIpC+m/DIfAUXq7g8N7wTAlhSANySXYGKzGryfDXwtwsY8TxEIDw==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} - '@floating-ui/core@1.6.8': - resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} - '@floating-ui/dom@1.6.12': - resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} '@floating-ui/react-dom@2.1.2': resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} @@ -2616,8 +2638,8 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.8': - resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} '@hookform/resolvers@3.6.0': resolution: {integrity: sha512-UBcpyOX3+RR+dNnqBd0lchXpoL8p4xC21XP8H6Meb8uve5Br1GCnmg0PcBoKKqPKgGu9GHQ/oygcmPrQhetwqw==} @@ -2637,8 +2659,8 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@iconify/react@5.1.0': - resolution: {integrity: sha512-vj2wzalywy23DR37AnsogMPIkDa1nKEqITjxpH4z44tiLV869Mh7VyydD4/t0yJLEs9tsxlrPWtXvMOe1Lcd5g==} + '@iconify/react@5.2.0': + resolution: {integrity: sha512-7Sdjrqq3fkkQNks9SY3adGC37NQTHsBJL2PRKlQd455PoDi9s+Es9AUTY+vGLFOYs5yO9w9yCE42pmxCwG26WA==} peerDependencies: react: '>=16' @@ -2983,8 +3005,8 @@ packages: cpu: [x64] os: [win32] - '@mswjs/interceptors@0.37.3': - resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} + '@mswjs/interceptors@0.37.5': + resolution: {integrity: sha512-AAwRb5vXFcY4L+FvZ7LZusDuZ0vEe0Zm8ohn1FM6/X7A3bj4mqmkAcGRWuvC2JwSygNwHAAmMnAI73vPHeqsHA==} engines: {node: '>=18'} '@mui/base@5.0.0-beta.40': @@ -3009,8 +3031,8 @@ packages: '@types/react': optional: true - '@mui/core-downloads-tracker@5.16.13': - resolution: {integrity: sha512-xe5RwI0Q2O709Bd2Y7l1W1NIwNmln0y+xaGk5VgX3vDJbkQEqzdfTFZ73e0CkEZgJwyiWgk5HY0l8R4nysOxjw==} + '@mui/core-downloads-tracker@5.16.14': + resolution: {integrity: sha512-sbjXW+BBSvmzn61XyTMun899E7nGPTXwqD9drm1jBUAvWEhJpPFIRxwQQiATWZnd9rvdxtnhhdsDxEGWI0jxqA==} '@mui/icons-material@5.15.19': resolution: {integrity: sha512-RsEiRxA5azN9b8gI7JRqekkgvxQUlitoBOtZglflb8cUDyP12/cP4gRwhb44Ea1/zwwGGjAj66ZJpGHhKfibNA==} @@ -3076,8 +3098,8 @@ packages: '@types/react': optional: true - '@mui/private-theming@5.16.13': - resolution: {integrity: sha512-+s0FklvDvO7j0yBZn19DIIT3rLfub2fWvXGtMX49rG/xHfDFcP7fbWbZKHZMMP/2/IoTRDrZCbY1iP0xZlmuJA==} + '@mui/private-theming@5.16.14': + resolution: {integrity: sha512-12t7NKzvYi819IO5IapW2BcR33wP/KAVrU8d7gLhGHoAmhDxyXlRoKiRij3TOD8+uzk0B6R9wHUNKi4baJcRNg==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -3086,8 +3108,8 @@ packages: '@types/react': optional: true - '@mui/styled-engine@5.16.13': - resolution: {integrity: sha512-2XNHEG8/o1ucSLhTA9J+HIIXjzlnEc0OV7kneeUQ5JukErPYT2zc6KYBDLjlKWrzQyvnQzbiffjjspgHUColZg==} + '@mui/styled-engine@5.16.14': + resolution: {integrity: sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -3115,16 +3137,16 @@ packages: '@types/react': optional: true - '@mui/types@7.2.20': - resolution: {integrity: sha512-straFHD7L8v05l/N5vcWk+y7eL9JF0C2mtph/y4BPm3gn2Eh61dDwDB65pa8DLss3WJfDXYC7Kx5yjP0EmXpgw==} + '@mui/types@7.2.21': + resolution: {integrity: sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/utils@5.16.13': - resolution: {integrity: sha512-35kLiShnDPByk57Mz4PP66fQUodCFiOD92HfpW6dK9lc7kjhZsKHRKeYPgWuwEHeXwYsCSFtBCW4RZh/8WT+TQ==} + '@mui/utils@5.16.14': + resolution: {integrity: sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -3133,8 +3155,8 @@ packages: '@types/react': optional: true - '@mui/utils@6.3.0': - resolution: {integrity: sha512-MkDBF08OPVwXhAjedyMykRojgvmf0y/jxkBWjystpfI/pasyTYrfdv4jic6s7j3y2+a+SJzS9qrD6X8ZYj/8AQ==} + '@mui/utils@6.3.1': + resolution: {integrity: sha512-sjGjXAngoio6lniQZKJ5zGfjm+LD2wvLwco7FbKe1fu8A7VIFmz2SwkLb+MDPLNX1lE7IscvNNyh1pobtZg2tw==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -3602,28 +3624,44 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@react-native/assets-registry@0.76.5': - resolution: {integrity: sha512-MN5dasWo37MirVcKWuysRkRr4BjNc81SXwUtJYstwbn8oEkfnwR9DaqdDTo/hHOnTdhafffLIa2xOOHcjDIGEw==} + '@react-native/assets-registry@0.76.3': + resolution: {integrity: sha512-7Fnc3lzCFFpnoyL1egua6d/qUp0KiIpeSLbfOMln4nI2g2BMzyFHdPjJnpLV2NehmS0omOOkrfRqK5u1F/MXzA==} + engines: {node: '>=18'} + + '@react-native/babel-plugin-codegen@0.76.3': + resolution: {integrity: sha512-mZ7jmIIg4bUnxCqY3yTOkoHvvzsDyrZgfnIKiTGm5QACrsIGa5eT3pMFpMm2OpxGXRDrTMsYdPXE2rCyDX52VQ==} engines: {node: '>=18'} '@react-native/babel-plugin-codegen@0.76.5': resolution: {integrity: sha512-xe7HSQGop4bnOLMaXt0aU+rIatMNEQbz242SDl8V9vx5oOTI0VbZV9yLy6yBc6poUlYbcboF20YVjoRsxX4yww==} engines: {node: '>=18'} + '@react-native/babel-preset@0.76.3': + resolution: {integrity: sha512-zi2nPlQf9q2fmfPyzwWEj6DU96v8ziWtEfG7CTAX2PG/Vjfsr94vn/wWrCdhBVvLRQ6Kvd/MFAuDYpxmQwIiVQ==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + '@react-native/babel-preset@0.76.5': resolution: {integrity: sha512-1Nu5Um4EogOdppBLI4pfupkteTjWfmI0hqW8ezWTg7Bezw0FtBj8yS8UYVd3wTnDFT9A5mA2VNoNUqomJnvj2A==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' + '@react-native/codegen@0.76.3': + resolution: {integrity: sha512-oJCH/jbYeGmFJql8/y76gqWCCd74pyug41yzYAjREso1Z7xL88JhDyKMvxEnfhSdMOZYVl479N80xFiXPy3ZYA==} + engines: {node: '>=18'} + peerDependencies: + '@babel/preset-env': ^7.1.6 + '@react-native/codegen@0.76.5': resolution: {integrity: sha512-FoZ9VRQ5MpgtDAnVo1rT9nNRfjnWpE40o1GeJSDlpUMttd36bVXvsDm8W/NhX8BKTWXSX+CPQJsRcvN1UPYGKg==} engines: {node: '>=18'} peerDependencies: '@babel/preset-env': ^7.1.6 - '@react-native/community-cli-plugin@0.76.5': - resolution: {integrity: sha512-3MKMnlU0cZOWlMhz5UG6WqACJiWUrE3XwBEumzbMmZw3Iw3h+fIsn+7kLLE5EhzqLt0hg5Y4cgYFi4kOaNgq+g==} + '@react-native/community-cli-plugin@0.76.3': + resolution: {integrity: sha512-vgsLixHS24jR0d0QqPykBWFaC+V8x9cM3cs4oYXw3W199jgBNGP9MWcUJLazD2vzrT/lUTVBVg0rBeB+4XR6fg==} engines: {node: '>=18'} peerDependencies: '@react-native-community/cli-server-api': '*' @@ -3631,33 +3669,44 @@ packages: '@react-native-community/cli-server-api': optional: true + '@react-native/debugger-frontend@0.76.3': + resolution: {integrity: sha512-pMHQ3NpPB28RxXciSvm2yD+uDx3pkhzfuWkc7VFgOduyzPSIr0zotUiOJzsAtrj8++bPbOsAraCeQhCqoOTWQw==} + engines: {node: '>=18'} + '@react-native/debugger-frontend@0.76.5': resolution: {integrity: sha512-5gtsLfBaSoa9WP8ToDb/8NnDBLZjv4sybQQj7rDKytKOdsXm3Pr2y4D7x7GQQtP1ZQRqzU0X0OZrhRz9xNnOqA==} engines: {node: '>=18'} + '@react-native/dev-middleware@0.76.3': + resolution: {integrity: sha512-b+2IpW40z1/S5Jo5JKrWPmucYU/PzeGyGBZZ/SJvmRnBDaP3txb9yIqNZAII1EWsKNhedh8vyRO5PSuJ9Juqzw==} + engines: {node: '>=18'} + '@react-native/dev-middleware@0.76.5': resolution: {integrity: sha512-f8eimsxpkvMgJia7POKoUu9uqjGF6KgkxX4zqr/a6eoR1qdEAWUd6PonSAqtag3PAqvEaJpB99gLH2ZJI1nDGg==} engines: {node: '>=18'} - '@react-native/gradle-plugin@0.76.5': - resolution: {integrity: sha512-7KSyD0g0KhbngITduC8OABn0MAlJfwjIdze7nA4Oe1q3R7qmAv+wQzW+UEXvPah8m1WqFjYTkQwz/4mK3XrQGw==} + '@react-native/gradle-plugin@0.76.3': + resolution: {integrity: sha512-t0aYZ8ND7+yc+yIm6Yp52bInneYpki6RSIFZ9/LMUzgMKvEB62ptt/7sfho9QkKHCNxE1DJSWIqLIGi/iHHkyg==} engines: {node: '>=18'} - '@react-native/js-polyfills@0.76.5': - resolution: {integrity: sha512-ggM8tcKTcaqyKQcXMIvcB0vVfqr9ZRhWVxWIdiFO1mPvJyS6n+a+lLGkgQAyO8pfH0R1qw6K9D0nqbbDo865WQ==} + '@react-native/js-polyfills@0.76.3': + resolution: {integrity: sha512-pubJFArMMrdZiytH+W95KngcSQs+LsxOBsVHkwgMnpBfRUxXPMK4fudtBwWvhnwN76Oe+WhxSq7vOS5XgoPhmw==} engines: {node: '>=18'} - '@react-native/metro-babel-transformer@0.76.5': - resolution: {integrity: sha512-Cm9G5Sg5BDty3/MKa3vbCAJtT3YHhlEaPlQALLykju7qBS+pHZV9bE9hocfyyvc5N/osTIGWxG5YOfqTeMu1oQ==} + '@react-native/metro-babel-transformer@0.76.3': + resolution: {integrity: sha512-b2zQPXmW7avw/7zewc9nzMULPIAjsTwN03hskhxHUJH5pzUf7pIklB3FrgYPZrRhJgzHiNl3tOPu7vqiKzBYPg==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' + '@react-native/normalize-colors@0.76.3': + resolution: {integrity: sha512-Yrpmrh4IDEupUUM/dqVxhAN8QW1VEUR3Qrk2lzJC1jB2s46hDe0hrMP2vs12YJqlzshteOthjwXQlY0TgIzgbg==} + '@react-native/normalize-colors@0.76.5': resolution: {integrity: sha512-6QRLEok1r55gLqj+94mEWUENuU5A6wsr2OoXpyq/CgQ7THWowbHtru/kRGRr6o3AQXrVnZheR60JNgFcpNYIug==} - '@react-native/virtualized-lists@0.76.5': - resolution: {integrity: sha512-M/fW1fTwxrHbcx0OiVOIxzG6rKC0j9cR9Csf80o77y1Xry0yrNPpAlf8D1ev3LvHsiAUiRNFlauoPtodrs2J1A==} + '@react-native/virtualized-lists@0.76.3': + resolution: {integrity: sha512-wTGv9pVh3vAOWb29xFm+J9VRe9dUcUcb9FyaMLT/Hxa88W4wqa5ZMe1V9UvrrBiA1G5DKjv8/1ZcDsJhyugVKA==} engines: {node: '>=18'} peerDependencies: '@types/react': ^18.2.6 @@ -3670,8 +3719,8 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@rushstack/eslint-patch@1.10.4': - resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + '@rushstack/eslint-patch@1.10.5': + resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} '@segment/loosely-validate-event@2.0.0': resolution: {integrity: sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==} @@ -4120,8 +4169,8 @@ packages: '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express-serve-static-core@5.0.2': - resolution: {integrity: sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==} + '@types/express-serve-static-core@5.0.4': + resolution: {integrity: sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -4186,8 +4235,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@22.10.2': - resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/node@22.10.5': + resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} '@types/node@22.7.2': resolution: {integrity: sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA==} @@ -4805,8 +4854,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - babel-preset-expo@12.0.4: - resolution: {integrity: sha512-SAzAwqpyjA+/OFrU95OOioj6oTeCv4+rRfrNmBTy5S/gJswrZKBSPJioFudIaJBy43W+BL7HA5AspBIF6tO/aA==} + babel-preset-expo@12.0.5: + resolution: {integrity: sha512-rEFjN1CoMYEWSRpE+Hvw+zv+nLbDXyRM8vGAoYJtFPJovHupX2VRWPVaqtHlnMTrzsGFQDf4WfQJrjAQ9e2hAQ==} peerDependencies: babel-plugin-react-compiler: ^19.0.0-beta-9ee70a1-20241017 react-compiler-runtime: ^19.0.0-beta-8a03594-20241020 @@ -4902,8 +4951,8 @@ packages: browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - browserslist@4.24.3: - resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4995,8 +5044,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001690: - resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} + caniuse-lite@1.0.30001692: + resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==} case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} @@ -5051,8 +5100,8 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chromatic@11.20.2: - resolution: {integrity: sha512-c+M3HVl5Y60c7ipGTZTyeWzWubRW70YsJ7PPDpO1D735ib8+Lu3yGF90j61pvgkXGngpkTPHZyBw83lcu2JMxA==} + chromatic@11.22.2: + resolution: {integrity: sha512-Z7+9hD1yp1fUm34XX1wojIco0lQlXOVYhzDSE8v1ZU6qLD2r4N6UHKD+N+XY1Jj+gpsDFWYMTpSnDfcHZf5mhg==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -5287,8 +5336,8 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - core-js-compat@3.39.0: - resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} + core-js-compat@3.40.0: + resolution: {integrity: sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -5646,8 +5695,8 @@ packages: domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - domutils@3.2.1: - resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==} + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -5678,8 +5727,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.76: - resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} + electron-to-chromium@1.5.79: + resolution: {integrity: sha512-nYOxJNxQ9Om4EC88BE4pPoNI8xwSFf8pU/BAeOl4Hh/b/i6V4biTAzwV7pXi3ARKeoYO5JZKMIXTryXSVer5RA==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -5750,8 +5799,8 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.23.8: - resolution: {integrity: sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==} + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} es-array-method-boxes-properly@1.0.0: @@ -5776,8 +5825,8 @@ packages: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} es-shim-unscopables@1.0.2: @@ -6072,13 +6121,13 @@ packages: expo-modules-core@2.1.2: resolution: {integrity: sha512-0OhMU5S8zf9c/CRh1MwiXfOInI9wzz6yiIh5RuR/9J7N6xHRum68hInsPbaSc1UQpo08ZZLM4MPsbpoNRUoqIg==} - expo-secure-store@13.0.2: - resolution: {integrity: sha512-3QYgoneo8p8yeeBPBiAfokNNc2xq6+n8+Ob4fAlErEcf4H7Y72LH+K/dx0nQyWau2ZKZUXBxyyfuHFyVKrEVLg==} + expo-secure-store@14.0.0: + resolution: {integrity: sha512-VyhtRFXP+7hQmHhKlHIOWid1Q/IRpM7Uif32tZHLZHvQ6FNz2cUkr26XWGvCa7btYbrR6OL++FBFZYjbIcRZTw==} peerDependencies: expo: '*' - expo@52.0.23: - resolution: {integrity: sha512-DR36Vkpz/ZLPci4fxDBG/pLk26nGK63vcZ+X4RZJfNBzi14DXZ939loP8YzWGV78Qp23qdPINczpo2727tqLxg==} + expo@52.0.24: + resolution: {integrity: sha512-g9o7Hi1Zqr5MHNR76sMVm3oEwBFWgAozx4CMbVIgJE+wq8Gu0WZyOFOL6NswR5aZs+Cx0CK5hZEXwDtLQql8WQ==} hasBin: true peerDependencies: '@expo/dom-webview': '*' @@ -6123,8 +6172,8 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} fast-json-parse@1.0.3: @@ -6136,8 +6185,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.0.3: - resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + fast-uri@3.0.5: + resolution: {integrity: sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==} fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} @@ -6241,8 +6290,8 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - flow-parser@0.257.1: - resolution: {integrity: sha512-7+KYDpAXyBPD/wODhbPYO6IGUx+WwtJcLLG/r3DvbNyxaDyuYaTBKbSqeCldWQzuFcj+MsOVx2bpkEwVPB9JRw==} + flow-parser@0.258.1: + resolution: {integrity: sha512-Y8CrO98EcXVCiYE4s5z0LTMbeYjKyd3MAEUJqxA7B8yGRlmdrG5UDqq4pVrUAfAu2tMFgpQESvBhBu9Xg1tpow==} engines: {node: '>=0.4.0'} follow-redirects@1.15.9: @@ -6289,8 +6338,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.15.0: - resolution: {integrity: sha512-MLk8IvZntxOMg7lDBLw2qgTHHv664bYoYmnFTmE0Gm/FW67aOJk0WM3ctMcG+Xhcv+vh5uyyXwxvxhSeJzSe+w==} + framer-motion@11.16.4: + resolution: {integrity: sha512-7ncPlBjrYX6iQXcTSw1kvZcHSVjEuOAW3uWuu+/+chUS4UWBMe8kCjniE4VMc2/BMo0su0Uw9sw0aWS9anpPWA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -6372,8 +6421,8 @@ packages: resolution: {integrity: sha512-1z5Hw91VrE3GrpCZE6lE8Dy+jz4kXWesLS7rCSjwOxf5BOcIedAZeTUJRIeIzmmR+PA9CKOkPTYFRJbdgUtrxA==} hasBin: true - get-intrinsic@1.2.6: - resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} get-package-type@0.1.0: @@ -6388,6 +6437,10 @@ packages: resolution: {integrity: sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==} engines: {node: '>=6'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stream@4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} @@ -6804,8 +6857,8 @@ packages: is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + is-async-function@2.1.0: + resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} engines: {node: '>= 0.4'} is-bigint@1.1.0: @@ -6880,8 +6933,8 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -7057,8 +7110,8 @@ packages: iterall@1.3.0: resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} - iterator.prototype@1.1.4: - resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==} + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} jackspeak@3.4.3: @@ -7382,8 +7435,8 @@ packages: cpu: [arm64] os: [darwin] - lightningcss-darwin-arm64@1.28.2: - resolution: {integrity: sha512-/8cPSqZiusHSS+WQz0W4NuaqFjquys1x+NsdN/XOHb+idGHJSoJ7SoQTVl3DZuAgtPZwFZgRfb/vd1oi8uX6+g==} + lightningcss-darwin-arm64@1.29.1: + resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] @@ -7394,8 +7447,8 @@ packages: cpu: [x64] os: [darwin] - lightningcss-darwin-x64@1.28.2: - resolution: {integrity: sha512-R7sFrXlgKjvoEG8umpVt/yutjxOL0z8KWf0bfPT3cYMOW4470xu5qSHpFdIOpRWwl3FKNMUdbKtMUjYt0h2j4g==} + lightningcss-darwin-x64@1.29.1: + resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] @@ -7406,8 +7459,8 @@ packages: cpu: [x64] os: [freebsd] - lightningcss-freebsd-x64@1.28.2: - resolution: {integrity: sha512-l2qrCT+x7crAY+lMIxtgvV10R8VurzHAoUZJaVFSlHrN8kRLTvEg9ObojIDIexqWJQvJcVVV3vfzsEynpiuvgA==} + lightningcss-freebsd-x64@1.29.1: + resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] @@ -7418,8 +7471,8 @@ packages: cpu: [arm] os: [linux] - lightningcss-linux-arm-gnueabihf@1.28.2: - resolution: {integrity: sha512-DKMzpICBEKnL53X14rF7hFDu8KKALUJtcKdFUCW5YOlGSiwRSgVoRjM97wUm/E0NMPkzrTi/rxfvt7ruNK8meg==} + lightningcss-linux-arm-gnueabihf@1.29.1: + resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] @@ -7430,8 +7483,8 @@ packages: cpu: [arm64] os: [linux] - lightningcss-linux-arm64-gnu@1.28.2: - resolution: {integrity: sha512-nhfjYkfymWZSxdtTNMWyhFk2ImUm0X7NAgJWFwnsYPOfmtWQEapzG/DXZTfEfMjSzERNUNJoQjPAbdqgB+sjiw==} + lightningcss-linux-arm64-gnu@1.29.1: + resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] @@ -7442,8 +7495,8 @@ packages: cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.28.2: - resolution: {integrity: sha512-1SPG1ZTNnphWvAv8RVOymlZ8BDtAg69Hbo7n4QxARvkFVCJAt0cgjAw1Fox0WEhf4PwnyoOBaVH0Z5YNgzt4dA==} + lightningcss-linux-arm64-musl@1.29.1: + resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] @@ -7454,8 +7507,8 @@ packages: cpu: [x64] os: [linux] - lightningcss-linux-x64-gnu@1.28.2: - resolution: {integrity: sha512-ZhQy0FcO//INWUdo/iEdbefntTdpPVQ0XJwwtdbBuMQe+uxqZoytm9M+iqR9O5noWFaxK+nbS2iR/I80Q2Ofpg==} + lightningcss-linux-x64-gnu@1.29.1: + resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] @@ -7466,8 +7519,8 @@ packages: cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.28.2: - resolution: {integrity: sha512-alb/j1NMrgQmSFyzTbN1/pvMPM+gdDw7YBuQ5VSgcFDypN3Ah0BzC2dTZbzwzaMdUVDszX6zH5MzjfVN1oGuww==} + lightningcss-linux-x64-musl@1.29.1: + resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] @@ -7478,8 +7531,8 @@ packages: cpu: [arm64] os: [win32] - lightningcss-win32-arm64-msvc@1.28.2: - resolution: {integrity: sha512-WnwcjcBeAt0jGdjlgbT9ANf30pF0C/QMb1XnLnH272DQU8QXh+kmpi24R55wmWBwaTtNAETZ+m35ohyeMiNt+g==} + lightningcss-win32-arm64-msvc@1.29.1: + resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] @@ -7490,8 +7543,8 @@ packages: cpu: [x64] os: [win32] - lightningcss-win32-x64-msvc@1.28.2: - resolution: {integrity: sha512-3piBifyT3avz22o6mDKywQC/OisH2yDK+caHWkiMsF82i3m5wDBadyCjlCQ5VNgzYkxrWZgiaxHDdd5uxsi0/A==} + lightningcss-win32-x64-msvc@1.29.1: + resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] @@ -7500,8 +7553,8 @@ packages: resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==} engines: {node: '>= 12.0.0'} - lightningcss@1.28.2: - resolution: {integrity: sha512-ePLRrbt3fgjXI5VFZOLbvkLD5ZRuxGKm+wJ3ujCqBtL3NanDHPo/5zicR5uEKAPiIjBYF99BM4K4okvMznjkVA==} + lightningcss@1.29.1: + resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} engines: {node: '>= 12.0.0'} lilconfig@2.1.0: @@ -7684,8 +7737,8 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} - memfs@4.15.1: - resolution: {integrity: sha512-ufCzgFwiVnR6R9cCYuvwznJdhdYXEvFl0hpnM4cCtVaVkHuqBR+6fo2sqt1SSMdp+uiHw9GyPZr3OMM5tqjSmQ==} + memfs@4.15.3: + resolution: {integrity: sha512-vR/g1SgqvKJgAyYla+06G4p/EOcEmwhYuVb1yc1ixcKf8o/sh7Zngv63957ZSNd1xrZJoinmNyDf2LzuP8WJXw==} engines: {node: '>= 4.0.0'} memoize-one@5.2.1: @@ -7857,11 +7910,11 @@ packages: engines: {node: '>=10'} hasBin: true - motion-dom@11.14.3: - resolution: {integrity: sha512-lW+D2wBy5vxLJi6aCP0xyxTxlTfiu+b+zcpVbGVFUxotwThqhdpPRSmX8xztAgtZMPMeU0WGVn/k1w4I+TbPqA==} + motion-dom@11.16.4: + resolution: {integrity: sha512-2wuCie206pCiP2K23uvwJeci4pMFfyQKpWI0Vy6HrCTDzDCer4TsYtT7IVnuGbDeoIV37UuZiUr6SZMHEc1Vww==} - motion-utils@11.14.3: - resolution: {integrity: sha512-Xg+8xnqIJTpr0L/cidfTTBFkvRw26ZtGGuIhA94J9PQ2p4mEa06Xx7QVYZH0BP+EpMSaDlu+q0I0mmvwADPsaQ==} + motion-utils@11.16.0: + resolution: {integrity: sha512-ngdWPjg31rD4WGXFi0eZ00DQQqKKu04QExyv/ymlC+3k+WIgYVFbt6gS5JsFPbJODTF/r8XiE/X+SsoT9c0ocw==} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -8706,8 +8759,8 @@ packages: peerDependencies: react: ^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x || ^19.x.x - react-native@0.76.5: - resolution: {integrity: sha512-op2p2kB+lqMF1D7AdX4+wvaR0OPFbvWYs+VBE7bwsb99Cn9xISrLRLAgFflZedQsa5HvnOGrULhtnmItbIKVVw==} + react-native@0.76.3: + resolution: {integrity: sha512-0TUhgmlouRNf6yuDIIAdbQl0g1VsONgCMsLs7Et64hjj5VLMCA7np+4dMrZvGZ3wRNqzgeyT9oWJsUm49AcwSQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -8780,8 +8833,8 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - reflect.getprototypeof@1.0.9: - resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} regenerate-unicode-properties@10.2.0: @@ -8800,8 +8853,8 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.3: - resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} regexpu-core@6.2.0: @@ -9044,6 +9097,10 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -9519,11 +9576,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.70: - resolution: {integrity: sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==} + tldts-core@6.1.71: + resolution: {integrity: sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg==} - tldts@6.1.70: - resolution: {integrity: sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==} + tldts@6.1.71: + resolution: {integrity: sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw==} hasBin: true tmp@0.0.33: @@ -9553,8 +9610,8 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} - tough-cookie@5.0.0: - resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} + tough-cookie@5.1.0: + resolution: {integrity: sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==} engines: {node: '>=16'} tr46@0.0.3: @@ -9713,8 +9770,8 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.31.0: - resolution: {integrity: sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==} + type-fest@4.32.0: + resolution: {integrity: sha512-rfgpoi08xagF3JSdtJlCwMq9DGNDE0IMh3Mkpc1wUypg9vPi786AiqeBBKcqvIkq42azsBM85N490fyZjeUftw==} engines: {node: '>=16'} type-is@1.6.18: @@ -9808,16 +9865,16 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@1.16.0: - resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==} + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + update-browserslist-db@1.1.2: + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -10185,8 +10242,8 @@ packages: resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} - yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true @@ -10237,7 +10294,7 @@ packages: snapshots: - '@0no-co/graphql.web@1.0.12(graphql@16.8.1)': + '@0no-co/graphql.web@1.0.13(graphql@16.8.1)': optionalDependencies: graphql: 16.8.1 @@ -10284,7 +10341,7 @@ snapshots: '@babel/generator@7.17.7': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.17.0 jsesc: 2.5.2 source-map: 0.5.7 @@ -10304,7 +10361,7 @@ snapshots: dependencies: '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.3 + browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 @@ -11089,7 +11146,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 + core-js-compat: 3.40.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11120,6 +11177,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-react@7.26.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11346,7 +11415,7 @@ snapshots: '@chromatic-com/storybook@3.2.3(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))': dependencies: - chromatic: 11.20.2 + chromatic: 11.22.2 filesize: 10.1.6 jsonfile: 6.1.0 react-confetti: 6.2.2(react@18.3.1) @@ -11381,7 +11450,7 @@ snapshots: performance-now: 2.1.0 qs: 6.13.1 safe-buffer: 5.2.1 - tough-cookie: 5.0.0 + tough-cookie: 5.1.0 tunnel-agent: 0.6.0 uuid: 8.3.2 @@ -11474,7 +11543,7 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 + '@emotion/cache': 11.11.0 '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) '@emotion/utils': 1.4.2 @@ -11625,22 +11694,22 @@ snapshots: dependencies: uuid: 8.3.2 - '@expo/cli@0.22.7(graphql@16.8.1)': + '@expo/cli@0.22.8(graphql@16.8.1)': dependencies: - '@0no-co/graphql.web': 1.0.12(graphql@16.8.1) + '@0no-co/graphql.web': 1.0.13(graphql@16.8.1) '@babel/runtime': 7.26.0 '@expo/code-signing-certificates': 0.0.5 - '@expo/config': 10.0.6 - '@expo/config-plugins': 9.0.12 + '@expo/config': 10.0.7 + '@expo/config-plugins': 9.0.13 '@expo/devcert': 1.1.4 '@expo/env': 0.4.0 '@expo/image-utils': 0.6.3 '@expo/json-file': 9.0.0 '@expo/metro-config': 0.19.8 '@expo/osascript': 2.1.4 - '@expo/package-manager': 1.6.1 + '@expo/package-manager': 1.7.0 '@expo/plist': 0.2.0 - '@expo/prebuild-config': 8.0.23 + '@expo/prebuild-config': 8.0.24 '@expo/rudder-sdk-node': 1.1.1 '@expo/spawn-async': 1.7.2 '@expo/xcpretty': 4.3.2 @@ -11659,7 +11728,7 @@ snapshots: connect: 3.7.0 debug: 4.4.0(supports-color@8.1.1) env-editor: 0.4.2 - fast-glob: 3.3.2 + fast-glob: 3.3.3 form-data: 3.0.2 freeport-async: 2.0.0 fs-extra: 8.1.0 @@ -11710,9 +11779,9 @@ snapshots: node-forge: 1.3.1 nullthrows: 1.1.1 - '@expo/config-plugins@9.0.12': + '@expo/config-plugins@9.0.13': dependencies: - '@expo/config-types': 52.0.1 + '@expo/config-types': 52.0.2 '@expo/json-file': 9.0.0 '@expo/plist': 0.2.0 '@expo/sdk-runtime-versions': 1.0.0 @@ -11729,13 +11798,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/config-types@52.0.1': {} + '@expo/config-types@52.0.2': {} - '@expo/config@10.0.6': + '@expo/config@10.0.7': dependencies: '@babel/code-frame': 7.10.4 - '@expo/config-plugins': 9.0.12 - '@expo/config-types': 52.0.1 + '@expo/config-plugins': 9.0.13 + '@expo/config-types': 52.0.2 '@expo/json-file': 9.0.0 deepmerge: 4.3.1 getenv: 1.0.0 @@ -11816,7 +11885,7 @@ snapshots: '@babel/generator': 7.26.3 '@babel/parser': 7.26.3 '@babel/types': 7.26.3 - '@expo/config': 10.0.6 + '@expo/config': 10.0.7 '@expo/env': 0.4.0 '@expo/json-file': 9.0.0 '@expo/spawn-async': 1.7.2 @@ -11838,7 +11907,7 @@ snapshots: '@expo/spawn-async': 1.7.2 exec-async: 2.2.0 - '@expo/package-manager@1.6.1': + '@expo/package-manager@1.7.0': dependencies: '@expo/json-file': 9.0.0 '@expo/spawn-async': 1.7.2 @@ -11859,11 +11928,11 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 14.0.0 - '@expo/prebuild-config@8.0.23': + '@expo/prebuild-config@8.0.24': dependencies: - '@expo/config': 10.0.6 - '@expo/config-plugins': 9.0.12 - '@expo/config-types': 52.0.1 + '@expo/config': 10.0.7 + '@expo/config-plugins': 9.0.13 + '@expo/config-types': 52.0.2 '@expo/image-utils': 0.6.3 '@expo/json-file': 9.0.0 '@react-native/normalize-colors': 0.76.5 @@ -11906,22 +11975,22 @@ snapshots: '@faker-js/faker@9.3.0': {} - '@floating-ui/core@1.6.8': + '@floating-ui/core@1.6.9': dependencies: - '@floating-ui/utils': 0.2.8 + '@floating-ui/utils': 0.2.9 - '@floating-ui/dom@1.6.12': + '@floating-ui/dom@1.6.13': dependencies: - '@floating-ui/core': 1.6.8 - '@floating-ui/utils': 0.2.8 + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.6.12 + '@floating-ui/dom': 1.6.13 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.2.8': {} + '@floating-ui/utils@0.2.9': {} '@hookform/resolvers@3.6.0(react-hook-form@7.51.5(react@18.3.1))': dependencies: @@ -11939,7 +12008,7 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@iconify/react@5.1.0(react@18.3.1)': + '@iconify/react@5.2.0(react@18.3.1)': dependencies: '@iconify/types': 2.0.0 react: 18.3.1 @@ -12021,16 +12090,16 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@inquirer/confirm@5.1.1(@types/node@22.10.2)': + '@inquirer/confirm@5.1.1(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.2(@types/node@22.10.2) - '@inquirer/type': 3.0.2(@types/node@22.10.2) - '@types/node': 22.10.2 + '@inquirer/core': 10.1.2(@types/node@22.10.5) + '@inquirer/type': 3.0.2(@types/node@22.10.5) + '@types/node': 22.10.5 - '@inquirer/core@10.1.2(@types/node@22.10.2)': + '@inquirer/core@10.1.2(@types/node@22.10.5)': dependencies: '@inquirer/figures': 1.0.9 - '@inquirer/type': 3.0.2(@types/node@22.10.2) + '@inquirer/type': 3.0.2(@types/node@22.10.5) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -12043,9 +12112,9 @@ snapshots: '@inquirer/figures@1.0.9': {} - '@inquirer/type@3.0.2(@types/node@22.10.2)': + '@inquirer/type@3.0.2(@types/node@22.10.5)': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@isaacs/cliui@8.0.2': dependencies: @@ -12071,27 +12140,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12119,14 +12188,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12155,7 +12224,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -12173,7 +12242,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -12195,7 +12264,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -12265,7 +12334,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.10.2 + '@types/node': 22.7.2 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -12384,7 +12453,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@mswjs/interceptors@0.37.3': + '@mswjs/interceptors@0.37.5': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -12397,8 +12466,8 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.20(@types/react@18.3.3) - '@mui/utils': 5.16.13(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.21(@types/react@18.3.3) + '@mui/utils': 5.16.14(@types/react@18.3.3)(react@18.3.1) '@popperjs/core': 2.11.8 clsx: 2.1.1 prop-types: 15.8.1 @@ -12411,8 +12480,8 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.20(@types/react@18.3.3) - '@mui/utils': 6.3.0(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.21(@types/react@18.3.3) + '@mui/utils': 6.3.1(@types/react@18.3.3)(react@18.3.1) '@popperjs/core': 2.11.8 clsx: 2.1.1 prop-types: 15.8.1 @@ -12421,7 +12490,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 - '@mui/core-downloads-tracker@5.16.13': {} + '@mui/core-downloads-tracker@5.16.14': {} '@mui/icons-material@5.15.19(@mui/material@5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': dependencies: @@ -12437,8 +12506,8 @@ snapshots: '@mui/base': 5.0.0-beta.40(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': 5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': 5.16.12(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/types': 7.2.20(@types/react@18.3.3) - '@mui/utils': 5.16.13(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.21(@types/react@18.3.3) + '@mui/utils': 5.16.14(@types/react@18.3.3)(react@18.3.1) clsx: 2.1.1 prop-types: 15.8.1 react: 18.3.1 @@ -12462,10 +12531,10 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 '@mui/base': 5.0.0-beta.40(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/core-downloads-tracker': 5.16.13 + '@mui/core-downloads-tracker': 5.16.14 '@mui/system': 5.16.12(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/types': 7.2.20(@types/react@18.3.3) - '@mui/utils': 5.16.13(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.21(@types/react@18.3.3) + '@mui/utils': 5.16.14(@types/react@18.3.3)(react@18.3.1) '@types/react-transition-group': 4.4.12(@types/react@18.3.3) clsx: 2.1.1 csstype: 3.1.3 @@ -12479,16 +12548,16 @@ snapshots: '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@types/react': 18.3.3 - '@mui/private-theming@5.16.13(@types/react@18.3.3)(react@18.3.1)': + '@mui/private-theming@5.16.14(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/utils': 5.16.13(@types/react@18.3.3)(react@18.3.1) + '@mui/utils': 5.16.14(@types/react@18.3.3)(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 optionalDependencies: '@types/react': 18.3.3 - '@mui/styled-engine@5.16.13(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': + '@mui/styled-engine@5.16.14(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@emotion/cache': 11.14.0 @@ -12502,10 +12571,10 @@ snapshots: '@mui/system@5.16.12(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/private-theming': 5.16.13(@types/react@18.3.3)(react@18.3.1) - '@mui/styled-engine': 5.16.13(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.20(@types/react@18.3.3) - '@mui/utils': 5.16.13(@types/react@18.3.3)(react@18.3.1) + '@mui/private-theming': 5.16.14(@types/react@18.3.3)(react@18.3.1) + '@mui/styled-engine': 5.16.14(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.21(@types/react@18.3.3) + '@mui/utils': 5.16.14(@types/react@18.3.3)(react@18.3.1) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 @@ -12515,14 +12584,14 @@ snapshots: '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@types/react': 18.3.3 - '@mui/types@7.2.20(@types/react@18.3.3)': + '@mui/types@7.2.21(@types/react@18.3.3)': optionalDependencies: '@types/react': 18.3.3 - '@mui/utils@5.16.13(@types/react@18.3.3)(react@18.3.1)': + '@mui/utils@5.16.14(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/types': 7.2.20(@types/react@18.3.3) + '@mui/types': 7.2.21(@types/react@18.3.3) '@types/prop-types': 15.7.14 clsx: 2.1.1 prop-types: 15.8.1 @@ -12531,10 +12600,10 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 - '@mui/utils@6.3.0(@types/react@18.3.3)(react@18.3.1)': + '@mui/utils@6.3.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/types': 7.2.20(@types/react@18.3.3) + '@mui/types': 7.2.21(@types/react@18.3.3) '@types/prop-types': 15.7.14 clsx: 2.1.1 prop-types: 15.8.1 @@ -12549,7 +12618,7 @@ snapshots: '@mui/base': 5.0.0-beta.68(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': 5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': 5.16.12(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/utils': 5.16.13(@types/react@18.3.3)(react@18.3.1) + '@mui/utils': 5.16.14(@types/react@18.3.3)(react@18.3.1) '@types/react-transition-group': 4.4.12(@types/react@18.3.3) clsx: 2.1.1 prop-types: 15.8.1 @@ -12726,7 +12795,7 @@ snapshots: '@parcel/utils': 2.13.3 '@parcel/workers': 2.13.3(@parcel/core@2.13.3) base-x: 3.0.10 - browserslist: 4.24.3 + browserslist: 4.24.4 clone: 2.1.2 dotenv: 16.4.7 dotenv-expand: 11.0.7 @@ -12756,7 +12825,7 @@ snapshots: '@parcel/utils': 2.13.3 '@parcel/workers': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) base-x: 3.0.10 - browserslist: 4.24.3 + browserslist: 4.24.4 clone: 2.1.2 dotenv: 16.4.7 dotenv-expand: 11.0.7 @@ -12848,8 +12917,8 @@ snapshots: '@parcel/plugin': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.13.3 - browserslist: 4.24.3 - lightningcss: 1.28.2 + browserslist: 4.24.4 + lightningcss: 1.29.1 nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' @@ -12939,7 +13008,7 @@ snapshots: '@parcel/plugin': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.13.3 - lightningcss: 1.28.2 + lightningcss: 1.29.1 nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' @@ -13091,7 +13160,7 @@ snapshots: '@parcel/plugin': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.13.3 - browserslist: 4.24.3 + browserslist: 4.24.4 json5: 2.2.3 nullthrows: 1.1.1 semver: 7.6.3 @@ -13104,8 +13173,8 @@ snapshots: '@parcel/plugin': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.13.3 - browserslist: 4.24.3 - lightningcss: 1.28.2 + browserslist: 4.24.4 + lightningcss: 1.29.1 nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' @@ -13142,7 +13211,7 @@ snapshots: '@parcel/utils': 2.13.3 '@parcel/workers': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) '@swc/helpers': 0.5.15 - browserslist: 4.24.3 + browserslist: 4.24.4 nullthrows: 1.1.1 regenerator-runtime: 0.14.1 semver: 7.6.3 @@ -13340,7 +13409,14 @@ snapshots: '@popperjs/core@2.11.8': {} - '@react-native/assets-registry@0.76.5': {} + '@react-native/assets-registry@0.76.3': {} + + '@react-native/babel-plugin-codegen@0.76.3(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + dependencies: + '@react-native/codegen': 0.76.3(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color '@react-native/babel-plugin-codegen@0.76.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))': dependencies: @@ -13349,6 +13425,57 @@ snapshots: - '@babel/preset-env' - supports-color + '@react-native/babel-preset@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-proposal-export-default-from': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-export-default-from': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-flow-strip-types': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) + '@babel/template': 7.25.9 + '@react-native/babel-plugin-codegen': 0.76.3(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + babel-plugin-syntax-hermes-parser: 0.25.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) + react-refresh: 0.14.2 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + '@react-native/babel-preset@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))': dependencies: '@babel/core': 7.26.0 @@ -13400,6 +13527,20 @@ snapshots: - '@babel/preset-env' - supports-color + '@react-native/codegen@0.76.3(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + dependencies: + '@babel/parser': 7.26.3 + '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + glob: 7.2.3 + hermes-parser: 0.23.1 + invariant: 2.2.4 + jscodeshift: 0.14.0(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + mkdirp: 0.5.6 + nullthrows: 1.1.1 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + '@react-native/codegen@0.76.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))': dependencies: '@babel/parser': 7.26.3 @@ -13414,10 +13555,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native/community-cli-plugin@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + '@react-native/community-cli-plugin@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))': dependencies: - '@react-native/dev-middleware': 0.76.5 - '@react-native/metro-babel-transformer': 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/dev-middleware': 0.76.3 + '@react-native/metro-babel-transformer': 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) chalk: 4.1.2 execa: 5.1.1 invariant: 2.2.4 @@ -13435,8 +13576,28 @@ snapshots: - supports-color - utf-8-validate + '@react-native/debugger-frontend@0.76.3': {} + '@react-native/debugger-frontend@0.76.5': {} + '@react-native/dev-middleware@0.76.3': + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.76.3 + chrome-launcher: 0.15.2 + chromium-edge-launcher: 0.2.0 + connect: 3.7.0 + debug: 2.6.9 + nullthrows: 1.1.1 + open: 7.4.2 + selfsigned: 2.4.1 + serve-static: 1.16.2 + ws: 6.2.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@react-native/dev-middleware@0.76.5': dependencies: '@isaacs/ttlcache': 1.4.1 @@ -13455,34 +13616,36 @@ snapshots: - supports-color - utf-8-validate - '@react-native/gradle-plugin@0.76.5': {} + '@react-native/gradle-plugin@0.76.3': {} - '@react-native/js-polyfills@0.76.5': {} + '@react-native/js-polyfills@0.76.3': {} - '@react-native/metro-babel-transformer@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + '@react-native/metro-babel-transformer@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))': dependencies: '@babel/core': 7.26.0 - '@react-native/babel-preset': 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/babel-preset': 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) hermes-parser: 0.23.1 nullthrows: 1.1.1 transitivePeerDependencies: - '@babel/preset-env' - supports-color + '@react-native/normalize-colors@0.76.3': {} + '@react-native/normalize-colors@0.76.5': {} - '@react-native/virtualized-lists@0.76.5(@types/react@18.3.3)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': + '@react-native/virtualized-lists@0.76.3(@types/react@18.3.3)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) + react-native: 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) optionalDependencies: '@types/react': 18.3.3 '@rtsao/scc@1.1.0': {} - '@rushstack/eslint-patch@1.10.4': {} + '@rushstack/eslint-patch@1.10.5': {} '@segment/loosely-validate-event@2.0.0': dependencies: @@ -13638,7 +13801,7 @@ snapshots: '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/semver': 7.5.8 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 @@ -13675,7 +13838,7 @@ snapshots: '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/semver': 7.5.8 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 @@ -13712,7 +13875,7 @@ snapshots: '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/semver': 7.5.8 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 @@ -13752,7 +13915,7 @@ snapshots: '@storybook/core-webpack@8.4.7(storybook@8.4.7(prettier@3.4.2))': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 storybook: 8.4.7(prettier@3.4.2) ts-dedent: 2.2.0 @@ -13779,7 +13942,7 @@ snapshots: '@storybook/csf-plugin@8.4.7(storybook@8.4.7(prettier@3.4.2))': dependencies: storybook: 8.4.7(prettier@3.4.2) - unplugin: 1.16.0 + unplugin: 1.16.1 '@storybook/csf@0.0.1': dependencies: @@ -13815,7 +13978,7 @@ snapshots: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.93.0) - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/semver': 7.5.8 find-up: 5.0.0 magic-string: 0.30.17 @@ -13842,7 +14005,7 @@ snapshots: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/semver': 7.5.8 find-up: 5.0.0 magic-string: 0.30.17 @@ -13869,7 +14032,7 @@ snapshots: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.93.0) - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/semver': 7.5.8 find-up: 5.0.0 magic-string: 0.30.17 @@ -13934,7 +14097,7 @@ snapshots: '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) - '@types/node': 22.10.2 + '@types/node': 22.10.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 8.4.7(prettier@3.4.2) @@ -13954,7 +14117,7 @@ snapshots: '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) - '@types/node': 22.10.2 + '@types/node': 22.10.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 8.4.7(prettier@3.4.2) @@ -13974,7 +14137,7 @@ snapshots: '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) - '@types/node': 22.10.2 + '@types/node': 22.10.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 8.4.7(prettier@3.4.2) @@ -14081,13 +14244,13 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@tailwindcss/typography@0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))': + '@tailwindcss/typography@0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)))': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + tailwindcss: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) '@tanstack/query-core@5.45.0': {} @@ -14113,7 +14276,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))': + '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)))': dependencies: '@adobe/css-tools': 4.4.1 '@babel/runtime': 7.26.0 @@ -14126,7 +14289,7 @@ snapshots: optionalDependencies: '@jest/globals': 29.7.0 '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest: 29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))': dependencies: @@ -14215,20 +14378,20 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.0.2 - '@types/node': 22.10.2 + '@types/express-serve-static-core': 5.0.4 + '@types/node': 22.10.5 '@types/connect@3.4.38': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/cookie@0.6.0': {} @@ -14248,14 +14411,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express-serve-static-core@5.0.2': + '@types/express-serve-static-core@5.0.4': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -14269,7 +14432,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.7.2 '@types/html-minifier-terser@5.1.2': {} @@ -14279,7 +14442,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/humps@2.0.6': {} @@ -14302,7 +14465,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.7.2 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -14320,11 +14483,11 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/node@12.20.55': {} - '@types/node@22.10.2': + '@types/node@22.10.5': dependencies: undici-types: 6.20.0 @@ -14377,7 +14540,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/serve-index@1.9.4': dependencies: @@ -14386,7 +14549,7 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/send': 0.17.4 '@types/sinonjs__fake-timers@8.1.1': {} @@ -14395,7 +14558,7 @@ snapshots: '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/source-list-map@0.1.6': {} @@ -14415,13 +14578,13 @@ snapshots: '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/source-list-map': 0.1.6 source-map: 0.7.4 '@types/webpack@4.41.40': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -14430,7 +14593,7 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 '@types/yargs-parser@21.0.3': {} @@ -14440,7 +14603,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 optional: true '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.4.5))(eslint@8.57.1)(typescript@5.4.5)': @@ -14531,7 +14694,7 @@ snapshots: '@urql/core@5.1.0(graphql@16.8.1)': dependencies: - '@0no-co/graphql.web': 1.0.12(graphql@16.8.1) + '@0no-co/graphql.web': 1.0.13(graphql@16.8.1) wonka: 6.3.4 transitivePeerDependencies: - graphql @@ -14738,7 +14901,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.3 + fast-uri: 3.0.5 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -14814,9 +14977,9 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-string: 1.1.1 array-union@2.1.0: {} @@ -14825,7 +14988,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -14834,7 +14997,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -14843,21 +15006,21 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-shim-unscopables: 1.0.2 array.prototype.reduce@1.0.7: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-array-method-boxes-properly: 1.0.0 es-errors: 1.3.0 es-object-atoms: 1.0.0 @@ -14867,7 +15030,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 @@ -14876,9 +15039,9 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-array-buffer: 3.0.5 asap@2.0.6: {} @@ -14915,8 +15078,8 @@ snapshots: autoprefixer@10.4.19(postcss@8.4.38): dependencies: - browserslist: 4.24.3 - caniuse-lite: 1.0.30001690 + browserslist: 4.24.4 + caniuse-lite: 1.0.30001692 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -15022,7 +15185,7 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 + core-js-compat: 3.40.0 transitivePeerDependencies: - supports-color @@ -15074,13 +15237,13 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) - babel-preset-expo@12.0.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)): + babel-preset-expo@12.0.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)): dependencies: '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/preset-react': 7.25.9(@babel/core@7.26.0) + '@babel/preset-react': 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@react-native/babel-preset': 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) babel-plugin-react-native-web: 0.19.13 @@ -15185,12 +15348,12 @@ snapshots: browser-assert@1.2.1: {} - browserslist@4.24.3: + browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001690 - electron-to-chromium: 1.5.76 + caniuse-lite: 1.0.30001692 + electron-to-chromium: 1.5.79 node-releases: 2.0.19 - update-browserslist-db: 1.1.1(browserslist@4.24.3) + update-browserslist-db: 1.1.2(browserslist@4.24.4) bs-logger@0.2.6: dependencies: @@ -15254,13 +15417,13 @@ snapshots: dependencies: call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 call-bound@1.0.3: dependencies: call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 caller-callsite@2.0.0: dependencies: @@ -15285,7 +15448,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001690: {} + caniuse-lite@1.0.30001692: {} case-sensitive-paths-webpack-plugin@2.4.0: {} @@ -15341,11 +15504,11 @@ snapshots: chownr@2.0.0: {} - chromatic@11.20.2: {} + chromatic@11.22.2: {} chrome-launcher@0.15.2: dependencies: - '@types/node': 22.10.2 + '@types/node': 22.7.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -15356,7 +15519,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 22.10.2 + '@types/node': 22.7.2 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -15544,9 +15707,9 @@ snapshots: cookie@0.7.2: {} - core-js-compat@3.39.0: + core-js-compat@3.40.0: dependencies: - browserslist: 4.24.3 + browserslist: 4.24.4 core-util-is@1.0.2: {} @@ -15584,13 +15747,13 @@ snapshots: optionalDependencies: typescript: 5.4.5 - create-jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + create-jest@29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -15642,12 +15805,12 @@ snapshots: css-loader@6.11.0(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) + postcss-modules-scope: 3.2.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -15655,12 +15818,12 @@ snapshots: css-loader@6.11.0(webpack@5.93.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) + postcss-modules-scope: 3.2.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -15668,12 +15831,12 @@ snapshots: css-loader@7.1.2(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) + postcss-modules-scope: 3.2.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -15681,12 +15844,12 @@ snapshots: css-loader@7.1.2(webpack@5.93.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) + postcss-modules-scope: 3.2.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -15974,7 +16137,7 @@ snapshots: domelementtype: 2.3.0 domhandler: 4.3.1 - domutils@3.2.1: + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -16013,7 +16176,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.76: {} + electron-to-chromium@1.5.79: {} emittery@0.13.1: {} @@ -16069,7 +16232,7 @@ snapshots: dependencies: stackframe: 1.3.4 - es-abstract@1.23.8: + es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -16082,10 +16245,11 @@ snapshots: es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 + es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 gopd: 1.2.0 @@ -16107,10 +16271,11 @@ snapshots: object-keys: 1.1.1 object.assign: 4.1.7 own-keys: 1.0.1 - regexp.prototype.flags: 1.5.3 + regexp.prototype.flags: 1.5.4 safe-array-concat: 1.1.3 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 + set-proto: 1.0.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 @@ -16132,18 +16297,18 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 + es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 - iterator.prototype: 1.1.4 + iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 es-module-lexer@1.6.0: {} @@ -16152,9 +16317,10 @@ snapshots: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: + es-set-tostringtag@2.1.0: dependencies: - get-intrinsic: 1.2.6 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -16252,7 +16418,7 @@ snapshots: eslint-config-next@13.5.8(eslint@8.57.1)(typescript@5.4.5): dependencies: '@next/eslint-plugin-next': 13.5.8 - '@rushstack/eslint-patch': 1.10.4 + '@rushstack/eslint-patch': 1.10.5 '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.4.5) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 @@ -16286,7 +16452,7 @@ snapshots: debug: 4.4.0(supports-color@8.1.1) enhanced-resolve: 5.18.0 eslint: 8.57.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 get-tsconfig: 4.8.1 is-bun-module: 1.3.0 is-glob: 4.0.3 @@ -16547,42 +16713,42 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - expo-asset@11.0.1(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1): + expo-asset@11.0.1(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1): dependencies: '@expo/image-utils': 0.6.3 - expo: 52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) - expo-constants: 17.0.3(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)) + expo: 52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + expo-constants: 17.0.3(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)) invariant: 2.2.4 md5-file: 3.2.3 react: 18.3.1 - react-native: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) + react-native: 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) transitivePeerDependencies: - supports-color - expo-constants@17.0.3(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)): + expo-constants@17.0.3(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)): dependencies: - '@expo/config': 10.0.6 + '@expo/config': 10.0.7 '@expo/env': 0.4.0 - expo: 52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) - react-native: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) + expo: 52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + react-native: 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) transitivePeerDependencies: - supports-color - expo-file-system@18.0.6(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)): + expo-file-system@18.0.6(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)): dependencies: - expo: 52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) - react-native: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) + expo: 52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + react-native: 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) web-streams-polyfill: 3.3.3 - expo-font@13.0.2(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1): + expo-font@13.0.2(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: - expo: 52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + expo: 52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) fontfaceobserver: 2.3.0 react: 18.3.1 - expo-keep-awake@14.0.1(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1): + expo-keep-awake@14.0.1(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: - expo: 52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + expo: 52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) react: 18.3.1 expo-modules-autolinking@2.0.4: @@ -16590,7 +16756,7 @@ snapshots: '@expo/spawn-async': 1.7.2 chalk: 4.1.2 commander: 7.2.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 find-up: 5.0.0 fs-extra: 9.1.0 require-from-string: 2.0.2 @@ -16600,30 +16766,30 @@ snapshots: dependencies: invariant: 2.2.4 - expo-secure-store@13.0.2(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)): + expo-secure-store@14.0.0(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)): dependencies: - expo: 52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + expo: 52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) - expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1): + expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.0 - '@expo/cli': 0.22.7(graphql@16.8.1) - '@expo/config': 10.0.6 - '@expo/config-plugins': 9.0.12 + '@expo/cli': 0.22.8(graphql@16.8.1) + '@expo/config': 10.0.7 + '@expo/config-plugins': 9.0.13 '@expo/fingerprint': 0.11.6 '@expo/metro-config': 0.19.8 '@expo/vector-icons': 14.0.4 - babel-preset-expo: 12.0.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) - expo-asset: 11.0.1(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) - expo-constants: 17.0.3(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)) - expo-file-system: 18.0.6(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)) - expo-font: 13.0.2(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1) - expo-keep-awake: 14.0.1(expo@52.0.23(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1) + babel-preset-expo: 12.0.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + expo-asset: 11.0.1(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + expo-constants: 17.0.3(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)) + expo-file-system: 18.0.6(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1)) + expo-font: 13.0.2(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1) + expo-keep-awake: 14.0.1(expo@52.0.24(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(graphql@16.8.1)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1) expo-modules-autolinking: 2.0.4 expo-modules-core: 2.1.2 fbemitter: 3.0.0 react: 18.3.1 - react-native: 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) + react-native: 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1) web-streams-polyfill: 3.3.3 whatwg-url-without-unicode: 8.0.0-3 transitivePeerDependencies: @@ -16699,7 +16865,7 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -16713,7 +16879,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.0.3: {} + fast-uri@3.0.5: {} fastest-levenshtein@1.0.16: {} @@ -16847,7 +17013,7 @@ snapshots: flow-enums-runtime@0.0.6: {} - flow-parser@0.257.1: {} + flow-parser@0.258.1: {} follow-redirects@1.15.9: {} @@ -16914,10 +17080,10 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.16.4(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 11.14.3 - motion-utils: 11.14.3 + motion-dom: 11.16.4 + motion-utils: 11.16.0 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.3.1 @@ -17001,14 +17167,14 @@ snapshots: transitivePeerDependencies: - encoding - get-intrinsic@1.2.6: + get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 function-bind: 1.1.2 + get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 @@ -17020,6 +17186,11 @@ snapshots: get-port@4.2.0: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.0.0 + get-stream@4.1.0: dependencies: pump: 3.0.2 @@ -17034,7 +17205,7 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 get-tsconfig@4.8.1: dependencies: @@ -17106,7 +17277,7 @@ snapshots: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -17283,7 +17454,7 @@ snapshots: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.2.1 + domutils: 3.2.2 entities: 4.5.0 http-deceiver@1.2.7: {} @@ -17368,9 +17539,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.49): + icss-utils@5.1.0(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 ieee754@1.2.1: {} @@ -17444,16 +17615,19 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-arrayish@0.2.1: {} is-arrayish@0.3.2: optional: true - is-async-function@2.0.0: + is-async-function@2.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-bigint@1.1.0: dependencies: @@ -17485,7 +17659,7 @@ snapshots: is-data-view@1.0.2: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-typed-array: 1.1.15 is-date-object@1.1.0: @@ -17511,9 +17685,12 @@ snapshots: is-generator-fn@2.1.0: {} - is-generator-function@1.0.10: + is-generator-function@1.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -17606,7 +17783,7 @@ snapshots: is-weakset@2.0.4: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 is-windows@1.0.2: {} @@ -17675,13 +17852,13 @@ snapshots: iterall@1.3.0: {} - iterator.prototype@1.1.4: + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 has-symbols: 1.1.0 - reflect.getprototypeof: 1.0.9 set-function-name: 2.0.2 jackspeak@3.4.3: @@ -17704,7 +17881,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -17724,16 +17901,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + jest-cli@29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + create-jest: 29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -17762,7 +17939,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -17787,13 +17964,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.10.2 - ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + '@types/node': 22.10.5 + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -17818,8 +17995,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.10.2 - ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) + '@types/node': 22.7.2 + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -17880,7 +18057,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -17894,7 +18071,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -17904,7 +18081,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.10.2 + '@types/node': 22.7.2 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -17943,7 +18120,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -17978,7 +18155,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -18006,7 +18183,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -18052,7 +18229,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -18071,7 +18248,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -18080,23 +18257,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.10.2 + '@types/node': 22.10.5 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + jest@29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-cli: 29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -18159,7 +18336,7 @@ snapshots: '@babel/register': 7.25.9(@babel/core@7.26.0) babel-core: 7.0.0-bridge.0(@babel/core@7.26.0) chalk: 4.1.2 - flow-parser: 0.257.1 + flow-parser: 0.258.1 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -18297,61 +18474,61 @@ snapshots: lightningcss-darwin-arm64@1.27.0: optional: true - lightningcss-darwin-arm64@1.28.2: + lightningcss-darwin-arm64@1.29.1: optional: true lightningcss-darwin-x64@1.27.0: optional: true - lightningcss-darwin-x64@1.28.2: + lightningcss-darwin-x64@1.29.1: optional: true lightningcss-freebsd-x64@1.27.0: optional: true - lightningcss-freebsd-x64@1.28.2: + lightningcss-freebsd-x64@1.29.1: optional: true lightningcss-linux-arm-gnueabihf@1.27.0: optional: true - lightningcss-linux-arm-gnueabihf@1.28.2: + lightningcss-linux-arm-gnueabihf@1.29.1: optional: true lightningcss-linux-arm64-gnu@1.27.0: optional: true - lightningcss-linux-arm64-gnu@1.28.2: + lightningcss-linux-arm64-gnu@1.29.1: optional: true lightningcss-linux-arm64-musl@1.27.0: optional: true - lightningcss-linux-arm64-musl@1.28.2: + lightningcss-linux-arm64-musl@1.29.1: optional: true lightningcss-linux-x64-gnu@1.27.0: optional: true - lightningcss-linux-x64-gnu@1.28.2: + lightningcss-linux-x64-gnu@1.29.1: optional: true lightningcss-linux-x64-musl@1.27.0: optional: true - lightningcss-linux-x64-musl@1.28.2: + lightningcss-linux-x64-musl@1.29.1: optional: true lightningcss-win32-arm64-msvc@1.27.0: optional: true - lightningcss-win32-arm64-msvc@1.28.2: + lightningcss-win32-arm64-msvc@1.29.1: optional: true lightningcss-win32-x64-msvc@1.27.0: optional: true - lightningcss-win32-x64-msvc@1.28.2: + lightningcss-win32-x64-msvc@1.29.1: optional: true lightningcss@1.27.0: @@ -18369,20 +18546,20 @@ snapshots: lightningcss-win32-arm64-msvc: 1.27.0 lightningcss-win32-x64-msvc: 1.27.0 - lightningcss@1.28.2: + lightningcss@1.29.1: dependencies: detect-libc: 1.0.3 optionalDependencies: - lightningcss-darwin-arm64: 1.28.2 - lightningcss-darwin-x64: 1.28.2 - lightningcss-freebsd-x64: 1.28.2 - lightningcss-linux-arm-gnueabihf: 1.28.2 - lightningcss-linux-arm64-gnu: 1.28.2 - lightningcss-linux-arm64-musl: 1.28.2 - lightningcss-linux-x64-gnu: 1.28.2 - lightningcss-linux-x64-musl: 1.28.2 - lightningcss-win32-arm64-msvc: 1.28.2 - lightningcss-win32-x64-msvc: 1.28.2 + lightningcss-darwin-arm64: 1.29.1 + lightningcss-darwin-x64: 1.29.1 + lightningcss-freebsd-x64: 1.29.1 + lightningcss-linux-arm-gnueabihf: 1.29.1 + lightningcss-linux-arm64-gnu: 1.29.1 + lightningcss-linux-arm64-musl: 1.29.1 + lightningcss-linux-x64-gnu: 1.29.1 + lightningcss-linux-x64-musl: 1.29.1 + lightningcss-win32-arm64-msvc: 1.29.1 + lightningcss-win32-x64-msvc: 1.29.1 lilconfig@2.1.0: {} @@ -18579,7 +18756,7 @@ snapshots: dependencies: fs-monkey: 1.0.6 - memfs@4.15.1: + memfs@4.15.3: dependencies: '@jsonjoy.com/json-pack': 1.1.1(tslib@2.8.1) '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) @@ -18850,9 +19027,11 @@ snapshots: mkdirp@1.0.4: {} - motion-dom@11.14.3: {} + motion-dom@11.16.4: + dependencies: + motion-utils: 11.16.0 - motion-utils@11.14.3: {} + motion-utils@11.16.0: {} mri@1.2.0: {} @@ -18878,18 +19057,18 @@ snapshots: optionalDependencies: msgpackr-extract: 3.0.3 - msw-storybook-addon@2.0.4(msw@2.6.6(@types/node@22.10.2)(typescript@5.4.5)): + msw-storybook-addon@2.0.4(msw@2.6.6(@types/node@22.10.5)(typescript@5.4.5)): dependencies: is-node-process: 1.2.0 - msw: 2.6.6(@types/node@22.10.2)(typescript@5.4.5) + msw: 2.6.6(@types/node@22.10.5)(typescript@5.4.5) - msw@2.6.6(@types/node@22.10.2)(typescript@5.4.5): + msw@2.6.6(@types/node@22.10.5)(typescript@5.4.5): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.1(@types/node@22.10.2) - '@mswjs/interceptors': 0.37.3 + '@inquirer/confirm': 5.1.1(@types/node@22.10.5) + '@mswjs/interceptors': 0.37.5 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -18901,7 +19080,7 @@ snapshots: outvariant: 1.4.3 path-to-regexp: 6.3.0 strict-event-emitter: 0.5.1 - type-fest: 4.31.0 + type-fest: 4.32.0 yargs: 17.7.2 optionalDependencies: typescript: 5.4.5 @@ -18940,7 +19119,7 @@ snapshots: '@next/env': 14.3.0-canary.24 '@swc/helpers': 0.5.10 busboy: 1.6.0 - caniuse-lite: 1.0.30001690 + caniuse-lite: 1.0.30001692 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -19063,7 +19242,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-object-atoms: 1.0.0 object.getownpropertydescriptors@2.1.8: @@ -19071,7 +19250,7 @@ snapshots: array.prototype.reduce: 1.0.7 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-object-atoms: 1.0.0 gopd: 1.2.0 safe-array-concat: 1.1.3 @@ -19080,7 +19259,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 object.values@1.2.1: dependencies: @@ -19167,7 +19346,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -19373,25 +19552,25 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.49): + postcss-import@15.1.0(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.4.49): + postcss-js@4.0.1(postcss@8.4.38): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.49 + postcss: 8.4.38 - postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)): dependencies: lilconfig: 3.1.3 - yaml: 2.6.1 + yaml: 2.7.0 optionalDependencies: - postcss: 8.4.49 - ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + postcss: 8.4.38 + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5) postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: @@ -19415,30 +19594,30 @@ snapshots: transitivePeerDependencies: - typescript - postcss-modules-extract-imports@3.1.0(postcss@8.4.49): + postcss-modules-extract-imports@3.1.0(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 - postcss-modules-local-by-default@4.2.0(postcss@8.4.49): + postcss-modules-local-by-default@4.2.0(postcss@8.4.38): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.4.49): + postcss-modules-scope@3.2.1(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 postcss-selector-parser: 7.0.0 - postcss-modules-values@4.0.0(postcss@8.4.49): + postcss-modules-values@4.0.0(postcss@8.4.38): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 - postcss-nested@6.2.0(postcss@8.4.49): + postcss-nested@6.2.0(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 postcss-selector-parser: 6.1.2 postcss-selector-parser@6.0.10: @@ -19683,16 +19862,16 @@ snapshots: lodash.throttle: 4.1.1 react: 18.3.1 - react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1): + react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native/assets-registry': 0.76.5 - '@react-native/codegen': 0.76.5(@babel/preset-env@7.26.0(@babel/core@7.26.0)) - '@react-native/community-cli-plugin': 0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) - '@react-native/gradle-plugin': 0.76.5 - '@react-native/js-polyfills': 0.76.5 - '@react-native/normalize-colors': 0.76.5 - '@react-native/virtualized-lists': 0.76.5(@types/react@18.3.3)(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + '@react-native/assets-registry': 0.76.3 + '@react-native/codegen': 0.76.3(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/community-cli-plugin': 0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/gradle-plugin': 0.76.3 + '@react-native/js-polyfills': 0.76.3 + '@react-native/normalize-colors': 0.76.3 + '@react-native/virtualized-lists': 0.76.3(@types/react@18.3.3)(react-native@0.76.3(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -19823,15 +20002,15 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - reflect.getprototypeof@1.0.9: + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - dunder-proto: 1.0.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.6 - gopd: 1.2.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 which-builtin-type: 1.2.1 regenerate-unicode-properties@10.2.0: @@ -19848,11 +20027,13 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 - regexp.prototype.flags@1.5.3: + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 set-function-name: 2.0.2 regexpu-core@6.2.0: @@ -20014,7 +20195,7 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 has-symbols: 1.1.0 isarray: 2.0.5 @@ -20145,7 +20326,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -20156,6 +20337,12 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + setimmediate@1.0.5: {} setprototypeof@1.1.0: {} @@ -20216,14 +20403,14 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-map: 1.0.1 @@ -20416,28 +20603,28 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.3 + regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 side-channel: 1.1.0 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 string.prototype.trim@1.2.10: dependencies: @@ -20445,7 +20632,7 @@ snapshots: call-bound: 1.0.3 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.8 + es-abstract: 1.23.9 es-object-atoms: 1.0.0 has-property-descriptors: 1.0.2 @@ -20571,14 +20758,14 @@ snapshots: symbol-tree@3.2.4: {} - tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.2 + fast-glob: 3.3.3 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.7 @@ -20587,11 +20774,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.4.49 - postcss-import: 15.1.0(postcss@8.4.49) - postcss-js: 4.0.1(postcss@8.4.49) - postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) - postcss-nested: 6.2.0(postcss@8.4.49) + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) + postcss-nested: 6.2.0(postcss@8.4.38) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 @@ -20721,11 +20908,11 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.70: {} + tldts-core@6.1.71: {} - tldts@6.1.70: + tldts@6.1.71: dependencies: - tldts-core: 6.1.70 + tldts-core: 6.1.71 tmp@0.0.33: dependencies: @@ -20750,9 +20937,9 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 - tough-cookie@5.0.0: + tough-cookie@5.1.0: dependencies: - tldts: 6.1.70 + tldts: 6.1.71 tr46@0.0.3: {} @@ -20770,11 +20957,11 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))(typescript@5.4.5): + ts-jest@29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest: 29.7.0(@types/node@22.10.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -20807,14 +20994,14 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5): + ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.2 + '@types/node': 22.10.5 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -20922,7 +21109,7 @@ snapshots: type-fest@2.19.0: {} - type-fest@4.31.0: {} + type-fest@4.32.0: {} type-is@1.6.18: dependencies: @@ -20951,7 +21138,7 @@ snapshots: gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.9 + reflect.getprototypeof: 1.0.10 typed-array-length@1.0.7: dependencies: @@ -20960,7 +21147,7 @@ snapshots: gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.9 + reflect.getprototypeof: 1.0.10 typescript@5.4.5: {} @@ -21012,16 +21199,16 @@ snapshots: unpipe@1.0.0: {} - unplugin@1.16.0: + unplugin@1.16.1: dependencies: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 untildify@4.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.3): + update-browserslist-db@1.1.2(browserslist@4.24.4): dependencies: - browserslist: 4.24.3 + browserslist: 4.24.4 escalade: 3.2.0 picocolors: 1.1.1 @@ -21058,7 +21245,7 @@ snapshots: dependencies: inherits: 2.0.4 is-arguments: 1.2.0 - is-generator-function: 1.0.10 + is-generator-function: 1.1.0 is-typed-array: 1.1.15 which-typed-array: 1.1.18 @@ -21176,7 +21363,7 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.93.0): dependencies: colorette: 2.0.20 - memfs: 4.15.1 + memfs: 4.15.3 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -21291,7 +21478,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 acorn-import-attributes: 1.9.5(acorn@8.14.0) - browserslist: 4.24.3 + browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 es-module-lexer: 1.6.0 @@ -21322,7 +21509,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 acorn-import-attributes: 1.9.5(acorn@8.14.0) - browserslist: 4.24.3 + browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 es-module-lexer: 1.6.0 @@ -21355,7 +21542,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 acorn-import-attributes: 1.9.5(acorn@8.14.0) - browserslist: 4.24.3 + browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 es-module-lexer: 1.6.0 @@ -21424,10 +21611,10 @@ snapshots: call-bound: 1.0.3 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.0.0 + is-async-function: 2.1.0 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 + is-generator-function: 1.1.0 is-regex: 1.2.1 is-weakref: 1.1.0 isarray: 2.0.5 @@ -21524,7 +21711,7 @@ snapshots: yaml@2.3.1: {} - yaml@2.6.1: {} + yaml@2.7.0: {} yargs-parser@21.1.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 479e70f5..d5767433 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -127,3 +127,7 @@ catalogs: prettier-plugin-tailwindcss: ^0.6.3 prettier: ^3.3.3 + react-native-core: + expo-constants: ~17.0.3 + expo-secure-store: ~14.0.0 + react-native: 0.76.3 \ No newline at end of file