From 1fd99655b6a51582a884c49b98b8379047a60365 Mon Sep 17 00:00:00 2001 From: Youssouf EL Azizi Date: Wed, 21 Jan 2026 17:01:43 +0100 Subject: [PATCH 1/3] chore: migrate from Prettier to @antfu/eslint-config - Remove Prettier and related dependencies - Install @antfu/eslint-config with React and TypeScript support - Update ESLint config to use flat config with antfu preset - Configure stylistic rules (indent: 2, quotes: single, semi: true) - Update VS Code settings to use ESLint for formatting - Update lint-staged to use ESLint only - Add rule to prefer type over interface - Auto-fix formatting across codebase - Fix TypeScript type errors from interface to type conversions - Remove obsolete eslint-disable comments and ts-ignore directives - Adjust rules for React Native development patterns Co-Authored-By: Claude Sonnet 4.5 --- .github/actions/eas-build/action.yml | 12 +- .../actions/setup-jdk-generate-apk/action.yml | 6 +- .../setup-node-pnpm-install/action.yml | 4 +- .github/workflows/e2e-android-eas-build.yml | 4 +- .github/workflows/e2e-android.yml | 2 +- .github/workflows/eas-build-qa.yml | 1 - .github/workflows/expo-doctor.yml | 10 +- .github/workflows/lint-ts.yml | 2 +- .github/workflows/new-app-version.yml | 2 +- .github/workflows/stale.yml | 10 +- .github/workflows/test.yml | 2 +- .maestro/app/create-post.yaml | 24 +- .maestro/app/tabs.yaml | 20 +- .maestro/auth/login-with-validation.yaml | 32 +- .maestro/auth/onboarding.yaml | 4 +- .maestro/config.yaml | 8 +- .maestro/utils/hide-keyboard-android.yaml | 2 +- .maestro/utils/hide-keyboard-ios.yaml | 2 +- .maestro/utils/hide-keyboard.yaml | 2 +- .maestro/utils/login.yaml | 16 +- .maestro/utils/onboarding-and-login.yaml | 4 +- .maestro/utils/onboarding.yaml | 4 +- .prettierrc.js | 8 - .vscode/settings.json | 68 +- app.config.ts | 1 - env.js | 21 +- eslint.config.mjs | 169 +- lint-staged.config.js | 12 +- migration/00-overview.md | 248 ++ migration/01-eslint-migration.md | 497 +++ migration/02-expo-sdk-54-upgrade.md | 421 ++ migration/03-environment-variables.md | 582 +++ migration/04-dependency-updates.md | 554 +++ migration/05-uniwind-migration.md | 674 +++ migration/06-testing-updates.md | 657 +++ migration/07-verification.md | 764 ++++ migration/08-summary.md | 577 +++ migration/09-rollback-plan.md | 686 +++ migration/README.md | 280 ++ package.json | 36 +- pnpm-lock.yaml | 3760 +++++++++++------ prompts/image-to-components.md | 10 +- prompts/svg-icon.md | 3 +- prompts/write-unit-tests.md | 3 +- scripts/i18next-syntax-validation.js | 14 +- src/api/common/client.tsx | 1 + src/api/common/utils.tsx | 14 +- src/api/posts/use-add-post.ts | 8 +- src/api/posts/use-post.ts | 6 +- src/api/posts/use-posts.ts | 6 +- src/app/(app)/_layout.tsx | 8 +- src/app/(app)/index.tsx | 6 +- src/app/(app)/settings.tsx | 5 +- src/app/_layout.tsx | 10 +- src/app/feed/[id].tsx | 6 +- src/app/feed/add-post.tsx | 4 +- src/app/login.tsx | 4 +- src/app/onboarding.tsx | 6 +- src/components/buttons.tsx | 6 +- src/components/card.tsx | 8 +- src/components/colors.tsx | 20 +- src/components/cover.tsx | 428 +- src/components/inputs.tsx | 25 +- src/components/login-form.test.tsx | 12 +- src/components/login-form.tsx | 8 +- src/components/settings/item.tsx | 8 +- src/components/settings/items-container.tsx | 16 +- src/components/settings/language-item.tsx | 21 +- src/components/settings/theme-item.tsx | 18 +- src/components/title.tsx | 4 +- src/components/typography.tsx | 6 +- src/components/ui/button.test.tsx | 38 +- src/components/ui/button.tsx | 99 +- src/components/ui/checkbox.test.tsx | 72 +- src/components/ui/checkbox.tsx | 94 +- src/components/ui/focus-aware-status-bar.tsx | 21 +- src/components/ui/icons/arrow-right.tsx | 40 +- src/components/ui/icons/caret-down.tsx | 36 +- src/components/ui/icons/feed.tsx | 20 +- src/components/ui/icons/github.tsx | 42 +- src/components/ui/icons/home.tsx | 2 +- src/components/ui/icons/language.tsx | 60 +- src/components/ui/icons/rate.tsx | 40 +- src/components/ui/icons/settings.tsx | 6 +- src/components/ui/icons/share.tsx | 24 +- src/components/ui/icons/style.tsx | 40 +- src/components/ui/icons/support.tsx | 42 +- src/components/ui/icons/website.tsx | 44 +- src/components/ui/image.tsx | 10 +- src/components/ui/index.tsx | 2 +- src/components/ui/input.test.tsx | 16 +- src/components/ui/input.tsx | 31 +- src/components/ui/list.tsx | 87 +- .../ui/modal-keyboard-aware-scroll-view.tsx | 19 +- src/components/ui/modal.tsx | 104 +- src/components/ui/progress-bar.tsx | 55 +- src/components/ui/select.test.tsx | 18 +- src/components/ui/select.tsx | 156 +- src/components/ui/text.tsx | 24 +- src/components/ui/utils.tsx | 12 +- src/lib/auth/index.tsx | 14 +- src/lib/env.js | 2 +- src/lib/hooks/use-is-first-time.tsx | 4 +- src/lib/hooks/use-selected-theme.tsx | 12 +- src/lib/i18n/index.tsx | 1 + src/lib/i18n/react-i18next.d.ts | 4 +- src/lib/i18n/utils.tsx | 30 +- src/lib/test-utils.tsx | 26 +- src/lib/use-theme-config.tsx | 3 +- src/lib/utils.ts | 16 +- tsconfig.json | 20 +- 111 files changed, 9602 insertions(+), 2666 deletions(-) delete mode 100644 .prettierrc.js create mode 100644 migration/00-overview.md create mode 100644 migration/01-eslint-migration.md create mode 100644 migration/02-expo-sdk-54-upgrade.md create mode 100644 migration/03-environment-variables.md create mode 100644 migration/04-dependency-updates.md create mode 100644 migration/05-uniwind-migration.md create mode 100644 migration/06-testing-updates.md create mode 100644 migration/07-verification.md create mode 100644 migration/08-summary.md create mode 100644 migration/09-rollback-plan.md create mode 100644 migration/README.md diff --git a/.github/actions/eas-build/action.yml b/.github/actions/eas-build/action.yml index 3a9be920d..2db6e4d15 100644 --- a/.github/actions/eas-build/action.yml +++ b/.github/actions/eas-build/action.yml @@ -31,8 +31,8 @@ inputs: APP_ENV: description: 'APP_ENV (one of): development, staging, production' required: true - default: 'staging' - AUTO_SUBMIT: ## TODO: we need to handle this too + default: staging + AUTO_SUBMIT: # # TODO: we need to handle this too description: 'AUTO_SUBMIT (one of): true, false' required: true default: 'false' @@ -41,20 +41,20 @@ inputs: required: true default: 'true' VERSION: - description: 'VERSION' + description: VERSION required: true - default: '0.0.0' + default: 0.0.0 IOS: description: 'run for IOS (one of): true, false' required: true default: 'false' EXPO_TOKEN: - description: 'EXPO_TOKEN' + description: EXPO_TOKEN required: true default: 'false' runs: - using: 'composite' + using: composite steps: - name: šŸ’Æ Check for EXPO_TOKEN run: | diff --git a/.github/actions/setup-jdk-generate-apk/action.yml b/.github/actions/setup-jdk-generate-apk/action.yml index 0aaa26d7c..88359012b 100644 --- a/.github/actions/setup-jdk-generate-apk/action.yml +++ b/.github/actions/setup-jdk-generate-apk/action.yml @@ -21,15 +21,15 @@ inputs: APP_ENV: description: 'APP_ENV (one of): development, staging, production' required: true - default: 'staging' + default: staging runs: - using: 'composite' + using: composite steps: - name: Set Up JDK uses: actions/setup-java@v3 with: - distribution: 'zulu' # See 'Supported distributions' for available options + distribution: zulu # See 'Supported distributions' for available options java-version: '17' - name: Setup Gradle uses: gradle/gradle-build-action@v2 diff --git a/.github/actions/setup-node-pnpm-install/action.yml b/.github/actions/setup-node-pnpm-install/action.yml index 7026bda74..cdcbbf8bc 100644 --- a/.github/actions/setup-node-pnpm-install/action.yml +++ b/.github/actions/setup-node-pnpm-install/action.yml @@ -14,7 +14,7 @@ name: 'Setup Node + PNPM + Install Dependencies' description: 'Setup Node + PNPM + Install Dependencies' runs: - using: 'composite' + using: composite steps: - uses: pnpm/action-setup@v4 with: @@ -22,7 +22,7 @@ runs: - uses: actions/setup-node@v4 with: node-version: 20 - cache: 'pnpm' + cache: pnpm - name: šŸ“¦ Install Project Dependencies run: pnpm install --frozen-lockfile diff --git a/.github/workflows/e2e-android-eas-build.yml b/.github/workflows/e2e-android-eas-build.yml index 645b8d986..c6f5ff0c7 100644 --- a/.github/workflows/e2e-android-eas-build.yml +++ b/.github/workflows/e2e-android-eas-build.yml @@ -17,7 +17,7 @@ on: inputs: apk-url: type: string - description: 'EAS APK URL' + description: EAS APK URL required: true default: '' @@ -49,7 +49,7 @@ jobs: fetch-depth: 0 - name: šŸ“¦ Install Maestro - run: npm run install-maestro ## We use npm because we don't need to install deps again + run: npm run install-maestro # # We use npm because we don't need to install deps again - name: Download Test APK uses: actions/download-artifact@v3 diff --git a/.github/workflows/e2e-android.yml b/.github/workflows/e2e-android.yml index 11a830eb5..faabd4585 100644 --- a/.github/workflows/e2e-android.yml +++ b/.github/workflows/e2e-android.yml @@ -57,7 +57,7 @@ jobs: fetch-depth: 0 - name: šŸ“¦ Install Maestro - run: npm run install-maestro ## We use npm because we don't need to install deps again + run: npm run install-maestro # # We use npm because we don't need to install deps again - name: Download Test APK uses: actions/download-artifact@v3 diff --git a/.github/workflows/eas-build-qa.yml b/.github/workflows/eas-build-qa.yml index 7cc4a853d..ff75402af 100644 --- a/.github/workflows/eas-build-qa.yml +++ b/.github/workflows/eas-build-qa.yml @@ -44,4 +44,3 @@ jobs: EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }} VERSION: ${{ github.event.release.tag_name }} IOS: false # TODO: set as true when IOS account is ready - diff --git a/.github/workflows/expo-doctor.yml b/.github/workflows/expo-doctor.yml index 6c7763ef3..5e090a043 100644 --- a/.github/workflows/expo-doctor.yml +++ b/.github/workflows/expo-doctor.yml @@ -16,17 +16,17 @@ on: - main - master paths: - - 'package.json' - - 'pnpm-lock.yaml' + - package.json + - pnpm-lock.yaml pull_request: paths: - - 'package.json' - - 'pnpm-lock.yaml' + - package.json + - pnpm-lock.yaml permissions: contents: read pull-requests: write - + jobs: doctor: name: Expo Doctor (expo) diff --git a/.github/workflows/lint-ts.yml b/.github/workflows/lint-ts.yml index d22b3d207..56d1b2abd 100644 --- a/.github/workflows/lint-ts.yml +++ b/.github/workflows/lint-ts.yml @@ -21,7 +21,7 @@ on: permissions: contents: read pull-requests: write - + jobs: lint: name: Lint TS (eslint, prettier) diff --git a/.github/workflows/new-app-version.yml b/.github/workflows/new-app-version.yml index 53b42694a..7c6ebf069 100644 --- a/.github/workflows/new-app-version.yml +++ b/.github/workflows/new-app-version.yml @@ -28,7 +28,7 @@ on: type: choice description: 'Release type (one of): patch, minor, major' required: true - default: 'patch' + default: patch options: - patch - minor diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 3fbbdea6d..4bcf53efc 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -7,7 +7,7 @@ on: permissions: contents: read pull-requests: write - + jobs: stale: runs-on: ubuntu-latest @@ -16,9 +16,9 @@ jobs: - uses: actions/stale@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days' - stale-pr-message: 'This PR is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days' - stale-issue-label: 'no-issue-activity' - stale-pr-label: 'no-pr-activity' + stale-issue-message: This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days + stale-pr-message: This PR is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days + stale-issue-label: no-issue-activity + stale-pr-label: no-pr-activity days-before-stale: 60 days-before-close: 14 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a97de28b4..8f5dc3c34 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,7 +40,7 @@ jobs: if: (success() || failure()) && github.event_name == 'pull_request' with: coverage-summary-path: ./coverage/coverage-summary.json - summary-title: 'šŸ’Æ Test Coverage' + summary-title: šŸ’Æ Test Coverage badge-title: Coverage create-new-comment: false junitxml-title: šŸ˜Ž Tests Results diff --git a/.maestro/app/create-post.yaml b/.maestro/app/create-post.yaml index 89772e95d..f371f511e 100644 --- a/.maestro/app/create-post.yaml +++ b/.maestro/app/create-post.yaml @@ -1,6 +1,6 @@ appId: ${APP_ID} env: - Title: 'Post title' + Title: Post title CONTENT: "It is a long established fact that a reader will be distracted by the\ \ readable content of a page when looking at its layout. The point of using Lorem\ @@ -9,21 +9,21 @@ env: --- - launchApp - runFlow: ../utils/onboarding-and-login.yaml -- assertVisible: 'Feed' -- assertVisible: 'Create' -- tapOn: 'Create' -- assertVisible: 'Add Post' +- assertVisible: Feed +- assertVisible: Create +- tapOn: Create +- assertVisible: Add Post - tapOn: - id: 'title' + id: title - inputText: ${Title} - tapOn: - id: 'body-input' -- inputText: 'short content' + id: body-input +- inputText: short content - tapOn: - id: 'add-post-button' -- assertVisible: 'String must contain at least 120 character(s)' + id: add-post-button +- assertVisible: String must contain at least 120 character(s) - inputText: ${CONTENT} - runFlow: ../utils/hide-keyboard.yaml - tapOn: - id: 'add-post-button' -- assertVisible: 'Post added successfully' + id: add-post-button +- assertVisible: Post added successfully diff --git a/.maestro/app/tabs.yaml b/.maestro/app/tabs.yaml index 741d92fed..eaffdd98e 100644 --- a/.maestro/app/tabs.yaml +++ b/.maestro/app/tabs.yaml @@ -1,19 +1,19 @@ appId: ${APP_ID} env: - Name: 'User' - EMAIL: 'user@test.com' - PASSWORD: 'password' + Name: User + EMAIL: user@test.com + PASSWORD: password --- - launchApp - runFlow: ../utils/onboarding-and-login.yaml -- assertVisible: 'Feed' +- assertVisible: Feed - assertVisible: - id: 'style-tab' + id: style-tab - tapOn: - id: 'style-tab' -- assertVisible: 'Typography' + id: style-tab +- assertVisible: Typography - tapOn: - id: 'settings-tab' -- assertVisible: 'Settings' + id: settings-tab +- assertVisible: Settings - scroll -- assertVisible: 'Logout' +- assertVisible: Logout diff --git a/.maestro/auth/login-with-validation.yaml b/.maestro/auth/login-with-validation.yaml index a669e39b7..5cb1fdb69 100644 --- a/.maestro/auth/login-with-validation.yaml +++ b/.maestro/auth/login-with-validation.yaml @@ -1,35 +1,35 @@ appId: ${APP_ID} env: - Name: 'User' - EMAIL: 'user@test.com' - PASSWORD: 'password' + Name: User + EMAIL: user@test.com + PASSWORD: password --- - launchApp - runFlow: when: - visible: 'Obytes Starter' + visible: Obytes Starter file: ../utils/onboarding.yaml -- assertVisible: 'Sign In' +- assertVisible: Sign In - assertVisible: - id: 'login-button' + id: login-button - tapOn: - id: 'login-button' -- assertVisible: 'Email is required' -- assertVisible: 'Password is required' + id: login-button +- assertVisible: Email is required +- assertVisible: Password is required - tapOn: - id: 'name' + id: name - inputText: ${Name} - runFlow: ../utils/hide-keyboard.yaml - tapOn: - id: 'email-input' -- inputText: 'email' -- assertVisible: 'Invalid email format' + id: email-input +- inputText: email +- assertVisible: Invalid email format - inputText: ${EMAIL} - runFlow: ../utils/hide-keyboard.yaml - tapOn: - id: 'password-input' + id: password-input - inputText: ${PASSWORD} - runFlow: ../utils/hide-keyboard.yaml - tapOn: - id: 'login-button' -- assertVisible: 'Feed' + id: login-button +- assertVisible: Feed diff --git a/.maestro/auth/onboarding.yaml b/.maestro/auth/onboarding.yaml index b52203dfd..d3adc8e7b 100644 --- a/.maestro/auth/onboarding.yaml +++ b/.maestro/auth/onboarding.yaml @@ -2,7 +2,7 @@ appId: ${APP_ID} --- - clearState - launchApp -- assertVisible: "Obytes Starter" +- assertVisible: Obytes Starter - assertVisible: "Let's Get Started " - tapOn: "Let's Get Started " -- assertVisible: "Sign In" \ No newline at end of file +- assertVisible: Sign In diff --git a/.maestro/config.yaml b/.maestro/config.yaml index 6961b7e01..01923b3d0 100644 --- a/.maestro/config.yaml +++ b/.maestro/config.yaml @@ -6,7 +6,7 @@ excludeTags: - util executionOrder: - continueOnFailure: false # default is true - flowsOrder: - - onboarding - - login-with-validation \ No newline at end of file + continueOnFailure: false # default is true + flowsOrder: + - onboarding + - login-with-validation diff --git a/.maestro/utils/hide-keyboard-android.yaml b/.maestro/utils/hide-keyboard-android.yaml index 07025331e..b92bc02dd 100644 --- a/.maestro/utils/hide-keyboard-android.yaml +++ b/.maestro/utils/hide-keyboard-android.yaml @@ -2,4 +2,4 @@ appId: ${APP_ID} tags: - util --- -- hideKeyboard \ No newline at end of file +- hideKeyboard diff --git a/.maestro/utils/hide-keyboard-ios.yaml b/.maestro/utils/hide-keyboard-ios.yaml index f22dc286f..bcb47c3ed 100644 --- a/.maestro/utils/hide-keyboard-ios.yaml +++ b/.maestro/utils/hide-keyboard-ios.yaml @@ -3,4 +3,4 @@ tags: - util --- - tapOn: - id: "Return" # Keyboard Return \ No newline at end of file + id: Return # Keyboard Return diff --git a/.maestro/utils/hide-keyboard.yaml b/.maestro/utils/hide-keyboard.yaml index dfd1cf9a2..ca3323107 100644 --- a/.maestro/utils/hide-keyboard.yaml +++ b/.maestro/utils/hide-keyboard.yaml @@ -9,4 +9,4 @@ tags: - runFlow: when: platform: Android - file: ./hide-keyboard-android.yaml \ No newline at end of file + file: ./hide-keyboard-android.yaml diff --git a/.maestro/utils/login.yaml b/.maestro/utils/login.yaml index 6e2b32046..c2f03a36f 100644 --- a/.maestro/utils/login.yaml +++ b/.maestro/utils/login.yaml @@ -1,22 +1,22 @@ appId: ${APP_ID} env: - Name: "User" - EMAIL: "user@test.com" - PASSWORD: "password" + Name: User + EMAIL: user@test.com + PASSWORD: password tags: - util --- - tapOn: - id: "name" + id: name - inputText: ${Name} - tapOn: - id: "email-input" + id: email-input - inputText: ${EMAIL} - runFlow: ../utils/hide-keyboard.yaml - tapOn: - id: "password-input" + id: password-input - inputText: ${PASSWORD} - runFlow: ../utils/hide-keyboard.yaml - tapOn: - id: "login-button" -- assertVisible: "Typography" + id: login-button +- assertVisible: Typography diff --git a/.maestro/utils/onboarding-and-login.yaml b/.maestro/utils/onboarding-and-login.yaml index 707c945c1..190ede9ad 100644 --- a/.maestro/utils/onboarding-and-login.yaml +++ b/.maestro/utils/onboarding-and-login.yaml @@ -4,9 +4,9 @@ tags: --- - runFlow: when: - visible: "Obytes Starter" + visible: Obytes Starter file: onboarding.yaml - runFlow: when: visible: Sign In - file: login.yaml \ No newline at end of file + file: login.yaml diff --git a/.maestro/utils/onboarding.yaml b/.maestro/utils/onboarding.yaml index bb1b8937e..5562d77f2 100644 --- a/.maestro/utils/onboarding.yaml +++ b/.maestro/utils/onboarding.yaml @@ -2,7 +2,7 @@ appId: ${APP_ID} tags: - util --- -- assertVisible: 'Obytes Starter' +- assertVisible: Obytes Starter - assertVisible: "Let's Get Started " - tapOn: "Let's Get Started " -- assertVisible: 'Sign In' +- assertVisible: Sign In diff --git a/.prettierrc.js b/.prettierrc.js deleted file mode 100644 index bfe0538fe..000000000 --- a/.prettierrc.js +++ /dev/null @@ -1,8 +0,0 @@ -/** @type {import('prettier').Config} */ -const config = { - singleQuote: true, - endOfLine: 'auto', - trailingComma: 'es5', -}; - -module.exports = config; diff --git a/.vscode/settings.json b/.vscode/settings.json index 5e248e347..e73ee853b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,26 +4,56 @@ "search.exclude": { "yarn.lock": true }, - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true, - "typescript.tsdk": "node_modules/typescript/lib", - "eslint.format.enable": true, - "[javascript][typescript][typescriptreact]": { - "editor.formatOnSave": true, - "editor.defaultFormatter": "dbaeumer.vscode-eslint", - "editor.codeActionsOnSave": [ - "source.addMissingImports", - "source.fixAll.eslint" - ] - }, - "[json][jsonc]": { - "editor.formatOnSave": true, - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[astro]": { - "editor.formatOnSave": true, - "editor.defaultFormatter": "astro-build.astro-vscode" + + // Disable Prettier completely + "prettier.enable": false, + "editor.formatOnSave": false, + + // Enable ESLint auto-fix on save + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" }, + + // Silence stylistic rules in IDE while still auto-fixing them + "eslint.rules.customizations": [ + { "rule": "style/*", "severity": "off", "fixable": true }, + { "rule": "format/*", "severity": "off", "fixable": true }, + { "rule": "*-indent", "severity": "off", "fixable": true }, + { "rule": "*-spacing", "severity": "off", "fixable": true }, + { "rule": "*-spaces", "severity": "off", "fixable": true }, + { "rule": "*-order", "severity": "off", "fixable": true }, + { "rule": "*-dangle", "severity": "off", "fixable": true }, + { "rule": "*-newline", "severity": "off", "fixable": true }, + { "rule": "*quotes", "severity": "off", "fixable": true }, + { "rule": "*semi", "severity": "off", "fixable": true } + ], + + // Enable ESLint for various file types + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml", + "toml", + "xml", + "gql", + "graphql", + "astro", + "css", + "less", + "scss", + "pcss", + "postcss" + ], + + "typescript.tsdk": "node_modules/typescript/lib", "cSpell.words": ["Flashlist", "Lato"], "i18n-ally.localesPaths": ["src/translations/"], "i18n-ally.keystyle": "nested", diff --git a/app.config.ts b/app.config.ts index ec1392ab4..8e7cc5714 100644 --- a/app.config.ts +++ b/app.config.ts @@ -1,4 +1,3 @@ -/* eslint-disable max-lines-per-function */ import type { ConfigContext, ExpoConfig } from '@expo/config'; import type { AppIconBadgeConfig } from 'app-icon-badge/types'; diff --git a/env.js b/env.js index e810ad8f7..71a4c4e38 100644 --- a/env.js +++ b/env.js @@ -1,3 +1,5 @@ +const path = require('node:path'); + /* eslint-env node */ /* * Env file to load and validate env variables @@ -14,11 +16,10 @@ * APP_ENV is passed as an inline variable while executing the command, for example: APP_ENV=staging pnpm build:android */ const z = require('zod'); - const packageJSON = require('./package.json'); -const path = require('path'); + const APP_ENV = process.env.APP_ENV ?? 'development'; -// eslint-disable-next-line no-undef + const envPath = path.resolve(__dirname, `.env.${APP_ENV}`); require('dotenv').config({ @@ -49,9 +50,9 @@ const SCHEME = 'obytesApp'; // app scheme * @returns {string} */ -const withEnvSuffix = (name) => { +function withEnvSuffix(name) { return APP_ENV === 'production' ? name : `${name}.${APP_ENV}`; -}; +} /** * 2nd part: Define your env variables schema @@ -97,8 +98,8 @@ const buildTime = z.object({ */ const _clientEnv = { APP_ENV, - NAME: NAME, - SCHEME: SCHEME, + NAME, + SCHEME, BUNDLE_ID: withEnvSuffix(BUNDLE_ID), PACKAGE: withEnvSuffix(PACKAGE), VERSION: packageJSON.version, @@ -124,7 +125,7 @@ const _buildTimeEnv = { * We use zod to validate our env variables based on the schema we defined above * If the validation fails we throw an error and log the error to the console with a detailed message about missed variables * If the validation passes we export the merged and parsed env variables to be used in the app.config.ts file as well as a ClientEnv object to be used in the client-side code - **/ + */ const _env = { ..._clientEnv, ..._buildTimeEnv, @@ -139,10 +140,10 @@ if (parsed.success === false) { parsed.error.flatten().fieldErrors, `\nāŒ Missing variables in .env.${APP_ENV} file, Make sure all required variables are defined in the .env.${APP_ENV} file.`, - `\nšŸ’” Tip: If you recently updated the .env.${APP_ENV} file and the error still persists, try restarting the server with the -c flag to clear the cache.` + `\nšŸ’” Tip: If you recently updated the .env.${APP_ENV} file and the error still persists, try restarting the server with the -c flag to clear the cache.`, ); throw new Error( - 'Invalid environment variables, Check terminal for more details ' + 'Invalid environment variables, Check terminal for more details ', ); } diff --git a/eslint.config.mjs b/eslint.config.mjs index e9ee4b6bb..ce6858714 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,96 +1,87 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; -import { defineConfig, globalIgnores } from 'eslint/config'; -import expoConfig from 'eslint-config-expo/flat.js'; +import antfu from '@antfu/eslint-config'; import i18nJsonPlugin from 'eslint-plugin-i18n-json'; -import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; import reactCompiler from 'eslint-plugin-react-compiler'; -import simpleImportSort from 'eslint-plugin-simple-import-sort'; import tailwind from 'eslint-plugin-tailwindcss'; import testingLibrary from 'eslint-plugin-testing-library'; -// eslint-disable-next-line import/no-named-as-default, import/no-named-as-default-member, import/namespace -import eslintPluginUnicorn from 'eslint-plugin-unicorn'; -import unusedImports from 'eslint-plugin-unused-imports'; -import { configs, parser } from 'typescript-eslint'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -export default defineConfig([ - globalIgnores([ - 'dist/*', - 'node_modules', - '__tests__/', - 'coverage', - '.expo', - '.expo-shared', - 'android', - 'ios', - '.vscode', - 'docs/', - 'cli/', - 'expo-env.d.ts', - ]), - expoConfig, - eslintPluginPrettierRecommended, - ...tailwind.configs['flat/recommended'], - reactCompiler.configs.recommended, +export default antfu( { - plugins: { - 'simple-import-sort': simpleImportSort, - unicorn: eslintPluginUnicorn, - 'unused-imports': unusedImports, + // Enable React and TypeScript support + react: true, + typescript: true, + + // Disable JSON processing for translation files (handled by i18n-json plugin) + jsonc: false, + + // Use ESLint Stylistic for formatting + stylistic: { + indent: 2, + quotes: 'single', + semi: true, }, + + // Global ignores + ignores: [ + 'dist/*', + 'node_modules', + '__tests__/', + 'coverage', + '.expo', + '.expo-shared', + 'android', + 'ios', + '.vscode', + 'docs/', + 'cli/', + 'expo-env.d.ts', + ], + }, + + // Custom rules + { rules: { 'max-params': ['error', 3], 'max-lines-per-function': ['error', 70], - 'tailwindcss/classnames-order': [ - 'warn', - { - officialSorting: true, - }, - ], - 'tailwindcss/no-custom-classname': 'off', 'react/display-name': 'off', 'react/no-inline-styles': 'off', 'react/destructuring-assignment': 'off', 'react/require-default-props': 'off', + 'react-refresh/only-export-components': 'off', // Too strict for React Native 'unicorn/filename-case': [ 'error', { case: 'kebabCase', - ignore: ['/android', '/ios'], - }, - ], - 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error', - 'unused-imports/no-unused-imports': 'error', - 'unused-imports/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_', - varsIgnorePattern: '^_', - caughtErrorsIgnorePattern: '^_', + ignore: [ + '/android', + '/ios', + 'README.md', + 'README-project.md', + 'ISSUE_TEMPLATE.md', + 'PULL_REQUEST_TEMPLATE.md', + ], }, ], - 'import/prefer-default-export': 'off', - 'import/no-cycle': ['error', { maxDepth: 'āˆž' }], - 'prettier/prettier': ['error', { ignores: ['expo-env.d.ts'] }], + 'node/prefer-global/process': 'off', // process is commonly used in React Native configs + 'ts/no-require-imports': 'off', // Sometimes needed for mocks + 'ts/no-use-before-define': 'off', // Allow forward references in React components + 'no-console': 'off', // Console is useful for debugging + 'no-cond-assign': 'off', // Allow assignment in conditions when intentional + 'regexp/no-super-linear-backtracking': 'off', // Relax regex performance rules + 'regexp/no-unused-capturing-group': 'off', // Allow unused capturing groups }, }, + + // TypeScript-specific rules { files: ['**/*.ts', '**/*.tsx'], - languageOptions: { - parser: parser, - parserOptions: { - project: './tsconfig.json', - sourceType: 'module', - }, - }, rules: { - ...configs.recommended.rules, - '@typescript-eslint/comma-dangle': 'off', - '@typescript-eslint/consistent-type-imports': [ + 'ts/consistent-type-definitions': ['error', 'type'], // Prefer type over interface + 'ts/consistent-type-imports': [ 'warn', { prefer: 'type-imports', @@ -100,6 +91,28 @@ export default defineConfig([ ], }, }, + + // TailwindCSS plugin + ...tailwind.configs['flat/recommended'].map(config => ({ + ...config, + rules: { + ...config.rules, + 'tailwindcss/classnames-order': ['warn', { officialSorting: true }], + 'tailwindcss/no-custom-classname': 'off', + }, + })), + + // React Compiler plugin + { + plugins: { + 'react-compiler': reactCompiler, + }, + rules: { + 'react-compiler/react-compiler': 'error', + }, + }, + + // i18n JSON validation { files: ['src/translations/*.json'], plugins: { 'i18n-json': i18nJsonPlugin }, @@ -114,33 +127,25 @@ export default defineConfig([ { syntax: path.resolve( __dirname, - './scripts/i18next-syntax-validation.js' + './scripts/i18next-syntax-validation.js', ), }, ], 'i18n-json/valid-json': 2, - 'i18n-json/sorted-keys': [ - 2, - { - order: 'asc', - indentSpaces: 2, - }, - ], + 'i18n-json/sorted-keys': [2, { order: 'asc', indentSpaces: 2 }], 'i18n-json/identical-keys': [ 2, - { - filePath: path.resolve(__dirname, './src/translations/en.json'), - }, - ], - 'prettier/prettier': [ - 0, - { - singleQuote: true, - endOfLine: 'auto', - }, + { filePath: path.resolve(__dirname, './src/translations/en.json') }, ], + // Disable conflicting rules for i18n JSON files + 'style/semi': 'off', + 'style/comma-dangle': 'off', + 'style/quotes': 'off', + 'unused-imports/no-unused-vars': 'off', }, }, + + // Testing Library rules { files: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)'], plugins: { 'testing-library': testingLibrary }, @@ -148,4 +153,4 @@ export default defineConfig([ ...testingLibrary.configs.react.rules, }, }, -]); +); diff --git a/lint-staged.config.js b/lint-staged.config.js index 196ef19a4..10730ef82 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -1,16 +1,12 @@ module.exports = { - '**/*.{js,jsx,ts,tsx}': (filenames) => [ + '**/*.{js,jsx,ts,tsx}': filenames => [ `npx eslint --fix ${filenames - .map((filename) => `"${filename}"`) + .map(filename => `"${filename}"`) .join(' ')}`, ], - '**/*.(md|json)': (filenames) => - `npx prettier --write ${filenames - .map((filename) => `"${filename}"`) - .join(' ')}`, - 'src/translations/*.(json)': (filenames) => [ + '**/*.json': filenames => [ `npx eslint --fix ${filenames - .map((filename) => `"${filename}"`) + .map(filename => `"${filename}"`) .join(' ')}`, ], }; diff --git a/migration/00-overview.md b/migration/00-overview.md new file mode 100644 index 000000000..fc3b790be --- /dev/null +++ b/migration/00-overview.md @@ -0,0 +1,248 @@ +# React Native Template Upgrade Guide - Overview + +## Introduction + +This comprehensive upgrade guide will help you modernize your React Native template (currently v8.0.0) with the latest tools, libraries, and best practices. The upgrade is split into 6 major areas, each with its own detailed guide. + +## Upgrade Areas + +### 1. ESLint Setup Migration +**File:** `01-eslint-migration.md` + +Migrate from your current ESLint setup to @antfu/eslint-config: +- Remove Prettier, use ESLint Stylistic for formatting +- Modern flat config (ESLint 9+) +- Opinionated, auto-configured setup +- Simpler, faster, more maintainable + +**Impact:** High - Changes entire linting and formatting workflow +**Estimated Time:** 30-45 minutes + +--- + +### 2. Expo SDK 54 Upgrade +**File:** `02-expo-sdk-54-upgrade.md` + +Upgrade from Expo SDK 53 to SDK 54: +- React Native 0.81 + React 19.1 +- Faster iOS builds (precompiled XCFrameworks) +- Reanimated v4 (New Architecture support) +- Breaking changes in expo-file-system, notifications, vector-icons + +**Impact:** High - Major framework upgrade +**Estimated Time:** 1-2 hours (includes testing) + +--- + +### 3. Environment Variables Simplification +**File:** `03-environment-variables.md` + +Simplify environment variable management: +- Single `.env` file instead of multiple environment files +- Adopt Expo's `EXPO_PUBLIC_*` prefix convention +- Simplified `env.js` validation +- Manage multiple environments via EAS Secrets or CI/CD + +**Impact:** Medium - Changes how env vars are accessed +**Estimated Time:** 30 minutes + +--- + +### 4. Dependency Updates +**File:** `04-dependency-updates.md` + +Update all major dependencies to latest versions: +- React Query v5 (with breaking changes) +- Zustand v5 (stable, best practices) +- React Hook Form, Axios, Zod +- All UI libraries and utilities + +**Impact:** Medium - May require code changes for breaking changes +**Estimated Time:** 45-60 minutes + +--- + +### 5. NativeWind → Uniwind Migration +**File:** `05-uniwind-migration.md` + +Migrate to Uniwind for better performance: +- 2.5x faster than NativeWind +- Build-time style compilation +- Tailwind CSS v4 (CSS-first approach) +- Platform selectors built-in + +**Impact:** High - Changes styling approach +**Estimated Time:** 1-1.5 hours + +--- + +### 6. Testing Updates +**File:** `06-testing-updates.md` + +Update testing infrastructure: +- Jest & jest-expo for SDK 54 +- Latest Testing Library +- Maestro CLI 2.0+ (requires Java 17) + +**Impact:** Low - Mostly version updates +**Estimated Time:** 20-30 minutes + +--- + +## Additional Documents + +### Verification & Testing +**File:** `07-verification.md` + +Comprehensive testing checklist after upgrades: +- Clean environment +- Run linting, type-checking, tests +- Build and test on all platforms +- Verify all features work + +--- + +### Summary of Changes +**File:** `08-summary.md` + +Quick reference of all changes: +- Files created/modified/deleted +- Dependency changes +- Script changes +- Configuration changes + +--- + +### Rollback Plan +**File:** `09-rollback-plan.md` + +What to do if something goes wrong: +- Full rollback via git +- Partial rollback per section +- Common issues and solutions + +--- + +## Recommended Approach + +### Option 1: All-at-Once (Recommended for New Projects) +Do all upgrades in sequence, then test everything together. + +**Pros:** +- Get everything done at once +- Avoid multiple testing cycles +- Cleaner git history + +**Cons:** +- Harder to debug if issues arise +- More risky for production apps + +**Time Required:** 4-6 hours + +--- + +### Option 2: Incremental (Recommended for Production Apps) +Do one upgrade at a time, test thoroughly, then move to the next. + +**Pros:** +- Easier to isolate issues +- Less risky +- Can pause/resume anytime + +**Cons:** +- Takes longer overall +- More commits/PRs to manage + +**Time Required:** 1-2 days (spread out) + +--- + +### Option 3: Pick and Choose +Only do the upgrades you need. + +For example, you might want: +- āœ… ESLint migration (cleaner setup) +- āœ… Dependency updates (security) +- āŒ Skip Expo SDK 54 (if not ready) +- āŒ Skip Uniwind (if NativeWind works fine) + +--- + +## Prerequisites + +Before starting any upgrade: + +1. **Clean Git State** + ```bash + git status # Should show clean working tree + git checkout -b upgrade/react-native-template + ``` + +2. **Backup** + ```bash + # Create a backup branch + git branch backup/pre-upgrade + ``` + +3. **System Requirements** + - Node.js 20 LTS + - pnpm 10+ + - Java 17+ (for Maestro) + - Latest Xcode (for iOS) + - Latest Android Studio (for Android) + +4. **Time & Resources** + - Set aside uninterrupted time + - Have good internet connection (for downloads) + - Be ready to test on physical devices if needed + +--- + +## Order of Execution + +We recommend following this order: + +1. **ESLint Migration** (01) - Get linting working first +2. **Environment Variables** (03) - Simple, independent change +3. **Expo SDK 54** (02) - Major upgrade, do early +4. **Dependency Updates** (04) - Update after Expo SDK +5. **Uniwind Migration** (05) - Styling last (easier to test visually) +6. **Testing Updates** (06) - Update testing after everything else +7. **Verification** (07) - Comprehensive testing +8. **Summary** (08) - Review changes + +--- + +## Getting Help + +If you encounter issues: + +1. **Check the Rollback Plan** (`09-rollback-plan.md`) +2. **Search the official docs** (links in each guide) +3. **Check GitHub Issues** for the specific library +4. **Ask in Discord/Slack** channels for Expo/React Native + +--- + +## Post-Upgrade + +After completing all upgrades: + +- [ ] Review the Summary document +- [ ] Complete the Verification checklist +- [ ] Update your project README +- [ ] Document any custom changes you made +- [ ] Share learnings with your team +- [ ] Consider creating a blog post or internal wiki + +--- + +## Good Luck! šŸš€ + +Take your time, test thoroughly, and don't hesitate to rollback if needed. The goal is a more maintainable, performant, and modern React Native template. + +--- + +**Last Updated:** January 21, 2026 +**Template Version:** 8.0.0 → 8.1.0+ +**Author:** Obytes Team diff --git a/migration/01-eslint-migration.md b/migration/01-eslint-migration.md new file mode 100644 index 000000000..0b7abab46 --- /dev/null +++ b/migration/01-eslint-migration.md @@ -0,0 +1,497 @@ +# ESLint Setup - Migration to @antfu/eslint-config + +## Overview + +Replace the current ESLint configuration with @antfu/eslint-config, which provides: +- Modern flat config (ESLint 9+) +- Built-in formatting via ESLint Stylistic (replaces Prettier) +- Auto-detection of React/TypeScript +- Opinionated but highly customizable +- Faster and simpler than managing multiple tools + +## Current Setup + +- ESLint v9.28.0 with flat config +- Multiple plugins (Expo, Prettier, React Compiler, TailwindCSS, i18n-json, Testing Library, Unicorn) +- Prettier v3.3.3 for formatting +- Husky + lint-staged for pre-commit hooks + +## Benefits + +āœ… **Single Tool** - ESLint handles both linting AND formatting +āœ… **Faster** - No need to run Prettier separately +āœ… **Simpler Config** - Auto-configured for React + TypeScript +āœ… **Better DX** - Auto-fix on save works seamlessly +āœ… **Maintained** - Anthony Fu actively maintains this config + +--- + +## Step-by-Step Instructions + +### 1.1 Install @antfu/eslint-config + +```bash +# Remove Prettier and related plugins +pnpm remove eslint-config-prettier eslint-plugin-prettier prettier +pnpm remove eslint-plugin-simple-import-sort eslint-plugin-unused-imports +pnpm remove @typescript-eslint/eslint-plugin @typescript-eslint/parser typescript-eslint +pnpm remove @eslint/js @eslint/eslintrc eslint-config-expo + +# Install antfu config +pnpm add -D @antfu/eslint-config +``` + +**Remarks:** +- We're removing Prettier entirely since @antfu/eslint-config includes ESLint Stylistic +- We remove plugins that are already included in antfu's config +- Keep project-specific plugins: i18n-json, tailwindcss, testing-library, react-compiler + +--- + +### 1.2 Update VS Code Settings + +Create or update `.vscode/settings.json`: + +```json +{ + "prettier.enable": false, + "editor.formatOnSave": false, + + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" + }, + + "eslint.rules.customizations": [ + { "rule": "style/*", "severity": "off", "fixable": true }, + { "rule": "format/*", "severity": "off", "fixable": true }, + { "rule": "*-indent", "severity": "off", "fixable": true }, + { "rule": "*-spacing", "severity": "off", "fixable": true }, + { "rule": "*-spaces", "severity": "off", "fixable": true }, + { "rule": "*-order", "severity": "off", "fixable": true }, + { "rule": "*-dangle", "severity": "off", "fixable": true }, + { "rule": "*-newline", "severity": "off", "fixable": true }, + { "rule": "*quotes", "severity": "off", "fixable": true }, + { "rule": "*semi", "severity": "off", "fixable": true } + ], + + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml", + "toml", + "xml", + "gql", + "graphql", + "astro", + "css", + "less", + "scss", + "pcss", + "postcss" + ] +} +``` + +**Remarks:** +- This disables Prettier completely in VS Code +- Enables ESLint auto-fix on save +- Silences stylistic rules in IDE while still auto-fixing them +- Commit this file so your team uses the same settings + +--- + +### 1.3 Create New ESLint Config + +Replace `eslint.config.mjs` with: + +```javascript +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import antfu from '@antfu/eslint-config'; +import i18nJsonPlugin from 'eslint-plugin-i18n-json'; +import reactCompiler from 'eslint-plugin-react-compiler'; +import tailwind from 'eslint-plugin-tailwindcss'; +import testingLibrary from 'eslint-plugin-testing-library'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +export default antfu( + { + // Enable React and TypeScript support + react: true, + typescript: true, + + // Use ESLint Stylistic for formatting + stylistic: { + indent: 2, + quotes: 'single', + semi: true, + }, + + // Global ignores + ignores: [ + 'dist/*', + 'node_modules', + '__tests__/', + 'coverage', + '.expo', + '.expo-shared', + 'android', + 'ios', + '.vscode', + 'docs/', + 'cli/', + 'expo-env.d.ts', + ], + }, + + // Custom rules + { + rules: { + 'max-params': ['error', 3], + 'max-lines-per-function': ['error', 70], + 'react/display-name': 'off', + 'react/no-inline-styles': 'off', + 'react/destructuring-assignment': 'off', + 'react/require-default-props': 'off', + 'unicorn/filename-case': [ + 'error', + { + case: 'kebabCase', + ignore: ['/android', '/ios'], + }, + ], + 'import/no-cycle': ['error', { maxDepth: 'āˆž' }], + 'ts/consistent-type-imports': [ + 'warn', + { + prefer: 'type-imports', + fixStyle: 'inline-type-imports', + disallowTypeAnnotations: true, + }, + ], + }, + }, + + // TailwindCSS plugin + ...tailwind.configs['flat/recommended'].map(config => ({ + ...config, + rules: { + ...config.rules, + 'tailwindcss/classnames-order': ['warn', { officialSorting: true }], + 'tailwindcss/no-custom-classname': 'off', + }, + })), + + // React Compiler plugin + { + plugins: { + 'react-compiler': reactCompiler, + }, + rules: { + 'react-compiler/react-compiler': 'error', + }, + }, + + // i18n JSON validation + { + files: ['src/translations/*.json'], + plugins: { 'i18n-json': i18nJsonPlugin }, + processor: { + meta: { name: '.json' }, + ...i18nJsonPlugin.processors['.json'], + }, + rules: { + ...i18nJsonPlugin.configs.recommended.rules, + 'i18n-json/valid-message-syntax': [ + 2, + { + syntax: path.resolve( + __dirname, + './scripts/i18next-syntax-validation.js' + ), + }, + ], + 'i18n-json/valid-json': 2, + 'i18n-json/sorted-keys': [2, { order: 'asc', indentSpaces: 2 }], + 'i18n-json/identical-keys': [ + 2, + { filePath: path.resolve(__dirname, './src/translations/en.json') }, + ], + }, + }, + + // Testing Library rules + { + files: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)'], + plugins: { 'testing-library': testingLibrary }, + rules: { + ...testingLibrary.configs.react.rules, + }, + } +); +``` + +**Remarks:** +- antfu config auto-includes: import sorting, unused imports removal, TypeScript rules +- We keep project-specific plugins: i18n-json, tailwindcss, testing-library, react-compiler +- Stylistic rules are now handled by ESLint Stylistic instead of Prettier +- The config is more concise and maintainable + +--- + +### 1.4 Remove Prettier Files + +```bash +rm -f .prettierrc.js .prettierignore +``` + +**Remarks:** +- These files are no longer needed +- ESLint Stylistic handles all formatting now + +--- + +### 1.5 Update package.json Scripts + +Update the scripts in `package.json`: + +```json +{ + "scripts": { + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "type-check": "tsc --noemit", + "lint:translations": "eslint ./src/translations/ --fix --ext .json", + "check-all": "pnpm run lint && pnpm run type-check && pnpm run lint:translations && pnpm run test" + } +} +``` + +**Changes:** +- Removed `--ext .js,.jsx,.ts,.tsx` flag (not needed with flat config) +- Added `lint:fix` command for manual formatting +- Kept all other scripts the same + +--- + +### 1.6 Update lint-staged Config + +Update `package.json` lint-staged configuration: + +```json +{ + "lint-staged": { + "*.{js,jsx,ts,tsx}": [ + "eslint --fix" + ], + "*.json": [ + "eslint --fix" + ] + } +} +``` + +**Remarks:** +- Removed separate Prettier command +- All formatting is now done via `eslint --fix` +- Both code and JSON files are handled by ESLint + +Ensure `.husky/pre-commit` looks like this: + +```bash +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +pnpm exec lint-staged +``` + +--- + +### 1.7 Test the Setup + +```bash +# Run linting +pnpm lint + +# Auto-fix all issues +pnpm lint:fix + +# Type check +pnpm type-check + +# Run all checks +pnpm check-all +``` + +**Expected Results:** +- āœ… No linting errors (after fix) +- āœ… Code is properly formatted +- āœ… Imports are sorted +- āœ… Unused imports removed + +--- + +### 1.8 Restart VS Code + +```bash +# Close VS Code, then reopen +# Or use Command Palette: "Developer: Reload Window" +``` + +**Remarks:** +- VS Code needs to reload ESLint extension +- Format-on-save should now work via ESLint +- Prettier should be completely disabled + +--- + +## Verification Checklist + +After completing the migration: + +- [ ] `pnpm lint` runs without errors +- [ ] `pnpm lint:fix` auto-fixes formatting +- [ ] VS Code auto-fixes on save (Cmd+S / Ctrl+S) +- [ ] No Prettier warnings/errors in VS Code +- [ ] Pre-commit hooks work correctly +- [ ] Import sorting works +- [ ] Unused imports are removed +- [ ] TypeScript errors are caught +- [ ] Custom rules (max-params, filename-case) work + +--- + +## Common Issues + +### Issue 1: VS Code still using Prettier + +**Solution:** +```json +// .vscode/settings.json +{ + "prettier.enable": false, + "editor.formatOnSave": false, + "editor.defaultFormatter": "dbaeumer.vscode-eslint" +} +``` + +### Issue 2: Auto-fix not working on save + +**Solution:** +```json +// .vscode/settings.json +{ + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + } +} +``` + +### Issue 3: Import sorting conflicts + +**Solution:** +- antfu includes import sorting by default +- Remove any custom import sorting plugins +- Use `// eslint-disable-next-line` if needed + +### Issue 4: Too many errors after migration + +**Solution:** +```bash +# Auto-fix most issues +pnpm lint:fix + +# Commit the auto-fixed code +git add . +git commit -m "chore: migrate to @antfu/eslint-config" +``` + +--- + +## Customization + +### Change Indentation + +```javascript +// eslint.config.mjs +export default antfu({ + stylistic: { + indent: 4, // or 'tab' + }, +}); +``` + +### Change Quotes + +```javascript +// eslint.config.mjs +export default antfu({ + stylistic: { + quotes: 'double', // or 'single' + }, +}); +``` + +### Disable Specific Rules + +```javascript +// eslint.config.mjs +export default antfu( + { + // ... config + }, + { + rules: { + 'no-console': 'off', + 'unicorn/filename-case': 'off', + }, + } +); +``` + +--- + +## Benefits You'll Notice + +āœ… **Faster Workflow** - One tool instead of two +āœ… **Consistent Formatting** - No more Prettier vs ESLint conflicts +āœ… **Better Imports** - Auto-sorted and organized +āœ… **Cleaner Codebase** - Auto-removal of unused imports +āœ… **TypeScript Integration** - Better type checking +āœ… **Easier Maintenance** - Less configuration to manage + +--- + +## Useful Links + +- [@antfu/eslint-config GitHub](https://github.com/antfu/eslint-config) +- [@antfu/eslint-config npm](https://www.npmjs.com/package/@antfu/eslint-config) +- [ESLint Stylistic](https://eslint.style/) +- [Migration from Prettier](https://github.com/antfu/eslint-config#migrate-from-prettier) +- [ESLint Flat Config](https://eslint.org/docs/latest/use/configure/configuration-files-new) + +--- + +## Next Steps + +After completing this migration: + +1. āœ… Commit your changes +2. āž”ļø Move to next migration: `03-environment-variables.md` (easier) or `02-expo-sdk-54-upgrade.md` (bigger) +3. āœ… Notify your team about the new linting setup +4. āœ… Update team documentation/wiki + +--- + +**Estimated Time:** 30-45 minutes +**Difficulty:** Medium +**Impact:** High (affects entire codebase) diff --git a/migration/02-expo-sdk-54-upgrade.md b/migration/02-expo-sdk-54-upgrade.md new file mode 100644 index 000000000..b5b9272d3 --- /dev/null +++ b/migration/02-expo-sdk-54-upgrade.md @@ -0,0 +1,421 @@ +# Expo SDK 54 Upgrade + +## Overview + +Upgrade from Expo SDK 53 to SDK 54, which includes: +- **React Native 0.81** (from 0.79.4) +- **React 19.1** (from 19.0.0) +- **Faster iOS builds** with precompiled XCFrameworks +- **iOS 26 & Android 16 support** +- **Reanimated v4** (requires New Architecture) +- **New expo-file-system API** + +## Major Breaking Changes + +āš ļø **Important:** Review these before upgrading + +1. **Reanimated v4** - Only supports New Architecture (or stay on v3 for Legacy) +2. **expo-file-system** - Legacy API moved to `expo-file-system/legacy` +3. **Metro internal imports** - Changed from `metro/src/..` to `metro/private/..` +4. **expo-notifications** - Deprecated function exports removed +5. **@expo/vector-icons** - Icon families updated (some icons renamed/removed) +6. **locales config** - iOS-specific translations now under `locales.ios` key + +--- + +## Step-by-Step Instructions + +### 2.1 Run Expo Upgrade Command + +```bash +# Upgrade to SDK 54 +npx expo install expo@~54.0.0 --fix + +# This will automatically update all Expo packages to SDK 54 compatible versions +``` + +**What this does:** +- Updates `expo` package to SDK 54 +- Updates all `expo-*` packages to compatible versions +- Updates `expo-router`, `expo-dev-client`, `expo-splash-screen`, etc. +- Checks for compatibility issues + +**Remarks:** +- The `--fix` flag automatically resolves version conflicts +- Review the changes before committing +- This may take a few minutes + +--- + +### 2.2 Update React Native and React + +```bash +pnpm add react@19.1.0 react-native@0.81.0 react-dom@19.1.0 +``` + +**Remarks:** +- React 19.1 includes stability improvements +- React Native 0.81 includes performance improvements +- react-dom is needed for web support + +--- + +### 2.3 Update Reanimated (Choose Your Path) + +You have two options: + +#### Option A: Keep Legacy Architecture (Stay on Reanimated v3) āœ… Recommended for Most + +```bash +# No action needed - continue using react-native-reanimated@~3.17.5 +``` + +**When to choose this:** +- You're not ready for New Architecture +- You want a stable, proven solution +- You don't need Reanimated v4 features + +--- + +#### Option B: Enable New Architecture (Upgrade to Reanimated v4) āš ļø Experimental + +```bash +pnpm add react-native-reanimated@^4.0.0 react-native-worklets@^1.0.0 +``` + +Update `app.config.ts`: + +```typescript +export default { + // ... other config + newArchEnabled: true, // Enable New Architecture + plugins: [ + // ... other plugins + [ + 'react-native-reanimated', + { + enableNewArchitecture: true, + }, + ], + ], +}; +``` + +**When to choose this:** +- You want cutting-edge performance +- You're willing to deal with potential issues +- You need Reanimated v4 specific features + +**Remarks:** +- New Architecture is still experimental +- Some third-party libraries may not support it yet +- Test thoroughly on all platforms +- Review [Reanimated 3.x to 4.x migration guide](https://docs.swmansion.com/react-native-reanimated/docs/guides/migration) + +--- + +### 2.4 Update expo-file-system Imports + +If you're using `expo-file-system` in your app, you need to update imports. + +#### Quick Migration (Recommended) + +Find and replace all imports using legacy version: + +```bash +# For macOS/Linux +find ./src -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" \) -exec sed -i '' "s|from 'expo-file-system'|from 'expo-file-system/legacy'|g" {} + +find ./src -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" \) -exec sed -i '' 's|from "expo-file-system"|from "expo-file-system/legacy"|g' {} + + +# For Windows (use PowerShell) +Get-ChildItem -Path ./src -Recurse -Include *.ts,*.tsx,*.js,*.jsx | ForEach-Object { (Get-Content $_.FullName) -replace "from 'expo-file-system'", "from 'expo-file-system/legacy'" | Set-Content $_.FullName } +``` + +**OR** + +#### Gradual Migration (Migrate at Your Own Pace) + +```typescript +// New API (modern, recommended for new code) +import { Directory, File } from 'expo-file-system'; + +// Old API (via legacy) +import * as FileSystem from 'expo-file-system/legacy'; +``` + +**Remarks:** +- Legacy API maintains full backward compatibility +- New API is more modern, type-safe, and Promise-based +- You can use both side-by-side during migration +- See [expo-file-system docs](https://docs.expo.dev/versions/latest/sdk/filesystem/) for new API + +--- + +### 2.5 Update app.config.ts for Locales (If Applicable) + +If you have iOS-specific locale configurations, update the structure: + +```typescript +// Before +export default { + locales: { + en: './path/to/en.json', + fr: './path/to/fr.json', + }, +}; + +// After +export default { + locales: { + en: './path/to/en.json', + fr: './path/to/fr.json', + ios: { + // iOS-specific translations + CFBundleDisplayName: { + en: 'My App', + fr: 'Mon App', + }, + CFBundleName: { + en: 'MyApp', + fr: 'MonApp', + }, + }, + }, +}; +``` + +**Remarks:** +- Only needed if you have iOS-specific localization +- Android locales remain at the root level +- Check `app.config.ts` to see if you use this feature + +--- + +### 2.6 Update expo-notifications + +Remove any deprecated function exports. + +**Check your code for:** +```typescript +// Deprecated patterns (if you're using any) +import { setNotificationHandler } from 'expo-notifications'; +``` + +**Update to:** +```typescript +// Modern pattern +import * as Notifications from 'expo-notifications'; + +Notifications.setNotificationHandler({ + handleNotification: async () => ({ + shouldShowAlert: true, + shouldPlaySound: false, + shouldSetBadge: false, + }), +}); +``` + +**Remarks:** +- Review [expo-notifications changelog](https://github.com/expo/expo/blob/main/packages/expo-notifications/CHANGELOG.md) +- Most apps won't need changes here +- Only update if you see errors + +--- + +### 2.7 Update @expo/vector-icons + +Run TypeScript check to find renamed/removed icons: + +```bash +pnpm type-check +``` + +**If you see icon errors:** +- Check the [vector-icons changelog](https://github.com/oblador/react-native-vector-icons/blob/master/CHANGELOG.md) +- Find the new icon name +- Update your code + +**Example:** +```typescript +// If an icon was renamed + // Old + // New +``` + +**Remarks:** +- Most icon names remain the same +- Only a small subset was renamed or removed +- TypeScript will catch these errors + +--- + +### 2.8 Update jest-expo + +```bash +pnpm add -D jest-expo@~54.0.0 +``` + +**Remarks:** +- This ensures Jest works with SDK 54 +- Use tilde (~) to lock to SDK version +- Tests should continue working without changes + +--- + +### 2.9 Clean and Rebuild + +```bash +# Clear all caches and build artifacts +rm -rf node_modules .expo android ios + +# Reinstall dependencies +pnpm install + +# Prebuild native directories +pnpm prebuild + +# Test on iOS +pnpm ios + +# Test on Android +pnpm android +``` + +**Remarks:** +- Always do a clean rebuild after major SDK upgrades +- Test on both platforms +- Watch for deprecation warnings in the console +- Check that all features work as expected + +--- + +## Verification Checklist + +After completing the upgrade: + +- [ ] `npx expo-doctor` shows no critical issues +- [ ] App builds successfully on iOS +- [ ] App builds successfully on Android +- [ ] App runs on web (if applicable) +- [ ] No deprecation warnings in console +- [ ] All navigation works +- [ ] All API calls work +- [ ] Animations work (Reanimated) +- [ ] File system operations work (if used) +- [ ] Push notifications work (if used) +- [ ] All third-party libraries work + +--- + +## Common Issues + +### Issue 1: Build fails with "Cannot find module" + +**Solution:** +```bash +# Clear everything and reinstall +rm -rf node_modules .expo android ios +pnpm install +pnpm prebuild +``` + +### Issue 2: Metro bundler hangs or crashes + +**Solution:** +```bash +# Clear Metro cache +rm -rf $TMPDIR/metro-* +rm -rf $TMPDIR/haste-* + +# Start with cache clear +expo start -c +``` + +### Issue 3: Reanimated errors after upgrade + +**Solution:** +- If on v4: Check New Architecture is enabled in `app.config.ts` +- If on v3: Ensure you didn't accidentally upgrade to v4 +- Clear caches and rebuild + +### Issue 4: iOS build fails with "pods not found" + +**Solution:** +```bash +cd ios +rm -rf Pods Podfile.lock +pod install --repo-update +cd .. +``` + +### Issue 5: TypeScript errors with expo-router + +**Solution:** +```bash +# Regenerate types +npx expo customize tsconfig.json +pnpm type-check +``` + +--- + +## Performance Improvements + +You should notice: + +- āœ… **Faster iOS builds** (precompiled XCFrameworks) +- āœ… **Faster Metro bundler** (improved caching) +- āœ… **Better animations** (if using Reanimated v4) +- āœ… **Improved stability** (bug fixes in React Native 0.81) + +--- + +## Testing Your App + +After upgrade, test these areas thoroughly: + +### Core Features +- [ ] App launches successfully +- [ ] Navigation works (all screens accessible) +- [ ] Authentication flow works +- [ ] Data fetching/API calls work + +### Platform-Specific +- [ ] iOS: Notch/safe area handling +- [ ] Android: Back button behavior +- [ ] Both: Deep links work +- [ ] Both: App backgrounding/foregrounding + +### Third-Party Integrations +- [ ] Analytics events fire correctly +- [ ] Push notifications work +- [ ] In-app purchases (if applicable) +- [ ] Social auth (if applicable) + +--- + +## Useful Links + +- [Expo SDK 54 Changelog](https://expo.dev/changelog/sdk-54) +- [Expo SDK 54 Migration Guide](https://expo.dev/blog/expo-sdk-upgrade-guide) +- [Upgrading Expo SDK Documentation](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/) +- [Expo SDK 54 Breaking Changes (Medium)](https://diko-dev99.medium.com/upgrading-to-expo-sdk-54-common-issues-and-how-to-fix-them-1b78ac6b19d3) +- [React Native 0.81 Release Notes](https://reactnative.dev/blog) +- [Reanimated Migration Guide](https://docs.swmansion.com/react-native-reanimated/docs/guides/migration) + +--- + +## Next Steps + +After completing this upgrade: + +1. āœ… Commit your changes +2. āœ… Test thoroughly on all platforms +3. āž”ļø Continue to `04-dependency-updates.md` +4. āœ… Deploy to staging for full QA testing + +--- + +**Estimated Time:** 1-2 hours (including testing) +**Difficulty:** High +**Impact:** High (major framework upgrade) diff --git a/migration/03-environment-variables.md b/migration/03-environment-variables.md new file mode 100644 index 000000000..5d02513b2 --- /dev/null +++ b/migration/03-environment-variables.md @@ -0,0 +1,582 @@ +# Environment Variables - Simplification + +## Overview + +Simplify environment variable management by: +- Using a **single `.env` file** instead of multiple environment files +- Adopting **Expo's `EXPO_PUBLIC_*` prefix** convention +- **Keeping and simplifying `env.js`** for validation +- Managing multiple environments through **EAS Secrets** or **CI/CD** + +## Current Setup + +- Multiple env files: `.env.development`, `.env.staging`, `.env.production` +- Custom `env.js` with Zod validation +- Custom naming without EXPO_PUBLIC_ prefix +- `cross-env APP_ENV=...` for environment switching +- Complex environment loading logic + +## Benefits + +āœ… **Simpler** - One .env file instead of three +āœ… **Standard** - Uses Expo's official convention +āœ… **Clearer** - EXPO_PUBLIC_* prefix shows what's exposed to client +āœ… **Safer** - Build-time secrets stay secret +āœ… **Flexible** - Still supports multiple environments via EAS/CI + +--- + +## Step-by-Step Instructions + +### 3.1 Create Single .env File + +Create `.env` in project root: + +```bash +# App Configuration (client-accessible with EXPO_PUBLIC_ prefix) +EXPO_PUBLIC_APP_ENV=development +EXPO_PUBLIC_API_URL=https://api.staging.obytes.com +EXPO_PUBLIC_VAR_NUMBER=42 +EXPO_PUBLIC_VAR_BOOL=true + +# Build-time only (no EXPO_PUBLIC_ prefix - NOT accessible in client code) +SECRET_KEY=your-secret-key +``` + +**Remarks:** +- Variables with `EXPO_PUBLIC_` prefix are accessible in client code via `process.env` +- Variables without the prefix are only available at build time (`app.config.ts`) +- Never commit this file (it's in `.gitignore`) + +--- + +### 3.2 Update .gitignore + +Ensure `.env` files are ignored: + +```bash +# Environment +.env +.env.local +.env*.local + +# Keep example file +!.env.example +``` + +**Remarks:** +- `.env` contains sensitive data and should never be committed +- `.env.example` is committed as a reference for the team + +--- + +### 3.3 Create .env.example + +Create `.env.example` for team reference: + +```bash +# Example environment variables - copy this to .env and fill in real values + +# App Configuration +EXPO_PUBLIC_APP_ENV=development +EXPO_PUBLIC_API_URL=https://api.example.com +EXPO_PUBLIC_VAR_NUMBER=42 +EXPO_PUBLIC_VAR_BOOL=true + +# Build-time only +SECRET_KEY=your-secret-key-here +``` + +**Remarks:** +- This file shows team members what variables are needed +- Commit this file to the repository +- Don't include real/sensitive values here + +--- + +### 3.4 Simplify env.js + +Update `env.js` to work with Expo's default loading: + +```javascript +/* eslint-env node */ +const z = require('zod'); +const packageJSON = require('./package.json'); + +/** + * Simplified env.js that works with Expo's default .env loading + * Client variables use EXPO_PUBLIC_* prefix and are automatically available + */ + +// Static app configuration +const BUNDLE_ID = 'com.obytes'; +const PACKAGE = 'com.obytes'; +const NAME = 'ObytesApp'; +const EXPO_ACCOUNT_OWNER = 'obytes'; +const EAS_PROJECT_ID = 'c3e1075b-6fe7-4686-aa49-35b46a229044'; +const SCHEME = 'obytesApp'; + +const APP_ENV = process.env.EXPO_PUBLIC_APP_ENV ?? 'development'; + +function withEnvSuffix(name) { + return APP_ENV === 'production' ? name : `${name}.${APP_ENV}`; +} + +// Client env schema (EXPO_PUBLIC_* variables) +const client = z.object({ + EXPO_PUBLIC_APP_ENV: z.enum(['development', 'staging', 'production']), + EXPO_PUBLIC_API_URL: z.string().url(), + EXPO_PUBLIC_VAR_NUMBER: z.string().transform(Number), + EXPO_PUBLIC_VAR_BOOL: z.string().transform(val => val === 'true'), +}); + +// Build-time env schema +const buildTime = z.object({ + SECRET_KEY: z.string().min(1), +}); + +// Parse and validate +const _clientEnv = { + EXPO_PUBLIC_APP_ENV: APP_ENV, + EXPO_PUBLIC_API_URL: process.env.EXPO_PUBLIC_API_URL, + EXPO_PUBLIC_VAR_NUMBER: process.env.EXPO_PUBLIC_VAR_NUMBER, + EXPO_PUBLIC_VAR_BOOL: process.env.EXPO_PUBLIC_VAR_BOOL, +}; + +const _buildTimeEnv = { + SECRET_KEY: process.env.SECRET_KEY, +}; + +const _env = { + ..._clientEnv, + ..._buildTimeEnv, +}; + +const merged = buildTime.merge(client); +const parsed = merged.safeParse(_env); + +if (parsed.success === false) { + console.error( + 'āŒ Invalid environment variables:', + parsed.error.flatten().fieldErrors, + '\nāŒ Missing variables in .env file. Make sure all required variables are defined.', + '\nšŸ’” Tip: Check .env.example for reference.' + ); + throw new Error('Invalid environment variables'); +} + +// For app.config.ts +const Env = { + ...parsed.data, + // Static values with environment suffix + BUNDLE_ID: withEnvSuffix(BUNDLE_ID), + PACKAGE: withEnvSuffix(PACKAGE), + NAME, + SCHEME, + EXPO_ACCOUNT_OWNER, + EAS_PROJECT_ID, + VERSION: packageJSON.version, +}; + +// For client-side usage (via process.env.EXPO_PUBLIC_*) +const ClientEnv = client.parse(_clientEnv); + +module.exports = { + Env, + ClientEnv, + withEnvSuffix, +}; +``` + +**Remarks:** +- Simplified to work with Expo's default .env loading +- Still provides Zod validation for type safety +- No more custom dotenv loading with APP_ENV switching +- EXPO_PUBLIC_* variables are automatically available + +--- + +### 3.5 Update Client-Side Usage + +#### Option A: Direct Process.env Usage + +```typescript +// Before (using @env) +import { API_URL } from '@env'; + +// After (using process.env.EXPO_PUBLIC_*) +const apiUrl = process.env.EXPO_PUBLIC_API_URL; +const isProduction = process.env.EXPO_PUBLIC_APP_ENV === 'production'; +``` + +**OR** + +#### Option B: Create Typed Helper (Recommended) + +Create `src/lib/env.ts`: + +```typescript +// Type-safe access to environment variables +export const Env = { + apiUrl: process.env.EXPO_PUBLIC_API_URL as string, + appEnv: process.env.EXPO_PUBLIC_APP_ENV as 'development' | 'staging' | 'production', + varNumber: Number(process.env.EXPO_PUBLIC_VAR_NUMBER), + varBool: process.env.EXPO_PUBLIC_VAR_BOOL === 'true', +} as const; + +// Helper functions +export const isDevelopment = Env.appEnv === 'development'; +export const isStaging = Env.appEnv === 'staging'; +export const isProduction = Env.appEnv === 'production'; +``` + +Usage: + +```typescript +import { Env, isProduction } from '@/lib/env'; + +console.log(Env.apiUrl); +console.log(isProduction); +``` + +**Remarks:** +- Option B provides better type safety +- Centralized env access makes refactoring easier +- Consider adding runtime validation if needed + +--- + +### 3.6 Remove Old Environment Files + +```bash +# Remove old env files +rm -f .env.development .env.staging .env.production +``` + +**Remarks:** +- These are no longer needed +- Single `.env` file handles all cases now + +--- + +### 3.7 Update package.json Scripts + +Simplify scripts by removing environment-specific commands: + +```json +{ + "scripts": { + "start": "expo start", + "prebuild": "expo prebuild", + "android": "expo run:android", + "ios": "expo run:ios", + "web": "expo start --web" + + // Remove these: + // "start:staging": "cross-env APP_ENV=staging pnpm run start", + // "start:production": "cross-env APP_ENV=production pnpm run start", + // etc. + } +} +``` + +**Remarks:** +- Remove all `cross-env EXPO_NO_DOTENV=1` flags +- Remove all `cross-env APP_ENV=...` patterns +- Keep only the basic commands +- Environment switching now happens via EAS or CI/CD + +--- + +### 3.8 Update babel.config.js + +Remove `@env` alias since we use `process.env` directly: + +```javascript +module.exports = function (api) { + api.cache(true); + return { + presets: [ + ['babel-preset-expo', { jsxImportSource: 'nativewind' }], + 'nativewind/babel', + ], + plugins: [ + [ + 'module-resolver', + { + root: ['./'], + alias: { + '@': './src', + // Removed: '@env': './src/lib/env.js', + }, + extensions: [ + '.ios.ts', + '.android.ts', + '.ts', + '.ios.tsx', + '.android.tsx', + '.tsx', + '.jsx', + '.js', + '.json', + ], + }, + ], + 'react-native-reanimated/plugin', + ], + }; +}; +``` + +**Remarks:** +- No more custom `@env` alias needed +- Use standard `process.env.EXPO_PUBLIC_*` instead + +--- + +### 3.9 Update tsconfig.json (Optional) + +If you had TypeScript types for `@env`, remove them: + +```json +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + // Removed: "@env": ["./src/lib/env.js"] + } + } +} +``` + +--- + +## Managing Multiple Environments + +### For Local Development + +**Option 1: Use single .env and change values** +```bash +# Switch to production locally +# Edit .env and change EXPO_PUBLIC_APP_ENV=production +``` + +**Option 2: Use .env.local to override** +```bash +# Create .env.local (gitignored) +EXPO_PUBLIC_APP_ENV=staging +EXPO_PUBLIC_API_URL=https://api.staging.obytes.com + +# .env.local overrides .env +``` + +--- + +### For CI/CD (GitHub Actions) + +Set environment variables in workflow files: + +```yaml +# .github/workflows/build-staging.yml +name: Build Staging + +on: + push: + branches: [staging] + +jobs: + build: + runs-on: ubuntu-latest + env: + EXPO_PUBLIC_APP_ENV: staging + EXPO_PUBLIC_API_URL: https://api.staging.obytes.com + SECRET_KEY: ${{ secrets.STAGING_SECRET_KEY }} + steps: + - uses: actions/checkout@v4 + - run: pnpm install + - run: pnpm build:staging +``` + +--- + +### For EAS Builds + +**Option 1: Use EAS Secrets (Recommended)** + +```bash +# Create secrets for each environment +eas secret:create --scope project --name EXPO_PUBLIC_API_URL --value https://api.production.com --type string +eas secret:create --scope project --name SECRET_KEY --value prod-secret --type string +``` + +**Option 2: Use eas.json env config** + +Update `eas.json`: + +```json +{ + "build": { + "production": { + "env": { + "EXPO_PUBLIC_APP_ENV": "production", + "EXPO_PUBLIC_API_URL": "https://api.production.com" + } + }, + "staging": { + "env": { + "EXPO_PUBLIC_APP_ENV": "staging", + "EXPO_PUBLIC_API_URL": "https://api.staging.com" + } + }, + "development": { + "env": { + "EXPO_PUBLIC_APP_ENV": "development", + "EXPO_PUBLIC_API_URL": "https://api.dev.com" + } + } + } +} +``` + +Then build with: + +```bash +# Production build uses production env +eas build --profile production + +# Staging build uses staging env +eas build --profile staging +``` + +**Remarks:** +- EAS Secrets are more secure (not in git) +- eas.json env is simpler but less secure +- Combine both: secrets for sensitive data, eas.json for non-sensitive + +--- + +## Verification Checklist + +After completing the migration: + +- [ ] `.env` file created and ignored by git +- [ ] `.env.example` created and committed +- [ ] `env.js` updated and working +- [ ] All client code uses `process.env.EXPO_PUBLIC_*` +- [ ] `@env` imports removed/replaced +- [ ] babel.config.js updated +- [ ] package.json scripts simplified +- [ ] App starts successfully +- [ ] Env variables are accessible in app +- [ ] Build-time secrets stay secret (not in bundle) +- [ ] TypeScript errors resolved + +--- + +## Common Issues + +### Issue 1: Env variables are undefined + +**Solution:** +```bash +# Ensure .env file exists and has values +cat .env + +# Restart Metro bundler +expo start -c +``` + +### Issue 2: Old @env imports cause errors + +**Solution:** +```bash +# Find all @env imports +grep -r "from '@env'" src/ + +# Replace with process.env.EXPO_PUBLIC_* +``` + +### Issue 3: Variables not updating + +**Solution:** +```bash +# Clear Metro cache +rm -rf $TMPDIR/metro-* +expo start -c +``` + +### Issue 4: TypeScript errors with process.env + +**Solution:** +```typescript +// Add type assertion +const apiUrl = process.env.EXPO_PUBLIC_API_URL as string; + +// Or create typed helper (recommended) +// See section 3.5 Option B +``` + +--- + +## Security Best Practices + +āœ… **DO:** +- Use `EXPO_PUBLIC_*` only for non-sensitive data +- Keep API keys, secrets in build-time variables (no prefix) +- Use EAS Secrets for production secrets +- Add `.env` to `.gitignore` +- Create `.env.example` for team reference + +āŒ **DON'T:** +- Commit `.env` to git +- Put sensitive keys in `EXPO_PUBLIC_*` variables +- Hardcode secrets in source code +- Share `.env` files via Slack/email + +--- + +## Testing + +Test that env variables work correctly: + +```typescript +// Add temporary logging +console.log('API URL:', process.env.EXPO_PUBLIC_API_URL); +console.log('App Env:', process.env.EXPO_PUBLIC_APP_ENV); +console.log('Is Production:', process.env.EXPO_PUBLIC_APP_ENV === 'production'); + +// Should show values, not undefined +``` + +**Expected output:** +``` +API URL: https://api.staging.obytes.com +App Env: development +Is Production: false +``` + +--- + +## Useful Links + +- [Expo Environment Variables](https://docs.expo.dev/guides/environment-variables/) +- [EAS Secrets](https://docs.expo.dev/build-reference/variables/#using-secrets-in-environment-variables) +- [Expo Config with Env Variables](https://docs.expo.dev/workflow/configuration/) +- [Zod Validation](https://zod.dev/) + +--- + +## Next Steps + +After completing this migration: + +1. āœ… Test env variables in development +2. āœ… Test env variables in EAS builds +3. āœ… Update team documentation +4. āž”ļø Continue to `04-dependency-updates.md` + +--- + +**Estimated Time:** 30 minutes +**Difficulty:** Easy +**Impact:** Medium (changes env access pattern) diff --git a/migration/04-dependency-updates.md b/migration/04-dependency-updates.md new file mode 100644 index 000000000..a6edd99b8 --- /dev/null +++ b/migration/04-dependency-updates.md @@ -0,0 +1,554 @@ +# Dependency Updates + +## Overview + +Update all major dependencies to their latest stable versions for: +- **Security patches** and vulnerability fixes +- **Performance improvements** +- **New features** and capabilities +- **Better compatibility** with Expo SDK 54 + +## Current Major Dependencies + +- @tanstack/react-query: ^5.52.1 +- zustand: ^5.0.5 +- react-hook-form: ^7.53.0 +- axios: ^1.7.5 +- zod: ^3.23.8 +- @gorhom/bottom-sheet: ^5.0.5 +- @shopify/flash-list: 1.7.6 +- react-native-mmkv: ~3.1.0 + +--- + +## Step-by-Step Instructions + +### 4.1 Update React Query + +```bash +pnpm update @tanstack/react-query@latest +pnpm add -D @dev-plugins/react-query@latest +``` + +#### Breaking Changes from v4 to v5 + +If you're already on v5, this is just a version bump. If coming from v4: + +| v4 | v5 | Notes | +|----|----|----| +| `isLoading` | `isPending` | Status renamed | +| `cacheTime` | `gcTime` | Garbage collection time | +| `keepPreviousData` | `placeholderData` | Merged into one option | +| Callbacks in useQuery | Removed | Use side effects instead | +| Multiple syntaxes | Object only | Must use object syntax | + +#### Migration Example + +```typescript +// Before (v4) +const { isLoading, data } = useQuery('posts', fetchPosts, { + cacheTime: 5000, + keepPreviousData: true, + onSuccess: data => console.log(data), +}); + +// After (v5) +const { isPending, isFetching, data } = useQuery({ + queryKey: ['posts'], + queryFn: fetchPosts, + gcTime: 5000, + placeholderData: keepPreviousData, +}); + +// Handle side effects separately +useEffect(() => { + if (data) { + console.log(data); + } +}, [data]); + +// Note: isLoading is now defined as isPending && isFetching +const isLoading = isPending && isFetching; +``` + +#### Use Codemod for Auto-Migration + +```bash +npx @tanstack/react-query-v5-codemod ./src +``` + +**Remarks:** +- React Query v5 requires React 18+ +- Test all queries and mutations after update +- Review [official migration guide](https://tanstack.com/query/latest/docs/framework/react/guides/migrating-to-v5) + +--- + +### 4.2 Update Zustand + +```bash +pnpm update zustand@latest +``` + +#### Best Practices to Check + +Zustand v5 has no major breaking changes from v4, but ensure you're following best practices: + +**āœ… Good Patterns:** + +```typescript +// Always use selectors +// Shallow comparison for objects +import { shallow } from 'zustand/shallow'; + +const token = useAuthStore(state => state.token); + +// Custom hooks for cleaner interfaces +export const useToken = () => useAuthStore(state => state.token); +export const useUser = () => useAuthStore(state => state.user); +const { user, token } = useAuthStore( + state => ({ user: state.user, token: state.token }), + shallow +); + +// Actions in the store +const useAuthStore = create(set => ({ + token: null, + user: null, + login: async (credentials) => { + const { token, user } = await api.login(credentials); + set({ token, user }); + }, + logout: () => set({ token: null, user: null }), +})); +``` + +**āŒ Bad Patterns:** + +```typescript +// Don't subscribe to entire store (causes unnecessary re-renders) +const store = useAuthStore(); + +// Don't put business logic in components +async function handleLogin() { + const result = await api.login(credentials); + useAuthStore.setState({ token: result.token }); +} +``` + +**Remarks:** +- Zustand v5 is stable and production-ready +- No breaking changes from v4 to v5 +- Review [best practices](https://tkdodo.eu/blog/working-with-zustand) + +--- + +### 4.3 Update Other Core Dependencies + +```bash +# Forms +pnpm update react-hook-form@latest @hookform/resolvers@latest zod@latest + +# HTTP Client +pnpm update axios@latest + +# UI Libraries +pnpm update @gorhom/bottom-sheet@latest @shopify/flash-list@latest + +# Storage +pnpm update react-native-mmkv@latest + +# Gesture & Animation (handled in Expo upgrade) +# react-native-gesture-handler and react-native-reanimated are managed by Expo + +# Other Utilities +pnpm update lodash.memoize@latest tailwind-variants@latest +pnpm update react-error-boundary@latest react-query-kit@latest + +# i18n +pnpm update i18next@latest react-i18next@latest + +# Navigation (managed by Expo) +# expo-router is managed by Expo SDK +``` + +**Remarks:** +- These updates should be non-breaking +- Test forms, API calls, and UI components after update +- Check release notes for any breaking changes + +--- + +### 4.4 Update Development Dependencies + +```bash +# Testing +pnpm update -D jest@latest @testing-library/react-native@latest @testing-library/jest-dom@latest + +# TypeScript +pnpm update -D typescript@latest + +# Type Definitions +pnpm update -D @types/react@latest @types/jest@latest @types/lodash.memoize@latest + +# Build Tools +pnpm update -D @babel/core@latest cross-env@latest + +# Git Hooks +pnpm update -D husky@latest lint-staged@latest +pnpm update -D @commitlint/cli@latest @commitlint/config-conventional@latest + +# (Tailwind will be updated in Uniwind migration) +``` + +**Remarks:** +- Dev dependency updates are usually safe +- May need to update test configurations +- Check TypeScript version compatibility + +--- + +### 4.5 Run Compatibility Checks + +```bash +# Check for outdated packages +pnpm outdated + +# Check for security vulnerabilities +pnpm audit + +# Run Expo doctor +npx expo-doctor +``` + +**What to look for:** +- āš ļø Major version updates you might have missed +- šŸ”“ High/critical security vulnerabilities +- āš ļø Incompatibilities flagged by expo-doctor + +--- + +### 4.6 Update package.json Version Ranges + +Review `package.json` and update pinned versions to use ranges: + +```json +{ + "dependencies": { + // āœ… Good - allows automatic minor/patch updates + "@shopify/flash-list": "^1.7.6", + "@tanstack/react-query": "^5.60.0", + "zustand": "^5.0.10", + + // āš ļø Consider updating these from ~ to ^ + "react-native-mmkv": "^3.2.0", // was ~3.1.0 + + // āœ… Expo packages should use ~ + "expo": "~54.0.0", + "expo-router": "~5.1.0" + } +} +``` + +**Version Range Guide:** +- `^` - Allow minor and patch updates (recommended for most packages) +- `~` - Allow patch updates only (use for Expo packages) +- No prefix - Exact version (avoid unless necessary) + +--- + +### 4.7 Test Core Functionality + +After updating dependencies, test: + +**Forms:** +```typescript +// Test react-hook-form + zod validation +const schema = z.object({ + email: z.string().email(), + password: z.string().min(8), +}); + +const { control, handleSubmit } = useForm({ + resolver: zodResolver(schema), +}); +``` + +**State Management:** +```typescript +// Test Zustand stores +const token = useAuthStore(state => state.token); +const login = useAuthStore(state => state.login); +``` + +**Data Fetching:** +```typescript +// Test React Query +const { isPending, data, error } = useQuery({ + queryKey: ['posts'], + queryFn: fetchPosts, +}); +``` + +**API Calls:** +```typescript +// Test axios +const response = await axios.get('/api/endpoint'); +``` + +--- + +## Verification Checklist + +- [ ] All dependencies updated +- [ ] `pnpm outdated` shows no major updates available +- [ ] `pnpm audit` shows no high/critical vulnerabilities +- [ ] `npx expo-doctor` passes +- [ ] Forms work (react-hook-form + zod) +- [ ] State management works (Zustand) +- [ ] Data fetching works (React Query) +- [ ] API calls work (axios) +- [ ] UI components render correctly +- [ ] Animations work +- [ ] Storage/persistence works (MMKV) +- [ ] i18n/translations work +- [ ] No console errors/warnings +- [ ] Tests pass + +--- + +## Common Issues + +### Issue 1: React Query isLoading undefined + +**Solution:** +```typescript +// Update to use isPending +const { isPending, isFetching, data } = useQuery(...) + +// Or create isLoading +const isLoading = isPending && isFetching +``` + +### Issue 2: Type errors after TypeScript update + +**Solution:** +```bash +# Regenerate types +pnpm type-check + +# Update tsconfig.json if needed +# Check for deprecated compiler options +``` + +### Issue 3: Tests failing after updates + +**Solution:** +```bash +# Update test utils +# Check jest.config.js +# Update transformIgnorePatterns if needed + +# Clear Jest cache +jest --clearCache +pnpm test +``` + +### Issue 4: Bottom sheet not working + +**Solution:** +```bash +# Ensure gesture-handler is properly installed +pnpm prebuild + +# Check that GestureHandlerRootView wraps your app +``` + +--- + +## React Query v5 - Detailed Changes + +### Status Changes + +```typescript +// v4 +isLoading; // loading for first time +isFetching; // loading (including refetches) + +// v5 +isPending; // loading for first time (renamed from isLoading) +isFetching; // loading (including refetches) +isLoading; // computed: isPending && isFetching +``` + +### Configuration Changes + +```typescript +// v4 +cacheTime: 5000; // how long unused data stays in cache + +// v5 +gcTime: 5000; // renamed from cacheTime +``` + +### Previous Data + +```typescript +// v4 +keepPreviousData: true; + +// v5 +placeholderData: keepPreviousData; // special function +// or +placeholderData: previousData => previousData; +``` + +### Callbacks Removed + +```typescript +// v4 +useQuery('key', fn, { + onSuccess: (data) => {}, + onError: (error) => {}, + onSettled: () => {}, +}); + +// v5 - Use useEffect instead +const { data, error } = useQuery({ queryKey: ['key'], queryFn: fn }); + +useEffect(() => { + if (data) { + // onSuccess + } +}, [data]); + +useEffect(() => { + if (error) { + // onError + } +}, [error]); +``` + +--- + +## Zustand Best Practices + +### 1. Always Use Selectors + +```typescript +// āŒ Bad - subscribes to entire store +const store = useAuthStore(); + +// āœ… Good - subscribes only to what you need +const token = useAuthStore(state => state.token); +const user = useAuthStore(state => state.user); +``` + +### 2. Create Custom Hooks + +```typescript +// Store +export const useAuthStore = create(set => ({ + token: null, + user: null, + login: async (credentials) => { /* ... */ }, +})); + +// Custom hooks +export const useToken = () => useAuthStore(state => state.token); +export const useUser = () => useAuthStore(state => state.user); +export const useIsAuthenticated = () => useAuthStore(state => !!state.token); + +// Usage +const token = useToken(); +const isAuthenticated = useIsAuthenticated(); +``` + +### 3. Use Shallow Comparison for Objects + +```typescript +import { shallow } from 'zustand/shallow'; + +// āŒ Creates new object every render +const { user, token } = useAuthStore(state => ({ + user: state.user, + token: state.token +})); + +// āœ… Uses shallow comparison +const { user, token } = useAuthStore( + state => ({ user: state.user, token: state.token }), + shallow +); +``` + +### 4. Keep Business Logic in Store + +```typescript +// āœ… Good - logic in store +const useAuthStore = create((set, get) => ({ + token: null, + login: async (credentials) => { + const { token, user } = await api.login(credentials); + set({ token, user }); + // Store analytics event + analytics.track('login'); + }, + logout: () => { + set({ token: null, user: null }); + // Clear persisted data + storage.delete('token'); + }, +})); + +// āŒ Bad - logic in component +function Component() { + const handleLogin = async () => { + const result = await api.login(credentials); + useAuthStore.setState({ token: result.token }); + analytics.track('login'); + }; +} +``` + +--- + +## Useful Links + +### React Query +- [TanStack Query v5 Migration](https://tanstack.com/query/latest/docs/framework/react/guides/migrating-to-v5) +- [React Query Docs](https://tanstack.com/query/latest) +- [React Query Examples](https://tanstack.com/query/latest/docs/framework/react/examples) + +### Zustand +- [Zustand GitHub](https://github.com/pmndrs/zustand) +- [Zustand Best Practices](https://www.projectrules.ai/rules/zustand) +- [Working with Zustand (Blog)](https://tkdodo.eu/blog/working-with-zustand) + +### Other Libraries +- [React Hook Form Docs](https://react-hook-form.com/) +- [Zod Documentation](https://zod.dev/) +- [Axios Documentation](https://axios-http.com/) +- [Flash List Documentation](https://shopify.github.io/flash-list/) +- [MMKV Documentation](https://github.com/mrousavy/react-native-mmkv) + +### Tools +- [Expo Doctor](https://docs.expo.dev/more/expo-cli/#doctor) +- [npm-check-updates](https://www.npmjs.com/package/npm-check-updates) + +--- + +## Next Steps + +After completing dependency updates: + +1. āœ… Run full test suite +2. āœ… Test all features manually +3. āœ… Commit changes +4. āž”ļø Continue to `05-uniwind-migration.md` + +--- + +**Estimated Time:** 45-60 minutes +**Difficulty:** Medium +**Impact:** Medium (may require code changes for breaking changes) diff --git a/migration/05-uniwind-migration.md b/migration/05-uniwind-migration.md new file mode 100644 index 000000000..2972afab3 --- /dev/null +++ b/migration/05-uniwind-migration.md @@ -0,0 +1,674 @@ +# NativeWind → Uniwind Migration + +## Overview + +Migrate from NativeWind to Uniwind for significant performance improvements: +- **2.5x faster** than NativeWind out of the box +- **Build-time compilation** - styles computed at build time, not runtime +- **Tailwind CSS v4** - Modern, CSS-first approach +- **Platform selectors** - Built-in `ios:` and `android:` prefixes +- **No tailwind.config.js** - Theme lives in `global.css` + +## Current Setup + +- NativeWind v4.1.21 +- Tailwind CSS 3.4.4 +- tailwind.config.js with custom colors +- Babel preset for NativeWind +- Custom colors in `src/components/ui/colors.js` + +## Benefits + +āœ… **Performance** - 2.5x faster styling with build-time compilation +āœ… **Modern** - Tailwind v4's CSS-first approach +āœ… **Cleaner** - No JS config file needed +āœ… **Platform-Aware** - Built-in ios:/android: selectors +āœ… **Type-Safe** - Better TypeScript integration + +--- + +## Step-by-Step Instructions + +### 5.1 Install Uniwind + +```bash +# Remove NativeWind +pnpm remove nativewind + +# Install Uniwind and Tailwind v4 +pnpm add uniwind +pnpm add -D tailwindcss@next @tailwindcss/cli@next +``` + +**Remarks:** +- Uniwind only supports Tailwind CSS v4 +- Tailwind v4 is currently in beta but stable enough for production +- v4 is CSS-first (no more tailwind.config.js) + +--- + +### 5.2 Update Metro Config + +Update `metro.config.js`: + +```javascript +const { getDefaultConfig } = require('expo/metro-config'); +const { withUniwindMetroConfig } = require('uniwind/metro'); + +const config = getDefaultConfig(__dirname); + +module.exports = withUniwindMetroConfig(config); +``` + +**Remarks:** +- Uniwind requires deep Metro integration for build-time compilation +- This wraps Expo's default Metro config +- All Metro features remain available + +--- + +### 5.3 Remove NativeWind from Babel + +Update `babel.config.js`: + +```javascript +module.exports = function (api) { + api.cache(true); + return { + presets: [ + 'babel-preset-expo', + // Removed: ['babel-preset-expo', { jsxImportSource: 'nativewind' }] + // Removed: 'nativewind/babel' + ], + plugins: [ + [ + 'module-resolver', + { + root: ['./'], + alias: { + '@': './src', + }, + extensions: [ + '.ios.ts', + '.android.ts', + '.ts', + '.ios.tsx', + '.android.tsx', + '.tsx', + '.jsx', + '.js', + '.json', + ], + }, + ], + 'react-native-reanimated/plugin', + ], + }; +}; +``` + +**Remarks:** +- Remove NativeWind's jsxImportSource +- Remove NativeWind's babel preset +- Keep all other presets and plugins + +--- + +### 5.4 Create global.css + +Create `src/styles/global.css`: + +```css +/* Import Tailwind base styles */ +@import 'tailwindcss'; + +/* Define your theme in CSS (replaces tailwind.config.js) */ +@theme { + /* Colors - migrated from src/components/ui/colors.js */ + --color-primary: #0ea5e9; + --color-primary-foreground: #ffffff; + + --color-background: #ffffff; + --color-foreground: #0a0a0a; + + --color-card: #ffffff; + --color-card-foreground: #0a0a0a; + + --color-muted: #f5f5f5; + --color-muted-foreground: #737373; + + --color-border: #e5e5e5; + --color-input: #e5e5e5; + --color-ring: #0ea5e9; + + --color-destructive: #ef4444; + --color-destructive-foreground: #ffffff; + + /* Fonts */ + --font-inter: 'Inter', sans-serif; + + /* Spacing scale (optional, Tailwind has defaults) */ + --spacing-xs: 0.5rem; + --spacing-sm: 0.75rem; + --spacing-md: 1rem; + --spacing-lg: 1.5rem; + --spacing-xl: 2rem; +} + +/* Dark mode colors */ +@media (prefers-color-scheme: dark) { + @theme { + --color-background: #0a0a0a; + --color-foreground: #fafafa; + + --color-card: #171717; + --color-card-foreground: #fafafa; + + --color-muted: #262626; + --color-muted-foreground: #a3a3a3; + + --color-border: #404040; + --color-input: #404040; + } +} + +/* Custom utilities (if needed) */ +@layer utilities { + .text-balance { + text-wrap: balance; + } +} +``` + +**Remarks:** +- This replaces `tailwind.config.js` +- All theme configuration is now in CSS +- Use CSS custom properties for dynamic theming +- Easier to maintain than JS config + +--- + +### 5.5 Migrate Colors from colors.js + +Open `src/components/ui/colors.js` and convert to CSS variables: + +```javascript +// Before (colors.js) +module.exports = { + primary: '#0ea5e9', + background: '#ffffff', + foreground: '#0a0a0a', + // ... more colors +}; +``` + +```css +/* After (in global.css @theme block) */ +@theme { + --color-primary: #0ea5e9; + --color-background: #ffffff; + --color-foreground: #0a0a0a; + /* ... more colors */ +} +``` + +**Optional:** You can keep `colors.js` if other code depends on it, but update it to reference CSS variables: + +```javascript +module.exports = { + primary: 'var(--color-primary)', + background: 'var(--color-background)', + // ... more colors +}; +``` + +--- + +### 5.6 Remove tailwind.config.js + +```bash +rm tailwind.config.js +``` + +**Remarks:** +- No longer needed with Tailwind v4 +- All config is now in `global.css` + +--- + +### 5.7 Import global.css in App Entry + +Update `src/app/_layout.tsx` (or your app entry point): + +```typescript +// Rest of your imports +import { Stack } from 'expo-router'; + +import '../styles/global.css'; // Add this import at the top +// ... + +export default function RootLayout() { + // ... rest of your layout +} +``` + +**Remarks:** +- Import at the very top of your root layout +- This loads the CSS before any components render +- Only import once in your app's entry point + +--- + +### 5.8 Update Component Usage (If Needed) + +The `className` prop should work the same, but if you used NativeWind-specific features: + +```typescript +// Before (if you used styled wrapper) +import { styled } from 'nativewind' +const StyledView = styled(View) + + +// After - Just use className directly + +``` + +**Remarks:** +- Uniwind provides `className` bindings out of the box +- No need for `styled()` wrapper +- All React Native core components support `className` +- Your existing className usages should work without changes + +--- + +### 5.9 Use Platform Selectors + +Uniwind includes built-in platform selectors: + +```typescript +// Before (conditional className) + + {/* content */} + + +// After (platform selectors) + + {/* Different padding-top for iOS and Android */} + +``` + +**More examples:** + +```typescript +// Platform-specific backgrounds + + +// Platform-specific spacing + + +// Platform-specific text + +``` + +**Remarks:** +- Use `ios:` and `android:` prefixes +- More elegant than `Platform.select()` or conditional logic +- Better for maintainability + +--- + +### 5.10 Test and Validate + +```bash +# Clear all caches +rm -rf node_modules .expo android ios + +# Reinstall dependencies +pnpm install + +# Rebuild native directories +pnpm prebuild + +# Test on iOS +pnpm ios + +# Test on Android +pnpm android +``` + +**What to test:** +- All screens render correctly +- Styles applied correctly +- Dark mode works +- Platform-specific styles work +- Performance feels snappier + +--- + +### 5.11 Update ESLint Config (If Using Tailwind Plugin) + +If you're using `eslint-plugin-tailwindcss`: + +#### Option A: Remove it (Recommended) + +```bash +pnpm remove eslint-plugin-tailwindcss +``` + +Update ESLint config to remove tailwindcss rules: + +```javascript +// eslint.config.mjs +export default antfu( + { + // ... config + }, + // Remove TailwindCSS plugin section +); +``` + +#### Option B: Keep it but update config + +Since Tailwind v4 uses CSS instead of JS config, the plugin may have limitations. + +--- + +## Verification Checklist + +- [ ] Uniwind installed successfully +- [ ] NativeWind removed +- [ ] Metro config updated +- [ ] Babel config updated +- [ ] global.css created with theme +- [ ] Colors migrated to CSS +- [ ] tailwind.config.js removed +- [ ] global.css imported in root layout +- [ ] App builds on iOS +- [ ] App builds on Android +- [ ] All styles render correctly +- [ ] Dark mode works +- [ ] Platform selectors work +- [ ] Performance improved (noticeable) + +--- + +## Common Issues + +### Issue 1: Styles not applying + +**Solution:** +```bash +# Ensure global.css is imported in root layout +# Check src/app/_layout.tsx has: import '../styles/global.css' + +# Clear Metro cache +rm -rf $TMPDIR/metro-* +expo start -c +``` + +### Issue 2: Build fails with "Cannot find module 'uniwind'" + +**Solution:** +```bash +# Reinstall +rm -rf node_modules +pnpm install + +# Rebuild +pnpm prebuild +``` + +### Issue 3: Colors not working + +**Solution:** +```css +/* Ensure CSS variables are properly defined in global.css */ +@theme { + --color-primary: #0ea5e9; /* Not 'primary' but '--color-primary' */ +} +``` + +Usage: +```typescript + {/* Use 'primary', not 'color-primary' */} +``` + +### Issue 4: Dark mode not working + +**Solution:** +```typescript +// Ensure your app uses ColorScheme +import { useColorScheme } from 'react-native' + +export default function App() { + const colorScheme = useColorScheme() + + return ( + + {/* Your app */} + + ) +} +``` + +### Issue 5: Metro bundler slow after migration + +**Solution:** +```bash +# Uniwind compiles at build time, first build may be slower +# Subsequent builds should be faster + +# Clear cache if it persists +rm -rf .expo +rm -rf $TMPDIR/metro-* +expo start -c +``` + +--- + +## Performance Comparison + +**Before (NativeWind):** +- Runtime style computation +- Style injection on every render +- Performance depends on number of className instances + +**After (Uniwind):** +- Build-time style computation +- Pre-computed StyleSheet +- Near-native StyleSheet performance +- **2.5x faster** than NativeWind + +**You should notice:** +- Faster app startup +- Smoother scrolling +- Better FPS in lists +- Smaller JS bundle size + +--- + +## Advanced: Accessing CSS Variables in JS + +If you need to access CSS variables in JavaScript: + +```typescript +import { useResolveClassNames } from 'uniwind' + +function MyComponent() { + const styles = useResolveClassNames('bg-primary text-white p-4') + + // styles is a React Native StyleSheet object + console.log(styles) + + return +} +``` + +**Remarks:** +- Rarely needed - use className instead +- Useful for dynamic styles or animations +- Returns proper React Native StyleSheet + +--- + +## Customization + +### Add Custom Colors + +```css +/* global.css */ +@theme { + --color-brand: #ff6b6b; + --color-accent: #4ecdc4; +} +``` + +Usage: +```typescript + +``` + +### Add Custom Spacing + +```css +/* global.css */ +@theme { + --spacing-xxs: 0.25rem; + --spacing-custom: 3.5rem; +} +``` + +Usage: +```typescript + +``` + +### Custom Utilities + +```css +/* global.css */ +@layer utilities { + .shadow-custom { + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + } + + .text-shadow { + text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + } +} +``` + +--- + +## Migration Checklist by Component Type + +### Button Component +- [ ] className props work +- [ ] Variants render correctly +- [ ] Hover/press states work +- [ ] Disabled state works + +### Input Component +- [ ] Border styles correct +- [ ] Focus state works +- [ ] Error state renders +- [ ] Dark mode colors correct + +### Card Component +- [ ] Shadow renders on iOS +- [ ] Elevation works on Android +- [ ] Dark mode background correct + +### Text Component +- [ ] Font sizes correct +- [ ] Line heights preserved +- [ ] Text colors correct in both modes + +--- + +## Useful Links + +- [Uniwind Official Website](https://uniwind.dev/) +- [Uniwind GitHub](https://github.com/uni-stack/uniwind) +- [Uniwind Documentation](https://docs.uniwind.dev/) +- [Migration from NativeWind Guide](https://docs.uniwind.dev/migration-from-nativewind) +- [Uniwind Quickstart](https://docs.uniwind.dev/quickstart) +- [Tailwind CSS v4 Docs](https://tailwindcss.com/) +- [Tailwind CSS v4 Beta](https://tailwindcss.com/blog/tailwindcss-v4-beta) + +--- + +## Before & After Comparison + +### Configuration + +**Before (NativeWind):** +```javascript +// tailwind.config.js +module.exports = { + content: ['./src/**/*.{js,jsx,ts,tsx}'], + presets: [require('nativewind/preset')], + darkMode: 'class', + theme: { + extend: { + colors: require('./src/components/ui/colors'), + }, + }, +}; +``` + +**After (Uniwind):** +```css +/* src/styles/global.css */ +@import 'tailwindcss'; + +@theme { + --color-primary: #0ea5e9; + --color-background: #ffffff; +} +``` + +### Babel Configuration + +**Before:** +```javascript +presets: [ + ['babel-preset-expo', { jsxImportSource: 'nativewind' }], + 'nativewind/babel', +]; +``` + +**After:** +```javascript +presets: ['babel-preset-expo']; +``` + +### Usage + +**Before and After are the same:** +```typescript + +``` + +**But with platform selectors (new):** +```typescript + +``` + +--- + +## Next Steps + +After completing Uniwind migration: + +1. āœ… Test all screens thoroughly +2. āœ… Verify dark mode works +3. āœ… Check performance improvements +4. āœ… Commit changes +5. āž”ļø Continue to `06-testing-updates.md` + +--- + +**Estimated Time:** 1-1.5 hours +**Difficulty:** Medium-High +**Impact:** High (changes entire styling system, but improves performance) diff --git a/migration/06-testing-updates.md b/migration/06-testing-updates.md new file mode 100644 index 000000000..8f971173f --- /dev/null +++ b/migration/06-testing-updates.md @@ -0,0 +1,657 @@ +# Testing Updates + +## Overview + +Update testing infrastructure to work with Expo SDK 54 and ensure latest versions: +- **Jest** - Latest version compatible with SDK 54 +- **jest-expo** - SDK 54 preset +- **Testing Library** - Latest React Native Testing Library +- **Maestro** - Latest CLI version (2.0.10+, requires Java 17) + +## Current Setup + +- Jest ^29.7.0 +- jest-expo ~53.0.7 +- @testing-library/react-native ^12.7.2 +- Maestro CLI (installed via script) + +## Benefits + +āœ… **Compatibility** - Works with Expo SDK 54 +āœ… **Bug Fixes** - Latest testing library fixes +āœ… **Performance** - Maestro 2.0 with GraalJS (faster) +āœ… **Features** - New testing capabilities + +--- + +## Step-by-Step Instructions + +### 6.1 Update Jest and Testing Libraries + +```bash +# Update Jest ecosystem +pnpm update -D jest@latest jest-expo@~54.0.0 + +# Update Testing Library +pnpm update -D @testing-library/react-native@latest @testing-library/jest-dom@latest + +# Update Jest utilities +pnpm update -D jest-environment-jsdom@latest jest-junit@latest ts-jest@latest +``` + +**Remarks:** +- `jest-expo@~54.0.0` is specifically for Expo SDK 54 +- Use the tilde (~) to lock to SDK version +- Testing Library should remain compatible + +--- + +### 6.2 Verify jest.config.js + +Your current config should work, but verify it: + +```javascript +module.exports = { + preset: 'jest-expo', + setupFilesAfterEnv: ['/jest-setup.ts'], + testMatch: ['**/?(*.)+(spec|test).ts?(x)'], + collectCoverageFrom: [ + 'src/**/*.{ts,tsx}', + '!**/coverage/**', + '!**/node_modules/**', + '!**/babel.config.js', + '!**/jest.setup.js', + '!**/docs/**', + '!**/cli/**', + ], + moduleFileExtensions: ['js', 'ts', 'tsx'], + transformIgnorePatterns: [ + `node_modules/(?!(?:.pnpm/)?((jest-)?react-native|@react-native(-community)?|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|@sentry/.*|native-base|react-native-svg))`, + ], + coverageReporters: ['json-summary', ['text', { file: 'coverage.txt' }]], + reporters: [ + 'default', + ['github-actions', { silent: false }], + 'summary', + [ + 'jest-junit', + { + outputDirectory: 'coverage', + outputName: 'jest-junit.xml', + ancestorSeparator: ' › ', + uniqueOutputName: 'false', + suiteNameTemplate: '{filepath}', + classNameTemplate: '{classname}', + titleTemplate: '{title}', + }, + ], + ], + coverageDirectory: '/coverage/', + moduleNameMapper: { + '^@/(.*)$': '/src/$1', + }, +}; +``` + +**Potential Updates:** + +If tests fail after updates, you may need to add new packages to `transformIgnorePatterns`: + +```javascript +transformIgnorePatterns: [ + `node_modules/(?!(?:.pnpm/)?((jest-)?react-native|@react-native(-community)?|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|@sentry/.*|native-base|react-native-svg|uniwind))`, + // ^^^^^^^^ Added uniwind +], +``` + +--- + +### 6.3 Verify jest-setup.ts + +Check `jest-setup.ts` is still valid: + +```typescript +import '@testing-library/jest-dom'; +import '@testing-library/react-native/extend-expect'; + +// Mock expo-router +jest.mock('expo-router', () => ({ + useRouter: () => ({ + push: jest.fn(), + replace: jest.fn(), + back: jest.fn(), + }), + useLocalSearchParams: () => ({}), + usePathname: () => '/', +})); + +// Mock React Native modules if needed +// jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper') + +// Silence warnings +global.console = { + ...console, + error: jest.fn(), + warn: jest.fn(), +}; +``` + +--- + +### 6.4 Update Maestro CLI + +```bash +# Update Maestro to latest version +curl -Ls "https://get.maestro.mobile.dev" | bash + +# Verify version (should be 2.0.10 or higher) +maestro --version +``` + +**Expected output:** +``` +Maestro version 2.0.10 +``` + +**Remarks:** +- Maestro CLI 2.0+ requires **Java 17 or higher** +- If you don't have Java 17, install it first + +--- + +### 6.5 Install Java 17 (If Needed) + +#### macOS + +```bash +# Using Homebrew +brew install openjdk@17 + +# Set JAVA_HOME +echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc +source ~/.zshrc + +# Verify +java -version +``` + +#### Linux + +```bash +# Ubuntu/Debian +sudo apt update +sudo apt install openjdk-17-jdk + +# Verify +java -version +``` + +#### Windows + +1. Download Java 17 from [Adoptium](https://adoptium.net/) +2. Run the installer +3. Add to PATH +4. Verify in PowerShell: `java -version` + +--- + +### 6.6 Verify Maestro Flows + +Test existing Maestro flows: + +```bash +# Run all E2E tests +pnpm e2e-test + +# Or run specific flow +maestro test .maestro/flow-name.yaml -e APP_ID=com.obytes.development +``` + +**Remarks:** +- Maestro 2.0 uses **GraalJS** instead of Rhino +- Expect **faster execution** +- JavaScript engine is more modern (ES6+ support) +- Review flows for any compatibility issues + +--- + +### 6.7 Update Maestro Flows (If Needed) + +If you have complex JavaScript in your flows, verify it works with GraalJS: + +```yaml +# Example flow +appId: com.obytes.development +--- +- launchApp + +# Old Rhino syntax might need updates +- runScript: | + // Modern JavaScript is now supported + const data = [1, 2, 3].map(x => x * 2) + output.value = data.join(',') + +# Or use modern features +- runScript: | + const result = await fetch('https://api.example.com/data') + const json = await result.json() + output.userId = json.id +``` + +--- + +### 6.8 Update package.json Scripts (If Needed) + +Ensure test scripts are up to date: + +```json +{ + "scripts": { + "test": "jest", + "test:ci": "jest --coverage", + "test:watch": "jest --watch", + "install-maestro": "curl -Ls 'https://get.maestro.mobile.dev' | bash", + "e2e-test": "maestro test .maestro/ -e APP_ID=com.obytes.development" + } +} +``` + +--- + +### 6.9 Update GitHub Actions Workflows (If Applicable) + +If you have CI workflows, update them to use Node 20 and ensure Java 17: + +**`.github/workflows/test.yml`:** + +```yaml +name: Test + +on: + pull_request: + push: + branches: + - main + - master + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + + - name: Install dependencies + run: pnpm install + + - name: Run linting + run: pnpm lint + + - name: Run type checking + run: pnpm type-check + + - name: Run tests + run: pnpm test:ci + + - name: Upload coverage + uses: codecov/codecov-action@v4 + with: + files: ./coverage/coverage-final.json + fail_ci_if_error: false +``` + +**For Maestro E2E tests:** + +```yaml +name: E2E Tests + +on: + pull_request: + push: + branches: + - main + +jobs: + e2e: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + + - name: Install dependencies + run: pnpm install + + - name: Install Maestro + run: curl -Ls "https://get.maestro.mobile.dev" | bash + + - name: Build app + run: pnpm prebuild:development && pnpm ios --configuration Debug + + - name: Run Maestro tests + run: pnpm e2e-test +``` + +**Remarks:** +- Update to Node 20 (LTS) +- Ensure Java 17 for Maestro +- Update action versions to latest + +--- + +### 6.10 Run Test Suite + +```bash +# Clear Jest cache +jest --clearCache + +# Run all tests +pnpm test + +# Run with coverage +pnpm test:ci + +# Run in watch mode +pnpm test:watch +``` + +**Expected Results:** +- āœ… All tests pass +- āœ… No warnings +- āœ… Coverage reports generated + +--- + +### 6.11 Update Test Utilities (If Needed) + +If you have custom test utilities in `src/lib/test-utils.tsx`, ensure they work with latest Testing Library: + +```typescript +import { render, RenderOptions } from '@testing-library/react-native' +import { ReactElement, ReactNode } from 'react' +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' + +// Create a test query client +const createTestQueryClient = () => + new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }) + +// Wrapper with providers +function AllTheProviders({ children }: { children: ReactNode }) { + const queryClient = createTestQueryClient() + + return ( + + {/* Add other providers here */} + {children} + + ) +} + +const customRender = ( + ui: ReactElement, + options?: Omit +) => render(ui, { wrapper: AllTheProviders, ...options }) + +// Re-export everything +export * from '@testing-library/react-native' +export { customRender as render } +``` + +--- + +## Verification Checklist + +- [ ] Jest updated to latest +- [ ] jest-expo@~54.0.0 installed +- [ ] Testing Library updated +- [ ] jest.config.js verified +- [ ] jest-setup.ts verified +- [ ] All unit tests pass +- [ ] Coverage reports generate correctly +- [ ] Maestro CLI updated (2.0.10+) +- [ ] Java 17 installed +- [ ] Maestro flows run successfully +- [ ] E2E tests pass +- [ ] CI workflows updated (if applicable) +- [ ] No warnings in test output + +--- + +## Common Issues + +### Issue 1: Tests failing with "Cannot find module" + +**Solution:** +```bash +# Clear Jest cache +jest --clearCache + +# Reinstall +rm -rf node_modules +pnpm install + +# Try again +pnpm test +``` + +### Issue 2: Transform errors with new packages + +**Solution:** +```javascript +// Add problematic package to transformIgnorePatterns in jest.config.js +transformIgnorePatterns: [ + `node_modules/(?!....|uniwind|@tanstack))`, + // ^^^^^^^ Add here +], +``` + +### Issue 3: Maestro not found after install + +**Solution:** +```bash +# Check PATH +echo $PATH + +# Reinstall Maestro +curl -Ls "https://get.maestro.mobile.dev" | bash + +# Add to PATH if needed (macOS/Linux) +export PATH="$HOME/.maestro/bin:$PATH" + +# Restart terminal and try again +maestro --version +``` + +### Issue 4: Maestro requires Java 17 error + +**Solution:** +```bash +# Check Java version +java -version + +# If < 17, install Java 17 (see section 6.5) +``` + +### Issue 5: Tests timeout + +**Solution:** +```javascript +// Increase timeout in jest.config.js +module.exports = { + // ... other config + testTimeout: 10000, // 10 seconds instead of 5 +}; + +// Or per test +test('slow test', async () => { + // ... +}, 10000); // 10 second timeout +``` + +--- + +## Testing Best Practices + +### Unit Tests + +```typescript +import { render, screen, fireEvent } from '@/lib/test-utils' +import { Button } from '@/components/ui/button' + +describe('Button', () => { + it('renders correctly', () => { + render() + expect(screen.getByText('Click me')).toBeOnTheScreen() + }) + + it('handles press events', () => { + const onPress = jest.fn() + render() + + fireEvent.press(screen.getByText('Click me')) + expect(onPress).toHaveBeenCalledTimes(1) + }) + + it('shows loading state', () => { + render() + expect(screen.getByTestId('loading-indicator')).toBeOnTheScreen() + }) +}) +``` + +### Integration Tests + +```typescript +import { render, screen, waitFor } from '@/lib/test-utils' +import { LoginScreen } from '@/app/login' + +describe('LoginScreen', () => { + it('logs in successfully', async () => { + render() + + // Fill form + fireEvent.changeText(screen.getByPlaceholderText('Email'), 'test@example.com') + fireEvent.changeText(screen.getByPlaceholderText('Password'), 'password123') + + // Submit + fireEvent.press(screen.getByText('Login')) + + // Wait for success + await waitFor(() => { + expect(screen.getByText('Welcome back!')).toBeOnTheScreen() + }) + }) +}) +``` + +### E2E Tests (Maestro) + +```yaml +appId: com.obytes.development +--- +- launchApp +- assertVisible: Welcome + +# Test login flow +- tapOn: Login +- inputText: Email + text: test@example.com +- inputText: Password + text: password123 +- tapOn: Submit + +# Verify success +- assertVisible: Dashboard +``` + +--- + +## Performance Testing + +### Test Performance + +```bash +# Run tests with timing +pnpm test --verbose + +# Check slow tests +pnpm test --listTests +``` + +### Maestro Performance + +**Maestro 2.0 improvements:** +- Faster JavaScript execution (GraalJS) +- Better resource management +- Improved stability + +**You should notice:** +- Faster flow execution +- More reliable tests +- Better error messages + +--- + +## Useful Links + +### Jest +- [Jest Documentation](https://jestjs.io/) +- [Jest Expo Documentation](https://docs.expo.dev/develop/unit-testing/) +- [jest-expo npm](https://www.npmjs.com/package/jest-expo) + +### Testing Library +- [React Native Testing Library](https://callstack.github.io/react-native-testing-library/) +- [Testing Library Docs](https://testing-library.com/) +- [Common Mistakes](https://kentcdodds.com/blog/common-mistakes-with-react-testing-library) + +### Maestro +- [Maestro Documentation](https://maestro.mobile.dev/) +- [Maestro GitHub](https://github.com/mobile-dev-inc/Maestro) +- [Maestro Releases](https://github.com/mobile-dev-inc/maestro/releases) +- [Maestro 2.0 Announcement](https://maestro.mobile.dev/blog) + +--- + +## Next Steps + +After completing testing updates: + +1. āœ… Verify all tests pass +2. āœ… Run E2E tests locally +3. āœ… Commit changes +4. āž”ļø Continue to `07-verification.md` for comprehensive testing + +--- + +**Estimated Time:** 20-30 minutes +**Difficulty:** Low +**Impact:** Low (mostly version updates) diff --git a/migration/07-verification.md b/migration/07-verification.md new file mode 100644 index 000000000..72cfc30aa --- /dev/null +++ b/migration/07-verification.md @@ -0,0 +1,764 @@ +# Verification & Testing + +## Overview + +After completing all upgrades, thoroughly test the application to ensure everything works correctly. This comprehensive verification guide covers all aspects of your app. + +--- + +## Pre-Verification Checklist + +Before testing, ensure you've completed all migrations: + +- [ ] ESLint migration complete +- [ ] Expo SDK 54 upgrade complete +- [ ] Environment variables simplified +- [ ] Dependencies updated +- [ ] Uniwind migration complete +- [ ] Testing infrastructure updated +- [ ] All changes committed to git + +--- + +## 1. Clean Environment + +Start with a completely clean environment: + +```bash +# Remove all caches and build artifacts +rm -rf node_modules .expo android ios + +# Clear package manager cache +pnpm store prune + +# Clear Metro cache +rm -rf $TMPDIR/metro-* +rm -rf $TMPDIR/haste-* + +# Clear React Native cache +rm -rf $TMPDIR/react-* + +# Reinstall dependencies +pnpm install +``` + +**Expected Results:** +- Clean node_modules +- No warnings during install +- All dependencies resolved + +--- + +## 2. Run Linting + +```bash +# Run ESLint +pnpm lint + +# Fix auto-fixable issues +pnpm lint:fix + +# Type check +pnpm type-check + +# Check translations +pnpm lint:translations + +# Run all checks +pnpm check-all +``` + +**Expected Results:** +- āœ… No linting errors +- āœ… No TypeScript errors +- āœ… All auto-formatting working via ESLint +- āœ… Translation files valid +- āœ… Imports sorted correctly +- āœ… No unused imports + +**Common Issues:** +- Type errors → Check TypeScript version compatibility +- Lint errors → Run `pnpm lint:fix` to auto-fix +- Translation errors → Fix JSON formatting + +--- + +## 3. Run Tests + +```bash +# Clear Jest cache +jest --clearCache + +# Run unit tests +pnpm test + +# Run tests with coverage +pnpm test:ci + +# Watch mode (for development) +pnpm test:watch +``` + +**Expected Results:** +- āœ… All tests passing +- āœ… Coverage reports generated +- āœ… No deprecation warnings +- āœ… Test snapshots updated (if needed) + +**Common Issues:** +- Transform errors → Update transformIgnorePatterns in jest.config.js +- Mock errors → Update mocks for new package versions +- Timeout errors → Increase test timeout + +--- + +## 4. Test Development Build + +### iOS + +```bash +# Prebuild +pnpm prebuild + +# Run on simulator +pnpm ios + +# Or specific device +pnpm ios --device "iPhone 15 Pro" +``` + +**What to check:** +- [ ] App launches successfully +- [ ] No Metro bundler errors +- [ ] No runtime errors in console +- [ ] Splash screen displays correctly +- [ ] Status bar themed correctly + +### Android + +```bash +# Prebuild +pnpm prebuild + +# Run on emulator +pnpm android + +# Or specific device +pnpm android --device emulator-5554 +``` + +**What to check:** +- [ ] App launches successfully +- [ ] No Metro errors +- [ ] No runtime errors +- [ ] Splash screen works +- [ ] Navigation bar themed correctly + +### Web + +```bash +pnpm web +``` + +**What to check:** +- [ ] App loads in browser +- [ ] Responsive design works +- [ ] All features functional +- [ ] No console errors + +--- + +## 5. Test Environment Variables + +Add temporary logging to verify env vars: + +```typescript +// Add to app entry point temporarily +console.log('=== Environment Variables ==='); +console.log('API URL:', process.env.EXPO_PUBLIC_API_URL); +console.log('App Env:', process.env.EXPO_PUBLIC_APP_ENV); +console.log('Is Production:', process.env.EXPO_PUBLIC_APP_ENV === 'production'); +console.log('============================'); +``` + +**Expected Results:** +- āœ… All EXPO_PUBLIC_* variables accessible +- āœ… Correct values from .env file +- āœ… No undefined variables +- āœ… Values are strings (process.env always returns strings) + +**Remove the logging after verification** + +--- + +## 6. Test Styling (Uniwind) + +Test visual appearance and styling: + +### Light Mode +```bash +# Test in light mode +``` + +Check: +- [ ] All colors correct +- [ ] Text readable +- [ ] Buttons styled correctly +- [ ] Shadows render on iOS +- [ ] Elevation works on Android + +### Dark Mode +```bash +# Switch device to dark mode +``` + +Check: +- [ ] Dark colors applied +- [ ] Text still readable +- [ ] Smooth transition +- [ ] All screens themed correctly +- [ ] Status bar adapts + +### Platform Selectors + +Check platform-specific styles: + +```typescript +// Example: Different padding on iOS vs Android + +``` + +- [ ] iOS-specific styles apply on iOS +- [ ] Android-specific styles apply on Android +- [ ] No style leaking between platforms + +### Performance + +Compare to pre-migration: +- [ ] App startup feels faster +- [ ] Scrolling smoother +- [ ] List rendering better +- [ ] Overall snappier + +--- + +## 7. Test State Management + +### Zustand Stores + +Test all Zustand stores: + +```typescript +// Auth store +- [ ] Login works +- [ ] Logout works +- [ ] Token persists +- [ ] User data loads + +// Settings store (if applicable) +- [ ] Theme changes persist +- [ ] Language changes work +- [ ] Preferences save + +// Other stores +- [ ] All stores functional +- [ ] No console warnings +- [ ] State updates correctly +``` + +### React Query + +Test data fetching: + +```typescript +// Queries +- [ ] Data fetches successfully +- [ ] Loading states show +- [ ] Error states display +- [ ] Caching works +- [ ] Refetch works + +// Mutations +- [ ] Create operations work +- [ ] Update operations work +- [ ] Delete operations work +- [ ] Optimistic updates work +- [ ] Error handling works +``` + +### Persistence (MMKV) + +Test data persistence: + +```bash +# 1. Set some data (login, change settings) +# 2. Force close app +# 3. Reopen app +``` + +- [ ] User remains logged in +- [ ] Settings persisted +- [ ] Data survives app restart + +--- + +## 8. Test Navigation + +Test all navigation flows: + +### Tab Navigation +- [ ] All tabs accessible +- [ ] Tab icons display +- [ ] Active tab highlighted +- [ ] Tab persistence works + +### Stack Navigation +- [ ] Push navigation works +- [ ] Back navigation works +- [ ] Deep linking works (if applicable) +- [ ] Modal screens work + +### Drawer Navigation (if applicable) +- [ ] Drawer opens/closes +- [ ] Menu items work +- [ ] Drawer persists state + +--- + +## 9. Test Forms + +Test all forms in your app: + +### Input Fields +- [ ] Text input works +- [ ] Number input works +- [ ] Email validation works +- [ ] Password input toggles visibility +- [ ] Focus states correct +- [ ] Error states display + +### Form Validation (Zod + React Hook Form) +- [ ] Required fields validated +- [ ] Email format validated +- [ ] Custom validation rules work +- [ ] Error messages display +- [ ] Submit disabled when invalid + +### Form Submission +- [ ] Submit button works +- [ ] Loading state shows +- [ ] Success handling works +- [ ] Error handling works +- [ ] Form resets after success + +--- + +## 10. Test API Integration + +### API Calls +- [ ] GET requests work +- [ ] POST requests work +- [ ] PUT/PATCH requests work +- [ ] DELETE requests work +- [ ] Headers sent correctly +- [ ] Auth tokens included + +### Error Handling +- [ ] Network errors caught +- [ ] 400 errors handled +- [ ] 401 errors redirect to login +- [ ] 500 errors displayed +- [ ] Timeout errors handled + +### Loading States +- [ ] Loading indicators show +- [ ] Skeleton screens display +- [ ] Retry mechanisms work + +--- + +## 11. Test Features + +### Authentication +- [ ] Login flow works +- [ ] Logout works +- [ ] Sign up works (if applicable) +- [ ] Password reset works (if applicable) +- [ ] Token refresh works +- [ ] Protected routes work + +### Core Features +Test each major feature of your app: + +- [ ] Feature 1: [Description] +- [ ] Feature 2: [Description] +- [ ] Feature 3: [Description] +- [ ] ... + +### Push Notifications (if applicable) +- [ ] Permissions requested +- [ ] Notifications received +- [ ] Notification tap opens app +- [ ] Deep linking from notification works + +### Analytics (if applicable) +- [ ] Events tracking +- [ ] Screen views logging +- [ ] User properties set + +--- + +## 12. Test Platform-Specific Features + +### iOS Specific +- [ ] Safe area handling (notch, Dynamic Island) +- [ ] Keyboard avoidance works +- [ ] Pull to refresh works +- [ ] Haptic feedback works +- [ ] Share sheet works + +### Android Specific +- [ ] Back button handling +- [ ] Status bar/navigation bar styling +- [ ] Pull to refresh works +- [ ] Share intent works +- [ ] Deep links work + +--- + +## 13. Test Performance + +### App Startup +```bash +# Time app launch +# Should be under 3 seconds on device +``` + +### List Rendering +```bash +# Test FlashList with 1000+ items +# Should scroll smoothly at 60fps +``` + +### Memory Usage +```bash +# Monitor memory in Xcode/Android Studio +# Should not leak memory +# Should stay under reasonable limits +``` + +### Bundle Size +```bash +# Check bundle size +npx expo export + +# Compare to pre-migration +# Should be similar or smaller (Uniwind reduces size) +``` + +--- + +## 14. Run E2E Tests + +### Maestro Tests + +```bash +# Build for testing +pnpm prebuild:development + +# Run iOS simulator +pnpm ios + +# In another terminal, run Maestro +pnpm e2e-test + +# Or run specific flow +maestro test .maestro/login-flow.yaml -e APP_ID=com.obytes.development +``` + +**Expected Results:** +- āœ… All E2E flows pass +- āœ… No Maestro errors +- āœ… App behavior correct +- āœ… Faster execution than before (Maestro 2.0) + +--- + +## 15. Test Production Build + +### Local Production Build + +```bash +# iOS +pnpm prebuild:production +pnpm ios --configuration Release + +# Android +pnpm prebuild:production +pnpm android --variant release +``` + +**What to check:** +- [ ] Builds successfully +- [ ] No console logs in production +- [ ] Performance optimized +- [ ] Bundle size reasonable +- [ ] No debug tools visible + +### EAS Build (Recommended) + +```bash +# Production builds +pnpm build:production:ios +pnpm build:production:android + +# Or staging +pnpm build:staging:ios +pnpm build:staging:android +``` + +**Monitor build:** +- Go to https://expo.dev +- Check build logs +- Download IPA/APK when complete +- Install on physical device +- Test thoroughly + +--- + +## 16. Check for Warnings + +### Expo Doctor + +```bash +npx expo-doctor +``` + +**Expected:** āœ… No critical warnings + +### Outdated Packages + +```bash +pnpm outdated +``` + +**Review:** Major updates you might have missed + +### Security Audit + +```bash +pnpm audit +``` + +**Expected:** No high/critical vulnerabilities + +### Console Warnings + +Run app and check for: +- [ ] No React warnings +- [ ] No deprecation warnings +- [ ] No performance warnings +- [ ] No third-party library warnings + +--- + +## 17. Stress Testing + +### Heavy Load +- [ ] Open all screens rapidly +- [ ] Scroll long lists +- [ ] Rapid navigation +- [ ] Background/foreground repeatedly +- [ ] App remains stable + +### Edge Cases +- [ ] Empty states display +- [ ] Error states display +- [ ] No network scenario +- [ ] Slow network scenario +- [ ] Large data sets + +### Device Rotation +- [ ] Landscape mode works +- [ ] Portrait mode works +- [ ] Rotation transitions smooth +- [ ] No layout issues + +--- + +## 18. Accessibility Testing + +### Screen Reader +- [ ] VoiceOver works (iOS) +- [ ] TalkBack works (Android) +- [ ] All interactive elements accessible +- [ ] Labels correct + +### Font Scaling +```bash +# Increase device font size +# Settings > Display > Font Size > Largest +``` + +- [ ] Text scales appropriately +- [ ] No text truncation +- [ ] Layout doesn't break + +### Color Contrast +- [ ] Text readable in light mode +- [ ] Text readable in dark mode +- [ ] Sufficient contrast ratios +- [ ] Color-blind friendly (if applicable) + +--- + +## 19. Internationalization (i18n) + +If you support multiple languages: + +```typescript +// Switch language +i18n.changeLanguage('fr'); +``` + +- [ ] Language switches correctly +- [ ] All strings translated +- [ ] RTL support (if applicable) +- [ ] Number/date formatting correct +- [ ] Pluralization works + +--- + +## 20. Final Checklist + +### Build & Deploy +- [ ] Development build works +- [ ] Staging build works +- [ ] Production build works +- [ ] iOS build succeeds +- [ ] Android build succeeds +- [ ] Web build succeeds (if applicable) + +### Code Quality +- [ ] All lint checks pass +- [ ] All tests pass +- [ ] Type checking passes +- [ ] No console errors +- [ ] No warnings +- [ ] Code formatted correctly + +### Functionality +- [ ] All features work +- [ ] Navigation works +- [ ] Authentication works +- [ ] API calls work +- [ ] State management works +- [ ] Persistence works + +### Performance +- [ ] App startup fast +- [ ] Smooth scrolling +- [ ] No memory leaks +- [ ] Bundle size reasonable +- [ ] Network requests optimized + +### Visual +- [ ] Light mode correct +- [ ] Dark mode correct +- [ ] Platform-specific styles work +- [ ] Responsive design works +- [ ] Animations smooth + +### Testing +- [ ] Unit tests pass +- [ ] Integration tests pass +- [ ] E2E tests pass +- [ ] Manual testing complete + +### Documentation +- [ ] README updated (if needed) +- [ ] Team notified +- [ ] .env.example created +- [ ] Migration notes documented + +--- + +## Post-Verification Actions + +### If Everything Passes āœ… + +1. **Create a final commit:** + ```bash + git add . + git commit -m "chore: complete template upgrade to v8.1.0 + + - Migrate ESLint to @antfu/eslint-config + - Upgrade to Expo SDK 54 + - Simplify environment variables + - Update all dependencies + - Migrate to Uniwind + - Update testing infrastructure + " + ``` + +2. **Tag the release:** + ```bash + git tag -a v8.1.0 -m "Template upgrade complete" + git push origin v8.1.0 + ``` + +3. **Merge to main:** + ```bash + git checkout main + git merge upgrade/react-native-template + git push + ``` + +4. **Deploy to staging:** + ```bash + pnpm build:staging:ios + pnpm build:staging:android + ``` + +5. **Test on staging** + +6. **Deploy to production:** + ```bash + pnpm build:production:ios + pnpm build:production:android + ``` + +--- + +### If Issues Found āš ļø + +1. **Document the issue** +2. **Check the rollback plan** (`09-rollback-plan.md`) +3. **Fix or rollback** depending on severity +4. **Re-run verification** + +--- + +## Useful Links + +- [Expo Doctor](https://docs.expo.dev/more/expo-cli/#doctor) +- [React Native Debugging](https://reactnative.dev/docs/debugging) +- [Chrome DevTools](https://developer.chrome.com/docs/devtools/) +- [Flipper](https://fbflipper.com/) + +--- + +## Next Steps + +After verification: + +1. āœ… All tests passed +2. āœ… Manual testing complete +3. āž”ļø Review `08-summary.md` for changes overview +4. āž”ļø Keep `09-rollback-plan.md` handy just in case + +--- + +**Estimated Time:** 2-3 hours (comprehensive testing) +**Difficulty:** Medium +**Impact:** Critical (ensures everything works) diff --git a/migration/08-summary.md b/migration/08-summary.md new file mode 100644 index 000000000..a2a7d8200 --- /dev/null +++ b/migration/08-summary.md @@ -0,0 +1,577 @@ +# Summary of Changes + +## Overview + +This document provides a quick reference of all changes made during the template upgrade from v8.0.0 to v8.1.0+. + +--- + +## Files Created + +### Configuration Files +- `.env` - Single environment file with EXPO_PUBLIC_* variables +- `.env.example` - Example environment variables for team +- `.vscode/settings.json` - VS Code settings for ESLint auto-fix +- `src/styles/global.css` - Uniwind theme configuration (Tailwind v4) + +### Documentation +- `migration/00-overview.md` - Migration overview +- `migration/01-eslint-migration.md` - ESLint setup guide +- `migration/02-expo-sdk-54-upgrade.md` - Expo upgrade guide +- `migration/03-environment-variables.md` - Env vars guide +- `migration/04-dependency-updates.md` - Dependencies guide +- `migration/05-uniwind-migration.md` - Uniwind migration guide +- `migration/06-testing-updates.md` - Testing updates guide +- `migration/07-verification.md` - Verification checklist +- `migration/08-summary.md` - This file +- `migration/09-rollback-plan.md` - Rollback instructions + +--- + +## Files Modified + +### Core Configuration +- **`package.json`** + - Updated dependencies and devDependencies + - Simplified scripts (removed environment-specific commands) + - Added `lint:fix` script + - Updated package manager to pnpm 10.12.3 + +- **`eslint.config.mjs`** + - Completely rewritten with @antfu/eslint-config + - Removed Prettier integration + - Added ESLint Stylistic for formatting + - Kept project-specific plugins (i18n-json, tailwindcss, testing-library, react-compiler) + +- **`env.js`** + - Simplified to work with Expo's default .env loading + - Updated to use EXPO_PUBLIC_* prefix + - Removed custom dotenv loading logic + - Still provides Zod validation + +- **`babel.config.js`** + - Removed NativeWind presets + - Removed `@env` alias + - Simplified to basic Expo setup + +- **`metro.config.js`** + - Added Uniwind Metro config wrapper + - Maintains Expo default configuration + +- **`jest.config.js`** + - Updated jest-expo preset to ~54.0.0 + - May need transformIgnorePatterns updates for new packages + +- **`tsconfig.json`** + - Removed `@env` path mapping (if present) + - Uses standard process.env.EXPO_PUBLIC_* instead + +- **`.gitignore`** + - Added .env (single file) to gitignore + - Removed specific env files (.env.development, etc.) + +### App Code +- **All files importing from `@env`** + - Updated to use `process.env.EXPO_PUBLIC_*` + - Or updated to use new typed Env helper (`@/lib/env`) + +- **`src/app/_layout.tsx`** (or app entry) + - Added `import '../styles/global.css'` at top + +- **`src/lib/env.ts`** (optional, if created) + - New typed helper for accessing env variables + +--- + +## Files Deleted + +### Configuration Files +- `.prettierrc.js` - Replaced by ESLint Stylistic +- `.prettierignore` - No longer needed +- `tailwind.config.js` - Replaced by `global.css` +- `.env.development` - Consolidated to single .env +- `.env.staging` - Consolidated to single .env +- `.env.production` - Consolidated to single .env + +### Optional +- `src/components/ui/colors.js` - Can be migrated to CSS variables (optional to keep) + +--- + +## Dependency Changes + +### Removed Dependencies + +```json +{ + "devDependencies": { + "prettier": "removed", + "eslint-config-prettier": "removed", + "eslint-plugin-prettier": "removed", + "eslint-plugin-simple-import-sort": "removed", + "eslint-plugin-unused-imports": "removed", + "@typescript-eslint/eslint-plugin": "removed", + "@typescript-eslint/parser": "removed", + "typescript-eslint": "removed", + "@eslint/js": "removed", + "@eslint/eslintrc": "removed", + "eslint-config-expo": "removed" + }, + "dependencies": { + "nativewind": "removed", + "tailwindcss": "removed (v3)" + } +} +``` + +### Added Dependencies + +```json +{ + "devDependencies": { + "@antfu/eslint-config": "latest", + "tailwindcss": "@next (v4)", + "@tailwindcss/cli": "@next" + }, + "dependencies": { + "uniwind": "latest" + } +} +``` + +### Updated Dependencies + +```json +{ + "dependencies": { + "expo": "~54.0.0", + "react": "19.1.0", + "react-native": "0.81.0", + "react-dom": "19.1.0", + "@tanstack/react-query": "latest", + "zustand": "latest", + "react-hook-form": "latest", + "@hookform/resolvers": "latest", + "zod": "latest", + "axios": "latest", + "@gorhom/bottom-sheet": "latest", + "@shopify/flash-list": "latest", + "react-native-mmkv": "latest", + "i18next": "latest", + "react-i18next": "latest" + }, + "devDependencies": { + "jest-expo": "~54.0.0", + "jest": "latest", + "@testing-library/react-native": "latest", + "@testing-library/jest-dom": "latest", + "typescript": "latest", + "@types/react": "latest", + "@babel/core": "latest", + "husky": "latest", + "lint-staged": "latest", + "@commitlint/cli": "latest", + "@commitlint/config-conventional": "latest" + } +} +``` + +--- + +## Script Changes + +### Before (package.json scripts) + +```json +{ + "scripts": { + "start": "cross-env EXPO_NO_DOTENV=1 expo start", + "prebuild": "cross-env EXPO_NO_DOTENV=1 pnpm expo prebuild", + "android": "cross-env EXPO_NO_DOTENV=1 expo run:android", + "ios": "cross-env EXPO_NO_DOTENV=1 expo run:ios", + "start:staging": "cross-env APP_ENV=staging pnpm run start", + "prebuild:staging": "cross-env APP_ENV=staging pnpm run prebuild", + "android:staging": "cross-env APP_ENV=staging pnpm run android", + "ios:staging": "cross-env APP_ENV=staging pnpm run ios", + "lint": "eslint . --ext .js,.jsx,.ts,.tsx", + "lint:translations": "eslint ./src/translations/ --fix --ext .json" + } +} +``` + +### After (package.json scripts) + +```json +{ + "scripts": { + "start": "expo start", + "prebuild": "expo prebuild", + "android": "expo run:android", + "ios": "expo run:ios", + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "lint:translations": "eslint ./src/translations/ --fix --ext .json" + } +} +``` + +**Changes:** +- Removed `cross-env EXPO_NO_DOTENV=1` from all scripts +- Removed environment-specific scripts (start:staging, etc.) +- Removed `--ext` flag from lint command (not needed with flat config) +- Added `lint:fix` for manual formatting + +--- + +## Configuration Changes + +### 1. ESLint Configuration + +**Before:** Multiple configs with Prettier +**After:** Single antfu config with ESLint Stylistic + +**Key Changes:** +- Formatting now handled by ESLint (not Prettier) +- Import sorting built-in +- Unused imports removed automatically +- More concise configuration +- Better TypeScript integration + +### 2. Formatting + +**Before:** Prettier +**After:** ESLint Stylistic + +**Benefits:** +- One tool instead of two +- Faster +- No conflicts between Prettier and ESLint +- Auto-fix on save works better + +### 3. Environment Variables + +**Before:** +- Multiple .env files (.env.development, .env.staging, .env.production) +- Custom loading via APP_ENV +- Custom `@env` alias + +**After:** +- Single .env file +- Expo's default EXPO_PUBLIC_* prefix +- Standard process.env access +- Manage multiple environments via EAS Secrets or CI/CD + +### 4. Styling + +**Before:** NativeWind v4 + Tailwind v3 +**After:** Uniwind + Tailwind v4 + +**Key Changes:** +- 2.5x faster performance +- Build-time compilation instead of runtime +- CSS-first configuration (no JS config file) +- Platform selectors built-in (ios:, android:) +- No `tailwind.config.js` + +### 5. Testing + +**Before:** Jest + jest-expo ~53.0.7 + Maestro 1.x +**After:** Jest + jest-expo ~54.0.0 + Maestro 2.0+ + +**Key Changes:** +- Compatible with SDK 54 +- Maestro 2.0 with GraalJS (faster, more modern) +- Requires Java 17 for Maestro + +--- + +## Version Bumps + +| Package | Before | After | +|---------|---------|--------| +| **Expo SDK** | ~53.0.12 | ~54.0.0 | +| **React** | 19.0.0 | 19.1.0 | +| **React Native** | 0.79.4 | 0.81.0 | +| **ESLint** | 9.28.0 | 9.28.0 (config changed) | +| **TypeScript** | 5.8.3 | latest | +| **Zustand** | 5.0.5 | latest | +| **React Query** | 5.52.1 | latest | +| **Jest** | 29.7.0 | latest | +| **Testing Library** | 12.7.2 | latest | + +--- + +## Breaking Changes Summary + +### 1. ESLint / Prettier + +**Impact:** High +- Prettier removed completely +- All team members need to update VS Code settings +- Pre-commit hooks changed + +**Migration:** Update `.vscode/settings.json`, restart VS Code + +--- + +### 2. Expo SDK 54 + +**Impact:** High +- Reanimated v4 requires New Architecture (or stay on v3) +- expo-file-system API changed (use /legacy) +- Some vector icons renamed + +**Migration:** Follow 02-expo-sdk-54-upgrade.md + +--- + +### 3. Environment Variables + +**Impact:** Medium +- All env imports need updating +- `@env` alias removed +- Use EXPO_PUBLIC_* prefix + +**Migration:** Find/replace imports, update values + +--- + +### 4. Uniwind / Styling + +**Impact:** High (visual) +- NativeWind removed +- Tailwind v4 (CSS-first) +- tailwind.config.js removed + +**Migration:** Create global.css, import in app entry + +--- + +### 5. React Query v5 + +**Impact:** Medium (if upgrading from v4) +- `isLoading` → `isPending` +- `cacheTime` → `gcTime` +- Callbacks removed + +**Migration:** Use codemod or manual updates + +--- + +## Performance Improvements + +### Uniwind +- **2.5x faster** than NativeWind +- Build-time compilation +- Smaller JS bundle +- Near-native StyleSheet performance + +### Expo SDK 54 +- Faster iOS builds (precompiled XCFrameworks) +- Improved Metro bundler +- React Native 0.81 optimizations + +### Maestro 2.0 +- Faster test execution (GraalJS) +- Better resource management +- More reliable + +--- + +## New Features + +### Platform Selectors (Uniwind) +```typescript + +``` + +### ESLint Stylistic +- Built-in formatting +- Auto-import sorting +- Auto-remove unused imports + +### Expo SDK 54 +- iOS 26 support +- Android 16 support +- New expo-file-system API +- Better dark mode support + +--- + +## Team Impact + +### What Team Members Need to Do + +1. **Pull latest code** + ```bash + git pull origin main + ``` + +2. **Clean install** + ```bash + rm -rf node_modules + pnpm install + ``` + +3. **Update VS Code settings** + - Settings file is committed (`.vscode/settings.json`) + - Restart VS Code + +4. **Create .env file** + ```bash + cp .env.example .env + # Fill in actual values + ``` + +5. **Rebuild native** + ```bash + pnpm prebuild + ``` + +6. **Test locally** + ```bash + pnpm ios # or pnpm android + ``` + +### What Changed in Workflow + +**Before:** +- Run Prettier + ESLint separately +- Multiple .env files for different environments +- Use `APP_ENV=staging` to switch environments + +**After:** +- Only run ESLint (formats and lints) +- Single .env file (change values or use EAS Secrets) +- Faster styling with Uniwind + +--- + +## CI/CD Impact + +### GitHub Actions + +**Updates needed:** +- Node version 20 +- Java 17 for Maestro +- Updated action versions +- Remove Prettier commands +- Update test commands + +**Example:** +```yaml +- name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + +- name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' +``` + +### EAS Builds + +**Updates needed:** +- Environment variables via EAS Secrets or eas.json +- Updated SDK version in app.config.ts + +--- + +## Documentation Updates + +### README Changes +- Update version number +- Update setup instructions +- Update environment variable section +- Update styling section (Uniwind) +- Update linting section (antfu) + +### Team Wiki / Docs +- Share migration guides +- Document new env var approach +- Document Uniwind usage +- Document ESLint auto-fix + +--- + +## Migration Statistics + +**Time Investment:** +- ESLint Migration: ~30-45 min +- Expo SDK 54: ~1-2 hours +- Env Variables: ~30 min +- Dependencies: ~45-60 min +- Uniwind: ~1-1.5 hours +- Testing Updates: ~20-30 min +- Verification: ~2-3 hours + +**Total: 6-9 hours** (depends on project size and issues encountered) + +**Benefits:** +- 2.5x faster styling +- Cleaner, more maintainable code +- Latest security patches +- Better developer experience +- Future-proof setup + +--- + +## Useful Commands Reference + +### Development +```bash +pnpm start # Start Metro +pnpm ios # Run on iOS +pnpm android # Run on Android +pnpm web # Run on web +``` + +### Linting +```bash +pnpm lint # Check for issues +pnpm lint:fix # Auto-fix issues +pnpm type-check # TypeScript check +pnpm check-all # All checks +``` + +### Testing +```bash +pnpm test # Run unit tests +pnpm test:ci # Tests with coverage +pnpm e2e-test # Run Maestro tests +``` + +### Building +```bash +pnpm prebuild # Generate native directories +pnpm build:production:ios # EAS iOS build +pnpm build:production:android # EAS Android build +``` + +### Utilities +```bash +npx expo-doctor # Check for issues +pnpm outdated # Check for updates +pnpm audit # Security check +``` + +--- + +## Next Steps + +1. āœ… Review this summary +2. āœ… Keep migration docs for reference +3. āœ… Share with team +4. āœ… Update project README +5. āœ… Document learnings +6. āœ… Consider blog post or internal wiki +7. āž”ļø See `09-rollback-plan.md` if issues arise + +--- + +**Template Version:** 8.0.0 → 8.1.0+ +**Last Updated:** January 21, 2026 +**Maintained By:** Obytes Team diff --git a/migration/09-rollback-plan.md b/migration/09-rollback-plan.md new file mode 100644 index 000000000..13883f356 --- /dev/null +++ b/migration/09-rollback-plan.md @@ -0,0 +1,686 @@ +# Rollback Plan + +## Overview + +If you encounter critical issues during or after the migration, this guide provides strategies to rollback changes safely. + +**Important:** Always commit your work at key milestones so you have safe restore points. + +--- + +## Pre-Rollback Checklist + +Before rolling back, try these quick fixes: + +- [ ] Clear all caches (`rm -rf node_modules .expo android ios`) +- [ ] Reinstall dependencies (`pnpm install`) +- [ ] Restart Metro bundler (`expo start -c`) +- [ ] Restart VS Code +- [ ] Check error messages carefully +- [ ] Search for the error in GitHub Issues +- [ ] Review the specific migration guide for common issues + +**If issues persist, proceed with rollback.** + +--- + +## Full Rollback (Revert Everything) + +### Option 1: Using Git Reset (Recommended) + +If you haven't pushed your changes yet: + +```bash +# See your commit history +git log --oneline + +# Reset to before migration (replace with actual hash) +git reset --hard + +# Example: +git reset --hard HEAD~10 # Go back 10 commits + +# Reinstall old dependencies +rm -rf node_modules .expo android ios +pnpm install + +# Rebuild +pnpm prebuild +``` + +**Caution:** This permanently deletes uncommitted changes. + +--- + +### Option 2: Using Git Revert (For Pushed Commits) + +If you already pushed to remote: + +```bash +# Revert the merge commit or specific commits +git revert + +# Or revert a range +git revert .. + +# Push the revert +git push +``` + +**Note:** This creates new commits that undo previous changes. + +--- + +### Option 3: Using Backup Branch + +If you created a backup branch before starting: + +```bash +# Switch to backup branch +git checkout backup/pre-upgrade + +# Create new branch from backup +git checkout -b main-restored + +# Force push to restore (DANGEROUS - coordinate with team) +git push origin main-restored:main --force + +# Or merge backup into current branch +git checkout main +git merge backup/pre-upgrade +``` + +--- + +## Partial Rollback (Revert Specific Migrations) + +If only one migration is problematic, you can rollback just that part. + +### Rollback ESLint Migration + +```bash +# Restore old config files +git checkout HEAD~1 -- eslint.config.mjs .prettierrc.js .prettierignore package.json pnpm-lock.yaml + +# Restore VS Code settings (if needed) +git checkout HEAD~1 -- .vscode/settings.json + +# Reinstall old dependencies +pnpm install + +# Restart VS Code +``` + +**Files to restore:** +- `eslint.config.mjs` (or `.eslintrc.js` if you had that) +- `.prettierrc.js` +- `.prettierignore` +- `package.json` +- `.vscode/settings.json` + +--- + +### Rollback Expo SDK 54 + +```bash +# Downgrade to SDK 53 +pnpm add expo@~53.0.12 +npx expo install --fix + +# Downgrade React and React Native +pnpm add react@19.0.0 react-native@0.79.4 react-dom@19.0.0 + +# Downgrade jest-expo +pnpm add -D jest-expo@~53.0.7 + +# Clean rebuild +rm -rf node_modules .expo android ios +pnpm install +pnpm prebuild +``` + +**Test after rollback:** +```bash +pnpm ios +pnpm android +``` + +--- + +### Rollback Environment Variables + +```bash +# Restore old env.js +git checkout HEAD~1 -- env.js + +# Restore old env files +git checkout HEAD~1 -- .env.development .env.staging .env.production + +# Restore babel config (with @env alias) +git checkout HEAD~1 -- babel.config.js + +# Restore package.json scripts +git checkout HEAD~1 -- package.json + +# Reinstall +pnpm install +``` + +**Find and revert env variable changes in code:** + +```bash +# Find files using process.env.EXPO_PUBLIC_* +grep -r "process.env.EXPO_PUBLIC_" src/ + +# Revert to @env imports +# This requires manual changes +``` + +--- + +### Rollback Uniwind (Back to NativeWind) + +```bash +# Remove Uniwind +pnpm remove uniwind +pnpm remove -D tailwindcss @tailwindcss/cli + +# Reinstall NativeWind +pnpm add nativewind@^4.1.21 +pnpm add -D tailwindcss@3.4.4 + +# Restore configs +git checkout HEAD~1 -- tailwind.config.js babel.config.js metro.config.js + +# Remove global.css +rm -f src/styles/global.css + +# Remove import from app entry +# Edit src/app/_layout.tsx and remove: import '../styles/global.css' + +# Clean rebuild +rm -rf node_modules .expo android ios +pnpm install +pnpm prebuild +``` + +--- + +### Rollback Dependency Updates + +```bash +# Restore old package.json +git checkout HEAD~1 -- package.json pnpm-lock.yaml + +# Reinstall old versions +rm -rf node_modules +pnpm install +``` + +**Or manually downgrade specific packages:** + +```bash +# Example: Rollback React Query to v4 +pnpm add @tanstack/react-query@^4.36.0 + +# Revert code changes +git checkout HEAD~1 -- src/ # Be careful with this +``` + +--- + +### Rollback Testing Updates + +```bash +# Downgrade Jest and Testing Library +pnpm add -D jest@29.7.0 jest-expo@~53.0.7 +pnpm add -D @testing-library/react-native@^12.7.2 + +# Downgrade Maestro (if needed) +# Uninstall current version +rm -rf ~/.maestro + +# Install specific older version +curl -Ls "https://get.maestro.mobile.dev/1.38.1" | bash +``` + +--- + +## Selective File Restoration + +### Restore Specific Files + +```bash +# Restore a specific file from a commit +git checkout -- path/to/file + +# Example: Restore package.json from 5 commits ago +git checkout HEAD~5 -- package.json + +# Restore multiple files +git checkout HEAD~5 -- package.json babel.config.js +``` + +### View File at Specific Commit + +```bash +# View file without restoring +git show HEAD~5:package.json + +# Save to a different file to compare +git show HEAD~5:package.json > package.json.old +``` + +--- + +## Partial Rollback Strategies + +### Strategy 1: Cherry-Pick Good Changes + +```bash +# Create a new branch from backup +git checkout -b migration-v2 backup/pre-upgrade + +# Cherry-pick only successful migrations +git cherry-pick + +# Skip problematic ones +``` + +### Strategy 2: Incremental Rebuild + +```bash +# Start from backup +git checkout backup/pre-upgrade +git checkout -b migration-retry + +# Apply migrations one by one +# Test thoroughly after each +# Commit working changes +# Skip problematic ones for now +``` + +--- + +## Common Rollback Scenarios + +### Scenario 1: App Won't Build After Migration + +**Quick Fix:** +```bash +# Clean everything +rm -rf node_modules .expo android ios +rm -rf $TMPDIR/metro-* +rm -rf $TMPDIR/haste-* + +# Reinstall +pnpm install +pnpm prebuild + +# Try again +pnpm ios +``` + +**If still failing:** +```bash +# Full rollback +git reset --hard backup/pre-upgrade +pnpm install +pnpm prebuild +``` + +--- + +### Scenario 2: Tests Failing After Migration + +**Quick Fix:** +```bash +# Clear Jest cache +jest --clearCache + +# Reinstall +rm -rf node_modules +pnpm install + +# Run tests +pnpm test +``` + +**If still failing:** +```bash +# Rollback testing changes only +git checkout HEAD~1 -- jest.config.js jest-setup.ts package.json +pnpm install +pnpm test +``` + +--- + +### Scenario 3: Styling Broken (Uniwind Issues) + +**Quick Fix:** +```bash +# Clear Metro cache +rm -rf $TMPDIR/metro-* +expo start -c + +# Rebuild +rm -rf android ios +pnpm prebuild +``` + +**If still broken:** +```bash +# Rollback to NativeWind (see above) +# Or fix styling issues manually +``` + +--- + +### Scenario 4: ESLint Errors Everywhere + +**Quick Fix:** +```bash +# Auto-fix most issues +pnpm lint:fix + +# Commit the fixes +git add . +git commit -m "fix: auto-fix eslint errors" +``` + +**If too many errors:** +```bash +# Rollback ESLint changes +git checkout HEAD~1 -- eslint.config.mjs .prettierrc.js package.json +pnpm install + +# Restart VS Code +``` + +--- + +### Scenario 5: Env Variables Not Working + +**Quick Fix:** +```bash +# Check .env file exists +cat .env + +# Check values are correct +# Restart Metro +expo start -c +``` + +**If still not working:** +```bash +# Rollback env changes +git checkout HEAD~1 -- env.js babel.config.js package.json +git checkout HEAD~1 -- .env.development .env.staging .env.production + +# Revert code changes +# Find files with process.env.EXPO_PUBLIC_* +grep -r "process.env.EXPO_PUBLIC_" src/ + +# Manually change back to @env imports +``` + +--- + +## Emergency Procedures + +### Critical Production Issue + +If you deployed to production and there's a critical issue: + +**Immediate Actions:** +1. **Rollback Production Build** + ```bash + # Deploy previous production build + # Use your app store's rollback feature + # Or deploy previous IPA/APK + ``` + +2. **Fix in Code** + ```bash + # On your machine + git checkout production-tag-before-upgrade + git checkout -b hotfix/critical-issue + + # Make minimal fix + # Test thoroughly + # Deploy hotfix + ``` + +3. **Communicate** + - Alert team + - Post status update + - Document issue + +--- + +### Can't Rollback (Pushed and Deployed) + +If you can't easily rollback: + +**Option 1: Forward Fix** +```bash +# Fix the issue in a new commit +# Don't try to undo - fix forward +git checkout -b fix/migration-issue + +# Make fixes +# Test thoroughly +# Deploy +``` + +**Option 2: Selective Revert** +```bash +# Revert only problematic commits +git revert +git push + +# Test +# Deploy +``` + +--- + +## Testing After Rollback + +After any rollback, test thoroughly: + +### Checklist +- [ ] App builds successfully +- [ ] Tests pass +- [ ] Linting works +- [ ] App runs on iOS +- [ ] App runs on Android +- [ ] All features work +- [ ] No console errors +- [ ] Team can pull and build + +### Verification +```bash +# Clean install +rm -rf node_modules .expo android ios +pnpm install + +# Lint +pnpm lint + +# Test +pnpm test + +# Build +pnpm prebuild +pnpm ios +pnpm android +``` + +--- + +## Preventing Future Rollback Needs + +### Best Practices + +1. **Commit Often** + ```bash + # After each successful migration + git add . + git commit -m "feat: complete ESLint migration" + ``` + +2. **Create Backup Branch** + ```bash + # Before starting any migration + git branch backup/pre-migration-$(date +%Y%m%d) + ``` + +3. **Test Before Committing** + - Run lint + - Run tests + - Build app + - Manual testing + +4. **Use Feature Branches** + ```bash + git checkout -b feature/eslint-migration + # Work, test, commit + # Only merge when confident + ``` + +5. **Tag Stable Versions** + ```bash + git tag -a v8.0.0-stable -m "Stable before migration" + git push origin v8.0.0-stable + ``` + +6. **Incremental Migration** + - Do one migration at a time + - Test thoroughly between migrations + - Commit after each successful migration + +--- + +## Documentation After Rollback + +If you rollback, document: + +### What Went Wrong +```markdown +## Migration Rollback - [Date] + +### Issue +- What failed +- Error messages +- When it was discovered + +### Impact +- What was affected +- How severe +- User impact + +### Rollback Performed +- What was rolled back +- How it was done +- Current state + +### Root Cause +- Why it failed +- What was missed +- Lessons learned + +### Next Steps +- Plan to retry? +- Alternative approach? +- Timeline +``` + +--- + +## Getting Help + +If rollback isn't solving the issue: + +### Community Resources +- [Expo Forums](https://forums.expo.dev/) +- [React Native Discord](https://discord.gg/react-native) +- [Expo Discord](https://chat.expo.dev/) +- [Stack Overflow](https://stackoverflow.com/questions/tagged/react-native) + +### GitHub Issues +- [Expo Issues](https://github.com/expo/expo/issues) +- [React Native Issues](https://github.com/facebook/react-native/issues) +- [@antfu/eslint-config Issues](https://github.com/antfu/eslint-config/issues) +- [Uniwind Issues](https://github.com/uni-stack/uniwind/issues) + +### Professional Help +- Obytes Team +- React Native consultants +- Expo support (if using EAS) + +--- + +## Useful Commands Reference + +### Git Commands +```bash +# View history +git log --oneline --graph + +# See what changed +git diff HEAD~1 + +# Restore file +git checkout HEAD~1 -- file.js + +# Reset (DANGEROUS) +git reset --hard HEAD~5 + +# Revert commit +git revert + +# Create backup +git branch backup/$(date +%Y%m%d) +``` + +### Cleanup Commands +```bash +# Nuclear clean +rm -rf node_modules .expo android ios +rm -rf $TMPDIR/metro-* +rm -rf $TMPDIR/haste-* +rm -rf $TMPDIR/react-* + +# Reinstall +pnpm install +pnpm prebuild +``` + +--- + +## Summary + +**Key Takeaways:** +- āœ… Always create backups before major migrations +- āœ… Commit frequently during migration +- āœ… Test thoroughly at each step +- āœ… Know how to rollback before starting +- āœ… Document issues for future reference +- āœ… Don't panic - most issues are fixable + +**Remember:** Rollback is always an option, but it's better to fix forward when possible. + +--- + +## Related Documents + +- `00-overview.md` - Migration overview +- `07-verification.md` - Testing checklist +- `08-summary.md` - Summary of changes + +--- + +**Last Updated:** January 21, 2026 +**Maintained By:** Obytes Team diff --git a/migration/README.md b/migration/README.md new file mode 100644 index 000000000..369afd01b --- /dev/null +++ b/migration/README.md @@ -0,0 +1,280 @@ +# React Native Template Migration Guide + +Welcome to the comprehensive migration guide for upgrading your React Native template from v8.0.0 to v8.1.0+. + +## šŸ“š Documentation Structure + +### Start Here +- **[00-overview.md](./00-overview.md)** - Read this first! Overview of all migrations, recommended approaches, and prerequisites + +### Migration Guides (Follow in Order) + +1. **[01-eslint-migration.md](./01-eslint-migration.md)** + - Migrate to @antfu/eslint-config + - Remove Prettier, use ESLint Stylistic + - ā±ļø 30-45 minutes | šŸ”“ High Impact + +2. **[02-expo-sdk-54-upgrade.md](./02-expo-sdk-54-upgrade.md)** + - Upgrade from Expo SDK 53 to 54 + - React Native 0.81 + React 19.1 + - ā±ļø 1-2 hours | šŸ”“ High Impact + +3. **[03-environment-variables.md](./03-environment-variables.md)** + - Simplify to single .env file + - Use EXPO_PUBLIC_* prefix + - ā±ļø 30 minutes | 🟔 Medium Impact + +4. **[04-dependency-updates.md](./04-dependency-updates.md)** + - Update React Query, Zustand, and all libraries + - Latest versions for security and features + - ā±ļø 45-60 minutes | 🟔 Medium Impact + +5. **[05-uniwind-migration.md](./05-uniwind-migration.md)** + - Migrate from NativeWind to Uniwind + - 2.5x performance improvement + - ā±ļø 1-1.5 hours | šŸ”“ High Impact + +6. **[06-testing-updates.md](./06-testing-updates.md)** + - Update Jest and Maestro + - SDK 54 compatible testing + - ā±ļø 20-30 minutes | 🟢 Low Impact + +### After Migration + +7. **[07-verification.md](./07-verification.md)** + - Comprehensive testing checklist + - Verify everything works + - ā±ļø 2-3 hours | šŸ”“ Critical + +8. **[08-summary.md](./08-summary.md)** + - Quick reference of all changes + - Files modified/created/deleted + - Dependency changes + +9. **[09-rollback-plan.md](./09-rollback-plan.md)** + - What to do if something goes wrong + - Full and partial rollback strategies + - Emergency procedures + +--- + +## šŸš€ Quick Start + +### Option 1: All-at-Once (Recommended for New Projects) + +```bash +# 1. Create backup +git branch backup/pre-upgrade + +# 2. Create feature branch +git checkout -b upgrade/react-native-template + +# 3. Follow guides 01 through 06 in order +# 4. Run verification (07) +# 5. Merge to main +``` + +**Time Required:** 4-6 hours +**Best For:** New projects, non-production apps + +--- + +### Option 2: Incremental (Recommended for Production) + +```bash +# 1. Create backup +git branch backup/pre-upgrade + +# 2. Do one migration at a time +git checkout -b feature/eslint-migration +# Follow guide 01, test thoroughly, merge + +git checkout -b feature/expo-upgrade +# Follow guide 02, test thoroughly, merge + +# ... continue for each migration +``` + +**Time Required:** 1-2 days (spread out) +**Best For:** Production apps, large teams + +--- + +### Option 3: Pick and Choose + +Only do the migrations you need: + +- āœ… **Must Have:** Expo SDK 54 (02), Dependency Updates (04) +- šŸŽÆ **Recommended:** ESLint (01), Uniwind (05) +- šŸ“ **Nice to Have:** Env Variables (03), Testing (06) + +--- + +## šŸ“‹ Prerequisites + +Before starting: + +```bash +# 1. Clean git state +git status # Should show clean working tree + +# 2. Check versions +node --version # Should be 20 LTS +pnpm --version # Should be 10+ + +# 3. Backup your work +git branch backup/pre-upgrade +``` + +**System Requirements:** +- Node.js 20 LTS +- pnpm 10+ +- Java 17+ (for Maestro) +- Latest Xcode (for iOS) +- Latest Android Studio (for Android) + +--- + +## šŸŽÆ What You'll Get + +### Performance Improvements +- ⚔ **2.5x faster styling** (Uniwind) +- ⚔ **Faster iOS builds** (SDK 54) +- ⚔ **Faster test execution** (Maestro 2.0) + +### Developer Experience +- ✨ **Simpler linting** (one tool instead of two) +- ✨ **Better env vars** (standard EXPO_PUBLIC_*) +- ✨ **Modern dependencies** (latest versions) +- ✨ **Cleaner codebase** (auto-formatting, import sorting) + +### Maintenance +- šŸ›”ļø **Security patches** (latest dependencies) +- šŸ›”ļø **Bug fixes** (Expo SDK 54, React Native 0.81) +- šŸ›”ļø **Future-proof** (modern tooling) + +--- + +## šŸ“– Reading Guide + +### If You're New to Migrations +1. Read `00-overview.md` thoroughly +2. Read `09-rollback-plan.md` (so you know your safety net) +3. Start with `01-eslint-migration.md` +4. Take breaks between migrations +5. Test thoroughly at each step + +### If You're Experienced +1. Skim `00-overview.md` +2. Jump to specific migration guides +3. Use `08-summary.md` as quick reference +4. Keep `09-rollback-plan.md` handy + +### If You Have Issues +1. Check "Common Issues" in each guide +2. Review `09-rollback-plan.md` +3. Search GitHub Issues (links in each guide) +4. Ask for help (Discord, Forums) + +--- + +## šŸ”— Useful Links + +### Official Documentation +- [Expo Documentation](https://docs.expo.dev/) +- [React Native Documentation](https://reactnative.dev/) +- [@antfu/eslint-config](https://github.com/antfu/eslint-config) +- [Uniwind](https://uniwind.dev/) +- [TanStack Query](https://tanstack.com/query) + +### Community +- [Expo Discord](https://chat.expo.dev/) +- [React Native Discord](https://discord.gg/react-native) +- [Expo Forums](https://forums.expo.dev/) + +### Tools +- [Expo Doctor](https://docs.expo.dev/more/expo-cli/#doctor) +- [npm-check-updates](https://www.npmjs.com/package/npm-check-updates) + +--- + +## āš ļø Important Notes + +### Before You Start +- āœ… Backup your work (`git branch backup/pre-upgrade`) +- āœ… Commit frequently during migration +- āœ… Test thoroughly at each step +- āœ… Read the overview first +- āœ… Have rollback plan ready + +### During Migration +- šŸ”“ Never rush through migrations +- šŸ”“ Always test before moving to next migration +- šŸ”“ Document any issues you encounter +- šŸ”“ Ask for help if stuck + +### After Migration +- āœ… Run full verification (guide 07) +- āœ… Test on all platforms +- āœ… Update team documentation +- āœ… Share learnings with team + +--- + +## šŸ“Š Migration Checklist + +Track your progress: + +- [ ] Read overview (00) +- [ ] Create backup branch +- [ ] ESLint migration (01) +- [ ] Expo SDK 54 upgrade (02) +- [ ] Environment variables (03) +- [ ] Dependency updates (04) +- [ ] Uniwind migration (05) +- [ ] Testing updates (06) +- [ ] Verification (07) +- [ ] Review summary (08) +- [ ] All tests pass +- [ ] All platforms build +- [ ] Team notified +- [ ] Documentation updated + +--- + +## šŸ†˜ Need Help? + +### Stuck on a Migration? +1. Check "Common Issues" section in that guide +2. Review `09-rollback-plan.md` +3. Search GitHub Issues for the specific library +4. Ask in Discord/Forums (links above) + +### Critical Production Issue? +See **Emergency Procedures** in `09-rollback-plan.md` + +### Want to Contribute? +Found an issue or have improvements? Open a PR! + +--- + +## šŸ“ Notes + +- Each guide is self-contained and can be read independently +- Links between guides help you navigate related topics +- Code examples are tested and production-ready +- Commands are for macOS/Linux (Windows users may need adjustments) + +--- + +## šŸŽ‰ Good Luck! + +Take your time, test thoroughly, and don't hesitate to rollback if needed. The goal is a more maintainable, performant, and modern React Native template. + +**Questions?** Check the guides or ask in the community channels! + +--- + +**Last Updated:** January 21, 2026 +**Template Version:** 8.0.0 → 8.1.0+ +**Maintained By:** Obytes Team diff --git a/package.json b/package.json index a65c532b9..a8d4e3bbf 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,11 @@ "name": "obytesapp", "version": "8.0.0", "private": true, + "packageManager": "pnpm@10.12.3", + "repository": { + "type": "git", + "url": "git+https://github.com/obytes/react-native-template-obytes.git" + }, "main": "expo-router/entry", "scripts": { "start": "cross-env EXPO_NO_DOTENV=1 expo start", @@ -30,9 +35,10 @@ "prepare": "husky", "app-release": "cross-env SKIP_BRANCH_PROTECTION=true np --no-publish --no-cleanup --no-release-draft", "version": "pnpm run prebuild && git add .", - "lint": "eslint . --ext .js,.jsx,.ts,.tsx", - "type-check": "tsc --noemit", - "lint:translations": "eslint ./src/translations/ --fix --ext .json ", + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "type-check": "tsc --noemit", + "lint:translations": "eslint ./src/translations/ --fix --ext .json", "test": "jest", "check-all": "pnpm run lint && pnpm run type-check && pnpm run lint:translations && pnpm run test", "test:ci": "pnpm run test --coverage", @@ -88,12 +94,12 @@ "zustand": "^5.0.5" }, "devDependencies": { + "@antfu/eslint-config": "^7.2.0", "@babel/core": "^7.26.0", "@commitlint/cli": "^19.2.2", "@commitlint/config-conventional": "^19.2.2", "@dev-plugins/react-query": "^0.0.7", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "^9.28.0", + "@eslint-react/eslint-plugin": "^2.7.2", "@expo/config": "~11.0.10", "@testing-library/jest-dom": "^6.5.0", "@testing-library/react-native": "^12.7.2", @@ -102,24 +108,19 @@ "@types/jest": "^29.5.12", "@types/lodash.memoize": "^4.1.9", "@types/react": "~19.0.14", - "@typescript-eslint/eslint-plugin": "^8.34.0", - "@typescript-eslint/parser": "^8.34.0", "babel-plugin-module-resolver": "^5.0.2", "cross-env": "^7.0.3", "dotenv": "^16.4.5", - "eslint": "^9.28.0", - "eslint-config-expo": "^9.2.0", - "eslint-config-prettier": "^10.1.5", + "eslint": "^9.39.2", "eslint-import-resolver-typescript": "^4.4.3", "eslint-plugin-i18n-json": "^4.0.1", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-prettier": "^5.4.1", "eslint-plugin-react-compiler": "19.1.0-rc.2", - "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.26", "eslint-plugin-tailwindcss": "^3.18.0", "eslint-plugin-testing-library": "^7.5.2", "eslint-plugin-unicorn": "^59.0.1", - "eslint-plugin-unused-imports": "^4.1.4", "husky": "^9.1.5", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -127,17 +128,10 @@ "jest-junit": "^16.0.0", "lint-staged": "^15.2.9", "np": "^10.0.7", - "prettier": "^3.3.3", "tailwindcss": "3.4.4", "ts-jest": "^29.1.2", - "typescript": "^5.8.3", - "typescript-eslint": "^8.34.0" + "typescript": "^5.8.3" }, - "repository": { - "type": "git", - "url": "git+https://github.com/obytes/react-native-template-obytes.git" - }, - "packageManager": "pnpm@10.12.3", "expo": { "doctor": { "reactNativeDirectoryCheck": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bbf79dc09..16bf68cd0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -144,6 +144,9 @@ importers: specifier: ^5.0.5 version: 5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) devDependencies: + '@antfu/eslint-config': + specifier: ^7.2.0 + version: 7.2.0(@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(@vue/compiler-sfc@3.5.27)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.6)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.6)))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) '@babel/core': specifier: ^7.26.0 version: 7.26.0 @@ -156,12 +159,9 @@ importers: '@dev-plugins/react-query': specifier: ^0.0.7 version: 0.0.7(@tanstack/react-query@5.52.1(react@19.0.0))(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - '@eslint/eslintrc': - specifier: ^3.3.1 - version: 3.3.1 - '@eslint/js': - specifier: ^9.28.0 - version: 9.29.0 + '@eslint-react/eslint-plugin': + specifier: ^2.7.2 + version: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) '@expo/config': specifier: ~11.0.10 version: 11.0.10 @@ -186,12 +186,6 @@ importers: '@types/react': specifier: ~19.0.14 version: 19.0.14 - '@typescript-eslint/eslint-plugin': - specifier: ^8.34.0 - version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/parser': - specifier: ^8.34.0 - version: 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) babel-plugin-module-resolver: specifier: ^5.0.2 version: 5.0.2 @@ -202,44 +196,35 @@ importers: specifier: ^16.4.5 version: 16.4.5 eslint: - specifier: ^9.28.0 - version: 9.29.0(jiti@1.21.6) - eslint-config-expo: - specifier: ^9.2.0 - version: 9.2.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint-config-prettier: - specifier: ^10.1.5 - version: 10.1.5(eslint@9.29.0(jiti@1.21.6)) + specifier: ^9.39.2 + version: 9.39.2(jiti@1.21.6) eslint-import-resolver-typescript: specifier: ^4.4.3 - version: 4.4.3(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@1.21.6)) + version: 4.4.3(eslint-plugin-import@2.31.0)(eslint@9.39.2(jiti@1.21.6)) eslint-plugin-i18n-json: specifier: ^4.0.1 - version: 4.0.1(eslint@9.29.0(jiti@1.21.6)) + version: 4.0.1(eslint@9.39.2(jiti@1.21.6)) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.6)) - eslint-plugin-prettier: - specifier: ^5.4.1 - version: 5.4.1(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.29.0(jiti@1.21.6)))(eslint@9.29.0(jiti@1.21.6))(prettier@3.3.3) + version: 2.31.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.2 - version: 19.1.0-rc.2(eslint@9.29.0(jiti@1.21.6)) - eslint-plugin-simple-import-sort: - specifier: ^12.1.1 - version: 12.1.1(eslint@9.29.0(jiti@1.21.6)) + version: 19.1.0-rc.2(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-react-hooks: + specifier: ^7.0.1 + version: 7.0.1(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-react-refresh: + specifier: ^0.4.26 + version: 0.4.26(eslint@9.39.2(jiti@1.21.6)) eslint-plugin-tailwindcss: specifier: ^3.18.0 version: 3.18.0(tailwindcss@3.4.4) eslint-plugin-testing-library: specifier: ^7.5.2 - version: 7.5.3(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) + version: 7.5.3(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) eslint-plugin-unicorn: specifier: ^59.0.1 - version: 59.0.1(eslint@9.29.0(jiti@1.21.6)) - eslint-plugin-unused-imports: - specifier: ^4.1.4 - version: 4.1.4(@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6)) + version: 59.0.1(eslint@9.39.2(jiti@1.21.6)) husky: specifier: ^9.1.5 version: 9.1.5 @@ -261,9 +246,6 @@ importers: np: specifier: ^10.0.7 version: 10.0.7(typescript@5.8.3) - prettier: - specifier: ^3.3.3 - version: 3.3.3 tailwindcss: specifier: 3.4.4 version: 3.4.4 @@ -273,9 +255,6 @@ importers: typescript: specifier: ^5.8.3 version: 5.8.3 - typescript-eslint: - specifier: ^8.34.0 - version: 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) packages: @@ -298,6 +277,64 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@antfu/eslint-config@7.2.0': + resolution: {integrity: sha512-I/GWDvkvUfp45VolhrMpOdkfBC69f6lstJi0BCSooylQZwH4OTJPkbXCkp4lKh9V4BeMrcO3G5iC+YIfY28/aA==} + hasBin: true + peerDependencies: + '@eslint-react/eslint-plugin': ^2.0.1 + '@next/eslint-plugin-next': '>=15.0.0' + '@prettier/plugin-xml': ^3.4.1 + '@unocss/eslint-plugin': '>=0.50.0' + astro-eslint-parser: ^1.0.2 + eslint: ^9.10.0 + eslint-plugin-astro: ^1.2.0 + eslint-plugin-format: '>=0.1.0' + eslint-plugin-jsx-a11y: '>=6.10.2' + eslint-plugin-react-hooks: ^7.0.0 + eslint-plugin-react-refresh: ^0.4.19 + eslint-plugin-solid: ^0.14.3 + eslint-plugin-svelte: '>=2.35.1' + eslint-plugin-vuejs-accessibility: ^2.4.1 + prettier-plugin-astro: ^0.14.0 + prettier-plugin-slidev: ^1.0.5 + svelte-eslint-parser: '>=0.37.0' + peerDependenciesMeta: + '@eslint-react/eslint-plugin': + optional: true + '@next/eslint-plugin-next': + optional: true + '@prettier/plugin-xml': + optional: true + '@unocss/eslint-plugin': + optional: true + astro-eslint-parser: + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-jsx-a11y: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + eslint-plugin-vuejs-accessibility: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-slidev: + optional: true + svelte-eslint-parser: + optional: true + + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + '@babel/code-frame@7.10.4': resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} @@ -388,10 +425,18 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} @@ -413,6 +458,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.6': + resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-proposal-decorators@7.25.9': resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} engines: {node: '>=6.9.0'} @@ -802,9 +852,19 @@ packages: resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.6': + resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@clack/core@0.5.0': + resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} + + '@clack/prompts@0.11.0': + resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} + '@commitlint/cli@19.2.2': resolution: {integrity: sha512-P8cbOHfg2PQRzfICLSrzUVOCVMqjEZ8Hlth6mtJ4yOEjT47Q5PbIGymgX3rLVylNw+3IAT2Djn9IJ2wHbXFzBg==} engines: {node: '>=v18'} @@ -899,11 +959,23 @@ packages: '@emotion/memoize@0.7.4': resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + '@es-joy/jsdoccomment@0.78.0': + resolution: {integrity: sha512-rQkU5u8hNAq2NVRzHnIUUvR6arbO0b6AOlvpTNS48CkiKSn/xtNfOzBK23JE4SiW89DgvU7GtxLVgV4Vn2HBAw==} + engines: {node: '>=20.11.0'} + + '@es-joy/jsdoccomment@0.82.0': + resolution: {integrity: sha512-xs3OTxPefjTZaoDS7H1X2pV33enAmZg+8YldjmeYk7XZnq420phdnp6o0JtrsHBdSRJ5+RTocgyED9TL3epgpw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@es-joy/resolve.exports@1.2.0': + resolution: {integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==} + engines: {node: '>=10'} + + '@eslint-community/eslint-plugin-eslint-comments@4.6.0': + resolution: {integrity: sha512-2EX2bBQq1ez++xz2o9tEeEQkyvfieWgUFMH4rtJJri2q0Azvhja3hZGXsjPXs31R4fQkZDtWzNDDK2zQn5UE5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 '@eslint-community/eslint-utils@4.7.0': resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} @@ -911,50 +983,120 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.20.1': - resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint-react/ast@2.7.2': + resolution: {integrity: sha512-RB8AVNjboN6/md9Da4rUG4WqxLT+DqUR+qXIR6iAD0+xxp6Dtihu541+lKLZ3GCstunbBcDwu7gdhSbz+BHSuQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@eslint-react/core@2.7.2': + resolution: {integrity: sha512-QOYh8OWwUGMYLhuvb8WcmoS2jYXb0SJbpX+Ozk+Ht2G9XGRAahl+8PDy/o2l2lLnFXv5JQGfLrN+m2WPTi104g==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@eslint-react/eff@2.7.2': + resolution: {integrity: sha512-AzQGbidoI8g8izka/1H9xCKW56NR7xWGGPMccBCUZwbCoJZ4wyRKcE10E7ot7LwBv5kBoUQp3GJ9UXCcg/Er0w==} + engines: {node: '>=20.19.0'} + + '@eslint-react/eslint-plugin@2.7.2': + resolution: {integrity: sha512-h9T5cc2TxsKMv/8iO63KKamXyJjHHAmeG2MJVjeIm4FaZdsX0/2Bx254B3Fa8IDqQi4X81AMyJ8ohtbxsn6pOw==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@eslint-react/shared@2.7.2': + resolution: {integrity: sha512-U1H3dLaTj7kvEbyJyJEgn6xX3BmrCH1f9f+tg9gLWlN7askgWT5NF56wfX1l+jtwiEAZD/78W1TfICKkMnZDxQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@eslint-react/var@2.7.2': + resolution: {integrity: sha512-sPnXmikpzmAdIWh6lqqKm4Bu0ypKTCAQ7WxGuR5ejxtrA/HjQQuKMBIyPkBdjHWlF9ADdh9pKuo1j2RQwUWiqA==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@eslint/compat@1.4.1': + resolution: {integrity: sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.40 || 9 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.2.3': - resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.5.1': + resolution: {integrity: sha512-QN8067dXsXAl9HIvqws7STEviheRFojX3zek5OpC84oBxDGqizW9731ByF/ASxqQihbWrVDdZXS+Ihnsckm9dg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/core@0.13.0': resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.14.0': - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.15.0': - resolution: {integrity: sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@1.0.1': + resolution: {integrity: sha512-r18fEAj9uCk+VjzGt2thsbOmychS+4kxI14spVNibUO2vqKX7obOG+ymZljAwuPZl+S3clPGwCwTDtrdqTiY6Q==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.29.0': - resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==} + '@eslint/js@9.39.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/markdown@7.5.1': + resolution: {integrity: sha512-R8uZemG9dKTbru/DQRPblbJyXpObwKzo8rv1KYGGuPUPtjM4LXBYM9q5CIZAComzZupws3tWbDwam5AFpPLyJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/plugin-kit@0.2.8': resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.2': - resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.5.1': + resolution: {integrity: sha512-hZ2uC1jbf6JMSsF2ZklhRQqf6GLpYyux6DlzegnW/aFlpu6qJj5GO7ub7WOETCrEl6pl6DAX7RgTgj/fyG+6BQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@expo/cli@0.24.15': resolution: {integrity: sha512-RDZS30OSnbXkSPnBXdyPL29KbltjOmegE23bZZDiGV23WOReWcPgRc5U7Fd8eLPhtRjHBKlBpNJMTed5Ntr/uw==} hasBin: true @@ -1372,6 +1514,9 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1408,16 +1553,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nolyfill/is-core-module@1.0.39': - resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} - engines: {node: '>=12.4.0'} - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.7': - resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@pnpm/config.env-replace@1.1.0': @@ -1584,12 +1725,22 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/base62@1.0.0': + resolution: {integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==} + engines: {node: '>=18'} + '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@stylistic/eslint-plugin@5.7.0': + resolution: {integrity: sha512-PsSugIf9ip1H/mWKj4bi/BlEoerxXAda9ByRFsYuwsmr6af9NxJL0AaiNXs8Le7R21QR5KMiD/KdxZZ71LjAxQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=9.0.0' + '@tanstack/query-core@5.52.0': resolution: {integrity: sha512-U1DOEgltjUwalN6uWYTewSnA14b+tE7lSylOiASKCAO61ENJeCq9VVD/TXHA6O5u9+6v5+UgGYBSccTKDoyMqw==} @@ -1638,14 +1789,17 @@ packages: '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -1686,6 +1840,12 @@ packages: '@types/lodash@4.17.13': resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} @@ -1704,26 +1864,29 @@ packages: '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.34.0': - resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} + '@typescript-eslint/eslint-plugin@8.53.1': + resolution: {integrity: sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.34.0 + '@typescript-eslint/parser': ^8.53.1 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.34.0': - resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} + '@typescript-eslint/parser@8.53.1': + resolution: {integrity: sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/project-service@8.34.0': resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} @@ -1731,33 +1894,59 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/project-service@8.53.1': + resolution: {integrity: sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/scope-manager@8.34.0': resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.53.1': + resolution: {integrity: sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.34.0': resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.34.0': - resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} + '@typescript-eslint/tsconfig-utils@8.53.1': + resolution: {integrity: sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.53.1': + resolution: {integrity: sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/types@8.34.0': resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.53.1': + resolution: {integrity: sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.34.0': resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/typescript-estree@8.53.1': + resolution: {integrity: sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@8.34.0': resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1765,10 +1954,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.53.1': + resolution: {integrity: sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/visitor-keys@8.34.0': resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.53.1': + resolution: {integrity: sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@unrs/resolver-binding-android-arm-eabi@1.9.0': resolution: {integrity: sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==} cpu: [arm] @@ -1872,6 +2072,34 @@ packages: peerDependencies: '@urql/core': ^5.0.0 + '@vitest/eslint-plugin@1.6.6': + resolution: {integrity: sha512-bwgQxQWRtnTVzsUHK824tBmHzjV0iTx3tZaiQIYDjX3SA7TsQS8CuDVqxXrRY3FaOUMgbGavesCxI9MOfFLm7Q==} + engines: {node: '>=18'} + peerDependencies: + eslint: '>=8.57.0' + typescript: '>=5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + + '@vue/compiler-core@3.5.27': + resolution: {integrity: sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==} + + '@vue/compiler-dom@3.5.27': + resolution: {integrity: sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==} + + '@vue/compiler-sfc@3.5.27': + resolution: {integrity: sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==} + + '@vue/compiler-ssr@3.5.27': + resolution: {integrity: sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==} + + '@vue/shared@3.5.27': + resolution: {integrity: sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -2074,6 +2302,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} + engines: {node: '>=14'} + any-base@1.1.0: resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} @@ -2103,6 +2335,10 @@ packages: application-config-path@0.1.1: resolution: {integrity: sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==} + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -2120,10 +2356,6 @@ packages: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -2134,10 +2366,6 @@ packages: array-timsort@1.0.3: resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.5: resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} @@ -2150,22 +2378,10 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -2251,6 +2467,10 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.9.17: + resolution: {integrity: sha512-agD0MgJFUP/4nvjqzIB29zRPUuCF7Ge6mEv9s8dHrtYD7QWXRcx75rOADE/d5ah1NI+0vkDl0yorDd5U852IQQ==} + hasBin: true + better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -2263,6 +2483,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + birecord@0.1.1: + resolution: {integrity: sha512-VUpsf/qykW0heRlC8LooCq28Kxn3mAqKohhDG/49rrsQ1dT1CXyj/pgXS+5BSRzFTR/3DyIBOqQOrGyZOh71Aw==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -2307,6 +2530,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} engines: {node: '>= 6'} @@ -2336,22 +2564,14 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - caller-callsite@2.0.0: resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} engines: {node: '>=4'} @@ -2390,6 +2610,12 @@ packages: caniuse-lite@1.0.30001723: resolution: {integrity: sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==} + caniuse-lite@1.0.30001765: + resolution: {integrity: sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + centra@2.7.0: resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} @@ -2417,6 +2643,9 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -2425,6 +2654,9 @@ packages: resolution: {integrity: sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==} engines: {node: '>=12.20'} + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -2459,6 +2691,10 @@ packages: resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} engines: {node: '>=8'} + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + cjs-module-lexer@1.4.1: resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} @@ -2584,9 +2820,20 @@ packages: resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} engines: {node: '>= 6'} + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + + comment-parser@1.4.4: + resolution: {integrity: sha512-0D6qSQ5IkeRrGJFHRClzaMOenMeT0gErz3zIw3AprKMqhRN6LNU2jQOdkPG/FZ+8bCgXE1VidrgSzlBBDZRr8A==} + engines: {node: '>= 12.0.0'} + compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -2598,6 +2845,12 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -2628,6 +2881,9 @@ packages: core-js-compat@3.43.0: resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} + core-js-compat@3.47.0: + resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2729,26 +2985,14 @@ packages: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - data-view-byte-length@1.0.1: resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.0: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - date-fns@1.30.1: resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} @@ -2786,9 +3030,21 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -2854,6 +3110,10 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -2867,9 +3127,16 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diff-sequences@27.5.1: + resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2929,10 +3196,6 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2942,6 +3205,9 @@ packages: electron-to-chromium@1.5.167: resolution: {integrity: sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==} + electron-to-chromium@1.5.267: + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} + electron-to-chromium@1.5.63: resolution: {integrity: sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==} @@ -2962,6 +3228,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + empathic@2.0.0: + resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} + engines: {node: '>=14'} + encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -2978,6 +3248,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-editor@0.4.2: resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} engines: {node: '>=8'} @@ -3003,26 +3277,14 @@ packages: resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} - es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} - engines: {node: '>= 0.4'} - es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} - engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} @@ -3030,18 +3292,10 @@ packages: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} @@ -3049,10 +3303,6 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -3085,16 +3335,25 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-expo@9.2.0: - resolution: {integrity: sha512-TQgmSx+2mRM7qUS0hB5kTDrHcSC35rA1UzOSgK5YRLmSkSMlKLmXkUrhwOpnyo9D/nHdf4ERRAySRYxgA6dlrw==} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} peerDependencies: - eslint: '>=8.10' + eslint: '>=6.0.0' - eslint-config-prettier@10.1.5: - resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} - hasBin: true + eslint-compat-utils@0.6.5: + resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-flat-gitignore@2.1.0: + resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==} peerDependencies: - eslint: '>=7.0.0' + eslint: ^9.5.0 + + eslint-flat-config-utils@3.0.0: + resolution: {integrity: sha512-bzTam/pSnPANR0GUz4g7lo4fyzlQZwuz/h8ytsSS4w59N/JlXH/l7jmyNVBLxPz3B9/9ntz5ZLevGpazyDXJQQ==} eslint-import-context@0.1.8: resolution: {integrity: sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==} @@ -3108,9 +3367,9 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.6.3: - resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} - engines: {node: ^14.18.0 || >=16.0.0} + eslint-import-resolver-typescript@4.4.3: + resolution: {integrity: sha512-elVDn1eWKFrWlzxlWl9xMt8LltjKl161Ix50JFC50tHXI5/TRP32SNEqlJ/bo/HV+g7Rou/tlPQU2AcRtIhrOg==} + engines: {node: ^16.17.0 || >=18.6.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' @@ -3121,19 +3380,22 @@ packages: eslint-plugin-import-x: optional: true - eslint-import-resolver-typescript@4.4.3: - resolution: {integrity: sha512-elVDn1eWKFrWlzxlWl9xMt8LltjKl161Ix50JFC50tHXI5/TRP32SNEqlJ/bo/HV+g7Rou/tlPQU2AcRtIhrOg==} - engines: {node: ^16.17.0 || >=18.6.0} + eslint-json-compat-utils@0.2.1: + resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} + engines: {node: '>=12'} peerDependencies: + '@eslint/json': '*' eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' + jsonc-eslint-parser: ^2.4.0 peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: + '@eslint/json': optional: true + eslint-merge-processors@2.0.0: + resolution: {integrity: sha512-sUuhSf3IrJdGooquEUB5TNpGNpBoQccbnaLHsb1XkBLUPPqCNivCpY05ZcpCOiV9uHwO2yxXEWVczVclzMxYlA==} + peerDependencies: + eslint: '*' + eslint-module-utils@2.12.0: resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} @@ -3155,11 +3417,21 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-expo@0.1.4: - resolution: {integrity: sha512-YA7yiMacQbLJySuyJA0Eb5V65obqp6fVOWtw1JdYDRWC5MeToPrnNvhGDpk01Bv3Vm4ownuzUfvi89MXi1d6cg==} - engines: {node: '>=18.0.0'} + eslint-plugin-antfu@3.1.3: + resolution: {integrity: sha512-Az1QuqQJ/c2efWCxVxF249u3D4AcAu1Y3VCGAlJm+x4cgnn1ybUAnCT5DWVcogeaWduQKeVw07YFydVTOF4xDw==} + peerDependencies: + eslint: '*' + + eslint-plugin-command@3.4.0: + resolution: {integrity: sha512-EW4eg/a7TKEhG0s5IEti72kh3YOTlnhfFNuctq5WnB1fst37/IHTd5OkD+vnlRf3opTvUcSRihAateP6bT5ZcA==} + peerDependencies: + eslint: '*' + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=8.10' + eslint: '>=8' eslint-plugin-i18n-json@4.0.1: resolution: {integrity: sha512-LNQS2XeEy1fdCOn/n3Aeh7RWPVbwKL0tH4Q1c2Y/M1TN6Jo3uN6C3cTvtjzJEms7ul0rmCAPoGqM4IsVCOIxnw==} @@ -3167,6 +3439,12 @@ packages: peerDependencies: eslint: '>=4.0.0' + eslint-plugin-import-lite@0.5.0: + resolution: {integrity: sha512-7uBvxuQj+VlYmZSYSHcm33QgmZnvMLP2nQiWaLtjhJ5x1zKcskOqjolL+dJC13XY+ktQqBgidAnnQMELfRaXQg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=9.0.0' + eslint-plugin-import@2.31.0: resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} @@ -3177,63 +3455,129 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-prettier@5.4.1: - resolution: {integrity: sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==} - engines: {node: ^14.18.0 || >=16.0.0} + eslint-plugin-jsdoc@62.3.0: + resolution: {integrity: sha512-Gc5Ls5qQC6NwqtQTtJ2JE5BwvX348ZCZ+4+QiZ9RpoQ1TCcxFF8Z0E5jaLkTyYNqyhx+uKAvljNHE0B7PBw+iw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-react-compiler@19.1.0-rc.2: - resolution: {integrity: sha512-oKalwDGcD+RX9mf3NEO4zOoUMeLvjSvcbbEOpquzmzqEEM2MQdp7/FY/Hx9NzmUwFzH1W9SKTz5fihfMldpEYw==} - engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} + eslint-plugin-jsonc@2.21.0: + resolution: {integrity: sha512-HttlxdNG5ly3YjP1cFMP62R4qKLxJURfBZo2gnMY+yQojZxkLyOpY1H1KRTKBmvQeSG9pIpSGEhDjE17vvYosg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: '>=7' + eslint: '>=6.0.0' - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} + eslint-plugin-n@17.23.2: + resolution: {integrity: sha512-RhWBeb7YVPmNa2eggvJooiuehdL76/bbfj/OJewyoGT80qn5PXdz8zMOTO6YHOsI7byPt7+Ighh/i/4a5/v7hw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + eslint: '>=8.23.0' - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} + engines: {node: '>=5.0.0'} + + eslint-plugin-perfectionist@5.3.1: + resolution: {integrity: sha512-v8kAP8TarQYqDC4kxr343ZNi++/oOlBnmWovsUZpbJ7A/pq1VHGlgsf/fDh4CdEvEstzkrc8NLvoVKtfpsC4oA==} + engines: {node: ^20.0.0 || >=22.0.0} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + eslint: '>=8.45.0' - eslint-plugin-simple-import-sort@12.1.1: - resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} + eslint-plugin-pnpm@1.5.0: + resolution: {integrity: sha512-ayMo1GvrQ/sF/bz1aOAiH0jv9eAqU2Z+a1ycoWz/uFFK5NxQDq49BDKQtBumcOUBf2VHyiTW4a8u+6KVqoIWzQ==} peerDependencies: - eslint: '>=5.0.0' + eslint: ^9.0.0 - eslint-plugin-tailwindcss@3.18.0: - resolution: {integrity: sha512-PQDU4ZMzFH0eb2DrfHPpbgo87Zgg2EXSMOj1NSfzdZm+aJzpuwGerfowMIaVehSREEa0idbf/eoNYAOHSJoDAQ==} - engines: {node: '>=18.12.0'} + eslint-plugin-react-compiler@19.1.0-rc.2: + resolution: {integrity: sha512-oKalwDGcD+RX9mf3NEO4zOoUMeLvjSvcbbEOpquzmzqEEM2MQdp7/FY/Hx9NzmUwFzH1W9SKTz5fihfMldpEYw==} + engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} peerDependencies: - tailwindcss: ^3.4.0 + eslint: '>=7' - eslint-plugin-testing-library@7.5.3: - resolution: {integrity: sha512-sZk5hIrx0p1ehvdS2qHefKwXHiEysiQN+FMGCzES6xRNUgwI3q4KdWMeAwpPDP9u0RDkNzJpebRUnNch1sJh+A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: ^9.14.0} + eslint-plugin-react-dom@2.7.2: + resolution: {integrity: sha512-Qzd4HAFwsxvOJoAycLIRxziOTJwEZ6EGAA6jEFFBSD1BbFVnDlozMvOLp9/+GrZW3cE0FGmAS6QXnjuMf0QYLQ==} + engines: {node: '>=20.19.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' - eslint-plugin-unicorn@59.0.1: - resolution: {integrity: sha512-EtNXYuWPUmkgSU2E7Ttn57LbRREQesIP1BiLn7OZLKodopKfDXfBUkC/0j6mpw2JExwf43Uf3qLSvrSvppgy8Q==} - engines: {node: ^18.20.0 || ^20.10.0 || >=21.0.0} + eslint-plugin-react-hooks-extra@2.7.2: + resolution: {integrity: sha512-wcjQeBO1naCFPV47osw7nnK2p81eudCE2PhasKLtBV+GcAEi34jbt9QGULzQYueP+zd1aW53SmnVrTinY4DC6w==} + engines: {node: '>=20.19.0'} peerDependencies: - eslint: '>=9.22.0' + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react-naming-convention@2.7.2: + resolution: {integrity: sha512-T+/RQFEda3AgCzBHguE3isLQetn8KUOZ14SnDBQSOZSWS/GjgQn+gmqHi3EVHX/sDdL+LsIUKRsRR6KmmYWMiw==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + eslint-plugin-react-refresh@0.4.26: + resolution: {integrity: sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==} + peerDependencies: + eslint: '>=8.40' + + eslint-plugin-react-web-api@2.7.2: + resolution: {integrity: sha512-iA3D8jbwasMeeUfK8XucGkgrjQvZowCTi1+TzA43U7IFsWzyQWQpbN/I9B0BY/g6/JU9falC5b7qv6HB7P5JhA==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + eslint-plugin-react-x@2.7.2: + resolution: {integrity: sha512-0NbYqJhc3tZQVluaFMVCOg6HEFarlNNXe+DHa/JrLAR0PVb9AtJGk8FBEDdxaUZO8ph0sAekUNLB7gymftj4Dw==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + eslint-plugin-regexp@2.10.0: + resolution: {integrity: sha512-ovzQT8ESVn5oOe5a7gIDPD5v9bCSjIFJu57sVPDqgPRXicQzOnYfFN21WoQBQF18vrhT5o7UMKFwJQVVjyJ0ng==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-tailwindcss@3.18.0: + resolution: {integrity: sha512-PQDU4ZMzFH0eb2DrfHPpbgo87Zgg2EXSMOj1NSfzdZm+aJzpuwGerfowMIaVehSREEa0idbf/eoNYAOHSJoDAQ==} + engines: {node: '>=18.12.0'} + peerDependencies: + tailwindcss: ^3.4.0 + + eslint-plugin-testing-library@7.5.3: + resolution: {integrity: sha512-sZk5hIrx0p1ehvdS2qHefKwXHiEysiQN+FMGCzES6xRNUgwI3q4KdWMeAwpPDP9u0RDkNzJpebRUnNch1sJh+A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: ^9.14.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + eslint-plugin-toml@1.0.3: + resolution: {integrity: sha512-GlCBX+R313RvFY2Tj0ZmvzCEv8FDp1z2itvTFTV4bW/Bkbl3xEp9inWNsRWH3SiDUlxo8Pew31ILEp/3J0WxaA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: '>=9.38.0' - eslint-plugin-unused-imports@4.1.4: - resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} + eslint-plugin-unicorn@59.0.1: + resolution: {integrity: sha512-EtNXYuWPUmkgSU2E7Ttn57LbRREQesIP1BiLn7OZLKodopKfDXfBUkC/0j6mpw2JExwf43Uf3qLSvrSvppgy8Q==} + engines: {node: ^18.20.0 || ^20.10.0 || >=21.0.0} + peerDependencies: + eslint: '>=9.22.0' + + eslint-plugin-unicorn@62.0.0: + resolution: {integrity: sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==} + engines: {node: ^20.10.0 || >=21.0.0} + peerDependencies: + eslint: '>=9.38.0' + + eslint-plugin-unused-imports@4.3.0: + resolution: {integrity: sha512-ZFBmXMGBYfHttdRtOG9nFFpmUvMtbHSjsKrS20vdWdbfiVYsO3yA2SGYy9i9XmZJDfMGBflZGBCm70SEnFQtOA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 eslint: ^9.0.0 || ^8.0.0 @@ -3241,6 +3585,32 @@ packages: '@typescript-eslint/eslint-plugin': optional: true + eslint-plugin-vue@10.7.0: + resolution: {integrity: sha512-r2XFCK4qlo1sxEoAMIoTTX0PZAdla0JJDt1fmYiworZUX67WeEGqm+JbyAg3M+pGiJ5U6Mp5WQbontXWtIW7TA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + vue-eslint-parser: ^10.0.0 + peerDependenciesMeta: + '@stylistic/eslint-plugin': + optional: true + '@typescript-eslint/parser': + optional: true + + eslint-plugin-yml@3.0.0: + resolution: {integrity: sha512-kuAW6o3hlFHyF5p7TLon+AtvNWnsvRrb88pqywGMSCEqAP5d1gOMvNGgWLVlKHqmx5RbFhQLcxFDGmS4IU9DwA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} + peerDependencies: + eslint: '>=9.38.0' + + eslint-processor-vue-blocks@2.0.0: + resolution: {integrity: sha512-u4W0CJwGoWY3bjXAuFpc/b6eK3NQEI8MoeW7ritKj3G3z/WtHrKjkqf+wk8mPEy5rlMGS+k6AZYOw2XBoN/02Q==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: '>=9.0.0' + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -3257,8 +3627,12 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.29.0: - resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==} + eslint-visitor-keys@5.0.0: + resolution: {integrity: sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -3271,6 +3645,14 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@11.1.0: + resolution: {integrity: sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -3280,6 +3662,10 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -3292,6 +3678,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -3496,6 +3885,9 @@ packages: exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -3503,9 +3895,6 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -3522,6 +3911,9 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -3539,6 +3931,15 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + figures@1.7.0: resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} engines: {node: '>=0.10.0'} @@ -3623,10 +4024,6 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} @@ -3635,6 +4032,10 @@ packages: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + framer-motion@6.5.1: resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} peerDependencies: @@ -3667,10 +4068,6 @@ packages: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -3690,10 +4087,6 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -3702,10 +4095,6 @@ packages: resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} engines: {node: '>=4'} - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3718,16 +4107,9 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} - get-tsconfig@4.8.1: - resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} - getenv@1.0.0: resolution: {integrity: sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==} engines: {node: '>=6'} @@ -3744,6 +4126,9 @@ packages: engines: {node: '>=16'} hasBin: true + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + github-url-from-git@1.5.0: resolution: {integrity: sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==} @@ -3785,10 +4170,22 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + globals@16.2.0: resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} engines: {node: '>=18'} + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + + globals@17.0.0: + resolution: {integrity: sha512-gv5BeD2EssA793rlFWVPMMCqefTlpusw6/2TbAVMy0FzcG8wKJn4O+NqJ4+XWmmwrayJgw5TzrmWjFgmz1XPqw==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -3797,13 +4194,12 @@ packages: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -3839,18 +4235,10 @@ packages: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -3885,6 +4273,9 @@ packages: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} + html-entities@2.6.0: + resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -4029,10 +4420,6 @@ packages: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -4044,27 +4431,15 @@ packages: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -4073,17 +4448,10 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - is-builtin-module@5.0.0: resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==} engines: {node: '>=18.20'} - is-bun-module@1.2.1: - resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} - is-bun-module@2.0.0: resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} @@ -4099,18 +4467,10 @@ packages: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} engines: {node: '>= 0.4'} - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - is-directory@0.3.1: resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} engines: {node: '>=0.10.0'} @@ -4129,13 +4489,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@1.0.0: resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} engines: {node: '>=0.10.0'} @@ -4163,14 +4516,16 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-immutable-type@5.0.1: + resolution: {integrity: sha512-LkHEOGVZZXxGl8vDs+10k3DvP++SEoYEAJLRk6buTFi6kD7QekThV7xHS0j6gpnUCQ0zpud/gMDGiV4dQneLTg==} + peerDependencies: + eslint: '*' + typescript: '>=4.7.4' + is-in-ci@1.0.0: resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} engines: {node: '>=18'} @@ -4193,10 +4548,6 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -4209,10 +4560,6 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4243,26 +4590,14 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - is-scoped@3.0.0: resolution: {integrity: sha512-ezxLUq30kiTvP0w/5n9tj4qTOKlrA07Oty1hwTQ+lcqw11x6uc8sp7VRb2OVGRzKfCHZ2A22T5Zsau/Q2Akb0g==} engines: {node: '>=12'} - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -4279,18 +4614,10 @@ packages: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - is-text-path@2.0.0: resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} @@ -4299,10 +4626,6 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -4315,21 +4638,9 @@ packages: resolution: {integrity: sha512-LXdhGlYqUPdvEyIhWPEEwYYK3yrUiPcBjmFGlZNv1u5GtIL5qQRf7ddDyPNAvsMFqdzS923FROpTQU97tLe3JQ==} engines: {node: '>=12'} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -4375,10 +4686,6 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -4577,6 +4884,18 @@ packages: jsc-safe-url@0.2.4: resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + jsdoc-type-pratt-parser@4.8.0: + resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} + engines: {node: '>=12.0.0'} + + jsdoc-type-pratt-parser@7.0.0: + resolution: {integrity: sha512-c7YbokssPOSHmqTbSAmTtnVgAVa/7lumWNYqomgd5KOMyPrRve2anx6lonfOsXEQacqF9FKVUj7bLg4vRSvdYA==} + engines: {node: '>=20.0.0'} + + jsdoc-type-pratt-parser@7.1.0: + resolution: {integrity: sha512-SX7q7XyCwzM/MEDCYz0l8GgGbJAACGFII9+WfNYr5SLEKukHWRy2Jk3iWRe7P+lpYJNs7oQ+OSei4JtKGUjd7A==} + engines: {node: '>=20.0.0'} + jsdom@20.0.3: resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} engines: {node: '>=14'} @@ -4623,14 +4942,14 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-eslint-parser@2.4.2: + resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -4774,6 +5093,10 @@ packages: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -4856,6 +5179,9 @@ packages: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4866,6 +5192,9 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -4876,12 +5205,47 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + marky@1.2.5: resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -4965,6 +5329,93 @@ packages: engines: {node: '>=18.18'} hasBin: true + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -5049,6 +5500,9 @@ packages: engines: {node: '>=10'} hasBin: true + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + moti@0.29.0: resolution: {integrity: sha512-o/blVE3lm0i/6E5X0RLK59SVWEGxo7pQh8dTm+JykVCYY9bcz0lWyZFCO1s+MMNq+nMsSZBX8lkp4im/AZmhyw==} peerDependencies: @@ -5102,6 +5556,10 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5142,6 +5600,9 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + normalize-package-data@6.0.2: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} @@ -5192,6 +5653,9 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-deep-merge@2.0.0: + resolution: {integrity: sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==} + object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} @@ -5200,10 +5664,6 @@ packages: resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -5212,14 +5672,6 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - object.fromentries@2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} @@ -5232,10 +5684,6 @@ packages: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - omggif@1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} @@ -5302,10 +5750,6 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -5365,6 +5809,9 @@ packages: resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} engines: {node: '>=18'} + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -5381,9 +5828,16 @@ packages: parse-bmfont-xml@1.1.6: resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==} + parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + parse-headers@2.0.5: resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + parse-imports-exports@0.2.4: + resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -5400,6 +5854,9 @@ packages: resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} engines: {node: '>=10'} + parse-statements@1.0.11: + resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} + parse5@7.2.1: resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} @@ -5445,6 +5902,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + peek-readable@4.1.0: resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} engines: {node: '>=8'} @@ -5452,6 +5912,7 @@ packages: phin@3.7.1: resolution: {integrity: sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==} engines: {node: '>= 8'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -5468,6 +5929,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -5493,6 +5958,12 @@ packages: resolution: {integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==} engines: {node: '>=18'} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -5517,6 +5988,9 @@ packages: resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==} engines: {node: '>=12.13.0'} + pnpm-workspace-yaml@1.5.0: + resolution: {integrity: sha512-PxdyJuFvq5B0qm3s9PaH/xOtSxrcvpBRr+BblhucpWjs8c79d4b7/cXhyY4AyHOHCnqklCYZTjfl0bT/mFVTRw==} + popmotion@11.0.3: resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} @@ -5558,6 +6032,10 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -5565,19 +6043,14 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -5638,6 +6111,9 @@ packages: resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} hasBin: true + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} @@ -5892,13 +6368,9 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} @@ -5916,6 +6388,10 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -5924,10 +6400,6 @@ packages: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - regexpu-core@6.1.1: resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} engines: {node: '>=4'} @@ -5951,6 +6423,10 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + hasBin: true + repeat-string@1.6.1: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} @@ -5973,6 +6449,10 @@ packages: reselect@4.1.8: resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} + reserved-identifiers@1.2.0: + resolution: {integrity: sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==} + engines: {node: '>=18'} + resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -6010,10 +6490,6 @@ packages: resolve@1.7.1: resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - restore-cursor@2.0.0: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} @@ -6067,25 +6543,13 @@ packages: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -6111,6 +6575,10 @@ packages: resolution: {integrity: sha512-yEsN6TuxZhZ1Tl9iB81frTNS292m0I/IG7+w8lTvfcJQP2x3vnpOoevjBoE3Np5A6KnZM2+RtVenihj9t6NiYg==} engines: {node: '>=12'} + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -6125,7 +6593,12 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.0: + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -6155,10 +6628,6 @@ 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==} @@ -6179,26 +6648,10 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -6274,6 +6727,9 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + spdx-license-ids@3.0.20: resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} @@ -6320,10 +6776,6 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - stream-buffers@2.2.0: resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} engines: {node: '>= 0.10.0'} @@ -6344,6 +6796,9 @@ packages: resolution: {integrity: sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==} engines: {node: '>=12.20'} + string-ts@2.3.1: + resolution: {integrity: sha512-xSJq+BS52SaFFAVxuStmx6n5aYZU571uYUnUrPXkPFCfdHyZMMlbP2v2Wx5sNBnAVzq/2+0+mcBLBa3Xa5ubYw==} + string-width@1.0.2: resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} engines: {node: '>=0.10.0'} @@ -6364,17 +6819,6 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -6382,10 +6826,6 @@ packages: string.prototype.trimend@1.0.8: resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} @@ -6437,6 +6877,10 @@ packages: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} + strip-indent@4.1.1: + resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} + engines: {node: '>=12'} + strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -6505,8 +6949,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.11.8: - resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} + synckit@0.11.12: + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} tailwind-merge@2.5.4: @@ -6594,10 +7038,18 @@ packages: tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -6609,6 +7061,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + to-valid-identifier@1.0.0: + resolution: {integrity: sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==} + engines: {node: '>=20'} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -6617,6 +7073,10 @@ packages: resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} engines: {node: '>=10'} + toml-eslint-parser@1.0.3: + resolution: {integrity: sha512-A5F0cM6+mDleacLIEUkmfpkBbnHJFV1d2rprHU2MXNk7mlxHq2zGojA+SRvQD1RoMo9gqjZPWEaKG4v1BQ48lw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + tough-cookie@4.1.4: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} @@ -6628,12 +7088,17 @@ packages: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' + ts-declaration-location@1.0.7: + resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} + peerDependencies: + typescript: '>=4.0.0' + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -6661,6 +7126,9 @@ packages: ts-object-utils@0.0.5: resolution: {integrity: sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==} + ts-pattern@5.9.0: + resolution: {integrity: sha512-6s5V71mX8qBUmlgbrfL33xDUwO0fq48rxAu2LBE11WBeGdpCPOsXksQbZJHvHwhrd3QjUusd3mAOM5Gg0mFBLg==} + tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -6706,41 +7174,18 @@ packages: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - typed-array-length@1.0.6: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typescript-eslint@8.34.0: - resolution: {integrity: sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - typescript@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} @@ -6750,13 +7195,12 @@ packages: resolution: {integrity: sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==} hasBin: true + ufo@1.6.3: + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} + unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -6788,6 +7232,18 @@ packages: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -6811,6 +7267,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-notifier@7.3.1: resolution: {integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==} engines: {node: '>=18'} @@ -6871,6 +7333,12 @@ packages: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} + vue-eslint-parser@10.2.0: + resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -6916,6 +7384,7 @@ packages: whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} @@ -6941,30 +7410,10 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.1.4: - resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -7098,6 +7547,10 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml-eslint-parser@2.0.0: + resolution: {integrity: sha512-h0uDm97wvT2bokfwwTmY6kJ1hp6YDFL0nRHwNKz8s/VD1FH/vvZjAKoMUE+un0eaYBSG7/c6h+lJTP+31tjgTw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + yaml@2.5.1: resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} @@ -7108,6 +7561,11 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -7134,9 +7592,18 @@ packages: peerDependencies: zod: ^3.18.0 + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + zustand@5.0.5: resolution: {integrity: sha512-mILtRfKW9xM47hqxGIxCv12gXusoY/xTSHBYApXozR0HmQv299whhBeeAcRy+KrPPybzosvJBCOmVjq6x12fCg==} engines: {node: '>=12.20.0'} @@ -7155,6 +7622,9 @@ packages: use-sync-external-store: optional: true + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@0no-co/graphql.web@1.0.11': {} @@ -7168,6 +7638,61 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@antfu/eslint-config@7.2.0(@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(@vue/compiler-sfc@3.5.27)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.6)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.6)))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@clack/prompts': 0.11.0 + '@eslint-community/eslint-plugin-eslint-comments': 4.6.0(eslint@9.39.2(jiti@1.21.6)) + '@eslint/markdown': 7.5.1 + '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@1.21.6)) + '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@vitest/eslint-plugin': 1.6.6(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + ansis: 4.2.0 + cac: 6.7.14 + eslint: 9.39.2(jiti@1.21.6) + eslint-config-flat-gitignore: 2.1.0(eslint@9.39.2(jiti@1.21.6)) + eslint-flat-config-utils: 3.0.0 + eslint-merge-processors: 2.0.0(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-antfu: 3.1.3(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-command: 3.4.0(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-import-lite: 0.5.0(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-jsdoc: 62.3.0(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-jsonc: 2.21.0(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-n: 17.23.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint-plugin-no-only-tests: 3.3.0 + eslint-plugin-perfectionist: 5.3.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint-plugin-pnpm: 1.5.0(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-toml: 1.0.3(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-unicorn: 62.0.0(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-vue: 10.7.0(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.6)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.6))) + eslint-plugin-yml: 3.0.0(eslint@9.39.2(jiti@1.21.6)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.27)(eslint@9.39.2(jiti@1.21.6)) + globals: 17.0.0 + jsonc-eslint-parser: 2.4.2 + local-pkg: 1.1.2 + parse-gitignore: 2.0.0 + toml-eslint-parser: 1.0.3 + vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@1.21.6)) + yaml-eslint-parser: 2.0.0 + optionalDependencies: + '@eslint-react/eslint-plugin': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-react-refresh: 0.4.26(eslint@9.39.2(jiti@1.21.6)) + transitivePeerDependencies: + - '@eslint/json' + - '@vue/compiler-sfc' + - supports-color + - typescript + - vitest + + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.6.0 + tinyexec: 1.0.2 + '@babel/code-frame@7.10.4': dependencies: '@babel/highlight': 7.25.9 @@ -7245,7 +7770,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - debug: 4.4.1 + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -7254,7 +7779,7 @@ snapshots: '@babel/helper-member-expression-to-functions@7.25.9': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color @@ -7276,7 +7801,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 '@babel/helper-plugin-utils@7.25.9': {} @@ -7301,7 +7826,7 @@ snapshots: '@babel/helper-simple-access@7.25.9': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color @@ -7314,15 +7839,19 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-option@7.25.9': {} '@babel/helper-wrap-function@7.25.9': dependencies: '@babel/template': 7.25.9 '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color @@ -7342,6 +7871,10 @@ snapshots: dependencies: '@babel/types': 7.26.0 + '@babel/parser@7.28.6': + dependencies: + '@babel/types': 7.28.6 + '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -7662,7 +8195,7 @@ snapshots: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color @@ -7780,8 +8313,24 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.28.6': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@bcoe/v8-coverage@0.2.3': {} + '@clack/core@0.5.0': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.11.0': + dependencies: + '@clack/core': 0.5.0 + picocolors: 1.1.1 + sisteransi: 1.0.5 + '@commitlint/cli@19.2.2(@types/node@22.9.1)(typescript@5.8.3)': dependencies: '@commitlint/format': 19.5.0 @@ -7926,44 +8475,155 @@ snapshots: '@emotion/memoize@0.7.4': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.29.0(jiti@1.21.6))': + '@es-joy/jsdoccomment@0.78.0': + dependencies: + '@types/estree': 1.0.8 + '@typescript-eslint/types': 8.53.1 + comment-parser: 1.4.1 + esquery: 1.7.0 + jsdoc-type-pratt-parser: 7.0.0 + + '@es-joy/jsdoccomment@0.82.0': + dependencies: + '@types/estree': 1.0.8 + '@typescript-eslint/types': 8.53.1 + comment-parser: 1.4.4 + esquery: 1.7.0 + jsdoc-type-pratt-parser: 7.1.0 + + '@es-joy/resolve.exports@1.2.0': {} + + '@eslint-community/eslint-plugin-eslint-comments@4.6.0(eslint@9.39.2(jiti@1.21.6))': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.39.2(jiti@1.21.6) + ignore: 7.0.5 + + '@eslint-community/eslint-utils@4.7.0(eslint@9.39.2(jiti@1.21.6))': dependencies: - eslint: 9.29.0(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.6) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@1.21.6))': dependencies: - eslint: 9.29.0(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.20.1': + '@eslint-community/regexpp@4.12.2': {} + + '@eslint-react/ast@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.3.7 + '@eslint-react/eff': 2.7.2 + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + string-ts: 2.3.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@eslint-react/core@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/eff': 2.7.2 + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + birecord: 0.1.1 + eslint: 9.39.2(jiti@1.21.6) + ts-pattern: 5.9.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@eslint-react/eff@2.7.2': {} + + '@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@eslint-react/eff': 2.7.2 + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + eslint-plugin-react-dom: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint-plugin-react-hooks-extra: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint-plugin-react-naming-convention: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint-plugin-react-web-api: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint-plugin-react-x: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + ts-api-utils: 2.4.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@eslint-react/shared@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@eslint-react/eff': 2.7.2 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + ts-pattern: 5.9.0 + typescript: 5.8.3 + zod: 3.25.76 + transitivePeerDependencies: + - supports-color + + '@eslint-react/var@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/eff': 2.7.2 + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + ts-pattern: 5.9.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@eslint/compat@1.4.1(eslint@9.39.2(jiti@1.21.6))': + dependencies: + '@eslint/core': 0.17.0 + optionalDependencies: + eslint: 9.39.2(jiti@1.21.6) + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.3': {} + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/config-helpers@0.5.1': + dependencies: + '@eslint/core': 1.0.1 '@eslint/core@0.13.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.14.0': + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.15.0': + '@eslint/core@1.0.1': dependencies: '@types/json-schema': 7.0.15 '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.3.7 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -7974,18 +8634,37 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.29.0': {} + '@eslint/js@9.39.2': {} + + '@eslint/markdown@7.5.1': + dependencies: + '@eslint/core': 0.17.0 + '@eslint/plugin-kit': 0.4.1 + github-slugger: 2.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-frontmatter: 2.0.1 + mdast-util-gfm: 3.1.0 + micromark-extension-frontmatter: 2.0.0 + micromark-extension-gfm: 3.0.0 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} '@eslint/plugin-kit@0.2.8': dependencies: '@eslint/core': 0.13.0 levn: 0.4.1 - '@eslint/plugin-kit@0.3.2': + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@eslint/plugin-kit@0.5.1': dependencies: - '@eslint/core': 0.15.0 + '@eslint/core': 1.0.1 levn: 0.4.1 '@expo/cli@0.24.15': @@ -8019,7 +8698,7 @@ snapshots: ci-info: 3.9.0 compression: 1.7.5 connect: 3.7.0 - debug: 4.4.1 + debug: 4.4.3 env-editor: 0.4.2 freeport-async: 2.0.0 getenv: 2.0.0 @@ -8069,7 +8748,7 @@ snapshots: '@expo/plist': 0.3.4 '@expo/sdk-runtime-versions': 1.0.0 chalk: 4.1.2 - debug: 4.3.7 + debug: 4.4.3 getenv: 1.0.0 glob: 10.4.5 resolve-from: 5.0.0 @@ -8088,7 +8767,7 @@ snapshots: '@expo/plist': 0.3.4 '@expo/sdk-runtime-versions': 1.0.0 chalk: 4.1.2 - debug: 4.4.1 + debug: 4.4.3 getenv: 2.0.0 glob: 10.4.5 resolve-from: 5.0.0 @@ -8140,7 +8819,7 @@ snapshots: '@expo/env@1.0.5': dependencies: chalk: 4.1.2 - debug: 4.3.7 + debug: 4.4.3 dotenv: 16.4.5 dotenv-expand: 11.0.7 getenv: 1.0.0 @@ -8152,7 +8831,7 @@ snapshots: '@expo/spawn-async': 1.7.2 arg: 5.0.2 chalk: 4.1.2 - debug: 4.4.1 + debug: 4.4.3 find-up: 5.0.0 getenv: 2.0.0 glob: 10.4.5 @@ -8192,7 +8871,7 @@ snapshots: '@expo/json-file': 9.1.4 '@expo/spawn-async': 1.7.2 chalk: 4.1.2 - debug: 4.4.1 + debug: 4.4.3 dotenv: 16.4.5 dotenv-expand: 11.0.7 getenv: 2.0.0 @@ -8237,7 +8916,7 @@ snapshots: '@expo/image-utils': 0.7.4 '@expo/json-file': 9.1.4 '@react-native/normalize-colors': 0.79.2 - debug: 4.3.7 + debug: 4.4.3 resolve-from: 5.0.0 semver: 7.6.3 xml2js: 0.6.0 @@ -8252,7 +8931,7 @@ snapshots: '@expo/image-utils': 0.7.4 '@expo/json-file': 9.1.4 '@react-native/normalize-colors': 0.79.4 - debug: 4.4.1 + debug: 4.4.3 resolve-from: 5.0.0 semver: 7.7.2 xml2js: 0.6.0 @@ -8264,7 +8943,7 @@ snapshots: '@expo/server@0.6.2': dependencies: abort-controller: 3.0.0 - debug: 4.3.7 + debug: 4.4.3 source-map-support: 0.5.21 undici: 6.21.0 transitivePeerDependencies: @@ -8772,6 +9451,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -8831,12 +9512,10 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@nolyfill/is-core-module@1.0.39': {} - '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.2.7': {} + '@pkgr/core@0.2.9': {} '@pnpm/config.env-replace@1.1.0': {} @@ -9064,6 +9743,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sindresorhus/base62@1.0.0': {} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 @@ -9072,6 +9753,16 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.6))': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@typescript-eslint/types': 8.53.1 + eslint: 9.39.2(jiti@1.21.6) + eslint-visitor-keys: 5.0.0 + espree: 11.1.0 + estraverse: 5.3.0 + picomatch: 4.0.3 + '@tanstack/query-core@5.52.0': {} '@tanstack/react-query@5.52.1(react@19.0.0)': @@ -9111,7 +9802,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.2 + '@babel/parser': 7.28.6 '@babel/types': 7.26.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 @@ -9119,32 +9810,36 @@ snapshots: '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 '@types/conventional-commits-parser@5.0.0': dependencies: '@types/node': 22.9.1 + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 - '@types/estree@1.0.6': {} + '@types/estree@1.0.8': {} '@types/graceful-fs@4.1.9': dependencies: @@ -9187,6 +9882,12 @@ snapshots: '@types/lodash@4.17.13': {} + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/ms@2.1.0': {} + '@types/node@16.9.1': {} '@types/node@22.9.1': @@ -9203,37 +9904,38 @@ snapshots: '@types/tough-cookie@4.0.5': {} + '@types/unist@3.0.3': {} + '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.33': dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/type-utils': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - eslint: 9.29.0(jiti@1.21.6) - graphemer: 1.4.0 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.53.1 + eslint: 9.39.2(jiti@1.21.6) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) + ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3)': + '@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.3.7 - eslint: 9.29.0(jiti@1.21.6) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.53.1 + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.6) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -9241,8 +9943,17 @@ snapshots: '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) - '@typescript-eslint/types': 8.34.0 - debug: 4.4.1 + '@typescript-eslint/types': 8.53.1 + debug: 4.4.3 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.53.1(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.8.3) + '@typescript-eslint/types': 8.53.1 + debug: 4.4.3 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -9252,46 +9963,84 @@ snapshots: '@typescript-eslint/types': 8.34.0 '@typescript-eslint/visitor-keys': 8.34.0 + '@typescript-eslint/scope-manager@8.53.1': + dependencies: + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/visitor-keys': 8.53.1 + '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.53.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - debug: 4.3.7 - eslint: 9.29.0(jiti@1.21.6) - ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + + '@typescript-eslint/type-utils@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.6) + ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.34.0': {} + '@typescript-eslint/types@8.53.1': {} + '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': dependencies: '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) '@typescript-eslint/types': 8.34.0 '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.3.7 + debug: 4.4.3 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 2.1.0(typescript@5.8.3) + ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.53.1(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@1.21.6)) + '@typescript-eslint/project-service': 8.53.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.8.3) + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/visitor-keys': 8.53.1 + debug: 4.4.3 + minimatch: 9.0.5 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.34.0(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.34.0 '@typescript-eslint/types': 8.34.0 '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - eslint: 9.29.0(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.6) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -9301,6 +10050,11 @@ snapshots: '@typescript-eslint/types': 8.34.0 eslint-visitor-keys: 4.2.1 + '@typescript-eslint/visitor-keys@8.53.1': + dependencies: + '@typescript-eslint/types': 8.53.1 + eslint-visitor-keys: 4.2.1 + '@unrs/resolver-binding-android-arm-eabi@1.9.0': optional: true @@ -9372,6 +10126,48 @@ snapshots: '@urql/core': 5.0.8 wonka: 6.3.4 + '@vitest/eslint-plugin@1.6.6(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.5.27': + dependencies: + '@babel/parser': 7.28.6 + '@vue/shared': 3.5.27 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.27': + dependencies: + '@vue/compiler-core': 3.5.27 + '@vue/shared': 3.5.27 + + '@vue/compiler-sfc@3.5.27': + dependencies: + '@babel/parser': 7.28.6 + '@vue/compiler-core': 3.5.27 + '@vue/compiler-dom': 3.5.27 + '@vue/compiler-ssr': 3.5.27 + '@vue/shared': 3.5.27 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.27': + dependencies: + '@vue/compiler-dom': 3.5.27 + '@vue/shared': 3.5.27 + + '@vue/shared@3.5.27': {} + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -9472,7 +10268,7 @@ snapshots: acorn-globals@7.0.1: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk: 8.3.4 acorn-jsx@5.3.2(acorn@8.15.0): @@ -9481,11 +10277,11 @@ snapshots: acorn-loose@8.4.0: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk@8.3.4: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn@8.14.0: {} @@ -9493,7 +10289,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -9584,6 +10380,8 @@ snapshots: ansi-styles@6.2.1: {} + ansis@4.2.0: {} + any-base@1.1.0: {} any-observable@0.3.0(rxjs@6.6.7): @@ -9609,6 +10407,8 @@ snapshots: application-config-path@0.1.1: {} + are-docs-informative@0.0.2: {} + arg@5.0.2: {} argparse@1.0.10: @@ -9624,11 +10424,6 @@ snapshots: call-bind: 1.0.7 is-array-buffer: 3.0.4 - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - array-ify@1.0.0: {} array-includes@3.1.8: @@ -9642,7 +10437,7 @@ snapshots: array-timsort@1.0.3: {} - array.prototype.findlast@1.2.5: + array.prototype.findlastindex@1.2.5: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -9651,16 +10446,7 @@ snapshots: es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - array.prototype.findlastindex@1.2.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.5 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.flat@1.3.2: + array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -9674,21 +10460,6 @@ snapshots: es-abstract: 1.23.5 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.5 - es-shim-unscopables: 1.0.2 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.5 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -9700,16 +10471,6 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - asap@2.0.6: {} async-limiter@1.0.1: {} @@ -9759,7 +10520,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 @@ -9846,7 +10607,7 @@ snapshots: babel-plugin-react-native-web: 0.19.13 babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) - debug: 4.4.1 + debug: 4.4.3 react-refresh: 0.14.2 resolve-from: 5.0.0 transitivePeerDependencies: @@ -9863,6 +10624,8 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.9.17: {} + better-opn@3.0.2: dependencies: open: 8.4.2 @@ -9871,6 +10634,8 @@ snapshots: binary-extensions@2.3.0: {} + birecord@0.1.1: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -9931,6 +10696,14 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.0) + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.17 + caniuse-lite: 1.0.30001765 + electron-to-chromium: 1.5.267 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + bs-logger@0.2.6: dependencies: fast-json-stable-stringify: 2.1.0 @@ -9956,10 +10729,7 @@ snapshots: bytes@3.1.2: {} - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 + cac@6.7.14: {} call-bind@1.0.7: dependencies: @@ -9969,18 +10739,6 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.0 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - caller-callsite@2.0.0: dependencies: callsites: 2.0.0 @@ -10005,6 +10763,10 @@ snapshots: caniuse-lite@1.0.30001723: {} + caniuse-lite@1.0.30001765: {} + + ccount@2.0.1: {} + centra@2.7.0: dependencies: follow-redirects: 1.15.9 @@ -10041,10 +10803,14 @@ snapshots: chalk@5.3.0: {} + change-case@5.4.4: {} + char-regex@1.0.2: {} char-regex@2.0.2: {} + character-entities@2.0.2: {} + chardet@0.7.0: {} chokidar@3.6.0: @@ -10089,6 +10855,8 @@ snapshots: ci-info@4.2.0: {} + ci-info@4.3.1: {} + cjs-module-lexer@1.4.1: {} clean-regexp@1.0.0: @@ -10195,11 +10963,17 @@ snapshots: has-own-prop: 2.0.0 repeat-string: 1.6.1 + comment-parser@1.4.1: {} + + comment-parser@1.4.4: {} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 dot-prop: 5.3.0 + compare-versions@6.1.1: {} + compressible@2.0.18: dependencies: mime-db: 1.53.0 @@ -10218,6 +10992,10 @@ snapshots: concat-map@0.0.1: {} + confbox@0.1.8: {} + + confbox@0.2.2: {} + config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -10260,6 +11038,10 @@ snapshots: dependencies: browserslist: 4.25.0 + core-js-compat@3.47.0: + dependencies: + browserslist: 4.28.1 + core-util-is@1.0.3: {} cosmiconfig-typescript-loader@5.1.0(@types/node@22.9.1)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): @@ -10374,36 +11156,18 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - data-view-byte-length@1.0.1: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - data-view-byte-offset@1.0.0: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - date-fns@1.30.1: {} debug@2.6.9: @@ -10422,8 +11186,16 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decimal.js@10.4.3: {} + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + decode-uri-component@0.2.2: {} dedent@1.5.3: {} @@ -10478,14 +11250,22 @@ snapshots: depd@2.0.0: {} + dequal@2.0.3: {} + destroy@1.2.0: {} detect-libc@1.0.3: {} detect-newline@3.1.0: {} + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + didyoumean@1.2.2: {} + diff-sequences@27.5.1: {} + diff-sequences@29.6.3: {} diff@3.5.0: {} @@ -10540,18 +11320,14 @@ snapshots: dotenv@16.4.5: {} - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - eastasianwidth@0.2.0: {} ee-first@1.1.1: {} electron-to-chromium@1.5.167: {} + electron-to-chromium@1.5.267: {} + electron-to-chromium@1.5.63: {} elegant-spinner@1.0.1: {} @@ -10564,6 +11340,8 @@ snapshots: emoji-regex@9.2.2: {} + empathic@2.0.0: {} + encodeurl@1.0.2: {} encodeurl@2.0.0: {} @@ -10575,6 +11353,8 @@ snapshots: entities@4.5.0: {} + entities@7.0.1: {} + env-editor@0.4.2: {} env-paths@2.2.1: {} @@ -10640,113 +11420,24 @@ snapshots: unbox-primitive: 1.0.2 which-typed-array: 1.1.15 - es-abstract@1.24.0: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-negative-zero: 2.0.3 - is-regex: 1.2.1 - is-set: 2.0.3 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - 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 - stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 - es-define-property@1.0.1: {} - es-errors@1.3.0: {} - es-iterator-helpers@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - 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.5 - safe-array-concat: 1.1.3 - es-module-lexer@1.5.4: {} es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 @@ -10757,12 +11448,6 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -10785,27 +11470,25 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-expo@9.2.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3): + eslint-compat-utils@0.5.1(eslint@9.39.2(jiti@1.21.6)): dependencies: - '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.29.0(jiti@1.21.6) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@1.21.6)) - eslint-plugin-expo: 0.1.4(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.29.0(jiti@1.21.6)) - eslint-plugin-react: 7.37.5(eslint@9.29.0(jiti@1.21.6)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.29.0(jiti@1.21.6)) - globals: 16.2.0 - transitivePeerDependencies: - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - - typescript + eslint: 9.39.2(jiti@1.21.6) + semver: 7.7.2 + + eslint-compat-utils@0.6.5(eslint@9.39.2(jiti@1.21.6)): + dependencies: + eslint: 9.39.2(jiti@1.21.6) + semver: 7.7.2 + + eslint-config-flat-gitignore@2.1.0(eslint@9.39.2(jiti@1.21.6)): + dependencies: + '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@1.21.6)) + eslint: 9.39.2(jiti@1.21.6) - eslint-config-prettier@10.1.5(eslint@9.29.0(jiti@1.21.6)): + eslint-flat-config-utils@3.0.0: dependencies: - eslint: 9.29.0(jiti@1.21.6) + '@eslint/config-helpers': 0.5.1 + pathe: 2.0.3 eslint-import-context@0.1.8(unrs-resolver@1.9.0): dependencies: @@ -10822,29 +11505,10 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@1.21.6)): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.3.7 - enhanced-resolve: 5.17.1 - eslint: 9.29.0(jiti@1.21.6) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.29.0(jiti@1.21.6)) - fast-glob: 3.3.2 - get-tsconfig: 4.8.1 - is-bun-module: 1.2.1 - is-glob: 4.0.3 - optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.6)) - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - - eslint-import-resolver-typescript@4.4.3(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@1.21.6)): + eslint-import-resolver-typescript@4.4.3(eslint-plugin-import@2.31.0)(eslint@9.39.2(jiti@1.21.6)): dependencies: debug: 4.4.1 - eslint: 9.29.0(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.6) eslint-import-context: 0.1.8(unrs-resolver@1.9.0) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 @@ -10852,56 +11516,52 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.9.0 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.6)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.29.0(jiti@1.21.6)): + eslint-json-compat-utils@0.2.1(eslint@9.39.2(jiti@1.21.6))(jsonc-eslint-parser@2.4.2): dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.29.0(jiti@1.21.6) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@1.21.6)) - transitivePeerDependencies: - - supports-color + eslint: 9.39.2(jiti@1.21.6) + esquery: 1.7.0 + jsonc-eslint-parser: 2.4.2 + + eslint-merge-processors@2.0.0(eslint@9.39.2(jiti@1.21.6)): + dependencies: + eslint: 9.39.2(jiti@1.21.6) - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.6)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.29.0(jiti@1.21.6) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.3(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@1.21.6)) + eslint-import-resolver-typescript: 4.4.3(eslint-plugin-import@2.31.0)(eslint@9.39.2(jiti@1.21.6)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-antfu@3.1.3(eslint@9.39.2(jiti@1.21.6)): dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.29.0(jiti@1.21.6) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.29.0(jiti@1.21.6)) - transitivePeerDependencies: - - supports-color + eslint: 9.39.2(jiti@1.21.6) - eslint-plugin-expo@0.1.4(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-command@3.4.0(eslint@9.39.2(jiti@1.21.6)): dependencies: - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.29.0(jiti@1.21.6) - transitivePeerDependencies: - - supports-color - - typescript + '@es-joy/jsdoccomment': 0.78.0 + eslint: 9.39.2(jiti@1.21.6) - eslint-plugin-i18n-json@4.0.1(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-es-x@7.8.0(eslint@9.39.2(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.2 + eslint: 9.39.2(jiti@1.21.6) + eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@1.21.6)) + + eslint-plugin-i18n-json@4.0.1(eslint@9.39.2(jiti@1.21.6)): dependencies: '@formatjs/icu-messageformat-parser': 2.9.4 chalk: 2.4.2 - eslint: 9.29.0(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.6) indent-string: 3.2.0 jest-diff: 22.4.3 lodash: 4.17.21 @@ -10910,7 +11570,11 @@ snapshots: plur: 2.1.2 pretty-format: 22.4.3 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-import-lite@0.5.0(eslint@9.39.2(jiti@1.21.6)): + dependencies: + eslint: 9.39.2(jiti@1.21.6) + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -10919,9 +11583,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.29.0(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.29.0(jiti@1.21.6)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -10933,92 +11597,214 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-jsdoc@62.3.0(eslint@9.39.2(jiti@1.21.6)): dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 9.29.0(jiti@1.21.6) - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.6)) - hasown: 2.0.2 - is-core-module: 2.15.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - string.prototype.trimend: 1.0.8 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) + '@es-joy/jsdoccomment': 0.82.0 + '@es-joy/resolve.exports': 1.2.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.4 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint: 9.39.2(jiti@1.21.6) + espree: 11.1.0 + esquery: 1.7.0 + html-entities: 2.6.0 + object-deep-merge: 2.0.0 + parse-imports-exports: 0.2.4 + semver: 7.7.3 + spdx-expression-parse: 4.0.0 + to-valid-identifier: 1.0.0 transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.4.1(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.29.0(jiti@1.21.6)))(eslint@9.29.0(jiti@1.21.6))(prettier@3.3.3): + eslint-plugin-jsonc@2.21.0(eslint@9.39.2(jiti@1.21.6)): dependencies: - eslint: 9.29.0(jiti@1.21.6) - prettier: 3.3.3 - prettier-linter-helpers: 1.0.0 - synckit: 0.11.8 - optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.5(eslint@9.29.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) + diff-sequences: 27.5.1 + eslint: 9.39.2(jiti@1.21.6) + eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@1.21.6)) + eslint-json-compat-utils: 0.2.1(eslint@9.39.2(jiti@1.21.6))(jsonc-eslint-parser@2.4.2) + espree: 10.4.0 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.2 + natural-compare: 1.4.0 + synckit: 0.11.12 + transitivePeerDependencies: + - '@eslint/json' - eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-n@17.23.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) + enhanced-resolve: 5.17.1 + eslint: 9.39.2(jiti@1.21.6) + eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@1.21.6)) + get-tsconfig: 4.10.1 + globals: 15.15.0 + globrex: 0.1.2 + ignore: 5.3.2 + semver: 7.7.2 + ts-declaration-location: 1.0.7(typescript@5.8.3) + transitivePeerDependencies: + - typescript + + eslint-plugin-no-only-tests@3.3.0: {} + + eslint-plugin-perfectionist@5.3.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + dependencies: + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + natural-orderby: 5.0.0 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-pnpm@1.5.0(eslint@9.39.2(jiti@1.21.6)): + dependencies: + empathic: 2.0.0 + eslint: 9.39.2(jiti@1.21.6) + jsonc-eslint-parser: 2.4.2 + pathe: 2.0.3 + pnpm-workspace-yaml: 1.5.0 + tinyglobby: 0.2.15 + yaml: 2.8.2 + yaml-eslint-parser: 2.0.0 + + eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.39.2(jiti@1.21.6)): dependencies: '@babel/core': 7.26.0 '@babel/parser': 7.26.2 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.0) - eslint: 9.29.0(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.6) hermes-parser: 0.25.1 zod: 3.23.8 zod-validation-error: 3.4.0(zod@3.23.8) transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@5.2.0(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-react-dom@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/eff': 2.7.2 + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + compare-versions: 6.1.1 + eslint: 9.39.2(jiti@1.21.6) + string-ts: 2.3.1 + ts-pattern: 5.9.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-hooks-extra@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/eff': 2.7.2 + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + string-ts: 2.3.1 + ts-pattern: 5.9.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.6)): dependencies: - eslint: 9.29.0(jiti@1.21.6) + '@babel/core': 7.26.0 + '@babel/parser': 7.28.6 + eslint: 9.39.2(jiti@1.21.6) + hermes-parser: 0.25.1 + zod: 3.25.76 + zod-validation-error: 4.0.2(zod@3.25.76) + transitivePeerDependencies: + - supports-color - eslint-plugin-react@7.37.5(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-react-naming-convention@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/eff': 2.7.2 + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + compare-versions: 6.1.1 + eslint: 9.39.2(jiti@1.21.6) + string-ts: 2.3.1 + ts-pattern: 5.9.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.6)): dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 9.29.0(jiti@1.21.6) - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 + eslint: 9.39.2(jiti@1.21.6) + + eslint-plugin-react-web-api@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/eff': 2.7.2 + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + string-ts: 2.3.1 + ts-pattern: 5.9.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-x@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/eff': 2.7.2 + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + compare-versions: 6.1.1 + eslint: 9.39.2(jiti@1.21.6) + is-immutable-type: 5.0.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + string-ts: 2.3.1 + ts-api-utils: 2.4.0(typescript@5.8.3) + ts-pattern: 5.9.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color - eslint-plugin-simple-import-sort@12.1.1(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@1.21.6)): dependencies: - eslint: 9.29.0(jiti@1.21.6) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 + comment-parser: 1.4.4 + eslint: 9.39.2(jiti@1.21.6) + jsdoc-type-pratt-parser: 4.8.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 eslint-plugin-tailwindcss@3.18.0(tailwindcss@3.4.4): dependencies: @@ -11026,24 +11812,34 @@ snapshots: postcss: 8.4.49 tailwindcss: 3.4.4 - eslint-plugin-testing-library@7.5.3(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-testing-library@7.5.3(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): dependencies: '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.29.0(jiti@1.21.6) + '@typescript-eslint/utils': 8.34.0(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-unicorn@59.0.1(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-toml@1.0.3(eslint@9.39.2(jiti@1.21.6)): + dependencies: + '@eslint/core': 1.0.1 + '@eslint/plugin-kit': 0.5.1 + debug: 4.4.1 + eslint: 9.39.2(jiti@1.21.6) + toml-eslint-parser: 1.0.3 + transitivePeerDependencies: + - supports-color + + eslint-plugin-unicorn@59.0.1(eslint@9.39.2(jiti@1.21.6)): dependencies: '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) '@eslint/plugin-kit': 0.2.8 ci-info: 4.2.0 clean-regexp: 1.0.0 core-js-compat: 3.43.0 - eslint: 9.29.0(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.6) esquery: 1.6.0 find-up-simple: 1.0.1 globals: 16.2.0 @@ -11056,11 +11852,65 @@ snapshots: semver: 7.7.2 strip-indent: 4.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6)): + eslint-plugin-unicorn@62.0.0(eslint@9.39.2(jiti@1.21.6)): + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@eslint/plugin-kit': 0.4.1 + change-case: 5.4.4 + ci-info: 4.3.1 + clean-regexp: 1.0.0 + core-js-compat: 3.47.0 + eslint: 9.39.2(jiti@1.21.6) + esquery: 1.6.0 + find-up-simple: 1.0.1 + globals: 16.5.0 + indent-string: 5.0.0 + is-builtin-module: 5.0.0 + jsesc: 3.1.0 + pluralize: 8.0.0 + regexp-tree: 0.1.27 + regjsparser: 0.13.0 + semver: 7.7.3 + strip-indent: 4.1.1 + + eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6)): + dependencies: + eslint: 9.39.2(jiti@1.21.6) + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + + eslint-plugin-vue@10.7.0(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.6)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.6))): dependencies: - eslint: 9.29.0(jiti@1.21.6) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) + eslint: 9.39.2(jiti@1.21.6) + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 7.1.1 + semver: 7.7.2 + vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@1.21.6)) + xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) + '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@1.21.6)) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + + eslint-plugin-yml@3.0.0(eslint@9.39.2(jiti@1.21.6)): + dependencies: + '@eslint/core': 1.0.1 + '@eslint/plugin-kit': 0.5.1 + debug: 4.4.1 + diff-sequences: 29.6.3 + escape-string-regexp: 5.0.0 + eslint: 9.39.2(jiti@1.21.6) + natural-compare: 1.4.0 + yaml-eslint-parser: 2.0.0 + transitivePeerDependencies: + - supports-color + + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.27)(eslint@9.39.2(jiti@1.21.6)): + dependencies: + '@vue/compiler-sfc': 3.5.27 + eslint: 9.39.2(jiti@1.21.6) eslint-scope@5.1.1: dependencies: @@ -11076,30 +11926,31 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.29.0(jiti@1.21.6): + eslint-visitor-keys@5.0.0: {} + + eslint@9.39.2(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.29.0(jiti@1.21.6)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.1 - '@eslint/config-helpers': 0.2.3 - '@eslint/core': 0.14.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.29.0 - '@eslint/plugin-kit': 0.3.2 + '@eslint/js': 9.39.2 + '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 + '@types/estree': 1.0.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 - esquery: 1.6.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -11124,12 +11975,28 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 + espree@11.1.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 5.0.0 + + espree@9.6.1: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} esquery@1.6.0: dependencies: estraverse: 5.3.0 + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -11138,6 +12005,8 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + esutils@2.0.3: {} etag@1.8.1: {} @@ -11398,6 +12267,8 @@ snapshots: exponential-backoff@3.1.1: {} + exsolve@1.0.8: {} + external-editor@3.1.0: dependencies: chardet: 0.7.0 @@ -11406,8 +12277,6 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-diff@1.3.0: {} - fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -11426,6 +12295,10 @@ snapshots: dependencies: reusify: 1.0.4 + fault@2.0.1: + dependencies: + format: 0.2.2 + fb-watchman@2.0.2: dependencies: bser: 2.1.1 @@ -11448,6 +12321,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + figures@1.7.0: dependencies: escape-string-regexp: 1.0.5 @@ -11530,11 +12407,7 @@ snapshots: fontfaceobserver@2.3.0: {} - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 - - for-each@0.3.5: + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -11549,6 +12422,8 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + format@0.2.2: {} + framer-motion@6.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@motionone/dom': 10.12.0 @@ -11584,15 +12459,6 @@ snapshots: es-abstract: 1.23.5 functions-have-names: 1.2.3 - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - functions-have-names@1.2.3: {} gensync@1.0.0-beta.2: {} @@ -11609,28 +12475,10 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - get-package-type@0.1.0: {} get-port@3.2.0: {} - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -11641,20 +12489,10 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 - get-tsconfig@4.8.1: - dependencies: - resolve-pkg-maps: 1.0.0 - getenv@1.0.0: {} getenv@2.0.0: {} @@ -11670,6 +12508,8 @@ snapshots: meow: 12.1.1 split2: 4.2.0 + github-slugger@2.0.0: {} + github-url-from-git@1.5.0: {} glob-parent@5.1.2: @@ -11720,8 +12560,14 @@ snapshots: globals@14.0.0: {} + globals@15.15.0: {} + globals@16.2.0: {} + globals@16.5.0: {} + + globals@17.0.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -11735,12 +12581,12 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 + globrex@0.1.2: {} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 - gopd@1.2.0: {} - graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} @@ -11765,14 +12611,8 @@ snapshots: has-proto@1.0.3: {} - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - has-symbols@1.0.3: {} - has-symbols@1.1.0: {} - has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 @@ -11807,6 +12647,8 @@ snapshots: dependencies: whatwg-encoding: 2.0.0 + html-entities@2.6.0: {} + html-escaper@2.0.2: {} html-parse-stringify@3.0.1: @@ -11825,21 +12667,21 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -11982,12 +12824,6 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -11999,28 +12835,14 @@ snapshots: call-bind: 1.0.7 get-intrinsic: 1.2.4 - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-arrayish@0.2.1: {} is-arrayish@0.3.2: {} - is-async-function@2.0.0: - dependencies: - has-tostringtag: 1.0.2 - is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - is-bigint@1.1.0: - dependencies: - has-bigints: 1.0.2 - is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -12030,19 +12852,10 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-builtin-module@5.0.0: dependencies: builtin-modules: 5.0.0 - is-bun-module@1.2.1: - dependencies: - semver: 7.6.3 - is-bun-module@2.0.0: dependencies: semver: 7.7.2 @@ -12057,21 +12870,10 @@ snapshots: dependencies: is-typed-array: 1.1.13 - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.2 - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-directory@0.3.1: {} is-docker@2.2.1: {} @@ -12080,14 +12882,6 @@ snapshots: is-extglob@2.1.1: {} - is-finalizationregistry@1.0.2: - dependencies: - call-bind: 1.0.8 - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - is-fullwidth-code-point@1.0.0: dependencies: number-is-nan: 1.0.1 @@ -12106,14 +12900,20 @@ snapshots: is-generator-fn@2.1.0: {} - is-generator-function@1.0.10: - dependencies: - has-tostringtag: 1.0.2 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 + is-immutable-type@5.0.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + dependencies: + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.6) + ts-api-utils: 2.4.0(typescript@5.8.3) + ts-declaration-location: 1.0.7(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + is-in-ci@1.0.0: {} is-inside-container@1.0.0: @@ -12129,8 +12929,6 @@ snapshots: is-interactive@2.0.0: {} - is-map@2.0.3: {} - is-negative-zero@2.0.3: {} is-npm@6.0.0: {} @@ -12139,11 +12937,6 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-number@7.0.0: {} is-obj@2.0.0: {} @@ -12165,27 +12958,14 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - is-scoped@3.0.0: dependencies: scoped-regex: 3.0.0 - is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - is-stream@1.1.0: {} is-stream@2.0.1: {} @@ -12196,21 +12976,10 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - is-text-path@2.0.0: dependencies: text-extensions: 2.4.0 @@ -12219,31 +12988,16 @@ snapshots: dependencies: which-typed-array: 1.1.15 - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - is-unicode-supported@0.1.0: {} is-unicode-supported@1.3.0: {} is-url-superb@6.1.0: {} - is-weakmap@2.0.2: {} - is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.3: - dependencies: - call-bind: 1.0.8 - get-intrinsic: 1.3.0 - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -12270,7 +13024,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.26.2 + '@babel/parser': 7.28.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -12280,7 +13034,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.26.2 + '@babel/parser': 7.28.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.2 @@ -12295,7 +13049,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1 + debug: 4.4.3 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -12306,15 +13060,6 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.0.0 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -12743,6 +13488,12 @@ snapshots: jsc-safe-url@0.2.4: {} + jsdoc-type-pratt-parser@4.8.0: {} + + jsdoc-type-pratt-parser@7.0.0: {} + + jsdoc-type-pratt-parser@7.1.0: {} + jsdom@20.0.3: dependencies: abab: 2.0.6 @@ -12798,14 +13549,14 @@ snapshots: json5@2.2.3: {} - jsonparse@1.3.1: {} - - jsx-ast-utils@3.3.5: + jsonc-eslint-parser@2.4.2: dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.1 + acorn: 8.15.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.7.2 + + jsonparse@1.3.1: {} keyv@4.5.4: dependencies: @@ -12968,6 +13719,12 @@ snapshots: loader-runner@4.3.0: {} + local-pkg@1.1.2: + dependencies: + mlly: 1.8.0 + pkg-types: 2.3.0 + quansync: 0.2.11 + locate-path@3.0.0: dependencies: p-locate: 3.0.0 @@ -13045,6 +13802,8 @@ snapshots: strip-ansi: 7.1.0 wrap-ansi: 9.0.0 + longest-streak@3.1.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -13055,6 +13814,10 @@ snapshots: dependencies: yallist: 3.1.1 + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@4.0.0: dependencies: semver: 7.7.2 @@ -13065,9 +13828,122 @@ snapshots: dependencies: tmpl: 1.0.5 + markdown-table@3.0.4: {} + marky@1.2.5: {} - math-intrinsics@1.1.0: {} + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 mdn-data@2.0.14: {} @@ -13128,7 +14004,7 @@ snapshots: metro-file-map@0.82.4: dependencies: - debug: 4.4.1 + debug: 4.4.3 fb-watchman: 2.0.2 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -13195,8 +14071,8 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 flow-enums-runtime: 0.0.6 metro: 0.82.4 metro-babel-transformer: 0.82.4 @@ -13211,52 +14087,250 @@ snapshots: - supports-color - utf-8-validate - metro@0.82.4: + metro@0.82.4: + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/core': 7.26.0 + '@babel/generator': 7.26.2 + '@babel/parser': 7.28.6 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + accepts: 1.3.8 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 4.4.3 + error-stack-parser: 2.1.4 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + hermes-parser: 0.28.1 + image-size: 1.1.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.82.4 + metro-cache: 0.82.4 + metro-cache-key: 0.82.4 + metro-config: 0.82.4 + metro-core: 0.82.4 + metro-file-map: 0.82.4 + metro-resolver: 0.82.4 + metro-runtime: 0.82.4 + metro-source-map: 0.82.4 + metro-symbolicate: 0.82.4 + metro-transform-plugins: 0.82.4 + metro-transform-worker: 0.82.4 + mime-types: 2.1.35 + nullthrows: 1.1.1 + serialize-error: 2.1.0 + source-map: 0.5.7 + throat: 5.0.0 + ws: 7.5.10 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: dependencies: - '@babel/code-frame': 7.26.2 - '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - accepts: 1.3.8 - chalk: 4.1.2 - ci-info: 2.0.0 - connect: 3.7.0 - debug: 4.4.1 - error-stack-parser: 2.1.4 - flow-enums-runtime: 0.0.6 - graceful-fs: 4.2.11 - hermes-parser: 0.28.1 - image-size: 1.1.1 - invariant: 2.2.4 - jest-worker: 29.7.0 - jsc-safe-url: 0.2.4 - lodash.throttle: 4.1.1 - metro-babel-transformer: 0.82.4 - metro-cache: 0.82.4 - metro-cache-key: 0.82.4 - metro-config: 0.82.4 - metro-core: 0.82.4 - metro-file-map: 0.82.4 - metro-resolver: 0.82.4 - metro-runtime: 0.82.4 - metro-source-map: 0.82.4 - metro-symbolicate: 0.82.4 - metro-transform-plugins: 0.82.4 - metro-transform-worker: 0.82.4 - mime-types: 2.1.35 - nullthrows: 1.1.1 - serialize-error: 2.1.0 - source-map: 0.5.7 - throat: 5.0.0 - ws: 7.5.10 - yargs: 17.7.2 + '@types/debug': 4.1.12 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 transitivePeerDependencies: - - bufferutil - supports-color - - utf-8-validate micromatch@4.0.8: dependencies: @@ -13317,6 +14391,13 @@ snapshots: mkdirp@3.0.1: {} + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.3 + moti@0.29.0(react-dom@19.0.0(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): dependencies: framer-motion: 6.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -13365,6 +14446,8 @@ snapshots: natural-compare@1.4.0: {} + natural-orderby@5.0.0: {} + negotiator@0.6.3: {} negotiator@0.6.4: {} @@ -13389,6 +14472,8 @@ snapshots: node-releases@2.0.19: {} + node-releases@2.0.27: {} + normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 @@ -13483,12 +14568,12 @@ snapshots: object-assign@4.1.1: {} + object-deep-merge@2.0.0: {} + object-hash@3.0.0: {} object-inspect@1.13.3: {} - object-inspect@1.13.4: {} - object-keys@1.1.1: {} object.assign@4.1.5: @@ -13498,22 +14583,6 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - object.fromentries@2.0.8: dependencies: call-bind: 1.0.7 @@ -13533,13 +14602,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - omggif@1.0.10: {} on-finished@2.3.0: @@ -13624,12 +14686,6 @@ snapshots: os-tmpdir@1.0.2: {} - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -13684,6 +14740,8 @@ snapshots: registry-url: 6.0.1 semver: 7.7.2 + package-manager-detector@1.6.0: {} + pako@1.0.11: {} parent-module@1.0.1: @@ -13699,8 +14757,14 @@ snapshots: xml-parse-from-string: 1.0.1 xml2js: 0.5.0 + parse-gitignore@2.0.0: {} + parse-headers@2.0.5: {} + parse-imports-exports@0.2.4: + dependencies: + parse-statements: 1.0.11 + parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -13723,6 +14787,8 @@ snapshots: dependencies: pngjs: 3.4.0 + parse-statements@1.0.11: {} + parse5@7.2.1: dependencies: entities: 4.5.0 @@ -13755,6 +14821,8 @@ snapshots: path-type@4.0.0: {} + pathe@2.0.3: {} + peek-readable@4.1.0: {} phin@3.7.1: @@ -13771,6 +14839,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.3: {} + pidtree@0.6.0: {} pify@2.3.0: {} @@ -13789,6 +14859,18 @@ snapshots: dependencies: find-up-simple: 1.0.0 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.0 + pathe: 2.0.3 + + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.8 + pathe: 2.0.3 + pkg-up@3.1.0: dependencies: find-up: 3.0.0 @@ -13809,6 +14891,10 @@ snapshots: pngjs@6.0.0: {} + pnpm-workspace-yaml@1.5.0: + dependencies: + yaml: 2.8.2 + popmotion@11.0.3: dependencies: framesync: 6.0.1 @@ -13847,6 +14933,11 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@7.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-value-parser@4.2.0: {} postcss@8.4.49: @@ -13855,13 +14946,13 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prelude-ls@1.2.1: {} - - prettier-linter-helpers@1.0.0: + postcss@8.5.6: dependencies: - fast-diff: 1.3.0 + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 - prettier@3.3.3: {} + prelude-ls@1.2.1: {} pretty-bytes@5.6.0: {} @@ -13919,6 +15010,8 @@ snapshots: qrcode-terminal@0.11.0: {} + quansync@0.2.11: {} + query-string@7.1.3: dependencies: decode-uri-component: 0.2.2 @@ -13996,7 +15089,7 @@ snapshots: '@babel/helper-module-imports': 7.25.9 '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.7 + debug: 4.4.3 lightningcss: 1.27.0 react: 19.0.0 react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) @@ -14237,26 +15330,9 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - reflect.getprototypeof@1.0.6: + refa@0.12.1: dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - which-builtin-type: 1.1.4 + '@eslint-community/regexpp': 4.12.2 regenerate-unicode-properties@10.2.0: dependencies: @@ -14272,6 +15348,11 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.12.2 + refa: 0.12.1 + regexp-tree@0.1.27: {} regexp.prototype.flags@1.5.3: @@ -14281,15 +15362,6 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 - 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.1.1: dependencies: regenerate: 1.4.2 @@ -14317,6 +15389,10 @@ snapshots: dependencies: jsesc: 3.0.2 + regjsparser@0.13.0: + dependencies: + jsesc: 3.1.0 + repeat-string@1.6.1: {} require-directory@2.1.1: {} @@ -14333,6 +15409,8 @@ snapshots: reselect@4.1.8: {} + reserved-identifiers@1.2.0: {} + resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 @@ -14361,12 +15439,6 @@ snapshots: dependencies: path-parse: 1.0.7 - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.15.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@2.0.0: dependencies: onetime: 2.0.1 @@ -14417,33 +15489,14 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - safer-buffer@2.1.2: {} sax@1.4.1: {} @@ -14469,12 +15522,20 @@ snapshots: scoped-regex@3.0.0: {} + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.12.2 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + semver@6.3.1: {} semver@7.6.3: {} semver@7.7.2: {} + semver@7.7.3: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -14544,12 +15605,6 @@ 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.1.1 - setimmediate@1.0.5: {} setprototypeof@1.2.0: {} @@ -14564,26 +15619,6 @@ snapshots: shell-quote@1.8.1: {} - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.3 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.3 - side-channel-map: 1.0.1 - side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -14591,14 +15626,6 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.3 - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.3 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -14665,6 +15692,11 @@ snapshots: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.20 + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + spdx-license-ids@3.0.20: {} split-on-first@1.1.0: {} @@ -14704,11 +15736,6 @@ snapshots: statuses@2.0.1: {} - stop-iteration-iterator@1.1.0: - dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - stream-buffers@2.2.0: {} strict-uri-encode@2.0.0: {} @@ -14725,6 +15752,8 @@ snapshots: char-regex: 2.0.2 strip-ansi: 7.1.0 + string-ts@2.3.1: {} + string-width@1.0.2: dependencies: code-point-at: 1.1.0 @@ -14754,37 +15783,6 @@ snapshots: get-east-asian-width: 1.3.0 strip-ansi: 7.1.0 - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.3 - 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.5 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 @@ -14798,13 +15796,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.7 @@ -14851,6 +15842,8 @@ snapshots: dependencies: min-indent: 1.0.1 + strip-indent@4.1.1: {} + strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -14910,9 +15903,9 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.11.8: + synckit@0.11.12: dependencies: - '@pkgr/core': 0.2.7 + '@pkgr/core': 0.2.9 tailwind-merge@2.5.4: {} @@ -15013,11 +16006,18 @@ snapshots: tinyexec@0.3.1: {} + tinyexec@1.0.2: {} + tinyglobby@0.2.14: dependencies: fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -15028,6 +16028,11 @@ snapshots: dependencies: is-number: 7.0.0 + to-valid-identifier@1.0.0: + dependencies: + '@sindresorhus/base62': 1.0.0 + reserved-identifiers: 1.2.0 + toidentifier@1.0.1: {} token-types@4.2.1: @@ -15035,6 +16040,10 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 + toml-eslint-parser@1.0.3: + dependencies: + eslint-visitor-keys: 5.0.0 + tough-cookie@4.1.4: dependencies: psl: 1.10.0 @@ -15048,8 +16057,13 @@ snapshots: dependencies: punycode: 2.3.1 - ts-api-utils@2.1.0(typescript@5.8.3): + ts-api-utils@2.4.0(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + + ts-declaration-location@1.0.7(typescript@5.8.3): dependencies: + picomatch: 4.0.2 typescript: 5.8.3 ts-interface-checker@0.1.13: {} @@ -15073,6 +16087,8 @@ snapshots: ts-object-utils@0.0.5: {} + ts-pattern@5.9.0: {} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -15108,12 +16124,6 @@ snapshots: es-errors: 1.3.0 is-typed-array: 1.1.13 - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - typed-array-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -15122,14 +16132,6 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - typed-array-byte-offset@1.0.2: dependencies: available-typed-arrays: 1.0.7 @@ -15139,16 +16141,6 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.6: dependencies: call-bind: 1.0.7 @@ -15158,29 +16150,12 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.3 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.6 - - typescript-eslint@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3))(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/parser': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.29.0(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.29.0(jiti@1.21.6) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - typescript@5.8.3: {} ua-parser-js@1.0.39: {} + ufo@1.6.3: {} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 @@ -15188,13 +16163,6 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.0.2 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - undici-types@6.19.8: {} undici@6.21.0: {} @@ -15216,6 +16184,25 @@ snapshots: dependencies: crypto-random-string: 2.0.0 + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + universalify@0.2.0: {} unpipe@1.0.0: {} @@ -15256,6 +16243,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + update-notifier@7.3.1: dependencies: boxen: 8.0.1 @@ -15317,6 +16310,18 @@ snapshots: void-elements@3.1.0: {} + vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.6)): + dependencies: + debug: 4.4.1 + eslint: 9.39.2(jiti@1.21.6) + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + w3c-xmlserializer@4.0.0: dependencies: xml-name-validator: 4.0.0 @@ -15347,12 +16352,12 @@ snapshots: webpack@5.96.1: dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 - browserslist: 4.25.0 + browserslist: 4.28.1 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 @@ -15408,52 +16413,6 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.1.4: - dependencies: - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.3 - which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 @@ -15462,16 +16421,6 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.2 - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -15572,10 +16521,17 @@ snapshots: yallist@5.0.0: {} + yaml-eslint-parser@2.0.0: + dependencies: + eslint-visitor-keys: 5.0.0 + yaml: 2.6.1 + yaml@2.5.1: {} yaml@2.6.1: {} + yaml@2.8.2: {} + yargs-parser@21.1.1: {} yargs@17.7.2: @@ -15598,10 +16554,18 @@ snapshots: dependencies: zod: 3.23.8 + zod-validation-error@4.0.2(zod@3.25.76): + dependencies: + zod: 3.25.76 + zod@3.23.8: {} + zod@3.25.76: {} + zustand@5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)): optionalDependencies: '@types/react': 19.0.14 react: 19.0.0 use-sync-external-store: 1.5.0(react@19.0.0) + + zwitch@2.0.4: {} diff --git a/prompts/image-to-components.md b/prompts/image-to-components.md index a24bd6701..adb8012a4 100644 --- a/prompts/image-to-components.md +++ b/prompts/image-to-components.md @@ -29,7 +29,7 @@ Here is a example of how to write the component: ```tsx import * as React from 'react'; -import { Text, View, Image, SavaAreaView } from '@/components/ui'; +import { Image, SavaAreaView, Text, View } from '@/components/ui'; // Props should be defined in the top of the component type TitleProps = { @@ -56,9 +56,9 @@ export function Title({ text }: TitleProps) { Here is an example of how to write the form component: ```tsx -import { zodResolver } from '@hookform/resolvers/zod'; -import React from 'react'; import type { SubmitHandler } from 'react-hook-form'; +import { zodResolver } from '@hookform/resolvers/zod'; +import * as React from 'react'; import { useForm } from 'react-hook-form'; import { KeyboardAvoidingView } from 'react-native-keyboard-controller'; import * as z from 'zod'; @@ -85,7 +85,7 @@ export type LoginFormProps = { onSubmit?: SubmitHandler; }; -export const LoginForm = ({ onSubmit = () => {} }: LoginFormProps) => { +export function LoginForm({ onSubmit = () => {} }: LoginFormProps) { const { handleSubmit, control } = useForm({ resolver: zodResolver(schema), }); @@ -139,5 +139,5 @@ export const LoginForm = ({ onSubmit = () => {} }: LoginFormProps) => { ); -}; +} ``` diff --git a/prompts/svg-icon.md b/prompts/svg-icon.md index 16cf4aa42..ffde76f52 100644 --- a/prompts/svg-icon.md +++ b/prompts/svg-icon.md @@ -12,8 +12,9 @@ You should follow the following steps: Here is an example of how to create a react native component for an svg icon: ```tsx +import type { SvgProps } from 'react-native-svg'; import * as React from 'react'; -import Svg, { Path, type SvgProps } from 'react-native-svg'; +import Svg, { Path } from 'react-native-svg'; export function ArrowLeft({ color = 'white', diff --git a/prompts/write-unit-tests.md b/prompts/write-unit-tests.md index 30075c2a8..1899edfa3 100644 --- a/prompts/write-unit-tests.md +++ b/prompts/write-unit-tests.md @@ -48,9 +48,10 @@ Follow the following steps one by one: Here is an example of how a unit tests should look like: ```tsx -import React from 'react'; +import * as React from 'react'; import { cleanup, screen, setup, waitFor } from '@/lib/test-utils'; + afterEach(cleanup); const onSubmitMock: jest.Mock = jest.fn(); diff --git a/scripts/i18next-syntax-validation.js b/scripts/i18next-syntax-validation.js index 6be5484ac..d99093812 100644 --- a/scripts/i18next-syntax-validation.js +++ b/scripts/i18next-syntax-validation.js @@ -1,4 +1,4 @@ -const validate = (message = '') => { +function validate(message = '') { if (!(message || '').trim()) { throw new SyntaxError('Message is Empty.'); } @@ -6,18 +6,18 @@ const validate = (message = '') => { throw new TypeError('Message must be a String.'); } if ( - (message.includes('{') || message.includes('}')) && - !/{{ ?(?:- |\w+?)(, ?)?\w+? ?}}/g.test(message) + (message.includes('{') || message.includes('}')) + && !/\{\{ ?(?:- |\w+?)(, ?)?\w+ ?\}\}/.test(message) ) { throw new SyntaxError( - 'Interpolation error. See: https://www.i18next.com/misc/json-format' + 'Interpolation error. See: https://www.i18next.com/misc/json-format', ); } - if (message.includes('$t(') && !/\$t\([\w]+:\w+(?:\.\w+)*\)/g.test(message)) { + if (message.includes('$t(') && !/\$t\(\w+:\w+(?:\.\w+)*\)/.test(message)) { throw new SyntaxError( - 'Nesting error. See: https://www.i18next.com/misc/json-format' + 'Nesting error. See: https://www.i18next.com/misc/json-format', ); } -}; +} module.exports = validate; diff --git a/src/api/common/client.tsx b/src/api/common/client.tsx index 85ee32577..6e305770f 100644 --- a/src/api/common/client.tsx +++ b/src/api/common/client.tsx @@ -1,5 +1,6 @@ import { Env } from '@env'; import axios from 'axios'; + export const client = axios.create({ baseURL: Env.API_URL, }); diff --git a/src/api/common/utils.tsx b/src/api/common/utils.tsx index 34b2bdfd6..ba3cdb851 100644 --- a/src/api/common/utils.tsx +++ b/src/api/common/utils.tsx @@ -23,17 +23,17 @@ export function normalizePages(pages?: PaginateQuery[]): T[] { // a function that accept a url and return params as an object export function getUrlParameters( - url: string | null + url: string | null, ): { [k: string]: string } | null { if (url === null) { return null; } - let regex = /[?&]([^=#]+)=([^&#]*)/g, - params = {}, - match; + const regex = /[?&]([^=#]+)=([^&#]*)/g; + const params = {}; + let match; while ((match = regex.exec(url))) { if (match[1] !== null) { - //@ts-ignore + // @ts-expect-error - Dynamic key assignment params[match[1]] = match[2]; } } @@ -43,9 +43,9 @@ export function getUrlParameters( export const getPreviousPageParam: GetNextPageParamFunction< unknown, PaginateQuery -> = (page) => getUrlParameters(page.previous)?.offset ?? null; +> = page => getUrlParameters(page.previous)?.offset ?? null; export const getNextPageParam: GetPreviousPageParamFunction< unknown, PaginateQuery -> = (page) => getUrlParameters(page.next)?.offset ?? null; +> = page => getUrlParameters(page.next)?.offset ?? null; diff --git a/src/api/posts/use-add-post.ts b/src/api/posts/use-add-post.ts index cb4c3bd9c..6f750c860 100644 --- a/src/api/posts/use-add-post.ts +++ b/src/api/posts/use-add-post.ts @@ -1,17 +1,17 @@ import type { AxiosError } from 'axios'; -import { createMutation } from 'react-query-kit'; +import type { Post } from './types'; +import { createMutation } from 'react-query-kit'; import { client } from '../common'; -import type { Post } from './types'; type Variables = { title: string; body: string; userId: number }; type Response = Post; export const useAddPost = createMutation({ - mutationFn: async (variables) => + mutationFn: async variables => client({ url: 'posts/add', method: 'POST', data: variables, - }).then((response) => response.data), + }).then(response => response.data), }); diff --git a/src/api/posts/use-post.ts b/src/api/posts/use-post.ts index 4a0015883..429800be7 100644 --- a/src/api/posts/use-post.ts +++ b/src/api/posts/use-post.ts @@ -1,8 +1,8 @@ import type { AxiosError } from 'axios'; -import { createQuery } from 'react-query-kit'; +import type { Post } from './types'; +import { createQuery } from 'react-query-kit'; import { client } from '../common'; -import type { Post } from './types'; type Variables = { id: string }; type Response = Post; @@ -12,6 +12,6 @@ export const usePost = createQuery({ fetcher: (variables) => { return client .get(`posts/${variables.id}`) - .then((response) => response.data); + .then(response => response.data); }, }); diff --git a/src/api/posts/use-posts.ts b/src/api/posts/use-posts.ts index d1386b5b2..434dba8b7 100644 --- a/src/api/posts/use-posts.ts +++ b/src/api/posts/use-posts.ts @@ -1,8 +1,8 @@ import type { AxiosError } from 'axios'; -import { createQuery } from 'react-query-kit'; +import type { Post } from './types'; +import { createQuery } from 'react-query-kit'; import { client } from '../common'; -import type { Post } from './types'; type Response = Post[]; type Variables = void; // as react-query-kit is strongly typed, we need to specify the type of the variables as void in case we don't need them @@ -10,6 +10,6 @@ type Variables = void; // as react-query-kit is strongly typed, we need to speci export const usePosts = createQuery({ queryKey: ['posts'], fetcher: () => { - return client.get(`posts`).then((response) => response.data.posts); + return client.get(`posts`).then(response => response.data.posts); }, }); diff --git a/src/app/(app)/_layout.tsx b/src/app/(app)/_layout.tsx index fbfce6161..b646a7dbb 100644 --- a/src/app/(app)/_layout.tsx +++ b/src/app/(app)/_layout.tsx @@ -1,6 +1,6 @@ -/* eslint-disable react/no-unstable-nested-components */ import { Link, Redirect, SplashScreen, Tabs } from 'expo-router'; -import React, { useCallback, useEffect } from 'react'; +import * as React from 'react'; +import { useCallback, useEffect } from 'react'; import { Pressable, Text } from '@/components/ui'; import { @@ -64,7 +64,7 @@ export default function TabLayout() { ); } -const CreateNewPostLink = () => { +function CreateNewPostLink() { return ( @@ -72,4 +72,4 @@ const CreateNewPostLink = () => { ); -}; +} diff --git a/src/app/(app)/index.tsx b/src/app/(app)/index.tsx index 9e69163e7..117389853 100644 --- a/src/app/(app)/index.tsx +++ b/src/app/(app)/index.tsx @@ -1,7 +1,7 @@ +import type { Post } from '@/api'; import { FlashList } from '@shopify/flash-list'; -import React from 'react'; -import type { Post } from '@/api'; +import * as React from 'react'; import { usePosts } from '@/api'; import { Card } from '@/components/card'; import { EmptyList, FocusAwareStatusBar, Text, View } from '@/components/ui'; @@ -10,7 +10,7 @@ export default function Feed() { const { data, isPending, isError } = usePosts(); const renderItem = React.useCallback( ({ item }: { item: Post }) => , - [] + [], ); if (isError) { diff --git a/src/app/(app)/settings.tsx b/src/app/(app)/settings.tsx index 8428f03a9..0fdb69b7c 100644 --- a/src/app/(app)/settings.tsx +++ b/src/app/(app)/settings.tsx @@ -1,4 +1,3 @@ -/* eslint-disable react/react-in-jsx-scope */ import { Env } from '@env'; import { useColorScheme } from 'nativewind'; @@ -19,8 +18,8 @@ import { translate, useAuth } from '@/lib'; export default function Settings() { const signOut = useAuth.use.signOut(); const { colorScheme } = useColorScheme(); - const iconColor = - colorScheme === 'dark' ? colors.neutral[400] : colors.neutral[500]; + const iconColor + = colorScheme === 'dark' ? colors.neutral[400] : colors.neutral[500]; return ( <> diff --git a/src/app/_layout.tsx b/src/app/_layout.tsx index 62913be49..c06f10e12 100644 --- a/src/app/_layout.tsx +++ b/src/app/_layout.tsx @@ -1,19 +1,19 @@ -// Import global CSS file -import '../../global.css'; - import { BottomSheetModalProvider } from '@gorhom/bottom-sheet'; + import { ThemeProvider } from '@react-navigation/native'; import { Stack } from 'expo-router'; import * as SplashScreen from 'expo-splash-screen'; -import React from 'react'; +import * as React from 'react'; import { StyleSheet } from 'react-native'; import FlashMessage from 'react-native-flash-message'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { KeyboardProvider } from 'react-native-keyboard-controller'; - import { APIProvider } from '@/api'; + import { hydrateAuth, loadSelectedTheme } from '@/lib'; import { useThemeConfig } from '@/lib/use-theme-config'; +// Import global CSS file +import '../../global.css'; export { ErrorBoundary } from 'expo-router'; diff --git a/src/app/feed/[id].tsx b/src/app/feed/[id].tsx index 2e7c086e1..adf4731b3 100644 --- a/src/app/feed/[id].tsx +++ b/src/app/feed/[id].tsx @@ -13,7 +13,6 @@ export default function Post() { const local = useLocalSearchParams<{ id: string }>(); const { data, isPending, isError } = usePost({ - //@ts-ignore variables: { id: local.id }, }); @@ -41,7 +40,10 @@ export default function Post() { {data.title} - {data.body} + + {data.body} + {' '} + ); } diff --git a/src/app/feed/add-post.tsx b/src/app/feed/add-post.tsx index fdcb692a9..ba12277ca 100644 --- a/src/app/feed/add-post.tsx +++ b/src/app/feed/add-post.tsx @@ -37,12 +37,12 @@ export default function AddPost() { type: 'success', }); // here you can navigate to the post list and refresh the list data - //queryClient.invalidateQueries(usePosts.getKey()); + // queryClient.invalidateQueries(usePosts.getKey()); }, onError: () => { showErrorMessage('Error adding post'); }, - } + }, ); }; return ( diff --git a/src/app/login.tsx b/src/app/login.tsx index 1825f8241..7d0feab33 100644 --- a/src/app/login.tsx +++ b/src/app/login.tsx @@ -1,7 +1,7 @@ +import type { LoginFormProps } from '@/components/login-form'; import { useRouter } from 'expo-router'; -import React from 'react'; -import type { LoginFormProps } from '@/components/login-form'; +import * as React from 'react'; import { LoginForm } from '@/components/login-form'; import { FocusAwareStatusBar } from '@/components/ui'; import { useAuth } from '@/lib'; diff --git a/src/app/onboarding.tsx b/src/app/onboarding.tsx index 4a0011804..b78c2188d 100644 --- a/src/app/onboarding.tsx +++ b/src/app/onboarding.tsx @@ -1,5 +1,5 @@ import { useRouter } from 'expo-router'; -import React from 'react'; +import * as React from 'react'; import { Cover } from '@/components/cover'; import { @@ -10,6 +10,7 @@ import { View, } from '@/components/ui'; import { useIsFirstTime } from '@/lib/hooks'; + export default function Onboarding() { const [_, setIsFirstTime] = useIsFirstTime(); const router = useRouter(); @@ -28,7 +29,8 @@ export default function Onboarding() { - šŸš€ Production-ready{' '} + šŸš€ Production-ready + {' '} 🄷 Developer experience + Productivity diff --git a/src/components/buttons.tsx b/src/components/buttons.tsx index 762e5911a..92dc0d191 100644 --- a/src/components/buttons.tsx +++ b/src/components/buttons.tsx @@ -1,10 +1,10 @@ -import React from 'react'; +import * as React from 'react'; import { Button, View } from '@/components/ui'; import { Title } from './title'; -export const Buttons = () => { +export function Buttons() { return ( <> @@ -49,4 +49,4 @@ export const Buttons = () => { </View> </> ); -}; +} diff --git a/src/components/card.tsx b/src/components/card.tsx index 02f297e13..2f5990e16 100644 --- a/src/components/card.tsx +++ b/src/components/card.tsx @@ -1,7 +1,7 @@ +import type { Post } from '@/api'; import { Link } from 'expo-router'; -import React from 'react'; -import type { Post } from '@/api'; +import * as React from 'react'; import { Image, Pressable, Text, View } from '@/components/ui'; type Props = Post; @@ -14,7 +14,7 @@ const images = [ 'https://images.unsplash.com/photo-1587974928442-77dc3e0dba72?auto=format&fit=crop&w=800&q=80', ]; -export const Card = ({ title, body, id }: Props) => { +export function Card({ title, body, id }: Props) { return ( <Link href={`/feed/${id}`} asChild> <Pressable> @@ -37,4 +37,4 @@ export const Card = ({ title, body, id }: Props) => { </Pressable> </Link> ); -}; +} diff --git a/src/components/colors.tsx b/src/components/colors.tsx index 06df6b9b5..856645fb4 100644 --- a/src/components/colors.tsx +++ b/src/components/colors.tsx @@ -1,24 +1,26 @@ -import React from 'react'; +import * as React from 'react'; import { Text, View } from '@/components/ui'; import colors from '@/components/ui/colors'; import { Title } from './title'; + type ColorName = keyof typeof colors; -export const Colors = () => { +export function Colors() { return ( <> <Title text="Colors" /> - {(Object.keys(colors) as ColorName[]).map((name) => ( + {(Object.keys(colors) as ColorName[]).map(name => ( <Color name={name} key={name} /> ))} </> ); -}; +} -const Color = ({ name }: { name: ColorName }) => { - if (typeof colors[name] === 'string') return null; +function Color({ name }: { name: ColorName }) { + if (typeof colors[name] === 'string') + return null; return ( <View className="pt-2"> <Text className="font-medium">{name.toUpperCase()}</Text> @@ -35,9 +37,9 @@ const Color = ({ name }: { name: ColorName }) => { </View> </View> ); -}; +} -const ColorCard = ({ color, value }: { value: string; color: string }) => { +function ColorCard({ color, value }: { value: string; color: string }) { return ( <View className="flex-1"> <View @@ -47,4 +49,4 @@ const ColorCard = ({ color, value }: { value: string; color: string }) => { <Text className="text-sm">{value}</Text> </View> ); -}; +} diff --git a/src/components/cover.tsx b/src/components/cover.tsx index 6657da52f..90805ad83 100644 --- a/src/components/cover.tsx +++ b/src/components/cover.tsx @@ -1,217 +1,219 @@ /* eslint-disable max-lines-per-function */ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { Circle, Path, Polygon } from 'react-native-svg'; // TODO: should be updated to simple images -export const Cover = (props: SvgProps) => ( - <Svg data-name="Layer 1" viewBox="0 0 831 729.98934" {...props}> - <Path - d="M908.4762,788.57689v-72.34S936.66786,767.52287,908.4762,788.57689Z" - transform="translate(-184.5 -85.00533)" - fill="#f1f1f1" - /> - <Path - d="M910.21766,788.56417,856.928,739.64292S913.77324,753.55845,910.21766,788.56417Z" - transform="translate(-184.5 -85.00533)" - fill="#f1f1f1" - /> - <Path - d="M290.95913,788.57689v-72.34S262.76747,767.52287,290.95913,788.57689Z" - transform="translate(-184.5 -85.00533)" - fill="#f1f1f1" - /> - <Path - d="M289.21766,788.56417l53.28963-48.92125S285.66209,753.55845,289.21766,788.56417Z" - transform="translate(-184.5 -85.00533)" - fill="#f1f1f1" - /> - <Path - d="M775.25582,252.05354h-3.86238V146.24468a61.23928,61.23928,0,0,0-61.23923-61.23935H485.9837a61.23927,61.23927,0,0,0-61.2394,61.23916V726.72032a61.2393,61.2393,0,0,0,61.23922,61.23935H710.15391a61.2393,61.2393,0,0,0,61.23947-61.23911V327.3701h3.86244Z" - transform="translate(-184.5 -85.00533)" - fill="#3f3d56" - /> - <Path - d="M712.625,100.93768H683.36335a21.72758,21.72758,0,0,1-20.11676,29.93348H534.82222a21.72754,21.72754,0,0,1-20.11676-29.93351H487.375a45.73283,45.73283,0,0,0-45.73286,45.73276V726.2945a45.73282,45.73282,0,0,0,45.7328,45.73286H712.625a45.73283,45.73283,0,0,0,45.73286-45.7328h0V146.67045A45.73279,45.73279,0,0,0,712.625,100.93768Z" - transform="translate(-184.5 -85.00533)" - fill="#fff" - /> - <Path - d="M706.98254,762.07515H493.01746c-24.58521,0-44.58667-17.85253-44.58667-39.79589V693.46871c0-17.48975,15.92895-31.71875,35.50805-31.71875H716.06116c19.5791,0,35.50805,14.229,35.50805,31.71875v28.81055C751.56921,744.22262,731.56775,762.07515,706.98254,762.07515Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M515.50942,277.85025H467.78191a3.22863,3.22863,0,0,1-3.22483-3.22483V226.89791a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.72751A3.22863,3.22863,0,0,1,515.50942,277.85025Z" - transform="translate(-184.5 -85.00533)" - fill="#ff7b1a" - /> - <Path - d="M587.74564,277.85025h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22483V226.89791a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.72751A3.22863,3.22863,0,0,1,587.74564,277.85025Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M659.98186,277.85025h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22483V226.89791a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.72751A3.22863,3.22863,0,0,1,659.98186,277.85025Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M732.21809,277.85025H684.49058a3.22863,3.22863,0,0,1-3.22483-3.22483V226.89791a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.72751A3.22863,3.22863,0,0,1,732.21809,277.85025Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M515.33871,366.21063h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,515.33871,366.21063Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M587.57493,366.21063h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22863,3.22863,0,0,1,3.22484,3.22483v47.7275A3.22864,3.22864,0,0,1,587.57493,366.21063Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M659.81116,366.21063H612.08365a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,659.81116,366.21063Z" - transform="translate(-184.5 -85.00533)" - fill="#ff7b1a" - /> - <Path - d="M732.04738,366.21063h-47.7275a3.22864,3.22864,0,0,1-3.22484-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22484-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,732.04738,366.21063Z" - transform="translate(-184.5 -85.00533)" - fill="#ff7b1a" - /> - <Path - d="M515.168,454.571H467.4405a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483H515.168a3.22863,3.22863,0,0,1,3.22484,3.22483v47.7275A3.22864,3.22864,0,0,1,515.168,454.571Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M587.40423,454.571H539.67672a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,587.40423,454.571Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M659.64045,454.571H611.913a3.22864,3.22864,0,0,1-3.22484-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22484-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,659.64045,454.571Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M731.87667,454.571h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,731.87667,454.571Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M514.9973,542.93139H467.26979a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483H514.9973a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,514.9973,542.93139Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M587.23352,542.93139H539.506a3.22864,3.22864,0,0,1-3.22484-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22484-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,587.23352,542.93139Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M659.46974,542.93139h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,659.46974,542.93139Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M731.706,542.93139H683.97846a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483H731.706a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,731.706,542.93139Z" - transform="translate(-184.5 -85.00533)" - fill="#e5e5e5" - /> - <Path - d="M515.50942,740.29107H467.78191a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,515.50942,740.29107Z" - transform="translate(-184.5 -85.00533)" - fill="#fff" - /> - <Path - d="M587.74564,740.29107h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,587.74564,740.29107Z" - transform="translate(-184.5 -85.00533)" - fill="#fff" - /> - <Path - d="M659.98186,740.29107h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,659.98186,740.29107Z" - transform="translate(-184.5 -85.00533)" - fill="#fff" - /> - <Path - d="M732.21809,740.29107H684.49058a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,732.21809,740.29107Z" - transform="translate(-184.5 -85.00533)" - fill="#fff" - /> - <Circle cx={392.11051} cy={548.22133} r={6.44966} fill="#e5e5e5" /> - <Circle cx={415.32929} cy={548.22133} r={6.44966} fill="#e5e5e5" /> - <Circle cx={438.54808} cy={548.22133} r={6.44966} fill="#e5e5e5" /> - <Path - d="M1014.5,789.00533h-829a1,1,0,0,1,0-2h829a1,1,0,0,1,0,2Z" - transform="translate(-184.5 -85.00533)" - fill="#cbcbcb" - /> - <Path - d="M510.864,592.10718a13.04925,13.04925,0,0,0-1.75972-19.93187l12.59561-44.62912-22.9642,7.30333-8.44035,41.26089A13.11993,13.11993,0,0,0,510.864,592.10718Z" - transform="translate(-184.5 -85.00533)" - fill="#ffb7b7" - /> - <Path - d="M517.39368,564.75191a5.96933,5.96933,0,0,1-1.24508.10531l-22.02964-.44139a5.83948,5.83948,0,0,1-5.65948-6.693L510.80711,406.732a18.51184,18.51184,0,0,1,18.25725-15.71657h0a18.41265,18.41265,0,0,1,17.83,22.82525l-15.84048,64.15663L522.07066,559.658A5.80616,5.80616,0,0,1,517.39368,564.75191Z" - transform="translate(-184.5 -85.00533)" - fill="#3f3d56" - /> - <Polygon - points="342.105 718.105 354.365 718.105 360.198 670.817 342.103 670.818 342.105 718.105" - fill="#ffb7b7" - /> - <Path - d="M523.47815,799.108l24.144-.001h.001a15.3873,15.3873,0,0,1,15.38647,15.38623v.5l-39.53076.00147Z" - transform="translate(-184.5 -85.00533)" - fill="#2f2e41" - /> - <Polygon - points="394.382 714.123 406.565 715.489 417.632 669.146 399.65 667.13 394.382 714.123" - fill="#ffb7b7" - /> - <Path - d="M576.22006,794.80228l23.99372,2.69008.001.00011a15.38731,15.38731,0,0,1,13.57568,17.00532l-.05573.49688-39.28462-4.40458Z" - transform="translate(-184.5 -85.00533)" - fill="#2f2e41" - /> - <Path - d="M515.09858,539.9603s-16.808,37.20886-1.96521,61.37694l8.84283,188.16809h20.30315l19.69685-152,35,45L575.65255,787.53294l24.83152,1.394L634.9762,682.50533S608.47831,565.15663,599.72725,562.331l-5.75105-26.82565Z" - transform="translate(-184.5 -85.00533)" - fill="#2f2e41" - /> - <Path - d="M507.61793,572.62738s-15.14173,17.37795,24.85827,23.37795,82-3,83-15S507.61793,572.62738,507.61793,572.62738Z" - transform="translate(-184.5 -85.00533)" - fill="#cbcbcb" - /> - <Path - d="M708.1348,357.05837a11.61132,11.61132,0,0,1-14.05875,10.92486l-15.11989,21.80439-15.49148-5.95655,21.78468-30.49213a11.67422,11.67422,0,0,1,22.88544,3.71943Z" - transform="translate(-184.5 -85.00533)" - fill="#ffb7b7" - /> - <Path - d="M580.2636,385.112l-21.37737-9.671L531.49666,377.399s-33.02046,38.6063-20.02046,75.6063l-8,129c51,14,74.1831-12.25781,111-1L603.10422,437.636Z" - transform="translate(-184.5 -85.00533)" - fill="#3f3d56" - /> - <Path - d="M565.9762,394.50533l14.2874-9.39337s19.84646-3,27.77953,4.69668c0,0,26.92659,2.25376,33.42983,8.97523l7.16026,1.6141,23.7869-30.80184,14.55608,7.9092-21,57-62.872,3.13064Z" - transform="translate(-184.5 -85.00533)" - fill="#3f3d56" - /> - <Circle - cx={554.72002} - cy={334.98279} - r={33.74484} - transform="translate(-277.19936 222.12213) rotate(-28.66318)" - fill="#ffb7b7" - /> - <Path - d="M525.53291,308.60053c6.02337-10.83362,13.55038-17.84837,25.94329-17.5952s23.11287-.23674,28.68877,10.83384a18.20735,18.20735,0,0,0,2.14293-8.97911,10.2833,10.2833,0,0,1,4.53932,10.34472,7.50982,7.50982,0,0,0,3.70778-6.16528c4.136,1.37646,5.2115,7.20519,3.11866,11.02892s-6.19726,6.03481-10.13517,7.904-2.1199,11.75518-4.69141,15.27487c-1.79468,2.45641-2.61549,5.4668-3.82479,8.25829a.54091.54091,0,0,1-.2448.25565c-2.77277,1.54608-4.5229,4.30857-4.03339,7.44529a1.21274,1.21274,0,0,1-.03945.70958c-3.51018,6.613-7.29926,13.53194-13.66181,17.478a22.65364,22.65364,0,0,1-17.01862,2.63072c-6.50353-1.55494-12.1259-5.86678-16.18006-11.18444s-6.662-11.60249-8.62153-17.99576c-1.73827-5.6714-3.00232-11.73529-1.62409-17.50476s6.04709-11.112,11.96211-11.55783" - transform="translate(-184.5 -85.00533)" - fill="#2f2e41" - /> - </Svg> -); +export function Cover(props: SvgProps) { + return ( + <Svg data-name="Layer 1" viewBox="0 0 831 729.98934" {...props}> + <Path + d="M908.4762,788.57689v-72.34S936.66786,767.52287,908.4762,788.57689Z" + transform="translate(-184.5 -85.00533)" + fill="#f1f1f1" + /> + <Path + d="M910.21766,788.56417,856.928,739.64292S913.77324,753.55845,910.21766,788.56417Z" + transform="translate(-184.5 -85.00533)" + fill="#f1f1f1" + /> + <Path + d="M290.95913,788.57689v-72.34S262.76747,767.52287,290.95913,788.57689Z" + transform="translate(-184.5 -85.00533)" + fill="#f1f1f1" + /> + <Path + d="M289.21766,788.56417l53.28963-48.92125S285.66209,753.55845,289.21766,788.56417Z" + transform="translate(-184.5 -85.00533)" + fill="#f1f1f1" + /> + <Path + d="M775.25582,252.05354h-3.86238V146.24468a61.23928,61.23928,0,0,0-61.23923-61.23935H485.9837a61.23927,61.23927,0,0,0-61.2394,61.23916V726.72032a61.2393,61.2393,0,0,0,61.23922,61.23935H710.15391a61.2393,61.2393,0,0,0,61.23947-61.23911V327.3701h3.86244Z" + transform="translate(-184.5 -85.00533)" + fill="#3f3d56" + /> + <Path + d="M712.625,100.93768H683.36335a21.72758,21.72758,0,0,1-20.11676,29.93348H534.82222a21.72754,21.72754,0,0,1-20.11676-29.93351H487.375a45.73283,45.73283,0,0,0-45.73286,45.73276V726.2945a45.73282,45.73282,0,0,0,45.7328,45.73286H712.625a45.73283,45.73283,0,0,0,45.73286-45.7328h0V146.67045A45.73279,45.73279,0,0,0,712.625,100.93768Z" + transform="translate(-184.5 -85.00533)" + fill="#fff" + /> + <Path + d="M706.98254,762.07515H493.01746c-24.58521,0-44.58667-17.85253-44.58667-39.79589V693.46871c0-17.48975,15.92895-31.71875,35.50805-31.71875H716.06116c19.5791,0,35.50805,14.229,35.50805,31.71875v28.81055C751.56921,744.22262,731.56775,762.07515,706.98254,762.07515Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M515.50942,277.85025H467.78191a3.22863,3.22863,0,0,1-3.22483-3.22483V226.89791a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.72751A3.22863,3.22863,0,0,1,515.50942,277.85025Z" + transform="translate(-184.5 -85.00533)" + fill="#ff7b1a" + /> + <Path + d="M587.74564,277.85025h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22483V226.89791a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.72751A3.22863,3.22863,0,0,1,587.74564,277.85025Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M659.98186,277.85025h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22483V226.89791a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.72751A3.22863,3.22863,0,0,1,659.98186,277.85025Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M732.21809,277.85025H684.49058a3.22863,3.22863,0,0,1-3.22483-3.22483V226.89791a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.72751A3.22863,3.22863,0,0,1,732.21809,277.85025Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M515.33871,366.21063h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,515.33871,366.21063Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M587.57493,366.21063h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22863,3.22863,0,0,1,3.22484,3.22483v47.7275A3.22864,3.22864,0,0,1,587.57493,366.21063Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M659.81116,366.21063H612.08365a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,659.81116,366.21063Z" + transform="translate(-184.5 -85.00533)" + fill="#ff7b1a" + /> + <Path + d="M732.04738,366.21063h-47.7275a3.22864,3.22864,0,0,1-3.22484-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22484-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,732.04738,366.21063Z" + transform="translate(-184.5 -85.00533)" + fill="#ff7b1a" + /> + <Path + d="M515.168,454.571H467.4405a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483H515.168a3.22863,3.22863,0,0,1,3.22484,3.22483v47.7275A3.22864,3.22864,0,0,1,515.168,454.571Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M587.40423,454.571H539.67672a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,587.40423,454.571Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M659.64045,454.571H611.913a3.22864,3.22864,0,0,1-3.22484-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22484-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,659.64045,454.571Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M731.87667,454.571h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,731.87667,454.571Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M514.9973,542.93139H467.26979a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483H514.9973a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,514.9973,542.93139Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M587.23352,542.93139H539.506a3.22864,3.22864,0,0,1-3.22484-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22484-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,587.23352,542.93139Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M659.46974,542.93139h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,659.46974,542.93139Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M731.706,542.93139H683.97846a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483H731.706a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,731.706,542.93139Z" + transform="translate(-184.5 -85.00533)" + fill="#e5e5e5" + /> + <Path + d="M515.50942,740.29107H467.78191a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,515.50942,740.29107Z" + transform="translate(-184.5 -85.00533)" + fill="#fff" + /> + <Path + d="M587.74564,740.29107h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,587.74564,740.29107Z" + transform="translate(-184.5 -85.00533)" + fill="#fff" + /> + <Path + d="M659.98186,740.29107h-47.7275a3.22863,3.22863,0,0,1-3.22483-3.22484v-47.7275a3.22862,3.22862,0,0,1,3.22483-3.22483h47.7275a3.22862,3.22862,0,0,1,3.22483,3.22483v47.7275A3.22863,3.22863,0,0,1,659.98186,740.29107Z" + transform="translate(-184.5 -85.00533)" + fill="#fff" + /> + <Path + d="M732.21809,740.29107H684.49058a3.22864,3.22864,0,0,1-3.22483-3.22484v-47.7275a3.22863,3.22863,0,0,1,3.22483-3.22483h47.72751a3.22863,3.22863,0,0,1,3.22483,3.22483v47.7275A3.22864,3.22864,0,0,1,732.21809,740.29107Z" + transform="translate(-184.5 -85.00533)" + fill="#fff" + /> + <Circle cx={392.11051} cy={548.22133} r={6.44966} fill="#e5e5e5" /> + <Circle cx={415.32929} cy={548.22133} r={6.44966} fill="#e5e5e5" /> + <Circle cx={438.54808} cy={548.22133} r={6.44966} fill="#e5e5e5" /> + <Path + d="M1014.5,789.00533h-829a1,1,0,0,1,0-2h829a1,1,0,0,1,0,2Z" + transform="translate(-184.5 -85.00533)" + fill="#cbcbcb" + /> + <Path + d="M510.864,592.10718a13.04925,13.04925,0,0,0-1.75972-19.93187l12.59561-44.62912-22.9642,7.30333-8.44035,41.26089A13.11993,13.11993,0,0,0,510.864,592.10718Z" + transform="translate(-184.5 -85.00533)" + fill="#ffb7b7" + /> + <Path + d="M517.39368,564.75191a5.96933,5.96933,0,0,1-1.24508.10531l-22.02964-.44139a5.83948,5.83948,0,0,1-5.65948-6.693L510.80711,406.732a18.51184,18.51184,0,0,1,18.25725-15.71657h0a18.41265,18.41265,0,0,1,17.83,22.82525l-15.84048,64.15663L522.07066,559.658A5.80616,5.80616,0,0,1,517.39368,564.75191Z" + transform="translate(-184.5 -85.00533)" + fill="#3f3d56" + /> + <Polygon + points="342.105 718.105 354.365 718.105 360.198 670.817 342.103 670.818 342.105 718.105" + fill="#ffb7b7" + /> + <Path + d="M523.47815,799.108l24.144-.001h.001a15.3873,15.3873,0,0,1,15.38647,15.38623v.5l-39.53076.00147Z" + transform="translate(-184.5 -85.00533)" + fill="#2f2e41" + /> + <Polygon + points="394.382 714.123 406.565 715.489 417.632 669.146 399.65 667.13 394.382 714.123" + fill="#ffb7b7" + /> + <Path + d="M576.22006,794.80228l23.99372,2.69008.001.00011a15.38731,15.38731,0,0,1,13.57568,17.00532l-.05573.49688-39.28462-4.40458Z" + transform="translate(-184.5 -85.00533)" + fill="#2f2e41" + /> + <Path + d="M515.09858,539.9603s-16.808,37.20886-1.96521,61.37694l8.84283,188.16809h20.30315l19.69685-152,35,45L575.65255,787.53294l24.83152,1.394L634.9762,682.50533S608.47831,565.15663,599.72725,562.331l-5.75105-26.82565Z" + transform="translate(-184.5 -85.00533)" + fill="#2f2e41" + /> + <Path + d="M507.61793,572.62738s-15.14173,17.37795,24.85827,23.37795,82-3,83-15S507.61793,572.62738,507.61793,572.62738Z" + transform="translate(-184.5 -85.00533)" + fill="#cbcbcb" + /> + <Path + d="M708.1348,357.05837a11.61132,11.61132,0,0,1-14.05875,10.92486l-15.11989,21.80439-15.49148-5.95655,21.78468-30.49213a11.67422,11.67422,0,0,1,22.88544,3.71943Z" + transform="translate(-184.5 -85.00533)" + fill="#ffb7b7" + /> + <Path + d="M580.2636,385.112l-21.37737-9.671L531.49666,377.399s-33.02046,38.6063-20.02046,75.6063l-8,129c51,14,74.1831-12.25781,111-1L603.10422,437.636Z" + transform="translate(-184.5 -85.00533)" + fill="#3f3d56" + /> + <Path + d="M565.9762,394.50533l14.2874-9.39337s19.84646-3,27.77953,4.69668c0,0,26.92659,2.25376,33.42983,8.97523l7.16026,1.6141,23.7869-30.80184,14.55608,7.9092-21,57-62.872,3.13064Z" + transform="translate(-184.5 -85.00533)" + fill="#3f3d56" + /> + <Circle + cx={554.72002} + cy={334.98279} + r={33.74484} + transform="translate(-277.19936 222.12213) rotate(-28.66318)" + fill="#ffb7b7" + /> + <Path + d="M525.53291,308.60053c6.02337-10.83362,13.55038-17.84837,25.94329-17.5952s23.11287-.23674,28.68877,10.83384a18.20735,18.20735,0,0,0,2.14293-8.97911,10.2833,10.2833,0,0,1,4.53932,10.34472,7.50982,7.50982,0,0,0,3.70778-6.16528c4.136,1.37646,5.2115,7.20519,3.11866,11.02892s-6.19726,6.03481-10.13517,7.904-2.1199,11.75518-4.69141,15.27487c-1.79468,2.45641-2.61549,5.4668-3.82479,8.25829a.54091.54091,0,0,1-.2448.25565c-2.77277,1.54608-4.5229,4.30857-4.03339,7.44529a1.21274,1.21274,0,0,1-.03945.70958c-3.51018,6.613-7.29926,13.53194-13.66181,17.478a22.65364,22.65364,0,0,1-17.01862,2.63072c-6.50353-1.55494-12.1259-5.86678-16.18006-11.18444s-6.662-11.60249-8.62153-17.99576c-1.73827-5.6714-3.00232-11.73529-1.62409-17.50476s6.04709-11.112,11.96211-11.55783" + transform="translate(-184.5 -85.00533)" + fill="#2f2e41" + /> + </Svg> + ); +} diff --git a/src/components/inputs.tsx b/src/components/inputs.tsx index 22e18e84e..8c2dfa8ef 100644 --- a/src/components/inputs.tsx +++ b/src/components/inputs.tsx @@ -1,8 +1,7 @@ -import React from 'react'; - import type { OptionType } from '@/components/ui'; -import { Input, Select, View } from '@/components/ui'; -import { Checkbox, Radio, Switch } from '@/components/ui'; + +import * as React from 'react'; +import { Checkbox, Input, Radio, Select, Switch, View } from '@/components/ui'; import { Title } from './title'; @@ -12,7 +11,7 @@ const options: OptionType[] = [ { value: 'vanilla', label: 'Vanilla' }, ]; -export const Inputs = () => { +export function Inputs() { const [value, setValue] = React.useState<string | number | undefined>(); return ( <> @@ -25,7 +24,7 @@ export const Inputs = () => { label="Select" options={options} value={value} - onSelect={(option) => setValue(option)} + onSelect={option => setValue(option)} /> <CheckboxExample /> <RadioExample /> @@ -33,9 +32,9 @@ export const Inputs = () => { </View> </> ); -}; +} -const CheckboxExample = () => { +function CheckboxExample() { const [checked, setChecked] = React.useState(false); return ( <Checkbox.Root @@ -48,9 +47,9 @@ const CheckboxExample = () => { <Checkbox.Label text="checkbox" /> </Checkbox.Root> ); -}; +} -const RadioExample = () => { +function RadioExample() { const [selected, setSelected] = React.useState(false); return ( <Radio.Root @@ -63,9 +62,9 @@ const RadioExample = () => { <Radio.Label text="radio button" /> </Radio.Root> ); -}; +} -const SwitchExample = () => { +function SwitchExample() { const [active, setActive] = React.useState(false); return ( <Switch.Root @@ -78,4 +77,4 @@ const SwitchExample = () => { <Switch.Label text="switch" /> </Switch.Root> ); -}; +} diff --git a/src/components/login-form.test.tsx b/src/components/login-form.test.tsx index f48a9e55b..2e5eb4c33 100644 --- a/src/components/login-form.test.tsx +++ b/src/components/login-form.test.tsx @@ -1,15 +1,15 @@ -import React from 'react'; +import type { LoginFormProps } from './login-form'; -import { cleanup, screen, setup, waitFor } from '@/lib/test-utils'; +import * as React from 'react'; -import type { LoginFormProps } from './login-form'; +import { cleanup, screen, setup, waitFor } from '@/lib/test-utils'; import { LoginForm } from './login-form'; afterEach(cleanup); const onSubmitMock: jest.Mock<LoginFormProps['onSubmit']> = jest.fn(); -describe('LoginForm Form ', () => { +describe('loginForm Form ', () => { it('renders correctly', async () => { setup(<LoginForm />); expect(await screen.findByTestId('form-title')).toBeOnTheScreen(); @@ -40,7 +40,7 @@ describe('LoginForm Form ', () => { expect(screen.queryByText(/Email is required/i)).not.toBeOnTheScreen(); }); - it('Should call LoginForm with correct values when values are valid', async () => { + it('should call LoginForm with correct values when values are valid', async () => { const { user } = setup(<LoginForm onSubmit={onSubmitMock} />); const button = screen.getByTestId('login-button'); @@ -59,7 +59,7 @@ describe('LoginForm Form ', () => { email: 'youssef@gmail.com', password: 'password', }, - expect.objectContaining({}) + expect.objectContaining({}), ); }); }); diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx index 495e3a2c1..42ee212c9 100644 --- a/src/components/login-form.tsx +++ b/src/components/login-form.tsx @@ -1,6 +1,6 @@ -import { zodResolver } from '@hookform/resolvers/zod'; -import React from 'react'; import type { SubmitHandler } from 'react-hook-form'; +import { zodResolver } from '@hookform/resolvers/zod'; +import * as React from 'react'; import { useForm } from 'react-hook-form'; import { KeyboardAvoidingView } from 'react-native-keyboard-controller'; import * as z from 'zod'; @@ -27,7 +27,7 @@ export type LoginFormProps = { onSubmit?: SubmitHandler<FormType>; }; -export const LoginForm = ({ onSubmit = () => {} }: LoginFormProps) => { +export function LoginForm({ onSubmit = () => {} }: LoginFormProps) { const { handleSubmit, control } = useForm<FormType>({ resolver: zodResolver(schema), }); @@ -81,4 +81,4 @@ export const LoginForm = ({ onSubmit = () => {} }: LoginFormProps) => { </View> </KeyboardAvoidingView> ); -}; +} diff --git a/src/components/settings/item.tsx b/src/components/settings/item.tsx index 270fd2b47..9b0a9c973 100644 --- a/src/components/settings/item.tsx +++ b/src/components/settings/item.tsx @@ -1,8 +1,8 @@ -import * as React from 'react'; +import type { TxKeyPath } from '@/lib'; +import * as React from 'react'; import { Pressable, Text, View } from '@/components/ui'; import { ArrowRight } from '@/components/ui/icons'; -import type { TxKeyPath } from '@/lib'; type ItemProps = { text: TxKeyPath; @@ -11,7 +11,7 @@ type ItemProps = { icon?: React.ReactNode; }; -export const Item = ({ text, value, icon, onPress }: ItemProps) => { +export function Item({ text, value, icon, onPress }: ItemProps) { const isPressable = onPress !== undefined; return ( <Pressable @@ -33,4 +33,4 @@ export const Item = ({ text, value, icon, onPress }: ItemProps) => { </View> </Pressable> ); -}; +} diff --git a/src/components/settings/items-container.tsx b/src/components/settings/items-container.tsx index 3193bcc9f..d7e5fcccd 100644 --- a/src/components/settings/items-container.tsx +++ b/src/components/settings/items-container.tsx @@ -1,22 +1,20 @@ -import React from 'react'; +import type { TxKeyPath } from '@/lib'; +import * as React from 'react'; import { Text, View } from '@/components/ui'; -import type { TxKeyPath } from '@/lib'; type Props = { children: React.ReactNode; title?: TxKeyPath; }; -export const ItemsContainer = ({ children, title }: Props) => { +export function ItemsContainer({ children, title }: Props) { return ( <> {title && <Text className="pb-2 pt-4 text-lg" tx={title} />} - { - <View className=" rounded-md border border-neutral-200 dark:border-neutral-700 dark:bg-neutral-800"> - {children} - </View> - } + <View className=" rounded-md border border-neutral-200 dark:border-neutral-700 dark:bg-neutral-800"> + {children} + </View> </> ); -}; +} diff --git a/src/components/settings/language-item.tsx b/src/components/settings/language-item.tsx index 63ac12f66..d878b5ff3 100644 --- a/src/components/settings/language-item.tsx +++ b/src/components/settings/language-item.tsx @@ -1,14 +1,13 @@ -import * as React from 'react'; - import type { OptionType } from '@/components/ui'; -import { Options, useModal } from '@/components/ui'; -import { useSelectedLanguage } from '@/lib'; -import { translate } from '@/lib'; + import type { Language } from '@/lib/i18n/resources'; +import * as React from 'react'; +import { Options, useModal } from '@/components/ui'; +import { translate, useSelectedLanguage } from '@/lib'; import { Item } from './item'; -export const LanguageItem = () => { +export function LanguageItem() { const { language, setLanguage } = useSelectedLanguage(); const modal = useModal(); const onSelect = React.useCallback( @@ -16,7 +15,7 @@ export const LanguageItem = () => { setLanguage(option.value as Language); modal.dismiss(); }, - [setLanguage, modal] + [setLanguage, modal], ); const langs = React.useMemo( @@ -24,12 +23,12 @@ export const LanguageItem = () => { { label: translate('settings.english'), value: 'en' }, { label: translate('settings.arabic'), value: 'ar' }, ], - [] + [], ); const selectedLanguage = React.useMemo( - () => langs.find((lang) => lang.value === language), - [language, langs] + () => langs.find(lang => lang.value === language), + [language, langs], ); return ( @@ -47,4 +46,4 @@ export const LanguageItem = () => { /> </> ); -}; +} diff --git a/src/components/settings/theme-item.tsx b/src/components/settings/theme-item.tsx index a2c3ec437..fc8d17965 100644 --- a/src/components/settings/theme-item.tsx +++ b/src/components/settings/theme-item.tsx @@ -1,13 +1,13 @@ -import React from 'react'; - import type { OptionType } from '@/components/ui'; -import { Options, useModal } from '@/components/ui'; + import type { ColorSchemeType } from '@/lib'; +import * as React from 'react'; +import { Options, useModal } from '@/components/ui'; import { translate, useSelectedTheme } from '@/lib'; import { Item } from './item'; -export const ThemeItem = () => { +export function ThemeItem() { const { selectedTheme, setSelectedTheme } = useSelectedTheme(); const modal = useModal(); @@ -16,7 +16,7 @@ export const ThemeItem = () => { setSelectedTheme(option.value as ColorSchemeType); modal.dismiss(); }, - [setSelectedTheme, modal] + [setSelectedTheme, modal], ); const themes = React.useMemo( @@ -25,12 +25,12 @@ export const ThemeItem = () => { { label: `${translate('settings.theme.light')} šŸŒž`, value: 'light' }, { label: `${translate('settings.theme.system')} āš™ļø`, value: 'system' }, ], - [] + [], ); const theme = React.useMemo( - () => themes.find((t) => t.value === selectedTheme), - [selectedTheme, themes] + () => themes.find(t => t.value === selectedTheme), + [selectedTheme, themes], ); return ( @@ -48,4 +48,4 @@ export const ThemeItem = () => { /> </> ); -}; +} diff --git a/src/components/title.tsx b/src/components/title.tsx index cd0820448..cff162d3e 100644 --- a/src/components/title.tsx +++ b/src/components/title.tsx @@ -5,11 +5,11 @@ import { Text, View } from '@/components/ui'; type Props = { text: string; }; -export const Title = ({ text }: Props) => { +export function Title({ text }: Props) { return ( <View className="flex-row items-center justify-center py-4 pb-2"> <Text className="pr-2 text-2xl">{text}</Text> <View className="h-[2px] flex-1 bg-neutral-300" /> </View> ); -}; +} diff --git a/src/components/typography.tsx b/src/components/typography.tsx index ef43ff80d..2f492e374 100644 --- a/src/components/typography.tsx +++ b/src/components/typography.tsx @@ -1,10 +1,10 @@ -import React from 'react'; +import * as React from 'react'; import { Text, View } from '@/components/ui'; import { Title } from './title'; -export const Typography = () => { +export function Typography() { return ( <> <Title text="Typography" /> @@ -24,4 +24,4 @@ export const Typography = () => { </View> </> ); -}; +} diff --git a/src/components/ui/button.test.tsx b/src/components/ui/button.test.tsx index 068494884..70b967c14 100644 --- a/src/components/ui/button.test.tsx +++ b/src/components/ui/button.test.tsx @@ -1,5 +1,5 @@ /* eslint-disable max-lines-per-function */ -import React from 'react'; +import * as React from 'react'; import { Text } from 'react-native'; import { cleanup, render, screen, setup } from '@/lib/test-utils'; @@ -8,7 +8,7 @@ import { Button } from './button'; afterEach(cleanup); -describe('Button component ', () => { +describe('button component ', () => { it('should render correctly ', () => { render(<Button testID="button" />); expect(screen.getByTestId('button')).toBeOnTheScreen(); @@ -17,7 +17,7 @@ describe('Button component ', () => { render( <Button testID="button"> <Text> Custom child </Text> - </Button> + </Button>, ); expect(screen.getByText('Custom child')).toBeOnTheScreen(); }); @@ -34,7 +34,7 @@ describe('Button component ', () => { it('should call onClick handler when clicked', async () => { const onClick = jest.fn(); const { user } = setup( - <Button testID="button" label="Click the button" onPress={onClick} /> + <Button testID="button" label="Click the button" onPress={onClick} />, ); expect(screen.getByTestId('button')).toBeOnTheScreen(); await user.press(screen.getByTestId('button')); @@ -48,7 +48,7 @@ describe('Button component ', () => { loading={true} label="Click the button" onPress={onClick} - /> + />, ); expect(screen.getByTestId('button')).toBeOnTheScreen(); expect(screen.getByTestId('button-activity-indicator')).toBeOnTheScreen(); @@ -60,7 +60,7 @@ describe('Button component ', () => { render(<Button testID="button" disabled={true} />); expect(screen.getByTestId('button')).toBeDisabled(); }); - it("shouldn't call onClick when disabled", async () => { + it('shouldn\'t call onClick when disabled', async () => { const onClick = jest.fn(); const { user } = setup( <Button @@ -69,7 +69,7 @@ describe('Button component ', () => { disabled={true} onPress={onClick} variant="secondary" - /> + />, ); expect(screen.getByTestId('button')).toBeOnTheScreen(); await user.press(screen.getByTestId('button')); @@ -82,30 +82,30 @@ describe('Button component ', () => { render(<Button testID="button" size="lg" />); const button = screen.getByTestId('button'); // TODO: should be fixed to use haveStyle instead of comparing the class name - const expectedStyle = - 'font-inter font-semibold text-white dark:text-black text-xl'; - const receivedStyle = - button.props.children[0].props.children.props.className; + const expectedStyle + = 'font-inter font-semibold text-white dark:text-black text-xl'; + const receivedStyle + = button.props.children[0].props.children.props.className; expect(receivedStyle).toContain(expectedStyle); }); it('should apply correct styles for label when variant is secondary', () => { render(<Button testID="button" variant="secondary" label="Submit" />); const button = screen.getByTestId('button'); - const expectedStyle = - 'font-inter font-semibold text-secondary-600 text-base'; - const receivedStyle = - button.props.children[0].props.children.props.className; + const expectedStyle + = 'font-inter font-semibold text-secondary-600 text-base'; + const receivedStyle + = button.props.children[0].props.children.props.className; expect(receivedStyle).toContain(expectedStyle); }); it('should apply correct styles for label when is disabled', () => { render(<Button testID="button" label="Submit" disabled />); const button = screen.getByTestId('button'); - const expectedStyle = - 'font-inter font-semibold text-base text-neutral-600 dark:text-neutral-600'; - const receivedStyle = - button.props.children[0].props.children.props.className; + const expectedStyle + = 'font-inter font-semibold text-base text-neutral-600 dark:text-neutral-600'; + const receivedStyle + = button.props.children[0].props.children.props.className; expect(receivedStyle).toContain(expectedStyle); }); }); diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index dbb688d7a..28fddd30a 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -1,7 +1,7 @@ -import React from 'react'; import type { PressableProps, View } from 'react-native'; -import { ActivityIndicator, Pressable, Text } from 'react-native'; import type { VariantProps } from 'tailwind-variants'; +import * as React from 'react'; +import { ActivityIndicator, Pressable, Text } from 'react-native'; import { tv } from 'tailwind-variants'; const button = tv({ @@ -85,62 +85,51 @@ const button = tv({ }); type ButtonVariants = VariantProps<typeof button>; -interface Props extends ButtonVariants, Omit<PressableProps, 'disabled'> { +type Props = { label?: string; loading?: boolean; className?: string; textClassName?: string; -} +} & ButtonVariants & Omit<PressableProps, 'disabled'>; -export const Button = React.forwardRef<View, Props>( - ( - { - label: text, - loading = false, - variant = 'default', - disabled = false, - size = 'default', - className = '', - testID, - textClassName = '', - ...props - }, - ref - ) => { - const styles = React.useMemo( - () => button({ variant, disabled, size }), - [variant, disabled, size] - ); +export function Button({ ref, label: text, loading = false, variant = 'default', disabled = false, size = 'default', className = '', testID, textClassName = '', ...props }: Props & { ref?: React.RefObject<View | null> }) { + const styles = React.useMemo( + () => button({ variant, disabled, size }), + [variant, disabled, size], + ); - return ( - <Pressable - disabled={disabled || loading} - className={styles.container({ className })} - {...props} - ref={ref} - testID={testID} - > - {props.children ? ( - props.children - ) : ( - <> - {loading ? ( - <ActivityIndicator - size="small" - className={styles.indicator()} - testID={testID ? `${testID}-activity-indicator` : undefined} - /> - ) : ( - <Text - testID={testID ? `${testID}-label` : undefined} - className={styles.label({ className: textClassName })} - > - {text} - </Text> - )} - </> - )} - </Pressable> - ); - } -); + return ( + <Pressable + disabled={disabled || loading} + className={styles.container({ className })} + {...props} + ref={ref} + testID={testID} + > + {props.children + ? ( + props.children + ) + : ( + <> + {loading + ? ( + <ActivityIndicator + size="small" + className={styles.indicator()} + testID={testID ? `${testID}-activity-indicator` : undefined} + /> + ) + : ( + <Text + testID={testID ? `${testID}-label` : undefined} + className={styles.label({ className: textClassName })} + > + {text} + </Text> + )} + </> + )} + </Pressable> + ); +} diff --git a/src/components/ui/checkbox.test.tsx b/src/components/ui/checkbox.test.tsx index 59e084a0a..bb8685d77 100644 --- a/src/components/ui/checkbox.test.tsx +++ b/src/components/ui/checkbox.test.tsx @@ -1,24 +1,24 @@ /* eslint-disable max-lines-per-function */ -import 'react-native'; - -import React from 'react'; +import * as React from 'react'; import { cleanup, screen, setup } from '@/lib/test-utils'; import { Checkbox, Radio, Switch } from './checkbox'; +import 'react-native'; + afterEach(cleanup); -describe('Checkbox, Radio & Switch components ', () => { +describe('checkbox, Radio & Switch components ', () => { it('<Checkbox /> renders correctly and call on change on Press', async () => { - const mockOnChange = jest.fn((checked) => checked); + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Checkbox testID="checkbox" onChange={mockOnChange} accessibilityLabel="agree" accessibilityHint="toggle Agree" - /> + />, ); expect(screen.getByTestId('checkbox')).toBeOnTheScreen(); expect(screen.queryByTestId('checkbox-label')).not.toBeOnTheScreen(); @@ -26,10 +26,10 @@ describe('Checkbox, Radio & Switch components ', () => { expect(screen.getByTestId('checkbox')).not.toBeChecked(); expect(screen.getByTestId('checkbox').props.accessibilityRole).toBe( - 'checkbox' + 'checkbox', ); expect(screen.getByTestId('checkbox').props.accessibilityLabel).toBe( - 'agree' + 'agree', ); await user.press(screen.getByTestId('checkbox')); @@ -37,8 +37,8 @@ describe('Checkbox, Radio & Switch components ', () => { expect(mockOnChange).toHaveBeenCalledWith(true); }); - it("<CheckBox/> shouldn't change value while disabled", async () => { - const mockOnChange = jest.fn((checked) => checked); + it('<CheckBox/> shouldn\'t change value while disabled', async () => { + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Checkbox disabled={true} @@ -46,7 +46,7 @@ describe('Checkbox, Radio & Switch components ', () => { onChange={mockOnChange} accessibilityLabel="agree" accessibilityHint="toggle Agree" - /> + />, ); expect(screen.getByTestId('checkbox')).toBeOnTheScreen(); expect(screen.getByTestId('checkbox')).toBeDisabled(); @@ -54,7 +54,7 @@ describe('Checkbox, Radio & Switch components ', () => { expect(mockOnChange).toHaveBeenCalledTimes(0); }); it('<CheckBox/> Should render the correct label', async () => { - const mockOnChange = jest.fn((checked) => checked); + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Checkbox disabled={true} @@ -63,36 +63,36 @@ describe('Checkbox, Radio & Switch components ', () => { accessibilityLabel="agree" accessibilityHint="toggle Agree" label="I agree to terms and conditions" - /> + />, ); expect(screen.getByTestId('checkbox')).toBeOnTheScreen(); expect(screen.getByTestId('checkbox-label')).toBeOnTheScreen(); expect( - screen.getByTestId('checkbox').props.accessibilityState.checked + screen.getByTestId('checkbox').props.accessibilityState.checked, ).toBe(false); expect(screen.getByTestId('checkbox').props.accessibilityRole).toBe( - 'checkbox' + 'checkbox', ); expect(screen.getByTestId('checkbox').props.accessibilityLabel).toBe( - 'agree' + 'agree', ); expect(screen.getByTestId('checkbox-label')).toHaveTextContent( - 'I agree to terms and conditions' + 'I agree to terms and conditions', ); await user.press(screen.getByTestId('checkbox')); expect(mockOnChange).toHaveBeenCalledTimes(0); }); it('<Radio /> renders correctly and call on change on Press', async () => { - const mockOnChange = jest.fn((checked) => checked); + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Radio testID="radio" onChange={mockOnChange} accessibilityLabel="agree" accessibilityHint="toggle Agree" - /> + />, ); expect(screen.getByTestId('radio')).toBeOnTheScreen(); expect(screen.queryByTestId('radio-label')).not.toBeOnTheScreen(); @@ -106,7 +106,7 @@ describe('Checkbox, Radio & Switch components ', () => { }); it('<Radio /> should render the correct label', async () => { - const mockOnChange = jest.fn((checked) => checked); + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Radio testID="radio" @@ -114,16 +114,16 @@ describe('Checkbox, Radio & Switch components ', () => { accessibilityLabel="agree" label="I agree to terms and conditions" accessibilityHint="toggle Agree" - /> + />, ); expect(screen.getByTestId('radio')).toBeOnTheScreen(); expect(screen.getByTestId('radio-label')).toBeOnTheScreen(); expect(screen.getByTestId('radio-label')).toHaveTextContent( - 'I agree to terms and conditions' + 'I agree to terms and conditions', ); expect(screen.getByTestId('radio').props.accessibilityState.checked).toBe( - false + false, ); expect(screen.getByTestId('radio').props.accessibilityRole).toBe('radio'); expect(screen.getByTestId('radio').props.accessibilityLabel).toBe('agree'); @@ -132,8 +132,8 @@ describe('Checkbox, Radio & Switch components ', () => { expect(mockOnChange).toHaveBeenCalledWith(true); }); - it("<Radio/> shouldn't change value while disabled", async () => { - const mockOnChange = jest.fn((checked) => checked); + it('<Radio/> shouldn\'t change value while disabled', async () => { + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Radio disabled={true} @@ -141,7 +141,7 @@ describe('Checkbox, Radio & Switch components ', () => { onChange={mockOnChange} accessibilityLabel="agree" accessibilityHint="toggle Agree" - /> + />, ); expect(screen.getByTestId('radio')).toBeOnTheScreen(); expect(screen.getByTestId('radio')).toBeDisabled(); @@ -150,20 +150,20 @@ describe('Checkbox, Radio & Switch components ', () => { }); it('<Switch /> renders correctly and call on change on Press', async () => { - const mockOnChange = jest.fn((checked) => checked); + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Switch testID="switch" onChange={mockOnChange} accessibilityLabel="agree" accessibilityHint="toggle Agree" - /> + />, ); expect(screen.getByTestId('switch')).toBeOnTheScreen(); expect(screen.queryByTestId('switch-label')).not.toBeOnTheScreen(); expect(screen.getByTestId('switch')).toBeEnabled(); expect(screen.getByTestId('switch').props.accessibilityState.checked).toBe( - false + false, ); expect(screen.getByTestId('switch').props.accessibilityRole).toBe('switch'); expect(screen.getByTestId('switch').props.accessibilityLabel).toBe('agree'); @@ -173,7 +173,7 @@ describe('Checkbox, Radio & Switch components ', () => { }); it('<Switch /> should render the correct label', async () => { - const mockOnChange = jest.fn((checked) => checked); + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Switch testID="switch" @@ -181,15 +181,15 @@ describe('Checkbox, Radio & Switch components ', () => { accessibilityLabel="agree" label="I agree to terms and conditions" accessibilityHint="toggle Agree" - /> + />, ); expect(screen.getByTestId('switch')).toBeOnTheScreen(); expect(screen.getByTestId('switch-label')).toBeOnTheScreen(); expect(screen.getByTestId('switch-label')).toHaveTextContent( - 'I agree to terms and conditions' + 'I agree to terms and conditions', ); expect(screen.getByTestId('switch').props.accessibilityState.checked).toBe( - false + false, ); expect(screen.getByTestId('switch').props.accessibilityRole).toBe('switch'); expect(screen.getByTestId('switch').props.accessibilityLabel).toBe('agree'); @@ -198,8 +198,8 @@ describe('Checkbox, Radio & Switch components ', () => { expect(mockOnChange).toHaveBeenCalledWith(true); }); - it("<Switch/> shouldn't change value while disabled", async () => { - const mockOnChange = jest.fn((checked) => checked); + it('<Switch/> shouldn\'t change value while disabled', async () => { + const mockOnChange = jest.fn(checked => checked); const { user } = setup( <Switch disabled={true} @@ -207,7 +207,7 @@ describe('Checkbox, Radio & Switch components ', () => { onChange={mockOnChange} accessibilityLabel="agree" accessibilityHint="toggle Agree" - /> + />, ); expect(screen.getByTestId('switch')).toBeOnTheScreen(); await user.press(screen.getByTestId('switch')); diff --git a/src/components/ui/checkbox.tsx b/src/components/ui/checkbox.tsx index fc52bc100..e2f7cc1e6 100644 --- a/src/components/ui/checkbox.tsx +++ b/src/components/ui/checkbox.tsx @@ -1,9 +1,11 @@ +import type { PressableProps } from 'react-native'; import { MotiView } from 'moti'; -import React, { useCallback } from 'react'; +import * as React from 'react'; +import { useCallback } from 'react'; import { I18nManager, Pressable, - type PressableProps, + View, } from 'react-native'; import Svg, { Path } from 'react-native-svg'; @@ -19,25 +21,25 @@ const THUMB_HEIGHT = 22; const THUMB_WIDTH = 22; const THUMB_OFFSET = 4; -export interface RootProps extends Omit<PressableProps, 'onPress'> { +export type RootProps = { onChange: (checked: boolean) => void; checked?: boolean; className?: string; accessibilityLabel: string; -} +} & Omit<PressableProps, 'onPress'>; export type IconProps = { checked: boolean; }; -export const Root = ({ +export function Root({ checked = false, children, onChange, disabled, className = '', ...props -}: RootProps) => { +}: RootProps) { const handleChange = useCallback(() => { onChange(!checked); }, [onChange, checked]); @@ -55,7 +57,7 @@ export const Root = ({ {children} </Pressable> ); -}; +} type LabelProps = { text: string; @@ -63,15 +65,15 @@ type LabelProps = { testID?: string; }; -const Label = ({ text, testID, className = '' }: LabelProps) => { +function Label({ text, testID, className = '' }: LabelProps) { return ( <Text testID={testID} className={` ${className} pl-2`}> {text} </Text> ); -}; +} -export const CheckboxIcon = ({ checked = false }: IconProps) => { +export function CheckboxIcon({ checked = false }: IconProps) { const color = checked ? colors.primary[300] : colors.charcoal[400]; return ( <MotiView @@ -105,36 +107,38 @@ export const CheckboxIcon = ({ checked = false }: IconProps) => { </MotiView> </MotiView> ); -}; +} -const CheckboxRoot = ({ checked = false, children, ...props }: RootProps) => { +function CheckboxRoot({ checked = false, children, ...props }: RootProps) { return ( <Root checked={checked} accessibilityRole="checkbox" {...props}> {children} </Root> ); -}; +} -const CheckboxBase = ({ +function CheckboxBase({ checked = false, testID, label, ...props -}: RootProps & { label?: string }) => { +}: RootProps & { label?: string }) { return ( <CheckboxRoot checked={checked} testID={testID} {...props}> <CheckboxIcon checked={checked} /> - {label ? ( - <Label - text={label} - testID={testID ? `${testID}-label` : undefined} - className="pr-2" - /> - ) : null} + {label + ? ( + <Label + text={label} + testID={testID ? `${testID}-label` : undefined} + className="pr-2" + /> + ) + : null} </CheckboxRoot> ); -}; +} export const Checkbox = Object.assign(CheckboxBase, { Icon: CheckboxIcon, @@ -142,7 +146,7 @@ export const Checkbox = Object.assign(CheckboxBase, { Label, }); -export const RadioIcon = ({ checked = false }: IconProps) => { +export function RadioIcon({ checked = false }: IconProps) { const color = checked ? colors.primary[300] : colors.charcoal[400]; return ( <MotiView @@ -166,31 +170,33 @@ export const RadioIcon = ({ checked = false }: IconProps) => { /> </MotiView> ); -}; +} -const RadioRoot = ({ checked = false, children, ...props }: RootProps) => { +function RadioRoot({ checked = false, children, ...props }: RootProps) { return ( <Root checked={checked} accessibilityRole="radio" {...props}> {children} </Root> ); -}; +} -const RadioBase = ({ +function RadioBase({ checked = false, testID, label, ...props -}: RootProps & { label?: string }) => { +}: RootProps & { label?: string }) { return ( <RadioRoot checked={checked} testID={testID} {...props}> <RadioIcon checked={checked} /> - {label ? ( - <Label text={label} testID={testID ? `${testID}-label` : undefined} /> - ) : null} + {label + ? ( + <Label text={label} testID={testID ? `${testID}-label` : undefined} /> + ) + : null} </RadioRoot> ); -}; +} export const Radio = Object.assign(RadioBase, { Icon: RadioIcon, @@ -198,7 +204,7 @@ export const Radio = Object.assign(RadioBase, { Label, }); -export const SwitchIcon = ({ checked = false }: IconProps) => { +export function SwitchIcon({ checked = false }: IconProps) { const translateX = checked ? THUMB_OFFSET : WIDTH - THUMB_WIDTH - THUMB_OFFSET; @@ -232,30 +238,32 @@ export const SwitchIcon = ({ checked = false }: IconProps) => { /> </View> ); -}; -const SwitchRoot = ({ checked = false, children, ...props }: RootProps) => { +} +function SwitchRoot({ checked = false, children, ...props }: RootProps) { return ( <Root checked={checked} accessibilityRole="switch" {...props}> {children} </Root> ); -}; +} -const SwitchBase = ({ +function SwitchBase({ checked = false, testID, label, ...props -}: RootProps & { label?: string }) => { +}: RootProps & { label?: string }) { return ( <SwitchRoot checked={checked} testID={testID} {...props}> <SwitchIcon checked={checked} /> - {label ? ( - <Label text={label} testID={testID ? `${testID}-label` : undefined} /> - ) : null} + {label + ? ( + <Label text={label} testID={testID ? `${testID}-label` : undefined} /> + ) + : null} </SwitchRoot> ); -}; +} export const Switch = Object.assign(SwitchBase, { Icon: SwitchIcon, diff --git a/src/components/ui/focus-aware-status-bar.tsx b/src/components/ui/focus-aware-status-bar.tsx index 98712d8aa..e019412be 100644 --- a/src/components/ui/focus-aware-status-bar.tsx +++ b/src/components/ui/focus-aware-status-bar.tsx @@ -5,16 +5,19 @@ import { Platform } from 'react-native'; import { SystemBars } from 'react-native-edge-to-edge'; type Props = { hidden?: boolean }; -export const FocusAwareStatusBar = ({ hidden = false }: Props) => { +export function FocusAwareStatusBar({ hidden = false }: Props) { const isFocused = useIsFocused(); const { colorScheme } = useColorScheme(); - if (Platform.OS === 'web') return null; + if (Platform.OS === 'web') + return null; - return isFocused ? ( - <SystemBars - style={colorScheme === 'light' ? 'dark' : 'light'} - hidden={hidden} - /> - ) : null; -}; + return isFocused + ? ( + <SystemBars + style={colorScheme === 'light' ? 'dark' : 'light'} + hidden={hidden} + /> + ) + : null; +} diff --git a/src/components/ui/icons/arrow-right.tsx b/src/components/ui/icons/arrow-right.tsx index 750bacb36..a560aef21 100644 --- a/src/components/ui/icons/arrow-right.tsx +++ b/src/components/ui/icons/arrow-right.tsx @@ -1,25 +1,27 @@ +import type { SvgProps } from 'react-native-svg'; import * as React from 'react'; import { StyleSheet } from 'react-native'; -import type { SvgProps } from 'react-native-svg'; import Svg, { Path } from 'react-native-svg'; import { isRTL } from '@/lib'; -export const ArrowRight = ({ color = '#CCC', style, ...props }: SvgProps) => ( - <Svg - width={7} - height={14} - viewBox="0 0 7 14" - fill="none" - {...props} - style={StyleSheet.flatten([ - style, - { transform: [{ scaleX: isRTL ? -1 : 1 }] }, - ])} - > - <Path - d="M.872 13.101a.874.874 0 0 0 .621-.253l5.252-5.253a.875.875 0 0 0 0-1.234L1.493 1.11A.875.875 0 0 0 .26 2.343l4.63 4.63-4.63 4.632A.876.876 0 0 0 .872 13.1Z" - fill={color} - /> - </Svg> -); +export function ArrowRight({ color = '#CCC', style, ...props }: SvgProps) { + return ( + <Svg + width={7} + height={14} + viewBox="0 0 7 14" + fill="none" + {...props} + style={StyleSheet.flatten([ + style, + { transform: [{ scaleX: isRTL ? -1 : 1 }] }, + ])} + > + <Path + d="M.872 13.101a.874.874 0 0 0 .621-.253l5.252-5.253a.875.875 0 0 0 0-1.234L1.493 1.11A.875.875 0 0 0 .26 2.343l4.63 4.63-4.63 4.632A.876.876 0 0 0 .872 13.1Z" + fill={color} + /> + </Svg> + ); +} diff --git a/src/components/ui/icons/caret-down.tsx b/src/components/ui/icons/caret-down.tsx index 77186e3e1..c23ec7b67 100644 --- a/src/components/ui/icons/caret-down.tsx +++ b/src/components/ui/icons/caret-down.tsx @@ -1,20 +1,22 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { Path } from 'react-native-svg'; -export const CaretDown = ({ ...props }: SvgProps) => ( - <Svg - width={12} - height={13} - fill="none" - {...props} - className="stroke-black dark:stroke-white" - > - <Path - strokeLinecap="round" - strokeLinejoin="round" - strokeWidth={1.5} - d="M9.75 4.744 6 8.494l-3.75-3.75" - /> - </Svg> -); +export function CaretDown({ ...props }: SvgProps) { + return ( + <Svg + width={12} + height={13} + fill="none" + {...props} + className="stroke-black dark:stroke-white" + > + <Path + strokeLinecap="round" + strokeLinejoin="round" + strokeWidth={1.5} + d="M9.75 4.744 6 8.494l-3.75-3.75" + /> + </Svg> + ); +} diff --git a/src/components/ui/icons/feed.tsx b/src/components/ui/icons/feed.tsx index 898fed7b3..98bdd64be 100644 --- a/src/components/ui/icons/feed.tsx +++ b/src/components/ui/icons/feed.tsx @@ -1,12 +1,14 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { Path } from 'react-native-svg'; -export const Feed = ({ color = '#000', ...props }: SvgProps) => ( - <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> - <Path - d="M16.191 2C19.28 2 21 3.78 21 6.83v10.33c0 3.1-1.72 4.84-4.809 4.84H7.81C4.77 22 3 20.26 3 17.16V6.83C3 3.78 4.77 2 7.81 2h8.381ZM8.08 15.74a.795.795 0 0 0-.75 1.21c.16.25.45.4.75.36h7.84c.399-.04.7-.381.7-.78 0-.41-.301-.75-.7-.79H8.08Zm7.84-4.561H8.08a.781.781 0 0 0 0 1.561h7.84a.781.781 0 0 0 0-1.561ZM11.069 6.65H8.08v.01a.78.78 0 0 0 0 1.56h2.989c.431 0 .781-.35.781-.791a.781.781 0 0 0-.781-.779Z" - fill={color} - /> - </Svg> -); +export function Feed({ color = '#000', ...props }: SvgProps) { + return ( + <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> + <Path + d="M16.191 2C19.28 2 21 3.78 21 6.83v10.33c0 3.1-1.72 4.84-4.809 4.84H7.81C4.77 22 3 20.26 3 17.16V6.83C3 3.78 4.77 2 7.81 2h8.381ZM8.08 15.74a.795.795 0 0 0-.75 1.21c.16.25.45.4.75.36h7.84c.399-.04.7-.381.7-.78 0-.41-.301-.75-.7-.79H8.08Zm7.84-4.561H8.08a.781.781 0 0 0 0 1.561h7.84a.781.781 0 0 0 0-1.561ZM11.069 6.65H8.08v.01a.78.78 0 0 0 0 1.56h2.989c.431 0 .781-.35.781-.791a.781.781 0 0 0-.781-.779Z" + fill={color} + /> + </Svg> + ); +} diff --git a/src/components/ui/icons/github.tsx b/src/components/ui/icons/github.tsx index e99d14f5f..70f6cbdb9 100644 --- a/src/components/ui/icons/github.tsx +++ b/src/components/ui/icons/github.tsx @@ -1,25 +1,27 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg'; import colors from '../colors'; -export const Github = ({ color = colors.neutral[500], ...props }: SvgProps) => ( - <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> - <G - clipPath="url(#github)" - stroke={color} - strokeWidth={1.219} - strokeLinecap="round" - strokeLinejoin="round" - > - <Path d="M7.876 22.5a2.242 2.242 0 0 0 2.25-2.25v-4.5M16.125 22.5a2.242 2.242 0 0 1-2.25-2.25v-4.5M14.25 15.75h1.5A2.24 2.24 0 0 1 18 18v.75A2.24 2.24 0 0 0 20.25 21M9.752 15.75h-1.5A2.24 2.24 0 0 0 6.002 18v.75A2.24 2.24 0 0 1 3.752 21" /> - <Path d="M10.485 6a4.875 4.875 0 0 0-4.107-2.25 4.875 4.875 0 0 0-.328 4.19 4.622 4.622 0 0 0-.797 2.56v.75a4.5 4.5 0 0 0 4.5 4.5h4.5a4.5 4.5 0 0 0 4.5-4.5v-.75a4.622 4.622 0 0 0-.797-2.56 4.874 4.874 0 0 0-.328-4.19A4.875 4.875 0 0 0 13.522 6h-3.037Z" /> - </G> - <Defs> - <ClipPath id="github"> - <Path fill="#fff" d="M0 0h24v24H0z" /> - </ClipPath> - </Defs> - </Svg> -); +export function Github({ color = colors.neutral[500], ...props }: SvgProps) { + return ( + <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> + <G + clipPath="url(#github)" + stroke={color} + strokeWidth={1.219} + strokeLinecap="round" + strokeLinejoin="round" + > + <Path d="M7.876 22.5a2.242 2.242 0 0 0 2.25-2.25v-4.5M16.125 22.5a2.242 2.242 0 0 1-2.25-2.25v-4.5M14.25 15.75h1.5A2.24 2.24 0 0 1 18 18v.75A2.24 2.24 0 0 0 20.25 21M9.752 15.75h-1.5A2.24 2.24 0 0 0 6.002 18v.75A2.24 2.24 0 0 1 3.752 21" /> + <Path d="M10.485 6a4.875 4.875 0 0 0-4.107-2.25 4.875 4.875 0 0 0-.328 4.19 4.622 4.622 0 0 0-.797 2.56v.75a4.5 4.5 0 0 0 4.5 4.5h4.5a4.5 4.5 0 0 0 4.5-4.5v-.75a4.622 4.622 0 0 0-.797-2.56 4.874 4.874 0 0 0-.328-4.19A4.875 4.875 0 0 0 13.522 6h-3.037Z" /> + </G> + <Defs> + <ClipPath id="github"> + <Path fill="#fff" d="M0 0h24v24H0z" /> + </ClipPath> + </Defs> + </Svg> + ); +} diff --git a/src/components/ui/icons/home.tsx b/src/components/ui/icons/home.tsx index 4d75519a2..6655afd2f 100644 --- a/src/components/ui/icons/home.tsx +++ b/src/components/ui/icons/home.tsx @@ -1,5 +1,5 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { Path } from 'react-native-svg'; export function Home({ color = '#000', ...props }: SvgProps) { diff --git a/src/components/ui/icons/language.tsx b/src/components/ui/icons/language.tsx index 13040cbd2..b6ccde920 100644 --- a/src/components/ui/icons/language.tsx +++ b/src/components/ui/icons/language.tsx @@ -1,33 +1,35 @@ -import React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { G, Path, Text, TSpan } from 'react-native-svg'; -export const Language = ({ ...props }: SvgProps) => ( - <Svg width={100} height={71} {...props}> - <G fill="none" fillRule="evenodd"> - <Path - d="M55.684 0H3.319A3.319 3.319 0 0 0 0 3.324V39.4a3.319 3.319 0 0 0 3.32 3.324h10.207V57l14.048-14.276h28.109A3.32 3.32 0 0 0 59 39.4V3.324A3.32 3.32 0 0 0 55.684 0" - fill="#FC6276" - /> - <Path - d="M32.103 23.62l-3.242-11.567-3.394 11.567h6.636zM25.856 6.23a26.079 26.079 0 0 1 1.562-.172A19.683 19.683 0 0 1 29.058 6c.521 0 1.026.016 1.52.058.494.04 1.041.094 1.64.172L41 33.769a21.499 21.499 0 0 1-3.122.231c-.992 0-1.95-.075-2.887-.231l-1.56-5.512h-9.29l-1.6 5.512c-.936.156-1.837.231-2.693.231-.962 0-1.914-.075-2.848-.231l8.856-27.54z" - fill="#FFF" - /> - <Path - d="M96.682 14H44.316A3.32 3.32 0 0 0 41 17.318v36.08a3.321 3.321 0 0 0 3.316 3.323h28.11L86.473 71V56.721h10.208A3.32 3.32 0 0 0 100 53.398v-36.08A3.317 3.317 0 0 0 96.682 14" - fill="#192332" - /> - <Text +export function Language({ ...props }: SvgProps) { + return ( + <Svg width={100} height={71} {...props}> + <G fill="none" fillRule="evenodd"> + <Path + d="M55.684 0H3.319A3.319 3.319 0 0 0 0 3.324V39.4a3.319 3.319 0 0 0 3.32 3.324h10.207V57l14.048-14.276h28.109A3.32 3.32 0 0 0 59 39.4V3.324A3.32 3.32 0 0 0 55.684 0" + fill="#FC6276" + /> + <Path + d="M32.103 23.62l-3.242-11.567-3.394 11.567h6.636zM25.856 6.23a26.079 26.079 0 0 1 1.562-.172A19.683 19.683 0 0 1 29.058 6c.521 0 1.026.016 1.52.058.494.04 1.041.094 1.64.172L41 33.769a21.499 21.499 0 0 1-3.122.231c-.992 0-1.95-.075-2.887-.231l-1.56-5.512h-9.29l-1.6 5.512c-.936.156-1.837.231-2.693.231-.962 0-1.914-.075-2.848-.231l8.856-27.54z" + fill="#FFF" + /> + <Path + d="M96.682 14H44.316A3.32 3.32 0 0 0 41 17.318v36.08a3.321 3.321 0 0 0 3.316 3.323h28.11L86.473 71V56.721h10.208A3.32 3.32 0 0 0 100 53.398v-36.08A3.317 3.317 0 0 0 96.682 14" + fill="#192332" + /> + <Text // fontFamily="HelveticaNeueLTArabic-Bold, Helvetica Neue LT Arabic" - fontSize={30} - fontWeight="bold" - fill="#FFF" - transform="translate(0 -4)" - > - <TSpan x={59} y={42}> - ي - </TSpan> - </Text> - </G> - </Svg> -); + fontSize={30} + fontWeight="bold" + fill="#FFF" + transform="translate(0 -4)" + > + <TSpan x={59} y={42}> + ي + </TSpan> + </Text> + </G> + </Svg> + ); +} diff --git a/src/components/ui/icons/rate.tsx b/src/components/ui/icons/rate.tsx index ee3ff76e2..b36f2cbd0 100644 --- a/src/components/ui/icons/rate.tsx +++ b/src/components/ui/icons/rate.tsx @@ -1,24 +1,26 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg'; import colors from '../colors'; -export const Rate = ({ color = colors.neutral[500], ...props }: SvgProps) => ( - <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> - <G clipPath="url(#a)"> - <Path - d="m12.412 17.878 4.725 3c.61.384 1.36-.187 1.181-.89l-1.369-5.382a.816.816 0 0 1 .272-.825l4.238-3.534c.553-.46.271-1.388-.45-1.434l-5.532-.357a.778.778 0 0 1-.684-.506L12.73 2.756a.778.778 0 0 0-1.462 0L9.206 7.95a.778.778 0 0 1-.685.506l-5.531.357c-.722.046-1.003.975-.45 1.434l4.237 3.534a.815.815 0 0 1 .272.825l-1.265 4.988c-.216.843.684 1.528 1.406 1.069l4.397-2.785a.769.769 0 0 1 .825 0v0Z" - stroke={color} - strokeWidth={1.219} - strokeLinecap="round" - strokeLinejoin="round" - /> - </G> - <Defs> - <ClipPath id="a"> - <Path fill="#fff" d="M0 0h24v24H0z" /> - </ClipPath> - </Defs> - </Svg> -); +export function Rate({ color = colors.neutral[500], ...props }: SvgProps) { + return ( + <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> + <G clipPath="url(#a)"> + <Path + d="m12.412 17.878 4.725 3c.61.384 1.36-.187 1.181-.89l-1.369-5.382a.816.816 0 0 1 .272-.825l4.238-3.534c.553-.46.271-1.388-.45-1.434l-5.532-.357a.778.778 0 0 1-.684-.506L12.73 2.756a.778.778 0 0 0-1.462 0L9.206 7.95a.778.778 0 0 1-.685.506l-5.531.357c-.722.046-1.003.975-.45 1.434l4.237 3.534a.815.815 0 0 1 .272.825l-1.265 4.988c-.216.843.684 1.528 1.406 1.069l4.397-2.785a.769.769 0 0 1 .825 0v0Z" + stroke={color} + strokeWidth={1.219} + strokeLinecap="round" + strokeLinejoin="round" + /> + </G> + <Defs> + <ClipPath id="a"> + <Path fill="#fff" d="M0 0h24v24H0z" /> + </ClipPath> + </Defs> + </Svg> + ); +} diff --git a/src/components/ui/icons/settings.tsx b/src/components/ui/icons/settings.tsx index 49f2d5ff6..9517c1f1f 100644 --- a/src/components/ui/icons/settings.tsx +++ b/src/components/ui/icons/settings.tsx @@ -1,8 +1,8 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { Path } from 'react-native-svg'; -export const Settings = ({ color = '#000', ...props }: SvgProps) => { +export function Settings({ color = '#000', ...props }: SvgProps) { return ( <Svg width={24} height={24} viewBox="0 0 24 24" fill="none" {...props}> <Path @@ -11,4 +11,4 @@ export const Settings = ({ color = '#000', ...props }: SvgProps) => { /> </Svg> ); -}; +} diff --git a/src/components/ui/icons/share.tsx b/src/components/ui/icons/share.tsx index 35bd80cac..994e84281 100644 --- a/src/components/ui/icons/share.tsx +++ b/src/components/ui/icons/share.tsx @@ -1,16 +1,18 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { Path } from 'react-native-svg'; import colors from '../colors'; -export const Share = ({ color = colors.neutral[500], ...props }: SvgProps) => ( - <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> - <Path - fillRule="evenodd" - clipRule="evenodd" - d="M17 23.5H7A2.5 2.5 0 0 1 4.5 21v-9A2.5 2.5 0 0 1 7 9.5h2a.5.5 0 1 1 0 1H7A1.5 1.5 0 0 0 5.5 12v9A1.5 1.5 0 0 0 7 22.5h10a1.5 1.5 0 0 0 1.5-1.5v-9a1.5 1.5 0 0 0-1.5-1.5h-2a.5.5 0 0 1 0-1h2a2.5 2.5 0 0 1 2.5 2.5v9a2.5 2.5 0 0 1-2.5 2.5ZM15.667 5.358 12.5 2.19V15a.5.5 0 0 1-1 0V2.19L8.333 5.357a.489.489 0 0 1-.69-.69L11.595.715c.016-.024.026-.051.047-.073a.487.487 0 0 1 .353-.141L12 .5l.005.001a.486.486 0 0 1 .352.141c.021.021.03.047.046.07l3.955 3.955a.488.488 0 0 1-.691.69Z" - fill={color} - /> - </Svg> -); +export function Share({ color = colors.neutral[500], ...props }: SvgProps) { + return ( + <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> + <Path + fillRule="evenodd" + clipRule="evenodd" + d="M17 23.5H7A2.5 2.5 0 0 1 4.5 21v-9A2.5 2.5 0 0 1 7 9.5h2a.5.5 0 1 1 0 1H7A1.5 1.5 0 0 0 5.5 12v9A1.5 1.5 0 0 0 7 22.5h10a1.5 1.5 0 0 0 1.5-1.5v-9a1.5 1.5 0 0 0-1.5-1.5h-2a.5.5 0 0 1 0-1h2a2.5 2.5 0 0 1 2.5 2.5v9a2.5 2.5 0 0 1-2.5 2.5ZM15.667 5.358 12.5 2.19V15a.5.5 0 0 1-1 0V2.19L8.333 5.357a.489.489 0 0 1-.69-.69L11.595.715c.016-.024.026-.051.047-.073a.487.487 0 0 1 .353-.141L12 .5l.005.001a.486.486 0 0 1 .352.141c.021.021.03.047.046.07l3.955 3.955a.488.488 0 0 1-.691.69Z" + fill={color} + /> + </Svg> + ); +} diff --git a/src/components/ui/icons/style.tsx b/src/components/ui/icons/style.tsx index 07c95d82d..a1b966eb7 100644 --- a/src/components/ui/icons/style.tsx +++ b/src/components/ui/icons/style.tsx @@ -1,22 +1,24 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg'; -export const Style = ({ color, ...props }: SvgProps) => ( - <Svg width={25} height={24} fill="none" viewBox="0 0 25 24" {...props}> - <G - clipPath="url(#style)" - stroke={color} - strokeWidth={2.438} - strokeLinecap="round" - strokeLinejoin="round" - > - <Path d="M6.94 10.125a3.188 3.188 0 1 0 0-6.375 3.188 3.188 0 0 0 0 6.375ZM17.064 10.125a3.188 3.188 0 1 0 0-6.375 3.188 3.188 0 0 0 0 6.375ZM6.94 20.25a3.188 3.188 0 1 0 0-6.375 3.188 3.188 0 0 0 0 6.375ZM17.064 20.25a3.188 3.188 0 1 0 0-6.375 3.188 3.188 0 0 0 0 6.375Z" /> - </G> - <Defs> - <ClipPath id="style"> - <Path fill="#fff" transform="translate(.002)" d="M0 0h24v24H0z" /> - </ClipPath> - </Defs> - </Svg> -); +export function Style({ color, ...props }: SvgProps) { + return ( + <Svg width={25} height={24} fill="none" viewBox="0 0 25 24" {...props}> + <G + clipPath="url(#style)" + stroke={color} + strokeWidth={2.438} + strokeLinecap="round" + strokeLinejoin="round" + > + <Path d="M6.94 10.125a3.188 3.188 0 1 0 0-6.375 3.188 3.188 0 0 0 0 6.375ZM17.064 10.125a3.188 3.188 0 1 0 0-6.375 3.188 3.188 0 0 0 0 6.375ZM6.94 20.25a3.188 3.188 0 1 0 0-6.375 3.188 3.188 0 0 0 0 6.375ZM17.064 20.25a3.188 3.188 0 1 0 0-6.375 3.188 3.188 0 0 0 0 6.375Z" /> + </G> + <Defs> + <ClipPath id="style"> + <Path fill="#fff" transform="translate(.002)" d="M0 0h24v24H0z" /> + </ClipPath> + </Defs> + </Svg> + ); +} diff --git a/src/components/ui/icons/support.tsx b/src/components/ui/icons/support.tsx index 6eb3e03d1..8668c0087 100644 --- a/src/components/ui/icons/support.tsx +++ b/src/components/ui/icons/support.tsx @@ -1,27 +1,29 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg'; import colors from '../colors'; -export const Support = ({ +export function Support({ color = colors.neutral[500], ...props -}: SvgProps) => ( - <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> - <G clipPath="url(#a)"> - <Path - d="m12.533 19.866 7.594-7.594c1.865-1.875 2.137-4.94.375-6.9a4.875 4.875 0 0 0-7.078-.197L11.999 6.61 10.77 5.372c-1.874-1.866-4.94-2.137-6.9-.375a4.875 4.875 0 0 0-.196 7.078l7.79 7.79a.76.76 0 0 0 1.069 0v0Z" - stroke={color} - strokeWidth={1.219} - strokeLinecap="round" - strokeLinejoin="round" - /> - </G> - <Defs> - <ClipPath id="a"> - <Path fill="#fff" d="M0 0h24v24H0z" /> - </ClipPath> - </Defs> - </Svg> -); +}: SvgProps) { + return ( + <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> + <G clipPath="url(#a)"> + <Path + d="m12.533 19.866 7.594-7.594c1.865-1.875 2.137-4.94.375-6.9a4.875 4.875 0 0 0-7.078-.197L11.999 6.61 10.77 5.372c-1.874-1.866-4.94-2.137-6.9-.375a4.875 4.875 0 0 0-.196 7.078l7.79 7.79a.76.76 0 0 0 1.069 0v0Z" + stroke={color} + strokeWidth={1.219} + strokeLinecap="round" + strokeLinejoin="round" + /> + </G> + <Defs> + <ClipPath id="a"> + <Path fill="#fff" d="M0 0h24v24H0z" /> + </ClipPath> + </Defs> + </Svg> + ); +} diff --git a/src/components/ui/icons/website.tsx b/src/components/ui/icons/website.tsx index b02cb3c3d..10b9735c9 100644 --- a/src/components/ui/icons/website.tsx +++ b/src/components/ui/icons/website.tsx @@ -1,28 +1,30 @@ -import * as React from 'react'; import type { SvgProps } from 'react-native-svg'; +import * as React from 'react'; import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg'; import colors from '../colors'; -export const Website = ({ +export function Website({ color = colors.neutral[500], ...props -}: SvgProps) => ( - <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> - <G - clipPath="url(#a)" - stroke={color} - strokeWidth={1.219} - strokeLinecap="round" - strokeLinejoin="round" - > - <Path d="M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18ZM3 12h18" /> - <Path d="M12 20.756c2.07 0 3.75-3.92 3.75-8.756S14.07 3.244 12 3.244c-2.071 0-3.75 3.92-3.75 8.756s1.679 8.756 3.75 8.756Z" /> - </G> - <Defs> - <ClipPath id="a"> - <Path fill="#fff" d="M0 0h24v24H0z" /> - </ClipPath> - </Defs> - </Svg> -); +}: SvgProps) { + return ( + <Svg width={24} height={24} fill="none" viewBox="0 0 24 24" {...props}> + <G + clipPath="url(#a)" + stroke={color} + strokeWidth={1.219} + strokeLinecap="round" + strokeLinejoin="round" + > + <Path d="M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18ZM3 12h18" /> + <Path d="M12 20.756c2.07 0 3.75-3.92 3.75-8.756S14.07 3.244 12 3.244c-2.071 0-3.75 3.92-3.75 8.756s1.679 8.756 3.75 8.756Z" /> + </G> + <Defs> + <ClipPath id="a"> + <Path fill="#fff" d="M0 0h24v24H0z" /> + </ClipPath> + </Defs> + </Svg> + ); +} diff --git a/src/components/ui/image.tsx b/src/components/ui/image.tsx index 6c6e6166a..5c9ed3fbf 100644 --- a/src/components/ui/image.tsx +++ b/src/components/ui/image.tsx @@ -9,12 +9,12 @@ export type ImgProps = ImageProps & { cssInterop(NImage, { className: 'style' }); -export const Image = ({ +export function Image({ style, className, placeholder = 'L6PZfSi_.AyE_3t7t7R**0o#DgR4', ...props -}: ImgProps) => { +}: ImgProps) { return ( <NImage className={className} @@ -23,8 +23,8 @@ export const Image = ({ {...props} /> ); -}; +} -export const preloadImages = (sources: string[]) => { +export function preloadImages(sources: string[]) { NImage.prefetch(sources); -}; +} diff --git a/src/components/ui/index.tsx b/src/components/ui/index.tsx index e6e253fed..2256f7f73 100644 --- a/src/components/ui/index.tsx +++ b/src/components/ui/index.tsx @@ -24,7 +24,7 @@ export { } from 'react-native'; export { SafeAreaView } from 'react-native-safe-area-context'; -//Apply cssInterop to Svg to resolve className string into style +// Apply cssInterop to Svg to resolve className string into style cssInterop(Svg, { className: { target: 'style', diff --git a/src/components/ui/input.test.tsx b/src/components/ui/input.test.tsx index 8f176c92e..d530a360a 100644 --- a/src/components/ui/input.test.tsx +++ b/src/components/ui/input.test.tsx @@ -1,5 +1,5 @@ /* eslint-disable max-lines-per-function */ -import React from 'react'; +import * as React from 'react'; import { I18nManager } from 'react-native'; import { cleanup, render, screen, setup } from '@/lib/test-utils'; @@ -8,7 +8,7 @@ import { Input } from './input'; afterEach(cleanup); -describe('Input component ', () => { +describe('input component ', () => { it('renders correctly ', () => { render(<Input testID="input" />); expect(screen.getByTestId('input')).toBeOnTheScreen(); @@ -33,7 +33,7 @@ describe('Input component ', () => { render(<Input testID="input" placeholder="Enter your username" />); expect(screen.getByTestId('input')).toBeOnTheScreen(); expect( - screen.getByPlaceholderText('Enter your username') + screen.getByPlaceholderText('Enter your username'), ).toBeOnTheScreen(); }); @@ -49,7 +49,7 @@ describe('Input component ', () => { expect(screen.getByTestId('input')).toBeOnTheScreen(); expect(screen.getByTestId('input-error')).toHaveTextContent( - 'This is an error message' + 'This is an error message', ); }); it('should render the label, error message & placeholder correctly ', () => { @@ -59,17 +59,17 @@ describe('Input component ', () => { label="Username" placeholder="Enter your username" error="This is an error message" - /> + />, ); expect(screen.getByTestId('input')).toBeOnTheScreen(); expect(screen.getByTestId('input-label')).toHaveTextContent('Username'); expect(screen.getByTestId('input-error')).toBeOnTheScreen(); expect(screen.getByTestId('input-error')).toHaveTextContent( - 'This is an error message' + 'This is an error message', ); expect( - screen.getByPlaceholderText('Enter your username') + screen.getByPlaceholderText('Enter your username'), ).toBeOnTheScreen(); }); @@ -93,7 +93,7 @@ describe('Input component ', () => { it('should trigger onChangeText event correctly', async () => { const onChangeText = jest.fn(); const { user } = setup( - <Input testID="input" onChangeText={onChangeText} /> + <Input testID="input" onChangeText={onChangeText} />, ); const input = screen.getByTestId('input'); diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index 6ef009fd2..ce418c4e0 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -1,14 +1,13 @@ -import * as React from 'react'; import type { Control, FieldValues, Path, RegisterOptions, } from 'react-hook-form'; -import { useController } from 'react-hook-form'; import type { TextInputProps } from 'react-native'; -import { I18nManager, StyleSheet, View } from 'react-native'; -import { TextInput as NTextInput } from 'react-native'; +import * as React from 'react'; +import { useController } from 'react-hook-form'; +import { I18nManager, TextInput as NTextInput, StyleSheet, View } from 'react-native'; import { tv } from 'tailwind-variants'; import colors from './colors'; @@ -47,17 +46,17 @@ const inputTv = tv({ }, }); -export interface NInputProps extends TextInputProps { +export type NInputProps = { label?: string; disabled?: boolean; error?: string; -} +} & TextInputProps; -type TRule<T extends FieldValues> = - | Omit< - RegisterOptions<T>, +type TRule<T extends FieldValues> + = | Omit< + RegisterOptions<T>, 'disabled' | 'valueAsNumber' | 'valueAsDate' | 'setValueAs' - > + > | undefined; export type RuleType<T extends FieldValues> = { [name in keyof T]: TRule<T> }; @@ -67,11 +66,9 @@ export type InputControllerType<T extends FieldValues> = { rules?: RuleType<T>; }; -interface ControlledInputProps<T extends FieldValues> - extends NInputProps, - InputControllerType<T> {} +type ControlledInputProps<T extends FieldValues> = {} & NInputProps & InputControllerType<T>; -export const Input = React.forwardRef<NTextInput, NInputProps>((props, ref) => { +export function Input({ ref, ...props }: NInputProps & { ref?: React.Ref<NTextInput | null> }) { const { label, error, testID, ...inputProps } = props; const [isFocussed, setIsFocussed] = React.useState(false); const onBlur = React.useCallback(() => setIsFocussed(false), []); @@ -84,7 +81,7 @@ export const Input = React.forwardRef<NTextInput, NInputProps>((props, ref) => { focused: isFocussed, disabled: Boolean(props.disabled), }), - [error, isFocussed, props.disabled] + [error, isFocussed, props.disabled], ); return ( @@ -121,11 +118,11 @@ export const Input = React.forwardRef<NTextInput, NInputProps>((props, ref) => { )} </View> ); -}); +} // only used with react-hook-form export function ControlledInput<T extends FieldValues>( - props: ControlledInputProps<T> + props: ControlledInputProps<T>, ) { const { name, control, rules, ...inputProps } = props; diff --git a/src/components/ui/list.tsx b/src/components/ui/list.tsx index 68ebc7247..d6b60e3ae 100644 --- a/src/components/ui/list.tsx +++ b/src/components/ui/list.tsx @@ -1,9 +1,10 @@ import { FlashList as NFlashList } from '@shopify/flash-list'; -import React from 'react'; +import * as React from 'react'; import { ActivityIndicator, View } from 'react-native'; import Svg, { Circle, Path } from 'react-native-svg'; import { Text } from './text'; + type Props = { isLoading: boolean; }; @@ -13,47 +14,51 @@ export const List = NFlashList; export const EmptyList = React.memo(({ isLoading }: Props) => { return ( <View className="min-h-[400px] flex-1 items-center justify-center"> - {!isLoading ? ( - <View> - <NoData /> - <Text className="pt-4 text-center">Sorry! No data found</Text> - </View> - ) : ( - <ActivityIndicator /> - )} + {!isLoading + ? ( + <View> + <NoData /> + <Text className="pt-4 text-center">Sorry! No data found</Text> + </View> + ) + : ( + <ActivityIndicator /> + )} </View> ); }); -export const NoData = () => ( - <Svg width={200} height={200} viewBox="0 0 647.636 632.174"> - <Path - d="M411.146 142.174h-174.51a15.018 15.018 0 0 0-15 15v387.85l-2 .61-42.81 13.11a8.007 8.007 0 0 1-9.99-5.31l-127.34-415.95a8.003 8.003 0 0 1 5.31-9.99l65.97-20.2 191.25-58.54 65.97-20.2a7.99 7.99 0 0 1 9.99 5.3l32.55 106.32Z" - fill="#f2f2f2" - /> - <Path - d="m449.226 140.174-39.23-128.14a16.994 16.994 0 0 0-21.23-11.28l-92.75 28.39-191.24 58.55-92.75 28.4a17.015 17.015 0 0 0-11.28 21.23l134.08 437.93a17.027 17.027 0 0 0 16.26 12.03 16.79 16.79 0 0 0 4.97-.75l63.58-19.46 2-.62v-2.09l-2 .61-64.17 19.65a15.015 15.015 0 0 1-18.73-9.95L2.666 136.734a14.98 14.98 0 0 1 9.95-18.73l92.75-28.4 191.24-58.54 92.75-28.4a15.156 15.156 0 0 1 4.41-.66 15.015 15.015 0 0 1 14.32 10.61l39.05 127.56.62 2h2.08Z" - fill="#3f3d56" - /> - <Path - d="M122.68 127.82a9.016 9.016 0 0 1-8.61-6.366l-12.88-42.072a8.999 8.999 0 0 1 5.97-11.24L283.1 14.278a9.009 9.009 0 0 1 11.24 5.971l12.88 42.072a9.01 9.01 0 0 1-5.97 11.241l-175.94 53.864a8.976 8.976 0 0 1-2.63.395Z" - fill="#7eb55a" - /> - <Circle cx={190.154} cy={24.955} r={20} fill="#7eb55a" /> - <Circle cx={190.154} cy={24.955} r={12.665} fill="#fff" /> - <Path - d="M602.636 582.174h-338a8.51 8.51 0 0 1-8.5-8.5v-405a8.51 8.51 0 0 1 8.5-8.5h338a8.51 8.51 0 0 1 8.5 8.5v405a8.51 8.51 0 0 1-8.5 8.5Z" - fill="#e6e6e6" - /> - <Path - d="M447.136 140.174h-210.5a17.024 17.024 0 0 0-17 17v407.8l2-.61v-407.19a15.018 15.018 0 0 1 15-15h211.12Zm183.5 0h-394a17.024 17.024 0 0 0-17 17v458a17.024 17.024 0 0 0 17 17h394a17.024 17.024 0 0 0 17-17v-458a17.024 17.024 0 0 0-17-17Zm15 475a15.018 15.018 0 0 1-15 15h-394a15.018 15.018 0 0 1-15-15v-458a15.018 15.018 0 0 1 15-15h394a15.018 15.018 0 0 1 15 15Z" - fill="#3f3d56" - /> - <Path - d="M525.636 184.174h-184a9.01 9.01 0 0 1-9-9v-44a9.01 9.01 0 0 1 9-9h184a9.01 9.01 0 0 1 9 9v44a9.01 9.01 0 0 1-9 9Z" - fill="#7eb55a" - /> - <Circle cx={433.636} cy={105.174} r={20} fill="#7eb55a" /> - <Circle cx={433.636} cy={105.174} r={12.182} fill="#fff" /> - </Svg> -); +export function NoData() { + return ( + <Svg width={200} height={200} viewBox="0 0 647.636 632.174"> + <Path + d="M411.146 142.174h-174.51a15.018 15.018 0 0 0-15 15v387.85l-2 .61-42.81 13.11a8.007 8.007 0 0 1-9.99-5.31l-127.34-415.95a8.003 8.003 0 0 1 5.31-9.99l65.97-20.2 191.25-58.54 65.97-20.2a7.99 7.99 0 0 1 9.99 5.3l32.55 106.32Z" + fill="#f2f2f2" + /> + <Path + d="m449.226 140.174-39.23-128.14a16.994 16.994 0 0 0-21.23-11.28l-92.75 28.39-191.24 58.55-92.75 28.4a17.015 17.015 0 0 0-11.28 21.23l134.08 437.93a17.027 17.027 0 0 0 16.26 12.03 16.79 16.79 0 0 0 4.97-.75l63.58-19.46 2-.62v-2.09l-2 .61-64.17 19.65a15.015 15.015 0 0 1-18.73-9.95L2.666 136.734a14.98 14.98 0 0 1 9.95-18.73l92.75-28.4 191.24-58.54 92.75-28.4a15.156 15.156 0 0 1 4.41-.66 15.015 15.015 0 0 1 14.32 10.61l39.05 127.56.62 2h2.08Z" + fill="#3f3d56" + /> + <Path + d="M122.68 127.82a9.016 9.016 0 0 1-8.61-6.366l-12.88-42.072a8.999 8.999 0 0 1 5.97-11.24L283.1 14.278a9.009 9.009 0 0 1 11.24 5.971l12.88 42.072a9.01 9.01 0 0 1-5.97 11.241l-175.94 53.864a8.976 8.976 0 0 1-2.63.395Z" + fill="#7eb55a" + /> + <Circle cx={190.154} cy={24.955} r={20} fill="#7eb55a" /> + <Circle cx={190.154} cy={24.955} r={12.665} fill="#fff" /> + <Path + d="M602.636 582.174h-338a8.51 8.51 0 0 1-8.5-8.5v-405a8.51 8.51 0 0 1 8.5-8.5h338a8.51 8.51 0 0 1 8.5 8.5v405a8.51 8.51 0 0 1-8.5 8.5Z" + fill="#e6e6e6" + /> + <Path + d="M447.136 140.174h-210.5a17.024 17.024 0 0 0-17 17v407.8l2-.61v-407.19a15.018 15.018 0 0 1 15-15h211.12Zm183.5 0h-394a17.024 17.024 0 0 0-17 17v458a17.024 17.024 0 0 0 17 17h394a17.024 17.024 0 0 0 17-17v-458a17.024 17.024 0 0 0-17-17Zm15 475a15.018 15.018 0 0 1-15 15h-394a15.018 15.018 0 0 1-15-15v-458a15.018 15.018 0 0 1 15-15h394a15.018 15.018 0 0 1 15 15Z" + fill="#3f3d56" + /> + <Path + d="M525.636 184.174h-184a9.01 9.01 0 0 1-9-9v-44a9.01 9.01 0 0 1 9-9h184a9.01 9.01 0 0 1 9 9v44a9.01 9.01 0 0 1-9 9Z" + fill="#7eb55a" + /> + <Circle cx={433.636} cy={105.174} r={20} fill="#7eb55a" /> + <Circle cx={433.636} cy={105.174} r={12.182} fill="#fff" /> + </Svg> + ); +} diff --git a/src/components/ui/modal-keyboard-aware-scroll-view.tsx b/src/components/ui/modal-keyboard-aware-scroll-view.tsx index 3438249fd..cd540562a 100644 --- a/src/components/ui/modal-keyboard-aware-scroll-view.tsx +++ b/src/components/ui/modal-keyboard-aware-scroll-view.tsx @@ -1,3 +1,6 @@ +import type { BottomSheetScrollViewMethods } from '@gorhom/bottom-sheet'; +import type { BottomSheetScrollViewProps } from '@gorhom/bottom-sheet/src/components/bottomSheetScrollable/types'; +import type { KeyboardAwareScrollViewProps } from 'react-native-keyboard-controller'; // source https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/components/keyboard-aware-scroll-view /** * This component is used to handle the keyboard in a modal. @@ -14,19 +17,17 @@ } */ import { - type BottomSheetScrollViewMethods, + createBottomSheetScrollableComponent, SCROLLABLE_TYPE, } from '@gorhom/bottom-sheet'; -import { type BottomSheetScrollViewProps } from '@gorhom/bottom-sheet/src/components/bottomSheetScrollable/types'; import { memo } from 'react'; -import { type KeyboardAwareScrollViewProps } from 'react-native-keyboard-controller'; import { KeyboardAwareScrollView } from 'react-native-keyboard-controller'; import Reanimated from 'react-native-reanimated'; -const AnimatedScrollView = - Reanimated.createAnimatedComponent<KeyboardAwareScrollViewProps>( - KeyboardAwareScrollView +const AnimatedScrollView + = Reanimated.createAnimatedComponent<KeyboardAwareScrollViewProps>( + KeyboardAwareScrollView, ); const BottomSheetScrollViewComponent = createBottomSheetScrollableComponent< BottomSheetScrollViewMethods, @@ -34,9 +35,9 @@ const BottomSheetScrollViewComponent = createBottomSheetScrollableComponent< >(SCROLLABLE_TYPE.SCROLLVIEW, AnimatedScrollView); const BottomSheetKeyboardAwareScrollView = memo(BottomSheetScrollViewComponent); -BottomSheetKeyboardAwareScrollView.displayName = - 'BottomSheetKeyboardAwareScrollView'; +BottomSheetKeyboardAwareScrollView.displayName + = 'BottomSheetKeyboardAwareScrollView'; export default BottomSheetKeyboardAwareScrollView as ( - props: BottomSheetScrollViewProps & KeyboardAwareScrollViewProps + props: BottomSheetScrollViewProps & KeyboardAwareScrollViewProps, ) => ReturnType<typeof BottomSheetKeyboardAwareScrollView>; diff --git a/src/components/ui/modal.tsx b/src/components/ui/modal.tsx index ac8e0325d..42da5c7b7 100644 --- a/src/components/ui/modal.tsx +++ b/src/components/ui/modal.tsx @@ -51,7 +51,7 @@ type ModalHeaderProps = { dismiss: () => void; }; -export const useModal = () => { +export function useModal() { const ref = React.useRef<BottomSheetModal>(null); const present = React.useCallback((data?: any) => { ref.current?.present(data); @@ -60,54 +60,44 @@ export const useModal = () => { ref.current?.dismiss(); }, []); return { ref, present, dismiss }; -}; +} -export const Modal = React.forwardRef( - ( - { - snapPoints: _snapPoints = ['60%'], - title, - detached = false, - ...props - }: ModalProps, - ref: ModalRef - ) => { - const detachedProps = React.useMemo( - () => getDetachedProps(detached), - [detached] - ); - const modal = useModal(); - const snapPoints = React.useMemo(() => _snapPoints, [_snapPoints]); - - React.useImperativeHandle( - ref, - () => (modal.ref.current as BottomSheetModal) || null - ); - - const renderHandleComponent = React.useCallback( - () => ( - <> - <View className="mb-8 mt-2 h-1 w-12 self-center rounded-lg bg-gray-400 dark:bg-gray-700" /> - <ModalHeader title={title} dismiss={modal.dismiss} /> - </> - ), - [title, modal.dismiss] - ); - - return ( - <BottomSheetModal - {...props} - {...detachedProps} - ref={modal.ref} - index={0} - snapPoints={snapPoints} - backdropComponent={props.backdropComponent || renderBackdrop} - enableDynamicSizing={false} - handleComponent={renderHandleComponent} - /> - ); - } -); +export function Modal({ ref, snapPoints: _snapPoints = ['60%'] as (string | number)[], title, detached = false, ...props }: ModalProps & { ref?: ModalRef }) { + const detachedProps = React.useMemo( + () => getDetachedProps(detached), + [detached], + ); + const modal = useModal(); + const snapPoints = React.useMemo(() => _snapPoints, [_snapPoints]); + + React.useImperativeHandle( + ref, + () => (modal.ref.current as BottomSheetModal) || null, + ); + + const renderHandleComponent = React.useCallback( + () => ( + <> + <View className="mb-8 mt-2 h-1 w-12 self-center rounded-lg bg-gray-400 dark:bg-gray-700" /> + <ModalHeader title={title} dismiss={modal.dismiss} /> + </> + ), + [title, modal.dismiss], + ); + + return ( + <BottomSheetModal + {...props} + {...detachedProps} + ref={modal.ref} + index={0} + snapPoints={snapPoints} + backdropComponent={props.backdropComponent || renderBackdrop} + enableDynamicSizing={false} + handleComponent={renderHandleComponent} + /> + ); +} /** * Custom Backdrop @@ -115,7 +105,7 @@ export const Modal = React.forwardRef( const AnimatedPressable = Animated.createAnimatedComponent(Pressable); -const CustomBackdrop = ({ style }: BottomSheetBackdropProps) => { +function CustomBackdrop({ style }: BottomSheetBackdropProps) { const { close } = useBottomSheet(); return ( <AnimatedPressable @@ -125,11 +115,11 @@ const CustomBackdrop = ({ style }: BottomSheetBackdropProps) => { style={[style, { backgroundColor: 'rgba(0, 0, 0, 0.4)' }]} /> ); -}; +} -export const renderBackdrop = (props: BottomSheetBackdropProps) => ( - <CustomBackdrop {...props} /> -); +export function renderBackdrop(props: BottomSheetBackdropProps) { + return <CustomBackdrop {...props} />; +} /** * @@ -140,7 +130,7 @@ export const renderBackdrop = (props: BottomSheetBackdropProps) => ( * In case the modal is detached, we need to add some extra props to the modal to make it look like a detached modal. */ -const getDetachedProps = (detached: boolean) => { +function getDetachedProps(detached: boolean) { if (detached) { return { detached: true, @@ -149,7 +139,7 @@ const getDetachedProps = (detached: boolean) => { } as Partial<BottomSheetModalProps>; } return {} as Partial<BottomSheetModalProps>; -}; +} /** * ModalHeader @@ -173,7 +163,7 @@ const ModalHeader = React.memo(({ title, dismiss }: ModalHeaderProps) => { ); }); -const CloseButton = ({ close }: { close: () => void }) => { +function CloseButton({ close }: { close: () => void }) { return ( <Pressable onPress={close} @@ -194,4 +184,4 @@ const CloseButton = ({ close }: { close: () => void }) => { </Svg> </Pressable> ); -}; +} diff --git a/src/components/ui/progress-bar.tsx b/src/components/ui/progress-bar.tsx index ba96fbdd9..523b203b5 100644 --- a/src/components/ui/progress-bar.tsx +++ b/src/components/ui/progress-bar.tsx @@ -1,4 +1,5 @@ -import React, { forwardRef, useImperativeHandle } from 'react'; +import * as React from 'react'; +import { useImperativeHandle } from 'react'; import { View } from 'react-native'; import Animated, { Easing, @@ -17,31 +18,29 @@ export type ProgressBarRef = { setProgress: (value: number) => void; }; -export const ProgressBar = forwardRef<ProgressBarRef, Props>( - ({ initialProgress = 0, className = '' }, ref) => { - const progress = useSharedValue<number>(initialProgress ?? 0); - useImperativeHandle(ref, () => { - return { - setProgress: (value: number) => { - progress.value = withTiming(value, { - duration: 250, - easing: Easing.inOut(Easing.quad), - }); - }, - }; - }, [progress]); +export function ProgressBar({ ref, initialProgress = 0, className = '' }: Props & { ref?: React.RefObject<ProgressBarRef | null> }) { + const progress = useSharedValue<number>(initialProgress ?? 0); + useImperativeHandle(ref, () => { + return { + setProgress: (value: number) => { + progress.value = withTiming(value, { + duration: 250, + easing: Easing.inOut(Easing.quad), + }); + }, + }; + }, [progress]); - const style = useAnimatedStyle(() => { - return { - width: `${progress.value}%`, - backgroundColor: '#000', - height: 2, - }; - }); - return ( - <View className={twMerge(` bg-[#EAEAEA]`, className)}> - <Animated.View style={style} /> - </View> - ); - } -); + const style = useAnimatedStyle(() => { + return { + width: `${progress.value}%`, + backgroundColor: '#000', + height: 2, + }; + }); + return ( + <View className={twMerge(` bg-[#EAEAEA]`, className)}> + <Animated.View style={style} /> + </View> + ); +} diff --git a/src/components/ui/select.test.tsx b/src/components/ui/select.test.tsx index 8f708e25d..8b154a1a1 100644 --- a/src/components/ui/select.test.tsx +++ b/src/components/ui/select.test.tsx @@ -1,15 +1,15 @@ /* eslint-disable max-lines-per-function */ -import React from 'react'; - import type { OptionType } from '@/components/ui'; + +import * as React from 'react'; import { cleanup, render, screen, setup } from '@/lib/test-utils'; import { Select } from './select'; afterEach(cleanup); -describe('Select component ', () => { +describe('select component ', () => { const options: OptionType[] = [ { value: 'chocolate', label: 'Chocolate' }, { value: 'strawberry', label: 'Strawberry' }, @@ -23,7 +23,7 @@ describe('Select component ', () => { options={options} onSelect={onSelect} testID="select" - /> + />, ); expect(screen.getByTestId('select-trigger')).toBeOnTheScreen(); expect(screen.getByTestId('select-label')).toBeOnTheScreen(); @@ -37,7 +37,7 @@ describe('Select component ', () => { options={options} onSelect={onSelect} testID="select" - /> + />, ); expect(screen.getByTestId('select-trigger')).toBeOnTheScreen(); expect(screen.getByTestId('select-label')).toBeOnTheScreen(); @@ -53,12 +53,12 @@ describe('Select component ', () => { onSelect={onSelect} testID="select" error="Please select an option" - /> + />, ); expect(screen.getByTestId('select-trigger')).toBeOnTheScreen(); expect(screen.getByTestId('select-error')).toBeOnTheScreen(); expect(screen.getByTestId('select-error')).toHaveTextContent( - 'Please select an option' + 'Please select an option', ); }); @@ -69,7 +69,7 @@ describe('Select component ', () => { options={options} testID="select" placeholder="Select an option" - /> + />, ); const selectTrigger = screen.getByTestId('select-trigger'); @@ -84,7 +84,7 @@ describe('Select component ', () => { const onSelect = jest.fn(); const { user } = setup( - <Select options={options} onSelect={onSelect} testID="select" /> + <Select options={options} onSelect={onSelect} testID="select" />, ); const selectTrigger = screen.getByTestId('select-trigger'); diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx index 2d82b166a..853259564 100644 --- a/src/components/ui/select.tsx +++ b/src/components/ui/select.tsx @@ -1,25 +1,25 @@ /* eslint-disable max-lines-per-function */ +import type { BottomSheetModal } from '@gorhom/bottom-sheet'; +import type { FieldValues } from 'react-hook-form'; +import type { PressableProps } from 'react-native'; +import type { SvgProps } from 'react-native-svg'; +import type { InputControllerType } from './input'; import { BottomSheetFlatList, - type BottomSheetModal, + } from '@gorhom/bottom-sheet'; import { FlashList } from '@shopify/flash-list'; import { useColorScheme } from 'nativewind'; import * as React from 'react'; -import type { FieldValues } from 'react-hook-form'; import { useController } from 'react-hook-form'; -import { Platform, View } from 'react-native'; -import { Pressable, type PressableProps } from 'react-native'; -import type { SvgProps } from 'react-native-svg'; +import { Platform, Pressable, View } from 'react-native'; import Svg, { Path } from 'react-native-svg'; -import { tv } from 'tailwind-variants'; +import { tv } from 'tailwind-variants'; import colors from '@/components/ui/colors'; -import { CaretDown } from '@/components/ui/icons'; -import type { InputControllerType } from './input'; -import { useModal } from './modal'; -import { Modal } from './modal'; +import { CaretDown } from '@/components/ui/icons'; +import { Modal, useModal } from './modal'; import { Text } from './text'; const selectTv = tv({ @@ -71,46 +71,44 @@ function keyExtractor(item: OptionType) { return `select-item-${item.value}`; } -export const Options = React.forwardRef<BottomSheetModal, OptionsProps>( - ({ options, onSelect, value, testID }, ref) => { - const height = options.length * 70 + 100; - const snapPoints = React.useMemo(() => [height], [height]); - const { colorScheme } = useColorScheme(); - const isDark = colorScheme === 'dark'; +export function Options({ ref, options, onSelect, value, testID }: OptionsProps & { ref?: React.RefObject<BottomSheetModal | null> }) { + const height = options.length * 70 + 100; + const snapPoints = React.useMemo(() => [height], [height]); + const { colorScheme } = useColorScheme(); + const isDark = colorScheme === 'dark'; - const renderSelectItem = React.useCallback( - ({ item }: { item: OptionType }) => ( - <Option - key={`select-item-${item.value}`} - label={item.label} - selected={value === item.value} - onPress={() => onSelect(item)} - testID={testID ? `${testID}-item-${item.value}` : undefined} - /> - ), - [onSelect, value, testID] - ); + const renderSelectItem = React.useCallback( + ({ item }: { item: OptionType }) => ( + <Option + key={`select-item-${item.value}`} + label={item.label} + selected={value === item.value} + onPress={() => onSelect(item)} + testID={testID ? `${testID}-item-${item.value}` : undefined} + /> + ), + [onSelect, value, testID], + ); - return ( - <Modal - ref={ref} - index={0} - snapPoints={snapPoints} - backgroundStyle={{ - backgroundColor: isDark ? colors.neutral[800] : colors.white, - }} - > - <List - data={options} - keyExtractor={keyExtractor} - renderItem={renderSelectItem} - testID={testID ? `${testID}-modal` : undefined} - estimatedItemSize={52} - /> - </Modal> - ); - } -); + return ( + <Modal + ref={ref} + index={0} + snapPoints={snapPoints} + backgroundStyle={{ + backgroundColor: isDark ? colors.neutral[800] : colors.white, + }} + > + <List + data={options} + keyExtractor={keyExtractor} + renderItem={renderSelectItem} + testID={testID ? `${testID}-modal` : undefined} + estimatedItemSize={52} + /> + </Modal> + ); +} const Option = React.memo( ({ @@ -130,10 +128,10 @@ const Option = React.memo( {selected && <Check />} </Pressable> ); - } + }, ); -export interface SelectProps { +export type SelectProps = { value?: string | number; label?: string; disabled?: boolean; @@ -142,12 +140,10 @@ export interface SelectProps { onSelect?: (value: string | number) => void; placeholder?: string; testID?: string; -} -interface ControlledSelectProps<T extends FieldValues> - extends SelectProps, - InputControllerType<T> {} +}; +type ControlledSelectProps<T extends FieldValues> = {} & SelectProps & InputControllerType<T>; -export const Select = (props: SelectProps) => { +export function Select(props: SelectProps) { const { label, value, @@ -165,7 +161,7 @@ export const Select = (props: SelectProps) => { onSelect?.(option.value); modal.dismiss(); }, - [modal, onSelect] + [modal, onSelect], ); const styles = React.useMemo( @@ -174,15 +170,15 @@ export const Select = (props: SelectProps) => { error: Boolean(error), disabled, }), - [error, disabled] + [error, disabled], ); const textValue = React.useMemo( () => value !== undefined - ? (options?.filter((t) => t.value === value)?.[0]?.label ?? placeholder) + ? (options?.filter(t => t.value === value)?.[0]?.label ?? placeholder) : placeholder, - [value, options, placeholder] + [value, options, placeholder], ); return ( @@ -224,11 +220,11 @@ export const Select = (props: SelectProps) => { /> </> ); -}; +} // only used with react-hook-form export function ControlledSelect<T extends FieldValues>( - props: ControlledSelectProps<T> + props: ControlledSelectProps<T>, ) { const { name, control, rules, onSelect: onNSelect, ...selectProps } = props; @@ -238,7 +234,7 @@ export function ControlledSelect<T extends FieldValues>( field.onChange(value); onNSelect?.(value); }, - [field, onNSelect] + [field, onNSelect], ); return ( <Select @@ -250,20 +246,22 @@ export function ControlledSelect<T extends FieldValues>( ); } -const Check = ({ ...props }: SvgProps) => ( - <Svg - width={25} - height={24} - fill="none" - viewBox="0 0 25 24" - {...props} - className="stroke-black dark:stroke-white" - > - <Path - d="m20.256 6.75-10.5 10.5L4.506 12" - strokeWidth={2.438} - strokeLinecap="round" - strokeLinejoin="round" - /> - </Svg> -); +function Check({ ...props }: SvgProps) { + return ( + <Svg + width={25} + height={24} + fill="none" + viewBox="0 0 25 24" + {...props} + className="stroke-black dark:stroke-white" + > + <Path + d="m20.256 6.75-10.5 10.5L4.506 12" + strokeWidth={2.438} + strokeLinecap="round" + strokeLinejoin="round" + /> + </Svg> + ); +} diff --git a/src/components/ui/text.tsx b/src/components/ui/text.tsx index 39df344ba..6ea114a08 100644 --- a/src/components/ui/text.tsx +++ b/src/components/ui/text.tsx @@ -1,30 +1,30 @@ -import React from 'react'; import type { TextProps, TextStyle } from 'react-native'; -import { I18nManager, StyleSheet, Text as NNText } from 'react-native'; -import { twMerge } from 'tailwind-merge'; - import type { TxKeyPath } from '@/lib/i18n'; +import * as React from 'react'; +import { I18nManager, Text as NNText, StyleSheet } from 'react-native'; + +import { twMerge } from 'tailwind-merge'; import { translate } from '@/lib/i18n'; -interface Props extends TextProps { +type Props = { className?: string; tx?: TxKeyPath; -} +} & TextProps; -export const Text = ({ +export function Text({ className = '', style, tx, children, ...props -}: Props) => { +}: Props) { const textStyle = React.useMemo( () => twMerge( 'text-base text-black dark:text-white font-inter font-normal', - className + className, ), - [className] + [className], ); const nStyle = React.useMemo( @@ -35,11 +35,11 @@ export const Text = ({ }, style, ]) as TextStyle, - [style] + [style], ); return ( <NNText className={textStyle} style={nStyle} {...props}> {tx ? translate(tx) : children} </NNText> ); -}; +} diff --git a/src/components/ui/utils.tsx b/src/components/ui/utils.tsx index c57d9a6ec..e42dd7f4e 100644 --- a/src/components/ui/utils.tsx +++ b/src/components/ui/utils.tsx @@ -9,7 +9,7 @@ export const WIDTH = width; export const HEIGHT = height; // for onError react queries and mutations -export const showError = (error: AxiosError) => { +export function showError(error: AxiosError) { console.log(JSON.stringify(error?.response?.data)); const description = extractError(error?.response?.data).trimEnd(); @@ -20,17 +20,17 @@ export const showError = (error: AxiosError) => { duration: 4000, icon: 'danger', }); -}; +} -export const showErrorMessage = (message: string = 'Something went wrong ') => { +export function showErrorMessage(message: string = 'Something went wrong ') { showMessage({ message, type: 'danger', duration: 4000, }); -}; +} -export const extractError = (data: unknown): string => { +export function extractError(data: unknown): string { if (typeof data === 'string') { return data; } @@ -52,4 +52,4 @@ export const extractError = (data: unknown): string => { return `${messages.join('')} `; } return 'Something went wrong '; -}; +} diff --git a/src/lib/auth/index.tsx b/src/lib/auth/index.tsx index 26992a8e4..34a7f7fef 100644 --- a/src/lib/auth/index.tsx +++ b/src/lib/auth/index.tsx @@ -1,16 +1,16 @@ -import { create } from 'zustand'; +import type { TokenType } from './utils'; +import { create } from 'zustand'; import { createSelectors } from '../utils'; -import type { TokenType } from './utils'; import { getToken, removeToken, setToken } from './utils'; -interface AuthState { +type AuthState = { token: TokenType | null; status: 'idle' | 'signOut' | 'signIn'; signIn: (data: TokenType) => void; signOut: () => void; hydrate: () => void; -} +}; const _useAuth = create<AuthState>((set, get) => ({ status: 'idle', @@ -28,10 +28,12 @@ const _useAuth = create<AuthState>((set, get) => ({ const userToken = getToken(); if (userToken !== null) { get().signIn(userToken); - } else { + } + else { get().signOut(); } - } catch (e) { + } + catch (e) { // only to remove eslint error, handle the error properly console.error(e); // catch error here diff --git a/src/lib/env.js b/src/lib/env.js index 2c3559bc5..80096e4ad 100644 --- a/src/lib/env.js +++ b/src/lib/env.js @@ -9,5 +9,5 @@ import Constants from 'expo-constants'; /** * @type {typeof import('../../env.js').ClientEnv} */ -//@ts-ignore // Don't worry about TypeScript here; we know we're passing the correct environment variables to `extra` in `app.config.ts`. +// @ts-ignore // Don't worry about TypeScript here; we know we're passing the correct environment variables to `extra` in `app.config.ts`. export const Env = Constants.expoConfig?.extra ?? {}; diff --git a/src/lib/hooks/use-is-first-time.tsx b/src/lib/hooks/use-is-first-time.tsx index 39d2a5945..395b02cd2 100644 --- a/src/lib/hooks/use-is-first-time.tsx +++ b/src/lib/hooks/use-is-first-time.tsx @@ -4,10 +4,10 @@ import { storage } from '../storage'; const IS_FIRST_TIME = 'IS_FIRST_TIME'; -export const useIsFirstTime = () => { +export function useIsFirstTime() { const [isFirstTime, setIsFirstTime] = useMMKVBoolean(IS_FIRST_TIME, storage); if (isFirstTime === undefined) { return [true, setIsFirstTime] as const; } return [isFirstTime, setIsFirstTime] as const; -}; +} diff --git a/src/lib/hooks/use-selected-theme.tsx b/src/lib/hooks/use-selected-theme.tsx index a678e3781..5bb0b8fa4 100644 --- a/src/lib/hooks/use-selected-theme.tsx +++ b/src/lib/hooks/use-selected-theme.tsx @@ -1,5 +1,5 @@ import { colorScheme, useColorScheme } from 'nativewind'; -import React from 'react'; +import * as React from 'react'; import { useMMKVString } from 'react-native-mmkv'; import { storage } from '../storage'; @@ -13,7 +13,7 @@ export type ColorSchemeType = 'light' | 'dark' | 'system'; * don't use this hooks if you want to use it to style your component based on the theme use useColorScheme from nativewind instead * */ -export const useSelectedTheme = () => { +export function useSelectedTheme() { const { colorScheme: _color, setColorScheme } = useColorScheme(); const [theme, _setTheme] = useMMKVString(SELECTED_THEME, storage); @@ -22,17 +22,17 @@ export const useSelectedTheme = () => { setColorScheme(t); _setTheme(t); }, - [setColorScheme, _setTheme] + [setColorScheme, _setTheme], ); const selectedTheme = (theme ?? 'system') as ColorSchemeType; return { selectedTheme, setSelectedTheme } as const; -}; +} // to be used in the root file to load the selected theme from MMKV -export const loadSelectedTheme = () => { +export function loadSelectedTheme() { const theme = storage.getString(SELECTED_THEME); if (theme !== undefined) { console.log('theme', theme); colorScheme.set(theme as ColorSchemeType); } -}; +} diff --git a/src/lib/i18n/index.tsx b/src/lib/i18n/index.tsx index f43b0a3a7..c4a3ff35c 100644 --- a/src/lib/i18n/index.tsx +++ b/src/lib/i18n/index.tsx @@ -5,6 +5,7 @@ import { I18nManager } from 'react-native'; import { resources } from './resources'; import { getLanguage } from './utils'; + export * from './utils'; i18n.use(initReactI18next).init({ diff --git a/src/lib/i18n/react-i18next.d.ts b/src/lib/i18n/react-i18next.d.ts index e7ed22e49..3b67a4b23 100644 --- a/src/lib/i18n/react-i18next.d.ts +++ b/src/lib/i18n/react-i18next.d.ts @@ -3,7 +3,7 @@ import type { resources } from './resources'; // react-i18next versions higher than 11.11.0 declare module 'react-i18next' { - interface CustomTypeOptions { + type CustomTypeOptions = { resources: (typeof resources)['en']; - } + }; } diff --git a/src/lib/i18n/utils.tsx b/src/lib/i18n/utils.tsx index ac6997206..50b5d810f 100644 --- a/src/lib/i18n/utils.tsx +++ b/src/lib/i18n/utils.tsx @@ -1,14 +1,14 @@ import type TranslateOptions from 'i18next'; +import type { Language, resources } from './resources'; +import type { RecursiveKeyOf } from './types'; import i18n from 'i18next'; import memoize from 'lodash.memoize'; import { useCallback } from 'react'; import { I18nManager, NativeModules, Platform } from 'react-native'; + import { useMMKVString } from 'react-native-mmkv'; import RNRestart from 'react-native-restart'; - import { storage } from '../storage'; -import type { Language, resources } from './resources'; -import type { RecursiveKeyOf } from './types'; type DefaultLocale = typeof resources.en.translation; export type TxKeyPath = RecursiveKeyOf<DefaultLocale>; @@ -21,34 +21,38 @@ export const translate = memoize( (key: TxKeyPath, options = undefined) => i18n.t(key, options) as unknown as string, (key: TxKeyPath, options: typeof TranslateOptions) => - options ? key + JSON.stringify(options) : key + options ? key + JSON.stringify(options) : key, ); -export const changeLanguage = (lang: Language) => { +export function changeLanguage(lang: Language) { i18n.changeLanguage(lang); if (lang === 'ar') { I18nManager.forceRTL(true); - } else { + } + else { I18nManager.forceRTL(false); } if (Platform.OS === 'ios' || Platform.OS === 'android') { - if (__DEV__) NativeModules.DevSettings.reload(); + if (__DEV__) + NativeModules.DevSettings.reload(); else RNRestart.restart(); - } else if (Platform.OS === 'web') { + } + else if (Platform.OS === 'web') { window.location.reload(); } -}; +} -export const useSelectedLanguage = () => { +export function useSelectedLanguage() { const [language, setLang] = useMMKVString(LOCAL); const setLanguage = useCallback( (lang: Language) => { setLang(lang); - if (lang !== undefined) changeLanguage(lang as Language); + if (lang !== undefined) + changeLanguage(lang as Language); }, - [setLang] + [setLang], ); return { language: language as Language, setLanguage }; -}; +} diff --git a/src/lib/test-utils.tsx b/src/lib/test-utils.tsx index 0a4681aed..b7c01b7ef 100644 --- a/src/lib/test-utils.tsx +++ b/src/lib/test-utils.tsx @@ -1,39 +1,33 @@ -import '@shopify/flash-list/jestSetup'; +import type { RenderOptions } from '@testing-library/react-native'; +import type { ReactElement } from 'react'; import { BottomSheetModalProvider } from '@gorhom/bottom-sheet'; import { NavigationContainer } from '@react-navigation/native'; -import type { RenderOptions } from '@testing-library/react-native'; import { render, userEvent } from '@testing-library/react-native'; -import type { ReactElement } from 'react'; -import React from 'react'; +import * as React from 'react'; +import '@shopify/flash-list/jestSetup'; -const createAppWrapper = () => { +function createAppWrapper() { return ({ children }: { children: React.ReactNode }) => ( <BottomSheetModalProvider> <NavigationContainer>{children}</NavigationContainer> </BottomSheetModalProvider> ); -}; +} -const customRender = ( - ui: ReactElement, - options?: Omit<RenderOptions, 'wrapper'> -) => { +function customRender(ui: ReactElement, options?: Omit<RenderOptions, 'wrapper'>) { const Wrapper = createAppWrapper(); // make sure we have a new wrapper for each render return render(ui, { wrapper: Wrapper, ...options }); -}; +} // use this if you want to test user events -export const setup = ( - ui: ReactElement, - options?: Omit<RenderOptions, 'wrapper'> -) => { +export function setup(ui: ReactElement, options?: Omit<RenderOptions, 'wrapper'>) { const Wrapper = createAppWrapper(); return { user: userEvent.setup(), ...render(ui, { wrapper: Wrapper, ...options }), }; -}; +} export * from '@testing-library/react-native'; export { customRender as render }; diff --git a/src/lib/use-theme-config.tsx b/src/lib/use-theme-config.tsx index ccebf9fae..3d3294e27 100644 --- a/src/lib/use-theme-config.tsx +++ b/src/lib/use-theme-config.tsx @@ -31,7 +31,8 @@ const LightTheme: Theme = { export function useThemeConfig() { const { colorScheme } = useColorScheme(); - if (colorScheme === 'dark') return DarkTheme; + if (colorScheme === 'dark') + return DarkTheme; return LightTheme; } diff --git a/src/lib/utils.ts b/src/lib/utils.ts index ac8816483..09c7d5a16 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,22 +1,20 @@ -import { Linking } from 'react-native'; import type { StoreApi, UseBoundStore } from 'zustand'; +import { Linking } from 'react-native'; export function openLinkInBrowser(url: string) { - Linking.canOpenURL(url).then((canOpen) => canOpen && Linking.openURL(url)); + Linking.canOpenURL(url).then(canOpen => canOpen && Linking.openURL(url)); } type WithSelectors<S> = S extends { getState: () => infer T } ? S & { use: { [K in keyof T]: () => T[K] } } : never; -export const createSelectors = <S extends UseBoundStore<StoreApi<object>>>( - _store: S -) => { - let store = _store as WithSelectors<typeof _store>; +export function createSelectors<S extends UseBoundStore<StoreApi<object>>>(_store: S) { + const store = _store as WithSelectors<typeof _store>; store.use = {}; - for (let k of Object.keys(store.getState())) { - (store.use as any)[k] = () => store((s) => s[k as keyof typeof s]); + for (const k of Object.keys(store.getState())) { + (store.use as any)[k] = () => store(s => s[k as keyof typeof s]); } return store; -}; +} diff --git a/tsconfig.json b/tsconfig.json index 16482ba60..bba5514e2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,22 @@ { "extends": "expo/tsconfig.base", "compilerOptions": { - "strict": true, "baseUrl": ".", "paths": { "@/*": ["./src/*"], "@env": ["./src/lib/env.js"] }, - "esModuleInterop": true, - "checkJs": true + "checkJs": true, + "strict": true, + "esModuleInterop": true }, + "include": [ + "**/*.ts", + "**/*.tsx", + ".expo/types/**/*.ts", + "expo-env.d.ts", + "nativewind-env.d.ts" + ], "exclude": [ "node_modules", "babel.config.js", @@ -19,12 +26,5 @@ "android", "ios", "lint-staged.config.js" - ], - "include": [ - "**/*.ts", - "**/*.tsx", - ".expo/types/**/*.ts", - "expo-env.d.ts", - "nativewind-env.d.ts" ] } From 9cb169583a20baf597e95609f65f05c03238512b Mon Sep 17 00:00:00 2001 From: Youssouf EL Azizi <youssoufelazizi@gmail.com> Date: Wed, 21 Jan 2026 17:11:25 +0100 Subject: [PATCH 2/3] fix: update ESLint configuration and improve type error handling in Jest setup refactor: clean up imports and reformat component props in Card and Colors components --- eslint.config.mjs | 3 ++- jest-setup.ts | 7 +++++-- src/components/card.tsx | 6 +++--- src/components/colors.tsx | 1 - 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index ce6858714..75a8caff6 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -39,6 +39,7 @@ export default antfu( 'docs/', 'cli/', 'expo-env.d.ts', + 'migration/*', ], }, @@ -51,7 +52,7 @@ export default antfu( 'react/no-inline-styles': 'off', 'react/destructuring-assignment': 'off', 'react/require-default-props': 'off', - 'react-refresh/only-export-components': 'off', // Too strict for React Native + 'react-refresh/only-export-components': 'warn', // Too strict for React Native 'unicorn/filename-case': [ 'error', { diff --git a/jest-setup.ts b/jest-setup.ts index 41b387169..68e5eedcd 100644 --- a/jest-setup.ts +++ b/jest-setup.ts @@ -1,7 +1,10 @@ +/* eslint-disable ts/ban-ts-comment */ +/* eslint-disable no-restricted-globals */ import '@testing-library/react-native/extend-expect'; // react-hook form setup for testing -// @ts-ignore +// @ts-expect-error global.window = {}; -// @ts-ignore + +// @ts-expect-error global.window = global; diff --git a/src/components/card.tsx b/src/components/card.tsx index 2f5990e16..8af09f424 100644 --- a/src/components/card.tsx +++ b/src/components/card.tsx @@ -1,11 +1,9 @@ import type { Post } from '@/api'; -import { Link } from 'expo-router'; +import { Link } from 'expo-router'; import * as React from 'react'; import { Image, Pressable, Text, View } from '@/components/ui'; -type Props = Post; - const images = [ 'https://images.unsplash.com/photo-1489749798305-4fea3ae63d43?auto=format&fit=crop&w=800&q=80', 'https://images.unsplash.com/photo-1564507004663-b6dfb3c824d5?auto=format&fit=crop&w=800&q=80', @@ -14,6 +12,8 @@ const images = [ 'https://images.unsplash.com/photo-1587974928442-77dc3e0dba72?auto=format&fit=crop&w=800&q=80', ]; +type Props = Post; + export function Card({ title, body, id }: Props) { return ( <Link href={`/feed/${id}`} asChild> diff --git a/src/components/colors.tsx b/src/components/colors.tsx index 856645fb4..23d3ce5ae 100644 --- a/src/components/colors.tsx +++ b/src/components/colors.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; - import { Text, View } from '@/components/ui'; import colors from '@/components/ui/colors'; From 829da2f8410d4d3bd5914152d317e341bfd46919 Mon Sep 17 00:00:00 2001 From: Youssouf EL Azizi <youssoufelazizi@gmail.com> Date: Wed, 21 Jan 2026 18:10:08 +0100 Subject: [PATCH 3/3] refactor: update storage implementation to use createMMKV and fix method names --- .gitignore | 2 + package.json | 138 +- pnpm-lock.yaml | 9973 ++++++++++++++++++--------------- src/app/(app)/index.tsx | 1 - src/components/login-form.tsx | 4 +- src/lib/i18n/index.tsx | 6 +- src/lib/storage.tsx | 6 +- 7 files changed, 5574 insertions(+), 4556 deletions(-) diff --git a/.gitignore b/.gitignore index 38b0a57ea..ea038ef91 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,8 @@ yarn-error.log /coverage # macOS .DS_Store +/ios +/android # @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb # The following patterns were generated by expo-cli diff --git a/package.json b/package.json index a8d4e3bbf..74a6a1ed6 100644 --- a/package.json +++ b/package.json @@ -47,90 +47,93 @@ "e2e-test": "maestro test .maestro/ -e APP_ID=com.obytes.development" }, "dependencies": { - "@expo/metro-runtime": "^5.0.4", - "@gorhom/bottom-sheet": "^5.0.5", - "@hookform/resolvers": "^3.9.0", - "@shopify/flash-list": "1.7.6", - "@tanstack/react-query": "^5.52.1", + "@expo/metro-runtime": "^6.1.2", + "@gorhom/bottom-sheet": "^5.2.8", + "@hookform/resolvers": "^5.2.2", + "@shopify/flash-list": "2.0.2", + "@tanstack/react-query": "^5.90.19", "app-icon-badge": "^0.1.2", - "axios": "^1.7.5", - "expo": "~53.0.12", - "expo-constants": "~17.1.6", - "expo-crypto": "^14.1.5", - "expo-dev-client": "~5.2.1", - "expo-font": "~13.3.1", - "expo-image": "~2.3.0", - "expo-linking": "~7.1.5", - "expo-localization": "~16.1.5", - "expo-router": "~5.1.0", - "expo-splash-screen": "~0.30.9", - "expo-status-bar": "~2.2.3", - "expo-system-ui": "~5.0.9", - "i18next": "^23.14.0", + "axios": "^1.13.2", + "expo": "~54.0.31", + "expo-constants": "~18.0.13", + "expo-crypto": "^15.0.8", + "expo-dev-client": "~6.0.20", + "expo-font": "~14.0.11", + "expo-image": "~3.0.11", + "expo-linking": "~8.0.11", + "expo-localization": "~17.0.8", + "expo-router": "~6.0.22", + "expo-splash-screen": "~31.0.13", + "expo-status-bar": "~3.0.9", + "expo-system-ui": "~6.0.9", + "i18next": "^25.8.0", "lodash.memoize": "^4.1.2", - "moti": "^0.29.0", - "nativewind": "^4.1.21", - "react": "19.0.0", - "react-dom": "19.0.0", - "react-error-boundary": "^4.0.13", - "react-hook-form": "^7.53.0", - "react-i18next": "^15.0.1", - "react-native": "0.79.4", - "react-native-edge-to-edge": "^1.6.0", + "moti": "^0.30.0", + "nativewind": "^4.2.1", + "react": "19.1.0", + "react-dom": "19.1.0", + "react-error-boundary": "^6.1.0", + "react-hook-form": "^7.71.1", + "react-i18next": "^16.5.3", + "react-native": "0.81.5", + "react-native-edge-to-edge": "^1.7.0", "react-native-flash-message": "^0.4.2", - "react-native-gesture-handler": "~2.24.0", - "react-native-keyboard-controller": "^1.17.4", - "react-native-mmkv": "~3.1.0", - "react-native-reanimated": "~3.17.5", + "react-native-gesture-handler": "~2.28.0", + "react-native-keyboard-controller": "^1.18.5", + "react-native-mmkv": "~4.1.1", + "react-native-nitro-modules": "^0.33.2", + "react-native-reanimated": "~4.1.6", "react-native-restart": "0.0.27", - "react-native-safe-area-context": "5.4.0", - "react-native-screens": "^4.11.1", - "react-native-svg": "~15.11.2", - "react-native-url-polyfill": "^2.0.0", - "react-native-web": "~0.20.0", - "react-query-kit": "^3.3.0", - "tailwind-variants": "^0.2.1", - "zod": "^3.23.8", - "zustand": "^5.0.5" + "react-native-safe-area-context": "5.6.2", + "react-native-screens": "^4.16.0", + "react-native-svg": "~15.12.1", + "react-native-url-polyfill": "^3.0.0", + "react-native-web": "~0.21.2", + "react-native-worklets": "^0.7.2", + "react-query-kit": "^3.3.2", + "tailwind-merge": "^3.4.0", + "tailwind-variants": "^3.2.2", + "zod": "^4.3.5", + "zustand": "^5.0.10" }, "devDependencies": { "@antfu/eslint-config": "^7.2.0", - "@babel/core": "^7.26.0", - "@commitlint/cli": "^19.2.2", - "@commitlint/config-conventional": "^19.2.2", - "@dev-plugins/react-query": "^0.0.7", + "@babel/core": "^7.28.6", + "@commitlint/cli": "^20.3.1", + "@commitlint/config-conventional": "^20.3.1", + "@dev-plugins/react-query": "^0.4.0", "@eslint-react/eslint-plugin": "^2.7.2", - "@expo/config": "~11.0.10", - "@testing-library/jest-dom": "^6.5.0", - "@testing-library/react-native": "^12.7.2", - "@types/i18n-js": "^3.8.9", + "@expo/config": "~12.0.13", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react-native": "^13.3.3", + "@types/i18n-js": "^4.0.1", "@types/invariant": "^2.2.37", - "@types/jest": "^29.5.12", + "@types/jest": "^29.5.14", "@types/lodash.memoize": "^4.1.9", - "@types/react": "~19.0.14", + "@types/react": "~19.1.17", "babel-plugin-module-resolver": "^5.0.2", - "cross-env": "^7.0.3", - "dotenv": "^16.4.5", + "cross-env": "^10.1.0", + "dotenv": "^17.2.3", "eslint": "^9.39.2", - "eslint-import-resolver-typescript": "^4.4.3", + "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-i18n-json": "^4.0.1", - "eslint-plugin-import": "^2.31.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-react-compiler": "19.1.0-rc.2", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.26", - "eslint-plugin-tailwindcss": "^3.18.0", - "eslint-plugin-testing-library": "^7.5.2", - "eslint-plugin-unicorn": "^59.0.1", - "husky": "^9.1.5", + "eslint-plugin-tailwindcss": "^3.18.2", + "eslint-plugin-testing-library": "^7.15.4", + "eslint-plugin-unicorn": "^62.0.0", + "husky": "^9.1.7", "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "jest-expo": "~53.0.7", + "jest-environment-jsdom": "^30.2.0", + "jest-expo": "~54.0.16", "jest-junit": "^16.0.0", - "lint-staged": "^15.2.9", - "np": "^10.0.7", - "tailwindcss": "3.4.4", - "ts-jest": "^29.1.2", - "typescript": "^5.8.3" + "lint-staged": "^16.2.7", + "np": "^10.3.0", + "tailwindcss": "3.4.19", + "ts-jest": "^29.4.6", + "typescript": "^5.9.3" }, "expo": { "doctor": { @@ -143,7 +146,8 @@ }, "install": { "exclude": [ - "eslint-config-expo" + "eslint-config-expo", + "react-native-worklets" ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16bf68cd0..d8c6a61c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,274 +9,279 @@ importers: .: dependencies: '@expo/metro-runtime': - specifier: ^5.0.4 - version: 5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) + specifier: ^6.1.2 + version: 6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@gorhom/bottom-sheet': - specifier: ^5.0.5 - version: 5.0.5(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^5.2.8 + version: 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@hookform/resolvers': - specifier: ^3.9.0 - version: 3.9.0(react-hook-form@7.53.0(react@19.0.0)) + specifier: ^5.2.2 + version: 5.2.2(react-hook-form@7.71.1(react@19.1.0)) '@shopify/flash-list': - specifier: 1.7.6 - version: 1.7.6(@babel/runtime@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: 2.0.2 + version: 2.0.2(@babel/runtime@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@tanstack/react-query': - specifier: ^5.52.1 - version: 5.52.1(react@19.0.0) + specifier: ^5.90.19 + version: 5.90.19(react@19.1.0) app-icon-badge: specifier: ^0.1.2 version: 0.1.2 axios: - specifier: ^1.7.5 - version: 1.7.5 + specifier: ^1.13.2 + version: 1.13.2 expo: - specifier: ~53.0.12 - version: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~54.0.31 + version: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-constants: - specifier: ~17.1.6 - version: 17.1.6(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) + specifier: ~18.0.13 + version: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) expo-crypto: - specifier: ^14.1.5 - version: 14.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + specifier: ^15.0.8 + version: 15.0.8(expo@54.0.31) expo-dev-client: - specifier: ~5.2.1 - version: 5.2.1(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + specifier: ~6.0.20 + version: 6.0.20(expo@54.0.31) expo-font: - specifier: ~13.3.1 - version: 13.3.1(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) + specifier: ~14.0.11 + version: 14.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-image: - specifier: ~2.3.0 - version: 2.3.0(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~3.0.11 + version: 3.0.11(expo@54.0.31)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-linking: - specifier: ~7.1.5 - version: 7.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~8.0.11 + version: 8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-localization: - specifier: ~16.1.5 - version: 16.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) + specifier: ~17.0.8 + version: 17.0.8(expo@54.0.31)(react@19.1.0) expo-router: - specifier: ~5.1.0 - version: 5.1.0(7ec05cbd1f45884dfc25001ff0a5198d) + specifier: ~6.0.22 + version: 6.0.22(7685cb546f9fca472a3d751aa95b1069) expo-splash-screen: - specifier: ~0.30.9 - version: 0.30.9(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + specifier: ~31.0.13 + version: 31.0.13(expo@54.0.31) expo-status-bar: - specifier: ~2.2.3 - version: 2.2.3(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~3.0.9 + version: 3.0.9(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-system-ui: - specifier: ~5.0.9 - version: 5.0.9(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) + specifier: ~6.0.9 + version: 6.0.9(expo@54.0.31)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) i18next: - specifier: ^23.14.0 - version: 23.14.0 + specifier: ^25.8.0 + version: 25.8.0(typescript@5.9.3) lodash.memoize: specifier: ^4.1.2 version: 4.1.2 moti: - specifier: ^0.29.0 - version: 0.29.0(react-dom@19.0.0(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) + specifier: ^0.30.0 + version: 0.30.0(react-dom@19.1.0(react@19.1.0))(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0) nativewind: - specifier: ^4.1.21 - version: 4.1.21(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.4) + specifier: ^4.2.1 + version: 4.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(yaml@2.8.2)) react: - specifier: 19.0.0 - version: 19.0.0 + specifier: 19.1.0 + version: 19.1.0 react-dom: - specifier: 19.0.0 - version: 19.0.0(react@19.0.0) + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) react-error-boundary: - specifier: ^4.0.13 - version: 4.0.13(react@19.0.0) + specifier: ^6.1.0 + version: 6.1.0(react@19.1.0) react-hook-form: - specifier: ^7.53.0 - version: 7.53.0(react@19.0.0) + specifier: ^7.71.1 + version: 7.71.1(react@19.1.0) react-i18next: - specifier: ^15.0.1 - version: 15.0.1(i18next@23.14.0)(react-dom@19.0.0(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^16.5.3 + version: 16.5.3(i18next@25.8.0(typescript@5.9.3))(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(typescript@5.9.3) react-native: - specifier: 0.79.4 - version: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + specifier: 0.81.5 + version: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) react-native-edge-to-edge: - specifier: ^1.6.0 - version: 1.6.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^1.7.0 + version: 1.7.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-flash-message: specifier: ^0.4.2 - version: 0.4.2(prop-types@15.8.1)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 0.4.2(prop-types@15.8.1)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-gesture-handler: - specifier: ~2.24.0 - version: 2.24.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~2.28.0 + version: 2.28.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-keyboard-controller: - specifier: ^1.17.4 - version: 1.17.4(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^1.18.5 + version: 1.18.5(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-mmkv: - specifier: ~3.1.0 - version: 3.1.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~4.1.1 + version: 4.1.1(react-native-nitro-modules@0.33.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-nitro-modules: + specifier: ^0.33.2 + version: 0.33.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-reanimated: - specifier: ~3.17.5 - version: 3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~4.1.6 + version: 4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-restart: specifier: 0.0.27 - version: 0.0.27(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 0.0.27(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-safe-area-context: - specifier: 5.4.0 - version: 5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: 5.6.2 + version: 5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-screens: - specifier: ^4.11.1 - version: 4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^4.16.0 + version: 4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-svg: - specifier: ~15.11.2 - version: 15.11.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~15.12.1 + version: 15.12.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-url-polyfill: - specifier: ^2.0.0 - version: 2.0.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) + specifier: ^3.0.0 + version: 3.0.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) react-native-web: - specifier: ~0.20.0 - version: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ~0.21.2 + version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-native-worklets: + specifier: ^0.7.2 + version: 0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-query-kit: - specifier: ^3.3.0 - version: 3.3.0(@tanstack/react-query@5.52.1(react@19.0.0)) + specifier: ^3.3.2 + version: 3.3.2(@tanstack/react-query@5.90.19(react@19.1.0)) + tailwind-merge: + specifier: ^3.4.0 + version: 3.4.0 tailwind-variants: - specifier: ^0.2.1 - version: 0.2.1(tailwindcss@3.4.4) + specifier: ^3.2.2 + version: 3.2.2(tailwind-merge@3.4.0)(tailwindcss@3.4.19(yaml@2.8.2)) zod: - specifier: ^3.23.8 - version: 3.23.8 + specifier: ^4.3.5 + version: 4.3.5 zustand: - specifier: ^5.0.5 - version: 5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + specifier: ^5.0.10 + version: 5.0.10(@types/react@19.1.17)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0)) devDependencies: '@antfu/eslint-config': specifier: ^7.2.0 - version: 7.2.0(@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(@vue/compiler-sfc@3.5.27)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.6)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.6)))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + version: 7.2.0(@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(@vue/compiler-sfc@3.5.27)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.7)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.7)))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@babel/core': - specifier: ^7.26.0 - version: 7.26.0 + specifier: ^7.28.6 + version: 7.28.6 '@commitlint/cli': - specifier: ^19.2.2 - version: 19.2.2(@types/node@22.9.1)(typescript@5.8.3) + specifier: ^20.3.1 + version: 20.3.1(@types/node@25.0.9)(typescript@5.9.3) '@commitlint/config-conventional': - specifier: ^19.2.2 - version: 19.2.2 + specifier: ^20.3.1 + version: 20.3.1 '@dev-plugins/react-query': - specifier: ^0.0.7 - version: 0.0.7(@tanstack/react-query@5.52.1(react@19.0.0))(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + specifier: ^0.4.0 + version: 0.4.0(@tanstack/react-query@5.90.19(react@19.1.0))(expo@54.0.31)(react@19.1.0) '@eslint-react/eslint-plugin': specifier: ^2.7.2 - version: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + version: 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@expo/config': - specifier: ~11.0.10 - version: 11.0.10 + specifier: ~12.0.13 + version: 12.0.13 '@testing-library/jest-dom': - specifier: ^6.5.0 - version: 6.5.0 + specifier: ^6.9.1 + version: 6.9.1 '@testing-library/react-native': - specifier: ^12.7.2 - version: 12.7.2(jest@29.7.0(@types/node@22.9.1))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react-test-renderer@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^13.3.3 + version: 13.3.3(jest@29.7.0(@types/node@25.0.9))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0) '@types/i18n-js': - specifier: ^3.8.9 - version: 3.8.9 + specifier: ^4.0.1 + version: 4.0.1 '@types/invariant': specifier: ^2.2.37 version: 2.2.37 '@types/jest': - specifier: ^29.5.12 - version: 29.5.12 + specifier: ^29.5.14 + version: 29.5.14 '@types/lodash.memoize': specifier: ^4.1.9 version: 4.1.9 '@types/react': - specifier: ~19.0.14 - version: 19.0.14 + specifier: ~19.1.17 + version: 19.1.17 babel-plugin-module-resolver: specifier: ^5.0.2 version: 5.0.2 cross-env: - specifier: ^7.0.3 - version: 7.0.3 + specifier: ^10.1.0 + version: 10.1.0 dotenv: - specifier: ^16.4.5 - version: 16.4.5 + specifier: ^17.2.3 + version: 17.2.3 eslint: specifier: ^9.39.2 - version: 9.39.2(jiti@1.21.6) + version: 9.39.2(jiti@1.21.7) eslint-import-resolver-typescript: - specifier: ^4.4.3 - version: 4.4.3(eslint-plugin-import@2.31.0)(eslint@9.39.2(jiti@1.21.6)) + specifier: ^4.4.4 + version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-i18n-json: specifier: ^4.0.1 - version: 4.0.1(eslint@9.39.2(jiti@1.21.6)) + version: 4.0.1(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-import: - specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)) + specifier: ^2.32.0 + version: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.2 - version: 19.1.0-rc.2(eslint@9.39.2(jiti@1.21.6)) + version: 19.1.0-rc.2(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-react-hooks: specifier: ^7.0.1 - version: 7.0.1(eslint@9.39.2(jiti@1.21.6)) + version: 7.0.1(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-react-refresh: specifier: ^0.4.26 - version: 0.4.26(eslint@9.39.2(jiti@1.21.6)) + version: 0.4.26(eslint@9.39.2(jiti@1.21.7)) eslint-plugin-tailwindcss: - specifier: ^3.18.0 - version: 3.18.0(tailwindcss@3.4.4) + specifier: ^3.18.2 + version: 3.18.2(tailwindcss@3.4.19(yaml@2.8.2)) eslint-plugin-testing-library: - specifier: ^7.5.2 - version: 7.5.3(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + specifier: ^7.15.4 + version: 7.15.4(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) eslint-plugin-unicorn: - specifier: ^59.0.1 - version: 59.0.1(eslint@9.39.2(jiti@1.21.6)) + specifier: ^62.0.0 + version: 62.0.0(eslint@9.39.2(jiti@1.21.7)) husky: - specifier: ^9.1.5 - version: 9.1.5 + specifier: ^9.1.7 + version: 9.1.7 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.9.1) + version: 29.7.0(@types/node@25.0.9) jest-environment-jsdom: - specifier: ^29.7.0 - version: 29.7.0 + specifier: ^30.2.0 + version: 30.2.0 jest-expo: - specifier: ~53.0.7 - version: 53.0.7(@babel/core@7.26.0)(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(jest@29.7.0(@types/node@22.9.1))(react-dom@19.0.0(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(webpack@5.96.1) + specifier: ~54.0.16 + version: 54.0.16(@babel/core@7.28.6)(expo@54.0.31)(jest@29.7.0(@types/node@25.0.9))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) jest-junit: specifier: ^16.0.0 version: 16.0.0 lint-staged: - specifier: ^15.2.9 - version: 15.2.9 + specifier: ^16.2.7 + version: 16.2.7 np: - specifier: ^10.0.7 - version: 10.0.7(typescript@5.8.3) + specifier: ^10.3.0 + version: 10.3.0(@types/node@25.0.9)(typescript@5.9.3) tailwindcss: - specifier: 3.4.4 - version: 3.4.4 + specifier: 3.4.19 + version: 3.4.19(yaml@2.8.2) ts-jest: - specifier: ^29.1.2 - version: 29.1.2(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.9.1))(typescript@5.8.3) + specifier: ^29.4.6 + version: 29.4.6(@babel/core@7.28.6)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.6))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.9))(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.3 + version: 5.9.3 packages: - '@0no-co/graphql.web@1.0.11': - resolution: {integrity: sha512-xuSJ9WXwTmtngWkbdEoopMo6F8NLtjy84UNAMsAr5C3/2SgAL/dEU10TMqTIsipqPQ8HA/7WzeqQ9DEQxSvPPA==} + '@0no-co/graphql.web@1.2.0': + resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 peerDependenciesMeta: graphql: optional: true - '@adobe/css-tools@4.4.1': - resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} + '@adobe/css-tools@4.4.4': + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - '@antfu/eslint-config@7.2.0': resolution: {integrity: sha512-I/GWDvkvUfp45VolhrMpOdkfBC69f6lstJi0BCSooylQZwH4OTJPkbXCkp4lKh9V4BeMrcO3G5iC+YIfY28/aA==} hasBin: true @@ -335,142 +340,132 @@ packages: '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + '@asamuzakjp/css-color@3.2.0': + resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} + '@babel/code-frame@7.10.4': resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + '@babel/code-frame@7.28.6': + resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.2': - resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + '@babel/compat-data@7.28.6': + resolution: {integrity: sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + '@babel/core@7.28.6': + resolution: {integrity: sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.2': - resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + '@babel/generator@7.28.6': + resolution: {integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.9': - resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.25.9': - resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + '@babel/helper-define-polyfill-provider@0.6.5': + resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.9': - resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.25.9': - resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} + '@babel/helper-wrap-function@7.28.6': + resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.25.9': resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.28.6': resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-proposal-decorators@7.25.9': - resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} + '@babel/plugin-proposal-decorators@7.28.6': + resolution: {integrity: sha512-RVdFPPyY9fCRAX68haPmOk2iyKW8PKJFthmm8NeSI3paNxKWGZIn99+VbIf0FrtCpFnPgnpF/L48tadi617ULg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-export-default-from@7.25.9': - resolution: {integrity: sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ==} + '@babel/plugin-proposal-export-default-from@7.27.1': + resolution: {integrity: sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -503,8 +498,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.25.9': - resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} + '@babel/plugin-syntax-decorators@7.28.6': + resolution: {integrity: sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -514,20 +509,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-export-default-from@7.25.9': - resolution: {integrity: sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==} + '@babel/plugin-syntax-export-default-from@7.28.6': + resolution: {integrity: sha512-Svlx1fjJFnNz0LZeUaybRukSxZI3KkpApUmIRzEdXC5k8ErTOz0OD0kNrICi5Vc3GlpP5ZCeRyRO+mfWTSz+iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.26.0': - resolution: {integrity: sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==} + '@babel/plugin-syntax-flow@7.28.6': + resolution: {integrity: sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -542,8 +537,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -590,266 +585,298 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.25.9': - resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} + '@babel/plugin-transform-async-generator-functions@7.28.6': + resolution: {integrity: sha512-9knsChgsMzBV5Yh3kkhrZNxH3oCYAfMBkNNaVN4cP2RVlFPe8wYdwwcnOsAbkdDoV9UjFtOXWrWB52M8W4jNeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} + '@babel/plugin-transform-class-properties@7.27.1': + resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-classes@7.25.9': - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.28.4': + resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.25.9': - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.25.9': - resolution: {integrity: sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==} + '@babel/plugin-transform-flow-strip-types@7.27.1': + resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.25.9': - resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.25.9': - resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==} + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': - resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': + resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + '@babel/plugin-transform-optional-chaining@7.27.1': + resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.25.9': - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.9': - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.25.9': - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.25.9': - resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==} + '@babel/plugin-transform-react-display-name@7.28.0': + resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.25.9': - resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==} + '@babel/plugin-transform-react-jsx-development@7.27.1': + resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.25.9': - resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.25.9': - resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.25.9': - resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} + '@babel/plugin-transform-react-jsx@7.28.6': + resolution: {integrity: sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.25.9': - resolution: {integrity: sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==} + '@babel/plugin-transform-react-pure-annotations@7.27.1': + resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.25.9': - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + '@babel/plugin-transform-regenerator@7.28.6': + resolution: {integrity: sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.25.9': - resolution: {integrity: sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==} + '@babel/plugin-transform-runtime@7.28.5': + resolution: {integrity: sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.25.9': - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.25.9': - resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.25.9': - resolution: {integrity: sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==} + '@babel/plugin-transform-typescript@7.28.6': + resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-react@7.25.9': - resolution: {integrity: sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==} + '@babel/preset-react@7.28.5': + resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==} 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==} + '@babel/preset-typescript@7.27.1': + resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.26.0': - resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + '@babel/preset-typescript@7.28.5': + resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.9': - resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + '@babel/traverse@7.28.6': + resolution: {integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==} engines: {node: '>=6.9.0'} '@babel/types@7.28.6': @@ -865,93 +892,122 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@commitlint/cli@19.2.2': - resolution: {integrity: sha512-P8cbOHfg2PQRzfICLSrzUVOCVMqjEZ8Hlth6mtJ4yOEjT47Q5PbIGymgX3rLVylNw+3IAT2Djn9IJ2wHbXFzBg==} + '@commitlint/cli@20.3.1': + resolution: {integrity: sha512-NtInjSlyev/+SLPvx/ulz8hRE25Wf5S9dLNDcIwazq0JyB4/w1ROF/5nV0ObPTX8YpRaKYeKtXDYWqumBNHWsw==} engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@19.2.2': - resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==} + '@commitlint/config-conventional@20.3.1': + resolution: {integrity: sha512-NCzwvxepstBZbmVXsvg49s+shCxlJDJPWxXqONVcAtJH9wWrOlkMQw/zyl+dJmt8lyVopt5mwQ3mR5M2N2rUWg==} engines: {node: '>=v18'} - '@commitlint/config-validator@19.5.0': - resolution: {integrity: sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==} + '@commitlint/config-validator@20.3.1': + resolution: {integrity: sha512-ErVLC/IsHhcvxCyh+FXo7jy12/nkQySjWXYgCoQbZLkFp4hysov8KS6CdxBB0cWjbZWjvNOKBMNoUVqkmGmahw==} engines: {node: '>=v18'} - '@commitlint/ensure@19.5.0': - resolution: {integrity: sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==} + '@commitlint/ensure@20.3.1': + resolution: {integrity: sha512-h664FngOEd7bHAm0j8MEKq+qm2mH+V+hwJiIE2bWcw3pzJMlO0TPKtk0ATyRAtV6jQw+xviRYiIjjSjfajiB5w==} engines: {node: '>=v18'} - '@commitlint/execute-rule@19.5.0': - resolution: {integrity: sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==} + '@commitlint/execute-rule@20.0.0': + resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==} engines: {node: '>=v18'} - '@commitlint/format@19.5.0': - resolution: {integrity: sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==} + '@commitlint/format@20.3.1': + resolution: {integrity: sha512-jfsjGPFTd2Yti2YHwUH4SPRPbWKAJAwrfa3eNa9bXEdrXBb9mCwbIrgYX38LdEJK9zLJ3AsLBP4/FLEtxyu2AA==} engines: {node: '>=v18'} - '@commitlint/is-ignored@19.6.0': - resolution: {integrity: sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==} + '@commitlint/is-ignored@20.3.1': + resolution: {integrity: sha512-tWwAoh93QvAhxgp99CzCuHD86MgxE4NBtloKX+XxQxhfhSwHo7eloiar/yzx53YW9eqSLP95zgW2KDDk4/WX+A==} engines: {node: '>=v18'} - '@commitlint/lint@19.6.0': - resolution: {integrity: sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==} + '@commitlint/lint@20.3.1': + resolution: {integrity: sha512-LaOtrQ24+6SfUaWg8A+a+Wc77bvLbO5RIr6iy9F7CI3/0iq1uPEWgGRCwqWTuLGHkZDAcwaq0gZ01zpwZ1jCGw==} engines: {node: '>=v18'} - '@commitlint/load@19.5.0': - resolution: {integrity: sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==} + '@commitlint/load@20.3.1': + resolution: {integrity: sha512-YDD9XA2XhgYgbjju8itZ/weIvOOobApDqwlPYCX5NLO/cPtw2UMO5Cmn44Ks8RQULUVI5fUT6roKvyxcoLbNmw==} engines: {node: '>=v18'} - '@commitlint/message@19.5.0': - resolution: {integrity: sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==} + '@commitlint/message@20.0.0': + resolution: {integrity: sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==} engines: {node: '>=v18'} - '@commitlint/parse@19.5.0': - resolution: {integrity: sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==} + '@commitlint/parse@20.3.1': + resolution: {integrity: sha512-TuUTdbLpyUNLgDzLDYlI2BeTE6V/COZbf3f8WwsV0K6eq/2nSpNTMw7wHtXb+YxeY9wwxBp/Ldad4P+YIxHJoA==} engines: {node: '>=v18'} - '@commitlint/read@19.5.0': - resolution: {integrity: sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==} + '@commitlint/read@20.3.1': + resolution: {integrity: sha512-nCmJAdIg3OdNVUpQW0Idk/eF/vfOo2W2xzmvRmNeptLrzFK7qhwwl/kIwy1Q1LZrKHUFNj7PGNpIT5INbgZWzA==} engines: {node: '>=v18'} - '@commitlint/resolve-extends@19.5.0': - resolution: {integrity: sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==} + '@commitlint/resolve-extends@20.3.1': + resolution: {integrity: sha512-iGTGeyaoDyHDEZNjD8rKeosjSNs8zYanmuowY4ful7kFI0dnY4b5QilVYaFQJ6IM27S57LAeH5sKSsOHy4bw5w==} engines: {node: '>=v18'} - '@commitlint/rules@19.6.0': - resolution: {integrity: sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==} + '@commitlint/rules@20.3.1': + resolution: {integrity: sha512-/uic4P+4jVNpqQxz02+Y6vvIC0A2J899DBztA1j6q3f3MOKwydlNrojSh0dQmGDxxT1bXByiRtDhgFnOFnM6Pg==} engines: {node: '>=v18'} - '@commitlint/to-lines@19.5.0': - resolution: {integrity: sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==} + '@commitlint/to-lines@20.0.0': + resolution: {integrity: sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw==} engines: {node: '>=v18'} - '@commitlint/top-level@19.5.0': - resolution: {integrity: sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==} + '@commitlint/top-level@20.0.0': + resolution: {integrity: sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg==} engines: {node: '>=v18'} - '@commitlint/types@19.5.0': - resolution: {integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==} + '@commitlint/types@20.3.1': + resolution: {integrity: sha512-VmIFV/JkBRhDRRv7N5B7zEUkNZIx9Mp+8Pe65erz0rKycXLsi8Epcw0XJ+btSeRXgTzE7DyOyA9bkJ9mn/yqVQ==} engines: {node: '>=v18'} - '@dev-plugins/react-query@0.0.7': - resolution: {integrity: sha512-A54YRUEwSHjEl4OrnP9QDwbgx4XOzCIreqYfCzPB0E4EV5U7ykCdxsm6gNhfy5EQfNvkqzrSRhO8GsR8fCfxdw==} + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} + engines: {node: '>=18'} + + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} + + '@dev-plugins/react-query@0.4.0': + resolution: {integrity: sha512-/8M2a7DlVTjcdhb4D/E+aHUCOqSS6s53y3fFrOoCyLPxhhhkMujS91pARH6XbF/GRr6p6RBNBJQpWasI6uj7GA==} peerDependencies: '@tanstack/react-query': '*' - expo: '*' + expo: '>=53.0.5' + react: '*' '@egjs/hammerjs@2.0.17': resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==} engines: {node: '>=0.8.0'} - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.8.1': + resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} '@emotion/is-prop-valid@0.8.8': resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} @@ -959,6 +1015,9 @@ packages: '@emotion/memoize@0.7.4': resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + '@epic-web/invariant@1.0.0': + resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} + '@es-joy/jsdoccomment@0.78.0': resolution: {integrity: sha512-rQkU5u8hNAq2NVRzHnIUUvR6arbO0b6AOlvpTNS48CkiKSn/xtNfOzBK23JE4SiW89DgvU7GtxLVgV4Vn2HBAw==} engines: {node: '>=20.11.0'} @@ -977,22 +1036,12 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.12.2': resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -1057,10 +1106,6 @@ packages: resolution: {integrity: sha512-QN8067dXsXAl9HIvqws7STEviheRFojX3zek5OpC84oBxDGqizW9731ByF/ASxqQihbWrVDdZXS+Ihnsckm9dg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@0.13.0': - resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.17.0': resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1069,8 +1114,8 @@ packages: resolution: {integrity: sha512-r18fEAj9uCk+VjzGt2thsbOmychS+4kxI14spVNibUO2vqKX7obOG+ymZljAwuPZl+S3clPGwCwTDtrdqTiY6Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@9.39.2': @@ -1085,10 +1130,6 @@ packages: resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.8': - resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.4.1': resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1097,109 +1138,146 @@ packages: resolution: {integrity: sha512-hZ2uC1jbf6JMSsF2ZklhRQqf6GLpYyux6DlzegnW/aFlpu6qJj5GO7ub7WOETCrEl6pl6DAX7RgTgj/fyG+6BQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@expo/cli@0.24.15': - resolution: {integrity: sha512-RDZS30OSnbXkSPnBXdyPL29KbltjOmegE23bZZDiGV23WOReWcPgRc5U7Fd8eLPhtRjHBKlBpNJMTed5Ntr/uw==} + '@expo/cli@54.0.21': + resolution: {integrity: sha512-L/FdpyZDsg/Nq6xW6kfiyF9DUzKfLZCKFXEVZcDqCNar6bXxQVotQyvgexRvtUF5nLinuT/UafLOdC3FUALUmA==} hasBin: true + peerDependencies: + expo: '*' + expo-router: '*' + react-native: '*' + peerDependenciesMeta: + expo-router: + optional: true + react-native: + optional: true - '@expo/code-signing-certificates@0.0.5': - resolution: {integrity: sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==} + '@expo/code-signing-certificates@0.0.6': + resolution: {integrity: sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==} - '@expo/config-plugins@10.0.2': - resolution: {integrity: sha512-TzUn3pPdpwCS0yYaSlZOClgDmCX8N4I2lfgitX5oStqmvpPtB+vqtdyqsVM02fQ2tlJIAqwBW+NHaHqqy8Jv7g==} + '@expo/config-plugins@54.0.4': + resolution: {integrity: sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==} - '@expo/config-plugins@10.0.3': - resolution: {integrity: sha512-fjCckkde67pSDf48x7wRuPsgQVIqlDwN7NlOk9/DFgQ1hCH0L5pGqoSmikA1vtAyiA83MOTpkGl3F3wyATyUog==} + '@expo/config-types@54.0.10': + resolution: {integrity: sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==} - '@expo/config-types@53.0.4': - resolution: {integrity: sha512-0s+9vFx83WIToEr0Iwy4CcmiUXa5BgwBmEjylBB2eojX5XAMm9mJvw9KpjAb8m7zq2G0Q6bRbeufkzgbipuNQg==} + '@expo/config@12.0.13': + resolution: {integrity: sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ==} - '@expo/config@11.0.10': - resolution: {integrity: sha512-8S8Krr/c5lnl0eF03tA2UGY9rGBhZcbWKz2UWw5dpL/+zstwUmog8oyuuC8aRcn7GiTQLlbBkxcMeT8sOGlhbA==} + '@expo/devcert@1.2.1': + resolution: {integrity: sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==} - '@expo/devcert@1.1.4': - resolution: {integrity: sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==} + '@expo/devtools@0.1.8': + resolution: {integrity: sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ==} + peerDependencies: + react: '*' + react-native: '*' + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true - '@expo/env@1.0.5': - resolution: {integrity: sha512-dtEZ4CAMaVrFu2+tezhU3FoGWtbzQl50xV+rNJE5lYVRjUflWiZkVHlHkWUlPAwDPifLy4TuissVfScGGPWR5g==} + '@expo/env@2.0.8': + resolution: {integrity: sha512-5VQD6GT8HIMRaSaB5JFtOXuvfDVU80YtZIuUT/GDhUF782usIXY13Tn3IdDz1Tm/lqA9qnRZQ1BF4t7LlvdJPA==} - '@expo/fingerprint@0.13.1': - resolution: {integrity: sha512-MgZ5uIvvwAnjWeQoj4D3RnBXjD1GNOpCvhp2jtZWdQ8yEokhDEJGoHjsMT8/NCB5m2fqP5sv2V5nPzC7CN1YjQ==} + '@expo/fingerprint@0.15.4': + resolution: {integrity: sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng==} hasBin: true - '@expo/image-utils@0.7.4': - resolution: {integrity: sha512-LcZ82EJy/t/a1avwIboeZbO6hlw8CvsIRh2k6SWPcAOvW0RqynyKFzUJsvnjWlhUzfBEn4oI7y/Pu5Xkw3KkkA==} + '@expo/image-utils@0.8.8': + resolution: {integrity: sha512-HHHaG4J4nKjTtVa1GG9PCh763xlETScfEyNxxOvfTRr8IKPJckjTyqSLEtdJoFNJ1vqiABEjW7tqGhqGibZLeA==} - '@expo/json-file@9.1.4': - resolution: {integrity: sha512-7Bv86X27fPERGhw8aJEZvRcH9sk+9BenDnEmrI3ZpywKodYSBgc8lX9Y32faNVQ/p0YbDK9zdJ0BfAKNAOyi0A==} + '@expo/json-file@10.0.8': + resolution: {integrity: sha512-9LOTh1PgKizD1VXfGQ88LtDH0lRwq9lsTb4aichWTWSWqy3Ugfkhfm3BhzBIkJJfQQ5iJu3m/BoRlEIjoCGcnQ==} - '@expo/metro-config@0.20.15': - resolution: {integrity: sha512-m8i58IQ7I8iOdVRfOhFmhPMHuhgeTVfQp1+mxW7URqPZaeVbuDVktPqOiNoHraKBoGPLKMUSsD+qdUuJVL3wMg==} + '@expo/metro-config@54.0.13': + resolution: {integrity: sha512-RRufMCgLR2Za1WGsh02OatIJo5qZFt31yCnIOSfoubNc3Qqe92Z41pVsbrFnmw5CIaisv1NgdBy05DHe7pEyuw==} + peerDependencies: + expo: '*' + peerDependenciesMeta: + expo: + optional: true - '@expo/metro-runtime@5.0.4': - resolution: {integrity: sha512-r694MeO+7Vi8IwOsDIDzH/Q5RPMt1kUDYbiTJwnO15nIqiDwlE8HU55UlRhffKZy6s5FmxQsZ8HA+T8DqUW8cQ==} + '@expo/metro-runtime@6.1.2': + resolution: {integrity: sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g==} peerDependencies: + expo: '*' + react: '*' + react-dom: '*' react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true - '@expo/osascript@2.2.4': - resolution: {integrity: sha512-Q+Oyj+1pdRiHHpev9YjqfMZzByFH8UhKvSszxa0acTveijjDhQgWrq4e9T/cchBHi0GWZpGczWyiyJkk1wM1dg==} + '@expo/metro@54.2.0': + resolution: {integrity: sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==} + + '@expo/osascript@2.3.8': + resolution: {integrity: sha512-/TuOZvSG7Nn0I8c+FcEaoHeBO07yu6vwDgk7rZVvAXoeAK5rkA09jRyjYsZo+0tMEFaToBeywA6pj50Mb3ny9w==} engines: {node: '>=12'} - '@expo/package-manager@1.8.4': - resolution: {integrity: sha512-8H8tLga/NS3iS7QaX/NneRPqbObnHvVCfMCo0ShudreOFmvmgqhYjRlkZTRstSyFqefai8ONaT4VmnLHneRYYg==} + '@expo/package-manager@1.9.10': + resolution: {integrity: sha512-axJm+NOj3jVxep49va/+L3KkF3YW/dkV+RwzqUJedZrv4LeTqOG4rhrCaCPXHTvLqCTDKu6j0Xyd28N7mnxsGA==} - '@expo/plist@0.3.4': - resolution: {integrity: sha512-MhBLaUJNe9FQDDU2xhSNS4SAolr6K2wuyi4+A79vYuXLkAoICsbTwcGEQJN5jPY6D9izO/jsXh5k0h+mIWQMdw==} + '@expo/plist@0.4.8': + resolution: {integrity: sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==} - '@expo/prebuild-config@9.0.6': - resolution: {integrity: sha512-HDTdlMkTQZ95rd6EpvuLM+xkZV03yGLc38FqI37qKFLJtUN1WnYVaWsuXKoljd1OrVEVsHe6CfqKwaPZ52D56Q==} + '@expo/prebuild-config@54.0.8': + resolution: {integrity: sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==} + peerDependencies: + expo: '*' - '@expo/prebuild-config@9.0.7': - resolution: {integrity: sha512-1w5MBp6NdF51gPGp0HsCZt0QC82hZWo37wI9HfxhdQF/sN/92Mh4t30vaY7gjHe71T5QNyab00oxZH/wP0MDgQ==} + '@expo/schema-utils@0.1.8': + resolution: {integrity: sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==} '@expo/sdk-runtime-versions@1.0.0': resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} - '@expo/server@0.6.2': - resolution: {integrity: sha512-ko+dq+1WEC126/iGVv3g+ChFCs9wGyKtGlnYphwrOQbFBBqX19sn6UV0oUks6UdhD+MyzUv+w/TOdktdcI0Cgg==} - '@expo/spawn-async@1.7.2': resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==} engines: {node: '>=12'} - '@expo/vector-icons@14.0.4': - resolution: {integrity: sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==} + '@expo/sudo-prompt@9.3.2': + resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==} + + '@expo/vector-icons@15.0.3': + resolution: {integrity: sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA==} + peerDependencies: + expo-font: '>=14.0.4' + react: '*' + react-native: '*' - '@expo/ws-tunnel@1.0.4': - resolution: {integrity: sha512-spXCVXxbeKOe8YZ9igd+MDfXZe6LeDvFAdILijeTSG+XcxGrZLmqMWWkFKR0nV8lTWZ+NugUT3CoiXmEuKKQ7w==} + '@expo/ws-tunnel@1.0.6': + resolution: {integrity: sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==} - '@expo/xcpretty@4.3.1': - resolution: {integrity: sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==} + '@expo/xcpretty@4.3.2': + resolution: {integrity: sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==} hasBin: true - '@formatjs/ecma402-abstract@2.2.4': - resolution: {integrity: sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg==} + '@formatjs/ecma402-abstract@2.3.6': + resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} - '@formatjs/fast-memoize@2.2.3': - resolution: {integrity: sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==} + '@formatjs/fast-memoize@2.2.7': + resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} - '@formatjs/icu-messageformat-parser@2.9.4': - resolution: {integrity: sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg==} + '@formatjs/icu-messageformat-parser@2.11.4': + resolution: {integrity: sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==} - '@formatjs/icu-skeleton-parser@1.8.8': - resolution: {integrity: sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA==} + '@formatjs/icu-skeleton-parser@1.8.16': + resolution: {integrity: sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==} - '@formatjs/intl-localematcher@0.5.8': - resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==} + '@formatjs/intl-localematcher@0.6.2': + resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} - '@gorhom/bottom-sheet@5.0.5': - resolution: {integrity: sha512-OPMbwrU/sx/o8AOHe4Bmthp0oR/a1jsTYmdjeGlnWmpnwAVa13QEALsgCm8WaDKA39qeoD7rT38e4/GYeL4myA==} + '@gorhom/bottom-sheet@5.2.8': + resolution: {integrity: sha512-+N27SMpbBxXZQ/IA2nlEV6RGxL/qSFHKfdFKcygvW+HqPG5jVNb1OqehLQsGfBP+Up42i0gW5ppI+DhpB7UCzA==} peerDependencies: '@types/react': '*' '@types/react-native': '*' react: '*' react-native: '*' react-native-gesture-handler: '>=2.16.1' - react-native-reanimated: '>=3.10.1' + react-native-reanimated: '>=3.16.0 || >=4.0.0-' peerDependenciesMeta: '@types/react': optional: true @@ -1212,38 +1290,168 @@ packages: react: '*' react-native: '*' - '@hookform/resolvers@3.9.0': - resolution: {integrity: sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg==} + '@hookform/resolvers@5.2.2': + resolution: {integrity: sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==} peerDependencies: - react-hook-form: ^7.0.0 + react-hook-form: ^7.55.0 '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.3': resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@inquirer/figures@1.0.8': - resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} engines: {node: '>=18'} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@inquirer/checkbox@4.3.2': + resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/editor@4.2.23': + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/expand@4.0.23': + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/input@4.3.1': + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/number@3.0.23': + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/password@4.0.23': + resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.10.1': + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@4.1.11': + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@3.2.2': + resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/select@4.4.2': + resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} @@ -1278,10 +1486,28 @@ packages: resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/diff-sequences@30.0.1': + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/environment-jsdom-abstract@30.2.0': + resolution: {integrity: sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + canvas: ^3.0.0 + jsdom: '*' + peerDependenciesMeta: + canvas: + optional: true + '@jest/environment@29.7.0': resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@30.2.0': + resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/expect-utils@29.7.0': resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1294,10 +1520,22 @@ packages: resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.2.0': + resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/get-type@30.1.0': + resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/globals@29.7.0': resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/pattern@30.0.1': + resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/reporters@29.7.0': resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1311,6 +1549,10 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@30.0.5': + resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/source-map@29.6.3': resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1327,10 +1569,18 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@30.2.0': + resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/types@29.6.3': resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@30.2.0': + resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jimp/bmp@0.22.12': resolution: {integrity: sha512-aeI64HD0npropd+AR76MCcvvRaa+Qck6loCOS03CkkxGHN5/r336qTM5HPUdHKMDOGzqknuVPA8+kK1t03z12g==} peerDependencies: @@ -1496,29 +1746,24 @@ packages: '@jimp/utils@0.22.12': resolution: {integrity: sha512-yJ5cWUknGnilBq97ZXOyOS0HhsHOyAyjHwYfHxGbSyMTohgQI6sVyE8KPgDwH8HHW/nMKXk8TrSwAE71zt716Q==} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@motionone/animation@10.18.0': resolution: {integrity: sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==} @@ -1538,8 +1783,8 @@ packages: '@motionone/utils@10.18.0': resolution: {integrity: sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==} - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1553,10 +1798,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@pkgr/core@0.2.9': resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1569,21 +1810,28 @@ packages: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - '@pnpm/npm-conf@2.3.1': - resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + '@pnpm/npm-conf@3.0.2': + resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==} engines: {node: '>=12'} - '@radix-ui/react-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-slot@1.2.0': - resolution: {integrity: sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==} + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1591,90 +1839,293 @@ packages: '@types/react': optional: true - '@react-native/assets-registry@0.79.4': - resolution: {integrity: sha512-7PjHNRtYlc36B7P1PHme8ZV0ZJ/xsA/LvMoXe6EX++t7tSPJ8iYCMBryZhcdnztgce73b94Hfx6TTGbLF+xtUg==} - engines: {node: '>=18'} - - '@react-native/babel-plugin-codegen@0.79.4': - resolution: {integrity: sha512-quhytIlDedR3ircRwifa22CaWVUVnkxccrrgztroCZaemSJM+HLurKJrjKWm0J5jV9ed+d+9Qyb1YB0syTHDjg==} - engines: {node: '>=18'} - - '@react-native/babel-preset@0.79.4': - resolution: {integrity: sha512-El9JvYKiNfnkQ3qR7zJvvRdP3DX2i4BGYlIricWQishI3gWAfm88FQYFC2CcGoMQWJQEPN4jnDMpoISAJDEN4g==} - engines: {node: '>=18'} - peerDependencies: - '@babel/core': '*' - - '@react-native/codegen@0.79.4': - resolution: {integrity: sha512-K0moZDTJtqZqSs+u9tnDPSxNsdxi5irq8Nu4mzzOYlJTVNGy5H9BiIDg/NeKGfjAdo43yTDoaPSbUCvVV8cgIw==} - engines: {node: '>=18'} + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: - '@babel/core': '*' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@react-native/community-cli-plugin@0.79.4': - resolution: {integrity: sha512-lx1RXEJwU9Tcs2B2uiDZBa6yghU6m6STvwYqHbJlFZyNN1k3JRa9j0/CDu+0fCFacIn7rEfZpb4UWi5YhsHpQg==} - engines: {node: '>=18'} + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} peerDependencies: - '@react-native-community/cli': '*' + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@react-native-community/cli': + '@types/react': + optional: true + '@types/react-dom': optional: true - '@react-native/debugger-frontend@0.79.4': - resolution: {integrity: sha512-Gg4LhxHIK86Bi2RiT1rbFAB6fuwANRsaZJ1sFZ1OZEMQEx6stEnzaIrmfgzcv4z0bTQdQ8lzCrpsz0qtdaD4eA==} - engines: {node: '>=18'} - - '@react-native/dev-middleware@0.79.4': - resolution: {integrity: sha512-OWRDNkgrFEo+OSC5QKfiiBmGXKoU8gmIABK8rj2PkgwisFQ/22p7MzE5b6oB2lxWaeJT7jBX5KVniNqO46VhHA==} - engines: {node: '>=18'} - - '@react-native/gradle-plugin@0.79.4': - resolution: {integrity: sha512-Gv5ryy23k7Sib2xVgqw65GTryg9YTij6URcMul5cI7LRcW0Aa1/FPb26l388P4oeNGNdDoAkkS+CuCWNunRuWg==} - engines: {node: '>=18'} - - '@react-native/js-polyfills@0.79.4': - resolution: {integrity: sha512-VyKPo/l9zP4+oXpQHrJq4vNOtxF7F5IMdQmceNzTnRpybRvGGgO/9jYu9mdmdKRO2KpQEc5dB4W2rYhVKdGNKg==} - engines: {node: '>=18'} - - '@react-native/normalize-colors@0.74.88': - resolution: {integrity: sha512-He5oTwPBxvXrxJ91dZzpxR7P+VYmc9IkJfhuH8zUiU50ckrt+xWNjtVugPdUv4LuVjmZ36Vk2EX8bl1gVn2dVA==} - - '@react-native/normalize-colors@0.79.2': - resolution: {integrity: sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==} - - '@react-native/normalize-colors@0.79.4': - resolution: {integrity: sha512-247/8pHghbYY2wKjJpUsY6ZNbWcdUa5j5517LZMn6pXrbSSgWuj3JA4OYibNnocCHBaVrt+3R8XC3VEJqLlHFg==} - - '@react-native/virtualized-lists@0.79.4': - resolution: {integrity: sha512-0Mdcox6e5PTonuM1WIo3ks7MBAa3IDzj0pKnE5xAwSgQ0DJW2P5dYf+KjWmpkE+Yb0w41ZbtXPhKq+U2JJ6C/Q==} - engines: {node: '>=18'} + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: - '@types/react': ^19.0.0 - react: '*' - react-native: '*' + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - '@react-navigation/bottom-tabs@7.3.15': - resolution: {integrity: sha512-jKCfawtK3qB9VtKgrQtNfkeafRVmU3ZBL3oht97jkp3ApA2we/I0XZcRakw/1cWRgQjGX8DQ72dyQw7SdOdWAQ==} + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: - '@react-navigation/native': ^7.1.11 - react: '>= 18.2.0' - react-native: '*' + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.0': + resolution: {integrity: sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-tabs@1.1.13': + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@react-native/assets-registry@0.81.5': + resolution: {integrity: sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==} + engines: {node: '>= 20.19.4'} + + '@react-native/babel-plugin-codegen@0.81.5': + resolution: {integrity: sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==} + engines: {node: '>= 20.19.4'} + + '@react-native/babel-preset@0.81.5': + resolution: {integrity: sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/codegen@0.81.5': + resolution: {integrity: sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/community-cli-plugin@0.81.5': + resolution: {integrity: sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@react-native-community/cli': '*' + '@react-native/metro-config': '*' + peerDependenciesMeta: + '@react-native-community/cli': + optional: true + '@react-native/metro-config': + optional: true + + '@react-native/debugger-frontend@0.81.5': + resolution: {integrity: sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==} + engines: {node: '>= 20.19.4'} + + '@react-native/dev-middleware@0.81.5': + resolution: {integrity: sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==} + engines: {node: '>= 20.19.4'} + + '@react-native/gradle-plugin@0.81.5': + resolution: {integrity: sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==} + engines: {node: '>= 20.19.4'} + + '@react-native/js-polyfills@0.81.5': + resolution: {integrity: sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w==} + engines: {node: '>= 20.19.4'} + + '@react-native/normalize-colors@0.74.89': + resolution: {integrity: sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==} + + '@react-native/normalize-colors@0.81.5': + resolution: {integrity: sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==} + + '@react-native/virtualized-lists@0.81.5': + resolution: {integrity: sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@types/react': ^19.1.0 + react: '*' + react-native: '*' + peerDependenciesMeta: + '@types/react': + optional: true + + '@react-navigation/bottom-tabs@7.10.1': + resolution: {integrity: sha512-MirOzKEe/rRwPSE9HMrS4niIo0LyUhewlvd01TpzQ1ipuXjH2wJbzAM9gS/r62zriB6HMHz2OY6oIRduwQJtTw==} + peerDependencies: + '@react-navigation/native': ^7.1.28 + react: '>= 18.2.0' + react-native: '*' react-native-safe-area-context: '>= 4.0.0' react-native-screens: '>= 4.0.0' - '@react-navigation/core@7.10.1': - resolution: {integrity: sha512-6+bdalOqfDzc968s3Xz7VaUpPzMKzVay48dW+C/cd6sga01Iqjp4XAzQ7FNHdT7wgJYdvZaBOAlyvnok0OsFZw==} + '@react-navigation/core@7.14.0': + resolution: {integrity: sha512-tMpzskBzVp0E7CRNdNtJIdXjk54Kwe/TF9ViXAef+YFM1kSfGv4e/B2ozfXE+YyYgmh4WavTv8fkdJz1CNyu+g==} peerDependencies: react: '>= 18.2.0' - '@react-navigation/elements@2.4.4': - resolution: {integrity: sha512-6OAzrg6mn8s3qv6DZSFHxYRZv/3hUZTtkrq1XNBqLNlVIv89Iv7XKukYbZIxNoUss8r+RLJea0aNAOq5jbBkfw==} + '@react-navigation/elements@2.9.5': + resolution: {integrity: sha512-iHZU8rRN1014Upz73AqNVXDvSMZDh5/ktQ1CMe21rdgnOY79RWtHHBp9qOS3VtqlUVYGkuX5GEw5mDt4tKdl0g==} peerDependencies: '@react-native-masked-view/masked-view': '>= 0.2.0' - '@react-navigation/native': ^7.1.11 + '@react-navigation/native': ^7.1.28 react: '>= 18.2.0' react-native: '*' react-native-safe-area-context: '>= 4.0.0' @@ -1682,23 +2133,23 @@ packages: '@react-native-masked-view/masked-view': optional: true - '@react-navigation/native-stack@7.3.16': - resolution: {integrity: sha512-tK29buswgQtHE/8+HMeYfsio/t6Y0Yk+YlEBckaYvNbxOrCwQ/s2FrM4dyV3dHkSefT6eEae3NKSgD0Q2ARMAA==} + '@react-navigation/native-stack@7.10.1': + resolution: {integrity: sha512-8jt7olKysn07HuKKSjT/ahZZTV+WaZa96o9RI7gAwh7ATlUDY02rIRttwvCyjovhSjD9KCiuJ+Hd4kwLidHwJw==} peerDependencies: - '@react-navigation/native': ^7.1.11 + '@react-navigation/native': ^7.1.28 react: '>= 18.2.0' react-native: '*' react-native-safe-area-context: '>= 4.0.0' react-native-screens: '>= 4.0.0' - '@react-navigation/native@7.1.11': - resolution: {integrity: sha512-f/UETxy2Nahr8jko9mSSRBvIaDubGc3M2yx5pWxMPxZgLkB4TqPB0O1OFdbcAuRDwLgzXXK+Joh7nTdGug9v2A==} + '@react-navigation/native@7.1.28': + resolution: {integrity: sha512-d1QDn+KNHfHGt3UIwOZvupvdsDdiHYZBEj7+wL2yDVo3tMezamYy60H9s3EnNVE1Ae1ty0trc7F2OKqo/RmsdQ==} peerDependencies: react: '>= 18.2.0' react-native: '*' - '@react-navigation/routers@7.4.1': - resolution: {integrity: sha512-42mZrMzQ0LfKxUb5OHIurYrPYyRsXFLolucILrvm21f0O40Sw0Ufh1bnn/jRqnxZZu7wvpUGIGYM8nS9zVE1Aw==} + '@react-navigation/routers@7.5.3': + resolution: {integrity: sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg==} '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -1715,8 +2166,8 @@ packages: zen-observable: optional: true - '@shopify/flash-list@1.7.6': - resolution: {integrity: sha512-0kuuAbWgy4YSlN05mt0ScvxK8uiDixMsICWvDed+LTxvZ5+5iRyt3M8cRLUroB8sfiZlJJZWlxHrx0frBpsYOQ==} + '@shopify/flash-list@2.0.2': + resolution: {integrity: sha512-zhlrhA9eiuEzja4wxVvotgXHtqd3qsYbXkQ3rsBfOgbFA9BVeErpDE/yEwtlIviRGEqpuFj/oU5owD6ByaNX+w==} peerDependencies: '@babel/runtime': '*' react: '*' @@ -1725,41 +2176,55 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.34.47': + resolution: {integrity: sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw==} + '@sindresorhus/base62@1.0.0': resolution: {integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==} engines: {node: '>=18'} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@13.0.5': + resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + '@stylistic/eslint-plugin@5.7.0': resolution: {integrity: sha512-PsSugIf9ip1H/mWKj4bi/BlEoerxXAda9ByRFsYuwsmr6af9NxJL0AaiNXs8Le7R21QR5KMiD/KdxZZ71LjAxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=9.0.0' - '@tanstack/query-core@5.52.0': - resolution: {integrity: sha512-U1DOEgltjUwalN6uWYTewSnA14b+tE7lSylOiASKCAO61ENJeCq9VVD/TXHA6O5u9+6v5+UgGYBSccTKDoyMqw==} + '@tanstack/query-core@5.90.19': + resolution: {integrity: sha512-GLW5sjPVIvH491VV1ufddnfldyVB+teCnpPIvweEfkpRx7CfUmUGhoh9cdcUKBh/KwVxk22aNEDxeTsvmyB/WA==} - '@tanstack/react-query@5.52.1': - resolution: {integrity: sha512-soyn4dNIUZ8US8NaPVXv06gkZFHaZnPfKWPDjRJjFRW3Y7WZ0jx72eT6zhw3VQlkMPysmXye8l35ewPHspKgbQ==} + '@tanstack/react-query@5.90.19': + resolution: {integrity: sha512-qTZRZ4QyTzQc+M0IzrbKHxSeISUmRB3RPGmao5bT+sI6ayxSRhn0FXEnT5Hg3as8SBFcRosrXXRFB+yAcxVxJQ==} peerDependencies: react: ^18 || ^19 - '@testing-library/jest-dom@6.5.0': - resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} + '@testing-library/jest-dom@6.9.1': + resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@testing-library/react-native@12.7.2': - resolution: {integrity: sha512-fSUIruOUFcuwssC8+m9H+9ib7P/+JrtIszHS4eZ6O9e4FjpjS3m24UnkJXTRl+FCbknz8oxH5Tw+thzy0qsIMg==} + '@testing-library/react-native@13.3.3': + resolution: {integrity: sha512-k6Mjsd9dbZgvY4Bl7P1NIpePQNi+dfYtlJ5voi9KQlynxSyQkfOgJmYGCYmw/aSgH/rUcFvG8u5gd4npzgRDyg==} + engines: {node: '>=18'} peerDependencies: - jest: '>=28.0.0' - react: '>=16.8.0' - react-native: '>=0.59' - react-test-renderer: '>=16.8.0' + jest: '>=29.0.0' + react: '>=18.2.0' + react-native: '>=0.71' + react-test-renderer: '>=18.2.0' peerDependenciesMeta: jest: optional: true @@ -1771,33 +2236,27 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - '@types/conventional-commits-parser@5.0.0': - resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/conventional-commits-parser@5.0.2': + resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -1807,8 +2266,9 @@ packages: '@types/hammerjs@2.0.46': resolution: {integrity: sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==} - '@types/i18n-js@3.8.9': - resolution: {integrity: sha512-bSxgya4x5O+x+QhfCGckiDDE+17XGPp1TNBgBA/vfF5EwdiZC70F4cKG5QK2v44+v62oY7/t/InreRhxskulcA==} + '@types/i18n-js@4.0.1': + resolution: {integrity: sha512-+Y/Ji/gRl1gGAxRlbxk1Az4TewU2+NMChN/nLl0RY/eBAlRtAEhvoeTRJco3bqNZg8HTMK+i1faGKy3RzkJk3w==} + deprecated: This is a stub types definition. i18n-js provides its own type definitions, so you do not need this installed. '@types/invariant@2.2.37': resolution: {integrity: sha512-IwpIMieE55oGWiXkQPSBY1nw1nFs6bsKXTFskNY8sdS17K24vyEBRQZEwlRS7ZmXCWnJcQtbxWzly+cODWGs2A==} @@ -1822,12 +2282,15 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} '@types/jsdom@20.0.1': resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + '@types/jsdom@21.1.7': + resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1837,8 +2300,8 @@ packages: '@types/lodash.memoize@4.1.9': resolution: {integrity: sha512-glY1nQuoqX4Ft8Uk+KfJudOD7DQbbEDF6k9XpGncaohW3RW4eSWBlx6AA0fZCrh40tZcQNH4jS/Oc59J6Eq+aw==} - '@types/lodash@4.17.13': - resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} + '@types/lodash@4.17.23': + resolution: {integrity: sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -1849,14 +2312,14 @@ packages: '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - '@types/node@22.9.1': - resolution: {integrity: sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==} + '@types/node@25.0.9': + resolution: {integrity: sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/react@19.0.14': - resolution: {integrity: sha512-ixLZ7zG7j1fM0DijL9hDArwhwcCb4vqmePgwtV0GfnkHRSCUEv4LvzarcTdhoqgyMznUx/EhoTUv31CKZzkQlw==} + '@types/react@19.1.17': + resolution: {integrity: sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1870,8 +2333,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} '@typescript-eslint/eslint-plugin@8.53.1': resolution: {integrity: sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==} @@ -1888,32 +2351,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.34.0': - resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.53.1': resolution: {integrity: sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.34.0': - resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.53.1': resolution: {integrity: sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.34.0': - resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/tsconfig-utils@8.53.1': resolution: {integrity: sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1927,33 +2374,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.34.0': - resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.53.1': resolution: {integrity: sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.34.0': - resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.53.1': resolution: {integrity: sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.34.0': - resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.53.1': resolution: {integrity: sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1961,114 +2391,113 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.34.0': - resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.53.1': resolution: {integrity: sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unrs/resolver-binding-android-arm-eabi@1.9.0': - resolution: {integrity: sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.9.0': - resolution: {integrity: sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.9.0': - resolution: {integrity: sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.9.0': - resolution: {integrity: sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.9.0': - resolution: {integrity: sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==} + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': - resolution: {integrity: sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': - resolution: {integrity: sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': - resolution: {integrity: sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.9.0': - resolution: {integrity: sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': - resolution: {integrity: sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': - resolution: {integrity: sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': - resolution: {integrity: sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': - resolution: {integrity: sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.9.0': - resolution: {integrity: sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.9.0': - resolution: {integrity: sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==} + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.9.0': - resolution: {integrity: sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==} + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': - resolution: {integrity: sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': - resolution: {integrity: sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==} + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.9.0': - resolution: {integrity: sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==} + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} cpu: [x64] os: [win32] - '@urql/core@5.0.8': - resolution: {integrity: sha512-1GOnUw7/a9bzkcM0+U8U5MmxW2A7FE5YquuEmcJzTtW5tIs2EoS4F2ITpuKBjRBbyRjZgO860nWFPo1m4JImGA==} + '@urql/core@5.2.0': + resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==} - '@urql/exchange-retry@1.3.0': - resolution: {integrity: sha512-FLt+d81gP4oiHah4hWFDApimc+/xABWMU1AMYsZ1PVB0L0YPtrMCjbOp9WMM7hBzy4gbTDrG24sio0dCfSh/HQ==} + '@urql/exchange-retry@1.3.2': + resolution: {integrity: sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==} peerDependencies: '@urql/core': ^5.0.0 @@ -2100,61 +2529,10 @@ packages: '@vue/shared@3.5.27': resolution: {integrity: sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==} - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - - '@xmldom/xmldom@0.8.10': - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + '@xmldom/xmldom@0.8.11': + resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} engines: {node: '>=10.0.0'} - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -2179,19 +2557,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-loose@8.4.0: - resolution: {integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==} - engines: {node: '>=0.4.0'} - acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -2201,38 +2570,13 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - aggregate-error@4.0.1: - resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} - engines: {node: '>=12'} - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.11.0: - resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} - ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -2258,8 +2602,8 @@ packages: resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} - ansi-escapes@7.0.0: - resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + ansi-escapes@7.2.0: + resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} engines: {node: '>=18'} ansi-regex@2.1.1: @@ -2278,8 +2622,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} ansi-styles@2.2.1: @@ -2298,8 +2642,8 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} ansis@4.2.0: @@ -2332,9 +2676,6 @@ packages: resolution: {integrity: sha512-k9IEyaRFWEBjuazjgJIf6DnypoXppdxn0olkCQvts83VBehg1vm3IIp6HJpGpfDsUgymNJkYd7r8Q4pDfO6cpw==} hasBin: true - application-config-path@0.1.1: - resolution: {integrity: sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==} - are-docs-informative@0.0.2: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} @@ -2348,58 +2689,66 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} array-timsort@1.0.3: resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + async-limiter@1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - atomically@2.0.3: - resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} + atomically@2.1.0: + resolution: {integrity: sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==} available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@1.7.5: - resolution: {integrity: sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==} + axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} @@ -2407,52 +2756,73 @@ packages: peerDependencies: '@babel/core': ^7.8.0 + babel-jest@30.2.0: + resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-0 + babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} + babel-plugin-istanbul@7.0.1: + resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} + engines: {node: '>=12'} + babel-plugin-jest-hoist@29.6.3: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.2.0: + resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + babel-plugin-module-resolver@5.0.2: resolution: {integrity: sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==} - babel-plugin-polyfill-corejs2@0.4.12: - resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + babel-plugin-polyfill-corejs2@0.4.14: + resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + babel-plugin-polyfill-corejs3@0.13.0: + resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.3: - resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + babel-plugin-polyfill-regenerator@0.6.5: + resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-react-native-web@0.19.13: - resolution: {integrity: sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==} + babel-plugin-react-compiler@1.0.0: + resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} - babel-plugin-syntax-hermes-parser@0.25.1: - resolution: {integrity: sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==} + babel-plugin-react-native-web@0.21.2: + resolution: {integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==} + + babel-plugin-syntax-hermes-parser@0.29.1: + resolution: {integrity: sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==} babel-plugin-transform-flow-enums@0.0.2: resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0 || ^8.0.0-0 - babel-preset-expo@13.2.1: - resolution: {integrity: sha512-Ol3w0uLJNQ5tDfCf4L+IDTDMgJkVMQHhvYqMxs18Ib0DcaBQIfE8mneSSk7FcuI6FS0phw/rZhoEquQh1/Q3wA==} + babel-preset-expo@54.0.10: + resolution: {integrity: sha512-wTt7POavLFypLcPW/uC5v8y+mtQKDJiyGLzYCjqr9tx0Qc3vCXcDKk1iCFIj/++Iy5CWhhTflEa7VvVPNWeCfw==} peerDependencies: - babel-plugin-react-compiler: ^19.0.0-beta-e993439-20250405 + '@babel/runtime': ^7.20.0 + expo: '*' + react-refresh: '>=0.14.0 <1.0.0' peerDependenciesMeta: - babel-plugin-react-compiler: + '@babel/runtime': + optional: true + expo: optional: true babel-preset-jest@29.6.3: @@ -2461,6 +2831,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-preset-jest@30.2.0: + resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2479,6 +2855,9 @@ packages: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -2486,9 +2865,6 @@ packages: birecord@0.1.1: resolution: {integrity: sha512-VUpsf/qykW0heRlC8LooCq28Kxn3mAqKohhDG/49rrsQ1dT1CXyj/pgXS+5BSRzFTR/3DyIBOqQOrGyZOh71Aw==} - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - bmp-js@0.1.0: resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} @@ -2510,26 +2886,16 @@ packages: resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} engines: {node: '>= 5.10.0'} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.25.0: - resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.28.1: resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -2552,6 +2918,9 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + builtin-modules@5.0.0: resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==} engines: {node: '>=18.20'} @@ -2568,21 +2937,17 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} - - caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} - callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -2604,12 +2969,6 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001680: - resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} - - caniuse-lite@1.0.30001723: - resolution: {integrity: sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==} - caniuse-lite@1.0.30001765: resolution: {integrity: sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==} @@ -2619,8 +2978,8 @@ packages: centra@2.7.0: resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} - chalk-template@1.1.0: - resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} + chalk-template@1.1.2: + resolution: {integrity: sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA==} engines: {node: '>=14.16'} chalk@1.1.3: @@ -2639,8 +2998,8 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@5.4.4: @@ -2660,6 +3019,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -2673,10 +3035,6 @@ packages: engines: {node: '>=12.13.0'} hasBin: true - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - chromium-edge-launcher@0.2.0: resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==} @@ -2687,25 +3045,17 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.2.0: - resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} - engines: {node: '>=8'} - ci-info@4.3.1: resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} engines: {node: '>=8'} - cjs-module-lexer@1.4.1: - resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} - clean-stack@4.2.0: - resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} - engines: {node: '>=12'} - cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -2730,9 +3080,9 @@ packages: resolution: {integrity: sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==} engines: {node: '>=0.10.0'} - cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + cli-truncate@5.1.1: + resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==} + engines: {node: '>=20'} cli-width@2.2.1: resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} @@ -2764,8 +3114,8 @@ packages: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2794,9 +3144,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - command-exists@1.2.9: - resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} - commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -2805,6 +3152,10 @@ packages: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + engines: {node: '>=20'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -2816,8 +3167,8 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - comment-json@4.2.5: - resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} + comment-json@4.5.1: + resolution: {integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==} engines: {node: '>= 6'} comment-parser@1.4.1: @@ -2838,8 +3189,8 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} - compression@1.7.5: - resolution: {integrity: sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==} + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} engines: {node: '>= 0.8.0'} concat-map@0.0.1: @@ -2854,8 +3205,8 @@ packages: config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - configstore@7.0.0: - resolution: {integrity: sha512-yk7/5PN5im4qwz0WFZW3PXnzHgPu9mX29Y8uZ3aefe2lBPC1FYttWZRcaW9fKkT0pBCJyuQ2HfbmPVaODi9jcQ==} + configstore@7.1.0: + resolution: {integrity: sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==} engines: {node: '>=18'} connect@3.7.0: @@ -2878,26 +3229,19 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - core-js-compat@3.43.0: - resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} - core-js-compat@3.47.0: resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cosmiconfig-typescript-loader@5.1.0: - resolution: {integrity: sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA==} - engines: {node: '>=v16'} + cosmiconfig-typescript-loader@6.2.0: + resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==} + engines: {node: '>=v18'} peerDependencies: '@types/node': '*' - cosmiconfig: '>=8.2' - typescript: '>=4' - - cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} + cosmiconfig: '>=9' + typescript: '>=5' cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} @@ -2922,13 +3266,13 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + cross-env@10.1.0: + resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} + engines: {node: '>=20'} hasBin: true - cross-fetch@3.1.8: - resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} @@ -2941,15 +3285,15 @@ packages: css-in-js-utils@3.1.0: resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} css-tree@1.1.3: resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} engines: {node: '>=8.0.0'} - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} css.escape@1.5.1: @@ -2970,8 +3314,12 @@ packages: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + cssstyle@4.6.0: + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} + engines: {node: '>=18'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} dargs@8.1.0: resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} @@ -2981,16 +3329,20 @@ packages: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} date-fns@1.30.1: @@ -3012,24 +3364,6 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -3039,8 +3373,8 @@ packages: supports-color: optional: true - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} decode-named-character-reference@1.3.0: resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} @@ -3049,8 +3383,8 @@ packages: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + dedent@1.7.1: + resolution: {integrity: sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -3068,12 +3402,12 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} engines: {node: '>=18'} - default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + default-browser@5.4.0: + resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} engines: {node: '>=18'} defaults@1.0.4: @@ -3095,9 +3429,9 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - del@7.1.0: - resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==} - engines: {node: '>=14.16'} + del@8.0.1: + resolution: {integrity: sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==} + engines: {node: '>=18'} delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -3123,10 +3457,17 @@ packages: engines: {node: '>=0.10'} hasBin: true + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -3145,10 +3486,6 @@ packages: resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} engines: {node: '>=0.3.1'} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -3177,8 +3514,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} @@ -3192,25 +3529,24 @@ packages: resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} engines: {node: '>=12'} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + + dotenv@17.2.3: + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.167: - resolution: {integrity: sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==} - electron-to-chromium@1.5.267: resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} - electron-to-chromium@1.5.63: - resolution: {integrity: sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==} - elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} engines: {node: '>=0.10.0'} @@ -3219,15 +3555,12 @@ packages: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} - emoji-regex@10.4.0: - resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - empathic@2.0.0: resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} engines: {node: '>=14'} @@ -3240,14 +3573,18 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + enhanced-resolve@5.18.4: + resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} engines: {node: '>=10.13.0'} entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + entities@7.0.1: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} @@ -3264,43 +3601,38 @@ packages: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} - eol@0.9.1: - resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.23.5: - resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} + es-abstract@1.24.1: + resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 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: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} escalade@3.2.0: @@ -3355,8 +3687,8 @@ packages: eslint-flat-config-utils@3.0.0: resolution: {integrity: sha512-bzTam/pSnPANR0GUz4g7lo4fyzlQZwuz/h8ytsSS4w59N/JlXH/l7jmyNVBLxPz3B9/9ntz5ZLevGpazyDXJQQ==} - eslint-import-context@0.1.8: - resolution: {integrity: sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==} + eslint-import-context@0.1.9: + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: unrs-resolver: ^1.0.0 @@ -3367,8 +3699,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@4.4.3: - resolution: {integrity: sha512-elVDn1eWKFrWlzxlWl9xMt8LltjKl161Ix50JFC50tHXI5/TRP32SNEqlJ/bo/HV+g7Rou/tlPQU2AcRtIhrOg==} + eslint-import-resolver-typescript@4.4.4: + resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} engines: {node: ^16.17.0 || >=18.6.0} peerDependencies: eslint: '*' @@ -3396,8 +3728,8 @@ packages: peerDependencies: eslint: '*' - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + eslint-module-utils@2.12.1: + resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3445,8 +3777,8 @@ packages: peerDependencies: eslint: '>=9.0.0' - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3546,15 +3878,15 @@ packages: peerDependencies: eslint: '>=8.44.0' - eslint-plugin-tailwindcss@3.18.0: - resolution: {integrity: sha512-PQDU4ZMzFH0eb2DrfHPpbgo87Zgg2EXSMOj1NSfzdZm+aJzpuwGerfowMIaVehSREEa0idbf/eoNYAOHSJoDAQ==} + eslint-plugin-tailwindcss@3.18.2: + resolution: {integrity: sha512-QbkMLDC/OkkjFQ1iz/5jkMdHfiMu/uwujUHLAJK5iwNHD8RTxVTlsUezE0toTZ6VhybNBsk+gYGPDq2agfeRNA==} engines: {node: '>=18.12.0'} peerDependencies: tailwindcss: ^3.4.0 - eslint-plugin-testing-library@7.5.3: - resolution: {integrity: sha512-sZk5hIrx0p1ehvdS2qHefKwXHiEysiQN+FMGCzES6xRNUgwI3q4KdWMeAwpPDP9u0RDkNzJpebRUnNch1sJh+A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: ^9.14.0} + eslint-plugin-testing-library@7.15.4: + resolution: {integrity: sha512-qP0ZPWAvDrS3oxZJErUfn3SZiIzj5Zh2EWuyWxjR5Bsk84ntxpquh4D0USorfyw5MzECURQ8OcEeBQdspHatzQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3564,12 +3896,6 @@ packages: peerDependencies: eslint: '>=9.38.0' - eslint-plugin-unicorn@59.0.1: - resolution: {integrity: sha512-EtNXYuWPUmkgSU2E7Ttn57LbRREQesIP1BiLn7OZLKodopKfDXfBUkC/0j6mpw2JExwf43Uf3qLSvrSvppgy8Q==} - engines: {node: ^18.20.0 || ^20.10.0 || >=21.0.0} - peerDependencies: - eslint: '>=9.22.0' - eslint-plugin-unicorn@62.0.0: resolution: {integrity: sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==} engines: {node: ^20.10.0 || >=21.0.0} @@ -3611,10 +3937,6 @@ packages: '@vue/compiler-sfc': ^3.3.0 eslint: '>=9.0.0' - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3658,10 +3980,6 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - esquery@1.7.0: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} @@ -3670,10 +3988,6 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -3693,8 +4007,8 @@ packages: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} @@ -3726,58 +4040,59 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - expo-asset@11.1.5: - resolution: {integrity: sha512-GEQDCqC25uDBoXHEnXeBuwpeXvI+3fRGvtzwwt0ZKKzWaN+TgeF8H7c76p3Zi4DfBMFDcduM0CmOvJX+yCCLUQ==} + expo-asset@12.0.12: + resolution: {integrity: sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ==} peerDependencies: expo: '*' react: '*' react-native: '*' - expo-constants@17.1.6: - resolution: {integrity: sha512-q5mLvJiLtPcaZ7t2diSOlQ2AyxIO8YMVEJsEfI/ExkGj15JrflNQ7CALEW6IF/uNae/76qI/XcjEuuAyjdaCNw==} + expo-constants@18.0.13: + resolution: {integrity: sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==} peerDependencies: expo: '*' react-native: '*' - expo-crypto@14.1.5: - resolution: {integrity: sha512-ZXJoUMoUeiMNEoSD4itItFFz3cKrit6YJ/BR0hjuwNC+NczbV9rorvhvmeJmrU9O2cFQHhJQQR1fjQnt45Vu4Q==} + expo-crypto@15.0.8: + resolution: {integrity: sha512-aF7A914TB66WIlTJvl5J6/itejfY78O7dq3ibvFltL9vnTALJ/7LYHvLT4fwmx9yUNS6ekLBtDGWivFWnj2Fcw==} peerDependencies: expo: '*' - expo-dev-client@5.2.1: - resolution: {integrity: sha512-SzrHvXeyTGawzc/7ZIHFmaUYiCeRJagL9bJo/yTPmxdycFFOOdLs1FNMFXyYhB6YY4u5EKTCO6g1fug+0GV9sQ==} + expo-dev-client@6.0.20: + resolution: {integrity: sha512-5XjoVlj1OxakNxy55j/AUaGPrDOlQlB6XdHLLWAw61w5ffSpUDHDnuZzKzs9xY1eIaogOqTOQaAzZ2ddBkdXLA==} peerDependencies: expo: '*' - expo-dev-launcher@5.1.13: - resolution: {integrity: sha512-EAxkI0MOZk1E9tkk+QpyDhqlCjUqAr8q+mobcC3ZJIIi7KejhaQlGVlF1kUUITsYLvFvbT8egRgrsMO57T6uDA==} + expo-dev-launcher@6.0.20: + resolution: {integrity: sha512-a04zHEeT9sB0L5EB38fz7sNnUKJ2Ar1pXpcyl60Ki8bXPNCs9rjY7NuYrDkP/irM8+1DklMBqHpyHiLyJ/R+EA==} peerDependencies: expo: '*' - expo-dev-menu-interface@1.10.0: - resolution: {integrity: sha512-NxtM/qot5Rh2cY333iOE87dDg1S8CibW+Wu4WdLua3UMjy81pXYzAGCZGNOeY7k9GpNFqDPNDXWyBSlk9r2pBg==} + expo-dev-menu-interface@2.0.0: + resolution: {integrity: sha512-BvAMPt6x+vyXpThsyjjOYyjwfjREV4OOpQkZ0tNl+nGpsPfcY9mc6DRACoWnH9KpLzyIt3BOgh3cuy/h/OxQjw==} peerDependencies: expo: '*' - expo-dev-menu@6.1.12: - resolution: {integrity: sha512-Bz8yjZ6a+u7ZrZWzfn3aCgBwAX+QB0ktQyV7QMS5/agyesKiqM43+VdwNQqrm8w9tS8HZ2sf6RTvdek8YgOEHg==} + expo-dev-menu@7.0.18: + resolution: {integrity: sha512-4kTdlHrnZCAWCT6tZRQHSSjZ7vECFisL4T+nsG/GJDo/jcHNaOVGV5qPV9wzlTxyMk3YOPggRw4+g7Ownrg5eA==} peerDependencies: expo: '*' - expo-file-system@18.1.10: - resolution: {integrity: sha512-SyaWg+HitScLuyEeSG9gMSDT0hIxbM9jiZjSBP9l9zMnwZjmQwsusE6+7qGiddxJzdOhTP4YGUfvEzeeS0YL3Q==} + expo-file-system@19.0.21: + resolution: {integrity: sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg==} peerDependencies: expo: '*' react-native: '*' - expo-font@13.3.1: - resolution: {integrity: sha512-d+xrHYvSM9WB42wj8vP9OOFWyxed5R1evphfDb6zYBmC1dA9Hf89FpT7TNFtj2Bk3clTnpmVqQTCYbbA2P3CLg==} + expo-font@14.0.11: + resolution: {integrity: sha512-ga0q61ny4s/kr4k8JX9hVH69exVSIfcIc19+qZ7gt71Mqtm7xy2c6kwsPTCyhBW2Ro5yXTT8EaZOpuRi35rHbg==} peerDependencies: expo: '*' react: '*' + react-native: '*' - expo-image@2.3.0: - resolution: {integrity: sha512-muL8OSbgCskQJsyqenKPNULWXwRm5BY2ruS6WMo/EzFyI3iXI/0mXgb2J/NXUa8xCEYxSyoGkGZFyCBvGY1ofA==} + expo-image@3.0.11: + resolution: {integrity: sha512-4TudfUCLgYgENv+f48omnU8tjS2S0Pd9EaON5/s1ZUBRwZ7K8acEr4NfvLPSaeXvxW24iLAiyQ7sV7BXQH3RoA==} peerDependencies: expo: '*' react: '*' @@ -3790,68 +4105,90 @@ packages: expo-json-utils@0.15.0: resolution: {integrity: sha512-duRT6oGl80IDzH2LD2yEFWNwGIC2WkozsB6HF3cDYNoNNdUvFk6uN3YiwsTsqVM/D0z6LEAQ01/SlYvN+Fw0JQ==} - expo-keep-awake@14.1.4: - resolution: {integrity: sha512-wU9qOnosy4+U4z/o4h8W9PjPvcFMfZXrlUoKTMBW7F4pLqhkkP/5G4EviPZixv4XWFMjn1ExQ5rV6BX8GwJsWA==} + expo-keep-awake@15.0.8: + resolution: {integrity: sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ==} peerDependencies: expo: '*' react: '*' - expo-linking@7.1.5: - resolution: {integrity: sha512-8g20zOpROW78bF+bLI4a3ZWj4ntLgM0rCewKycPL0jk9WGvBrBtFtwwADJgOiV1EurNp3lcquerXGlWS+SOQyA==} + expo-linking@8.0.11: + resolution: {integrity: sha512-+VSaNL5om3kOp/SSKO5qe6cFgfSIWnnQDSbA7XLs3ECkYzXRquk5unxNS3pg7eK5kNUmQ4kgLI7MhTggAEUBLA==} peerDependencies: react: '*' react-native: '*' - expo-localization@16.1.5: - resolution: {integrity: sha512-dymvf0S11afyMeRbnoXd2iWWzFYwg21jHTnLBO/7ObNO1rKlYpus0ghVDnh+sJFV2u7s518e/JTcAqNR69EZkw==} + expo-localization@17.0.8: + resolution: {integrity: sha512-UrdwklZBDJ+t+ZszMMiE0SXZ2eJxcquCuQcl6EvGHM9K+e6YqKVRQ+w8qE+iIB3H75v2RJy6MHAaLK+Mqeo04g==} peerDependencies: expo: '*' react: '*' - expo-manifests@0.16.5: - resolution: {integrity: sha512-zLUeJogn2C7qOE75Zz7jcmJorMfIbSRR35ctspN0OK/Hq/+PAAptA8p9jNVC8xp/91uP9uI8f3xPhh+A11eR2A==} + expo-manifests@1.0.10: + resolution: {integrity: sha512-oxDUnURPcL4ZsOBY6X1DGWGuoZgVAFzp6PISWV7lPP2J0r8u1/ucuChBgpK7u1eLGFp6sDIPwXyEUCkI386XSQ==} peerDependencies: expo: '*' - expo-modules-autolinking@2.1.12: - resolution: {integrity: sha512-rW5YSW66pUx1nLqn7TO0eWRnP4LDvySW1Tom0wjexk3Tx/upg9LYE5tva7p5AX/cdFfiZcEqPcOxP4RyT++Xlg==} + expo-modules-autolinking@3.0.24: + resolution: {integrity: sha512-TP+6HTwhL7orDvsz2VzauyQlXJcAWyU3ANsZ7JGL4DQu8XaZv/A41ZchbtAYLfozNA2Ya1Hzmhx65hXryBMjaQ==} hasBin: true - expo-modules-core@2.4.0: - resolution: {integrity: sha512-Ko5eHBdvuMykjw9P9C9PF54/wBSsGOxaOjx92I5BwgKvEmUwN3UrXFV4CXzlLVbLfSYUQaLcB220xmPfgvT7Fg==} + expo-modules-core@3.0.29: + resolution: {integrity: sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q==} + peerDependencies: + react: '*' + react-native: '*' - expo-router@5.1.0: - resolution: {integrity: sha512-mnKpw35W6kKPpZm+ZxQei6HGUx2JO3znzqJZInzqrTZMgfAcHGgvP9AQFjg/Qi/Qy1CxunB9aQnqE9JPbSwbpw==} + expo-router@6.0.22: + resolution: {integrity: sha512-6eOwobaVZQRsSQv0IoWwVlPbJru1zbreVsuPFIWwk7HApENStU2MggrceHXJqXjGho+FKeXxUop/gqOFDzpOMg==} peerDependencies: - '@react-navigation/drawer': ^7.3.9 - '@testing-library/jest-native': '*' + '@expo/metro-runtime': ^6.1.2 + '@react-navigation/drawer': ^7.5.0 + '@testing-library/react-native': '>= 12.0.0' expo: '*' - expo-constants: '*' - expo-linking: '*' + expo-constants: ^18.0.13 + expo-linking: ^8.0.11 + react: '*' + react-dom: '*' + react-native: '*' + react-native-gesture-handler: '*' react-native-reanimated: '*' - react-native-safe-area-context: '*' + react-native-safe-area-context: '>= 5.4.0' react-native-screens: '*' + react-native-web: '*' + react-server-dom-webpack: ~19.0.3 || ~19.1.4 || ~19.2.3 peerDependenciesMeta: '@react-navigation/drawer': optional: true - '@testing-library/jest-native': + '@testing-library/react-native': + optional: true + react-dom: + optional: true + react-native-gesture-handler: optional: true react-native-reanimated: optional: true + react-native-web: + optional: true + react-server-dom-webpack: + optional: true + + expo-server@1.0.5: + resolution: {integrity: sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA==} + engines: {node: '>=20.16.0'} - expo-splash-screen@0.30.9: - resolution: {integrity: sha512-curHUaZxUTZ2dWvz32ao3xPv5mJr1LBqn5V8xm/IULAehB9RGCn8iKiROMN1PYebSG+56vPMuJmBm9P+ayvJpA==} + expo-splash-screen@31.0.13: + resolution: {integrity: sha512-1epJLC1cDlwwj089R2h8cxaU5uk4ONVAC+vzGiTZH4YARQhL4Stlz1MbR6yAS173GMosvkE6CAeihR7oIbCkDA==} peerDependencies: expo: '*' - expo-status-bar@2.2.3: - resolution: {integrity: sha512-+c8R3AESBoduunxTJ8353SqKAKpxL6DvcD8VKBuh81zzJyUUbfB4CVjr1GufSJEKsMzNPXZU+HJwXx7Xh7lx8Q==} + expo-status-bar@3.0.9: + resolution: {integrity: sha512-xyYyVg6V1/SSOZWh4Ni3U129XHCnFHBTcUo0dhWtFDrZbNp/duw5AGsQfb2sVeU0gxWHXSY1+5F0jnKYC7WuOw==} peerDependencies: react: '*' react-native: '*' - expo-system-ui@5.0.9: - resolution: {integrity: sha512-behQ4uP384++U9GjgXmyEno1Z8raN1/tZv7ZJhYkQkRj1g2xXvNltXN/PDRcOm/wCNqStVhDpYo2OOQm5E5/lQ==} + expo-system-ui@6.0.9: + resolution: {integrity: sha512-eQTYGzw1V4RYiYHL9xDLYID3Wsec2aZS+ypEssmF64D38aDrqbDgz1a2MSlHLQp2jHXSs3FvojhZ9FVela1Zcg==} peerDependencies: expo: '*' react-native: '*' @@ -3860,13 +4197,13 @@ packages: react-native-web: optional: true - expo-updates-interface@1.1.0: - resolution: {integrity: sha512-DeB+fRe0hUDPZhpJ4X4bFMAItatFBUPjw/TVSbJsaf3Exeami+2qbbJhWkcTMoYHOB73nOIcaYcWXYJnCJXO0w==} + expo-updates-interface@2.0.0: + resolution: {integrity: sha512-pTzAIufEZdVPKql6iMi5ylVSPqV1qbEopz9G6TSECQmnNde2nwq42PxdFBaUEd8IZJ/fdJLQnOT3m6+XJ5s7jg==} peerDependencies: expo: '*' - expo@53.0.12: - resolution: {integrity: sha512-dtmED749hkxDWCcvtD++tb8bAm3Twv8qnUOXzVyXA5owNG0mwDIz0HveJTpWK1UzkY4HcTVRezDf0tflZJ+JXQ==} + expo@54.0.31: + resolution: {integrity: sha512-kQ3RDqA/a59I7y+oqQGyrPbbYlgPMUdKBOgvFLpoHbD2bCM+F75i4N0mUijy7dG5F/CUCu2qHmGGUCXBbMDkCg==} hasBin: true peerDependencies: '@expo/dom-webview': '*' @@ -3882,8 +4219,8 @@ packages: react-native-webview: optional: true - exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} exsolve@1.0.8: resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} @@ -3895,8 +4232,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-stable-stringify@2.1.0: @@ -3905,11 +4242,11 @@ 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.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} @@ -3923,14 +4260,6 @@ packages: fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -3975,10 +4304,6 @@ packages: find-babel-config@2.1.2: resolution: {integrity: sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==} - find-up-simple@1.0.0: - resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} - engines: {node: '>=18'} - find-up-simple@1.0.1: resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} engines: {node: '>=18'} @@ -4003,14 +4328,14 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -4021,15 +4346,12 @@ packages: fontfaceobserver@2.3.0: resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} - form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} format@0.2.2: @@ -4064,13 +4386,17 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -4079,21 +4405,25 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.3.0: - resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} engines: {node: '>=18'} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} - get-port@3.2.0: - resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} - engines: {node: '>=4'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -4103,16 +4433,12 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} - - getenv@1.0.0: - resolution: {integrity: sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==} - engines: {node: '>=6'} + get-tsconfig@4.13.0: + resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} getenv@2.0.0: resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} @@ -4140,12 +4466,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true + glob@13.0.0: + resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} + engines: {node: 20 || >=22} glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -4159,13 +4482,13 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} + global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + global@4.4.0: resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -4174,10 +4497,6 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.2.0: - resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} - engines: {node: '>=18'} - globals@16.5.0: resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} @@ -4190,15 +4509,16 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@14.1.0: + resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} + engines: {node: '>=18'} globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -4209,12 +4529,18 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + has-ansi@2.0.0: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -4224,19 +4550,15 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-own-prop@2.0.0: - resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} - engines: {node: '>=8'} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} has-tostringtag@1.0.2: @@ -4250,14 +4572,20 @@ packages: hermes-estree@0.25.1: resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - hermes-estree@0.28.1: - resolution: {integrity: sha512-w3nxl/RGM7LBae0v8LH2o36+8VqwOZGv9rX1wyoWT6YaKZLqpJZ0YQ5P0LVr3tuRpf7vCx0iIG4i/VmBJejxTQ==} + hermes-estree@0.29.1: + resolution: {integrity: sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==} + + hermes-estree@0.32.0: + resolution: {integrity: sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==} hermes-parser@0.25.1: resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - hermes-parser@0.28.1: - resolution: {integrity: sha512-nf8o+hE8g7UJWParnccljHumE9Vlq8F7MqIdeahl+4x0tvCUJYRrT0L7h0MMg/X9YJmkNwsfbaNNrzPtFXOscg==} + hermes-parser@0.29.1: + resolution: {integrity: sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==} + + hermes-parser@0.32.0: + resolution: {integrity: sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==} hey-listen@1.0.8: resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} @@ -4269,10 +4597,18 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@8.1.0: + resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} + engines: {node: ^18.17.0 || >=20.5.0} + html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + html-entities@2.6.0: resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} @@ -4282,14 +4618,18 @@ packages: html-parse-stringify@3.0.1: resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -4306,16 +4646,24 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - husky@9.1.5: - resolution: {integrity: sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==} + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} hasBin: true hyphenate-style-name@1.1.0: resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} - i18next@23.14.0: - resolution: {integrity: sha512-Y5GL4OdA8IU2geRrt2+Uc1iIhsjICdHZzT9tNwQ3TVqdNzgxHToGCKf/TPRP80vTCAP6svg2WbbJL+Gx5MFQVA==} + i18n-js@4.5.1: + resolution: {integrity: sha512-n7jojFj1WC0tztgr0I8jqTXuIlY1xNzXnC3mjKX/YjJhimdM+jXM8vOmn9d3xQFNC6qDHJ4ovhdrGXrRXLIGkA==} + + i18next@25.8.0: + resolution: {integrity: sha512-urrg4HMFFMQZ2bbKRK7IZ8/CTE7D8H4JRlAwqA2ZwDRFfdd0K/4cdbNNLgfn9mo+I/h9wJu61qJzH7jCFAhUZQ==} + peerDependencies: + typescript: ^5 + peerDependenciesMeta: + typescript: + optional: true iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -4325,12 +4673,16 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-walk@6.0.5: - resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ignore-walk@7.0.0: + resolution: {integrity: sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==} + engines: {node: ^18.17.0 || >=20.5.0} ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} @@ -4343,17 +4695,13 @@ packages: image-q@4.0.0: resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} - image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + image-size@1.2.1: + resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} hasBin: true - import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} import-local@3.2.0: @@ -4361,8 +4709,8 @@ packages: engines: {node: '>=8'} hasBin: true - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -4380,8 +4728,8 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} - index-to-position@0.1.2: - resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} engines: {node: '>=18'} inflight@1.0.6: @@ -4404,6 +4752,15 @@ packages: inquirer-autosubmit-prompt@0.2.0: resolution: {integrity: sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q==} + inquirer@12.11.1: + resolution: {integrity: sha512-9VF7mrY+3OmsAfjH3yKz/pLbJ5z22E23hENKw3/LNSaA/sAt3v49bDRY+Ygct1xwuKT+U+cBfTzjCPySna69Qw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + inquirer@6.5.2: resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} engines: {node: '>=6.0.0'} @@ -4412,12 +4769,8 @@ packages: resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} engines: {node: '>=8.0.0'} - inquirer@9.3.7: - resolution: {integrity: sha512-LJKFHCSeIRq9hanN14IlOtPSTe3lNES7TYDTE2xxdAy1LS5rYphajK1qtwvj3YmQXvvk0U2Vbmcni8P9EIQW9w==} - engines: {node: '>=18'} - - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} invariant@2.2.4: @@ -4427,25 +4780,30 @@ packages: resolution: {integrity: sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q==} engines: {node: '>=0.10.0'} - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-arrayish@0.3.4: + resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} is-builtin-module@5.0.0: @@ -4459,22 +4817,18 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -4489,6 +4843,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + is-fullwidth-code-point@1.0.0: resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} engines: {node: '>=0.10.0'} @@ -4501,12 +4859,8 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - - is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} is-function@1.0.2: @@ -4516,6 +4870,10 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -4540,24 +4898,24 @@ packages: resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} engines: {node: '>=18'} - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - is-interactive@2.0.0: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + is-npm@6.1.0: + resolution: {integrity: sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} is-number@7.0.0: @@ -4586,16 +4944,20 @@ packages: is-promise@2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} is-scoped@3.0.0: resolution: {integrity: sha512-ezxLUq30kiTvP0w/5n9tj4qTOKlrA07Oty1hwTQ+lcqw11x6uc8sp7VRb2OVGRzKfCHZ2A22T5Zsau/Q2Akb0g==} engines: {node: '>=12'} - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} is-stream@1.1.0: @@ -4610,36 +4972,41 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} is-text-path@2.0.0: resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} is-url-superb@6.1.0: resolution: {integrity: sha512-LXdhGlYqUPdvEyIhWPEEwYYK3yrUiPcBjmFGlZNv1u5GtIL5qQRf7ddDyPNAvsMFqdzS923FROpTQU97tLe3JQ==} engines: {node: '>=12'} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} @@ -4682,13 +5049,10 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4726,6 +5090,10 @@ packages: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.2.0: + resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-docblock@29.7.0: resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4743,16 +5111,29 @@ packages: canvas: optional: true + jest-environment-jsdom@30.2.0: + resolution: {integrity: sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-expo@53.0.7: - resolution: {integrity: sha512-Uiu3ES0sWbsxpifQuBzXMI1/N9JygfJfwEby/Qw/OPndIQ1YeeIQqkbP52xn6UhdSM4qYQiteX3EjY8TfrZIoA==} + jest-expo@54.0.16: + resolution: {integrity: sha512-wPV5dddlNMORNSA7ZjEjePA+ztks3G5iKCOHLIauURnKQPTscnaat5juXPboK1Bv2I+c/RDfkt4uZtAmXdlu/g==} hasBin: true peerDependencies: expo: '*' react-native: '*' + react-server-dom-webpack: ~19.0.3 || ~19.1.4 || ~19.2.3 + peerDependenciesMeta: + react-server-dom-webpack: + optional: true jest-get-type@22.4.3: resolution: {integrity: sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==} @@ -4765,6 +5146,10 @@ packages: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@30.2.0: + resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-junit@16.0.0: resolution: {integrity: sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==} engines: {node: '>=10.12.0'} @@ -4777,14 +5162,26 @@ packages: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@30.2.0: + resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@30.2.0: + resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@30.2.0: + resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -4798,6 +5195,10 @@ packages: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-regex-util@30.0.1: + resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-resolve-dependencies@29.7.0: resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4822,6 +5223,10 @@ packages: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@30.2.0: + resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-validate@29.7.0: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4839,14 +5244,14 @@ packages: resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@30.2.0: + resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest@29.7.0: resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4863,8 +5268,12 @@ packages: jimp@0.22.12: resolution: {integrity: sha512-R5jZaYDnfkxKJy1dwLpj/7cvyjxiclxU3F4TrI/J4j2rS0niq6YDUMoPn5hs8GDpO+OZGo7Ky057CRtWesyhfg==} - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true jpeg-js@0.4.4: @@ -4873,12 +5282,12 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true jsc-safe-url@0.2.4: @@ -4905,10 +5314,14 @@ packages: canvas: optional: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} @@ -4918,9 +5331,6 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -4957,8 +5367,8 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - ky@1.7.2: - resolution: {integrity: sha512-OzIvbHKKDpi60TnF9t7UUVAF1B4mcqc02z5PIvrm08Wyb+yOcz63GRvEuVxNT18a9E1SrNouhB4W2NNLeD7Ykg==} + ky@1.14.2: + resolution: {integrity: sha512-q3RBbsO5A5zrPhB6CaCS8ZUv+NWCXv6JJT4Em0i264G9W0fdPB8YRfnnEi7Dm7X7omAkBIPojzYJ2D1oHTHqug==} engines: {node: '>=18'} lan-network@0.1.7: @@ -4980,84 +5390,150 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + lightningcss-android-arm64@1.31.1: + resolution: {integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + lightningcss-darwin-arm64@1.27.0: resolution: {integrity: sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] + lightningcss-darwin-arm64@1.31.1: + resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + lightningcss-darwin-x64@1.27.0: resolution: {integrity: sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] + lightningcss-darwin-x64@1.31.1: + resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + lightningcss-freebsd-x64@1.27.0: resolution: {integrity: sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] + lightningcss-freebsd-x64@1.31.1: + resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + lightningcss-linux-arm-gnueabihf@1.27.0: resolution: {integrity: sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] + lightningcss-linux-arm-gnueabihf@1.31.1: + resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + lightningcss-linux-arm64-gnu@1.27.0: resolution: {integrity: sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + lightningcss-linux-arm64-gnu@1.31.1: + resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + lightningcss-linux-arm64-musl@1.27.0: resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + lightningcss-linux-arm64-musl@1.31.1: + resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + lightningcss-linux-x64-gnu@1.27.0: resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + lightningcss-linux-x64-gnu@1.31.1: + resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + lightningcss-linux-x64-musl@1.27.0: resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + lightningcss-linux-x64-musl@1.31.1: + resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + lightningcss-win32-arm64-msvc@1.27.0: resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] + lightningcss-win32-arm64-msvc@1.31.1: + resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + lightningcss-win32-x64-msvc@1.27.0: resolution: {integrity: sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] + lightningcss-win32-x64-msvc@1.31.1: + resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + lightningcss@1.27.0: resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==} engines: {node: '>= 12.0.0'} - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + lightningcss@1.31.1: + resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==} + engines: {node: '>= 12.0.0'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.2.9: - resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==} - engines: {node: '>=18.12.0'} + lint-staged@16.2.7: + resolution: {integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==} + engines: {node: '>=20.17'} hasBin: true listr-input@0.2.1: @@ -5078,9 +5554,9 @@ packages: resolution: {integrity: sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==} engines: {node: '>=4'} - listr2@8.2.5: - resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} - engines: {node: '>=18.0.0'} + listr2@9.0.5: + resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} + engines: {node: '>=20.0.0'} listr@0.14.3: resolution: {integrity: sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==} @@ -5089,10 +5565,6 @@ packages: load-bmfont@1.4.2: resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==} - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - local-pkg@1.1.2: resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} engines: {node: '>=14'} @@ -5163,12 +5635,8 @@ packages: resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} engines: {node: '>=4'} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + log-symbols@7.0.1: + resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} engines: {node: '>=18'} log-update@2.3.0: @@ -5189,6 +5657,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.4: + resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -5202,14 +5674,21 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + make-plural@8.1.0: + resolution: {integrity: sha512-p8EfQ2LFxnU4KGc82hOYdUplQw0eoWJLzJVKyv2GR9sd4zkjA8bLSXLEmp/qE08c/cFTZOK8j6Ex80+Wey+4PA==} + makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - marky@1.2.5: - resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} + marky@1.3.0: + resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} mdast-util-find-and-replace@3.0.2: resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} @@ -5271,62 +5750,62 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - metro-babel-transformer@0.82.4: - resolution: {integrity: sha512-4juJahGRb1gmNbQq48lNinB6WFNfb6m0BQqi/RQibEltNiqTCxew/dBspI2EWA4xVCd3mQWGfw0TML4KurQZnQ==} - engines: {node: '>=18.18'} + metro-babel-transformer@0.83.3: + resolution: {integrity: sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==} + engines: {node: '>=20.19.4'} - metro-cache-key@0.82.4: - resolution: {integrity: sha512-2JCTqcpF+f2OghOpe/+x+JywfzDkrHdAqinPFWmK2ezNAU/qX0jBFaTETogPibFivxZJil37w9Yp6syX8rFUng==} - engines: {node: '>=18.18'} + metro-cache-key@0.83.3: + resolution: {integrity: sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==} + engines: {node: '>=20.19.4'} - metro-cache@0.82.4: - resolution: {integrity: sha512-vX0ylSMGtORKiZ4G8uP6fgfPdDiCWvLZUGZ5zIblSGylOX6JYhvExl0Zg4UA9pix/SSQu5Pnp9vdODMFsNIxhw==} - engines: {node: '>=18.18'} + metro-cache@0.83.3: + resolution: {integrity: sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==} + engines: {node: '>=20.19.4'} - metro-config@0.82.4: - resolution: {integrity: sha512-Ki3Wumr3hKHGDS7RrHsygmmRNc/PCJrvkLn0+BWWxmbOmOcMMJDSmSI+WRlT8jd5VPZFxIi4wg+sAt5yBXAK0g==} - engines: {node: '>=18.18'} + metro-config@0.83.3: + resolution: {integrity: sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==} + engines: {node: '>=20.19.4'} - metro-core@0.82.4: - resolution: {integrity: sha512-Xo4ozbxPg2vfgJGCgXZ8sVhC2M0lhTqD+tsKO2q9aelq/dCjnnSb26xZKcQO80CQOQUL7e3QWB7pLFGPjZm31A==} - engines: {node: '>=18.18'} + metro-core@0.83.3: + resolution: {integrity: sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==} + engines: {node: '>=20.19.4'} - metro-file-map@0.82.4: - resolution: {integrity: sha512-eO7HD1O3aeNsbEe6NBZvx1lLJUrxgyATjnDmb7bm4eyF6yWOQot9XVtxTDLNifECuvsZ4jzRiTInrbmIHkTdGA==} - engines: {node: '>=18.18'} + metro-file-map@0.83.3: + resolution: {integrity: sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==} + engines: {node: '>=20.19.4'} - metro-minify-terser@0.82.4: - resolution: {integrity: sha512-W79Mi6BUwWVaM8Mc5XepcqkG+TSsCyyo//dmTsgYfJcsmReQorRFodil3bbJInETvjzdnS1mCsUo9pllNjT1Hg==} - engines: {node: '>=18.18'} + metro-minify-terser@0.83.3: + resolution: {integrity: sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==} + engines: {node: '>=20.19.4'} - metro-resolver@0.82.4: - resolution: {integrity: sha512-uWoHzOBGQTPT5PjippB8rRT3iI9CTgFA9tRiLMzrseA5o7YAlgvfTdY9vFk2qyk3lW3aQfFKWkmqENryPRpu+Q==} - engines: {node: '>=18.18'} + metro-resolver@0.83.3: + resolution: {integrity: sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==} + engines: {node: '>=20.19.4'} - metro-runtime@0.82.4: - resolution: {integrity: sha512-vVyFO7H+eLXRV2E7YAUYA7aMGBECGagqxmFvC2hmErS7oq90BbPVENfAHbUWq1vWH+MRiivoRxdxlN8gBoF/dw==} - engines: {node: '>=18.18'} + metro-runtime@0.83.3: + resolution: {integrity: sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==} + engines: {node: '>=20.19.4'} - metro-source-map@0.82.4: - resolution: {integrity: sha512-9jzDQJ0FPas1FuQFtwmBHsez2BfhFNufMowbOMeG3ZaFvzeziE8A0aJwILDS3U+V5039ssCQFiQeqDgENWvquA==} - engines: {node: '>=18.18'} + metro-source-map@0.83.3: + resolution: {integrity: sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==} + engines: {node: '>=20.19.4'} - metro-symbolicate@0.82.4: - resolution: {integrity: sha512-LwEwAtdsx7z8rYjxjpLWxuFa2U0J6TS6ljlQM4WAATKa4uzV8unmnRuN2iNBWTmRqgNR77mzmI2vhwD4QSCo+w==} - engines: {node: '>=18.18'} + metro-symbolicate@0.83.3: + resolution: {integrity: sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==} + engines: {node: '>=20.19.4'} hasBin: true - metro-transform-plugins@0.82.4: - resolution: {integrity: sha512-NoWQRPHupVpnDgYguiEcm7YwDhnqW02iWWQjO2O8NsNP09rEMSq99nPjARWfukN7+KDh6YjLvTIN20mj3dk9kw==} - engines: {node: '>=18.18'} + metro-transform-plugins@0.83.3: + resolution: {integrity: sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==} + engines: {node: '>=20.19.4'} - metro-transform-worker@0.82.4: - resolution: {integrity: sha512-kPI7Ad/tdAnI9PY4T+2H0cdgGeSWWdiPRKuytI806UcN4VhFL6OmYa19/4abYVYF+Cd2jo57CDuwbaxRfmXDhw==} - engines: {node: '>=18.18'} + metro-transform-worker@0.83.3: + resolution: {integrity: sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==} + engines: {node: '>=20.19.4'} - metro@0.82.4: - resolution: {integrity: sha512-/gFmw3ux9CPG5WUmygY35hpyno28zi/7OUn6+OFfbweA8l0B+PPqXXLr0/T6cf5nclCcH0d22o+02fICaShVxw==} - engines: {node: '>=18.18'} + metro@0.83.3: + resolution: {integrity: sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==} + engines: {node: '>=20.19.4'} hasBin: true micromark-core-commonmark@2.0.3: @@ -5424,8 +5903,8 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} engines: {node: '>= 0.6'} mime-types@2.1.35: @@ -5453,13 +5932,17 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + min-document@2.19.2: + resolution: {integrity: sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==} min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -5482,29 +5965,20 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@3.0.2: - resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} - moti@0.29.0: - resolution: {integrity: sha512-o/blVE3lm0i/6E5X0RLK59SVWEGxo7pQh8dTm+JykVCYY9bcz0lWyZFCO1s+MMNq+nMsSZBX8lkp4im/AZmhyw==} + moti@0.30.0: + resolution: {integrity: sha512-YN78mcefo8kvJaL+TZNyusq6YA2aMFvBPl8WiLPy4eb4wqgOFggJOjP9bUr2YO8PrAt0uusmRG8K4RPL4OhCsA==} peerDependencies: react-native-reanimated: '*' @@ -5520,35 +5994,29 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nano-spawn@2.0.0: + resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==} + engines: {node: '>=20.17'} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - napi-postinstall@0.2.4: - resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true - nativewind@4.1.21: - resolution: {integrity: sha512-CYlxaP3pJ6K81l+mgXVnC5YakiNlm7zvSob8yYH91tVEBZbNd8SNImsSKJAsq0ULCDAhdWjB8kd7591r1yfnyg==} + nativewind@4.2.1: + resolution: {integrity: sha512-10uUB2Dlli3MH3NDL5nMHqJHz1A3e/E6mzjTj6cl7hHECClJ7HpE6v+xZL+GXdbwQSnWE+UWMIMsNz7yOQkAJQ==} engines: {node: '>=16'} peerDependencies: tailwindcss: '>3.3.0' @@ -5587,19 +6055,13 @@ packages: encoding: optional: true - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + node-forge@1.3.3: + resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} engines: {node: '>= 6.13.0'} node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} @@ -5611,9 +6073,9 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - np@10.0.7: - resolution: {integrity: sha512-vIPKQwOYKpQU40PU5x/vLfN2haj8ObxMvR1QGt7EZnBPWdm4WEbHdumYAnMV7AeR9kACsMqcqAP37sAo5cW5jA==} - engines: {git: '>=2.11.0', node: '>=18', npm: '>=9', pnpm: '>=8', yarn: '>=1.7.0'} + np@10.3.0: + resolution: {integrity: sha512-ERkEM70wpiWxRNwlN3YkpqyE3QGrgKZEiyVvv+Z4Im2mRE9nqCjnS1YFAXVdhGqVP5wpqG8cVc/A2bOJhEYFYQ==} + engines: {bun: '>=1', git: '>=2.11.0', node: '>=18', npm: '>=9', pnpm: '>=8', yarn: '>=1.7.0'} hasBin: true npm-name@8.0.0: @@ -5642,12 +6104,12 @@ packages: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} - nwsapi@2.2.13: - resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} + nwsapi@2.2.23: + resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} - ob1@0.82.4: - resolution: {integrity: sha512-n9S8e4l5TvkrequEAMDidl4yXesruWTNTzVkeaHSGywoTOIwTzZzKw7Z670H3eaXDZui5MJXjWGNzYowVZIxCA==} - engines: {node: '>=18.18'} + ob1@0.83.3: + resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==} + engines: {node: '>=20.19.4'} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -5660,16 +6122,16 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} object.fromentries@2.0.8: @@ -5680,8 +6142,8 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} omggif@1.0.10: @@ -5695,8 +6157,8 @@ packages: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} engines: {node: '>= 0.8'} once@1.4.0: @@ -5718,8 +6180,8 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} - open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} open@7.4.2: @@ -5738,10 +6200,6 @@ packages: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} engines: {node: '>=6'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - org-regex@1.0.0: resolution: {integrity: sha512-7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ==} engines: {node: '>=8'} @@ -5750,6 +6208,10 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -5782,28 +6244,25 @@ packages: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} - p-map@5.5.0: - resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} - engines: {node: '>=12'} - - p-map@7.0.2: - resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} p-memoize@7.1.1: resolution: {integrity: sha512-DZ/bONJILHkQ721hSr/E9wMz5Am/OTJ9P6LhLFo2Tu+jL8044tgc9LwHO8g4PiaYePnlVVRAJcKmgy8J9MVFrA==} engines: {node: '>=14.16'} - p-timeout@6.1.3: - resolution: {integrity: sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==} + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} engines: {node: '>=14.16'} p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-directory@8.1.0: + resolution: {integrity: sha512-qHKRW0pw3lYdZMQVkjDBqh8HlamH/LCww2PH7OWEp4Qrt3SFeYMNpnJrQzlSnGrDD5zGR51XqBh7FnNCdVNEHA==} + engines: {node: '>=18'} package-json@10.0.1: resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} @@ -5832,22 +6291,18 @@ packages: resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} engines: {node: '>=14'} - parse-headers@2.0.5: - resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + parse-headers@2.0.6: + resolution: {integrity: sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==} parse-imports-exports@0.2.4: resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-json@8.1.0: - resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} engines: {node: '>=18'} parse-png@2.1.0: @@ -5857,16 +6312,13 @@ packages: parse-statements@1.0.11: resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} - password-prompt@1.1.3: - resolution: {integrity: sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==} - path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -5898,10 +6350,18 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -5925,10 +6385,6 @@ packages: resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} engines: {node: '>=10'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -5942,8 +6398,8 @@ packages: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} pixelmatch@4.0.2: @@ -5954,10 +6410,6 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-dir@8.0.0: - resolution: {integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==} - engines: {node: '>=18'} - pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -5994,8 +6446,8 @@ packages: popmotion@11.0.3: resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} postcss-import@15.1.0: @@ -6004,22 +6456,28 @@ packages: peerDependencies: postcss: ^8.0.0 - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + postcss-js@4.1.0: + resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} peerDependencies: + jiti: '>=1.21.0' postcss: '>=8.0.9' - ts-node: '>=9.0.0' + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: + jiti: + optional: true postcss: optional: true - ts-node: + tsx: + optional: true + yaml: optional: true postcss-nested@6.2.0: @@ -6051,6 +6509,10 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + presentable-error@0.0.1: + resolution: {integrity: sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==} + engines: {node: '>=16'} + pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -6062,6 +6524,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@30.2.0: + resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + proc-log@4.2.0: resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6093,15 +6559,15 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - psl@1.10.0: - resolution: {integrity: sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + pupa@3.3.0: + resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} engines: {node: '>=12.20'} pure-rand@6.1.0: @@ -6127,9 +6593,6 @@ packages: queue@6.0.2: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -6138,18 +6601,18 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-devtools-core@6.1.2: - resolution: {integrity: sha512-ldFwzufLletzCikNJVYaxlxMLu7swJ3T2VrGfzXlMsVhZhPDKXA38DEROidaYZVgMAmQnIjymrmqto5pyfrwPA==} + react-devtools-core@6.1.5: + resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==} - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} peerDependencies: - react: ^19.0.0 + react: ^19.1.0 - react-error-boundary@4.0.13: - resolution: {integrity: sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==} + react-error-boundary@6.1.0: + resolution: {integrity: sha512-02k9WQ/mUhdbXir0tC1NiMesGzRPaCsJEWU/4bcFrbY1YMZOtHShtZP6zw0SJrBWA/31H0KT9/FgdL8+sPKgHA==} peerDependencies: - react: '>=16.13.1' + react: ^18.0.0 || ^19.0.0 react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -6160,24 +6623,27 @@ packages: peerDependencies: react: '>=17.0.0' - react-hook-form@7.53.0: - resolution: {integrity: sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ==} + react-hook-form@7.71.1: + resolution: {integrity: sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - react-i18next@15.0.1: - resolution: {integrity: sha512-NwxLqNM6CLbeGA9xPsjits0EnXdKgCRSS6cgkgOdNcPXqL+1fYNl8fBg1wmnnHvFy812Bt4IWTPE9zjoPmFj3w==} + react-i18next@16.5.3: + resolution: {integrity: sha512-fo+/NNch37zqxOzlBYrWMx0uy/yInPkRfjSuy4lqKdaecR17nvCHnEUt3QyzA8XjQ2B/0iW/5BhaHR3ZmukpGw==} peerDependencies: - i18next: '>= 23.2.3' + i18next: '>= 25.6.2' react: '>= 16.8.0' react-dom: '*' react-native: '*' + typescript: ^5 peerDependenciesMeta: react-dom: optional: true react-native: optional: true + typescript: + optional: true react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -6185,11 +6651,11 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-is@19.1.0: - resolution: {integrity: sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==} + react-is@19.2.3: + resolution: {integrity: sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==} - react-native-css-interop@0.1.20: - resolution: {integrity: sha512-afFcrXkFEv35pkMgc9R5k79d6KyZpTtDgci0tM9NTs76/0NZcQu2YuEXoC1r4Efg/2PsWI/1/GJKVXww7RQNDg==} + react-native-css-interop@0.2.1: + resolution: {integrity: sha512-B88f5rIymJXmy1sNC/MhTkb3xxBej1KkuAt7TiT9iM7oXz3RM8Bn+7GUrfR02TvSgKm4cg2XiSuLEKYfKwNsjA==} engines: {node: '>=18'} peerDependencies: react: '>=18' @@ -6204,8 +6670,8 @@ packages: react-native-svg: optional: true - react-native-edge-to-edge@1.6.0: - resolution: {integrity: sha512-2WCNdE3Qd6Fwg9+4BpbATUxCLcouF6YRY7K+J36KJ4l3y+tWN6XCqAC4DuoGblAAbb2sLkhEDp4FOlbOIot2Og==} + react-native-edge-to-edge@1.7.0: + resolution: {integrity: sha512-ERegbsq28yoMndn/Uq49i4h6aAhMvTEjOfkFh50yX9H/dMjjCr/Tix/es/9JcPRvC+q7VzCMWfxWDUb6Jrq1OQ==} peerDependencies: react: '*' react-native: '*' @@ -6217,48 +6683,50 @@ packages: react: '*' react-native: '*' - react-native-gesture-handler@2.24.0: - resolution: {integrity: sha512-ZdWyOd1C8axKJHIfYxjJKCcxjWEpUtUWgTOVY2wynbiveSQDm8X/PDyAKXSer/GOtIpjudUbACOndZXCN3vHsw==} + react-native-gesture-handler@2.28.0: + resolution: {integrity: sha512-0msfJ1vRxXKVgTgvL+1ZOoYw3/0z1R+Ked0+udoJhyplC2jbVKIJ8Z1bzWdpQRCV3QcQ87Op0zJVE5DhKK2A0A==} peerDependencies: react: '*' react-native: '*' - react-native-iphone-screen-helper@2.1.2: - resolution: {integrity: sha512-xczoNSb582bPW9na9f5ASlJ19vn/JBJ/jPzZ8f+u06F3tCa23dOIml7d4tHmbHdmVaWqf6tgRc95+tyavWg4Fw==} + react-native-iphone-screen-helper@2.2.1: + resolution: {integrity: sha512-gMHawcFa9O8St9rJ6zugW55O/sM3UUTLqc4MDaZQewBTIDjfvHzLmk2A/+PxySl5ZTfv6fyIV5g+2ozLRW5kcw==} peerDependencies: react-native: '>=0.42.0' - react-native-is-edge-to-edge@1.1.6: - resolution: {integrity: sha512-1pHnFTlBahins6UAajXUqeCOHew9l9C2C8tErnpGC3IyLJzvxD+TpYAixnCbrVS52f7+NvMttbiSI290XfwN0w==} + react-native-is-edge-to-edge@1.2.1: + resolution: {integrity: sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==} peerDependencies: - react: '>=18.2.0' - react-native: '>=0.73.0' + react: '*' + react-native: '*' - react-native-is-edge-to-edge@1.1.7: - resolution: {integrity: sha512-EH6i7E8epJGIcu7KpfXYXiV2JFIYITtq+rVS8uEb+92naMRBdxhTuS8Wn2Q7j9sqyO0B+Xbaaf9VdipIAmGW4w==} + react-native-keyboard-controller@1.18.5: + resolution: {integrity: sha512-wbYN6Tcu3G5a05dhRYBgjgd74KqoYWuUmroLpigRg9cXy5uYo7prTMIvMgvLtARQtUF7BOtFggUnzgoBOgk0TQ==} peerDependencies: react: '*' react-native: '*' + react-native-reanimated: '>=3.0.0' - react-native-keyboard-controller@1.17.4: - resolution: {integrity: sha512-aoXPy1LA4xPqBBv4gGZvGfMCIYbcWVWqDza0xEIC9TYla2Jj2H25ADnfcOk/5exrwUKsWiLFRywykSAR5RurFQ==} + react-native-mmkv@4.1.1: + resolution: {integrity: sha512-nYFjM27l7zVhIiyAqWEFRagGASecb13JMIlzAuOeakRRz9GMJ49hCQntUBE2aeuZRE4u4ehSqTOomB0mTF56Ew==} peerDependencies: react: '*' react-native: '*' - react-native-reanimated: '>=3.0.0' + react-native-nitro-modules: '*' - react-native-mmkv@3.1.0: - resolution: {integrity: sha512-HDh89nYVSufHMweZ3TVNUHQp2lsEh1ApaoV08bUOU1nrlmGgC3I7tGUn1Uy40Hs7yRMPKx5NWKE5Dh86jTVrwg==} + react-native-nitro-modules@0.33.2: + resolution: {integrity: sha512-ZlfOe6abODeHv/eZf8PxeSkrxIUhEKha6jaAAA9oXy7I6VPr7Ff4dUsAq3cyF3kX0L6qt2Dh9nzD2NdSsDwGpA==} peerDependencies: react: '*' react-native: '*' - react-native-reanimated@3.17.5: - resolution: {integrity: sha512-SxBK7wQfJ4UoWoJqQnmIC7ZjuNgVb9rcY5Xc67upXAFKftWg0rnkknTw6vgwnjRcvYThrjzUVti66XoZdDJGtw==} + react-native-reanimated@4.1.6: + resolution: {integrity: sha512-F+ZJBYiok/6Jzp1re75F/9aLzkgoQCOh4yxrnwATa8392RvM3kx+fiXXFvwcgE59v48lMwd9q0nzF1oJLXpfxQ==} peerDependencies: '@babel/core': ^7.0.0-0 react: '*' react-native: '*' + react-native-worklets: '>=0.5.0' react-native-restart@0.0.27: resolution: {integrity: sha512-8KScVICrXwcTSJ1rjWkqVTHyEKQIttm5AIMGSK1QG1+RS5owYlE4z/1DykOTdWfVl9l16FIk0w9Xzk9ZO6jxlA==} @@ -6266,48 +6734,55 @@ packages: react: '*' react-native: '*' - react-native-safe-area-context@5.4.0: - resolution: {integrity: sha512-JaEThVyJcLhA+vU0NU8bZ0a1ih6GiF4faZ+ArZLqpYbL6j7R3caRqj+mE3lEtKCuHgwjLg3bCxLL1GPUJZVqUA==} + react-native-safe-area-context@5.6.2: + resolution: {integrity: sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==} peerDependencies: react: '*' react-native: '*' - react-native-screens@4.11.1: - resolution: {integrity: sha512-F0zOzRVa3ptZfLpD0J8ROdo+y1fEPw+VBFq1MTY/iyDu08al7qFUO5hLMd+EYMda5VXGaTFCa8q7bOppUszhJw==} + react-native-screens@4.16.0: + resolution: {integrity: sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q==} peerDependencies: react: '*' react-native: '*' - react-native-svg@15.11.2: - resolution: {integrity: sha512-+YfF72IbWQUKzCIydlijV1fLuBsQNGMT6Da2kFlo1sh+LE3BIm/2Q7AR1zAAR6L0BFLi1WaQPLfFUC9bNZpOmw==} + react-native-svg@15.12.1: + resolution: {integrity: sha512-vCuZJDf8a5aNC2dlMovEv4Z0jjEUET53lm/iILFnFewa15b4atjVxU6Wirm6O9y6dEsdjDZVD7Q3QM4T1wlI8g==} peerDependencies: react: '*' react-native: '*' - react-native-url-polyfill@2.0.0: - resolution: {integrity: sha512-My330Do7/DvKnEvwQc0WdcBnFPploYKp9CYlefDXzIdEaA+PAhDYllkvGeEroEzvc4Kzzj2O4yVdz8v6fjRvhA==} + react-native-url-polyfill@3.0.0: + resolution: {integrity: sha512-aA5CiuUCUb/lbrliVCJ6lZ17/RpNJzvTO/C7gC/YmDQhTUoRD5q5HlJfwLWcxz4VgAhHwXKzhxH+wUN24tAdqg==} peerDependencies: react-native: '*' - react-native-web@0.20.0: - resolution: {integrity: sha512-OOSgrw+aON6R3hRosCau/xVxdLzbjEcsLysYedka0ZON4ZZe6n9xgeN9ZkoejhARM36oTlUgHIQqxGutEJ9Wxg==} + react-native-web@0.21.2: + resolution: {integrity: sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg==} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - react-native@0.79.4: - resolution: {integrity: sha512-CfxYMuszvnO/33Q5rB//7cU1u9P8rSOvzhE2053Phdb8+6bof9NLayCllU2nmPrm8n9o6RU1Fz5H0yquLQ0DAw==} - engines: {node: '>=18'} + react-native-worklets@0.7.2: + resolution: {integrity: sha512-DuLu1kMV/Uyl9pQHp3hehAlThoLw7Yk2FwRTpzASOmI+cd4845FWn3m2bk9MnjUw8FBRIyhwLqYm2AJaXDXsog==} + peerDependencies: + '@babel/core': '*' + react: '*' + react-native: '*' + + react-native@0.81.5: + resolution: {integrity: sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw==} + engines: {node: '>= 20.19.4'} hasBin: true peerDependencies: - '@types/react': ^19.0.0 - react: ^19.0.0 + '@types/react': ^19.1.0 + react: ^19.1.0 peerDependenciesMeta: '@types/react': optional: true - react-query-kit@3.3.0: - resolution: {integrity: sha512-4lmH/8eP/f0v4NnDuMS7hUPlw12yJ4YskghKZXnpoJrW8x6MJ6aNAqSTvqpGVk6WW+4nJH3NO6JXkPrOcMSEzg==} + react-query-kit@3.3.2: + resolution: {integrity: sha512-2dKF2kKNshfyOcEs7JG3VXCoh8SHmg8VtDb7LMgAKDrV3fFdcOh3efuEOkmD8IZ6PD+DjX9As2pL3uXKsMv2VQ==} peerDependencies: '@tanstack/react-query': ^4 || ^5 peerDependenciesMeta: @@ -6318,21 +6793,43 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-server-dom-webpack@19.0.0: - resolution: {integrity: sha512-hLug9KEXLc8vnU9lDNe2b2rKKDaqrp5gNiES4uyu2Up3FZfZJZmdwLFXlWzdA9gTB/6/cWduSB2K1Lfag2pSvw==} - engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} peerDependencies: - react: ^19.0.0 - react-dom: ^19.0.0 - webpack: ^5.59.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - react-test-renderer@19.0.0: - resolution: {integrity: sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA==} + react-test-renderer@19.1.0: + resolution: {integrity: sha512-jXkSl3CpvPYEF+p/eGDLB4sPoDX8pKkYvRl9+rR8HxLY0X04vW7hCm1/0zHoUSjPZ3bDa+wXWNTDVIw/R8aDVw==} peerDependencies: - react: ^19.0.0 + react: ^19.1.0 - react@19.0.0: - resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -6346,24 +6843,18 @@ packages: resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} engines: {node: '>=18'} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - readable-web-to-node-stream@3.0.2: - resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + readable-web-to-node-stream@3.0.4: + resolution: {integrity: sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==} engines: {node: '>=8'} readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recyclerlistview@4.2.3: - resolution: {integrity: sha512-STR/wj/FyT8EMsBzzhZ1l2goYirMkIgfV3gYEPxI3Kf3lOnu6f7Dryhyw7/IkQrgX5xtTcDrZMqytvteH9rL3g==} - peerDependencies: - react: '>= 15.2.1' - react-native: '>= 0.30.0' - redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -6372,8 +6863,12 @@ packages: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} engines: {node: '>=4'} regenerate@1.4.2: @@ -6382,12 +6877,6 @@ packages: regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -6396,16 +6885,16 @@ packages: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true - 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.1.1: - resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} - registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + registry-auth-token@5.1.1: + resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} engines: {node: '>=14'} registry-url@6.0.1: @@ -6415,22 +6904,10 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.11.2: - resolution: {integrity: sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==} - hasBin: true - - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - regjsparser@0.13.0: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6457,10 +6934,6 @@ packages: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} - resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -6469,22 +6942,23 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve-workspace-root@2.0.0: - resolution: {integrity: sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw==} - - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} + resolve-workspace-root@2.0.1: + resolution: {integrity: sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==} resolve.exports@2.0.3: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} hasBin: true resolve@1.7.1: @@ -6502,8 +6976,8 @@ packages: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rfdc@1.4.1: @@ -6514,19 +6988,22 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + rtl-detect@1.1.2: resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} - run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} - run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + run-async@4.0.6: + resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} engines: {node: '>=0.12.0'} run-parallel@1.2.0: @@ -6536,40 +7013,37 @@ packages: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + sax@1.4.4: + resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} + engines: {node: '>=11.0.0'} saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} scoped-regex@3.0.0: resolution: {integrity: sha512-yEsN6TuxZhZ1Tl9iB81frTNS292m0I/IG7+w8lTvfcJQP2x3vnpOoevjBoE3Np5A6KnZM2+RtVenihj9t6NiYg==} @@ -6598,23 +7072,16 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} - - send@0.19.1: - resolution: {integrity: sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==} + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} engines: {node: '>= 0.8.0'} serialize-error@2.1.0: resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} engines: {node: '>=0.10.0'} - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} engines: {node: '>= 0.8.0'} server-only@0.0.1: @@ -6628,12 +7095,20 @@ 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==} setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + sf-symbols-typescript@2.2.0: + resolution: {integrity: sha512-TPbeg0b7ylrswdGCji8FRGFAKuqbpQlLbL8SOle3j1iHSs5Ob5mhvMAxWN2UItOjgALAB5Zp3fmMfj8mbWvXKw==} + engines: {node: '>=10'} + shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} @@ -6645,11 +7120,24 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} signal-exit@3.0.7: @@ -6662,8 +7150,8 @@ packages: simple-plist@1.3.1: resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==} - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-swizzle@0.2.4: + resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -6672,10 +7160,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} @@ -6684,12 +7168,8 @@ packages: resolution: {integrity: sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==} engines: {node: '>=0.10.0'} - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - - slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} slugify@1.6.6: @@ -6730,8 +7210,8 @@ packages: spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - spdx-license-ids@3.0.20: - resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + spdx-license-ids@3.0.22: + resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} @@ -6744,8 +7224,8 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stable-hash-x@0.1.1: - resolution: {integrity: sha512-l0x1D6vhnsNUGPFVDx45eif0y6eedVC8nm5uACTrVFJFtl2mLRW17aWtVyxFCpn5t94VUPkjU8vSLwIuwwqtJQ==} + stable-hash-x@0.2.0: + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} engines: {node: '>=12.0.0'} stack-generator@2.0.10: @@ -6764,18 +7244,22 @@ packages: stacktrace-js@2.0.2: resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} - stacktrace-parser@0.1.10: - resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} + stacktrace-parser@0.1.11: + resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} engines: {node: '>=6'} statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + stream-buffers@2.2.0: resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} engines: {node: '>= 0.10.0'} @@ -6811,20 +7295,21 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + string-width@8.1.0: + resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} + engines: {node: '>=20'} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} @@ -6849,8 +7334,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} strip-bom@3.0.0: @@ -6873,10 +7358,6 @@ packages: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} - strip-indent@4.1.1: resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} @@ -6896,8 +7377,11 @@ packages: structured-headers@0.4.1: resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} - stubborn-fs@1.2.5: - resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + stubborn-fs@2.0.0: + resolution: {integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==} + + stubborn-utils@1.0.2: + resolution: {integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==} style-value-types@5.0.0: resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} @@ -6905,15 +7389,11 @@ packages: styleq@0.1.3: resolution: {integrity: sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==} - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true - sudo-prompt@8.2.5: - resolution: {integrity: sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} engines: {node: '>=0.8.0'} @@ -6953,26 +7433,30 @@ packages: resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} - tailwind-merge@2.5.4: - resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==} + tailwind-merge@3.4.0: + resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==} - tailwind-variants@0.2.1: - resolution: {integrity: sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==} + tailwind-variants@3.2.2: + resolution: {integrity: sha512-Mi4kHeMTLvKlM98XPnK+7HoBPmf4gygdFmqQPaDivc3DpYS6aIY6KiG/PgThrGvii5YZJqRsPz0aPyhoFzmZgg==} engines: {node: '>=16.x', pnpm: '>=7.x'} peerDependencies: + tailwind-merge: '>=3.0.0' tailwindcss: '*' + peerDependenciesMeta: + tailwind-merge: + optional: true - tailwindcss@3.4.4: - resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} + tailwindcss@3.4.19: + resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} engines: {node: '>=14.0.0'} hasBin: true - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} - tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + tar@7.5.6: + resolution: {integrity: sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==} engines: {node: '>=18'} temp-dir@2.0.0: @@ -6987,24 +7471,8 @@ packages: resolution: {integrity: sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==} engines: {node: '>=12'} - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.36.0: - resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} + terser@5.46.0: + resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} engines: {node: '>=10'} hasBin: true @@ -7035,21 +7503,21 @@ packages: tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - tinyexec@0.3.1: - resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} - tinyexec@1.0.2: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tldts-core@6.1.86: + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + + tldts@6.1.86: + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + hasBin: true + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -7081,6 +7549,10 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} + tough-cookie@5.1.2: + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + engines: {node: '>=16'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -7088,6 +7560,10 @@ packages: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} + tr46@5.1.1: + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + engines: {node: '>=18'} + ts-api-utils@2.4.0: resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} @@ -7102,29 +7578,32 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest@29.1.2: - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + ts-jest@29.4.6: + resolution: {integrity: sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 + '@jest/transform': ^29.0.0 || ^30.0.0 + '@jest/types': ^29.0.0 || ^30.0.0 + babel-jest: ^29.0.0 || ^30.0.0 esbuild: '*' - jest: ^29.0.0 + jest: ^29.0.0 || ^30.0.0 + jest-util: ^29.0.0 || ^30.0.0 typescript: '>=4.3 <6' peerDependenciesMeta: '@babel/core': optional: true + '@jest/transform': + optional: true '@jest/types': optional: true babel-jest: optional: true esbuild: optional: true - - ts-object-utils@0.0.5: - resolution: {integrity: sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==} + jest-util: + optional: true ts-pattern@5.9.0: resolution: {integrity: sha512-6s5V71mX8qBUmlgbrfL33xDUwO0fq48rxAu2LBE11WBeGdpCPOsXksQbZJHvHwhrd3QjUusd3mAOM5Gg0mFBLg==} @@ -7166,46 +7645,52 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - type-fest@4.27.0: - resolution: {integrity: sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true - ua-parser-js@1.0.39: - resolution: {integrity: sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==} + ua-parser-js@1.0.41: + resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} hasBin: true ufo@1.6.3: resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici@6.21.0: - resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} + undici@6.23.0: + resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} engines: {node: '>=18.17'} unicode-canonical-property-names-ecmascript@2.0.1: @@ -7216,18 +7701,22 @@ packages: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} engines: {node: '>=4'} - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -7252,20 +7741,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unrs-resolver@1.9.0: - resolution: {integrity: sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==} - - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} @@ -7283,13 +7760,33 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - use-latest-callback@0.2.4: - resolution: {integrity: sha512-LS2s2n1usUUnDq4oVh1ca6JFX9uSqUncTfAm44WMg0v6TxL7POUTk1B044NH8TeLkFbNajIsgDHcgNpNzZucdg==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-latest-callback@0.2.6: + resolution: {integrity: sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==} peerDependencies: react: '>=16.8' - use-sync-external-store@1.5.0: - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -7326,6 +7823,12 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vaul@1.1.2: + resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} @@ -7343,16 +7846,16 @@ packages: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} warn-once@0.1.1: resolution: {integrity: sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==} - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} - engines: {node: '>=10.13.0'} - wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -7367,25 +7870,16 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack@5.96.1: - resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} @@ -7393,6 +7887,10 @@ packages: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + whatwg-url-without-unicode@8.0.0-3: resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==} engines: {node: '>=10'} @@ -7401,17 +7899,30 @@ packages: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} + whatwg-url@14.2.0: + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + engines: {node: '>=18'} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - when-exit@2.1.3: - resolution: {integrity: sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==} + when-exit@2.1.5: + resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} which@2.0.2: @@ -7423,13 +7934,16 @@ packages: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} - wonka@6.3.4: - resolution: {integrity: sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg==} + wonka@6.3.5: + resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==} word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@3.0.1: resolution: {integrity: sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==} engines: {node: '>=4'} @@ -7442,12 +7956,8 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} wrappy@1.0.2: @@ -7457,6 +7967,10 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ws@6.2.3: resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} peerDependencies: @@ -7480,8 +7994,8 @@ packages: utf-8-validate: optional: true - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + ws@8.19.0: + resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7492,6 +8006,10 @@ packages: utf-8-validate: optional: true + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + xcode@3.0.1: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} @@ -7507,6 +8025,10 @@ packages: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + xml-parse-from-string@1.0.1: resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} @@ -7551,16 +8073,6 @@ packages: resolution: {integrity: sha512-h0uDm97wvT2bokfwwTmY6kJ1hp6YDFL0nRHwNKz8s/VD1FH/vvZjAKoMUE+un0eaYBSG7/c6h+lJTP+31tjgTw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} - engines: {node: '>= 14'} - hasBin: true - - yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} - engines: {node: '>= 14'} - hasBin: true - yaml@2.8.2: resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} engines: {node: '>= 14.6'} @@ -7578,19 +8090,23 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.1.1: - resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} - zod-validation-error@3.4.0: - resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + + zod-validation-error@3.5.4: + resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==} engines: {node: '>=18.0.0'} peerDependencies: - zod: ^3.18.0 + zod: ^3.24.4 zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} @@ -7598,14 +8114,14 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zustand@5.0.5: - resolution: {integrity: sha512-mILtRfKW9xM47hqxGIxCv12gXusoY/xTSHBYApXozR0HmQv299whhBeeAcRy+KrPPybzosvJBCOmVjq6x12fCg==} + zod@4.3.5: + resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} + + zustand@5.0.10: + resolution: {integrity: sha512-U1AiltS1O9hSy3rul+Ub82ut2fqIAefiSuwECWt6jlMVUGejvf+5omLcRBSzqbRagSM3hQZbtzdeRc6QVScXTg==} engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=18.0.0' @@ -7627,60 +8143,55 @@ packages: snapshots: - '@0no-co/graphql.web@1.0.11': {} + '@0no-co/graphql.web@1.2.0': {} - '@adobe/css-tools@4.4.1': {} + '@adobe/css-tools@4.4.4': {} '@alloc/quick-lru@5.2.0': {} - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@antfu/eslint-config@7.2.0(@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(@vue/compiler-sfc@3.5.27)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.6)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.6)))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@antfu/eslint-config@7.2.0(@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(@vue/compiler-sfc@3.5.27)(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.7)))(eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.7)))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.11.0 - '@eslint-community/eslint-plugin-eslint-comments': 4.6.0(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/eslint-plugin-eslint-comments': 4.6.0(eslint@9.39.2(jiti@1.21.7)) '@eslint/markdown': 7.5.1 - '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@1.21.6)) - '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@vitest/eslint-plugin': 1.6.6(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@1.21.7)) + '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@vitest/eslint-plugin': 1.6.6(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) ansis: 4.2.0 cac: 6.7.14 - eslint: 9.39.2(jiti@1.21.6) - eslint-config-flat-gitignore: 2.1.0(eslint@9.39.2(jiti@1.21.6)) + eslint: 9.39.2(jiti@1.21.7) + eslint-config-flat-gitignore: 2.1.0(eslint@9.39.2(jiti@1.21.7)) eslint-flat-config-utils: 3.0.0 - eslint-merge-processors: 2.0.0(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-antfu: 3.1.3(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-command: 3.4.0(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-import-lite: 0.5.0(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-jsdoc: 62.3.0(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-jsonc: 2.21.0(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-n: 17.23.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint-merge-processors: 2.0.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-antfu: 3.1.3(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-command: 3.4.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-import-lite: 0.5.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-jsdoc: 62.3.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-jsonc: 2.21.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-n: 17.23.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 5.3.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint-plugin-pnpm: 1.5.0(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-toml: 1.0.3(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-unicorn: 62.0.0(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-vue: 10.7.0(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.6)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.6))) - eslint-plugin-yml: 3.0.0(eslint@9.39.2(jiti@1.21.6)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.27)(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-perfectionist: 5.3.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint-plugin-pnpm: 1.5.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-toml: 1.0.3(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-unicorn: 62.0.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-vue: 10.7.0(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.7)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.7))) + eslint-plugin-yml: 3.0.0(eslint@9.39.2(jiti@1.21.7)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.27)(eslint@9.39.2(jiti@1.21.7)) globals: 17.0.0 jsonc-eslint-parser: 2.4.2 local-pkg: 1.1.2 parse-gitignore: 2.0.0 toml-eslint-parser: 1.0.3 - vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@1.21.6)) + vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@1.21.7)) yaml-eslint-parser: 2.0.0 optionalDependencies: - '@eslint-react/eslint-plugin': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@1.21.6)) - eslint-plugin-react-refresh: 0.4.26(eslint@9.39.2(jiti@1.21.6)) + '@eslint-react/eslint-plugin': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-react-refresh: 0.4.26(eslint@9.39.2(jiti@1.21.7)) transitivePeerDependencies: - '@eslint/json' - '@vue/compiler-sfc' @@ -7693,626 +8204,671 @@ snapshots: package-manager-detector: 1.6.0 tinyexec: 1.0.2 + '@asamuzakjp/css-color@3.2.0': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + lru-cache: 10.4.3 + '@babel/code-frame@7.10.4': dependencies: '@babel/highlight': 7.25.9 - '@babel/code-frame@7.26.2': + '@babel/code-frame@7.28.6': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.2': {} + '@babel/compat-data@7.28.6': {} - '@babel/core@7.26.0': + '@babel/core@7.28.6': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/code-frame': 7.28.6 + '@babel/generator': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.6) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.28.6 + '@babel/template': 7.28.6 + '@babel/traverse': 7.28.6 + '@babel/types': 7.28.6 + '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.26.2': + '@babel/generator@7.28.6': dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.25.9': + '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.28.6 - '@babel/helper-compilation-targets@7.25.9': + '@babel/helper-compilation-targets@7.28.6': dependencies: - '@babel/compat-data': 7.26.2 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 + '@babel/compat-data': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.6 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.0)': + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.1.1 + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 debug: 4.4.3 lodash.debounce: 4.0.8 - resolve: 1.22.8 + resolve: 1.22.11 transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.25.9': + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.6 '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.25.9': + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.28.6 + '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + '@babel/helper-module-transforms@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.25.9': + '@babel/helper-optimise-call-expression@7.27.1': dependencies: '@babel/types': 7.28.6 - '@babel/helper-plugin-utils@7.25.9': {} + '@babel/helper-plugin-utils@7.28.6': {} - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.6 + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': + '@babel/helper-replace-supers@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/helper-simple-access@7.25.9': + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.28.6 '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} - '@babel/helper-wrap-function@7.25.9': + '@babel/helper-wrap-function@7.28.6': dependencies: - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/template': 7.28.6 + '@babel/traverse': 7.28.6 '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/helpers@7.26.0': + '@babel/helpers@7.28.6': dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/template': 7.28.6 + '@babel/types': 7.28.6 '@babel/highlight@7.25.9': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.28.5 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.26.2': - dependencies: - '@babel/types': 7.26.0 - '@babel/parser@7.28.6': dependencies: '@babel/types': 7.28.6 - '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-proposal-decorators@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-export-default-from@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.26.0)': + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-export-default-from@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-transform-async-generator-functions@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.6) + '@babel/traverse': 7.28.6 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.6) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.6) + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.25.9 - globals: 11.12.0 + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.6) + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.28.6 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-flow-strip-types@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.28.6) - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-simple-access': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.6) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.6) + '@babel/traverse': 7.28.6 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.6) '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-regenerator@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - 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) + '@babel/core': 7.28.6 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.6) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.6) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.6) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-typescript@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.28.6 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.6) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/preset-react@7.25.9(@babel/core@7.26.0)': + '@babel/preset-react@7.28.5(@babel/core@7.28.6)': 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) + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.6) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': + '@babel/preset-typescript@7.27.1(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - '@babel/runtime@7.26.0': + '@babel/preset-typescript@7.28.5(@babel/core@7.28.6)': dependencies: - regenerator-runtime: 0.14.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.28.6) + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.28.6': {} - '@babel/template@7.25.9': + '@babel/template@7.28.6': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/code-frame': 7.28.6 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 - '@babel/traverse@7.25.9': + '@babel/traverse@7.28.6': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - debug: 4.3.7 - globals: 11.12.0 + '@babel/code-frame': 7.28.6 + '@babel/generator': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.6 + '@babel/template': 7.28.6 + '@babel/types': 7.28.6 + debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.26.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/types@7.28.6': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -8331,66 +8887,66 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@commitlint/cli@19.2.2(@types/node@22.9.1)(typescript@5.8.3)': + '@commitlint/cli@20.3.1(@types/node@25.0.9)(typescript@5.9.3)': dependencies: - '@commitlint/format': 19.5.0 - '@commitlint/lint': 19.6.0 - '@commitlint/load': 19.5.0(@types/node@22.9.1)(typescript@5.8.3) - '@commitlint/read': 19.5.0 - '@commitlint/types': 19.5.0 - execa: 8.0.1 + '@commitlint/format': 20.3.1 + '@commitlint/lint': 20.3.1 + '@commitlint/load': 20.3.1(@types/node@25.0.9)(typescript@5.9.3) + '@commitlint/read': 20.3.1 + '@commitlint/types': 20.3.1 + tinyexec: 1.0.2 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - typescript - '@commitlint/config-conventional@19.2.2': + '@commitlint/config-conventional@20.3.1': dependencies: - '@commitlint/types': 19.5.0 + '@commitlint/types': 20.3.1 conventional-changelog-conventionalcommits: 7.0.2 - '@commitlint/config-validator@19.5.0': + '@commitlint/config-validator@20.3.1': dependencies: - '@commitlint/types': 19.5.0 + '@commitlint/types': 20.3.1 ajv: 8.17.1 - '@commitlint/ensure@19.5.0': + '@commitlint/ensure@20.3.1': dependencies: - '@commitlint/types': 19.5.0 + '@commitlint/types': 20.3.1 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 lodash.startcase: 4.4.0 lodash.upperfirst: 4.3.1 - '@commitlint/execute-rule@19.5.0': {} + '@commitlint/execute-rule@20.0.0': {} - '@commitlint/format@19.5.0': + '@commitlint/format@20.3.1': dependencies: - '@commitlint/types': 19.5.0 - chalk: 5.3.0 + '@commitlint/types': 20.3.1 + chalk: 5.6.2 - '@commitlint/is-ignored@19.6.0': + '@commitlint/is-ignored@20.3.1': dependencies: - '@commitlint/types': 19.5.0 - semver: 7.6.3 + '@commitlint/types': 20.3.1 + semver: 7.7.3 - '@commitlint/lint@19.6.0': + '@commitlint/lint@20.3.1': dependencies: - '@commitlint/is-ignored': 19.6.0 - '@commitlint/parse': 19.5.0 - '@commitlint/rules': 19.6.0 - '@commitlint/types': 19.5.0 + '@commitlint/is-ignored': 20.3.1 + '@commitlint/parse': 20.3.1 + '@commitlint/rules': 20.3.1 + '@commitlint/types': 20.3.1 - '@commitlint/load@19.5.0(@types/node@22.9.1)(typescript@5.8.3)': + '@commitlint/load@20.3.1(@types/node@25.0.9)(typescript@5.9.3)': dependencies: - '@commitlint/config-validator': 19.5.0 - '@commitlint/execute-rule': 19.5.0 - '@commitlint/resolve-extends': 19.5.0 - '@commitlint/types': 19.5.0 - chalk: 5.3.0 - cosmiconfig: 9.0.0(typescript@5.8.3) - cosmiconfig-typescript-loader: 5.1.0(@types/node@22.9.1)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) + '@commitlint/config-validator': 20.3.1 + '@commitlint/execute-rule': 20.0.0 + '@commitlint/resolve-extends': 20.3.1 + '@commitlint/types': 20.3.1 + chalk: 5.6.2 + cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.2.0(@types/node@25.0.9)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -8398,71 +8954,92 @@ snapshots: - '@types/node' - typescript - '@commitlint/message@19.5.0': {} + '@commitlint/message@20.0.0': {} - '@commitlint/parse@19.5.0': + '@commitlint/parse@20.3.1': dependencies: - '@commitlint/types': 19.5.0 + '@commitlint/types': 20.3.1 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 - '@commitlint/read@19.5.0': + '@commitlint/read@20.3.1': dependencies: - '@commitlint/top-level': 19.5.0 - '@commitlint/types': 19.5.0 + '@commitlint/top-level': 20.0.0 + '@commitlint/types': 20.3.1 git-raw-commits: 4.0.0 minimist: 1.2.8 - tinyexec: 0.3.1 + tinyexec: 1.0.2 - '@commitlint/resolve-extends@19.5.0': + '@commitlint/resolve-extends@20.3.1': dependencies: - '@commitlint/config-validator': 19.5.0 - '@commitlint/types': 19.5.0 + '@commitlint/config-validator': 20.3.1 + '@commitlint/types': 20.3.1 global-directory: 4.0.1 - import-meta-resolve: 4.1.0 + import-meta-resolve: 4.2.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - '@commitlint/rules@19.6.0': + '@commitlint/rules@20.3.1': dependencies: - '@commitlint/ensure': 19.5.0 - '@commitlint/message': 19.5.0 - '@commitlint/to-lines': 19.5.0 - '@commitlint/types': 19.5.0 + '@commitlint/ensure': 20.3.1 + '@commitlint/message': 20.0.0 + '@commitlint/to-lines': 20.0.0 + '@commitlint/types': 20.3.1 - '@commitlint/to-lines@19.5.0': {} + '@commitlint/to-lines@20.0.0': {} - '@commitlint/top-level@19.5.0': + '@commitlint/top-level@20.0.0': dependencies: find-up: 7.0.0 - '@commitlint/types@19.5.0': + '@commitlint/types@20.3.1': dependencies: - '@types/conventional-commits-parser': 5.0.0 - chalk: 5.3.0 + '@types/conventional-commits-parser': 5.0.2 + chalk: 5.6.2 + + '@csstools/color-helpers@5.1.0': {} + + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/color-helpers': 5.1.0 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-tokenizer@3.0.4': {} - '@dev-plugins/react-query@0.0.7(@tanstack/react-query@5.52.1(react@19.0.0))(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))': + '@dev-plugins/react-query@0.4.0(@tanstack/react-query@5.90.19(react@19.1.0))(expo@54.0.31)(react@19.1.0)': dependencies: - '@tanstack/react-query': 5.52.1(react@19.0.0) - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - flatted: 3.3.2 + '@tanstack/react-query': 5.90.19(react@19.1.0) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + flatted: 3.3.3 + react: 19.1.0 '@egjs/hammerjs@2.0.17': dependencies: '@types/hammerjs': 2.0.46 - '@emnapi/core@1.4.3': + '@emnapi/core@1.8.1': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 optional: true @@ -8475,6 +9052,8 @@ snapshots: '@emotion/memoize@0.7.4': optional: true + '@epic-web/invariant@1.0.0': {} + '@es-joy/jsdoccomment@0.78.0': dependencies: '@types/estree': 1.0.8 @@ -8493,104 +9072,97 @@ snapshots: '@es-joy/resolve.exports@1.2.0': {} - '@eslint-community/eslint-plugin-eslint-comments@4.6.0(eslint@9.39.2(jiti@1.21.6))': + '@eslint-community/eslint-plugin-eslint-comments@4.6.0(eslint@9.39.2(jiti@1.21.7))': dependencies: escape-string-regexp: 4.0.0 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) ignore: 7.0.5 - '@eslint-community/eslint-utils@4.7.0(eslint@9.39.2(jiti@1.21.6))': - dependencies: - eslint: 9.39.2(jiti@1.21.6) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@1.21.7))': dependencies: - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} - '@eslint-community/regexpp@4.12.2': {} - '@eslint-react/ast@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@eslint-react/ast@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-react/eff': 2.7.2 '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) string-ts: 2.3.1 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@eslint-react/core@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@eslint-react/core@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@eslint-react/eff': 2.7.2 - '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.53.1 '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) birecord: 0.1.1 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) ts-pattern: 5.9.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color '@eslint-react/eff@2.7.2': {} - '@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@eslint-react/eslint-plugin@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-react/eff': 2.7.2 - '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) - eslint-plugin-react-dom: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint-plugin-react-hooks-extra: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint-plugin-react-naming-convention: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint-plugin-react-web-api: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint-plugin-react-x: 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) + eslint-plugin-react-dom: 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint-plugin-react-hooks-extra: 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint-plugin-react-naming-convention: 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint-plugin-react-web-api: 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint-plugin-react-x: 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@eslint-react/shared@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@eslint-react/shared@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-react/eff': 2.7.2 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) ts-pattern: 5.9.0 - typescript: 5.8.3 - zod: 3.25.76 + typescript: 5.9.3 + zod: 4.3.5 transitivePeerDependencies: - supports-color - '@eslint-react/var@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@eslint-react/var@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@eslint-react/eff': 2.7.2 '@typescript-eslint/scope-manager': 8.53.1 '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) ts-pattern: 5.9.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@eslint/compat@1.4.1(eslint@9.39.2(jiti@1.21.6))': + '@eslint/compat@1.4.1(eslint@9.39.2(jiti@1.21.7))': dependencies: '@eslint/core': 0.17.0 optionalDependencies: - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) '@eslint/config-array@0.21.1': dependencies: @@ -8608,10 +9180,6 @@ snapshots: dependencies: '@eslint/core': 1.0.1 - '@eslint/core@0.13.0': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 @@ -8620,15 +9188,15 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': + '@eslint/eslintrc@3.3.3': dependencies: ajv: 6.12.6 debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 + import-fresh: 3.3.1 + js-yaml: 4.1.1 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -8652,11 +9220,6 @@ snapshots: '@eslint/object-schema@2.1.7': {} - '@eslint/plugin-kit@0.2.8': - dependencies: - '@eslint/core': 0.13.0 - levn: 0.4.1 - '@eslint/plugin-kit@0.4.1': dependencies: '@eslint/core': 0.17.0 @@ -8667,28 +9230,29 @@ snapshots: '@eslint/core': 1.0.1 levn: 0.4.1 - '@expo/cli@0.24.15': - dependencies: - '@0no-co/graphql.web': 1.0.11 - '@babel/runtime': 7.26.0 - '@expo/code-signing-certificates': 0.0.5 - '@expo/config': 11.0.10 - '@expo/config-plugins': 10.0.3 - '@expo/devcert': 1.1.4 - '@expo/env': 1.0.5 - '@expo/image-utils': 0.7.4 - '@expo/json-file': 9.1.4 - '@expo/metro-config': 0.20.15 - '@expo/osascript': 2.2.4 - '@expo/package-manager': 1.8.4 - '@expo/plist': 0.3.4 - '@expo/prebuild-config': 9.0.7 + '@expo/cli@54.0.21(expo-router@6.0.22)(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))': + dependencies: + '@0no-co/graphql.web': 1.2.0 + '@expo/code-signing-certificates': 0.0.6 + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/devcert': 1.2.1 + '@expo/env': 2.0.8 + '@expo/image-utils': 0.8.8 + '@expo/json-file': 10.0.8 + '@expo/metro': 54.2.0 + '@expo/metro-config': 54.0.13(expo@54.0.31) + '@expo/osascript': 2.3.8 + '@expo/package-manager': 1.9.10 + '@expo/plist': 0.4.8 + '@expo/prebuild-config': 54.0.8(expo@54.0.31) + '@expo/schema-utils': 0.1.8 '@expo/spawn-async': 1.7.2 - '@expo/ws-tunnel': 1.0.4 - '@expo/xcpretty': 4.3.1 - '@react-native/dev-middleware': 0.79.4 - '@urql/core': 5.0.8 - '@urql/exchange-retry': 1.3.0(@urql/core@5.0.8) + '@expo/ws-tunnel': 1.0.6 + '@expo/xcpretty': 4.3.2 + '@react-native/dev-middleware': 0.81.5 + '@urql/core': 5.2.0 + '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0) accepts: 1.3.8 arg: 5.0.2 better-opn: 3.0.2 @@ -8696,16 +9260,18 @@ snapshots: bplist-parser: 0.3.2 chalk: 4.1.2 ci-info: 3.9.0 - compression: 1.7.5 + compression: 1.8.1 connect: 3.7.0 debug: 4.4.3 env-editor: 0.4.2 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-server: 1.0.5 freeport-async: 2.0.0 getenv: 2.0.0 - glob: 10.4.5 + glob: 13.0.0 lan-network: 0.1.7 minimatch: 9.0.5 - node-forge: 1.3.1 + node-forge: 1.3.3 npm-package-arg: 11.0.3 ora: 3.4.0 picomatch: 3.0.1 @@ -8716,62 +9282,45 @@ snapshots: qrcode-terminal: 0.11.0 require-from-string: 2.0.2 requireg: 0.2.2 - resolve: 1.22.8 + resolve: 1.22.11 resolve-from: 5.0.0 resolve.exports: 2.0.3 - semver: 7.7.2 - send: 0.19.1 + semver: 7.7.3 + send: 0.19.2 slugify: 1.6.6 source-map-support: 0.5.21 - stacktrace-parser: 0.1.10 + stacktrace-parser: 0.1.11 structured-headers: 0.4.1 - tar: 7.4.3 + tar: 7.5.6 terminal-link: 2.1.1 - undici: 6.21.0 + undici: 6.23.0 wrap-ansi: 7.0.0 - ws: 8.18.0 + ws: 8.19.0 + optionalDependencies: + expo-router: 6.0.22(7685cb546f9fca472a3d751aa95b1069) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - bufferutil - graphql - supports-color - utf-8-validate - '@expo/code-signing-certificates@0.0.5': - dependencies: - node-forge: 1.3.1 - nullthrows: 1.1.1 - - '@expo/config-plugins@10.0.2': + '@expo/code-signing-certificates@0.0.6': dependencies: - '@expo/config-types': 53.0.4 - '@expo/json-file': 9.1.4 - '@expo/plist': 0.3.4 - '@expo/sdk-runtime-versions': 1.0.0 - chalk: 4.1.2 - debug: 4.4.3 - getenv: 1.0.0 - glob: 10.4.5 - resolve-from: 5.0.0 - semver: 7.6.3 - slash: 3.0.0 - slugify: 1.6.6 - xcode: 3.0.1 - xml2js: 0.6.0 - transitivePeerDependencies: - - supports-color + node-forge: 1.3.3 - '@expo/config-plugins@10.0.3': + '@expo/config-plugins@54.0.4': dependencies: - '@expo/config-types': 53.0.4 - '@expo/json-file': 9.1.4 - '@expo/plist': 0.3.4 + '@expo/config-types': 54.0.10 + '@expo/json-file': 10.0.8 + '@expo/plist': 0.4.8 '@expo/sdk-runtime-versions': 1.0.0 chalk: 4.1.2 debug: 4.4.3 getenv: 2.0.0 - glob: 10.4.5 + glob: 13.0.0 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 slash: 3.0.0 slugify: 1.6.6 xcode: 3.0.1 @@ -8779,262 +9328,397 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/config-types@53.0.4': {} + '@expo/config-types@54.0.10': {} - '@expo/config@11.0.10': + '@expo/config@12.0.13': dependencies: '@babel/code-frame': 7.10.4 - '@expo/config-plugins': 10.0.2 - '@expo/config-types': 53.0.4 - '@expo/json-file': 9.1.4 + '@expo/config-plugins': 54.0.4 + '@expo/config-types': 54.0.10 + '@expo/json-file': 10.0.8 deepmerge: 4.3.1 - getenv: 1.0.0 - glob: 10.4.5 + getenv: 2.0.0 + glob: 13.0.0 require-from-string: 2.0.2 resolve-from: 5.0.0 - resolve-workspace-root: 2.0.0 - semver: 7.6.3 + resolve-workspace-root: 2.0.1 + semver: 7.7.3 slugify: 1.6.6 - sucrase: 3.35.0 + sucrase: 3.35.1 transitivePeerDependencies: - supports-color - '@expo/devcert@1.1.4': + '@expo/devcert@1.2.1': dependencies: - application-config-path: 0.1.1 - command-exists: 1.2.9 + '@expo/sudo-prompt': 9.3.2 debug: 3.2.7 - eol: 0.9.1 - get-port: 3.2.0 - glob: 10.4.5 - lodash: 4.17.21 - mkdirp: 0.5.6 - password-prompt: 1.1.3 - sudo-prompt: 8.2.5 - tmp: 0.0.33 - tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@expo/env@1.0.5': + '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + chalk: 4.1.2 + optionalDependencies: + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + + '@expo/env@2.0.8': dependencies: chalk: 4.1.2 debug: 4.4.3 - dotenv: 16.4.5 + dotenv: 16.4.7 dotenv-expand: 11.0.7 - getenv: 1.0.0 + getenv: 2.0.0 transitivePeerDependencies: - supports-color - '@expo/fingerprint@0.13.1': + '@expo/fingerprint@0.15.4': dependencies: '@expo/spawn-async': 1.7.2 arg: 5.0.2 chalk: 4.1.2 debug: 4.4.3 - find-up: 5.0.0 getenv: 2.0.0 - glob: 10.4.5 + glob: 13.0.0 ignore: 5.3.2 minimatch: 9.0.5 p-limit: 3.1.0 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color - '@expo/image-utils@0.7.4': + '@expo/image-utils@0.8.8': dependencies: '@expo/spawn-async': 1.7.2 chalk: 4.1.2 - getenv: 1.0.0 + getenv: 2.0.0 jimp-compact: 0.16.1 parse-png: 2.1.0 resolve-from: 5.0.0 - semver: 7.6.3 + resolve-global: 1.0.0 + semver: 7.7.3 temp-dir: 2.0.0 unique-string: 2.0.0 - '@expo/json-file@9.1.4': + '@expo/json-file@10.0.8': dependencies: '@babel/code-frame': 7.10.4 json5: 2.2.3 - '@expo/metro-config@0.20.15': + '@expo/metro-config@54.0.13(expo@54.0.31)': dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - '@expo/config': 11.0.10 - '@expo/env': 1.0.5 - '@expo/json-file': 9.1.4 + '@babel/code-frame': 7.28.6 + '@babel/core': 7.28.6 + '@babel/generator': 7.28.6 + '@expo/config': 12.0.13 + '@expo/env': 2.0.8 + '@expo/json-file': 10.0.8 + '@expo/metro': 54.2.0 '@expo/spawn-async': 1.7.2 + browserslist: 4.28.1 chalk: 4.1.2 debug: 4.4.3 - dotenv: 16.4.5 + dotenv: 16.4.7 dotenv-expand: 11.0.7 getenv: 2.0.0 - glob: 10.4.5 + glob: 13.0.0 + hermes-parser: 0.29.1 jsc-safe-url: 0.2.4 - lightningcss: 1.27.0 + lightningcss: 1.31.1 minimatch: 9.0.5 postcss: 8.4.49 resolve-from: 5.0.0 + optionalDependencies: + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: + - bufferutil - supports-color + - utf-8-validate - '@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))': + '@expo/metro-runtime@6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + anser: 1.4.10 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + pretty-format: 29.7.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + stacktrace-parser: 0.1.11 + whatwg-fetch: 3.6.20 + optionalDependencies: + react-dom: 19.1.0(react@19.1.0) + + '@expo/metro@54.2.0': + dependencies: + metro: 0.83.3 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 + metro-file-map: 0.83.3 + metro-minify-terser: 0.83.3 + metro-resolver: 0.83.3 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + metro-symbolicate: 0.83.3 + metro-transform-plugins: 0.83.3 + metro-transform-worker: 0.83.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate - '@expo/osascript@2.2.4': + '@expo/osascript@2.3.8': dependencies: '@expo/spawn-async': 1.7.2 exec-async: 2.2.0 - '@expo/package-manager@1.8.4': + '@expo/package-manager@1.9.10': dependencies: - '@expo/json-file': 9.1.4 + '@expo/json-file': 10.0.8 '@expo/spawn-async': 1.7.2 chalk: 4.1.2 npm-package-arg: 11.0.3 ora: 3.4.0 - resolve-workspace-root: 2.0.0 + resolve-workspace-root: 2.0.1 - '@expo/plist@0.3.4': + '@expo/plist@0.4.8': dependencies: - '@xmldom/xmldom': 0.8.10 + '@xmldom/xmldom': 0.8.11 base64-js: 1.5.1 xmlbuilder: 15.1.1 - '@expo/prebuild-config@9.0.6': + '@expo/prebuild-config@54.0.8(expo@54.0.31)': dependencies: - '@expo/config': 11.0.10 - '@expo/config-plugins': 10.0.2 - '@expo/config-types': 53.0.4 - '@expo/image-utils': 0.7.4 - '@expo/json-file': 9.1.4 - '@react-native/normalize-colors': 0.79.2 + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/config-types': 54.0.10 + '@expo/image-utils': 0.8.8 + '@expo/json-file': 10.0.8 + '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) resolve-from: 5.0.0 - semver: 7.6.3 + semver: 7.7.3 xml2js: 0.6.0 transitivePeerDependencies: - supports-color - '@expo/prebuild-config@9.0.7': - dependencies: - '@expo/config': 11.0.10 - '@expo/config-plugins': 10.0.3 - '@expo/config-types': 53.0.4 - '@expo/image-utils': 0.7.4 - '@expo/json-file': 9.1.4 - '@react-native/normalize-colors': 0.79.4 - debug: 4.4.3 - resolve-from: 5.0.0 - semver: 7.7.2 - xml2js: 0.6.0 - transitivePeerDependencies: - - supports-color + '@expo/schema-utils@0.1.8': {} '@expo/sdk-runtime-versions@1.0.0': {} - '@expo/server@0.6.2': - dependencies: - abort-controller: 3.0.0 - debug: 4.4.3 - source-map-support: 0.5.21 - undici: 6.21.0 - transitivePeerDependencies: - - supports-color - '@expo/spawn-async@1.7.2': dependencies: cross-spawn: 7.0.6 - '@expo/vector-icons@14.0.4': + '@expo/sudo-prompt@9.3.2': {} + + '@expo/vector-icons@15.0.3(expo-font@14.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - prop-types: 15.8.1 + expo-font: 14.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - '@expo/ws-tunnel@1.0.4': {} + '@expo/ws-tunnel@1.0.6': {} - '@expo/xcpretty@4.3.1': + '@expo/xcpretty@4.3.2': dependencies: '@babel/code-frame': 7.10.4 chalk: 4.1.2 find-up: 5.0.0 - js-yaml: 4.1.0 + js-yaml: 4.1.1 - '@formatjs/ecma402-abstract@2.2.4': + '@formatjs/ecma402-abstract@2.3.6': dependencies: - '@formatjs/fast-memoize': 2.2.3 - '@formatjs/intl-localematcher': 0.5.8 + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/intl-localematcher': 0.6.2 + decimal.js: 10.6.0 tslib: 2.8.1 - '@formatjs/fast-memoize@2.2.3': + '@formatjs/fast-memoize@2.2.7': dependencies: tslib: 2.8.1 - '@formatjs/icu-messageformat-parser@2.9.4': + '@formatjs/icu-messageformat-parser@2.11.4': dependencies: - '@formatjs/ecma402-abstract': 2.2.4 - '@formatjs/icu-skeleton-parser': 1.8.8 + '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/icu-skeleton-parser': 1.8.16 tslib: 2.8.1 - '@formatjs/icu-skeleton-parser@1.8.8': + '@formatjs/icu-skeleton-parser@1.8.16': dependencies: - '@formatjs/ecma402-abstract': 2.2.4 + '@formatjs/ecma402-abstract': 2.3.6 tslib: 2.8.1 - '@formatjs/intl-localematcher@0.5.8': + '@formatjs/intl-localematcher@0.6.2': dependencies: tslib: 2.8.1 - '@gorhom/bottom-sheet@5.0.5(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@gorhom/bottom-sheet@5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - '@gorhom/portal': 1.0.14(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@gorhom/portal': 1.0.14(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) invariant: 2.2.4 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-gesture-handler: 2.24.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-reanimated: 3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.1.17 - '@gorhom/portal@1.0.14(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@gorhom/portal@1.0.14(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - nanoid: 3.3.7 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + nanoid: 3.3.11 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - '@hookform/resolvers@3.9.0(react-hook-form@7.53.0(react@19.0.0))': + '@hookform/resolvers@5.2.2(react-hook-form@7.71.1(react@19.1.0))': dependencies: - react-hook-form: 7.53.0(react@19.0.0) + '@standard-schema/utils': 0.3.0 + react-hook-form: 7.71.1(react@19.1.0) '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.6': + '@humanfs/node@0.16.7': dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.3': {} - '@inquirer/figures@1.0.8': {} + '@inquirer/ansi@1.0.2': {} + + '@inquirer/checkbox@4.3.2(@types/node@25.0.9)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@25.0.9) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/confirm@5.1.21(@types/node@25.0.9)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/type': 3.0.10(@types/node@25.0.9) + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/core@10.3.2(@types/node@25.0.9)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@25.0.9) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/editor@4.2.23(@types/node@25.0.9)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/external-editor': 1.0.3(@types/node@25.0.9) + '@inquirer/type': 3.0.10(@types/node@25.0.9) + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/expand@4.0.23(@types/node@25.0.9)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/type': 3.0.10(@types/node@25.0.9) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/external-editor@1.0.3(@types/node@25.0.9)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/figures@1.0.15': {} + + '@inquirer/input@4.3.1(@types/node@25.0.9)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/type': 3.0.10(@types/node@25.0.9) + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/number@3.0.23(@types/node@25.0.9)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/type': 3.0.10(@types/node@25.0.9) + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/password@4.0.23(@types/node@25.0.9)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/type': 3.0.10(@types/node@25.0.9) + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/prompts@7.10.1(@types/node@25.0.9)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@25.0.9) + '@inquirer/confirm': 5.1.21(@types/node@25.0.9) + '@inquirer/editor': 4.2.23(@types/node@25.0.9) + '@inquirer/expand': 4.0.23(@types/node@25.0.9) + '@inquirer/input': 4.3.1(@types/node@25.0.9) + '@inquirer/number': 3.0.23(@types/node@25.0.9) + '@inquirer/password': 4.0.23(@types/node@25.0.9) + '@inquirer/rawlist': 4.1.11(@types/node@25.0.9) + '@inquirer/search': 3.2.2(@types/node@25.0.9) + '@inquirer/select': 4.4.2(@types/node@25.0.9) + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/rawlist@4.1.11(@types/node@25.0.9)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/type': 3.0.10(@types/node@25.0.9) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/search@3.2.2(@types/node@25.0.9)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@25.0.9) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/select@4.4.2(@types/node@25.0.9)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@25.0.9) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 25.0.9 + + '@inquirer/type@3.0.10(@types/node@25.0.9)': + optionalDependencies: + '@types/node': 25.0.9 + + '@isaacs/balanced-match@4.0.1': {} - '@isaacs/cliui@8.0.2': + '@isaacs/brace-expansion@5.0.0': dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/balanced-match': 4.0.1 '@isaacs/fs-minipass@4.0.1': dependencies: @@ -9047,7 +9731,7 @@ snapshots: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 - js-yaml: 3.14.1 + js-yaml: 3.14.2 resolve-from: 5.0.0 '@istanbuljs/schema@0.1.3': {} @@ -9055,7 +9739,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -9068,14 +9752,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 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.9.1) + jest-config: 29.7.0(@types/node@25.0.9) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -9100,13 +9784,33 @@ snapshots: dependencies: '@jest/types': 29.6.3 + '@jest/diff-sequences@30.0.1': {} + + '@jest/environment-jsdom-abstract@30.2.0(jsdom@26.1.0)': + dependencies: + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/jsdom': 21.1.7 + '@types/node': 25.0.9 + jest-mock: 30.2.0 + jest-util: 30.2.0 + jsdom: 26.1.0 + '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 jest-mock: 29.7.0 + '@jest/environment@30.2.0': + dependencies: + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 25.0.9 + jest-mock: 30.2.0 + '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 @@ -9122,11 +9826,22 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.9.1 + '@types/node': 25.0.9 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 + '@jest/fake-timers@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@sinonjs/fake-timers': 13.0.5 + '@types/node': 25.0.9 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + + '@jest/get-type@30.1.0': {} + '@jest/globals@29.7.0': dependencies: '@jest/environment': 29.7.0 @@ -9136,6 +9851,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/pattern@30.0.1': + dependencies: + '@types/node': 25.0.9 + jest-regex-util: 30.0.1 + '@jest/reporters@29.7.0': dependencies: '@bcoe/v8-coverage': 0.2.3 @@ -9143,10 +9863,10 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.9.1 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 25.0.9 chalk: 4.1.2 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -9154,7 +9874,7 @@ snapshots: istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 jest-message-util: 29.7.0 jest-util: 29.7.0 jest-worker: 29.7.0 @@ -9169,9 +9889,13 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 + '@jest/schemas@30.0.5': + dependencies: + '@sinclair/typebox': 0.34.47 + '@jest/source-map@29.6.3': dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 graceful-fs: 4.2.11 @@ -9180,7 +9904,7 @@ snapshots: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 '@jest/test-sequencer@29.7.0': dependencies: @@ -9191,9 +9915,9 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -9203,19 +9927,50 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 micromatch: 4.0.8 - pirates: 4.0.6 + pirates: 4.0.7 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color + '@jest/transform@30.2.0': + dependencies: + '@babel/core': 7.28.6 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 7.0.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-regex-util: 30.0.1 + jest-util: 30.2.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + optional: true + '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.9.1 - '@types/yargs': 17.0.33 + '@types/node': 25.0.9 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@jest/types@30.2.0': + dependencies: + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 25.0.9 + '@types/yargs': 17.0.35 chalk: 4.1.2 '@jimp/bmp@0.22.12(@jimp/custom@0.22.12)': @@ -9434,29 +10189,29 @@ snapshots: dependencies: regenerator-runtime: 0.13.11 - '@jridgewell/gen-mapping@0.3.5': + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/set-array@1.2.1': {} + '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/source-map@0.3.6': + '@jridgewell/source-map@0.3.11': dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@motionone/animation@10.18.0': dependencies: @@ -9493,11 +10248,11 @@ snapshots: hey-listen: 1.0.8 tslib: 2.8.1 - '@napi-rs/wasm-runtime@0.2.11': + '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 optional: true '@nodelib/fs.scandir@2.1.5': @@ -9510,216 +10265,395 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.20.1 + + '@pkgr/core@0.2.9': {} + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@3.0.2': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-collection@1.1.7(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-context@1.1.2(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-dialog@1.1.15(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) + aria-hidden: 1.2.6 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.7.2(@types/react@19.1.17)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-direction@1.1.1(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-focus-scope@1.1.7(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-id@1.1.1(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-portal@1.1.9(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-presence@1.1.5(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-primitive@2.1.3(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-roving-focus@1.1.11(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 - '@pkgjs/parseargs@0.11.0': - optional: true + '@radix-ui/react-slot@1.2.0(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 - '@pkgr/core@0.2.9': {} + '@radix-ui/react-slot@1.2.3(@types/react@19.1.17)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 + + '@radix-ui/react-tabs@1.1.13(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 - '@pnpm/config.env-replace@1.1.0': {} + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.17)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 - '@pnpm/network.ca-file@1.0.2': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.17)(react@19.1.0)': dependencies: - graceful-fs: 4.2.10 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 - '@pnpm/npm-conf@2.3.1': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.17)(react@19.1.0)': dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.17 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.17)(react@19.1.0)': dependencies: - react: 19.0.0 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.1.17 - '@radix-ui/react-slot@1.2.0(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.17)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.1.17 - '@react-native/assets-registry@0.79.4': {} + '@react-native/assets-registry@0.81.5': {} - '@react-native/babel-plugin-codegen@0.79.4(@babel/core@7.26.0)': + '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.28.6)': dependencies: - '@babel/traverse': 7.25.9 - '@react-native/codegen': 0.79.4(@babel/core@7.26.0) + '@babel/traverse': 7.28.6 + '@react-native/codegen': 0.81.5(@babel/core@7.28.6) transitivePeerDependencies: - '@babel/core' - supports-color - '@react-native/babel-preset@0.79.4(@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.25.9(@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.25.9(@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.79.4(@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-native/babel-preset@0.81.5(@babel/core@7.28.6)': + dependencies: + '@babel/core': 7.28.6 + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-async-generator-functions': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.6) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.6) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.6) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-regenerator': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.6) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.6) + '@babel/template': 7.28.6 + '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.28.6) + babel-plugin-syntax-hermes-parser: 0.29.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.6) react-refresh: 0.14.2 transitivePeerDependencies: - supports-color - '@react-native/codegen@0.79.4(@babel/core@7.26.0)': + '@react-native/codegen@0.81.5(@babel/core@7.28.6)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 + '@babel/parser': 7.28.6 glob: 7.2.3 - hermes-parser: 0.25.1 + hermes-parser: 0.29.1 invariant: 2.2.4 nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/community-cli-plugin@0.79.4': + '@react-native/community-cli-plugin@0.81.5': dependencies: - '@react-native/dev-middleware': 0.79.4 - chalk: 4.1.2 - debug: 2.6.9 + '@react-native/dev-middleware': 0.81.5 + debug: 4.4.3 invariant: 2.2.4 - metro: 0.82.4 - metro-config: 0.82.4 - metro-core: 0.82.4 - semver: 7.7.2 + metro: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 + semver: 7.7.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@react-native/debugger-frontend@0.79.4': {} + '@react-native/debugger-frontend@0.81.5': {} - '@react-native/dev-middleware@0.79.4': + '@react-native/dev-middleware@0.81.5': dependencies: '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.79.4 + '@react-native/debugger-frontend': 0.81.5 chrome-launcher: 0.15.2 chromium-edge-launcher: 0.2.0 connect: 3.7.0 - debug: 2.6.9 + debug: 4.4.3 invariant: 2.2.4 nullthrows: 1.1.1 open: 7.4.2 - serve-static: 1.16.2 + serve-static: 1.16.3 ws: 6.2.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@react-native/gradle-plugin@0.79.4': {} - - '@react-native/js-polyfills@0.79.4': {} + '@react-native/gradle-plugin@0.81.5': {} - '@react-native/normalize-colors@0.74.88': {} + '@react-native/js-polyfills@0.81.5': {} - '@react-native/normalize-colors@0.79.2': {} + '@react-native/normalize-colors@0.74.89': {} - '@react-native/normalize-colors@0.79.4': {} + '@react-native/normalize-colors@0.81.5': {} - '@react-native/virtualized-lists@0.79.4(@types/react@19.0.14)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-native/virtualized-lists@0.81.5(@types/react@19.1.17)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.1.17 - '@react-navigation/bottom-tabs@7.3.15(@react-navigation/native@7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/bottom-tabs@7.10.1(@react-navigation/native@7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/elements': 2.4.4(@react-navigation/native@7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/elements': 2.9.5(@react-navigation/native@7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) color: 4.2.3 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + sf-symbols-typescript: 2.2.0 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/core@7.10.1(react@19.0.0)': + '@react-navigation/core@7.14.0(react@19.1.0)': dependencies: - '@react-navigation/routers': 7.4.1 + '@react-navigation/routers': 7.5.3 escape-string-regexp: 4.0.0 + fast-deep-equal: 3.1.3 nanoid: 3.3.11 query-string: 7.1.3 - react: 19.0.0 - react-is: 19.1.0 - use-latest-callback: 0.2.4(react@19.0.0) - use-sync-external-store: 1.5.0(react@19.0.0) + react: 19.1.0 + react-is: 19.2.3 + use-latest-callback: 0.2.6(react@19.1.0) + use-sync-external-store: 1.6.0(react@19.1.0) + + '@react-navigation/elements@2.9.5(@react-navigation/native@7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-navigation/native': 7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + color: 4.2.3 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + use-latest-callback: 0.2.6(react@19.1.0) + use-sync-external-store: 1.6.0(react@19.1.0) - '@react-navigation/elements@2.4.4(@react-navigation/native@7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/native-stack@7.10.1(@react-navigation/native@7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/native': 7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/elements': 2.9.5(@react-navigation/native@7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) color: 4.2.3 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - use-latest-callback: 0.2.4(react@19.0.0) - - '@react-navigation/native-stack@7.3.16(@react-navigation/native@7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': - dependencies: - '@react-navigation/elements': 2.4.4(@react-navigation/native@7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + sf-symbols-typescript: 2.2.0 warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/native@7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/core': 7.10.1(react@19.0.0) + '@react-navigation/core': 7.14.0(react@19.1.0) escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - use-latest-callback: 0.2.4(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + use-latest-callback: 0.2.6(react@19.1.0) - '@react-navigation/routers@7.4.1': + '@react-navigation/routers@7.5.3': dependencies: nanoid: 3.3.11 @@ -9733,18 +10667,21 @@ snapshots: transitivePeerDependencies: - zenObservable - '@shopify/flash-list@1.7.6(@babel/runtime@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@shopify/flash-list@2.0.2(@babel/runtime@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - '@babel/runtime': 7.26.0 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - recyclerlistview: 4.2.3(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@babel/runtime': 7.28.6 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) tslib: 2.8.1 '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.34.47': {} + '@sindresorhus/base62@1.0.0': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 @@ -9753,49 +10690,55 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.6))': + '@sinonjs/fake-timers@13.0.5': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@standard-schema/utils@0.3.0': {} + + '@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.7))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@typescript-eslint/types': 8.53.1 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) eslint-visitor-keys: 5.0.0 espree: 11.1.0 estraverse: 5.3.0 picomatch: 4.0.3 - '@tanstack/query-core@5.52.0': {} + '@tanstack/query-core@5.90.19': {} - '@tanstack/react-query@5.52.1(react@19.0.0)': + '@tanstack/react-query@5.90.19(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.52.0 - react: 19.0.0 + '@tanstack/query-core': 5.90.19 + react: 19.1.0 - '@testing-library/jest-dom@6.5.0': + '@testing-library/jest-dom@6.9.1': dependencies: - '@adobe/css-tools': 4.4.1 + '@adobe/css-tools': 4.4.4 aria-query: 5.3.2 - chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 - lodash: 4.17.21 + picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react-native@12.7.2(jest@29.7.0(@types/node@22.9.1))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react-test-renderer@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@25.0.9))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - jest-matcher-utils: 29.7.0 - pretty-format: 29.7.0 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-test-renderer: 19.0.0(react@19.0.0) + jest-matcher-utils: 30.2.0 + picocolors: 1.1.1 + pretty-format: 30.2.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-test-renderer: 19.1.0(react@19.1.0) redent: 3.0.0 optionalDependencies: - jest: 29.7.0(@types/node@22.9.1) + jest: 29.7.0(@types/node@25.0.9) '@tokenizer/token@0.3.0': {} '@tootallnate/once@2.0.0': {} - '@tybys/wasm-util@0.9.0': + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 optional: true @@ -9803,12 +10746,12 @@ snapshots: '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.6 - '@babel/types': 7.26.0 - '@types/babel__generator': 7.6.8 + '@babel/types': 7.28.6 + '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.28.0 - '@types/babel__generator@7.6.8': + '@types/babel__generator@7.27.0': dependencies: '@babel/types': 7.28.6 @@ -9817,37 +10760,29 @@ snapshots: '@babel/parser': 7.28.6 '@babel/types': 7.28.6 - '@types/babel__traverse@7.20.6': + '@types/babel__traverse@7.28.0': dependencies: '@babel/types': 7.28.6 - '@types/conventional-commits-parser@5.0.0': + '@types/conventional-commits-parser@5.0.2': dependencies: - '@types/node': 22.9.1 + '@types/node': 25.0.9 '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.8 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.8': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.9.1 + '@types/node': 25.0.9 '@types/hammerjs@2.0.46': {} - '@types/i18n-js@3.8.9': {} + '@types/i18n-js@4.0.1': + dependencies: + i18n-js: 4.5.1 '@types/invariant@2.2.37': {} @@ -9861,16 +10796,22 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.12': + '@types/jest@29.5.14': dependencies: expect: 29.7.0 pretty-format: 29.7.0 '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.9.1 + '@types/node': 25.0.9 + '@types/tough-cookie': 4.0.5 + parse5: 7.3.0 + + '@types/jsdom@21.1.7': + dependencies: + '@types/node': 25.0.9 '@types/tough-cookie': 4.0.5 - parse5: 7.2.1 + parse5: 7.3.0 '@types/json-schema@7.0.15': {} @@ -9878,9 +10819,9 @@ snapshots: '@types/lodash.memoize@4.1.9': dependencies: - '@types/lodash': 4.17.13 + '@types/lodash': 4.17.23 - '@types/lodash@4.17.13': {} + '@types/lodash@4.17.23': {} '@types/mdast@4.0.4': dependencies: @@ -9890,15 +10831,15 @@ snapshots: '@types/node@16.9.1': {} - '@types/node@22.9.1': + '@types/node@25.0.9': dependencies: - undici-types: 6.19.8 + undici-types: 7.16.0 '@types/normalize-package-data@2.4.4': {} - '@types/react@19.0.14': + '@types/react@19.1.17': dependencies: - csstype: 3.1.3 + csstype: 3.2.3 '@types/stack-utils@2.0.3': {} @@ -9908,231 +10849,181 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@types/yargs@17.0.33': + '@types/yargs@17.0.35': dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.53.1 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.53.1 '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.53.1 debug: 4.4.3 - eslint: 9.39.2(jiti@1.21.6) - typescript: 5.8.3 + eslint: 9.39.2(jiti@1.21.7) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.53.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 debug: 4.4.3 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.53.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.8.3) - '@typescript-eslint/types': 8.53.1 - debug: 4.4.3 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.34.0': - dependencies: - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/visitor-keys': 8.34.0 - '@typescript-eslint/scope-manager@8.53.1': dependencies: '@typescript-eslint/types': 8.53.1 '@typescript-eslint/visitor-keys': 8.53.1 - '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.53.1(typescript@5.9.3)': dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.53.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/type-utils@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) debug: 4.4.3 - eslint: 9.39.2(jiti@1.21.6) - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 + eslint: 9.39.2(jiti@1.21.7) + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.34.0': {} - '@typescript-eslint/types@8.53.1': {} - '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.4.3 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.53.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.53.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.53.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.8.3) + '@typescript-eslint/project-service': 8.53.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 '@typescript-eslint/visitor-keys': 8.53.1 debug: 4.4.3 minimatch: 9.0.5 semver: 7.7.3 tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.34.0(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) - typescript: 5.8.3 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@typescript-eslint/utils@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@typescript-eslint/scope-manager': 8.53.1 '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) - typescript: 5.8.3 + '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.34.0': - dependencies: - '@typescript-eslint/types': 8.34.0 - eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.53.1': dependencies: '@typescript-eslint/types': 8.53.1 eslint-visitor-keys: 4.2.1 - '@unrs/resolver-binding-android-arm-eabi@1.9.0': + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true - '@unrs/resolver-binding-android-arm64@1.9.0': + '@unrs/resolver-binding-android-arm64@1.11.1': optional: true - '@unrs/resolver-binding-darwin-arm64@1.9.0': + '@unrs/resolver-binding-darwin-arm64@1.11.1': optional: true - '@unrs/resolver-binding-darwin-x64@1.9.0': + '@unrs/resolver-binding-darwin-x64@1.11.1': optional: true - '@unrs/resolver-binding-freebsd-x64@1.9.0': + '@unrs/resolver-binding-freebsd-x64@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.9.0': + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.9.0': + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.9.0': + '@unrs/resolver-binding-linux-x64-musl@1.11.1': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.9.0': + '@unrs/resolver-binding-wasm32-wasi@1.11.1': dependencies: - '@napi-rs/wasm-runtime': 0.2.11 + '@napi-rs/wasm-runtime': 0.2.12 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.9.0': + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@urql/core@5.0.8': + '@urql/core@5.2.0': dependencies: - '@0no-co/graphql.web': 1.0.11 - wonka: 6.3.4 + '@0no-co/graphql.web': 1.2.0 + wonka: 6.3.5 transitivePeerDependencies: - graphql - '@urql/exchange-retry@1.3.0(@urql/core@5.0.8)': + '@urql/exchange-retry@1.3.2(@urql/core@5.2.0)': dependencies: - '@urql/core': 5.0.8 - wonka: 6.3.4 + '@urql/core': 5.2.0 + wonka: 6.3.5 - '@vitest/eslint-plugin@1.6.6(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3)': + '@vitest/eslint-plugin@1.6.6(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -10168,87 +11059,7 @@ snapshots: '@vue/shared@3.5.27': {} - '@webassemblyjs/ast@1.14.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - - '@webassemblyjs/helper-api-error@1.13.2': {} - - '@webassemblyjs/helper-buffer@1.14.1': {} - - '@webassemblyjs/helper-numbers@1.13.2': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - - '@webassemblyjs/helper-wasm-section@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 - - '@webassemblyjs/ieee754@1.13.2': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.13.2': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.13.2': {} - - '@webassemblyjs/wasm-edit@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 - - '@webassemblyjs/wasm-gen@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wasm-opt@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - - '@webassemblyjs/wasm-parser@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wast-printer@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@xtuc/long': 4.2.2 - - '@xmldom/xmldom@0.8.10': {} - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} + '@xmldom/xmldom@0.8.11': {} JSONStream@1.3.5: dependencies: @@ -10275,16 +11086,10 @@ snapshots: dependencies: acorn: 8.15.0 - acorn-loose@8.4.0: - dependencies: - acorn: 8.15.0 - acorn-walk@8.3.4: dependencies: acorn: 8.15.0 - acorn@8.14.0: {} - acorn@8.15.0: {} agent-base@6.0.2: @@ -10293,25 +11098,7 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.3: {} - - aggregate-error@4.0.1: - dependencies: - clean-stack: 4.2.0 - indent-string: 5.0.0 - - ajv-formats@2.1.1(ajv@8.17.1): - optionalDependencies: - ajv: 8.17.1 - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv-keywords@5.1.0(ajv@8.17.1): - dependencies: - ajv: 8.17.1 - fast-deep-equal: 3.1.3 + agent-base@7.1.4: {} ajv@6.12.6: dependencies: @@ -10320,17 +11107,10 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.11.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.3 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -10352,7 +11132,7 @@ snapshots: ansi-escapes@6.2.1: {} - ansi-escapes@7.0.0: + ansi-escapes@7.2.0: dependencies: environment: 1.1.0 @@ -10364,7 +11144,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} + ansi-regex@6.2.2: {} ansi-styles@2.2.1: {} @@ -10378,7 +11158,7 @@ snapshots: ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} + ansi-styles@6.2.3: {} ansis@4.2.0: {} @@ -10405,8 +11185,6 @@ snapshots: - debug - encoding - application-config-path@0.1.1: {} - are-docs-informative@0.0.2: {} arg@5.0.2: {} @@ -10417,99 +11195,121 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + aria-query@5.3.2: {} - array-buffer-byte-length@1.0.1: + array-buffer-byte-length@1.0.2: dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 + call-bound: 1.0.4 + is-array-buffer: 3.0.5 array-ify@1.0.0: {} - array-includes@3.1.8: + array-includes@3.1.9: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.5 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 array-timsort@1.0.3: {} - array.prototype.findlastindex@1.2.5: + array.prototype.findlastindex@1.2.6: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.5 + es-abstract: 1.24.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 - array.prototype.flat@1.3.2: + array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 - es-shim-unscopables: 1.0.2 + es-abstract: 1.24.1 + es-shim-unscopables: 1.1.0 - array.prototype.flatmap@1.3.2: + array.prototype.flatmap@1.3.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 - es-shim-unscopables: 1.0.2 + es-abstract: 1.24.1 + es-shim-unscopables: 1.1.0 - arraybuffer.prototype.slice@1.0.3: + arraybuffer.prototype.slice@1.0.4: dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 + es-abstract: 1.24.1 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 asap@2.0.6: {} + async-function@1.0.0: {} + async-limiter@1.0.1: {} asynckit@0.4.0: {} - atomically@2.0.3: + atomically@2.1.0: dependencies: - stubborn-fs: 1.2.5 - when-exit: 2.1.3 + stubborn-fs: 2.0.0 + when-exit: 2.1.5 available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 - axios@1.7.5: + axios@1.13.2: dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 + follow-redirects: 1.15.11 + form-data: 4.0.5 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - babel-jest@29.7.0(@babel/core@7.26.0): + babel-jest@29.7.0(@babel/core@7.28.6): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.0) + babel-preset-jest: 29.6.3(@babel/core@7.28.6) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-jest@30.2.0(@babel/core@7.28.6): + dependencies: + '@babel/core': 7.28.6 + '@jest/transform': 30.2.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.28.6) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color + optional: true babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.28.6 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -10517,12 +11317,28 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-istanbul@7.0.1: + dependencies: + '@babel/helper-plugin-utils': 7.28.6 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 6.0.3 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.25.9 + '@babel/template': 7.28.6 '@babel/types': 7.28.6 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.28.0 + + babel-plugin-jest-hoist@30.2.0: + dependencies: + '@types/babel__core': 7.20.5 + optional: true babel-plugin-module-resolver@5.0.2: dependencies: @@ -10530,95 +11346,111 @@ snapshots: glob: 9.3.5 pkg-up: 3.1.0 reselect: 4.1.8 - resolve: 1.22.8 + resolve: 1.22.11 - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.6): dependencies: - '@babel/compat-data': 7.26.2 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/compat-data': 7.28.6 + '@babel/core': 7.28.6 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.6): dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.43.0 + '@babel/core': 7.28.6 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) + core-js-compat: 3.47.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.6): dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/core': 7.28.6 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) transitivePeerDependencies: - supports-color - babel-plugin-react-native-web@0.19.13: {} + babel-plugin-react-compiler@1.0.0: + dependencies: + '@babel/types': 7.28.6 + + babel-plugin-react-native-web@0.21.2: {} - babel-plugin-syntax-hermes-parser@0.25.1: + babel-plugin-syntax-hermes-parser@0.29.1: dependencies: - hermes-parser: 0.25.1 + hermes-parser: 0.29.1 - babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.26.0): + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.28.6): dependencies: - '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.28.6) transitivePeerDependencies: - '@babel/core' - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) - '@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@13.2.1(@babel/core@7.26.0): - dependencies: - '@babel/helper-module-imports': 7.25.9 - '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-proposal-export-default-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-syntax-export-default-from': 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-flow-strip-types': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 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/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-runtime': 7.25.9(@babel/core@7.26.0) - '@babel/preset-react': 7.25.9(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - '@react-native/babel-preset': 0.79.4(@babel/core@7.26.0) - babel-plugin-react-native-web: 0.19.13 - babel-plugin-syntax-hermes-parser: 0.25.1 - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.6): + dependencies: + '@babel/core': 7.28.6 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.6) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.6) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.6) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.6) + + babel-preset-expo@54.0.10(@babel/core@7.28.6)(@babel/runtime@7.28.6)(expo@54.0.31)(react-refresh@0.14.2): + dependencies: + '@babel/helper-module-imports': 7.28.6 + '@babel/plugin-proposal-decorators': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.6) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.6) + '@babel/preset-react': 7.28.5(@babel/core@7.28.6) + '@babel/preset-typescript': 7.28.5(@babel/core@7.28.6) + '@react-native/babel-preset': 0.81.5(@babel/core@7.28.6) + babel-plugin-react-compiler: 1.0.0 + babel-plugin-react-native-web: 0.21.2 + babel-plugin-syntax-hermes-parser: 0.29.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.6) debug: 4.4.3 react-refresh: 0.14.2 resolve-from: 5.0.0 + optionalDependencies: + '@babel/runtime': 7.28.6 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - supports-color - babel-preset-jest@29.6.3(@babel/core@7.26.0): + babel-preset-jest@29.6.3(@babel/core@7.28.6): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.6) + + babel-preset-jest@30.2.0(@babel/core@7.28.6): + dependencies: + '@babel/core': 7.28.6 + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.6) + optional: true balanced-match@1.0.2: {} @@ -10632,16 +11464,12 @@ snapshots: big-integer@1.6.52: {} + bignumber.js@9.3.1: {} + binary-extensions@2.3.0: {} birecord@0.1.1: {} - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - bmp-js@0.1.0: {} boolbase@1.0.0: {} @@ -10650,12 +11478,12 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 8.0.0 - chalk: 5.3.0 + chalk: 5.6.2 cli-boxes: 3.0.0 string-width: 7.2.0 - type-fest: 4.27.0 + type-fest: 4.41.0 widest-line: 5.0.0 - wrap-ansi: 9.0.0 + wrap-ansi: 9.0.2 bplist-creator@0.1.0: dependencies: @@ -10669,12 +11497,12 @@ snapshots: dependencies: big-integer: 1.6.52 - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -10682,20 +11510,6 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.2: - dependencies: - caniuse-lite: 1.0.30001680 - electron-to-chromium: 1.5.63 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) - - browserslist@4.25.0: - dependencies: - caniuse-lite: 1.0.30001723 - electron-to-chromium: 1.5.167 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.0) - browserslist@4.28.1: dependencies: baseline-browser-mapping: 2.9.17 @@ -10721,33 +11535,37 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + builtin-modules@5.0.0: {} bundle-name@4.1.0: dependencies: - run-applescript: 7.0.0 + run-applescript: 7.1.0 bytes@3.1.2: {} cac@6.7.14: {} - call-bind@1.0.7: + call-bind-apply-helpers@1.0.2: dependencies: - es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - caller-callsite@2.0.0: + call-bind@1.0.8: dependencies: - callsites: 2.0.0 + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 - caller-path@2.0.0: + call-bound@1.0.4: dependencies: - caller-callsite: 2.0.0 - - callsites@2.0.0: {} + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 callsites@3.1.0: {} @@ -10759,23 +11577,19 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001680: {} - - caniuse-lite@1.0.30001723: {} - caniuse-lite@1.0.30001765: {} ccount@2.0.1: {} centra@2.7.0: dependencies: - follow-redirects: 1.15.9 + follow-redirects: 1.15.11 transitivePeerDependencies: - debug - chalk-template@1.1.0: + chalk-template@1.1.2: dependencies: - chalk: 5.3.0 + chalk: 5.6.2 chalk@1.1.3: dependencies: @@ -10801,7 +11615,7 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} + chalk@5.6.2: {} change-case@5.4.4: {} @@ -10813,6 +11627,8 @@ snapshots: chardet@0.7.0: {} + chardet@2.1.1: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -10829,18 +11645,16 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.9.1 + '@types/node': 25.0.9 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 transitivePeerDependencies: - supports-color - chrome-trace-event@1.0.4: {} - chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 22.9.1 + '@types/node': 25.0.9 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -10853,20 +11667,14 @@ snapshots: ci-info@3.9.0: {} - ci-info@4.2.0: {} - ci-info@4.3.1: {} - cjs-module-lexer@1.4.1: {} + cjs-module-lexer@1.4.3: {} clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 - clean-stack@4.2.0: - dependencies: - escape-string-regexp: 5.0.0 - cli-boxes@3.0.0: {} cli-cursor@2.1.0: @@ -10888,10 +11696,10 @@ snapshots: slice-ansi: 0.0.4 string-width: 1.0.2 - cli-truncate@4.0.0: + cli-truncate@5.1.1: dependencies: - slice-ansi: 5.0.0 - string-width: 7.2.0 + slice-ansi: 7.1.2 + string-width: 8.1.0 cli-width@2.2.1: {} @@ -10913,7 +11721,7 @@ snapshots: code-point-at@1.1.0: {} - collect-v8-coverage@1.0.2: {} + collect-v8-coverage@1.0.3: {} color-convert@1.9.3: dependencies: @@ -10930,7 +11738,7 @@ snapshots: color-string@1.9.1: dependencies: color-name: 1.1.4 - simple-swizzle: 0.2.2 + simple-swizzle: 0.2.4 color@4.2.3: dependencies: @@ -10943,25 +11751,23 @@ snapshots: dependencies: delayed-stream: 1.0.0 - command-exists@1.2.9: {} - commander@11.1.0: {} commander@12.1.0: {} + commander@14.0.2: {} + commander@2.20.3: {} commander@4.1.1: {} commander@7.2.0: {} - comment-json@4.2.5: + comment-json@4.5.1: dependencies: array-timsort: 1.0.3 core-util-is: 1.0.3 esprima: 4.0.1 - has-own-prop: 2.0.0 - repeat-string: 1.6.1 comment-parser@1.4.1: {} @@ -10976,15 +11782,15 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.53.0 + mime-db: 1.54.0 - compression@1.7.5: + compression@1.8.1: dependencies: bytes: 3.1.2 compressible: 2.0.18 debug: 2.6.9 negotiator: 0.6.4 - on-headers: 1.0.2 + on-headers: 1.1.0 safe-buffer: 5.2.1 vary: 1.1.2 transitivePeerDependencies: @@ -11001,9 +11807,9 @@ snapshots: ini: 1.3.8 proto-list: 1.2.4 - configstore@7.0.0: + configstore@7.1.0: dependencies: - atomically: 2.0.3 + atomically: 2.1.0 dot-prop: 9.0.0 graceful-fs: 4.2.11 xdg-basedir: 5.1.0 @@ -11034,55 +11840,44 @@ snapshots: convert-source-map@2.0.0: {} - core-js-compat@3.43.0: - dependencies: - browserslist: 4.25.0 - core-js-compat@3.47.0: dependencies: browserslist: 4.28.1 core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@5.1.0(@types/node@22.9.1)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): - dependencies: - '@types/node': 22.9.1 - cosmiconfig: 9.0.0(typescript@5.8.3) - jiti: 1.21.6 - typescript: 5.8.3 - - cosmiconfig@5.2.1: + cosmiconfig-typescript-loader@6.2.0(@types/node@25.0.9)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: - import-fresh: 2.0.0 - is-directory: 0.3.1 - js-yaml: 3.14.1 - parse-json: 4.0.0 + '@types/node': 25.0.9 + cosmiconfig: 9.0.0(typescript@5.9.3) + jiti: 2.6.1 + typescript: 5.9.3 - cosmiconfig@8.3.6(typescript@5.8.3): + cosmiconfig@8.3.6(typescript@5.9.3): dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 + import-fresh: 3.3.1 + js-yaml: 4.1.1 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 - cosmiconfig@9.0.0(typescript@5.8.3): + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 + import-fresh: 3.3.1 + js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 - create-jest@29.7.0(@types/node@22.9.1): + create-jest@29.7.0(@types/node@25.0.9): 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.9.1) + jest-config: 29.7.0(@types/node@25.0.9) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -11091,11 +11886,12 @@ snapshots: - supports-color - ts-node - cross-env@7.0.3: + cross-env@10.1.0: dependencies: + '@epic-web/invariant': 1.0.0 cross-spawn: 7.0.6 - cross-fetch@3.1.8: + cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 transitivePeerDependencies: @@ -11113,12 +11909,12 @@ snapshots: dependencies: hyphenate-style-name: 1.1.0 - css-select@5.1.0: + css-select@5.2.2: dependencies: boolbase: 1.0.0 - css-what: 6.1.0 + css-what: 6.2.2 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.2 nth-check: 2.1.1 css-tree@1.1.3: @@ -11126,7 +11922,7 @@ snapshots: mdn-data: 2.0.14 source-map: 0.6.1 - css-what@6.1.0: {} + css-what@6.2.2: {} css.escape@1.5.1: {} @@ -11140,7 +11936,12 @@ snapshots: dependencies: cssom: 0.3.8 - csstype@3.1.3: {} + cssstyle@4.6.0: + dependencies: + '@asamuzakjp/css-color': 3.2.0 + rrweb-cssom: 0.8.0 + + csstype@3.2.3: {} dargs@8.1.0: {} @@ -11150,23 +11951,28 @@ snapshots: whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - data-view-buffer@1.0.1: + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + + data-view-buffer@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - data-view-byte-length@1.0.1: + data-view-byte-length@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - data-view-byte-offset@1.0.0: + data-view-byte-offset@1.0.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 date-fns@1.30.1: {} @@ -11178,19 +11984,11 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.7: - dependencies: - ms: 2.1.3 - - debug@4.4.1: - dependencies: - ms: 2.1.3 - debug@4.4.3: dependencies: ms: 2.1.3 - decimal.js@10.4.3: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.3.0: dependencies: @@ -11198,7 +11996,7 @@ snapshots: decode-uri-component@0.2.2: {} - dedent@1.5.3: {} + dedent@1.7.1: {} deep-extend@0.6.0: {} @@ -11206,12 +12004,12 @@ snapshots: deepmerge@4.3.1: {} - default-browser-id@5.0.0: {} + default-browser-id@5.0.1: {} - default-browser@5.2.1: + default-browser@5.4.0: dependencies: bundle-name: 4.1.0 - default-browser-id: 5.0.0 + default-browser-id: 5.0.1 defaults@1.0.4: dependencies: @@ -11219,9 +12017,9 @@ snapshots: define-data-property@1.1.4: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.2.0 define-lazy-prop@2.0.0: {} @@ -11233,16 +12031,15 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - del@7.1.0: + del@8.0.1: dependencies: - globby: 13.2.2 - graceful-fs: 4.2.11 + globby: 14.1.0 is-glob: 4.0.3 is-path-cwd: 3.0.0 is-path-inside: 4.0.0 - p-map: 5.5.0 - rimraf: 3.0.2 - slash: 4.0.0 + p-map: 7.0.4 + presentable-error: 0.0.1 + slash: 5.1.0 delayed-stream@1.0.0: {} @@ -11256,8 +12053,12 @@ snapshots: detect-libc@1.0.3: {} + detect-libc@2.1.2: {} + detect-newline@3.1.0: {} + detect-node-es@1.1.0: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -11270,10 +12071,6 @@ snapshots: diff@3.5.0: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - dlv@1.1.3: {} doctrine@2.1.0: @@ -11300,7 +12097,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - domutils@3.1.0: + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -11312,47 +12109,49 @@ snapshots: dot-prop@9.0.0: dependencies: - type-fest: 4.27.0 + type-fest: 4.41.0 dotenv-expand@11.0.7: dependencies: - dotenv: 16.4.5 + dotenv: 16.4.7 - dotenv@16.4.5: {} + dotenv@16.4.7: {} - eastasianwidth@0.2.0: {} + dotenv@17.2.3: {} - ee-first@1.1.1: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 - electron-to-chromium@1.5.167: {} + ee-first@1.1.1: {} electron-to-chromium@1.5.267: {} - electron-to-chromium@1.5.63: {} - elegant-spinner@1.0.1: {} emittery@0.13.1: {} - emoji-regex@10.4.0: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - empathic@2.0.0: {} encodeurl@1.0.2: {} encodeurl@2.0.0: {} - enhanced-resolve@5.17.1: + enhanced-resolve@5.18.4: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.3.0 entities@4.5.0: {} + entities@6.0.1: {} + entities@7.0.1: {} env-editor@0.4.2: {} @@ -11361,9 +12160,7 @@ snapshots: environment@1.1.0: {} - eol@0.9.1: {} - - error-ex@1.3.2: + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -11371,82 +12168,87 @@ snapshots: dependencies: stackframe: 1.3.4 - es-abstract@1.23.5: + es-abstract@1.24.1: dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 is-callable: 1.2.7 - is-data-view: 1.0.1 + is-data-view: 1.0.2 is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.3 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 + object.assign: 4.1.7 + own-keys: 1.0.1 + 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 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.20 - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-module-lexer@1.5.4: {} - - es-object-atoms@1.0.0: + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: + es-set-tostringtag@2.1.0: dependencies: - get-intrinsic: 1.2.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: + es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 - es-to-primitive@1.2.1: + es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-date-object: 1.1.0 + is-symbol: 1.1.1 escalade@3.2.0: {} @@ -11470,98 +12272,98 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@9.39.2(jiti@1.21.6)): + eslint-compat-utils@0.5.1(eslint@9.39.2(jiti@1.21.7)): dependencies: - eslint: 9.39.2(jiti@1.21.6) - semver: 7.7.2 + eslint: 9.39.2(jiti@1.21.7) + semver: 7.7.3 - eslint-compat-utils@0.6.5(eslint@9.39.2(jiti@1.21.6)): + eslint-compat-utils@0.6.5(eslint@9.39.2(jiti@1.21.7)): dependencies: - eslint: 9.39.2(jiti@1.21.6) - semver: 7.7.2 + eslint: 9.39.2(jiti@1.21.7) + semver: 7.7.3 - eslint-config-flat-gitignore@2.1.0(eslint@9.39.2(jiti@1.21.6)): + eslint-config-flat-gitignore@2.1.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@1.21.6)) - eslint: 9.39.2(jiti@1.21.6) + '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@1.21.7)) + eslint: 9.39.2(jiti@1.21.7) eslint-flat-config-utils@3.0.0: dependencies: '@eslint/config-helpers': 0.5.1 pathe: 2.0.3 - eslint-import-context@0.1.8(unrs-resolver@1.9.0): + eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: - get-tsconfig: 4.10.1 - stable-hash-x: 0.1.1 + get-tsconfig: 4.13.0 + stable-hash-x: 0.2.0 optionalDependencies: - unrs-resolver: 1.9.0 + unrs-resolver: 1.11.1 eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.15.1 - resolve: 1.22.8 + is-core-module: 2.16.1 + resolve: 1.22.11 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.3(eslint-plugin-import@2.31.0)(eslint@9.39.2(jiti@1.21.6)): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@1.21.7)): dependencies: - debug: 4.4.1 - eslint: 9.39.2(jiti@1.21.6) - eslint-import-context: 0.1.8(unrs-resolver@1.9.0) - get-tsconfig: 4.10.1 + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.7) + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) + get-tsconfig: 4.13.0 is-bun-module: 2.0.0 - stable-hash-x: 0.1.1 - tinyglobby: 0.2.14 - unrs-resolver: 1.9.0 + stable-hash-x: 0.2.0 + tinyglobby: 0.2.15 + unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@1.21.7)) transitivePeerDependencies: - supports-color - eslint-json-compat-utils@0.2.1(eslint@9.39.2(jiti@1.21.6))(jsonc-eslint-parser@2.4.2): + eslint-json-compat-utils@0.2.1(eslint@9.39.2(jiti@1.21.7))(jsonc-eslint-parser@2.4.2): dependencies: - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) esquery: 1.7.0 jsonc-eslint-parser: 2.4.2 - eslint-merge-processors@2.0.0(eslint@9.39.2(jiti@1.21.6)): + eslint-merge-processors@2.0.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@1.21.7)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.3(eslint-plugin-import@2.31.0)(eslint@9.39.2(jiti@1.21.6)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@1.21.7)) transitivePeerDependencies: - supports-color - eslint-plugin-antfu@3.1.3(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-antfu@3.1.3(eslint@9.39.2(jiti@1.21.7)): dependencies: - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) - eslint-plugin-command@3.4.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-command@3.4.0(eslint@9.39.2(jiti@1.21.7)): dependencies: '@es-joy/jsdoccomment': 0.78.0 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) - eslint-plugin-es-x@7.8.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-es-x@7.8.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@eslint-community/regexpp': 4.12.2 - eslint: 9.39.2(jiti@1.21.6) - eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@1.21.6)) + eslint: 9.39.2(jiti@1.21.7) + eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@1.21.7)) - eslint-plugin-i18n-json@4.0.1(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-i18n-json@4.0.1(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@formatjs/icu-messageformat-parser': 2.9.4 + '@formatjs/icu-messageformat-parser': 2.11.4 chalk: 2.4.2 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) indent-string: 3.2.0 jest-diff: 22.4.3 lodash: 4.17.21 @@ -11570,40 +12372,40 @@ snapshots: plur: 2.1.2 pretty-format: 22.4.3 - eslint-plugin-import-lite@0.5.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-import-lite@0.5.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@1.21.7)): dependencies: '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.39.2(jiti@1.21.6)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@1.21.7)) hasown: 2.0.2 - is-core-module: 2.15.1 + is-core-module: 2.16.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 object.groupby: 1.0.3 - object.values: 1.2.0 + object.values: 1.2.1 semver: 6.3.1 - string.prototype.trimend: 1.0.8 + string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsdoc@62.3.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-jsdoc@62.3.0(eslint@9.39.2(jiti@1.21.7)): dependencies: '@es-joy/jsdoccomment': 0.82.0 '@es-joy/resolve.exports': 1.2.0 @@ -11611,7 +12413,7 @@ snapshots: comment-parser: 1.4.4 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) espree: 11.1.0 esquery: 1.7.0 html-entities: 2.6.0 @@ -11623,13 +12425,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.21.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-jsonc@2.21.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) diff-sequences: 27.5.1 - eslint: 9.39.2(jiti@1.21.6) - eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@1.21.6)) - eslint-json-compat-utils: 0.2.1(eslint@9.39.2(jiti@1.21.6))(jsonc-eslint-parser@2.4.2) + eslint: 9.39.2(jiti@1.21.7) + eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@1.21.7)) + eslint-json-compat-utils: 0.2.1(eslint@9.39.2(jiti@1.21.7))(jsonc-eslint-parser@2.4.2) espree: 10.4.0 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.2 @@ -11638,36 +12440,36 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@17.23.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-n@17.23.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) - enhanced-resolve: 5.17.1 - eslint: 9.39.2(jiti@1.21.6) - eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@1.21.6)) - get-tsconfig: 4.10.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) + enhanced-resolve: 5.18.4 + eslint: 9.39.2(jiti@1.21.7) + eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@1.21.7)) + get-tsconfig: 4.13.0 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 - semver: 7.7.2 - ts-declaration-location: 1.0.7(typescript@5.8.3) + semver: 7.7.3 + ts-declaration-location: 1.0.7(typescript@5.9.3) transitivePeerDependencies: - typescript eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@5.3.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-perfectionist@5.3.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-pnpm@1.5.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-pnpm@1.5.0(eslint@9.39.2(jiti@1.21.7)): dependencies: empathic: 2.0.0 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) jsonc-eslint-parser: 2.4.2 pathe: 2.0.3 pnpm-workspace-yaml: 1.5.0 @@ -11675,194 +12477,173 @@ snapshots: yaml: 2.8.2 yaml-eslint-parser: 2.0.0 - eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@babel/core': 7.26.0 - '@babel/parser': 7.26.2 - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.0) - eslint: 9.39.2(jiti@1.21.6) + '@babel/core': 7.28.6 + '@babel/parser': 7.28.6 + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.6) + eslint: 9.39.2(jiti@1.21.7) hermes-parser: 0.25.1 - zod: 3.23.8 - zod-validation-error: 3.4.0(zod@3.23.8) + zod: 3.25.76 + zod-validation-error: 3.5.4(zod@3.25.76) transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-react-dom@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@eslint-react/eff': 2.7.2 - '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.53.1 '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) compare-versions: 6.1.1 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) string-ts: 2.3.1 ts-pattern: 5.9.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-react-hooks-extra@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@eslint-react/eff': 2.7.2 - '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) string-ts: 2.3.1 ts-pattern: 5.9.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 '@babel/parser': 7.28.6 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) hermes-parser: 0.25.1 - zod: 3.25.76 - zod-validation-error: 4.0.2(zod@3.25.76) + zod: 4.3.5 + zod-validation-error: 4.0.2(zod@4.3.5) transitivePeerDependencies: - supports-color - eslint-plugin-react-naming-convention@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-react-naming-convention@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@eslint-react/eff': 2.7.2 - '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) compare-versions: 6.1.1 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) string-ts: 2.3.1 ts-pattern: 5.9.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@1.21.7)): dependencies: - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) - eslint-plugin-react-web-api@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-react-web-api@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@eslint-react/eff': 2.7.2 - '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.53.1 '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) string-ts: 2.3.1 ts-pattern: 5.9.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-x@2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-react-x@2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/ast': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/core': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@eslint-react/eff': 2.7.2 - '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@eslint-react/shared': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@eslint-react/var': 2.7.2(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) compare-versions: 6.1.1 - eslint: 9.39.2(jiti@1.21.6) - is-immutable-type: 5.0.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + eslint: 9.39.2(jiti@1.21.7) + is-immutable-type: 5.0.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) string-ts: 2.3.1 - ts-api-utils: 2.4.0(typescript@5.8.3) + ts-api-utils: 2.4.0(typescript@5.9.3) ts-pattern: 5.9.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) + '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.4 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) jsdoc-type-pratt-parser: 4.8.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-tailwindcss@3.18.0(tailwindcss@3.4.4): + eslint-plugin-tailwindcss@3.18.2(tailwindcss@3.4.19(yaml@2.8.2)): dependencies: - fast-glob: 3.3.2 - postcss: 8.4.49 - tailwindcss: 3.4.4 + fast-glob: 3.3.3 + postcss: 8.5.6 + tailwindcss: 3.4.19(yaml@2.8.2) - eslint-plugin-testing-library@7.5.3(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + eslint-plugin-testing-library@7.15.4(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/utils': 8.34.0(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) + '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-toml@1.0.3(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-toml@1.0.3(eslint@9.39.2(jiti@1.21.7)): dependencies: '@eslint/core': 1.0.1 '@eslint/plugin-kit': 0.5.1 - debug: 4.4.1 - eslint: 9.39.2(jiti@1.21.6) + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.7) toml-eslint-parser: 1.0.3 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@59.0.1(eslint@9.39.2(jiti@1.21.6)): - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) - '@eslint/plugin-kit': 0.2.8 - ci-info: 4.2.0 - clean-regexp: 1.0.0 - core-js-compat: 3.43.0 - eslint: 9.39.2(jiti@1.21.6) - esquery: 1.6.0 - find-up-simple: 1.0.1 - globals: 16.2.0 - indent-string: 5.0.0 - is-builtin-module: 5.0.0 - jsesc: 3.1.0 - pluralize: 8.0.0 - regexp-tree: 0.1.27 - regjsparser: 0.12.0 - semver: 7.7.2 - strip-indent: 4.0.0 - - eslint-plugin-unicorn@62.0.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-unicorn@62.0.0(eslint@9.39.2(jiti@1.21.7)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@eslint/plugin-kit': 0.4.1 change-case: 5.4.4 ci-info: 4.3.1 clean-regexp: 1.0.0 core-js-compat: 3.47.0 - eslint: 9.39.2(jiti@1.21.6) - esquery: 1.6.0 + eslint: 9.39.2(jiti@1.21.7) + esquery: 1.7.0 find-up-simple: 1.0.1 globals: 16.5.0 indent-string: 5.0.0 @@ -11874,48 +12655,43 @@ snapshots: semver: 7.7.3 strip-indent: 4.1.1 - eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)): dependencies: - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) - eslint-plugin-vue@10.7.0(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.6)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3))(eslint@9.39.2(jiti@1.21.6))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.6))): + eslint-plugin-vue@10.7.0(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@1.21.7)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.7))): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.2(jiti@1.21.6)) - eslint: 9.39.2(jiti@1.21.6) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) + eslint: 9.39.2(jiti@1.21.7) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 7.1.1 - semver: 7.7.2 - vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@1.21.6)) + semver: 7.7.3 + vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@1.21.7)) xml-name-validator: 4.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@1.21.6)) - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) + '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@1.21.7)) + '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) - eslint-plugin-yml@3.0.0(eslint@9.39.2(jiti@1.21.6)): + eslint-plugin-yml@3.0.0(eslint@9.39.2(jiti@1.21.7)): dependencies: '@eslint/core': 1.0.1 '@eslint/plugin-kit': 0.5.1 - debug: 4.4.1 + debug: 4.4.3 diff-sequences: 29.6.3 escape-string-regexp: 5.0.0 - eslint: 9.39.2(jiti@1.21.6) + eslint: 9.39.2(jiti@1.21.7) natural-compare: 1.4.0 yaml-eslint-parser: 2.0.0 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.27)(eslint@9.39.2(jiti@1.21.6)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.27)(eslint@9.39.2(jiti@1.21.7)): dependencies: '@vue/compiler-sfc': 3.5.27 - eslint: 9.39.2(jiti@1.21.6) - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + eslint: 9.39.2(jiti@1.21.7) eslint-scope@8.4.0: dependencies: @@ -11928,17 +12704,17 @@ snapshots: eslint-visitor-keys@5.0.0: {} - eslint@9.39.2(jiti@1.21.6): + eslint@9.39.2(jiti@1.21.7): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.1 + '@eslint/eslintrc': 3.3.3 '@eslint/js': 9.39.2 '@eslint/plugin-kit': 0.4.1 - '@humanfs/node': 0.16.6 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 @@ -11965,7 +12741,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 1.21.6 + jiti: 1.21.7 transitivePeerDependencies: - supports-color @@ -11989,10 +12765,6 @@ snapshots: esprima@4.0.1: {} - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -12001,8 +12773,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} estree-walker@2.0.2: {} @@ -12013,7 +12783,7 @@ snapshots: event-target-shim@5.0.1: {} - eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} events@3.3.0: {} @@ -12057,215 +12827,234 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - expo-asset@11.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-asset@12.0.12(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - '@expo/image-utils': 0.7.4 - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.6(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + '@expo/image-utils': 0.8.8 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-constants@17.1.6(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): + expo-constants@18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)): dependencies: - '@expo/config': 11.0.10 - '@expo/env': 1.0.5 - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + '@expo/config': 12.0.13 + '@expo/env': 2.0.8 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-crypto@14.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-crypto@15.0.8(expo@54.0.31): dependencies: base64-js: 1.5.1 - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-dev-client@5.2.1(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-dev-client@6.0.20(expo@54.0.31): dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-dev-launcher: 5.1.13(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - expo-dev-menu: 6.1.12(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - expo-dev-menu-interface: 1.10.0(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - expo-manifests: 0.16.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - expo-updates-interface: 1.1.0(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-dev-launcher: 6.0.20(expo@54.0.31) + expo-dev-menu: 7.0.18(expo@54.0.31) + expo-dev-menu-interface: 2.0.0(expo@54.0.31) + expo-manifests: 1.0.10(expo@54.0.31) + expo-updates-interface: 2.0.0(expo@54.0.31) transitivePeerDependencies: - supports-color - expo-dev-launcher@5.1.13(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-dev-launcher@6.0.20(expo@54.0.31): dependencies: - ajv: 8.11.0 - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-dev-menu: 6.1.12(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - expo-manifests: 0.16.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - resolve-from: 5.0.0 + ajv: 8.17.1 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-dev-menu: 7.0.18(expo@54.0.31) + expo-manifests: 1.0.10(expo@54.0.31) transitivePeerDependencies: - supports-color - expo-dev-menu-interface@1.10.0(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-dev-menu-interface@2.0.0(expo@54.0.31): dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-dev-menu@6.1.12(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-dev-menu@7.0.18(expo@54.0.31): dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-dev-menu-interface: 1.10.0(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-dev-menu-interface: 2.0.0(expo@54.0.31) - expo-file-system@18.1.10(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): + expo-file-system@19.0.21(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)): dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - expo-font@13.3.1(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + expo-font@14.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) fontfaceobserver: 2.3.0 - react: 19.0.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - expo-image@2.3.0(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-image@3.0.11(expo@54.0.31)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) optionalDependencies: - react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) expo-json-utils@0.15.0: {} - expo-keep-awake@14.1.4(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + expo-keep-awake@15.0.8(expo@54.0.31)(react@19.1.0): dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react: 19.0.0 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 19.1.0 - expo-linking@7.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-linking@8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - expo-constants: 17.1.6(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) invariant: 2.2.4 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - expo - supports-color - expo-localization@16.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + expo-localization@17.0.8(expo@54.0.31)(react@19.1.0): dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react: 19.0.0 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react: 19.1.0 rtl-detect: 1.1.2 - expo-manifests@0.16.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-manifests@1.0.10(expo@54.0.31): dependencies: - '@expo/config': 11.0.10 - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@expo/config': 12.0.13 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-json-utils: 0.15.0 transitivePeerDependencies: - supports-color - expo-modules-autolinking@2.1.12: + expo-modules-autolinking@3.0.24: dependencies: '@expo/spawn-async': 1.7.2 chalk: 4.1.2 commander: 7.2.0 - find-up: 5.0.0 - glob: 10.4.5 require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@2.4.0: + expo-modules-core@3.0.29(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: invariant: 2.2.4 - - expo-router@5.1.0(7ec05cbd1f45884dfc25001ff0a5198d): - dependencies: - '@expo/metro-runtime': 5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) - '@expo/server': 0.6.2 - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.14)(react@19.0.0) - '@react-navigation/bottom-tabs': 7.3.15(@react-navigation/native@7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native-stack': 7.3.16(@react-navigation/native@7.1.11(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + + expo-router@6.0.22(7685cb546f9fca472a3d751aa95b1069): + dependencies: + '@expo/metro-runtime': 6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/schema-utils': 0.1.8 + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.17)(react@19.1.0) + '@radix-ui/react-tabs': 1.1.13(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-navigation/bottom-tabs': 7.10.1(@react-navigation/native@7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native-stack': 7.10.1(@react-navigation/native@7.1.28(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) client-only: 0.0.1 - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.6(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) - expo-linking: 7.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + debug: 4.4.3 + escape-string-regexp: 4.0.0 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) + expo-linking: 8.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-server: 1.0.5 + fast-deep-equal: 3.1.3 invariant: 2.2.4 + nanoid: 3.3.11 + query-string: 7.1.3 + react: 19.1.0 react-fast-compare: 3.2.2 - react-native-is-edge-to-edge: 1.1.6(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - schema-utils: 4.2.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) semver: 7.6.3 server-only: 0.0.1 + sf-symbols-typescript: 2.2.0 shallowequal: 1.1.0 + use-latest-callback: 0.2.6(react@19.1.0) + vaul: 1.1.2(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) optionalDependencies: - react-native-reanimated: 3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@testing-library/react-native': 13.3.3(jest@29.7.0(@types/node@25.0.9))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0) + react-dom: 19.1.0(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@types/react' - - react - - react-native + - '@types/react-dom' - supports-color - expo-splash-screen@0.30.9(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-server@1.0.5: {} + + expo-splash-screen@31.0.13(expo@54.0.31): dependencies: - '@expo/prebuild-config': 9.0.6 - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@expo/prebuild-config': 54.0.8(expo@54.0.31) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - expo-status-bar@2.2.3(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-edge-to-edge: 1.6.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-is-edge-to-edge: 1.1.6(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-system-ui@5.0.9(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): + expo-system-ui@6.0.9(expo@54.0.31)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)): dependencies: - '@react-native/normalize-colors': 0.79.4 - debug: 4.4.1 - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + '@react-native/normalize-colors': 0.81.5 + debug: 4.4.3 + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) optionalDependencies: - react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - expo-updates-interface@1.1.0(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): - dependencies: - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - - expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): - dependencies: - '@babel/runtime': 7.26.0 - '@expo/cli': 0.24.15 - '@expo/config': 11.0.10 - '@expo/config-plugins': 10.0.3 - '@expo/fingerprint': 0.13.1 - '@expo/metro-config': 0.20.15 - '@expo/vector-icons': 14.0.4 - babel-preset-expo: 13.2.1(@babel/core@7.26.0) - expo-asset: 11.1.5(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.6(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) - expo-file-system: 18.1.10(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) - expo-font: 13.3.1(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) - expo-keep-awake: 14.1.4(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) - expo-modules-autolinking: 2.1.12 - expo-modules-core: 2.4.0 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-edge-to-edge: 1.6.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo-updates-interface@2.0.0(expo@54.0.31): + dependencies: + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + + expo@54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + '@babel/runtime': 7.28.6 + '@expo/cli': 54.0.21(expo-router@6.0.22)(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) + '@expo/config': 12.0.13 + '@expo/config-plugins': 54.0.4 + '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/fingerprint': 0.15.4 + '@expo/metro': 54.2.0 + '@expo/metro-config': 54.0.13(expo@54.0.31) + '@expo/vector-icons': 15.0.3(expo-font@14.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@ungap/structured-clone': 1.3.0 + babel-preset-expo: 54.0.10(@babel/core@7.28.6)(@babel/runtime@7.28.6)(expo@54.0.31)(react-refresh@0.14.2) + expo-asset: 12.0.12(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.13(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) + expo-file-system: 19.0.21(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) + expo-font: 14.0.11(expo@54.0.31)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-keep-awake: 15.0.8(expo@54.0.31)(react@19.1.0) + expo-modules-autolinking: 3.0.24 + expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + pretty-format: 29.7.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) + '@expo/metro-runtime': 6.1.2(expo@54.0.31)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - - babel-plugin-react-compiler - bufferutil + - expo-router - graphql - supports-color - utf-8-validate - exponential-backoff@3.1.1: {} + exponential-backoff@3.1.3: {} exsolve@1.0.8: {} @@ -12277,7 +13066,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 @@ -12289,11 +13078,11 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.0.3: {} + fast-uri@3.1.0: {} - fastq@1.17.1: + fastq@1.20.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 fault@2.0.1: dependencies: @@ -12307,20 +13096,16 @@ snapshots: fbjs@3.0.5: dependencies: - cross-fetch: 3.1.8 + cross-fetch: 3.2.0 fbjs-css-vars: 1.0.2 loose-envify: 1.4.0 object-assign: 4.1.1 promise: 7.3.1 setimmediate: 1.0.5 - ua-parser-js: 1.0.39 + ua-parser-js: 1.0.41 transitivePeerDependencies: - encoding - fdir@6.4.6(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -12344,7 +13129,7 @@ snapshots: file-type@16.5.4: dependencies: - readable-web-to-node-stream: 3.0.2 + readable-web-to-node-stream: 3.0.4 strtok3: 6.3.0 token-types: 4.2.1 @@ -12370,8 +13155,6 @@ snapshots: dependencies: json5: 2.2.3 - find-up-simple@1.0.0: {} - find-up-simple@1.0.1: {} find-up@3.0.0: @@ -12396,42 +13179,39 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 - flatted@3.3.2: {} + flatted@3.3.3: {} flow-enums-runtime@0.0.6: {} - follow-redirects@1.15.9: {} + follow-redirects@1.15.11: {} fontfaceobserver@2.3.0: {} - for-each@0.3.3: + for-each@0.3.5: dependencies: is-callable: 1.2.7 - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - form-data@4.0.1: + form-data@4.0.5: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 format@0.2.2: {} - framer-motion@6.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + framer-motion@6.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@motionone/dom': 10.12.0 framesync: 6.0.1 hey-listen: 1.0.8 popmotion: 11.0.3 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) style-value-types: 5.0.0 tslib: 2.8.1 optionalDependencies: @@ -12452,49 +13232,61 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.6: + function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.5 functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 functions-have-names@1.2.3: {} + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} - get-east-asian-width@1.3.0: {} + get-east-asian-width@1.4.0: {} - get-intrinsic@1.2.4: + get-intrinsic@1.3.0: dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-nonce@1.0.1: {} get-package-type@0.1.0: {} - get-port@3.2.0: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 get-stream@6.0.1: {} get-stream@8.0.1: {} - get-symbol-description@1.0.2: + get-symbol-description@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 - get-tsconfig@4.10.1: + get-tsconfig@4.13.0: dependencies: resolve-pkg-maps: 1.0.0 - getenv@1.0.0: {} - getenv@2.0.0: {} gifwrap@0.10.1: @@ -12520,16 +13312,11 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} - - glob@10.4.5: + glob@13.0.0: dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 + minimatch: 10.1.1 minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 + path-scurry: 2.0.1 glob@7.2.3: dependencies: @@ -12551,19 +13338,19 @@ snapshots: dependencies: ini: 4.1.1 + global-dirs@0.1.1: + dependencies: + ini: 1.3.8 + global@4.4.0: dependencies: - min-document: 2.19.0 + min-document: 2.19.2 process: 0.11.10 - globals@11.12.0: {} - globals@14.0.0: {} globals@15.15.0: {} - globals@16.2.0: {} - globals@16.5.0: {} globals@17.0.0: {} @@ -12571,21 +13358,20 @@ snapshots: globalthis@1.0.4: dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 - globby@13.2.2: + globby@14.1.0: dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 4.0.0 + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.5 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 globrex@0.1.2: {} - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 + gopd@1.2.0: {} graceful-fs@4.2.10: {} @@ -12593,29 +13379,38 @@ snapshots: graphemer@1.4.0: {} + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + has-ansi@2.0.0: dependencies: ansi-regex: 2.1.1 - has-bigints@1.0.2: {} + has-bigints@1.1.0: {} has-flag@3.0.0: {} has-flag@4.0.0: {} - has-own-prop@2.0.0: {} - has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 - has-proto@1.0.3: {} + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 - has-symbols@1.0.3: {} + has-symbols@1.1.0: {} has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 hasown@2.0.2: dependencies: @@ -12623,15 +13418,21 @@ snapshots: hermes-estree@0.25.1: {} - hermes-estree@0.28.1: {} + hermes-estree@0.29.1: {} + + hermes-estree@0.32.0: {} hermes-parser@0.25.1: dependencies: hermes-estree: 0.25.1 - hermes-parser@0.28.1: + hermes-parser@0.29.1: + dependencies: + hermes-estree: 0.29.1 + + hermes-parser@0.32.0: dependencies: - hermes-estree: 0.28.1 + hermes-estree: 0.32.0 hey-listen@1.0.8: {} @@ -12643,10 +13444,18 @@ snapshots: dependencies: lru-cache: 10.4.3 + hosted-git-info@8.1.0: + dependencies: + lru-cache: 10.4.3 + html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 + html-encoding-sniffer@4.0.0: + dependencies: + whatwg-encoding: 3.1.1 + html-entities@2.6.0: {} html-escaper@2.0.2: {} @@ -12655,12 +13464,12 @@ snapshots: dependencies: void-elements: 3.1.0 - http-errors@2.0.0: + http-errors@2.0.1: dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 - statuses: 2.0.1 + statuses: 2.0.2 toidentifier: 1.0.1 http-proxy-agent@5.0.0: @@ -12671,6 +13480,13 @@ snapshots: transitivePeerDependencies: - supports-color + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 @@ -12680,7 +13496,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -12689,13 +13505,21 @@ snapshots: human-signals@5.0.0: {} - husky@9.1.5: {} + husky@9.1.7: {} hyphenate-style-name@1.1.0: {} - i18next@23.14.0: + i18n-js@4.5.1: + dependencies: + bignumber.js: 9.3.1 + lodash: 4.17.21 + make-plural: 8.1.0 + + i18next@25.8.0(typescript@5.9.3): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.28.6 + optionalDependencies: + typescript: 5.9.3 iconv-lite@0.4.24: dependencies: @@ -12705,9 +13529,13 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} - ignore-walk@6.0.5: + ignore-walk@7.0.0: dependencies: minimatch: 9.0.5 @@ -12719,16 +13547,11 @@ snapshots: dependencies: '@types/node': 16.9.1 - image-size@1.1.1: + image-size@1.2.1: dependencies: queue: 6.0.2 - import-fresh@2.0.0: - dependencies: - caller-path: 2.0.0 - resolve-from: 3.0.0 - - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -12738,7 +13561,7 @@ snapshots: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - import-meta-resolve@4.1.0: {} + import-meta-resolve@4.2.0: {} imurmurhash@0.1.4: {} @@ -12748,7 +13571,7 @@ snapshots: indent-string@5.0.0: {} - index-to-position@0.1.2: {} + index-to-position@1.2.0: {} inflight@1.0.6: dependencies: @@ -12771,6 +13594,18 @@ snapshots: inquirer: 6.5.2 rxjs: 6.6.7 + inquirer@12.11.1(@types/node@25.0.9): + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@25.0.9) + '@inquirer/prompts': 7.10.1(@types/node@25.0.9) + '@inquirer/type': 3.0.10(@types/node@25.0.9) + mute-stream: 2.0.0 + run-async: 4.0.6 + rxjs: 7.8.2 + optionalDependencies: + '@types/node': 25.0.9 + inquirer@6.5.2: dependencies: ansi-escapes: 3.2.0 @@ -12803,26 +13638,11 @@ snapshots: strip-ansi: 6.0.1 through: 2.3.8 - inquirer@9.3.7: - dependencies: - '@inquirer/figures': 1.0.8 - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - external-editor: 3.1.0 - mute-stream: 1.0.0 - ora: 5.4.1 - run-async: 3.0.0 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - - internal-slot@1.0.7: + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 invariant@2.2.4: dependencies: @@ -12830,26 +13650,35 @@ snapshots: irregular-plurals@1.4.0: {} - is-array-buffer@3.0.4: + is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-arrayish@0.2.1: {} - is-arrayish@0.3.2: {} + is-arrayish@0.3.4: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 - is-bigint@1.0.4: + is-bigint@1.1.0: dependencies: - has-bigints: 1.0.2 + has-bigints: 1.1.0 is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.1.2: + is-boolean-object@1.2.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-builtin-module@5.0.0: @@ -12858,30 +13687,35 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 is-callable@1.2.7: {} - is-core-module@2.15.1: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.1: + is-data-view@1.0.2: dependencies: - is-typed-array: 1.1.13 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 - is-date-object@1.0.5: + is-date-object@1.1.0: dependencies: + call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-directory@0.3.1: {} - is-docker@2.2.1: {} is-docker@3.0.0: {} is-extglob@2.1.1: {} + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + is-fullwidth-code-point@1.0.0: dependencies: number-is-nan: 1.0.1 @@ -12890,27 +13724,33 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-fullwidth-code-point@4.0.0: {} - - is-fullwidth-code-point@5.0.0: + is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.3.0 + get-east-asian-width: 1.4.0 is-function@1.0.2: {} is-generator-fn@2.1.0: {} + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - is-immutable-type@5.0.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3): + is-immutable-type@5.0.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3): dependencies: - '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.6))(typescript@5.8.3) - eslint: 9.39.2(jiti@1.21.6) - ts-api-utils: 2.4.0(typescript@5.8.3) - ts-declaration-location: 1.0.7(typescript@5.8.3) - typescript: 5.8.3 + '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) + ts-api-utils: 2.4.0(typescript@5.9.3) + ts-declaration-location: 1.0.7(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -12925,16 +13765,17 @@ snapshots: global-directory: 4.0.1 is-path-inside: 4.0.0 - is-interactive@1.0.0: {} - is-interactive@2.0.0: {} + is-map@2.0.3: {} + is-negative-zero@2.0.3: {} - is-npm@6.0.0: {} + is-npm@6.1.0: {} - is-number-object@1.0.7: + is-number-object@1.1.1: dependencies: + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -12953,18 +13794,22 @@ snapshots: is-promise@2.2.2: {} - is-regex@1.1.4: + is-regex@1.2.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 + gopd: 1.2.0 has-tostringtag: 1.0.2 + hasown: 2.0.2 is-scoped@3.0.0: dependencies: scoped-regex: 3.0.0 - is-shared-array-buffer@1.0.3: + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 is-stream@1.1.0: {} @@ -12972,31 +13817,39 @@ snapshots: is-stream@3.0.0: {} - is-string@1.0.7: + is-string@1.1.1: dependencies: + call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-symbol@1.0.4: + is-symbol@1.1.1: dependencies: - has-symbols: 1.0.3 + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 is-text-path@2.0.0: dependencies: text-extensions: 2.4.0 - is-typed-array@1.1.13: + is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.15 + which-typed-array: 1.1.20 - is-unicode-supported@0.1.0: {} - - is-unicode-supported@1.3.0: {} + is-unicode-supported@2.1.0: {} is-url-superb@6.1.0: {} - is-weakref@1.0.2: + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-wsl@2.2.0: dependencies: @@ -13023,7 +13876,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 '@babel/parser': 7.28.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -13033,11 +13886,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 '@babel/parser': 7.28.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -13055,17 +13908,11 @@ snapshots: transitivePeerDependencies: - supports-color - istanbul-reports@3.1.7: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jest-changed-files@29.7.0: dependencies: execa: 5.1.1 @@ -13078,10 +13925,10 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.3 + dedent: 1.7.1 is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -13098,16 +13945,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.9.1): + jest-cli@29.7.0(@types/node@25.0.9): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.9.1) + create-jest: 29.7.0(@types/node@25.0.9) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.9.1) + jest-config: 29.7.0(@types/node@25.0.9) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -13117,12 +13964,12 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.9.1): + jest-config@29.7.0(@types/node@25.0.9): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.0) + babel-jest: 29.7.0(@babel/core@7.28.6) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -13142,7 +13989,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.9.1 + '@types/node': 25.0.9 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -13161,6 +14008,13 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-diff@30.2.0: + dependencies: + '@jest/diff-sequences': 30.0.1 + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + pretty-format: 30.2.0 + jest-docblock@29.7.0: dependencies: detect-newline: 3.1.0 @@ -13179,7 +14033,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.9.1 + '@types/node': 25.0.9 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -13188,33 +14042,43 @@ snapshots: - supports-color - utf-8-validate + jest-environment-jsdom@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/environment-jsdom-abstract': 30.2.0(jsdom@26.1.0) + '@types/jsdom': 21.1.7 + '@types/node': 25.0.9 + jsdom: 26.1.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@53.0.7(@babel/core@7.26.0)(expo@53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(jest@29.7.0(@types/node@22.9.1))(react-dom@19.0.0(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(webpack@5.96.1): + jest-expo@54.0.16(@babel/core@7.28.6)(expo@54.0.31)(jest@29.7.0(@types/node@25.0.9))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - '@expo/config': 11.0.10 - '@expo/json-file': 9.1.4 + '@expo/config': 12.0.13 + '@expo/json-file': 10.0.8 '@jest/create-cache-key-function': 29.7.0 '@jest/globals': 29.7.0 - babel-jest: 29.7.0(@babel/core@7.26.0) - expo: 53.0.12(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - find-up: 5.0.0 + babel-jest: 29.7.0(@babel/core@7.28.6) + expo: 54.0.31(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(expo-router@6.0.22)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) jest-environment-jsdom: 29.7.0 jest-snapshot: 29.7.0 jest-watch-select-projects: 2.0.0 - jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.9.1)) + jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@25.0.9)) json5: 2.2.3 lodash: 4.17.21 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-server-dom-webpack: 19.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.96.1) - react-test-renderer: 19.0.0(react@19.0.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-test-renderer: 19.1.0(react@19.1.0) server-only: 0.0.1 stacktrace-js: 2.0.2 transitivePeerDependencies: @@ -13223,10 +14087,8 @@ snapshots: - canvas - jest - react - - react-dom - supports-color - utf-8-validate - - webpack jest-get-type@22.4.3: {} @@ -13236,7 +14098,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.9.1 + '@types/node': 25.0.9 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13248,6 +14110,22 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + jest-haste-map@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 25.0.9 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 30.0.1 + jest-util: 30.2.0 + jest-worker: 30.2.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + optional: true + jest-junit@16.0.0: dependencies: mkdirp: 1.0.4 @@ -13267,9 +14145,16 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-matcher-utils@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + jest-diff: 30.2.0 + pretty-format: 30.2.0 + jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.28.6 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -13279,18 +14164,38 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 + jest-message-util@30.2.0: + dependencies: + '@babel/code-frame': 7.28.6 + '@jest/types': 30.2.0 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 30.2.0 + slash: 3.0.0 + stack-utils: 2.0.6 + jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 jest-util: 29.7.0 + jest-mock@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 25.0.9 + jest-util: 30.2.0 + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): optionalDependencies: jest-resolve: 29.7.0 jest-regex-util@29.6.3: {} + jest-regex-util@30.0.1: {} + jest-resolve-dependencies@29.7.0: dependencies: jest-regex-util: 29.6.3 @@ -13306,8 +14211,8 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 + resolve: 1.22.11 + resolve.exports: 2.0.3 slash: 3.0.0 jest-runner@29.7.0: @@ -13317,7 +14222,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -13345,10 +14250,10 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 chalk: 4.1.2 - cjs-module-lexer: 1.4.1 - collect-v8-coverage: 1.0.2 + cjs-module-lexer: 1.4.3 + collect-v8-coverage: 1.0.3 glob: 7.2.3 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 @@ -13365,15 +14270,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 + '@babel/core': 7.28.6 + '@babel/generator': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.6) + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.28.6) + '@babel/types': 7.28.6 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.6) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -13384,19 +14289,28 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.6.3 + semver: 7.7.3 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 + jest-util@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 25.0.9 + chalk: 4.1.2 + ci-info: 4.3.1 + graceful-fs: 4.2.11 + picomatch: 4.0.3 + jest-validate@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -13412,47 +14326,50 @@ snapshots: chalk: 3.0.0 prompts: 2.4.2 - jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@22.9.1)): + jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@25.0.9)): dependencies: ansi-escapes: 6.2.1 chalk: 4.1.2 - jest: 29.7.0(@types/node@22.9.1) + jest: 29.7.0(@types/node@25.0.9) jest-regex-util: 29.6.3 jest-watcher: 29.7.0 slash: 5.1.0 string-length: 5.0.1 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 jest-watcher@29.7.0: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.9.1 + '@types/node': 25.0.9 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 - jest-worker@27.5.1: + jest-worker@29.7.0: dependencies: - '@types/node': 22.9.1 + '@types/node': 25.0.9 + jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@29.7.0: + jest-worker@30.2.0: dependencies: - '@types/node': 22.9.1 - jest-util: 29.7.0 + '@types/node': 25.0.9 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 + optional: true - jest@29.7.0(@types/node@22.9.1): + jest@29.7.0(@types/node@25.0.9): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.9.1) + jest-cli: 29.7.0(@types/node@25.0.9) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -13471,18 +14388,20 @@ snapshots: - debug - encoding - jiti@1.21.6: {} + jiti@1.21.7: {} + + jiti@2.6.1: {} jpeg-js@0.4.4: {} js-tokens@4.0.0: {} - js-yaml@3.14.1: + js-yaml@3.14.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -13497,21 +14416,21 @@ snapshots: jsdom@20.0.3: dependencies: abab: 2.0.6 - acorn: 8.14.0 + acorn: 8.15.0 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.4.3 + decimal.js: 10.6.0 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.1 + form-data: 4.0.5 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.13 - parse5: 7.2.1 + nwsapi: 2.2.23 + parse5: 7.3.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -13520,21 +14439,44 @@ snapshots: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.18.0 + ws: 8.19.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jsesc@3.0.2: {} + jsdom@26.1.0: + dependencies: + cssstyle: 4.6.0 + data-urls: 5.0.0 + decimal.js: 10.6.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.23 + parse5: 7.3.0 + rrweb-cssom: 0.8.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.1.2 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + ws: 8.19.0 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate jsesc@3.1.0: {} json-buffer@3.0.1: {} - json-parse-better-errors@1.0.2: {} - json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -13554,7 +14496,7 @@ snapshots: acorn: 8.15.0 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.7.2 + semver: 7.7.3 jsonparse@1.3.1: {} @@ -13564,7 +14506,7 @@ snapshots: kleur@3.0.3: {} - ky@1.7.2: {} + ky@1.14.2: {} lan-network@0.1.7: {} @@ -13582,40 +14524,73 @@ snapshots: lighthouse-logger@1.4.2: dependencies: debug: 2.6.9 - marky: 1.2.5 + marky: 1.3.0 transitivePeerDependencies: - supports-color + lightningcss-android-arm64@1.31.1: + optional: true + lightningcss-darwin-arm64@1.27.0: optional: true + lightningcss-darwin-arm64@1.31.1: + optional: true + lightningcss-darwin-x64@1.27.0: optional: true + lightningcss-darwin-x64@1.31.1: + optional: true + lightningcss-freebsd-x64@1.27.0: optional: true + lightningcss-freebsd-x64@1.31.1: + optional: true + lightningcss-linux-arm-gnueabihf@1.27.0: optional: true + lightningcss-linux-arm-gnueabihf@1.31.1: + optional: true + lightningcss-linux-arm64-gnu@1.27.0: optional: true + lightningcss-linux-arm64-gnu@1.31.1: + optional: true + lightningcss-linux-arm64-musl@1.27.0: optional: true + lightningcss-linux-arm64-musl@1.31.1: + optional: true + lightningcss-linux-x64-gnu@1.27.0: optional: true + lightningcss-linux-x64-gnu@1.31.1: + optional: true + lightningcss-linux-x64-musl@1.27.0: optional: true + lightningcss-linux-x64-musl@1.31.1: + optional: true + lightningcss-win32-arm64-msvc@1.27.0: optional: true + lightningcss-win32-arm64-msvc@1.31.1: + optional: true + lightningcss-win32-x64-msvc@1.27.0: optional: true + lightningcss-win32-x64-msvc@1.31.1: + optional: true + lightningcss@1.27.0: dependencies: detect-libc: 1.0.3 @@ -13631,26 +14606,35 @@ snapshots: lightningcss-win32-arm64-msvc: 1.27.0 lightningcss-win32-x64-msvc: 1.27.0 - lilconfig@2.1.0: {} - - lilconfig@3.1.2: {} + lightningcss@1.31.1: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.31.1 + lightningcss-darwin-arm64: 1.31.1 + lightningcss-darwin-x64: 1.31.1 + lightningcss-freebsd-x64: 1.31.1 + lightningcss-linux-arm-gnueabihf: 1.31.1 + lightningcss-linux-arm64-gnu: 1.31.1 + lightningcss-linux-arm64-musl: 1.31.1 + lightningcss-linux-x64-gnu: 1.31.1 + lightningcss-linux-x64-musl: 1.31.1 + lightningcss-win32-arm64-msvc: 1.31.1 + lightningcss-win32-x64-msvc: 1.31.1 + + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} - lint-staged@15.2.9: + lint-staged@16.2.7: dependencies: - chalk: 5.3.0 - commander: 12.1.0 - debug: 4.3.7 - execa: 8.0.1 - lilconfig: 3.1.2 - listr2: 8.2.5 + commander: 14.0.2 + listr2: 9.0.5 micromatch: 4.0.8 + nano-spawn: 2.0.0 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.5.1 - transitivePeerDependencies: - - supports-color + yaml: 2.8.2 listr-input@0.2.1: dependencies: @@ -13680,14 +14664,14 @@ snapshots: date-fns: 1.30.1 figures: 2.0.0 - listr2@8.2.5: + listr2@9.0.5: dependencies: - cli-truncate: 4.0.0 + cli-truncate: 5.1.1 colorette: 2.0.20 - eventemitter3: 5.0.1 + eventemitter3: 5.0.4 log-update: 6.1.0 rfdc: 1.4.1 - wrap-ansi: 9.0.0 + wrap-ansi: 9.0.2 listr@0.14.3: dependencies: @@ -13717,8 +14701,6 @@ snapshots: transitivePeerDependencies: - debug - loader-runner@4.3.0: {} - local-pkg@1.1.2: dependencies: mlly: 1.8.0 @@ -13778,15 +14760,10 @@ snapshots: dependencies: chalk: 2.4.2 - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - - log-symbols@6.0.0: + log-symbols@7.0.1: dependencies: - chalk: 5.3.0 - is-unicode-supported: 1.3.0 + is-unicode-supported: 2.1.0 + yoctocolors: 2.1.2 log-update@2.3.0: dependencies: @@ -13796,11 +14773,11 @@ snapshots: log-update@6.1.0: dependencies: - ansi-escapes: 7.0.0 + ansi-escapes: 7.2.0 cli-cursor: 5.0.0 - slice-ansi: 7.1.0 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 + slice-ansi: 7.1.2 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 longest-streak@3.1.0: {} @@ -13810,6 +14787,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.4: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -13820,17 +14799,21 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 make-error@1.3.6: {} + make-plural@8.1.0: {} + makeerror@1.0.12: dependencies: tmpl: 1.0.5 markdown-table@3.0.4: {} - marky@1.2.5: {} + marky@1.3.0: {} + + math-intrinsics@1.1.0: {} mdast-util-find-and-replace@3.0.2: dependencies: @@ -13959,50 +14942,50 @@ snapshots: merge2@1.4.1: {} - metro-babel-transformer@0.82.4: + metro-babel-transformer@0.83.3: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.28.6 flow-enums-runtime: 0.0.6 - hermes-parser: 0.28.1 + hermes-parser: 0.32.0 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - metro-cache-key@0.82.4: + metro-cache-key@0.83.3: dependencies: flow-enums-runtime: 0.0.6 - metro-cache@0.82.4: + metro-cache@0.83.3: dependencies: - exponential-backoff: 3.1.1 + exponential-backoff: 3.1.3 flow-enums-runtime: 0.0.6 https-proxy-agent: 7.0.6 - metro-core: 0.82.4 + metro-core: 0.83.3 transitivePeerDependencies: - supports-color - metro-config@0.82.4: + metro-config@0.83.3: dependencies: connect: 3.7.0 - cosmiconfig: 5.2.1 flow-enums-runtime: 0.0.6 jest-validate: 29.7.0 - metro: 0.82.4 - metro-cache: 0.82.4 - metro-core: 0.82.4 - metro-runtime: 0.82.4 + metro: 0.83.3 + metro-cache: 0.83.3 + metro-core: 0.83.3 + metro-runtime: 0.83.3 + yaml: 2.8.2 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - metro-core@0.82.4: + metro-core@0.83.3: dependencies: flow-enums-runtime: 0.0.6 lodash.throttle: 4.1.1 - metro-resolver: 0.82.4 + metro-resolver: 0.83.3 - metro-file-map@0.82.4: + metro-file-map@0.83.3: dependencies: debug: 4.4.3 fb-watchman: 2.0.2 @@ -14016,86 +14999,86 @@ snapshots: transitivePeerDependencies: - supports-color - metro-minify-terser@0.82.4: + metro-minify-terser@0.83.3: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.36.0 + terser: 5.46.0 - metro-resolver@0.82.4: + metro-resolver@0.83.3: dependencies: flow-enums-runtime: 0.0.6 - metro-runtime@0.82.4: + metro-runtime@0.83.3: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.28.6 flow-enums-runtime: 0.0.6 - metro-source-map@0.82.4: + metro-source-map@0.83.3: dependencies: - '@babel/traverse': 7.25.9 - '@babel/traverse--for-generate-function-map': '@babel/traverse@7.25.9' - '@babel/types': 7.26.0 + '@babel/traverse': 7.28.6 + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.6' + '@babel/types': 7.28.6 flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-symbolicate: 0.82.4 + metro-symbolicate: 0.83.3 nullthrows: 1.1.1 - ob1: 0.82.4 + ob1: 0.83.3 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: - supports-color - metro-symbolicate@0.82.4: + metro-symbolicate@0.83.3: dependencies: flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-source-map: 0.82.4 + metro-source-map: 0.83.3 nullthrows: 1.1.1 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: - supports-color - metro-transform-plugins@0.82.4: + metro-transform-plugins@0.83.3: dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/core': 7.28.6 + '@babel/generator': 7.28.6 + '@babel/template': 7.28.6 + '@babel/traverse': 7.28.6 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - metro-transform-worker@0.82.4: + metro-transform-worker@0.83.3: dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 + '@babel/core': 7.28.6 + '@babel/generator': 7.28.6 '@babel/parser': 7.28.6 '@babel/types': 7.28.6 flow-enums-runtime: 0.0.6 - metro: 0.82.4 - metro-babel-transformer: 0.82.4 - metro-cache: 0.82.4 - metro-cache-key: 0.82.4 - metro-minify-terser: 0.82.4 - metro-source-map: 0.82.4 - metro-transform-plugins: 0.82.4 + metro: 0.83.3 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-minify-terser: 0.83.3 + metro-source-map: 0.83.3 + metro-transform-plugins: 0.83.3 nullthrows: 1.1.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - metro@0.82.4: + metro@0.83.3: dependencies: - '@babel/code-frame': 7.26.2 - '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 + '@babel/code-frame': 7.28.6 + '@babel/core': 7.28.6 + '@babel/generator': 7.28.6 '@babel/parser': 7.28.6 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.28.6 + '@babel/types': 7.28.6 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -14104,24 +15087,24 @@ snapshots: error-stack-parser: 2.1.4 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 - hermes-parser: 0.28.1 - image-size: 1.1.1 + hermes-parser: 0.32.0 + image-size: 1.2.1 invariant: 2.2.4 jest-worker: 29.7.0 jsc-safe-url: 0.2.4 lodash.throttle: 4.1.1 - metro-babel-transformer: 0.82.4 - metro-cache: 0.82.4 - metro-cache-key: 0.82.4 - metro-config: 0.82.4 - metro-core: 0.82.4 - metro-file-map: 0.82.4 - metro-resolver: 0.82.4 - metro-runtime: 0.82.4 - metro-source-map: 0.82.4 - metro-symbolicate: 0.82.4 - metro-transform-plugins: 0.82.4 - metro-transform-worker: 0.82.4 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 + metro-file-map: 0.83.3 + metro-resolver: 0.83.3 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + metro-symbolicate: 0.83.3 + metro-transform-plugins: 0.83.3 + metro-transform-worker: 0.83.3 mime-types: 2.1.35 nullthrows: 1.1.1 serialize-error: 2.1.0 @@ -14339,7 +15322,7 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.53.0: {} + mime-db@1.54.0: {} mime-types@2.1.35: dependencies: @@ -14355,23 +15338,27 @@ snapshots: mimic-function@5.0.1: {} - min-document@2.19.0: + min-document@2.19.2: dependencies: dom-walk: 0.1.2 min-indent@1.0.1: {} + minimatch@10.1.1: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@8.0.4: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} @@ -14379,18 +15366,12 @@ snapshots: minipass@7.1.2: {} - minizlib@3.0.2: + minizlib@3.1.0: dependencies: minipass: 7.1.2 - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - mkdirp@1.0.4: {} - mkdirp@3.0.1: {} - mlly@1.8.0: dependencies: acorn: 8.15.0 @@ -14398,10 +15379,10 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.3 - moti@0.29.0(react-dom@19.0.0(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + moti@0.30.0(react-dom@19.1.0(react@19.1.0))(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0): dependencies: - framer-motion: 6.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-native-reanimated: 3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + framer-motion: 6.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - react - react-dom @@ -14414,7 +15395,7 @@ snapshots: mute-stream@0.0.8: {} - mute-stream@1.0.0: {} + mute-stream@2.0.0: {} mz@2.7.0: dependencies: @@ -14422,20 +15403,18 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.11: {} - - nanoid@3.3.7: {} + nano-spawn@2.0.0: {} - nanoid@3.3.8: {} + nanoid@3.3.11: {} - napi-postinstall@0.2.4: {} + napi-postinstall@0.3.4: {} - nativewind@4.1.21(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.4): + nativewind@4.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(yaml@2.8.2)): dependencies: - comment-json: 4.2.5 - debug: 4.3.7 - react-native-css-interop: 0.1.20(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.4) - tailwindcss: 3.4.4 + comment-json: 4.5.1 + debug: 4.4.3 + react-native-css-interop: 0.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(yaml@2.8.2)) + tailwindcss: 3.4.19(yaml@2.8.2) transitivePeerDependencies: - react - react-native @@ -14464,63 +15443,60 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-forge@1.3.1: {} + node-forge@1.3.3: {} node-int64@0.4.0: {} - node-releases@2.0.18: {} - - node-releases@2.0.19: {} - node-releases@2.0.27: {} normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.6.3 + semver: 7.7.3 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} - np@10.0.7(typescript@5.8.3): + np@10.3.0(@types/node@25.0.9)(typescript@5.9.3): dependencies: - chalk: 5.3.0 - chalk-template: 1.1.0 - cosmiconfig: 8.3.6(typescript@5.8.3) - del: 7.1.0 + chalk: 5.6.2 + chalk-template: 1.1.2 + cosmiconfig: 8.3.6(typescript@5.9.3) + del: 8.0.1 escape-goat: 4.0.0 escape-string-regexp: 5.0.0 execa: 8.0.1 exit-hook: 4.0.0 github-url-from-git: 1.5.0 - hosted-git-info: 7.0.2 - ignore-walk: 6.0.5 + hosted-git-info: 8.1.0 + ignore-walk: 7.0.0 import-local: 3.2.0 - inquirer: 9.3.7 + inquirer: 12.11.1(@types/node@25.0.9) is-installed-globally: 1.0.0 is-interactive: 2.0.0 is-scoped: 3.0.0 issue-regex: 4.3.0 listr: 0.14.3 listr-input: 0.2.1 - log-symbols: 6.0.0 + log-symbols: 7.0.1 meow: 13.2.0 new-github-release-url: 2.0.0 npm-name: 8.0.0 onetime: 7.0.0 - open: 10.1.0 + open: 10.2.0 p-memoize: 7.1.1 - p-timeout: 6.1.3 + p-timeout: 6.1.4 + package-directory: 8.1.0 path-exists: 5.0.0 - pkg-dir: 8.0.0 read-package-up: 11.0.0 read-pkg: 9.0.1 - rxjs: 7.8.1 - semver: 7.6.3 + rxjs: 7.8.2 + semver: 7.7.3 symbol-observable: 4.0.0 terminal-link: 3.0.0 update-notifier: 7.3.1 transitivePeerDependencies: + - '@types/node' - typescript - zen-observable - zenObservable @@ -14529,11 +15505,11 @@ snapshots: dependencies: is-scoped: 3.0.0 is-url-superb: 6.1.0 - ky: 1.7.2 + ky: 1.14.2 lodash.zip: 4.2.0 org-regex: 1.0.0 - p-map: 7.0.2 - registry-auth-token: 5.0.2 + p-map: 7.0.4 + registry-auth-token: 5.1.1 registry-url: 6.0.1 validate-npm-package-name: 5.0.1 @@ -14541,7 +15517,7 @@ snapshots: dependencies: hosted-git-info: 7.0.2 proc-log: 4.2.0 - semver: 7.7.2 + semver: 7.7.3 validate-npm-package-name: 5.0.1 npm-run-path@4.0.1: @@ -14560,9 +15536,9 @@ snapshots: number-is-nan@1.0.1: {} - nwsapi@2.2.13: {} + nwsapi@2.2.23: {} - ob1@0.82.4: + ob1@0.83.3: dependencies: flow-enums-runtime: 0.0.6 @@ -14572,35 +15548,38 @@ snapshots: object-hash@3.0.0: {} - object-inspect@1.13.3: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} - object.assign@4.1.5: + object.assign@4.1.7: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - has-symbols: 1.0.3 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 object-keys: 1.1.1 object.fromentries@2.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 - es-object-atoms: 1.0.0 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 + es-abstract: 1.24.1 - object.values@1.2.0: + object.values@1.2.1: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 omggif@1.0.10: {} @@ -14612,7 +15591,7 @@ snapshots: dependencies: ee-first: 1.1.1 - on-headers@1.0.2: {} + on-headers@1.1.0: {} once@1.4.0: dependencies: @@ -14634,12 +15613,12 @@ snapshots: dependencies: mimic-function: 5.0.1 - open@10.1.0: + open@10.2.0: dependencies: - default-browser: 5.2.1 + default-browser: 5.4.0 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 - is-wsl: 3.1.0 + wsl-utils: 0.1.0 open@7.4.2: dependencies: @@ -14664,28 +15643,22 @@ snapshots: ora@3.4.0: dependencies: chalk: 2.4.2 - cli-cursor: 2.1.0 - cli-spinners: 2.9.2 - log-symbols: 2.2.0 - strip-ansi: 5.2.0 - wcwidth: 1.0.1 - - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 + cli-cursor: 2.1.0 cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 + log-symbols: 2.2.0 + strip-ansi: 5.2.0 wcwidth: 1.0.1 org-regex@1.0.0: {} os-tmpdir@1.0.2: {} + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -14696,7 +15669,7 @@ snapshots: p-limit@4.0.0: dependencies: - yocto-queue: 1.1.1 + yocto-queue: 1.2.2 p-locate@3.0.0: dependencies: @@ -14716,29 +15689,27 @@ snapshots: p-map@2.1.0: {} - p-map@5.5.0: - dependencies: - aggregate-error: 4.0.1 - - p-map@7.0.2: {} + p-map@7.0.4: {} p-memoize@7.1.1: dependencies: mimic-fn: 4.0.0 type-fest: 3.13.1 - p-timeout@6.1.3: {} + p-timeout@6.1.4: {} p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} + package-directory@8.1.0: + dependencies: + find-up-simple: 1.0.1 package-json@10.0.1: dependencies: - ky: 1.7.2 - registry-auth-token: 5.0.2 + ky: 1.14.2 + registry-auth-token: 5.1.1 registry-url: 6.0.1 - semver: 7.7.2 + semver: 7.7.3 package-manager-detector@1.6.0: {} @@ -14759,29 +15730,24 @@ snapshots: parse-gitignore@2.0.0: {} - parse-headers@2.0.5: {} + parse-headers@2.0.6: {} parse-imports-exports@0.2.4: dependencies: parse-statements: 1.0.11 - parse-json@4.0.0: - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 + '@babel/code-frame': 7.28.6 + error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-json@8.1.0: + parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.26.2 - index-to-position: 0.1.2 - type-fest: 4.27.0 + '@babel/code-frame': 7.28.6 + index-to-position: 1.2.0 + type-fest: 4.41.0 parse-png@2.1.0: dependencies: @@ -14789,17 +15755,12 @@ snapshots: parse-statements@1.0.11: {} - parse5@7.2.1: + parse5@7.3.0: dependencies: - entities: 4.5.0 + entities: 6.0.1 parseurl@1.3.3: {} - password-prompt@1.1.3: - dependencies: - ansi-escapes: 4.3.2 - cross-spawn: 7.0.6 - path-exists@3.0.0: {} path-exists@4.0.0: {} @@ -14819,8 +15780,15 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.1: + dependencies: + lru-cache: 11.2.4 + minipass: 7.1.2 + path-type@4.0.0: {} + path-type@6.0.0: {} + pathe@2.0.3: {} peek-readable@4.1.0: {} @@ -14837,15 +15805,13 @@ snapshots: picomatch@3.0.1: {} - picomatch@4.0.2: {} - picomatch@4.0.3: {} pidtree@0.6.0: {} pify@2.3.0: {} - pirates@4.0.6: {} + pirates@4.0.7: {} pixelmatch@4.0.2: dependencies: @@ -14855,10 +15821,6 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-dir@8.0.0: - dependencies: - find-up-simple: 1.0.0 - pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -14877,7 +15839,7 @@ snapshots: plist@3.1.0: dependencies: - '@xmldom/xmldom': 0.8.10 + '@xmldom/xmldom': 0.8.11 base64-js: 1.5.1 xmlbuilder: 15.1.1 @@ -14902,30 +15864,31 @@ snapshots: style-value-types: 5.0.0 tslib: 2.8.1 - possible-typed-array-names@1.0.0: {} + possible-typed-array-names@1.1.0: {} - postcss-import@15.1.0(postcss@8.4.49): + postcss-import@15.1.0(postcss@8.5.6): dependencies: - postcss: 8.4.49 + postcss: 8.5.6 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.11 - postcss-js@4.0.1(postcss@8.4.49): + postcss-js@4.1.0(postcss@8.5.6): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.49 + postcss: 8.5.6 - postcss-load-config@4.0.2(postcss@8.4.49): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2): dependencies: - lilconfig: 3.1.2 - yaml: 2.6.1 + lilconfig: 3.1.3 optionalDependencies: - postcss: 8.4.49 + jiti: 1.21.7 + postcss: 8.5.6 + yaml: 2.8.2 - postcss-nested@6.2.0(postcss@8.4.49): + postcss-nested@6.2.0(postcss@8.5.6): dependencies: - postcss: 8.4.49 + postcss: 8.5.6 postcss-selector-parser: 6.1.2 postcss-selector-parser@6.1.2: @@ -14942,7 +15905,7 @@ snapshots: postcss@8.4.49: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -14954,6 +15917,8 @@ snapshots: prelude-ls@1.2.1: {} + presentable-error@0.0.1: {} + pretty-bytes@5.6.0: {} pretty-format@22.4.3: @@ -14967,6 +15932,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@30.2.0: + dependencies: + '@jest/schemas': 30.0.5 + ansi-styles: 5.2.0 + react-is: 18.3.1 + proc-log@4.2.0: {} process@0.11.10: {} @@ -14996,13 +15967,13 @@ snapshots: proxy-from-env@1.1.0: {} - psl@1.10.0: + psl@1.15.0: dependencies: punycode: 2.3.1 punycode@2.3.1: {} - pupa@3.1.0: + pupa@3.3.0: dependencies: escape-goat: 4.0.0 @@ -15027,10 +15998,6 @@ snapshots: dependencies: inherits: 2.0.4 - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - range-parser@1.2.1: {} rc@1.2.8: @@ -15040,250 +16007,277 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-devtools-core@6.1.2: + react-devtools-core@6.1.5: dependencies: - shell-quote: 1.8.1 + shell-quote: 1.8.3 ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate - react-dom@19.0.0(react@19.0.0): + react-dom@19.1.0(react@19.1.0): dependencies: - react: 19.0.0 - scheduler: 0.25.0 + react: 19.1.0 + scheduler: 0.26.0 - react-error-boundary@4.0.13(react@19.0.0): + react-error-boundary@6.1.0(react@19.1.0): dependencies: - '@babel/runtime': 7.26.0 - react: 19.0.0 + react: 19.1.0 react-fast-compare@3.2.2: {} - react-freeze@1.0.4(react@19.0.0): + react-freeze@1.0.4(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 - react-hook-form@7.53.0(react@19.0.0): + react-hook-form@7.71.1(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 - react-i18next@15.0.1(i18next@23.14.0)(react-dom@19.0.0(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-i18next@16.5.3(i18next@25.8.0(typescript@5.9.3))(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(typescript@5.9.3): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.28.6 html-parse-stringify: 3.0.1 - i18next: 23.14.0 - react: 19.0.0 + i18next: 25.8.0(typescript@5.9.3) + react: 19.1.0 + use-sync-external-store: 1.6.0(react@19.1.0) optionalDependencies: - react-dom: 19.0.0(react@19.0.0) - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react-dom: 19.1.0(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + typescript: 5.9.3 react-is@16.13.1: {} react-is@18.3.1: {} - react-is@19.1.0: {} + react-is@19.2.3: {} - react-native-css-interop@0.1.20(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.4): + react-native-css-interop@0.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(yaml@2.8.2)): dependencies: - '@babel/helper-module-imports': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/traverse': 7.28.6 + '@babel/types': 7.28.6 debug: 4.4.3 lightningcss: 1.27.0 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-reanimated: 3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - semver: 7.6.3 - tailwindcss: 3.4.4 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + semver: 7.7.3 + tailwindcss: 3.4.19(yaml@2.8.2) optionalDependencies: - react-native-safe-area-context: 5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-svg: 15.11.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - react-native-edge-to-edge@1.6.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-edge-to-edge@1.7.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - react-native-flash-message@0.4.2(prop-types@15.8.1)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-flash-message@0.4.2(prop-types@15.8.1)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: prop-types: 15.8.1 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-iphone-screen-helper: 2.1.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-iphone-screen-helper: 2.2.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)) - react-native-gesture-handler@2.24.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@egjs/hammerjs': 2.0.17 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - react-native-iphone-screen-helper@2.1.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): + react-native-iphone-screen-helper@2.2.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge@1.1.6(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-is-edge-to-edge@1.2.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge@1.1.7(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-keyboard-controller@1.18.5(react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-keyboard-controller@1.17.4(react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-mmkv@4.1.1(react-native-nitro-modules@0.33.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-is-edge-to-edge: 1.1.6(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-reanimated: 3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-nitro-modules: 0.33.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-mmkv@3.1.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-nitro-modules@0.33.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - react-native-reanimated@3.17.5(@babel/core@7.26.0)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-reanimated@4.1.6(@babel/core@7.28.6)(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-arrow-functions': 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-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - convert-source-map: 2.0.0 - invariant: 2.2.4 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.28.6 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-worklets: 0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + semver: 7.7.2 - react-native-restart@0.0.27(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-restart@0.0.27(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - react-native-safe-area-context@5.4.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) - react-native-screens@4.11.1(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-freeze: 1.0.4(react@19.0.0) - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-freeze: 1.0.4(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) warn-once: 0.1.1 - react-native-svg@15.11.2(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - css-select: 5.1.0 + css-select: 5.2.2 css-tree: 1.1.3 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) warn-once: 0.1.1 - react-native-url-polyfill@2.0.0(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)): + react-native-url-polyfill@3.0.0(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) whatwg-url-without-unicode: 8.0.0-3 - react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@babel/runtime': 7.26.0 - '@react-native/normalize-colors': 0.74.88 + '@babel/runtime': 7.28.6 + '@react-native/normalize-colors': 0.74.89 fbjs: 3.0.5 inline-style-prefixer: 7.0.1 memoize-one: 6.0.0 nullthrows: 1.1.1 postcss-value-parser: 4.2.0 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) styleq: 0.1.3 transitivePeerDependencies: - encoding - react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0): + react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + dependencies: + '@babel/core': 7.28.6 + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.6) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.6) + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.6) + convert-source-map: 2.0.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0) + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native/assets-registry': 0.79.4 - '@react-native/codegen': 0.79.4(@babel/core@7.26.0) - '@react-native/community-cli-plugin': 0.79.4 - '@react-native/gradle-plugin': 0.79.4 - '@react-native/js-polyfills': 0.79.4 - '@react-native/normalize-colors': 0.79.4 - '@react-native/virtualized-lists': 0.79.4(@types/react@19.0.14)(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-native/assets-registry': 0.81.5 + '@react-native/codegen': 0.81.5(@babel/core@7.28.6) + '@react-native/community-cli-plugin': 0.81.5 + '@react-native/gradle-plugin': 0.81.5 + '@react-native/js-polyfills': 0.81.5 + '@react-native/normalize-colors': 0.81.5 + '@react-native/virtualized-lists': 0.81.5(@types/react@19.1.17)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 - babel-jest: 29.7.0(@babel/core@7.26.0) - babel-plugin-syntax-hermes-parser: 0.25.1 + babel-jest: 29.7.0(@babel/core@7.28.6) + babel-plugin-syntax-hermes-parser: 0.29.1 base64-js: 1.5.1 - chalk: 4.1.2 commander: 12.1.0 - event-target-shim: 5.0.1 flow-enums-runtime: 0.0.6 glob: 7.2.3 invariant: 2.2.4 jest-environment-node: 29.7.0 memoize-one: 5.2.1 - metro-runtime: 0.82.4 - metro-source-map: 0.82.4 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 nullthrows: 1.1.1 pretty-format: 29.7.0 promise: 8.3.0 - react: 19.0.0 - react-devtools-core: 6.1.2 + react: 19.1.0 + react-devtools-core: 6.1.5 react-refresh: 0.14.2 regenerator-runtime: 0.13.11 - scheduler: 0.25.0 - semver: 7.7.2 - stacktrace-parser: 0.1.10 + scheduler: 0.26.0 + semver: 7.7.3 + stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 ws: 6.2.3 yargs: 17.7.2 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.1.17 transitivePeerDependencies: - '@babel/core' - '@react-native-community/cli' + - '@react-native/metro-config' - bufferutil - supports-color - utf-8-validate - react-query-kit@3.3.0(@tanstack/react-query@5.52.1(react@19.0.0)): + react-query-kit@3.3.2(@tanstack/react-query@5.90.19(react@19.1.0)): optionalDependencies: - '@tanstack/react-query': 5.52.1(react@19.0.0) + '@tanstack/react-query': 5.90.19(react@19.1.0) react-refresh@0.14.2: {} - react-server-dom-webpack@19.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.96.1): + react-remove-scroll-bar@2.3.8(@types/react@19.1.17)(react@19.1.0): dependencies: - acorn-loose: 8.4.0 - neo-async: 2.6.2 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - webpack: 5.96.1 - webpack-sources: 3.2.3 + react: 19.1.0 + react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.17 + + react-remove-scroll@2.7.2(@types/react@19.1.17)(react@19.1.0): + dependencies: + react: 19.1.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.17)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.1.17)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.17)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.17 + + react-style-singleton@2.2.3(@types/react@19.1.17)(react@19.1.0): + dependencies: + get-nonce: 1.0.1 + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.17 - react-test-renderer@19.0.0(react@19.0.0): + react-test-renderer@19.1.0(react@19.1.0): dependencies: - react: 19.0.0 - react-is: 19.1.0 - scheduler: 0.25.0 + react: 19.1.0 + react-is: 19.2.3 + scheduler: 0.26.0 - react@19.0.0: {} + react@19.1.0: {} read-cache@1.0.0: dependencies: @@ -15291,40 +16285,34 @@ snapshots: read-package-up@11.0.0: dependencies: - find-up-simple: 1.0.0 + find-up-simple: 1.0.1 read-pkg: 9.0.1 - type-fest: 4.27.0 + type-fest: 4.41.0 read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 - parse-json: 8.1.0 - type-fest: 4.27.0 + parse-json: 8.3.0 + type-fest: 4.41.0 unicorn-magic: 0.1.0 - readable-stream@3.6.2: + readable-stream@4.7.0: dependencies: - inherits: 2.0.4 + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 string_decoder: 1.3.0 - util-deprecate: 1.0.2 - readable-web-to-node-stream@3.0.2: + readable-web-to-node-stream@3.0.4: dependencies: - readable-stream: 3.6.2 + readable-stream: 4.7.0 readdirp@3.6.0: dependencies: picomatch: 2.3.1 - recyclerlistview@4.2.3(react-native@0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): - dependencies: - lodash.debounce: 4.0.8 - prop-types: 15.8.1 - react: 19.0.0 - react-native: 0.79.4(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0) - ts-object-utils: 0.0.5 - redent@3.0.0: dependencies: indent-string: 4.0.0 @@ -15334,7 +16322,18 @@ snapshots: dependencies: '@eslint-community/regexpp': 4.12.2 - regenerate-unicode-properties@10.2.0: + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerate-unicode-properties@10.2.2: dependencies: regenerate: 1.4.2 @@ -15342,12 +16341,6 @@ snapshots: regenerator-runtime@0.13.11: {} - regenerator-runtime@0.14.1: {} - - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.26.0 - regexp-ast-analysis@0.7.1: dependencies: '@eslint-community/regexpp': 4.12.2 @@ -15355,25 +16348,27 @@ snapshots: regexp-tree@0.1.27: {} - regexp.prototype.flags@1.5.3: + regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.7 + 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.1.1: + regexpu-core@6.4.0: dependencies: regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 + regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.11.2 + regjsparser: 0.13.0 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 + unicode-match-property-value-ecmascript: 2.2.1 - registry-auth-token@5.0.2: + registry-auth-token@5.1.1: dependencies: - '@pnpm/npm-conf': 2.3.1 + '@pnpm/npm-conf': 3.0.2 registry-url@6.0.1: dependencies: @@ -15381,20 +16376,10 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.11.2: - dependencies: - jsesc: 3.0.2 - - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - regjsparser@0.13.0: dependencies: jsesc: 3.1.0 - repeat-string@1.6.1: {} - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -15415,23 +16400,23 @@ snapshots: dependencies: resolve-from: 5.0.0 - resolve-from@3.0.0: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} - resolve-pkg-maps@1.0.0: {} + resolve-global@1.0.0: + dependencies: + global-dirs: 0.1.1 - resolve-workspace-root@2.0.0: {} + resolve-pkg-maps@1.0.0: {} - resolve.exports@2.0.2: {} + resolve-workspace-root@2.0.1: {} resolve.exports@2.0.3: {} - resolve@1.22.8: + resolve@1.22.11: dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -15454,7 +16439,7 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 - reusify@1.0.4: {} + reusify@1.1.0: {} rfdc@1.4.1: {} @@ -15462,13 +16447,15 @@ snapshots: dependencies: glob: 7.2.3 + rrweb-cssom@0.8.0: {} + rtl-detect@1.1.2: {} - run-applescript@7.0.0: {} + run-applescript@7.1.0: {} run-async@2.4.1: {} - run-async@3.0.0: {} + run-async@4.0.6: {} run-parallel@1.2.0: dependencies: @@ -15478,47 +16465,40 @@ snapshots: dependencies: tslib: 1.14.1 - rxjs@7.8.1: + rxjs@7.8.2: dependencies: tslib: 2.8.1 - safe-array-concat@1.1.2: + safe-array-concat@1.1.3: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 isarray: 2.0.5 safe-buffer@5.2.1: {} - safe-regex-test@1.0.3: + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-regex: 1.1.4 + is-regex: 1.2.1 safer-buffer@2.1.2: {} - sax@1.4.1: {} + sax@1.4.4: {} saxes@6.0.0: dependencies: xmlchars: 2.2.0 - scheduler@0.25.0: {} - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@4.2.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) + scheduler@0.26.0: {} scoped-regex@3.0.0: {} @@ -15536,25 +16516,7 @@ snapshots: semver@7.7.3: {} - send@0.19.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - send@0.19.1: + send@0.19.2: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -15563,27 +16525,23 @@ snapshots: escape-html: 1.0.3 etag: 1.8.1 fresh: 0.5.2 - http-errors: 2.0.0 + http-errors: 2.0.1 mime: 1.6.0 ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color serialize-error@2.1.0: {} - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - serve-static@1.16.2: + serve-static@1.16.3: dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.19.0 + send: 0.19.2 transitivePeerDependencies: - supports-color @@ -15594,8 +16552,8 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 has-property-descriptors: 1.0.2 set-function-name@2.0.2: @@ -15605,10 +16563,18 @@ 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.1.1 + setimmediate@1.0.5: {} setprototypeof@1.2.0: {} + sf-symbols-typescript@2.2.0: {} + shallowequal@1.1.0: {} shebang-command@2.0.0: @@ -15617,14 +16583,35 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.1: {} + shell-quote@1.8.3: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 - side-channel@1.0.6: + side-channel@1.1.0: dependencies: - call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.3 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 signal-exit@3.0.7: {} @@ -15636,29 +16623,22 @@ snapshots: bplist-parser: 0.3.1 plist: 3.1.0 - simple-swizzle@0.2.2: + simple-swizzle@0.2.4: dependencies: - is-arrayish: 0.3.2 + is-arrayish: 0.3.4 sisteransi@1.0.5: {} slash@3.0.0: {} - slash@4.0.0: {} - slash@5.1.0: {} slice-ansi@0.0.4: {} - slice-ansi@5.0.0: + slice-ansi@7.1.2: dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - - slice-ansi@7.1.0: - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 5.0.0 + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 slugify@1.6.6: {} @@ -15683,21 +16663,21 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.20 + spdx-license-ids: 3.0.22 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.20 + spdx-license-ids: 3.0.22 spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.20 + spdx-license-ids: 3.0.22 - spdx-license-ids@3.0.20: {} + spdx-license-ids@3.0.22: {} split-on-first@1.1.0: {} @@ -15705,7 +16685,7 @@ snapshots: sprintf-js@1.0.3: {} - stable-hash-x@0.1.1: {} + stable-hash-x@0.2.0: {} stack-generator@2.0.10: dependencies: @@ -15728,13 +16708,18 @@ snapshots: stack-generator: 2.0.10 stacktrace-gps: 3.1.2 - stacktrace-parser@0.1.10: + stacktrace-parser@0.1.11: dependencies: type-fest: 0.7.1 statuses@1.5.0: {} - statuses@2.0.1: {} + statuses@2.0.2: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 stream-buffers@2.2.0: {} @@ -15750,7 +16735,7 @@ snapshots: string-length@5.0.1: dependencies: char-regex: 2.0.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 string-ts@2.3.1: {} @@ -15771,36 +16756,39 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: + string-width@7.2.0: dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + emoji-regex: 10.6.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 - string-width@7.2.0: + string-width@8.1.0: dependencies: - emoji-regex: 10.4.0 - get-east-asian-width: 1.3.0 - strip-ansi: 7.1.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 - string.prototype.trim@1.2.9: + string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.5 - es-object-atoms: 1.0.0 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 - string.prototype.trimend@1.0.8: + string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string_decoder@1.3.0: dependencies: @@ -15822,9 +16810,9 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.1.0 + ansi-regex: 6.2.2 strip-bom@3.0.0: {} @@ -15838,10 +16826,6 @@ snapshots: dependencies: min-indent: 1.0.1 - strip-indent@4.0.0: - dependencies: - min-indent: 1.0.1 - strip-indent@4.1.1: {} strip-json-comments@2.0.1: {} @@ -15855,7 +16839,11 @@ snapshots: structured-headers@0.4.1: {} - stubborn-fs@1.2.5: {} + stubborn-fs@2.0.0: + dependencies: + stubborn-utils: 1.0.2 + + stubborn-utils@1.0.2: {} style-value-types@5.0.0: dependencies: @@ -15864,18 +16852,16 @@ snapshots: styleq@0.1.3: {} - sucrase@3.35.0: + sucrase@3.35.1: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.13 commander: 4.1.1 - glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 - pirates: 4.0.6 + pirates: 4.0.7 + tinyglobby: 0.2.15 ts-interface-checker: 0.1.13 - sudo-prompt@8.2.5: {} - supports-color@2.0.0: {} supports-color@5.5.0: @@ -15907,49 +16893,50 @@ snapshots: dependencies: '@pkgr/core': 0.2.9 - tailwind-merge@2.5.4: {} + tailwind-merge@3.4.0: {} - tailwind-variants@0.2.1(tailwindcss@3.4.4): + tailwind-variants@3.2.2(tailwind-merge@3.4.0)(tailwindcss@3.4.19(yaml@2.8.2)): dependencies: - tailwind-merge: 2.5.4 - tailwindcss: 3.4.4 + tailwindcss: 3.4.19(yaml@2.8.2) + optionalDependencies: + tailwind-merge: 3.4.0 - tailwindcss@3.4.4: + tailwindcss@3.4.19(yaml@2.8.2): 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.6 - lilconfig: 2.1.0 + jiti: 1.21.7 + lilconfig: 3.1.3 micromatch: 4.0.8 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) - postcss-nested: 6.2.0(postcss@8.4.49) + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.1.0(postcss@8.5.6) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2) + postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 - resolve: 1.22.8 - sucrase: 3.35.0 + resolve: 1.22.11 + sucrase: 3.35.1 transitivePeerDependencies: - - ts-node + - tsx + - yaml - tapable@2.2.1: {} + tapable@2.3.0: {} - tar@7.4.3: + tar@7.5.6: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 minipass: 7.1.2 - minizlib: 3.0.2 - mkdirp: 3.0.1 + minizlib: 3.1.0 yallist: 5.0.0 temp-dir@2.0.0: {} @@ -15964,18 +16951,9 @@ snapshots: ansi-escapes: 5.0.0 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.10(webpack@5.96.1): + terser@5.46.0: dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.36.0 - webpack: 5.96.1 - - terser@5.36.0: - dependencies: - '@jridgewell/source-map': 0.3.6 + '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -16004,20 +16982,19 @@ snapshots: tinycolor2@1.6.0: {} - tinyexec@0.3.1: {} - tinyexec@1.0.2: {} - tinyglobby@0.2.14: - dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tldts-core@6.1.86: {} + + tldts@6.1.86: + dependencies: + tldts-core: 6.1.86 + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -16046,46 +17023,55 @@ snapshots: tough-cookie@4.1.4: dependencies: - psl: 1.10.0 + psl: 1.15.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + tough-cookie@5.1.2: + dependencies: + tldts: 6.1.86 + tr46@0.0.3: {} tr46@3.0.0: dependencies: punycode: 2.3.1 - ts-api-utils@2.4.0(typescript@5.8.3): + tr46@5.1.1: + dependencies: + punycode: 2.3.1 + + ts-api-utils@2.4.0(typescript@5.9.3): dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - ts-declaration-location@1.0.7(typescript@5.8.3): + ts-declaration-location@1.0.7(typescript@5.9.3): dependencies: - picomatch: 4.0.2 - typescript: 5.8.3 + picomatch: 4.0.3 + typescript: 5.9.3 ts-interface-checker@0.1.13: {} - ts-jest@29.1.2(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.9.1))(typescript@5.8.3): + ts-jest@29.4.6(@babel/core@7.28.6)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.6))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.9))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.9.1) - jest-util: 29.7.0 + handlebars: 4.7.8 + jest: 29.7.0(@types/node@25.0.9) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.6.3 - typescript: 5.8.3 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.9.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.26.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.0) - - ts-object-utils@0.0.5: {} + '@babel/core': 7.28.6 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.6) + jest-util: 30.2.0 ts-pattern@5.9.0: {} @@ -16116,70 +17102,76 @@ snapshots: type-fest@3.13.1: {} - type-fest@4.27.0: {} + type-fest@4.41.0: {} - typed-array-buffer@1.0.2: + typed-array-buffer@1.0.3: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-typed-array: 1.1.13 + is-typed-array: 1.1.15 - typed-array-byte-length@1.0.1: + typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 - typed-array-byte-offset@1.0.2: + typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.6: + typed-array-length@1.0.7: dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 - typescript@5.8.3: {} + typescript@5.9.3: {} - ua-parser-js@1.0.39: {} + ua-parser-js@1.0.41: {} ufo@1.6.3: {} - unbox-primitive@1.0.2: + uglify-js@3.19.3: + optional: true + + unbox-primitive@1.1.0: dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 - undici-types@6.19.8: {} + undici-types@7.16.0: {} - undici@6.21.0: {} + undici@6.23.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 + unicode-property-aliases-ecmascript: 2.2.0 - unicode-match-property-value-ecmascript@2.2.0: {} + unicode-match-property-value-ecmascript@2.2.1: {} - unicode-property-aliases-ecmascript@2.1.0: {} + unicode-property-aliases-ecmascript@2.2.0: {} unicorn-magic@0.1.0: {} + unicorn-magic@0.3.0: {} + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 @@ -16207,41 +17199,29 @@ snapshots: unpipe@1.0.0: {} - unrs-resolver@1.9.0: + unrs-resolver@1.11.1: dependencies: - napi-postinstall: 0.2.4 + napi-postinstall: 0.3.4 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.9.0 - '@unrs/resolver-binding-android-arm64': 1.9.0 - '@unrs/resolver-binding-darwin-arm64': 1.9.0 - '@unrs/resolver-binding-darwin-x64': 1.9.0 - '@unrs/resolver-binding-freebsd-x64': 1.9.0 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.0 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.0 - '@unrs/resolver-binding-linux-arm64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-arm64-musl': 1.9.0 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-riscv64-musl': 1.9.0 - '@unrs/resolver-binding-linux-s390x-gnu': 1.9.0 - '@unrs/resolver-binding-linux-x64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-x64-musl': 1.9.0 - '@unrs/resolver-binding-wasm32-wasi': 1.9.0 - '@unrs/resolver-binding-win32-arm64-msvc': 1.9.0 - '@unrs/resolver-binding-win32-ia32-msvc': 1.9.0 - '@unrs/resolver-binding-win32-x64-msvc': 1.9.0 - - update-browserslist-db@1.1.1(browserslist@4.24.2): - dependencies: - browserslist: 4.24.2 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-browserslist-db@1.1.3(browserslist@4.25.0): - dependencies: - browserslist: 4.25.0 - escalade: 3.2.0 - picocolors: 1.1.1 + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: @@ -16252,14 +17232,14 @@ snapshots: update-notifier@7.3.1: dependencies: boxen: 8.0.1 - chalk: 5.3.0 - configstore: 7.0.0 + chalk: 5.6.2 + configstore: 7.1.0 is-in-ci: 1.0.0 is-installed-globally: 1.0.0 - is-npm: 6.0.0 + is-npm: 6.1.0 latest-version: 9.0.0 - pupa: 3.1.0 - semver: 7.6.3 + pupa: 3.3.0 + semver: 7.7.3 xdg-basedir: 5.1.0 uri-js@4.4.1: @@ -16271,13 +17251,28 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-latest-callback@0.2.4(react@19.0.0): + use-callback-ref@1.3.3(@types/react@19.1.17)(react@19.1.0): + dependencies: + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.17 + + use-latest-callback@0.2.6(react@19.1.0): + dependencies: + react: 19.1.0 + + use-sidecar@1.1.3(@types/react@19.1.17)(react@19.1.0): dependencies: - react: 19.0.0 + detect-node-es: 1.1.0 + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.17 - use-sync-external-store@1.5.0(react@19.0.0): + use-sync-external-store@1.6.0(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 utif2@4.1.0: dependencies: @@ -16293,7 +17288,7 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -16306,19 +17301,28 @@ snapshots: vary@1.1.2: {} + vaul@1.1.2(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@radix-ui/react-dialog': 1.1.15(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + vlq@1.0.1: {} void-elements@3.1.0: {} - vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.6)): + vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - debug: 4.4.1 - eslint: 9.39.2(jiti@1.21.6) + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.7) eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 - esquery: 1.6.0 - semver: 7.7.2 + esquery: 1.7.0 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -16326,17 +17330,16 @@ snapshots: dependencies: xml-name-validator: 4.0.0 + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + walker@1.0.8: dependencies: makeerror: 1.0.12 warn-once@0.1.1: {} - watchpack@2.4.2: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -16347,39 +17350,11 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-sources@3.2.3: {} - - webpack@5.96.1: + whatwg-encoding@2.0.0: dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - browserslist: 4.28.1 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.96.1) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js + iconv-lite: 0.6.3 - whatwg-encoding@2.0.0: + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 @@ -16387,6 +17362,8 @@ snapshots: whatwg-mimetype@3.0.0: {} + whatwg-mimetype@4.0.0: {} + whatwg-url-without-unicode@8.0.0-3: dependencies: buffer: 5.7.1 @@ -16398,27 +17375,57 @@ snapshots: tr46: 3.0.0 webidl-conversions: 7.0.0 + whatwg-url@14.2.0: + dependencies: + tr46: 5.1.1 + webidl-conversions: 7.0.0 + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - when-exit@2.1.3: {} + when-exit@2.1.5: {} - which-boxed-primitive@1.0.2: + which-boxed-primitive@1.1.1: dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 - which-typed-array@1.1.15: + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.20 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.2 which@2.0.2: @@ -16429,10 +17436,12 @@ snapshots: dependencies: string-width: 7.2.0 - wonka@6.3.4: {} + wonka@6.3.5: {} word-wrap@1.2.5: {} + wordwrap@1.0.0: {} + wrap-ansi@3.0.1: dependencies: string-width: 2.1.1 @@ -16450,17 +17459,11 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrap-ansi@9.0.0: + wrap-ansi@9.0.2: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 wrappy@1.0.2: {} @@ -16469,13 +17472,23 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + optional: true + ws@6.2.3: dependencies: async-limiter: 1.0.1 ws@7.5.10: {} - ws@8.18.0: {} + ws@8.19.0: {} + + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.0 xcode@3.0.1: dependencies: @@ -16488,21 +17501,23 @@ snapshots: dependencies: global: 4.4.0 is-function: 1.0.2 - parse-headers: 2.0.5 + parse-headers: 2.0.6 xtend: 4.0.2 xml-name-validator@4.0.0: {} + xml-name-validator@5.0.0: {} + xml-parse-from-string@1.0.1: {} xml2js@0.5.0: dependencies: - sax: 1.4.1 + sax: 1.4.4 xmlbuilder: 11.0.1 xml2js@0.6.0: dependencies: - sax: 1.4.1 + sax: 1.4.4 xmlbuilder: 11.0.1 xml@1.0.1: {} @@ -16524,11 +17539,7 @@ snapshots: yaml-eslint-parser@2.0.0: dependencies: eslint-visitor-keys: 5.0.0 - yaml: 2.6.1 - - yaml@2.5.1: {} - - yaml@2.6.1: {} + yaml: 2.8.2 yaml@2.8.2: {} @@ -16546,26 +17557,28 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.1.1: {} + yocto-queue@1.2.2: {} - yoctocolors-cjs@2.1.2: {} + yoctocolors-cjs@2.1.3: {} - zod-validation-error@3.4.0(zod@3.23.8): - dependencies: - zod: 3.23.8 + yoctocolors@2.1.2: {} - zod-validation-error@4.0.2(zod@3.25.76): + zod-validation-error@3.5.4(zod@3.25.76): dependencies: zod: 3.25.76 - zod@3.23.8: {} + zod-validation-error@4.0.2(zod@4.3.5): + dependencies: + zod: 4.3.5 zod@3.25.76: {} - zustand@5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)): + zod@4.3.5: {} + + zustand@5.0.10(@types/react@19.1.17)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0)): optionalDependencies: - '@types/react': 19.0.14 - react: 19.0.0 - use-sync-external-store: 1.5.0(react@19.0.0) + '@types/react': 19.1.17 + react: 19.1.0 + use-sync-external-store: 1.6.0(react@19.1.0) zwitch@2.0.4: {} diff --git a/src/app/(app)/index.tsx b/src/app/(app)/index.tsx index 117389853..ae8fa73c2 100644 --- a/src/app/(app)/index.tsx +++ b/src/app/(app)/index.tsx @@ -28,7 +28,6 @@ export default function Feed() { renderItem={renderItem} keyExtractor={(_, index) => `item-${index}`} ListEmptyComponent={<EmptyList isLoading={isPending} />} - estimatedItemSize={300} /> </View> ); diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx index 42ee212c9..4dd271156 100644 --- a/src/components/login-form.tsx +++ b/src/components/login-form.tsx @@ -11,12 +11,12 @@ const schema = z.object({ name: z.string().optional(), email: z .string({ - required_error: 'Email is required', + message: 'Email is required', }) .email('Invalid email format'), password: z .string({ - required_error: 'Password is required', + message: 'Password is required', }) .min(6, 'Password must be at least 6 characters'), }); diff --git a/src/lib/i18n/index.tsx b/src/lib/i18n/index.tsx index c4a3ff35c..8622fbcc8 100644 --- a/src/lib/i18n/index.tsx +++ b/src/lib/i18n/index.tsx @@ -1,4 +1,4 @@ -import { locale } from 'expo-localization'; +import { getLocales } from 'expo-localization'; import i18n from 'i18next'; import { initReactI18next } from 'react-i18next'; import { I18nManager } from 'react-native'; @@ -10,9 +10,9 @@ export * from './utils'; i18n.use(initReactI18next).init({ resources, - lng: getLanguage() || locale, // TODO: if you are not supporting multiple languages or languages with multiple directions you can set the default value to `en` + lng: getLanguage() || getLocales()[0]?.languageTag, // TODO: if you are not supporting multiple languages or languages with multiple directions you can set the default value to `en` fallbackLng: 'en', - compatibilityJSON: 'v3', // By default React Native projects does not support Intl + compatibilityJSON: 'v4', // Updated to v4 for i18next compatibility // allows integrating dynamic values into translations. interpolation: { diff --git a/src/lib/storage.tsx b/src/lib/storage.tsx index bfe02177e..8c0422609 100644 --- a/src/lib/storage.tsx +++ b/src/lib/storage.tsx @@ -1,6 +1,6 @@ -import { MMKV } from 'react-native-mmkv'; +import { createMMKV } from 'react-native-mmkv'; -export const storage = new MMKV(); +export const storage = createMMKV(); export function getItem<T>(key: string): T | null { const value = storage.getString(key); @@ -12,5 +12,5 @@ export async function setItem<T>(key: string, value: T) { } export async function removeItem(key: string) { - storage.delete(key); + storage.remove(key); }