diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..4b49c52
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,6 @@
+API_URL=https://dummyjson.com/
+
+## TODO: add the variable to your CI and remove it from here, not recommended setting sensitive values on your git repo
+SECRET_KEY=my-secret-key
+VAR_NUMBER=10 # this is a number variable
+VAR_BOOL=true # this is a boolean variable
\ No newline at end of file
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..4b49c52
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,6 @@
+API_URL=https://dummyjson.com/
+
+## TODO: add the variable to your CI and remove it from here, not recommended setting sensitive values on your git repo
+SECRET_KEY=my-secret-key
+VAR_NUMBER=10 # this is a number variable
+VAR_BOOL=true # this is a boolean variable
\ No newline at end of file
diff --git a/.env.staging b/.env.staging
new file mode 100644
index 0000000..4b49c52
--- /dev/null
+++ b/.env.staging
@@ -0,0 +1,6 @@
+API_URL=https://dummyjson.com/
+
+## TODO: add the variable to your CI and remove it from here, not recommended setting sensitive values on your git repo
+SECRET_KEY=my-secret-key
+VAR_NUMBER=10 # this is a number variable
+VAR_BOOL=true # this is a boolean variable
\ No newline at end of file
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..fef76b6
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,10 @@
+node_modules
+__tests__/
+.vscode/
+android/
+coverage/
+ios/
+.expo
+.expo-shared
+docs/
+cli/
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..48c036c
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,117 @@
+const path = require('path');
+
+module.exports = {
+ // Configuration for JavaScript files
+ extends: ['@react-native-community', 'plugin:prettier/recommended'],
+ plugins: ['unicorn'],
+ rules: {
+ 'prettier/prettier': [
+ 'error',
+ {
+ singleQuote: true,
+ endOfLine: 'auto',
+ },
+ ],
+ 'unicorn/filename-case': [
+ 'error',
+ {
+ case: 'kebabCase',
+ ignore: ['/android', '/ios'],
+ },
+ ],
+ },
+ overrides: [
+ // Configuration for TypeScript files
+ {
+ files: ['**/*.ts', '**/*.tsx', '**/*.js'],
+ plugins: [
+ '@typescript-eslint',
+ 'unused-imports',
+ 'tailwindcss',
+ 'simple-import-sort',
+ ],
+ extends: [
+ 'plugin:tailwindcss/recommended',
+ '@react-native-community',
+ 'plugin:prettier/recommended',
+ ],
+ parserOptions: {
+ project: './tsconfig.json',
+ },
+ rules: {
+ 'prettier/prettier': [
+ 'error',
+ {
+ singleQuote: true,
+ endOfLine: 'auto',
+ },
+ ],
+ 'max-params': ['error', 3], // Limit the number of parameters in a function to use object instead
+ 'max-lines-per-function': ['error', 70],
+ 'react/destructuring-assignment': 'off', // Vscode doesn't support automatically destructuring, it's a pain to add a new variable
+ 'react/require-default-props': 'off', // Allow non-defined react props as undefined
+ '@typescript-eslint/comma-dangle': 'off', // Avoid conflict rule between Eslint and Prettier
+ '@typescript-eslint/consistent-type-imports': 'error', // Ensure `import type` is used when it's necessary
+ 'import/prefer-default-export': 'off', // Named export is easier to refactor automatically
+ 'tailwindcss/classnames-order': [
+ 'warn',
+ {
+ officialSorting: true,
+ },
+ ], // Follow the same ordering as the official plugin `prettier-plugin-tailwindcss`
+ 'simple-import-sort/imports': 'error', // Import configuration for `eslint-plugin-simple-import-sort`
+ 'simple-import-sort/exports': 'error', // Export configuration for `eslint-plugin-simple-import-sort`
+ '@typescript-eslint/no-unused-vars': 'off',
+ 'tailwindcss/no-custom-classname': 'off',
+ 'unused-imports/no-unused-imports': 'error',
+ 'unused-imports/no-unused-vars': [
+ 'error',
+ {
+ argsIgnorePattern: '^_',
+ varsIgnorePattern: '^_',
+ caughtErrorsIgnorePattern: '^_',
+ },
+ ],
+ },
+ },
+ // Configuration for translations files (i18next)
+ {
+ files: ['src/translations/*.json'],
+ extends: ['plugin:i18n-json/recommended'],
+ rules: {
+ 'i18n-json/valid-message-syntax': [
+ 2,
+ {
+ syntax: path.resolve('./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('./src/translations/en.json'),
+ },
+ ],
+ 'prettier/prettier': [
+ 0,
+ {
+ singleQuote: true,
+ endOfLine: 'auto',
+ },
+ ],
+ },
+ },
+ {
+ // Configuration for testing files
+ files: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)'],
+ extends: ['plugin:testing-library/react'],
+ },
+ ],
+};
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..71e127d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,13 @@
+# Summary:
+
+## Steps to reproduce:
+
+## Expected behavior:
+
+## Additional notes:
+
+#### Tasks
+
+- [ ] Task 1
+- [ ] Task 2
+- [ ] Task 3
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..8f3fb4f
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,23 @@
+## What does this do?
+
+
+
+## Why did you do this?
+
+
+
+## Who/what does this impact?
+
+
+
+## How did you test this?
+
+
diff --git a/.github/actions/eas-build/action.yml b/.github/actions/eas-build/action.yml
new file mode 100644
index 0000000..3a9be92
--- /dev/null
+++ b/.github/actions/eas-build/action.yml
@@ -0,0 +1,85 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/actions/eas-build/action.yml
+# EAS Build docs: https://docs.expo.dev/eas-update/github-actions/
+
+# ✍️ Description:
+# This is a composite action, which means it can be used in other actions.
+# This action is used to trigger an EAS Build for a specific environment (development, staging, production).
+# This action accepts those inputs:
+# `APP_ENV`, which is used to generate an APK for a specific environment (development, staging, production). We use staging by default.
+# `AUTO_SUBMIT`, false by default, set to true if you want to automatically submit your build to stores.
+# `EXPO_TOKEN`, required, access token for your Expo account. https://expo.dev/settings/access-tokens
+# `VERSION`, required, version of the app to build. used as the build message.
+# `ANDROID`, true by default, set to true if you don't want to trigger build for Android.
+# `IOS`, false by default, set to true if you want to trigger build for IOS.
+
+# Before triggering the build, we run a pre-build script to generate the necessary native folders based on the APP_ENV.
+# Based on the ANDROID and IOS inputs, we trigger the build for the corresponding platform with the corresponding flags.
+
+# 👀 Example usage:
+# - name: ⏱️ EAS Build
+# uses: ./.github/actions/eas-build
+# with:
+# APP_ENV: staging
+# EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
+# VERSION: ${{ github.event.release.tag_name }}
+# IOS: false
+
+name: 'Setup EAS Build + Trigger Build'
+description: 'Setup EAS Build + Trigger Build'
+inputs:
+ APP_ENV:
+ description: 'APP_ENV (one of): development, staging, production'
+ required: true
+ default: 'staging'
+ AUTO_SUBMIT: ## TODO: we need to handle this too
+ description: 'AUTO_SUBMIT (one of): true, false'
+ required: true
+ default: 'false'
+ ANDROID:
+ description: 'run for ANDROID (one of): true, false'
+ required: true
+ default: 'true'
+ VERSION:
+ description: 'VERSION'
+ required: true
+ default: '0.0.0'
+ IOS:
+ description: 'run for IOS (one of): true, false'
+ required: true
+ default: 'false'
+ EXPO_TOKEN:
+ description: 'EXPO_TOKEN'
+ required: true
+ default: 'false'
+
+runs:
+ using: 'composite'
+ steps:
+ - name: 💯 Check for EXPO_TOKEN
+ run: |
+ if [ -z "${{ inputs.EXPO_TOKEN }}" ]; then
+ echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
+ exit 1
+ fi
+ shell: bash
+
+ - name: 📦 Setup Expo and EAS
+ uses: expo/expo-github-action@v8
+ with:
+ eas-version: latest
+ token: ${{ inputs.EXPO_TOKEN }}
+
+ - name: ⚙️ Run Prebuild
+ run: pnpm prebuild:${{ inputs.APP_ENV }}
+ shell: bash
+
+ - name: 📱 Run Android Build
+ if: ${{ inputs.ANDROID == 'true' }}
+ run: pnpm build:${{ inputs.APP_ENV }}:android --non-interactive --no-wait --message "Build ${{ inputs.APP_ENV }} ${{ inputs.VERSION }}"
+ shell: bash
+
+ - name: 📱 Run IOS Build
+ if: ${{ inputs.IOS == 'true' }}
+ run: pnpm build:${{ inputs.APP_ENV }}:ios --non-interactive --no-wait --message "Build ${{ inputs.APP_ENV }} ${{ inputs.VERSION }}"
+ shell: bash
diff --git a/.github/actions/setup-jdk-generate-apk/action.yml b/.github/actions/setup-jdk-generate-apk/action.yml
new file mode 100644
index 0000000..acc988f
--- /dev/null
+++ b/.github/actions/setup-jdk-generate-apk/action.yml
@@ -0,0 +1,48 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/actions/setup-jdk-generate-apk/action.yml
+# Composite actions docs: https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
+
+# ✍️ Description:
+# This is a composite action, which means it can be used in other actions.
+# This action is used to set up the JDK environment and generate an Android APK for testing.
+# This action accepts one input: `APP_ENV`, which is used to generate an APK for a specific environment (development, staging, production). We use staging by default.
+# Before generating the APK, we run a pre-build script to generate the necessary native folders based on the APP_ENV.
+# On success, the APK is generated at `./android/app/build/outputs/apk/release/app-release.apk`.
+
+# 👀 Example usage:
+# - name : 📦 Set Up JDK + Generate Test APK
+# uses: ./.github/actions/setup-jdk-generate-apk
+# with:
+# APP_ENV: 'staging'
+
+name: 'Setup JDK + GRADLE + Generate APK'
+description: 'Setup JDK + GRADLE + Generate APK'
+inputs:
+ APP_ENV:
+ description: 'APP_ENV (one of): development, staging, production'
+ required: true
+ default: 'staging'
+
+runs:
+ using: 'composite'
+ steps:
+ - name: Set Up JDK
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'zulu' # See 'Supported distributions' for available options
+ java-version: '11'
+ - name: Setup Gradle
+ uses: gradle/gradle-build-action@v2
+
+ - name: Generate Test APK
+ run: |
+ pnpm prebuild:${{ inputs.APP_ENV }}
+ cd android
+ chmod +x ./gradlew
+ ./gradlew assembleRelease --no-daemon
+ cd ..
+ shell: bash
+ env:
+ EXPO_NO_DOTENV: '1'
+ APP_ENV: ${{ inputs.APP_ENV }}
+ CI: 'true'
diff --git a/.github/actions/setup-node-pnpm-install/action.yml b/.github/actions/setup-node-pnpm-install/action.yml
new file mode 100644
index 0000000..425e132
--- /dev/null
+++ b/.github/actions/setup-node-pnpm-install/action.yml
@@ -0,0 +1,29 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/actions/setup-node-pnpm-install/action.yml
+# Composite actions docs: https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
+
+# ✍️ Description:
+# This is a composite action, which means it can be used in other actions.
+# It is used in almost all workflows to set up the environment and install dependencies.
+# Updating the package manager or Node version here will be reflected in all workflows.
+
+# 👀 Example usage:
+# - name : 📦 Setup Node + PNPM + install deps
+# uses: ./.github/actions/setup-node-pnpm-install
+
+name: 'Setup Node + PNPM + Install Dependencies'
+description: 'Setup Node + PNPM + Install Dependencies'
+runs:
+ using: 'composite'
+ steps:
+ - uses: pnpm/action-setup@v2
+ with:
+ version: 8
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 18
+ cache: 'pnpm'
+
+ - name: 📦 Install Project Dependencies
+ run: pnpm install --frozen-lockfile
+ shell: bash
diff --git a/.github/workflows/compress-images.yml b/.github/workflows/compress-images.yml
new file mode 100644
index 0000000..6f53677
--- /dev/null
+++ b/.github/workflows/compress-images.yml
@@ -0,0 +1,48 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/compress-images.yml
+
+# ✍️ Description:
+# This workflow is used to compress images in the repo.
+# This workflow will trigger on a push to the "master" or "main" branch and only run when a new image is added or updated.
+# If it's the case, it will compress those images and create a pull request with the compressed images.
+
+# 🚨 GITHUB SECRETS REQUIRED: None
+
+name: Compress images
+on:
+ push:
+ branches:
+ - master
+ - main
+ paths:
+ - '**.jpg'
+ - '**.jpeg'
+ - '**.png'
+ - '**.webp'
+ workflow_dispatch:
+
+jobs:
+ build:
+ name: calibreapp/image-actions
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Branch
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Compress Images
+ id: calibre
+ uses: calibreapp/image-actions@main
+ with:
+ githubToken: ${{ secrets.GITHUB_TOKEN }}
+ compressOnly: true
+ ignorePaths: 'node_modules/**,ios/**,android/**'
+
+ - name: Create Pull Request
+ if: steps.calibre.outputs.markdown != ''
+ uses: peter-evans/create-pull-request@v3
+ with:
+ title: Auto Compress Images
+ branch-suffix: timestamp
+ commit-message: Compress Images
+ body: ${{ steps.calibre.outputs.markdown }}
diff --git a/.github/workflows/e2e-android-eas-build.yml b/.github/workflows/e2e-android-eas-build.yml
new file mode 100644
index 0000000..a2892c6
--- /dev/null
+++ b/.github/workflows/e2e-android-eas-build.yml
@@ -0,0 +1,111 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/e2e-android-eas-build.yml
+# End-to-end testing: https://starter.obytes.com/testing/end-to-end-testing/
+
+# ✍️ Description:
+# This workflow is used to run end-to-end tests for EAS build on Android.
+# It uses Maestro Cloud to run tests on Android emulator.
+# It downloads the APK from EAS build and triggers the tests on Maestro Cloud with the downloaded APK.
+
+# 🚨 GITHUB SECRETS REQUIRED:
+# MAESTRO_CLOUD_API_KEY: API key for Maestro Cloud. You can get it from https://cloud.mobile.dev/ci-integration/github-actions#add-your-api-key-secret
+
+name: E2E Tests EAS Build Android (Maestro + Github Action)
+
+on:
+ workflow_dispatch:
+ inputs:
+ apk-url:
+ type: string
+ description: 'EAS APK URL'
+ required: true
+ default: ''
+
+jobs:
+ download-eas-apk:
+ if: github.event_name != 'pull_request' && github.event.inputs.apk-url != ''
+ name: Download Test APK From EAS Url (wget)
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: 📦 Download EAS APK
+ run: wget ${{ github.event.inputs.apk-url }} -O ./app-release.apk
+
+ - name: Upload Test APK
+ uses: actions/upload-artifact@v3
+ with:
+ name: test-apk
+ path: ./app-release.apk
+
+ test-android:
+ name: E2E Tests EAS Build Android (Maestro + Github Action)
+ needs: download-eas-apk
+ runs-on: macOS-latest
+
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Install Maestro
+ 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
+ with:
+ name: test-apk
+ path: ${{ github.workspace }}
+
+ - name: Gradle cache
+ uses: gradle/gradle-build-action@v2
+
+ - name: AVD cache
+ uses: actions/cache@v3
+ id: avd-cache
+ with:
+ path: |
+ ~/.android/avd/*
+ ~/.android/adb*
+ key: avd-cache
+
+ - name: create AVD and generate snapshot for caching
+ if: steps.avd-cache.outputs.cache-hit != 'true'
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: 29
+ force-avd-creation: false
+ emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ disable-animations: false
+ cores: 2
+ ram-size: 4096M
+ profile: Nexus 6
+ script: echo "Generated AVD snapshot for caching."
+
+ - name: Run tests with Maestro
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: 29
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ disable-animations: false
+ cores: 2
+ ram-size: 4096M
+ profile: Nexus 6
+ script: |
+ adb install "${{ github.workspace }}/app-release.apk"
+ $HOME/.maestro/bin/maestro test .maestro/ --env=APP_ID=com.obytes.staging --format junit
+
+ - name: Upload artifacts
+ if: always()
+ uses: actions/upload-artifact@v3
+ with:
+ name: e2e-test-logs
+ path: ~/.maestro/tests/**/*
+
+ - name: Store tests result
+ uses: actions/upload-artifact@v3
+ with:
+ name: e2e_android_report
+ path: |
+ report.xml
diff --git a/.github/workflows/e2e-android-maestro.yml b/.github/workflows/e2e-android-maestro.yml
new file mode 100644
index 0000000..f9ee74f
--- /dev/null
+++ b/.github/workflows/e2e-android-maestro.yml
@@ -0,0 +1,52 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/e2e-android.yml
+# End-to-end testing: https://starter.obytes.com/testing/end-to-end-testing/
+
+# ✍️ Description:
+# This workflow is used to run end-to-end tests on Android using Maestro Cloud.
+# As a first step, it will generate a test APK using the Gradle build and then trigger Maestro Cloud to run the tests on the generated APK.
+# This workflow will be triggered on pull requests (PRs) with the label "android-test-maestro-cloud" or can be manually triggered from the Actions tab.
+
+# 🚨 GITHUB SECRETS REQUIRED:
+# MAESTRO_CLOUD_API_KEY: API key for Maestro Cloud. You can get it from https://cloud.mobile.dev/ci-integration/github-actions#add-your-api-key-secret
+
+name: E2E Tests Android (Maestro Cloud)
+
+on:
+ workflow_dispatch:
+ pull_request:
+ branches: [main, master]
+
+jobs:
+ generate-and-test-apk:
+ if: github.event_name != 'pull_request' || ( github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'android-test-maestro-cloud'))
+ name: Generate and Test Test APK (Maestro Cloud)
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: 📦 Set Up JDK + Generate Test APK
+ uses: ./.github/actions/setup-jdk-generate-apk
+ with:
+ APP_ENV: staging
+
+ - name: Upload Test APK
+ uses: actions/upload-artifact@v3
+ with:
+ name: test-apk
+ path: ./android/app/build/outputs/apk/release/app-release.apk
+
+ - name: 📱 Run E2E Tests with Maestro Cloud
+ uses: mobile-dev-inc/action-maestro-cloud@v1.4.1
+ with:
+ api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
+ app-file: ./android/app/build/outputs/apk/release/app-release.apk
+ env: |
+ APP_ID=com.obytes.staging
diff --git a/.github/workflows/e2e-android.yml b/.github/workflows/e2e-android.yml
new file mode 100644
index 0000000..9d460ca
--- /dev/null
+++ b/.github/workflows/e2e-android.yml
@@ -0,0 +1,119 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/e2e-android.yml
+# End-to-end testing: https://starter.obytes.com/testing/end-to-end-testing/
+
+# ✍️ Description:
+# This workflow is used to run end-to-end tests on Android using Maestro.
+# As a first step, it will generate a test APK using the Gradle build and then upload it as an artifact.
+# A new job will be started to run the tests using the test APK generated in the previous job.
+# To test the app, we set up an Android emulator using the `reactivecircus/android-emulator-runner` action. This runner requires macOS as the operating system for the runner.
+# This workflow will be triggered on pull requests (PRs) with the label "android-test-github" or can be manually triggered from the Actions tab.
+#
+
+# 🚨 GITHUB SECRETS REQUIRED: None
+
+name: E2E Tests Android (Maestro + Github Action)
+
+on:
+ workflow_dispatch:
+ pull_request:
+ branches: [main, master]
+
+jobs:
+ generate-test-apk:
+ if: github.event_name != 'pull_request' || ( github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'android-test-github'))
+ name: Generate Test APK (Gradle)
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: 📦 Set Up JDK + Generate Test APK
+ uses: ./.github/actions/setup-jdk-generate-apk
+ with:
+ APP_ENV: staging
+
+ - name: Upload Test APK
+ uses: actions/upload-artifact@v3
+ with:
+ name: test-apk
+ path: ./android/app/build/outputs/apk/release/app-release.apk
+
+ test-android:
+ name: Run Android E2E Tests (Maestro + Github Action)
+ needs: generate-test-apk
+ runs-on: macOS-latest
+
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Install Maestro
+ 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
+ with:
+ name: test-apk
+ path: ${{ github.workspace }}
+
+ - name: Gradle cache
+ uses: gradle/gradle-build-action@v2
+
+ - name: AVD cache
+ uses: actions/cache@v3
+ id: avd-cache
+ with:
+ path: |
+ ~/.android/avd/*
+ ~/.android/adb*
+ key: avd-cache
+
+ - name: create AVD and generate snapshot for caching
+ if: steps.avd-cache.outputs.cache-hit != 'true'
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: 29
+ force-avd-creation: false
+ emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ disable-animations: false
+ cores: 2
+ ram-size: 4096M
+ profile: Nexus 6
+ script: echo "Generated AVD snapshot for caching."
+
+ - name: Run tests with Maestro
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: 29
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ disable-animations: false
+ cores: 2
+ ram-size: 4096M
+ profile: Nexus 6
+ script: |
+ adb install "${{ github.workspace }}/app-release.apk"
+ $HOME/.maestro/bin/maestro test .maestro/ --env=APP_ID=com.obytes.staging --format junit
+
+ - name: Upload artifacts
+ if: always()
+ uses: actions/upload-artifact@v3
+ with:
+ name: e2e-test-logs
+ path: ~/.maestro/tests/**/*
+
+ - name: Store tests result
+ uses: actions/upload-artifact@v3
+ with:
+ name: e2e_android_report
+ path: |
+ report.xml
diff --git a/.github/workflows/eas-build-prod.yml b/.github/workflows/eas-build-prod.yml
new file mode 100644
index 0000000..ecb3e53
--- /dev/null
+++ b/.github/workflows/eas-build-prod.yml
@@ -0,0 +1,43 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/eas-build-prod.yml
+# Starter releasing process: https://starter.obytes.com/ci-cd/app-releasing-process/
+
+# ✍️ Description:
+# This workflow is used to trigger a build on EAS for Prod environment.
+# Can be triggered manually from the actions tab.
+# This workflow will use ./actions/eas-build action to trigger the build on EAS with production env.
+
+# 🚨 GITHUB SECRETS REQUIRED:
+# - EXPO_TOKEN: Expo token to authenticate with EAS
+# - You can get it from https://expo.dev/settings/access-tokens
+
+name: EAS Production Build (Android & IOS) (EAS)
+
+on:
+ workflow_dispatch:
+
+jobs:
+ Build:
+ name: EAS Production Build (Android & IOS) (EAS)
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check for EXPO_TOKEN
+ run: |
+ if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
+ echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
+ exit 1
+ fi
+
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: ⏱️ EAS Build
+ uses: ./.github/actions/eas-build
+ with:
+ APP_ENV: production
+ EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
diff --git a/.github/workflows/eas-build-qa.yml b/.github/workflows/eas-build-qa.yml
new file mode 100644
index 0000000..e6da4bf
--- /dev/null
+++ b/.github/workflows/eas-build-qa.yml
@@ -0,0 +1,47 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/eas-build-qa.yml
+# Starter releasing process: https://starter.obytes.com/ci-cd/app-releasing-process/
+
+# ✍️ Description:
+# This workflow is used to trigger a build on EAS for the QA environment.
+# It will run on every GitHub release published on the repo or can be triggered manually from the actions tab.
+# This workflow will use ./actions/eas-build action to trigger the build on EAS with staging env.
+
+# 🚨 GITHUB SECRETS REQUIRED:
+# - EXPO_TOKEN: Expo token to authenticate with EAS
+# - You can get it from https://expo.dev/settings/access-tokens
+
+name: EAS QA Build (Android & IOS) (EAS)
+
+on:
+ workflow_dispatch:
+ release:
+ types: [published]
+
+jobs:
+ Build:
+ name: EAS QA Build (Android & IOS) (EAS)
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check for EXPO_TOKEN
+ run: |
+ if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
+ echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
+ exit 1
+ fi
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: ⏱️ EAS Build
+ uses: ./.github/actions/eas-build
+ with:
+ APP_ENV: staging
+ 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
new file mode 100644
index 0000000..5f11d3a
--- /dev/null
+++ b/.github/workflows/expo-doctor.yml
@@ -0,0 +1,44 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/expo-doctor.yml
+
+# ✍️ Description:
+# This workflow runs the expo doctor command to check if your project dependencies are aligned with the expo sdk version you are using.
+# Can be triggered manually from the Actions tab in your project.
+# Runs Also on pull requests and pushes to the main/master branch, but only if the `package.json` or `pnpm-lock.yaml` files have been changed.
+
+# 🚨 GITHUB SECRETS REQUIRED: NONE
+
+name: Expo Doctor (expo)
+
+on:
+ push:
+ branches:
+ - main
+ - master
+ paths:
+ - 'package.json'
+ - 'pnpm-lock.yaml'
+ pull_request:
+ paths:
+ - 'package.json'
+ - 'pnpm-lock.yaml'
+
+jobs:
+ doctor:
+ name: Expo Doctor (expo)
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: Run prebuild
+ run: pnpm run prebuild ## we only need to run this to generate the badged icon in `.expo` folder
+
+ - name: 🚑 Run Doctor Checks
+ run: rm -rf ios android && pnpm run doctor ## apprently the new update of expo will break if you already have ios and android folders in your project as they will show up a eas warning
diff --git a/.github/workflows/lint-ts.yml b/.github/workflows/lint-ts.yml
new file mode 100644
index 0000000..bb336ca
--- /dev/null
+++ b/.github/workflows/lint-ts.yml
@@ -0,0 +1,45 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/lint-ts.yml
+
+# ✍️ Description:
+# This action is used to run eslint checks
+# Runs on pull requests and pushes to the main/master branches
+# Based on the event type:
+# - If it's a pull request, it will run eslint, then add the check to the PR as well as annotate the code with the errors and warnings.
+# - If it's a push to main/master, it will run the type checking and fail if there are any errors.
+
+# 🚨 GITHUB SECRETS REQUIRED: NONE
+
+name: Lint TS (eslint, prettier)
+
+on:
+ push:
+ branches: [main, master]
+ pull_request:
+ branches: [main, master]
+
+jobs:
+ lint:
+ name: Lint TS (eslint, prettier)
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: 🏃♂️ Run ESLint PR
+ if: github.event_name == 'pull_request'
+ uses: reviewdog/action-eslint@v1
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ reporter: github-pr-review
+ eslint_flags: '. --ext .js,.jsx,.ts,.tsx'
+
+ - name: 🏃♂️ Run ESLint PR
+ if: github.event_name != 'pull_request'
+ run: pnpm run lint
diff --git a/.github/workflows/new-app-version.yml b/.github/workflows/new-app-version.yml
new file mode 100644
index 0000000..ab55931
--- /dev/null
+++ b/.github/workflows/new-app-version.yml
@@ -0,0 +1,65 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/lint-ts.yml
+# Starter releasing process: https://starter.obytes.com/ci-cd/app-releasing-process/
+
+# ✍️ Description:
+# This workflow is used to create a new version of the app and push a new tag to the repo.
+# As this workflow will push code to the repo, we set up GitHub Bot as a Git user.
+# This Workflow need to be triggered manually from the Actions tab in the repo.
+# 1. Choose your release type (patch, minor, major)
+# 2. The workflow will run the np-release script which runs the following steps:
+# - Bump the version in package.json based on the release type using np
+# - Run the prebuild of the app to align the package.json version with the native code
+# - Create a new tag with the new version
+# - Push the new tag to the repo
+#
+
+# 🚨 GITHUB SECRETS REQUIRED:
+# - GH_TOKEN: A GitHub token with write repo access.
+# You can generate one from here: https://docs.github.com/en/enterprise-server@3.6/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
+# make sure to add it to the repo secrets with the name GH_TOKEN
+
+name: New App Version
+
+on:
+ workflow_dispatch:
+ inputs:
+ release-type:
+ type: choice
+ description: 'Release type (one of): patch, minor, major'
+ required: true
+ default: 'patch'
+ options:
+ - patch
+ - minor
+ - major
+
+jobs:
+ release:
+ name: Create New Version and push new tag
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - name: 🔍 GH_TOKEN
+ if: env.GH_TOKEN == ''
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: echo "GH_TOKEN=${GITHUB_TOKEN}" >> $GITHUB_ENV
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ token: ${{ secrets.GH_TOKEN }}
+
+ - name: 📝 Git User Setup
+ run: |
+ git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
+ git config --global user.name "github-actions[bot]"
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: 🏃♂️ Run App release
+ run: |
+ pnpm app-release ${{ github.event.inputs.release-type }}
diff --git a/.github/workflows/new-github-release.yml b/.github/workflows/new-github-release.yml
new file mode 100644
index 0000000..12eac78
--- /dev/null
+++ b/.github/workflows/new-github-release.yml
@@ -0,0 +1,34 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/new-github-release.yml
+# Starter releasing process: https://starter.obytes.com/ci-cd/app-releasing-process/
+
+# ✍️ Description:
+# This workflow will be triggered automatically after the new app version workflow has been executed successfully.
+# It will create a new GitHub release with the new app version and the release notes.
+
+# 🚨 GITHUB SECRETS REQUIRED: None
+
+name: New GitHub Release
+
+on:
+ push:
+ tags:
+ - '*'
+
+jobs:
+ release:
+ name: New GitHub Release
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 🏃♂️Create A Draft Github Release
+ uses: ncipollo/release-action@v1
+ with:
+ generateReleaseNotes: true
+ draft: false
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 0000000..e750e5e
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,20 @@
+name: Mark stale issues and pull requests
+
+on:
+ schedule:
+ - cron: '0 0 * * *'
+
+jobs:
+ stale:
+ runs-on: ubuntu-latest
+
+ steps:
+ - 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'
+ days-before-stale: 60
+ days-before-close: 14
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..ff6c5b6
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,50 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/test.yml
+
+# ✍️ Description:
+# This action is used to run unit tests
+# Runs on pull requests and pushes to the main/master branches
+# Based on the event type:
+# - If it's a pull request, it will run the tests and post a comment with coverage details.
+# - If it's a push to main/master, it will run the tests and add the check to the commit.
+
+# 🚨 GITHUB SECRETS REQUIRED: NONE
+
+name: Tests (jest)
+
+on:
+ push:
+ branches: [main, master]
+ pull_request:
+ branches: [main, master]
+
+jobs:
+ test:
+ name: Tests (jest)
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: 🏃♂️ Run Tests
+ run: pnpm run test:ci
+
+ - name: Jest Coverage Comment
+ uses: MishaKav/jest-coverage-comment@main
+ if: (success() || failure()) && github.event_name == 'pull_request'
+ with:
+ coverage-summary-path: ./coverage/coverage-summary.json
+ summary-title: '💯 Test Coverage'
+ badge-title: Coverage
+ create-new-comment: false
+ junitxml-title: 😎 Tests Results
+ junitxml-path: ./coverage/jest-junit.xml
+ coverage-title: 👀 Tests Details
+ coverage-path: ./coverage/coverage.txt
+ report-only-changed-files: true
diff --git a/.github/workflows/type-check.yml b/.github/workflows/type-check.yml
new file mode 100644
index 0000000..33aebe4
--- /dev/null
+++ b/.github/workflows/type-check.yml
@@ -0,0 +1,50 @@
+# 🔗 Links:
+# Source file: https://github.com/obytes/react-native-template-obytes/blob/master/.github/workflows/type-check.yml
+
+# ✍️ Description:
+# This action is used to run the type-check on the project.
+# Runs on pull requests and pushes to the main/master branches
+# Based on the event type:
+# - If it's a pull request, it will run type checking, then add the check to the PR as well as annotate the code with the errors using reviewdog.
+# - If it's a push to main/master, it will run the type checking and fail if there are any errors.
+
+# 🚨 GITHUB SECRETS REQUIRED: NONE
+
+name: Type Check (tsc)
+
+on:
+ push:
+ branches: [main, master]
+ pull_request:
+ branches: [main, master]
+
+jobs:
+ type-check:
+ name: Type Check (tsc)
+ runs-on: ubuntu-latest
+ steps:
+ - name: 📦 Checkout project repo
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: 📦 Setup Node + PNPM + install deps
+ uses: ./.github/actions/setup-node-pnpm-install
+
+ - name: 📦 Install Reviewdog
+ if: github.event_name == 'pull_request'
+ uses: reviewdog/action-setup@v1
+
+ - name: 🏃♂️ Run TypeScript PR # Reviewdog tsc errorformat: %f:%l:%c - error TS%n: %m
+ # We only need to add the reviewdog step if it's a pull request
+ if: github.event_name == 'pull_request'
+ run: |
+ pnpm type-check | reviewdog -name="tsc" -efm="%f(%l,%c): error TS%n: %m" -reporter="github-pr-review" -filter-mode="nofilter" -fail-on-error -tee
+ env:
+ REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name:
+ 🏃♂️ Run TypeScript Commit
+ # If it's not a Pull Request then we just need to run the type-check
+ if: github.event_name != 'pull_request'
+ run: pnpm type-check
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..38b0a57
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,21 @@
+node_modules/
+.expo/
+dist/
+npm-debug.*
+*.jks
+*.p8
+*.p12
+*.key
+*.mobileprovision
+*.orig.*
+web-build/
+yarn-error.log
+/coverage
+# macOS
+.DS_Store
+
+# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb
+# The following patterns were generated by expo-cli
+
+expo-env.d.ts
+# @end expo-cli
\ No newline at end of file
diff --git a/.husky/.gitignore b/.husky/.gitignore
new file mode 100644
index 0000000..31354ec
--- /dev/null
+++ b/.husky/.gitignore
@@ -0,0 +1 @@
+_
diff --git a/.husky/commit-msg b/.husky/commit-msg
new file mode 100755
index 0000000..5cbe3ee
--- /dev/null
+++ b/.husky/commit-msg
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+pnpm commitlint --edit $1
\ No newline at end of file
diff --git a/.husky/common.sh b/.husky/common.sh
new file mode 100644
index 0000000..0e40ff1
--- /dev/null
+++ b/.husky/common.sh
@@ -0,0 +1,8 @@
+command_exists() {
+ command -v "$1" >/dev/null 2>&1
+}
+
+# Workaround for Windows 10, Git Bash and Yarn
+if command_exists winpty && test -t 1; then
+ exec /dev/null 2>&1
+}
+
+echo 'Checking for changes in pnpm-lock.yml...'
+
+if changed 'pnpm-lock.yml'; then
+ echo "📦 pnpm-lock.yml changed. Run pnpm install to bring your dependencies up to date."
+ pnpm install
+fi
+
+echo 'You are up to date :)'
+
+echo 'If necessary, you can run pnpm prebuild to generate native code.'
+
+exit 0
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 0000000..da56838
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,25 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+. "$(dirname "$0")/common.sh"
+
+
+echo "===\n>> Checking branch name..."
+
+# Check if branch protection is enabled
+if [[ -z $SKIP_BRANCH_PROTECTION ]]; then
+ BRANCH=$(git rev-parse --abbrev-ref HEAD)
+ PROTECTED_BRANCHES="^(main|master)"
+
+ if [[ $BRANCH =~ $PROTECTED_BRANCHES ]]; then
+ echo ">> Direct commits to the $BRANCH branch are not allowed. Please choose a new branch name."
+ exit 1
+ fi
+else
+ echo ">> Skipping branch protection."
+fi
+
+echo ">> Finish checking branch name"
+echo ">> Linting your files and fixing them if needed..."
+
+pnpm type-check
+pnpm lint-staged
\ No newline at end of file
diff --git a/.maestro/app/create-post.yaml b/.maestro/app/create-post.yaml
new file mode 100644
index 0000000..89772e9
--- /dev/null
+++ b/.maestro/app/create-post.yaml
@@ -0,0 +1,29 @@
+appId: ${APP_ID}
+env:
+ 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\
+ \ Ipsum is that it has a more-or-less normal distribution of letters, as opposed\
+ \ to using"
+---
+- launchApp
+- runFlow: ../utils/onboarding-and-login.yaml
+- assertVisible: 'Feed'
+- assertVisible: 'Create'
+- tapOn: 'Create'
+- assertVisible: 'Add Post'
+- tapOn:
+ id: 'title'
+- inputText: ${Title}
+- tapOn:
+ id: 'body-input'
+- inputText: 'short content'
+- tapOn:
+ 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'
diff --git a/.maestro/app/tabs.yaml b/.maestro/app/tabs.yaml
new file mode 100644
index 0000000..741d92f
--- /dev/null
+++ b/.maestro/app/tabs.yaml
@@ -0,0 +1,19 @@
+appId: ${APP_ID}
+env:
+ Name: 'User'
+ EMAIL: 'user@test.com'
+ PASSWORD: 'password'
+---
+- launchApp
+- runFlow: ../utils/onboarding-and-login.yaml
+- assertVisible: 'Feed'
+- assertVisible:
+ id: 'style-tab'
+- tapOn:
+ id: 'style-tab'
+- assertVisible: 'Typography'
+- tapOn:
+ id: 'settings-tab'
+- assertVisible: 'Settings'
+- scroll
+- assertVisible: 'Logout'
diff --git a/.maestro/auth/login-with-validation.yaml b/.maestro/auth/login-with-validation.yaml
new file mode 100644
index 0000000..a669e39
--- /dev/null
+++ b/.maestro/auth/login-with-validation.yaml
@@ -0,0 +1,35 @@
+appId: ${APP_ID}
+env:
+ Name: 'User'
+ EMAIL: 'user@test.com'
+ PASSWORD: 'password'
+---
+- launchApp
+- runFlow:
+ when:
+ visible: 'Obytes Starter'
+ file: ../utils/onboarding.yaml
+- assertVisible: 'Sign In'
+- assertVisible:
+ id: 'login-button'
+- tapOn:
+ id: 'login-button'
+- assertVisible: 'Email is required'
+- assertVisible: 'Password is required'
+- tapOn:
+ id: 'name'
+- inputText: ${Name}
+- runFlow: ../utils/hide-keyboard.yaml
+- tapOn:
+ id: 'email-input'
+- inputText: 'email'
+- assertVisible: 'Invalid email format'
+- inputText: ${EMAIL}
+- runFlow: ../utils/hide-keyboard.yaml
+- tapOn:
+ id: 'password-input'
+- inputText: ${PASSWORD}
+- runFlow: ../utils/hide-keyboard.yaml
+- tapOn:
+ id: 'login-button'
+- assertVisible: 'Feed'
diff --git a/.maestro/auth/onboarding.yaml b/.maestro/auth/onboarding.yaml
new file mode 100644
index 0000000..b52203d
--- /dev/null
+++ b/.maestro/auth/onboarding.yaml
@@ -0,0 +1,8 @@
+appId: ${APP_ID}
+---
+- clearState
+- launchApp
+- assertVisible: "Obytes Starter"
+- assertVisible: "Let's Get Started "
+- tapOn: "Let's Get Started "
+- assertVisible: "Sign In"
\ No newline at end of file
diff --git a/.maestro/config.yaml b/.maestro/config.yaml
new file mode 100644
index 0000000..6961b7e
--- /dev/null
+++ b/.maestro/config.yaml
@@ -0,0 +1,12 @@
+flows:
+ - auth/*
+ - app/*
+
+excludeTags:
+ - util
+
+executionOrder:
+ continueOnFailure: false # default is true
+ flowsOrder:
+ - onboarding
+ - login-with-validation
\ No newline at end of file
diff --git a/.maestro/utils/hide-keyboard-android.yaml b/.maestro/utils/hide-keyboard-android.yaml
new file mode 100644
index 0000000..0702533
--- /dev/null
+++ b/.maestro/utils/hide-keyboard-android.yaml
@@ -0,0 +1,5 @@
+appId: ${APP_ID}
+tags:
+ - util
+---
+- hideKeyboard
\ No newline at end of file
diff --git a/.maestro/utils/hide-keyboard-ios.yaml b/.maestro/utils/hide-keyboard-ios.yaml
new file mode 100644
index 0000000..f22dc28
--- /dev/null
+++ b/.maestro/utils/hide-keyboard-ios.yaml
@@ -0,0 +1,6 @@
+appId: ${APP_ID}
+tags:
+ - util
+---
+- tapOn:
+ id: "Return" # Keyboard Return
\ No newline at end of file
diff --git a/.maestro/utils/hide-keyboard.yaml b/.maestro/utils/hide-keyboard.yaml
new file mode 100644
index 0000000..dfd1cf9
--- /dev/null
+++ b/.maestro/utils/hide-keyboard.yaml
@@ -0,0 +1,12 @@
+appId: ${APP_ID}
+tags:
+ - util
+---
+- runFlow:
+ when:
+ platform: iOS
+ file: ./hide-keyboard-ios.yaml
+- runFlow:
+ when:
+ platform: Android
+ file: ./hide-keyboard-android.yaml
\ No newline at end of file
diff --git a/.maestro/utils/login.yaml b/.maestro/utils/login.yaml
new file mode 100644
index 0000000..6e2b320
--- /dev/null
+++ b/.maestro/utils/login.yaml
@@ -0,0 +1,22 @@
+appId: ${APP_ID}
+env:
+ Name: "User"
+ EMAIL: "user@test.com"
+ PASSWORD: "password"
+tags:
+ - util
+---
+- tapOn:
+ id: "name"
+- inputText: ${Name}
+- tapOn:
+ id: "email-input"
+- inputText: ${EMAIL}
+- runFlow: ../utils/hide-keyboard.yaml
+- tapOn:
+ id: "password-input"
+- inputText: ${PASSWORD}
+- runFlow: ../utils/hide-keyboard.yaml
+- tapOn:
+ id: "login-button"
+- assertVisible: "Typography"
diff --git a/.maestro/utils/onboarding-and-login.yaml b/.maestro/utils/onboarding-and-login.yaml
new file mode 100644
index 0000000..707c945
--- /dev/null
+++ b/.maestro/utils/onboarding-and-login.yaml
@@ -0,0 +1,12 @@
+appId: ${APP_ID}
+tags:
+ - util
+---
+- runFlow:
+ when:
+ visible: "Obytes Starter"
+ file: onboarding.yaml
+- runFlow:
+ when:
+ visible: Sign In
+ file: login.yaml
\ No newline at end of file
diff --git a/.maestro/utils/onboarding.yaml b/.maestro/utils/onboarding.yaml
new file mode 100644
index 0000000..bb1b893
--- /dev/null
+++ b/.maestro/utils/onboarding.yaml
@@ -0,0 +1,8 @@
+appId: ${APP_ID}
+tags:
+ - util
+---
+- assertVisible: 'Obytes Starter'
+- assertVisible: "Let's Get Started "
+- tapOn: "Let's Get Started "
+- assertVisible: 'Sign In'
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..d081044
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1,2 @@
+node-linker=hoisted
+auto-install-peers=true
\ No newline at end of file
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 0000000..01408ba
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,4 @@
+module.exports = {
+ singleQuote: true,
+ endOfLine: 'auto',
+};
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..eff93af
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,17 @@
+{
+ "recommendations": [
+ "dbaeumer.vscode-eslint",
+ "esbenp.prettier-vscode",
+ "yoavbls.pretty-ts-errors",
+ "mikestead.dotenv",
+ "eamodio.gitlens",
+ "streetsidesoftware.code-spell-checker",
+ "formulahendry.auto-close-tag",
+ "formulahendry.auto-rename-tag",
+ "bradlc.vscode-tailwindcss",
+ "lokalise.i18n-ally",
+ "wesbos.theme-cobalt2",
+ "github.copilot",
+ "ChakrounAnas.turbo-console-log"
+ ]
+}
diff --git a/.vscode/project.code-snippets b/.vscode/project.code-snippets
new file mode 100644
index 0000000..9f957ff
--- /dev/null
+++ b/.vscode/project.code-snippets
@@ -0,0 +1,153 @@
+{
+ "View": {
+ "prefix": "v",
+ "body": [
+ "",
+ " $1",
+ ""
+ ],
+ "description": "A Simple View "
+ },
+ "Text": {
+ "prefix": "t",
+ "body": [
+ "",
+ " $1",
+ ""
+ ],
+ "description": "A Simple Text"
+ },
+ "export *": {
+ "prefix": "ex *",
+ "body": ["export * from '.$1';"],
+ "description": "export *"
+ },
+ "Component": {
+ "prefix": "comp",
+ "body": [
+ "import * as React from 'react';",
+ "",
+ "import { Text, View } from '@/ui';",
+ "",
+ "type Props = {",
+ " $2",
+ "};",
+ "export const ${1:CompName} = ({}: Props) => {",
+ " return (",
+ " ",
+ " ${1:CompName} Component",
+ " ",
+ " );",
+ "};",
+ ""
+ ],
+ "description": "Component"
+ },
+ // https://snippet-generator.app/?description=useQuery+with+variables&tabtrigger=useqv&snippet=import+type+%7B+AxiosError+%7D+from+%27axios%27%3B%0Aimport+%7B+createQuery+%7D+from+%27react-query-kit%27%3B%0A%0Aimport+%7B+client+%7D+from+%27..%2Fcommon%27%3B%0A%0Atype+Variables+%3D+%7B%243%7D%3B%0Atype+Response+%3D+%7B%244%7D%3B%0A%0Aexport+const+use%241+%3D+createQuery%3CResponse%2C+Variables%2C+AxiosError%3E%28%7B%0A++queryKey%3A+%5B%27%242%27%5D%2C+%0A++fetcher%3A+%28variables%29+%3D%3E+%7B%0A++++return+client%0A++++++.get%28%60%242%2F%5C%5C%24%7Bvariables.%24%7B5%7D%7D%60%29%22%2C%0A++++++.then%28%28response%29+%3D%3E+response.data%29%3B%0A++%7D%2C%0A%7D%29%3B%0A&mode=vscode
+ "useQuery with variables": {
+ "prefix": "useqv",
+ "body": [
+ "import type { AxiosError } from 'axios';",
+ "import { createQuery } from 'react-query-kit';",
+ "",
+ "import { client } from '../common';",
+ "",
+ "type Variables = {$3};",
+ "type Response = {$4};",
+ "",
+ "export const use$1 = createQuery({",
+ " queryKey: ['$2'], ",
+ " fetcher: (variables) => {",
+ " return client",
+ " .get(`$2/\\${variables.${5}}`)",
+ " .then((response) => response.data);",
+ " },",
+ "});",
+ ""
+ ],
+ "description": "useQuery with variables"
+ },
+ //https://snippet-generator.app/?description=useQuery&tabtrigger=useq&snippet=import+type+%7B+AxiosError+%7D+from+%27axios%27%3B%0Aimport+%7B+createQuery+%7D+from+%27react-query-kit%27%3B%0A%0Aimport+%7B+client+%7D+from+%27..%2Fcommon%27%3B%0A%0Atype+Response+%3D+%7B%243%7D%3B%0Atype+Variables+%3D+void%3B%0A%0Aexport+const+use%241+%3D+createQuery%3CResponse%2C+Variables%2C+AxiosError%3E%28%7B%0A++queryKey%3A+%5B%27%242%27%5D%2C%0A++fetcher%3A+%28%29+%3D%3E+%7B%0A++++return+client.get%28%60%242%60%29.then%28%28response%29+%3D%3E+response.data.posts%29%3B%0A++%7D%2C%0A%7D%29%3B%0A&mode=vscode
+ "useQuery": {
+ "prefix": "useq",
+ "body": [
+ "import type { AxiosError } from 'axios';",
+ "import { createQuery } from 'react-query-kit';",
+ "",
+ "import { client } from '../common';",
+ "",
+ "type Response = {$3};",
+ "type Variables = void;",
+ "",
+ "export const use$1 = createQuery({",
+ " queryKey: ['$2'],",
+ " fetcher: () => {",
+ " return client.get(`$2`).then((response) => response.data.posts);",
+ " },",
+ "});",
+ ""
+ ],
+ "description": "useQuery"
+ },
+ //https://snippet-generator.app/?description=useInfiniteQuery&tabtrigger=useiq&snippet=import+type+%7B+AxiosError+%7D+from+%27axios%27%3B%0Aimport+%7B+createInfiniteQuery+%7D+from+%27react-query-kit%27%3B%0A%0Aimport+%7B+client+%7D+from+%27..%2Fcommon%2Fclient%27%3B%0Aimport+%7B+DEFAULT_LIMIT%2C+getNextPageParam+%7D+from+%27..%2Fcommon%2Futils%27%3B%0Aimport+type+%7B+PaginateQuery+%7D+from+%27..%2Ftypes%27%3B%0A%0Atype+Response+%3D+void%3B%0Atype+Variables+%3D+PaginateQuery%3C%243%3E%3B%0A%0Aexport+const+use%241+%3D+createInfiniteQuery%3CResponse%2C+Variables%2C+AxiosError%3E%28%7B%0A++queryKey%3A+%5B%27%242%27%5D%2C%0A++fetcher%3A+%28_variables%3A+any%2C+%7B+pageParam+%7D%29%3A+Promise%3CResponse%3E+%3D%3E+%7B%0A++++return+client%28%7B%0A++++++url%3A+%60%2F%242%2F%60%2C%0A++++++method%3A+%27GET%27%2C%0A++++++params%3A+%7B%0A++++++++limit%3A+DEFAULT_LIMIT%2C%0A++++++++offset%3A+pageParam%2C%0A++++++%7D%2C%0A++++%7D%29.then%28%28response%29+%3D%3E+response.data%29%3B%0A++%7D%2C%0A++getNextPageParam%2C%0A++initialPageParam%3A+0%2C%0A%7D%29%3B&mode=vscode
+ "useInfiniteQuery": {
+ "prefix": "useiq",
+ "body": [
+ "import type { AxiosError } from 'axios';",
+ "import { createInfiniteQuery } from 'react-query-kit';",
+ "",
+ "import { client } from '../common/client';",
+ "import { DEFAULT_LIMIT, getNextPageParam } from '../common/utils';",
+ "import type { PaginateQuery } from '../types';",
+ "",
+ "type Response = void;",
+ "type Variables = PaginateQuery<$3>;",
+ "",
+ "export const use$1 = createInfiniteQuery({",
+ " queryKey: ['$2'],",
+ " fetcher: (_variables: any, { pageParam }): Promise => {",
+ " return client({",
+ " url: `/$2/`,",
+ " method: 'GET',",
+ " params: {",
+ " limit: DEFAULT_LIMIT,",
+ " offset: pageParam,",
+ " },",
+ " }).then((response) => response.data);",
+ " },",
+ " getNextPageParam,",
+ " initialPageParam: 0,",
+ "});"
+ ],
+ "description": "useInfiniteQuery"
+ },
+
+ //https://snippet-generator.app/?description=useMutation+&tabtrigger=usem&snippet=import+type+%7B+AxiosError+%7D+from+%27axios%27%3B%0Aimport+%7B+createMutation+%7D+from+%27react-query-kit%27%3B%0A%0Aimport+%7B+client+%7D+from+%27..%2Fcommon%27%3B%0A%0Atype+Variables+%3D+%7B%243%7D%3B%0Atype+Response+%3D+%7B%244%7D%3B%0A%0Aexport+const+use%241+%3D+createMutation%3CResponse%2C+Variables%2C+AxiosError%3E%28%0A++async+%28variables%29+%3D%3E%0A++++client%28%7B%0A++++++url%3A+%27%242%27%2C%0A++++++method%3A+%27POST%27%2C%0A++++++data%3A+variables%2C%0A++++%7D%29.then%28%28response%29+%3D%3E+response.data%29%0A%29%3B&mode=vscode
+ "useMutation ": {
+ "prefix": "usem",
+ "body": [
+ "import type { AxiosError } from 'axios';",
+ "import { createMutation } from 'react-query-kit';",
+ "",
+ "import { client } from '../common';",
+ "",
+ "type Variables = {$3};",
+ "type Response = {$4};",
+ "",
+ "export const use$1 = createMutation({",
+ " mutationFn: async (variables) =>",
+ " client({",
+ " url: '$2',",
+ " method: 'POST',",
+ " data: variables,",
+ " }).then((response) => response.data)",
+ "});"
+ ],
+ "description": "useMutation "
+ },
+ "navigate": {
+ "prefix": "navigate",
+ "body": ["const { navigate } = useNavigation();", ""],
+ "description": "navigate"
+ }
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..5e248e3
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,34 @@
+{
+ "editor.tabSize": 2,
+ "editor.detectIndentation": false,
+ "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"
+ },
+ "cSpell.words": ["Flashlist", "Lato"],
+ "i18n-ally.localesPaths": ["src/translations/"],
+ "i18n-ally.keystyle": "nested",
+ "i18n-ally.disabled": false, // make sure to disable i18n-ally in your global setting and only enable it for such projects
+ "tailwindCSS.experimental.classRegex": [
+ ["tv\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"]
+ ]
+}
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..419eb23
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+
+
+Mobile App
+
+> This Project is based on [Obytes starter](https://starter.obytes.com)
+
+## Requirements
+
+- [React Native dev environment ](https://reactnative.dev/docs/environment-setup)
+- [Node.js LTS release](https://nodejs.org/en/)
+- [Git](https://git-scm.com/)
+- [Watchman](https://facebook.github.io/watchman/docs/install#buildinstall), required only for macOS or Linux users
+- [Pnpm](https://pnpm.io/installation)
+- [VS Code Editor](https://code.visualstudio.com/download) ⚠️ Make sure to install all recommended extension from `.vscode/extensions.json`
+
+## 👋 Quick start
+
+Clone the repo to your machine and install deps :
+
+```sh
+git clone https://github.com/user/repo-name
+
+cd ./repo-name
+
+pnpm install
+```
+
+To run the app on ios
+
+```sh
+pnpm ios
+```
+
+To run the app on Android
+
+```sh
+pnpm android
+```
+
+## ✍️ Documentation
+
+- [Rules and Conventions](https://starter.obytes.com/getting-started/rules-and-conventions/)
+- [Project structure](https://starter.obytes.com/getting-started/project-structure)
+- [Environment vars and config](https://starter.obytes.com/getting-started/environment-vars-config)
+- [UI and Theming](https://starter.obytes.com/ui-and-theme/ui-theming)
+- [Components](https://starter.obytes.com/ui-and-theme/components)
+- [Forms](https://starter.obytes.com/ui-and-theme/Forms)
+- [Data fetching](https://starter.obytes.com/guides/data-fetching)
+- [Contribute to starter](https://starter.obytes.com/how-to-contribute/)
diff --git a/__mocks__/@gorhom/bottom-sheet.ts b/__mocks__/@gorhom/bottom-sheet.ts
new file mode 100644
index 0000000..34f938a
--- /dev/null
+++ b/__mocks__/@gorhom/bottom-sheet.ts
@@ -0,0 +1 @@
+module.exports = require('@gorhom/bottom-sheet/mock');
diff --git a/__mocks__/moti.ts b/__mocks__/moti.ts
new file mode 100644
index 0000000..903dcba
--- /dev/null
+++ b/__mocks__/moti.ts
@@ -0,0 +1,10 @@
+import { View } from 'react-native';
+
+const AnimatePresence = View;
+const MotiView = View;
+
+module.exports = {
+ AnimatePresence,
+ View,
+ MotiView,
+};
diff --git a/__mocks__/react-native-gesture-handler.ts b/__mocks__/react-native-gesture-handler.ts
new file mode 100644
index 0000000..1152f1d
--- /dev/null
+++ b/__mocks__/react-native-gesture-handler.ts
@@ -0,0 +1 @@
+module.exports = require('react-native-gesture-handler/src/mocks.ts');
diff --git a/app.config.ts b/app.config.ts
new file mode 100644
index 0000000..ab09614
--- /dev/null
+++ b/app.config.ts
@@ -0,0 +1,86 @@
+/* eslint-disable max-lines-per-function */
+import type { ConfigContext, ExpoConfig } from '@expo/config';
+
+import { ClientEnv, Env } from './env';
+
+export default ({ config }: ConfigContext): ExpoConfig => ({
+ ...config,
+ name: Env.NAME,
+ description: `${Env.NAME} Mobile App`,
+ owner: Env.EXPO_ACCOUNT_OWNER,
+ scheme: Env.SCHEME,
+ slug: 'obytesapp',
+ version: Env.VERSION.toString(),
+ orientation: 'portrait',
+ icon: './assets/icon.png',
+ userInterfaceStyle: 'automatic',
+ splash: {
+ image: './assets/splash.png',
+ resizeMode: 'cover',
+ backgroundColor: '#2E3C4B',
+ },
+ updates: {
+ fallbackToCacheTimeout: 0,
+ },
+ assetBundlePatterns: ['**/*'],
+ ios: {
+ supportsTablet: true,
+ bundleIdentifier: Env.BUNDLE_ID,
+ },
+ experiments: {
+ typedRoutes: true,
+ },
+ android: {
+ adaptiveIcon: {
+ foregroundImage: './assets/adaptive-icon.png',
+ backgroundColor: '#2E3C4B',
+ },
+ package: Env.PACKAGE,
+ },
+ web: {
+ favicon: './assets/favicon.png',
+ bundler: 'metro',
+ },
+ plugins: [
+ [
+ 'expo-font',
+ {
+ fonts: ['./assets/fonts/Inter.ttf'],
+ },
+ ],
+ 'expo-localization',
+ 'expo-router',
+ [
+ 'expo-build-properties',
+ {
+ android: {
+ kotlinVersion: '1.7.22', // this is for softinput package
+ },
+ },
+ ],
+ [
+ 'app-icon-badge',
+ {
+ enabled: Env.APP_ENV !== 'production',
+ badges: [
+ {
+ text: Env.APP_ENV,
+ type: 'banner',
+ color: 'white',
+ },
+ {
+ text: Env.VERSION.toString(),
+ type: 'ribbon',
+ color: 'white',
+ },
+ ],
+ },
+ ],
+ ],
+ extra: {
+ ...ClientEnv,
+ eas: {
+ projectId: Env.EAS_PROJECT_ID,
+ },
+ },
+});
diff --git a/assets/adaptive-icon.png b/assets/adaptive-icon.png
new file mode 100644
index 0000000..378731a
Binary files /dev/null and b/assets/adaptive-icon.png differ
diff --git a/assets/favicon.png b/assets/favicon.png
new file mode 100644
index 0000000..e75f697
Binary files /dev/null and b/assets/favicon.png differ
diff --git a/assets/fonts/Inter.ttf b/assets/fonts/Inter.ttf
new file mode 100644
index 0000000..32a7999
Binary files /dev/null and b/assets/fonts/Inter.ttf differ
diff --git a/assets/icon.png b/assets/icon.png
new file mode 100644
index 0000000..780e220
Binary files /dev/null and b/assets/icon.png differ
diff --git a/assets/splash.png b/assets/splash.png
new file mode 100644
index 0000000..017f6fe
Binary files /dev/null and b/assets/splash.png differ
diff --git a/babel.config.js b/babel.config.js
new file mode 100644
index 0000000..0639214
--- /dev/null
+++ b/babel.config.js
@@ -0,0 +1,33 @@
+module.exports = function (api) {
+ api.cache(true);
+ return {
+ presets: [
+ ['babel-preset-expo', { jsxImportSource: 'nativewind' }],
+ 'nativewind/babel',
+ ],
+ plugins: [
+ [
+ 'module-resolver',
+ {
+ root: ['./'],
+ alias: {
+ '@': './src',
+ '@env': './src/core/env.js',
+ },
+ extensions: [
+ '.ios.ts',
+ '.android.ts',
+ '.ts',
+ '.ios.tsx',
+ '.android.tsx',
+ '.tsx',
+ '.jsx',
+ '.js',
+ '.json',
+ ],
+ },
+ ],
+ 'react-native-reanimated/plugin',
+ ],
+ };
+};
diff --git a/commitlint.config.js b/commitlint.config.js
new file mode 100644
index 0000000..422b194
--- /dev/null
+++ b/commitlint.config.js
@@ -0,0 +1 @@
+module.exports = { extends: ['@commitlint/config-conventional'] };
diff --git a/eas.json b/eas.json
new file mode 100644
index 0000000..77ff0aa
--- /dev/null
+++ b/eas.json
@@ -0,0 +1,91 @@
+{
+ "cli": {
+ "version": ">= 0.57.0"
+ },
+ "build": {
+ "production": {
+ "channel": "production",
+ "distribution": "store",
+ "pnpm": "8.15.4",
+ "ios": {
+ "image": "latest"
+ },
+ "android": {
+ "buildType": "app-bundle",
+ "image": "latest"
+ },
+ "env": {
+ "EXPO_NO_DOTENV": "1",
+ "APP_ENV": "production",
+ "FLIPPER_DISABLE": "1"
+ },
+ "prebuildCommand": "prebuild --skip-dependency-update react",
+ "cache": {
+ "key": "eas-1"
+ }
+ },
+ "staging": {
+ "channel": "staging",
+ "distribution": "internal",
+ "pnpm": "8.15.4",
+ "ios": {
+ "image": "latest"
+ },
+ "android": {
+ "buildType": "apk",
+ "image": "latest"
+ },
+ "env": {
+ "APP_ENV": "staging",
+ "EXPO_NO_DOTENV": "1",
+ "FLIPPER_DISABLE": "1"
+ },
+
+ "prebuildCommand": "prebuild --skip-dependency-update react",
+ "cache": {
+ "key": "eas-1"
+ }
+ },
+ "development": {
+ "developmentClient": true,
+ "distribution": "internal",
+ "pnpm": "8.15.4",
+ "ios": {
+ "image": "latest"
+ },
+ "android": {
+ "image": "latest"
+ },
+ "env": {
+ "APP_ENV": "development",
+ "EXPO_NO_DOTENV": "1"
+ },
+
+ "prebuildCommand": "prebuild --skip-dependency-update react",
+ "cache": {
+ "key": "eas-1"
+ }
+ },
+ "simulator": {
+ "ios": {
+ "simulator": true,
+ "image": "latest"
+ },
+ "android": {
+ "image": "latest"
+ },
+ "env": {
+ "APP_ENV": "development",
+ "EXPO_NO_DOTENV": "1"
+ },
+ "pnpm": "8.15.4",
+ "prebuildCommand": "prebuild --skip-dependency-update react",
+ "cache": {
+ "key": "eas-1"
+ }
+ }
+ },
+ "submit": {
+ "production": {}
+ }
+}
diff --git a/env.js b/env.js
new file mode 100644
index 0000000..e613e32
--- /dev/null
+++ b/env.js
@@ -0,0 +1,154 @@
+/*
+ * Env file to load and validate env variables
+ * Be cautious; this file should not be imported into your source folder.
+ * We split the env variables into two parts:
+ * 1. Client variables: These variables are used in the client-side code (src folder).
+ * 2. Build-time variables: These variables are used in the build process (app.config.ts file).
+ * Import this file into the `app.config.ts` file to use environment variables during the build process. The client variables can then be passed to the client-side using the extra field in the `app.config.ts` file.
+ * To access the client environment variables in your `src` folder, you can import them from `@env`. For example: `import Env from '@env'`.
+ */
+/**
+ * 1st part: Import packages and Load your env variables
+ * we use dotenv to load the correct variables from the .env file based on the APP_ENV variable (default is development)
+ * 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';
+const envPath = path.resolve(__dirname, `.env.${APP_ENV}`);
+
+require('dotenv').config({
+ path: envPath,
+});
+
+/**
+ * 2nd part: Define some static variables for the app
+ * Such as: bundle id, package name, app name.
+ *
+ * You can add them to the .env file but we think it's better to keep them here as as we use prefix to generate this values based on the APP_ENV
+ * for example: if the APP_ENV is staging, the bundle id will be com.myapp.staging
+ */
+
+// TODO: Replace these values with your own
+
+const BUNDLE_ID = 'com.myapp'; // ios bundle id
+const PACKAGE = 'com.myapp'; // android package name
+const NAME = 'MyApp'; // app name
+const EXPO_ACCOUNT_OWNER = 'expo-owner'; // expo account owner
+const EAS_PROJECT_ID = 'c3e1075b-6fe7-4686-aa49-35b46a229044'; // eas project id
+const SCHEME = 'MyApp'; // app scheme
+
+/**
+ * We declare a function withEnvSuffix that will add a suffix to the variable name based on the APP_ENV
+ * Add a suffix to variable env based on APP_ENV
+ * @param {string} name
+ * @returns {string}
+ */
+
+const withEnvSuffix = (name) => {
+ return APP_ENV === 'production' ? name : `${name}.${APP_ENV}`;
+};
+
+/**
+ * 2nd part: Define your env variables schema
+ * we use zod to define our env variables schema
+ *
+ * we split the env variables into two parts:
+ * 1. client: These variables are used in the client-side code (`src` folder).
+ * 2. buildTime: These variables are used in the build process (app.config.ts file). You can think of them as server-side variables.
+ *
+ * Main rules:
+ * 1. If you need your variable on the client-side, you should add it to the client schema; otherwise, you should add it to the buildTime schema.
+ * 2. Whenever you want to add a new variable, you should add it to the correct schema based on the previous rule, then you should add it to the corresponding object (_clientEnv or _buildTimeEnv).
+ *
+ * Note: `z.string()` means that the variable exists and can be an empty string, but not `undefined`.
+ * If you want to make the variable required, you should use `z.string().min(1)` instead.
+ * Read more about zod here: https://zod.dev/?id=strings
+ *
+ */
+
+const client = z.object({
+ APP_ENV: z.enum(['development', 'staging', 'production']),
+ NAME: z.string(),
+ SCHEME: z.string(),
+ BUNDLE_ID: z.string(),
+ PACKAGE: z.string(),
+ VERSION: z.string(),
+
+ // ADD YOUR CLIENT ENV VARS HERE
+ API_URL: z.string(),
+ VAR_NUMBER: z.number(),
+ VAR_BOOL: z.boolean(),
+});
+
+const buildTime = z.object({
+ EXPO_ACCOUNT_OWNER: z.string(),
+ EAS_PROJECT_ID: z.string(),
+ // ADD YOUR BUILD TIME ENV VARS HERE
+ SECRET_KEY: z.string(),
+});
+
+/**
+ * @type {Record , unknown>}
+ */
+const _clientEnv = {
+ APP_ENV,
+ NAME: NAME,
+ SCHEME: SCHEME,
+ BUNDLE_ID: withEnvSuffix(BUNDLE_ID),
+ PACKAGE: withEnvSuffix(PACKAGE),
+ VERSION: packageJSON.version,
+
+ // ADD YOUR ENV VARS HERE TOO
+ API_URL: process.env.API_URL,
+ VAR_NUMBER: Number(process.env.VAR_NUMBER),
+ VAR_BOOL: process.env.VAR_BOOL === 'true',
+};
+
+/**
+ * @type {Record , unknown>}
+ */
+const _buildTimeEnv = {
+ EXPO_ACCOUNT_OWNER,
+ EAS_PROJECT_ID,
+ // ADD YOUR ENV VARS HERE TOO
+ SECRET_KEY: process.env.SECRET_KEY,
+};
+
+/**
+ * 3rd part: Merge and Validate your env variables
+ * 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,
+};
+
+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.${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 -cc flag to clear the cache.`
+ );
+ throw new Error(
+ 'Invalid environment variables, Check terminal for more details '
+ );
+}
+
+const Env = parsed.data;
+const ClientEnv = client.parse(_clientEnv);
+
+module.exports = {
+ Env,
+ ClientEnv,
+ withEnvSuffix,
+};
diff --git a/global.css b/global.css
new file mode 100644
index 0000000..b5c61c9
--- /dev/null
+++ b/global.css
@@ -0,0 +1,3 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..b4b7f60
--- /dev/null
+++ b/index.js
@@ -0,0 +1,8 @@
+import { registerRootComponent } from 'expo';
+
+import App from './src';
+
+// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
+// It also ensures that whether you load the app in Expo Go or in a native build,
+// the environment is set up appropriately
+registerRootComponent(App);
diff --git a/jest.config.js b/jest.config.js
new file mode 100644
index 0000000..63b50b0
--- /dev/null
+++ b/jest.config.js
@@ -0,0 +1,43 @@
+module.exports = {
+ preset: 'jest-expo',
+ setupFilesAfterEnv: [
+ '@testing-library/react-native/extend-expect',
+ '/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-expo|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',
+ },
+};
diff --git a/lint-staged.config.js b/lint-staged.config.js
new file mode 100644
index 0000000..196ef19
--- /dev/null
+++ b/lint-staged.config.js
@@ -0,0 +1,16 @@
+module.exports = {
+ '**/*.{js,jsx,ts,tsx}': (filenames) => [
+ `npx eslint --fix ${filenames
+ .map((filename) => `"${filename}"`)
+ .join(' ')}`,
+ ],
+ '**/*.(md|json)': (filenames) =>
+ `npx prettier --write ${filenames
+ .map((filename) => `"${filename}"`)
+ .join(' ')}`,
+ 'src/translations/*.(json)': (filenames) => [
+ `npx eslint --fix ${filenames
+ .map((filename) => `"${filename}"`)
+ .join(' ')}`,
+ ],
+};
diff --git a/metro.config.js b/metro.config.js
new file mode 100644
index 0000000..f3321ba
--- /dev/null
+++ b/metro.config.js
@@ -0,0 +1,6 @@
+const { getDefaultConfig } = require('expo/metro-config');
+const { withNativeWind } = require('nativewind/metro');
+
+const config = getDefaultConfig(__dirname);
+
+module.exports = withNativeWind(config, { input: './global.css' });
diff --git a/nativewind-env.d.ts b/nativewind-env.d.ts
new file mode 100644
index 0000000..a13e313
--- /dev/null
+++ b/nativewind-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..ce5d97e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,136 @@
+{
+ "name": "myapp",
+ "version": "0.0.1",
+ "private": true,
+ "main": "expo-router/entry",
+ "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",
+ "doctor": "npx expo-doctor@latest",
+ "preinstall": "npx only-allow pnpm",
+ "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",
+ "start:production": "cross-env APP_ENV=production pnpm run start",
+ "prebuild:production": "cross-env APP_ENV=production pnpm run prebuild",
+ "android:production": "cross-env APP_ENV=production pnpm run android",
+ "ios:production": "cross-env APP_ENV=production pnpm run ios",
+ "build:development:ios": "cross-env APP_ENV=development EXPO_NO_DOTENV=1 eas build --profile development --platform ios",
+ "build:development:android": "cross-env APP_ENV=development EXPO_NO_DOTENV=1 eas build --profile development --platform android ",
+ "build:staging:ios": "cross-env APP_ENV=staging EXPO_NO_DOTENV=1 eas build --profile staging --platform ios",
+ "build:staging:android": "cross-env APP_ENV=staging EXPO_NO_DOTENV=1 eas build --profile staging --platform android ",
+ "build:production:ios": "cross-env APP_ENV=production EXPO_NO_DOTENV=1 eas build --profile production --platform ios",
+ "build:production:android": "cross-env APP_ENV=production EXPO_NO_DOTENV=1 eas build --profile production --platform android ",
+ "postinstall": "husky install",
+ "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 ",
+ "test": "jest",
+ "test:ci": "pnpm run test --coverage",
+ "test:watch": "pnpm run test --watch",
+ "install-maestro": "curl -Ls 'https://get.maestro.mobile.dev' | bash",
+ "e2e-test": "maestro test .maestro/ -e APP_ID=com.obytes.development"
+ },
+ "dependencies": {
+ "@expo/metro-runtime": "^3.2.1",
+ "@gorhom/bottom-sheet": "^4.6.3",
+ "@hookform/resolvers": "^2.9.11",
+ "@react-navigation/bottom-tabs": "^6.5.20",
+ "@react-navigation/native": "^6.1.17",
+ "@react-navigation/native-stack": "^6.9.26",
+ "@shopify/flash-list": "1.6.4",
+ "@tanstack/react-query": "^5.37.1",
+ "app-icon-badge": "^0.0.15",
+ "axios": "^1.7.1",
+ "expo": "~51.0.8",
+ "expo-build-properties": "~0.12.1",
+ "expo-constants": "~16.0.1",
+ "expo-dev-client": "~4.0.14",
+ "expo-font": "~12.0.5",
+ "expo-image": "~1.12.9",
+ "expo-linking": "~6.3.1",
+ "expo-localization": "~15.0.3",
+ "expo-router": "~3.5.14",
+ "expo-splash-screen": "0.27.4",
+ "expo-status-bar": "~1.12.1",
+ "expo-system-ui": "~3.0.4",
+ "i18next": "^22.5.1",
+ "lodash.memoize": "^4.1.2",
+ "moti": "^0.28.1",
+ "nativewind": "^4.0.36",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "react-error-boundary": "^3.1.4",
+ "react-hook-form": "^7.51.4",
+ "react-i18next": "^12.3.1",
+ "react-native": "0.74.1",
+ "react-native-avoid-softinput": "^4.0.2",
+ "react-native-flash-message": "^0.4.2",
+ "react-native-gesture-handler": "~2.16.2",
+ "react-native-mmkv": "2.6.3",
+ "react-native-reanimated": "~3.10.1",
+ "react-native-restart": "0.0.27",
+ "react-native-safe-area-context": "4.10.1",
+ "react-native-screens": "~3.31.1",
+ "react-native-svg": "15.2.0",
+ "react-native-web": "~0.19.11",
+ "react-query-kit": "^3.3.0",
+ "tailwind-variants": "^0.1.20",
+ "zod": "^3.23.8",
+ "zustand": "^4.5.2"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.24.5",
+ "@commitlint/cli": "^17.8.1",
+ "@commitlint/config-conventional": "^17.8.1",
+ "@dev-plugins/react-navigation": "^0.0.6",
+ "@dev-plugins/react-query": "^0.0.6",
+ "@expo/config": "~9.0.2",
+ "@react-native-community/eslint-config": "^3.2.0",
+ "@testing-library/jest-dom": "^5.17.0",
+ "@testing-library/react-native": "^12.5.0",
+ "@types/i18n-js": "^3.8.9",
+ "@types/jest": "^29.5.12",
+ "@types/lodash.memoize": "^4.1.9",
+ "@types/react": "~18.2.79",
+ "@types/react-test-renderer": "^18.3.0",
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
+ "@typescript-eslint/parser": "^5.62.0",
+ "babel-plugin-module-resolver": "^5.0.2",
+ "cross-env": "^7.0.3",
+ "dotenv": "^16.4.5",
+ "eslint": "^8.57.0",
+ "eslint-plugin-i18n-json": "^4.0.0",
+ "eslint-plugin-simple-import-sort": "^10.0.0",
+ "eslint-plugin-tailwindcss": "^3.15.2",
+ "eslint-plugin-testing-library": "^6.2.2",
+ "eslint-plugin-unicorn": "^46.0.1",
+ "eslint-plugin-unused-imports": "^2.0.0",
+ "husky": "^8.0.3",
+ "jest": "^29.7.0",
+ "jest-environment-jsdom": "^29.7.0",
+ "jest-expo": "~51.0.2",
+ "jest-junit": "^16.0.0",
+ "lint-staged": "^13.3.0",
+ "metro-babel-register": "^0.73.10",
+ "np": "^7.7.0",
+ "prettier": "^2.8.8",
+ "react-test-renderer": "^18.3.1",
+ "tailwindcss": "3.3.2",
+ "ts-jest": "^29.1.2",
+ "typescript": "^5.3.3"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/user/repo-name.git"
+ },
+ "packageManager": "pnpm@8.6.5",
+ "osMetadata": {
+ "initVersion": "6.0.0"
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..2c36494
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,16356 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@expo/metro-runtime':
+ specifier: ^3.2.1
+ version: 3.2.1(react-native@0.74.1)
+ '@gorhom/bottom-sheet':
+ specifier: ^4.6.3
+ version: 4.6.3(@types/react@18.2.79)(react-native-gesture-handler@2.16.2)(react-native-reanimated@3.10.1)(react-native@0.74.1)(react@18.2.0)
+ '@hookform/resolvers':
+ specifier: ^2.9.11
+ version: 2.9.11(react-hook-form@7.51.4)
+ '@react-navigation/bottom-tabs':
+ specifier: ^6.5.20
+ version: 6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.2.0)
+ '@react-navigation/native':
+ specifier: ^6.1.17
+ version: 6.1.17(react-native@0.74.1)(react@18.2.0)
+ '@react-navigation/native-stack':
+ specifier: ^6.9.26
+ version: 6.9.26(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.2.0)
+ '@shopify/flash-list':
+ specifier: 1.6.4
+ version: 1.6.4(@babel/runtime@7.24.5)(react-native@0.74.1)(react@18.2.0)
+ '@tanstack/react-query':
+ specifier: ^5.37.1
+ version: 5.37.1(react@18.2.0)
+ app-icon-badge:
+ specifier: ^0.0.15
+ version: 0.0.15
+ axios:
+ specifier: ^1.7.1
+ version: 1.7.1
+ expo:
+ specifier: ~51.0.8
+ version: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ expo-build-properties:
+ specifier: ~0.12.1
+ version: 0.12.1(expo@51.0.8)
+ expo-constants:
+ specifier: ~16.0.1
+ version: 16.0.1(expo@51.0.8)
+ expo-dev-client:
+ specifier: ~4.0.14
+ version: 4.0.14(expo@51.0.8)
+ expo-font:
+ specifier: ~12.0.5
+ version: 12.0.5(expo@51.0.8)
+ expo-image:
+ specifier: ~1.12.9
+ version: 1.12.9(expo@51.0.8)
+ expo-linking:
+ specifier: ~6.3.1
+ version: 6.3.1(expo@51.0.8)
+ expo-localization:
+ specifier: ~15.0.3
+ version: 15.0.3(expo@51.0.8)
+ expo-router:
+ specifier: ~3.5.14
+ version: 3.5.14(expo-constants@16.0.1)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.1)(expo-status-bar@1.12.1)(expo@51.0.8)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.2.0)(typescript@5.3.3)
+ expo-splash-screen:
+ specifier: 0.27.4
+ version: 0.27.4(expo-modules-autolinking@1.11.1)(expo@51.0.8)
+ expo-status-bar:
+ specifier: ~1.12.1
+ version: 1.12.1
+ expo-system-ui:
+ specifier: ~3.0.4
+ version: 3.0.4(expo@51.0.8)
+ i18next:
+ specifier: ^22.5.1
+ version: 22.5.1
+ lodash.memoize:
+ specifier: ^4.1.2
+ version: 4.1.2
+ moti:
+ specifier: ^0.28.1
+ version: 0.28.1(react-dom@18.2.0)(react-native-reanimated@3.10.1)(react@18.2.0)
+ nativewind:
+ specifier: ^4.0.36
+ version: 4.0.36(@babel/core@7.24.5)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-svg@15.2.0)(react-native@0.74.1)(react@18.2.0)(tailwindcss@3.3.2)
+ react:
+ specifier: 18.2.0
+ version: 18.2.0
+ react-dom:
+ specifier: 18.2.0
+ version: 18.2.0(react@18.2.0)
+ react-error-boundary:
+ specifier: ^3.1.4
+ version: 3.1.4(react@18.2.0)
+ react-hook-form:
+ specifier: ^7.51.4
+ version: 7.51.4(react@18.2.0)
+ react-i18next:
+ specifier: ^12.3.1
+ version: 12.3.1(i18next@22.5.1)(react-dom@18.2.0)(react-native@0.74.1)(react@18.2.0)
+ react-native:
+ specifier: 0.74.1
+ version: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ react-native-avoid-softinput:
+ specifier: ^4.0.2
+ version: 4.0.2(react-native@0.74.1)(react@18.2.0)
+ react-native-flash-message:
+ specifier: ^0.4.2
+ version: 0.4.2(prop-types@15.8.1)(react-native@0.74.1)(react@18.2.0)
+ react-native-gesture-handler:
+ specifier: ~2.16.2
+ version: 2.16.2(react-native@0.74.1)(react@18.2.0)
+ react-native-mmkv:
+ specifier: 2.6.3
+ version: 2.6.3(react-native@0.74.1)(react@18.2.0)
+ react-native-reanimated:
+ specifier: ~3.10.1
+ version: 3.10.1(@babel/core@7.24.5)(react-native@0.74.1)(react@18.2.0)
+ react-native-restart:
+ specifier: 0.0.27
+ version: 0.0.27(react-native@0.74.1)(react@18.2.0)
+ react-native-safe-area-context:
+ specifier: 4.10.1
+ version: 4.10.1(react-native@0.74.1)(react@18.2.0)
+ react-native-screens:
+ specifier: ~3.31.1
+ version: 3.31.1(react-native@0.74.1)(react@18.2.0)
+ react-native-svg:
+ specifier: 15.2.0
+ version: 15.2.0(react-native@0.74.1)(react@18.2.0)
+ react-native-web:
+ specifier: ~0.19.11
+ version: 0.19.11(react-dom@18.2.0)(react@18.2.0)
+ react-query-kit:
+ specifier: ^3.3.0
+ version: 3.3.0(@tanstack/react-query@5.37.1)
+ tailwind-variants:
+ specifier: ^0.1.20
+ version: 0.1.20(tailwindcss@3.3.2)
+ zod:
+ specifier: ^3.23.8
+ version: 3.23.8
+ zustand:
+ specifier: ^4.5.2
+ version: 4.5.2(@types/react@18.2.79)(react@18.2.0)
+ devDependencies:
+ '@babel/core':
+ specifier: ^7.24.5
+ version: 7.24.5
+ '@commitlint/cli':
+ specifier: ^17.8.1
+ version: 17.8.1
+ '@commitlint/config-conventional':
+ specifier: ^17.8.1
+ version: 17.8.1
+ '@dev-plugins/react-navigation':
+ specifier: ^0.0.6
+ version: 0.0.6(@react-navigation/core@6.4.16)(expo@51.0.8)(react@18.2.0)
+ '@dev-plugins/react-query':
+ specifier: ^0.0.6
+ version: 0.0.6(@tanstack/react-query@5.37.1)(expo@51.0.8)
+ '@expo/config':
+ specifier: ~9.0.2
+ version: 9.0.2
+ '@react-native-community/eslint-config':
+ specifier: ^3.2.0
+ version: 3.2.0(eslint@8.57.0)(jest@29.7.0)(prettier@2.8.8)(typescript@5.3.3)
+ '@testing-library/jest-dom':
+ specifier: ^5.17.0
+ version: 5.17.0
+ '@testing-library/react-native':
+ specifier: ^12.5.0
+ version: 12.5.0(jest@29.7.0)(react-native@0.74.1)(react-test-renderer@18.3.1)(react@18.2.0)
+ '@types/i18n-js':
+ specifier: ^3.8.9
+ version: 3.8.9
+ '@types/jest':
+ specifier: ^29.5.12
+ version: 29.5.12
+ '@types/lodash.memoize':
+ specifier: ^4.1.9
+ version: 4.1.9
+ '@types/react':
+ specifier: ~18.2.79
+ version: 18.2.79
+ '@types/react-test-renderer':
+ specifier: ^18.3.0
+ version: 18.3.0
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^5.62.0
+ version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/parser':
+ specifier: ^5.62.0
+ version: 5.62.0(eslint@8.57.0)(typescript@5.3.3)
+ babel-plugin-module-resolver:
+ specifier: ^5.0.2
+ version: 5.0.2
+ cross-env:
+ specifier: ^7.0.3
+ version: 7.0.3
+ dotenv:
+ specifier: ^16.4.5
+ version: 16.4.5
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.0
+ eslint-plugin-i18n-json:
+ specifier: ^4.0.0
+ version: 4.0.0(eslint@8.57.0)
+ eslint-plugin-simple-import-sort:
+ specifier: ^10.0.0
+ version: 10.0.0(eslint@8.57.0)
+ eslint-plugin-tailwindcss:
+ specifier: ^3.15.2
+ version: 3.15.2(tailwindcss@3.3.2)
+ eslint-plugin-testing-library:
+ specifier: ^6.2.2
+ version: 6.2.2(eslint@8.57.0)(typescript@5.3.3)
+ eslint-plugin-unicorn:
+ specifier: ^46.0.1
+ version: 46.0.1(eslint@8.57.0)
+ eslint-plugin-unused-imports:
+ specifier: ^2.0.0
+ version: 2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)
+ husky:
+ specifier: ^8.0.3
+ version: 8.0.3
+ jest:
+ specifier: ^29.7.0
+ version: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2)
+ jest-environment-jsdom:
+ specifier: ^29.7.0
+ version: 29.7.0
+ jest-expo:
+ specifier: ~51.0.2
+ version: 51.0.2(@babel/core@7.24.5)(jest@29.7.0)(react@18.2.0)
+ jest-junit:
+ specifier: ^16.0.0
+ version: 16.0.0
+ lint-staged:
+ specifier: ^13.3.0
+ version: 13.3.0
+ metro-babel-register:
+ specifier: ^0.73.10
+ version: 0.73.10
+ np:
+ specifier: ^7.7.0
+ version: 7.7.0
+ prettier:
+ specifier: ^2.8.8
+ version: 2.8.8
+ react-test-renderer:
+ specifier: ^18.3.1
+ version: 18.3.1(react@18.2.0)
+ tailwindcss:
+ specifier: 3.3.2
+ version: 3.3.2(ts-node@10.9.2)
+ ts-jest:
+ specifier: ^29.1.2
+ version: 29.1.2(@babel/core@7.24.5)(jest@29.7.0)(typescript@5.3.3)
+ typescript:
+ specifier: ^5.3.3
+ version: 5.3.3
+
+packages:
+
+ '@adobe/css-tools@4.3.3':
+ resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==}
+
+ '@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'}
+
+ '@babel/code-frame@7.10.4':
+ resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==}
+
+ '@babel/code-frame@7.24.2':
+ resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.24.4':
+ resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.24.5':
+ resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/eslint-parser@7.24.5':
+ resolution: {integrity: sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
+ peerDependencies:
+ '@babel/core': ^7.11.0
+ eslint: ^7.5.0 || ^8.0.0 || ^9.0.0
+
+ '@babel/generator@7.24.5':
+ resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-annotate-as-pure@7.22.5':
+ resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
+ resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.23.6':
+ resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-create-class-features-plugin@7.24.5':
+ resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-create-regexp-features-plugin@7.22.15':
+ resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-define-polyfill-provider@0.6.2':
+ resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ '@babel/helper-environment-visitor@7.22.20':
+ resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-function-name@7.23.0':
+ resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-hoist-variables@7.22.5':
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-member-expression-to-functions@7.24.5':
+ resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.24.3':
+ resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.24.5':
+ resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-optimise-call-expression@7.22.5':
+ resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-plugin-utils@7.24.5':
+ resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-remap-async-to-generator@7.22.20':
+ resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-replace-supers@7.24.1':
+ resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-simple-access@7.24.5':
+ resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
+ resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-split-export-declaration@7.24.5':
+ resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.24.1':
+ resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.24.5':
+ resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.23.5':
+ resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-wrap-function@7.24.5':
+ resolution: {integrity: sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.24.5':
+ resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/highlight@7.24.5':
+ resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.24.5':
+ resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5':
+ resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1':
+ resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1':
+ resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.13.0
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1':
+ resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-proposal-async-generator-functions@7.20.7':
+ resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-class-properties@7.18.6':
+ resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-decorators@7.24.1':
+ resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-export-default-from@7.24.1':
+ resolution: {integrity: sha512-+0hrgGGV3xyYIjOrD/bUZk/iUwOIGuoANfRfVg1cPhYBxF+TIXSEcc42DqzBICmWsnAQ+SfKedY0bj8QD+LuMg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-logical-assignment-operators@7.20.7':
+ resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6':
+ resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-numeric-separator@7.18.6':
+ resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-object-rest-spread@7.20.7':
+ resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-optional-catch-binding@7.18.6':
+ resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-optional-chaining@7.21.0':
+ resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
+ resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-async-generators@7.8.4':
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-bigint@7.8.3':
+ resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-class-properties@7.12.13':
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-class-static-block@7.14.5':
+ resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-decorators@7.24.1':
+ resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-dynamic-import@7.8.3':
+ resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-export-default-from@7.24.1':
+ resolution: {integrity: sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-export-namespace-from@7.8.3':
+ resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-flow@7.24.1':
+ resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-assertions@7.24.1':
+ resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-attributes@7.24.1':
+ resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-meta@7.10.4':
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-json-strings@7.8.3':
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-jsx@7.24.1':
+ resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-numeric-separator@7.10.4':
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-object-rest-spread@7.8.3':
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3':
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3':
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-private-property-in-object@7.14.5':
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-top-level-await@7.14.5':
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-typescript@7.24.1':
+ resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
+ resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-arrow-functions@7.24.1':
+ resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-async-generator-functions@7.24.3':
+ resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-async-to-generator@7.24.1':
+ resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-block-scoped-functions@7.24.1':
+ resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-block-scoping@7.24.5':
+ resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-class-properties@7.24.1':
+ resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-class-static-block@7.24.4':
+ resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+
+ '@babel/plugin-transform-classes@7.24.5':
+ resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-computed-properties@7.24.1':
+ resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-destructuring@7.24.5':
+ resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-dotall-regex@7.24.1':
+ resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-duplicate-keys@7.24.1':
+ resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-dynamic-import@7.24.1':
+ resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-exponentiation-operator@7.24.1':
+ resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-export-namespace-from@7.24.1':
+ resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-flow-strip-types@7.24.1':
+ resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-for-of@7.24.1':
+ resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-function-name@7.24.1':
+ resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-json-strings@7.24.1':
+ resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-literals@7.24.1':
+ resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-logical-assignment-operators@7.24.1':
+ resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-member-expression-literals@7.24.1':
+ resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-amd@7.24.1':
+ resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-commonjs@7.24.1':
+ resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-systemjs@7.24.1':
+ resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-umd@7.24.1':
+ resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-named-capturing-groups-regex@7.22.5':
+ resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-new-target@7.24.1':
+ resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-nullish-coalescing-operator@7.24.1':
+ resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-numeric-separator@7.24.1':
+ resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-object-rest-spread@7.24.5':
+ resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-object-super@7.24.1':
+ resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-optional-catch-binding@7.24.1':
+ resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-optional-chaining@7.24.5':
+ resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-parameters@7.24.5':
+ resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-private-methods@7.24.1':
+ resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-private-property-in-object@7.24.5':
+ resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-property-literals@7.24.1':
+ resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-display-name@7.24.1':
+ resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-development@7.22.5':
+ resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-self@7.24.5':
+ resolution: {integrity: sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-source@7.24.1':
+ resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx@7.23.4':
+ resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-pure-annotations@7.24.1':
+ resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-regenerator@7.24.1':
+ resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-reserved-words@7.24.1':
+ resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-runtime@7.24.3':
+ resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-shorthand-properties@7.24.1':
+ resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-spread@7.24.1':
+ resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-sticky-regex@7.24.1':
+ resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-template-literals@7.24.1':
+ resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typeof-symbol@7.24.5':
+ resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typescript@7.24.5':
+ resolution: {integrity: sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-escapes@7.24.1':
+ resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-property-regex@7.24.1':
+ resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-regex@7.24.1':
+ resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-sets-regex@7.24.1':
+ resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/preset-env@7.24.5':
+ resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/preset-flow@7.24.1':
+ resolution: {integrity: sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/preset-modules@0.1.6-no-external-plugins':
+ resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
+
+ '@babel/preset-react@7.24.1':
+ resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/preset-typescript@7.24.1':
+ resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/register@7.23.7':
+ resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/regjsgen@0.8.0':
+ resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
+
+ '@babel/runtime@7.24.5':
+ resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.24.0':
+ resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.24.5':
+ resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.24.5':
+ resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@bcoe/v8-coverage@0.2.3':
+ resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+
+ '@commitlint/cli@17.8.1':
+ resolution: {integrity: sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==}
+ engines: {node: '>=v14'}
+ hasBin: true
+
+ '@commitlint/config-conventional@17.8.1':
+ resolution: {integrity: sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/config-validator@17.8.1':
+ resolution: {integrity: sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/ensure@17.8.1':
+ resolution: {integrity: sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/execute-rule@17.8.1':
+ resolution: {integrity: sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/format@17.8.1':
+ resolution: {integrity: sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/is-ignored@17.8.1':
+ resolution: {integrity: sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/lint@17.8.1':
+ resolution: {integrity: sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/load@17.8.1':
+ resolution: {integrity: sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/message@17.8.1':
+ resolution: {integrity: sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/parse@17.8.1':
+ resolution: {integrity: sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/read@17.8.1':
+ resolution: {integrity: sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/resolve-extends@17.8.1':
+ resolution: {integrity: sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/rules@17.8.1':
+ resolution: {integrity: sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/to-lines@17.8.1':
+ resolution: {integrity: sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/top-level@17.8.1':
+ resolution: {integrity: sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==}
+ engines: {node: '>=v14'}
+
+ '@commitlint/types@17.8.1':
+ resolution: {integrity: sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==}
+ engines: {node: '>=v14'}
+
+ '@cspotcode/source-map-support@0.8.1':
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
+
+ '@dev-plugins/react-navigation@0.0.6':
+ resolution: {integrity: sha512-DBuNhCyo0kqYPxZzirL4TZBemOGHBI1pxxF6LOU4WlsVaCK16PJvvtgoD2Tbd0xS64fdfaDyISrn16RbIncy5A==}
+ peerDependencies:
+ '@react-navigation/core': '*'
+ expo: '*'
+
+ '@dev-plugins/react-query@0.0.6':
+ resolution: {integrity: sha512-vxddpeongPPTN3NeWRsNRxwpB+7KpL+3FUVU0PmrFpEbMsLd0zbDEM7uC7z7ZR9qFuqeIY3uvwuq3LoYHBLT4w==}
+ peerDependencies:
+ '@tanstack/react-query': '*'
+ expo: '*'
+
+ '@egjs/hammerjs@2.0.17':
+ resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==}
+ engines: {node: '>=0.8.0'}
+
+ '@emotion/is-prop-valid@0.8.8':
+ resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==}
+
+ '@emotion/memoize@0.7.4':
+ resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==}
+
+ '@eslint-community/eslint-utils@4.4.0':
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ 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.10.0':
+ resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/eslintrc@2.1.4':
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@eslint/js@8.57.0':
+ resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@expo/bunyan@4.0.0':
+ resolution: {integrity: sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==}
+ engines: {'0': node >=0.10.0}
+
+ '@expo/cli@0.18.13':
+ resolution: {integrity: sha512-ZO1fpDK8z6mLeQGuFP6e3cZyCHV55ohZY7/tEyhpft3bwysS680eyFg5SFe+tWNFesnziFrbtI8JaUyhyjqovA==}
+ hasBin: true
+
+ '@expo/code-signing-certificates@0.0.5':
+ resolution: {integrity: sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==}
+
+ '@expo/config-plugins@8.0.4':
+ resolution: {integrity: sha512-Hi+xuyNWE2LT4LVbGttHJgl9brnsdWAhEB42gWKb5+8ae86Nr/KwUBQJsJppirBYTeLjj5ZlY0glYnAkDa2jqw==}
+
+ '@expo/config-types@51.0.0':
+ resolution: {integrity: sha512-acn03/u8mQvBhdTQtA7CNhevMltUhbSrpI01FYBJwpVntufkU++ncQujWKlgY/OwIajcfygk1AY4xcNZ5ImkRA==}
+
+ '@expo/config@9.0.2':
+ resolution: {integrity: sha512-BKQ4/qBf3OLT8hHp5kjObk2vxwoRQ1yYQBbG/OM9Jdz32yYtrU8opTbKRAxfZEWH5i3ZHdLrPdC1rO0I6WxtTw==}
+
+ '@expo/devcert@1.1.2':
+ resolution: {integrity: sha512-FyWghLu7rUaZEZSTLt/XNRukm0c9GFfwP0iFaswoDWpV6alvVg+zRAfCLdIVQEz1SVcQ3zo1hMZFDrnKGvkCuQ==}
+
+ '@expo/env@0.3.0':
+ resolution: {integrity: sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==}
+
+ '@expo/image-utils@0.5.1':
+ resolution: {integrity: sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A==}
+
+ '@expo/json-file@8.3.3':
+ resolution: {integrity: sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==}
+
+ '@expo/metro-config@0.18.4':
+ resolution: {integrity: sha512-vh9WDf/SzE+NYCn6gqbzLKiXtENFlFZdAqyj9nI38RvQ4jw6TJIQ8+ExcdLDT3MOG36Ytg44XX9Zb3OWF6LVxw==}
+
+ '@expo/metro-runtime@3.2.1':
+ resolution: {integrity: sha512-L7xNo5SmK+rcuXDm/+VBBImpA7FZsVB+m/rNr3fNl5or+1+yrZe99ViF7LZ8DOoVqAqcb4aCAXvGrP2JNYo1/Q==}
+ peerDependencies:
+ react-native: '*'
+
+ '@expo/osascript@2.1.2':
+ resolution: {integrity: sha512-/ugqDG+52uzUiEpggS9GPdp9g0U9EQrXcTdluHDmnlGmR2nV/F83L7c+HCUyPnf77QXwkr8gQk16vQTbxBQ5eA==}
+ engines: {node: '>=12'}
+
+ '@expo/package-manager@1.5.2':
+ resolution: {integrity: sha512-IuA9XtGBilce0q8cyxtWINqbzMB1Fia0Yrug/O53HNuRSwQguV/iqjV68bsa4z8mYerePhcFgtvISWLAlNEbUA==}
+
+ '@expo/plist@0.1.3':
+ resolution: {integrity: sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==}
+
+ '@expo/prebuild-config@7.0.3':
+ resolution: {integrity: sha512-Kvxy/oQzkxwXLvAmwb+ygxuRn4xUUN2+mVJj3KDe4bRVCNyDPs7wlgdokF3twnWjzRZssUzseMkhp+yHPjAEhA==}
+ peerDependencies:
+ expo-modules-autolinking: '>=0.8.1'
+
+ '@expo/prebuild-config@7.0.4':
+ resolution: {integrity: sha512-E2n3QbwgV8Qa0CBw7BHrWBDWD7l8yw+N/yjvXpSPFFtoZLMSKyegdkJFACh2u+UIRKUSZm8zQwHeZR0rqAxV9g==}
+ peerDependencies:
+ expo-modules-autolinking: '>=0.8.1'
+
+ '@expo/rudder-sdk-node@1.1.1':
+ resolution: {integrity: sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==}
+ engines: {node: '>=12'}
+
+ '@expo/sdk-runtime-versions@1.0.0':
+ resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==}
+
+ '@expo/server@0.4.2':
+ resolution: {integrity: sha512-HuXbzXTJh1/JG8FRuxcBqTNEuiriMhNhvh68CNCUXMR/s1f29DmZPBq+/IbG8yk+TkXvKIHjmUGAqqz/ddfyvA==}
+
+ '@expo/spawn-async@1.7.2':
+ resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==}
+ engines: {node: '>=12'}
+
+ '@expo/vector-icons@14.0.2':
+ resolution: {integrity: sha512-70LpmXQu4xa8cMxjp1fydgRPsalefnHaXLzIwaHMEzcZhnyjw2acZz8azRrZOslPVAWlxItOa2Dd7WtD/kI+CA==}
+
+ '@expo/xcpretty@4.3.1':
+ resolution: {integrity: sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==}
+ hasBin: true
+
+ '@formatjs/ecma402-abstract@2.0.0':
+ resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==}
+
+ '@formatjs/icu-messageformat-parser@2.7.8':
+ resolution: {integrity: sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==}
+
+ '@formatjs/icu-skeleton-parser@1.8.2':
+ resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==}
+
+ '@formatjs/intl-localematcher@0.5.4':
+ resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==}
+
+ '@gorhom/bottom-sheet@4.6.3':
+ resolution: {integrity: sha512-fSuSfbtoKsjmSeyz+tG2C0GtcEL7PS63iEXI23c9M+HeCT1IFK6ffmIa2pqyqB43L1jtkR+BWkpZwqXnN4H8xA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-native': '*'
+ react: '*'
+ react-native: '*'
+ react-native-gesture-handler: '>=1.10.1'
+ react-native-reanimated: '>=2.2.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-native':
+ optional: true
+
+ '@gorhom/portal@1.0.14':
+ resolution: {integrity: sha512-MXyL4xvCjmgaORr/rtryDNFy3kU4qUbKlwtQqqsygd0xX3mhKjOLn6mQK8wfu0RkoE0pBE0nAasRoHua+/QZ7A==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ '@graphql-typed-document-node/core@3.2.0':
+ resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==}
+ peerDependencies:
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+
+ '@hapi/hoek@9.3.0':
+ resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
+
+ '@hapi/topo@5.1.0':
+ resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
+
+ '@hookform/resolvers@2.9.11':
+ resolution: {integrity: sha512-bA3aZ79UgcHj7tFV7RlgThzwSSHZgvfbt2wprldRkYBcMopdMvHyO17Wwp/twcJasNFischFfS7oz8Katz8DdQ==}
+ peerDependencies:
+ react-hook-form: ^7.0.0
+
+ '@humanwhocodes/config-array@0.11.14':
+ resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
+ engines: {node: '>=10.10.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/object-schema@2.0.3':
+ resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
+
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
+ '@isaacs/ttlcache@1.4.1':
+ resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==}
+ engines: {node: '>=12'}
+
+ '@istanbuljs/load-nyc-config@1.1.0':
+ resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
+ engines: {node: '>=8'}
+
+ '@istanbuljs/schema@0.1.3':
+ resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
+ engines: {node: '>=8'}
+
+ '@jest/console@29.7.0':
+ resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/core@29.7.0':
+ resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ '@jest/create-cache-key-function@29.7.0':
+ resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/environment@29.7.0':
+ resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/expect-utils@29.7.0':
+ resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/expect@29.7.0':
+ resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/fake-timers@29.7.0':
+ resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/globals@29.7.0':
+ resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/reporters@29.7.0':
+ resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ '@jest/schemas@29.6.3':
+ resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.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}
+
+ '@jest/test-result@29.7.0':
+ resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/test-sequencer@29.7.0':
+ resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/transform@29.7.0':
+ resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jest/types@26.6.2':
+ resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==}
+ engines: {node: '>= 10.14.2'}
+
+ '@jest/types@29.6.3':
+ resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ '@jimp/bmp@0.22.12':
+ resolution: {integrity: sha512-aeI64HD0npropd+AR76MCcvvRaa+Qck6loCOS03CkkxGHN5/r336qTM5HPUdHKMDOGzqknuVPA8+kK1t03z12g==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/core@0.22.12':
+ resolution: {integrity: sha512-l0RR0dOPyzMKfjUW1uebzueFEDtCOj9fN6pyTYWWOM/VS4BciXQ1VVrJs8pO3kycGYZxncRKhCoygbNr8eEZQA==}
+
+ '@jimp/custom@0.22.12':
+ resolution: {integrity: sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==}
+
+ '@jimp/gif@0.22.12':
+ resolution: {integrity: sha512-y6BFTJgch9mbor2H234VSjd9iwAhaNf/t3US5qpYIs0TSbAvM02Fbc28IaDETj9+4YB4676sz4RcN/zwhfu1pg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/jpeg@0.22.12':
+ resolution: {integrity: sha512-Rq26XC/uQWaQKyb/5lksCTCxXhtY01NJeBN+dQv5yNYedN0i7iYu+fXEoRsfaJ8xZzjoANH8sns7rVP4GE7d/Q==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-blit@0.22.12':
+ resolution: {integrity: sha512-xslz2ZoFZOPLY8EZ4dC29m168BtDx95D6K80TzgUi8gqT7LY6CsajWO0FAxDwHz6h0eomHMfyGX0stspBrTKnQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-blur@0.22.12':
+ resolution: {integrity: sha512-S0vJADTuh1Q9F+cXAwFPlrKWzDj2F9t/9JAbUvaaDuivpyWuImEKXVz5PUZw2NbpuSHjwssbTpOZ8F13iJX4uw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-circle@0.22.12':
+ resolution: {integrity: sha512-SWVXx1yiuj5jZtMijqUfvVOJBwOifFn0918ou4ftoHgegc5aHWW5dZbYPjvC9fLpvz7oSlptNl2Sxr1zwofjTg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-color@0.22.12':
+ resolution: {integrity: sha512-xImhTE5BpS8xa+mAN6j4sMRWaUgUDLoaGHhJhpC+r7SKKErYDR0WQV4yCE4gP+N0gozD0F3Ka1LUSaMXrn7ZIA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-contain@0.22.12':
+ resolution: {integrity: sha512-Eo3DmfixJw3N79lWk8q/0SDYbqmKt1xSTJ69yy8XLYQj9svoBbyRpSnHR+n9hOw5pKXytHwUW6nU4u1wegHNoQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-blit': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+ '@jimp/plugin-scale': '>=0.3.5'
+
+ '@jimp/plugin-cover@0.22.12':
+ resolution: {integrity: sha512-z0w/1xH/v/knZkpTNx+E8a7fnasQ2wHG5ze6y5oL2dhH1UufNua8gLQXlv8/W56+4nJ1brhSd233HBJCo01BXA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-crop': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+ '@jimp/plugin-scale': '>=0.3.5'
+
+ '@jimp/plugin-crop@0.22.12':
+ resolution: {integrity: sha512-FNuUN0OVzRCozx8XSgP9MyLGMxNHHJMFt+LJuFjn1mu3k0VQxrzqbN06yIl46TVejhyAhcq5gLzqmSCHvlcBVw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-displace@0.22.12':
+ resolution: {integrity: sha512-qpRM8JRicxfK6aPPqKZA6+GzBwUIitiHaZw0QrJ64Ygd3+AsTc7BXr+37k2x7QcyCvmKXY4haUrSIsBug4S3CA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-dither@0.22.12':
+ resolution: {integrity: sha512-jYgGdSdSKl1UUEanX8A85v4+QUm+PE8vHFwlamaKk89s+PXQe7eVE3eNeSZX4inCq63EHL7cX580dMqkoC3ZLw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-fisheye@0.22.12':
+ resolution: {integrity: sha512-LGuUTsFg+fOp6KBKrmLkX4LfyCy8IIsROwoUvsUPKzutSqMJnsm3JGDW2eOmWIS/jJpPaeaishjlxvczjgII+Q==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-flip@0.22.12':
+ resolution: {integrity: sha512-m251Rop7GN8W0Yo/rF9LWk6kNclngyjIJs/VXHToGQ6EGveOSTSQaX2Isi9f9lCDLxt+inBIb7nlaLLxnvHX8Q==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-rotate': '>=0.3.5'
+
+ '@jimp/plugin-gaussian@0.22.12':
+ resolution: {integrity: sha512-sBfbzoOmJ6FczfG2PquiK84NtVGeScw97JsCC3rpQv1PHVWyW+uqWFF53+n3c8Y0P2HWlUjflEla2h/vWShvhg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-invert@0.22.12':
+ resolution: {integrity: sha512-N+6rwxdB+7OCR6PYijaA/iizXXodpxOGvT/smd/lxeXsZ/empHmFFFJ/FaXcYh19Tm04dGDaXcNF/dN5nm6+xQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-mask@0.22.12':
+ resolution: {integrity: sha512-4AWZg+DomtpUA099jRV8IEZUfn1wLv6+nem4NRJC7L/82vxzLCgXKTxvNvBcNmJjT9yS1LAAmiJGdWKXG63/NA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-normalize@0.22.12':
+ resolution: {integrity: sha512-0So0rexQivnWgnhacX4cfkM2223YdExnJTTy6d06WbkfZk5alHUx8MM3yEzwoCN0ErO7oyqEWRnEkGC+As1FtA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-print@0.22.12':
+ resolution: {integrity: sha512-c7TnhHlxm87DJeSnwr/XOLjJU/whoiKYY7r21SbuJ5nuH+7a78EW1teOaj5gEr2wYEd7QtkFqGlmyGXY/YclyQ==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-blit': '>=0.3.5'
+
+ '@jimp/plugin-resize@0.22.12':
+ resolution: {integrity: sha512-3NyTPlPbTnGKDIbaBgQ3HbE6wXbAlFfxHVERmrbqAi8R3r6fQPxpCauA8UVDnieg5eo04D0T8nnnNIX//i/sXg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/plugin-rotate@0.22.12':
+ resolution: {integrity: sha512-9YNEt7BPAFfTls2FGfKBVgwwLUuKqy+E8bDGGEsOqHtbuhbshVGxN2WMZaD4gh5IDWvR+emmmPPWGgaYNYt1gA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-blit': '>=0.3.5'
+ '@jimp/plugin-crop': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+
+ '@jimp/plugin-scale@0.22.12':
+ resolution: {integrity: sha512-dghs92qM6MhHj0HrV2qAwKPMklQtjNpoYgAB94ysYpsXslhRTiPisueSIELRwZGEr0J0VUxpUY7HgJwlSIgGZw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+
+ '@jimp/plugin-shadow@0.22.12':
+ resolution: {integrity: sha512-FX8mTJuCt7/3zXVoeD/qHlm4YH2bVqBuWQHXSuBK054e7wFRnRnbSLPUqAwSeYP3lWqpuQzJtgiiBxV3+WWwTg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-blur': '>=0.3.5'
+ '@jimp/plugin-resize': '>=0.3.5'
+
+ '@jimp/plugin-threshold@0.22.12':
+ resolution: {integrity: sha512-4x5GrQr1a/9L0paBC/MZZJjjgjxLYrqSmWd+e+QfAEPvmRxdRoQ5uKEuNgXnm9/weHQBTnQBQsOY2iFja+XGAw==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+ '@jimp/plugin-color': '>=0.8.0'
+ '@jimp/plugin-resize': '>=0.8.0'
+
+ '@jimp/plugins@0.22.12':
+ resolution: {integrity: sha512-yBJ8vQrDkBbTgQZLty9k4+KtUQdRjsIDJSPjuI21YdVeqZxYywifHl4/XWILoTZsjTUASQcGoH0TuC0N7xm3ww==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/png@0.22.12':
+ resolution: {integrity: sha512-Mrp6dr3UTn+aLK8ty/dSKELz+Otdz1v4aAXzV5q53UDD2rbB5joKVJ/ChY310B+eRzNxIovbUF1KVrUsYdE8Hg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/tiff@0.22.12':
+ resolution: {integrity: sha512-E1LtMh4RyJsoCAfAkBRVSYyZDTtLq9p9LUiiYP0vPtXyxX4BiYBUYihTLSBlCQg5nF2e4OpQg7SPrLdJ66u7jg==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@jimp/types@0.22.12':
+ resolution: {integrity: sha512-wwKYzRdElE1MBXFREvCto5s699izFHNVvALUv79GXNbsOVqlwlOxlWJ8DuyOGIXoLP4JW/m30YyuTtfUJgMRMA==}
+ peerDependencies:
+ '@jimp/custom': '>=0.3.5'
+
+ '@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/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.4.15':
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
+ '@jridgewell/trace-mapping@0.3.9':
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+
+ '@motionone/animation@10.17.0':
+ resolution: {integrity: sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg==}
+
+ '@motionone/dom@10.12.0':
+ resolution: {integrity: sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==}
+
+ '@motionone/easing@10.17.0':
+ resolution: {integrity: sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg==}
+
+ '@motionone/generators@10.17.0':
+ resolution: {integrity: sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ==}
+
+ '@motionone/types@10.17.0':
+ resolution: {integrity: sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA==}
+
+ '@motionone/utils@10.17.0':
+ resolution: {integrity: sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg==}
+
+ '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
+ resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@npmcli/fs@3.1.1':
+ resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ '@pkgjs/parseargs@0.11.0':
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+
+ '@radix-ui/react-compose-refs@1.0.0':
+ resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==}
+ peerDependencies:
+ react: ^16.8 || ^17.0 || ^18.0
+
+ '@radix-ui/react-slot@1.0.1':
+ resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==}
+ peerDependencies:
+ react: ^16.8 || ^17.0 || ^18.0
+
+ '@react-native-community/cli-clean@13.6.6':
+ resolution: {integrity: sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ==}
+
+ '@react-native-community/cli-config@13.6.6':
+ resolution: {integrity: sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg==}
+
+ '@react-native-community/cli-debugger-ui@13.6.6':
+ resolution: {integrity: sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g==}
+
+ '@react-native-community/cli-doctor@13.6.6':
+ resolution: {integrity: sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg==}
+
+ '@react-native-community/cli-hermes@13.6.6':
+ resolution: {integrity: sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg==}
+
+ '@react-native-community/cli-platform-android@13.6.6':
+ resolution: {integrity: sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg==}
+
+ '@react-native-community/cli-platform-apple@13.6.6':
+ resolution: {integrity: sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg==}
+
+ '@react-native-community/cli-platform-ios@13.6.6':
+ resolution: {integrity: sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ==}
+
+ '@react-native-community/cli-server-api@13.6.6':
+ resolution: {integrity: sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ==}
+
+ '@react-native-community/cli-tools@13.6.6':
+ resolution: {integrity: sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw==}
+
+ '@react-native-community/cli-types@13.6.6':
+ resolution: {integrity: sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug==}
+
+ '@react-native-community/cli@13.6.6':
+ resolution: {integrity: sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ '@react-native-community/eslint-config@3.2.0':
+ resolution: {integrity: sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ==}
+ peerDependencies:
+ eslint: '>=8'
+ prettier: '>=2'
+
+ '@react-native-community/eslint-plugin@1.3.0':
+ resolution: {integrity: sha512-+zDZ20NUnSWghj7Ku5aFphMzuM9JulqCW+aPXT6IfIXFbb8tzYTTOSeRFOtuekJ99ibW2fUCSsjuKNlwDIbHFg==}
+
+ '@react-native/assets-registry@0.74.83':
+ resolution: {integrity: sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ==}
+ engines: {node: '>=18'}
+
+ '@react-native/babel-plugin-codegen@0.74.83':
+ resolution: {integrity: sha512-+S0st3t4Ro00bi9gjT1jnK8qTFOU+CwmziA7U9odKyWrCoRJrgmrvogq/Dr1YXlpFxexiGIupGut1VHxr+fxJA==}
+ engines: {node: '>=18'}
+
+ '@react-native/babel-preset@0.74.83':
+ resolution: {integrity: sha512-KJuu3XyVh3qgyUer+rEqh9a/JoUxsDOzkJNfRpDyXiAyjDRoVch60X/Xa/NcEQ93iCVHAWs0yQ+XGNGIBCYE6g==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@babel/core': '*'
+
+ '@react-native/codegen@0.74.83':
+ resolution: {integrity: sha512-GgvgHS3Aa2J8/mp1uC/zU8HuTh8ZT5jz7a4mVMWPw7+rGyv70Ba8uOVBq6UH2Q08o617IATYc+0HfyzAfm4n0w==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@babel/preset-env': ^7.1.6
+
+ '@react-native/community-cli-plugin@0.74.83':
+ resolution: {integrity: sha512-7GAFjFOg1mFSj8bnFNQS4u8u7+QtrEeflUIDVZGEfBZQ3wMNI5ycBzbBGycsZYiq00Xvoc6eKFC7kvIaqeJpUQ==}
+ engines: {node: '>=18'}
+
+ '@react-native/debugger-frontend@0.74.83':
+ resolution: {integrity: sha512-RGQlVUegBRxAUF9c1ss1ssaHZh6CO+7awgtI9sDeU0PzDZY/40ImoPD5m0o0SI6nXoVzbPtcMGzU+VO590pRfA==}
+ engines: {node: '>=18'}
+
+ '@react-native/dev-middleware@0.74.83':
+ resolution: {integrity: sha512-UH8iriqnf7N4Hpi20D7M2FdvSANwTVStwFCSD7VMU9agJX88Yk0D1T6Meh2RMhUu4kY2bv8sTkNRm7LmxvZqgA==}
+ engines: {node: '>=18'}
+
+ '@react-native/gradle-plugin@0.74.83':
+ resolution: {integrity: sha512-Pw2BWVyOHoBuJVKxGVYF6/GSZRf6+v1Ygc+ULGz5t20N8qzRWPa2fRZWqoxsN7TkNLPsECYY8gooOl7okOcPAQ==}
+ engines: {node: '>=18'}
+
+ '@react-native/js-polyfills@0.74.83':
+ resolution: {integrity: sha512-/t74n8r6wFhw4JEoOj3bN71N1NDLqaawB75uKAsSjeCwIR9AfCxlzZG0etsXtOexkY9KMeZIQ7YwRPqUdNXuqw==}
+ engines: {node: '>=18'}
+
+ '@react-native/metro-babel-transformer@0.74.83':
+ resolution: {integrity: sha512-hGdx5N8diu8y+GW/ED39vTZa9Jx1di2ZZ0aapbhH4egN1agIAusj5jXTccfNBwwWF93aJ5oVbRzfteZgjbutKg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@babel/core': '*'
+
+ '@react-native/normalize-colors@0.74.83':
+ resolution: {integrity: sha512-jhCY95gRDE44qYawWVvhTjTplW1g+JtKTKM3f8xYT1dJtJ8QWv+gqEtKcfmOHfDkSDaMKG0AGBaDTSK8GXLH8Q==}
+
+ '@react-native/virtualized-lists@0.74.83':
+ resolution: {integrity: sha512-rmaLeE34rj7py4FxTod7iMTC7BAsm+HrGA8WxYmEJeyTV7WSaxAkosKoYBz8038mOiwnG9VwA/7FrB6bEQvn1A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/react': ^18.2.6
+ react: '*'
+ react-native: '*'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@react-navigation/bottom-tabs@6.5.20':
+ resolution: {integrity: sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA==}
+ peerDependencies:
+ '@react-navigation/native': ^6.0.0
+ react: '*'
+ react-native: '*'
+ react-native-safe-area-context: '>= 3.0.0'
+ react-native-screens: '>= 3.0.0'
+
+ '@react-navigation/core@6.4.16':
+ resolution: {integrity: sha512-UDTJBsHxnzgFETR3ZxhctP+RWr4SkyeZpbhpkQoIGOuwSCkt1SE0qjU48/u6r6w6XlX8OqVudn1Ab0QFXTHxuQ==}
+ peerDependencies:
+ react: '*'
+
+ '@react-navigation/devtools@6.0.26':
+ resolution: {integrity: sha512-jbIb+678wb75Z1OiA/zP2g7ZuAviL9IFFTiadEcGog713n7XTm5xRr6uiCPWohalUJOvt8e9B8A2wRGmgELjHw==}
+ peerDependencies:
+ react: '*'
+
+ '@react-navigation/elements@1.3.30':
+ resolution: {integrity: sha512-plhc8UvCZs0UkV+sI+3bisIyn78wz9O/BiWZXpounu72k/R/Sj5PuZYFJ1fi6psvriUveMCGh4LeZckAZu2qiQ==}
+ peerDependencies:
+ '@react-navigation/native': ^6.0.0
+ react: '*'
+ react-native: '*'
+ react-native-safe-area-context: '>= 3.0.0'
+
+ '@react-navigation/native-stack@6.9.26':
+ resolution: {integrity: sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw==}
+ peerDependencies:
+ '@react-navigation/native': ^6.0.0
+ react: '*'
+ react-native: '*'
+ react-native-safe-area-context: '>= 3.0.0'
+ react-native-screens: '>= 3.0.0'
+
+ '@react-navigation/native@6.1.17':
+ resolution: {integrity: sha512-mer3OvfwWOHoUSMJyLa4vnBH3zpFmCwuzrBPlw7feXklurr/ZDiLjLxUScOot6jLRMz/67GyilEYMmP99LL0RQ==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ '@react-navigation/routers@6.1.9':
+ resolution: {integrity: sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==}
+
+ '@remix-run/node@2.9.2':
+ resolution: {integrity: sha512-2Mt2107pfelz4T+ziDBef3P4A7kgPqCDshnEYCVGxInivJ3HHwAKUcb7MhGa8uMMMA6LMWxbAPYNHPzC3iKv2A==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ typescript: ^5.1.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@remix-run/router@1.16.1':
+ resolution: {integrity: sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==}
+ engines: {node: '>=14.0.0'}
+
+ '@remix-run/server-runtime@2.9.2':
+ resolution: {integrity: sha512-dX37FEeMVVg7KUbpRhX4hD0nUY0Sscz/qAjU4lYCdd6IzwJGariTmz+bQTXKCjploZuXj09OQZHSOS/ydkUVDA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ typescript: ^5.1.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@remix-run/web-blob@3.1.0':
+ resolution: {integrity: sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==}
+
+ '@remix-run/web-fetch@4.4.2':
+ resolution: {integrity: sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==}
+ engines: {node: ^10.17 || >=12.3}
+
+ '@remix-run/web-file@3.1.0':
+ resolution: {integrity: sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==}
+
+ '@remix-run/web-form-data@3.1.0':
+ resolution: {integrity: sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==}
+
+ '@remix-run/web-stream@1.1.0':
+ resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==}
+
+ '@rnx-kit/chromium-edge-launcher@1.0.0':
+ resolution: {integrity: sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==}
+ engines: {node: '>=14.15'}
+
+ '@samverschueren/stream-to-observable@0.3.1':
+ resolution: {integrity: sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ rxjs: '*'
+ zen-observable: '*'
+ peerDependenciesMeta:
+ rxjs:
+ optional: true
+ zen-observable:
+ optional: true
+
+ '@segment/loosely-validate-event@2.0.0':
+ resolution: {integrity: sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==}
+
+ '@shopify/flash-list@1.6.4':
+ resolution: {integrity: sha512-M2momcnY7swsvmpHIFDVbdOaFw4aQocJXA/lFP0Gpz+alQjFylqVKvszxl4atYO2SNbjxlb2L6hEP9WEcAknGQ==}
+ peerDependencies:
+ '@babel/runtime': '*'
+ react: '*'
+ react-native: '*'
+
+ '@sideway/address@4.1.5':
+ resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
+
+ '@sideway/formula@3.0.1':
+ resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
+
+ '@sideway/pinpoint@2.0.0':
+ resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
+
+ '@sinclair/typebox@0.27.8':
+ resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
+
+ '@sindresorhus/is@0.14.0':
+ resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==}
+ engines: {node: '>=6'}
+
+ '@sindresorhus/is@2.1.1':
+ resolution: {integrity: sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==}
+ engines: {node: '>=10'}
+
+ '@sindresorhus/is@4.6.0':
+ resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
+ engines: {node: '>=10'}
+
+ '@sinonjs/commons@3.0.1':
+ resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
+
+ '@sinonjs/fake-timers@10.3.0':
+ resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
+
+ '@szmarczak/http-timer@1.1.2':
+ resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==}
+ engines: {node: '>=6'}
+
+ '@szmarczak/http-timer@4.0.6':
+ resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
+ engines: {node: '>=10'}
+
+ '@tanstack/query-core@5.36.1':
+ resolution: {integrity: sha512-BteWYEPUcucEu3NBcDAgKuI4U25R9aPrHSP6YSf2NvaD2pSlIQTdqOfLRsxH9WdRYg7k0Uom35Uacb6nvbIMJg==}
+
+ '@tanstack/react-query@5.37.1':
+ resolution: {integrity: sha512-EhtBNA8GL3XFeSx6VYUjXQ96n44xe3JGKZCzBINrCYlxbZP6UwBafv7ti4eSRWc2Fy+fybQre0w17gR6lMzULA==}
+ peerDependencies:
+ react: ^18.0.0
+
+ '@testing-library/jest-dom@5.17.0':
+ resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==}
+ engines: {node: '>=8', npm: '>=6', yarn: '>=1'}
+
+ '@testing-library/react-native@12.5.0':
+ resolution: {integrity: sha512-0dKpxF5jJyjCH6r9JAiJ6jivpjntBH5ixaS+dHavMMr8aBDU76BwHMuYvekqQ6F/t30Ik3UhygQaZEz0VmiU6w==}
+ peerDependencies:
+ jest: '>=28.0.0'
+ react: '>=16.8.0'
+ react-native: '>=0.59'
+ react-test-renderer: '>=16.8.0'
+ peerDependenciesMeta:
+ jest:
+ optional: true
+
+ '@tokenizer/token@0.3.0':
+ resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
+
+ '@tootallnate/once@2.0.0':
+ resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
+ engines: {node: '>= 10'}
+
+ '@tsconfig/node10@1.0.11':
+ resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
+
+ '@tsconfig/node12@1.0.11':
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+
+ '@tsconfig/node14@1.0.3':
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+
+ '@tsconfig/node16@1.0.4':
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+
+ '@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__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.20.5':
+ resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==}
+
+ '@types/cacheable-request@6.0.3':
+ resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
+
+ '@types/cookie@0.6.0':
+ resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
+
+ '@types/graceful-fs@4.1.9':
+ resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
+
+ '@types/hammerjs@2.0.45':
+ resolution: {integrity: sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ==}
+
+ '@types/http-cache-semantics@4.0.4':
+ resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
+
+ '@types/i18n-js@3.8.9':
+ resolution: {integrity: sha512-bSxgya4x5O+x+QhfCGckiDDE+17XGPp1TNBgBA/vfF5EwdiZC70F4cKG5QK2v44+v62oY7/t/InreRhxskulcA==}
+
+ '@types/istanbul-lib-coverage@2.0.6':
+ resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
+
+ '@types/istanbul-lib-report@3.0.3':
+ resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
+
+ '@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/jsdom@20.0.1':
+ resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/keyv@3.1.4':
+ resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
+
+ '@types/lodash.memoize@4.1.9':
+ resolution: {integrity: sha512-glY1nQuoqX4Ft8Uk+KfJudOD7DQbbEDF6k9XpGncaohW3RW4eSWBlx6AA0fZCrh40tZcQNH4jS/Oc59J6Eq+aw==}
+
+ '@types/lodash@4.17.4':
+ resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==}
+
+ '@types/minimist@1.2.5':
+ resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
+
+ '@types/node-forge@1.3.11':
+ resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
+
+ '@types/node@16.9.1':
+ resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==}
+
+ '@types/node@18.19.33':
+ resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==}
+
+ '@types/node@20.12.12':
+ resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+
+ '@types/node@20.5.1':
+ resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==}
+
+ '@types/normalize-package-data@2.4.4':
+ resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
+ '@types/parse-json@4.0.2':
+ resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
+
+ '@types/prop-types@15.7.12':
+ resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
+
+ '@types/react-test-renderer@18.3.0':
+ resolution: {integrity: sha512-HW4MuEYxfDbOHQsVlY/XtOvNHftCVEPhJF2pQXXwcUiUF+Oyb0usgp48HSgpK5rt8m9KZb22yqOeZm+rrVG8gw==}
+
+ '@types/react@18.2.79':
+ resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==}
+
+ '@types/responselike@1.0.3':
+ resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
+
+ '@types/semver@7.5.8':
+ resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
+
+ '@types/stack-utils@2.0.3':
+ resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
+
+ '@types/testing-library__jest-dom@5.14.9':
+ resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==}
+
+ '@types/tough-cookie@4.0.5':
+ resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
+
+ '@types/yargs-parser@21.0.3':
+ resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
+
+ '@types/yargs@15.0.19':
+ resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==}
+
+ '@types/yargs@17.0.32':
+ resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
+
+ '@typescript-eslint/eslint-plugin@5.62.0':
+ resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/parser@5.62.0':
+ resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/scope-manager@5.62.0':
+ resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@typescript-eslint/type-utils@5.62.0':
+ resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/types@5.62.0':
+ resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@typescript-eslint/typescript-estree@5.62.0':
+ resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/utils@5.62.0':
+ resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ '@typescript-eslint/visitor-keys@5.62.0':
+ resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@ungap/structured-clone@1.2.0':
+ resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+
+ '@urql/core@2.3.6':
+ resolution: {integrity: sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==}
+ peerDependencies:
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
+
+ '@urql/exchange-retry@0.3.0':
+ resolution: {integrity: sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==}
+ peerDependencies:
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0
+
+ '@web3-storage/multipart-parser@1.0.0':
+ resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==}
+
+ '@xmldom/xmldom@0.7.13':
+ resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==}
+ engines: {node: '>=10.0.0'}
+
+ '@xmldom/xmldom@0.8.10':
+ resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
+ engines: {node: '>=10.0.0'}
+
+ '@zxing/text-encoding@0.9.0':
+ resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==}
+
+ JSONStream@1.3.5:
+ resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+ hasBin: true
+
+ abab@2.0.6:
+ resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
+ deprecated: Use your platform's native atob() and btoa() methods instead
+
+ abort-controller@3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
+ engines: {node: '>=6.5'}
+
+ accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+
+ acorn-globals@7.0.1:
+ resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn-walk@8.3.2:
+ resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
+ engines: {node: '>=0.4.0'}
+
+ acorn@8.11.3:
+ resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+
+ aggregate-error@3.1.0:
+ resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
+ engines: {node: '>=8'}
+
+ ajv-formats@2.1.1:
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ 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.13.0:
+ resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==}
+
+ anser@1.4.10:
+ resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==}
+
+ ansi-align@3.0.1:
+ resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
+
+ ansi-escapes@3.2.0:
+ resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==}
+ engines: {node: '>=4'}
+
+ ansi-escapes@4.3.2:
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
+ engines: {node: '>=8'}
+
+ ansi-escapes@5.0.0:
+ resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==}
+ engines: {node: '>=12'}
+
+ ansi-escapes@6.2.1:
+ resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==}
+ engines: {node: '>=14.16'}
+
+ ansi-fragments@0.2.1:
+ resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==}
+
+ ansi-regex@2.1.1:
+ resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
+ engines: {node: '>=0.10.0'}
+
+ ansi-regex@3.0.1:
+ resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
+ engines: {node: '>=4'}
+
+ ansi-regex@4.1.1:
+ resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==}
+ engines: {node: '>=6'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+
+ ansi-styles@2.2.1:
+ resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
+ engines: {node: '>=0.10.0'}
+
+ ansi-styles@3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ ansi-styles@5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+
+ ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+
+ any-base@1.1.0:
+ resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==}
+
+ any-observable@0.3.0:
+ resolution: {integrity: sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ rxjs: '*'
+ zenObservable: '*'
+ peerDependenciesMeta:
+ rxjs:
+ optional: true
+ zenObservable:
+ optional: true
+
+ any-observable@0.5.1:
+ resolution: {integrity: sha512-8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA==}
+ engines: {node: '>=8'}
+ peerDependencies:
+ rxjs: '*'
+ zen-observable: '*'
+ peerDependenciesMeta:
+ rxjs:
+ optional: true
+ zen-observable:
+ optional: true
+
+ any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ app-icon-badge@0.0.15:
+ resolution: {integrity: sha512-k4973RJKXvvoJRYnNFh1mg0NoA6czIHaxzL9557JxsCwSJVaqoZg2lMCgFC+3cOMiKzwQmBK41Ec2kM7RJkefg==}
+ hasBin: true
+
+ appdirsjs@1.2.7:
+ resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==}
+
+ application-config-path@0.1.1:
+ resolution: {integrity: sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==}
+
+ arg@4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+
+ arg@5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+
+ argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ aria-query@5.3.0:
+ resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
+
+ array-buffer-byte-length@1.0.1:
+ resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
+ 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==}
+ engines: {node: '>= 0.4'}
+
+ array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+
+ array.prototype.findlast@1.2.5:
+ resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flat@1.3.2:
+ resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flatmap@1.3.2:
+ resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.toreversed@1.1.2:
+ resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==}
+
+ array.prototype.tosorted@1.1.3:
+ resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
+
+ arraybuffer.prototype.slice@1.0.3:
+ resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
+ engines: {node: '>= 0.4'}
+
+ arrify@1.0.1:
+ resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+ engines: {node: '>=0.10.0'}
+
+ asap@2.0.6:
+ resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+
+ ast-types@0.15.2:
+ resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==}
+ engines: {node: '>=4'}
+
+ astral-regex@1.0.0:
+ resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==}
+ engines: {node: '>=4'}
+
+ async-exit-hook@2.0.1:
+ resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==}
+ engines: {node: '>=0.12.0'}
+
+ async-limiter@1.0.1:
+ resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ at-least-node@1.0.0:
+ resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
+ engines: {node: '>= 4.0.0'}
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ axios@1.7.1:
+ resolution: {integrity: sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==}
+
+ babel-core@7.0.0-bridge.0:
+ resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ babel-jest@29.7.0:
+ resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ '@babel/core': ^7.8.0
+
+ babel-plugin-istanbul@6.1.1:
+ resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
+ engines: {node: '>=8'}
+
+ 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-module-resolver@5.0.2:
+ resolution: {integrity: sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==}
+
+ babel-plugin-polyfill-corejs2@0.4.11:
+ resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-corejs3@0.10.4:
+ resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-regenerator@0.6.2:
+ resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-react-native-web@0.19.11:
+ resolution: {integrity: sha512-0sHf8GgDhsRZxGwlwHHdfL3U8wImFaLw4haEa60U9M3EiO3bg6u3BJ+1vXhwgrevqSq76rMb5j1HJs+dNvMj5g==}
+
+ babel-plugin-replace-ts-export-assignment@0.0.2:
+ resolution: {integrity: sha512-BiTEG2Ro+O1spuheL5nB289y37FFmz0ISE6GjpNCG2JuA/WNcuEHSYw01+vN8quGf208sID3FnZFDwVyqX18YQ==}
+
+ babel-plugin-tester@11.0.4:
+ resolution: {integrity: sha512-cqswtpSPo0e++rZB0l/54EG17LL25l9gLgh59yXfnmNxX+2lZTIOpx2zt4YI9QIClVXc8xf63J6yWwKkzy0jNg==}
+ engines: {node: ^14.20.0 || ^16.16.0 || >=18.5.0}
+ peerDependencies:
+ '@babel/core': '>=7.11.6'
+
+ babel-plugin-transform-flow-enums@0.0.2:
+ resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==}
+
+ babel-preset-current-node-syntax@1.0.1:
+ resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ babel-preset-expo@11.0.6:
+ resolution: {integrity: sha512-jRi9I5/jT+dnIiNJDjDg+I/pV+AlxrIW/DNbdqYoRWPZA/LHDqD6IJnJXLxbuTcQ+llp+0LWcU7f/kC/PgGpkw==}
+
+ babel-preset-jest@29.6.3:
+ resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ better-opn@3.0.2:
+ resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==}
+ engines: {node: '>=12.0.0'}
+
+ big-integer@1.6.52:
+ resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
+ engines: {node: '>=0.6'}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+
+ bmp-js@0.1.0:
+ resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==}
+
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+ boxen@5.1.2:
+ resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
+ engines: {node: '>=10'}
+
+ bplist-creator@0.1.0:
+ resolution: {integrity: sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==}
+
+ bplist-parser@0.3.1:
+ resolution: {integrity: sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==}
+ engines: {node: '>= 5.10.0'}
+
+ bplist-parser@0.3.2:
+ 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@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
+ braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+
+ browserslist@4.23.0:
+ resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
+ 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'}
+
+ bser@2.1.1:
+ resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
+
+ buffer-alloc-unsafe@1.1.0:
+ resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==}
+
+ buffer-alloc@1.2.0:
+ resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==}
+
+ buffer-equal@0.0.1:
+ resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==}
+ engines: {node: '>=0.4.0'}
+
+ buffer-fill@1.0.0:
+ resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+
+ builtin-modules@3.3.0:
+ resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+ engines: {node: '>=6'}
+
+ builtins@1.0.3:
+ resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
+
+ bytes@3.0.0:
+ resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
+ engines: {node: '>= 0.8'}
+
+ cacache@18.0.3:
+ resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ cacheable-lookup@2.0.1:
+ resolution: {integrity: sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==}
+ engines: {node: '>=10'}
+
+ cacheable-request@6.1.0:
+ resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==}
+ engines: {node: '>=8'}
+
+ cacheable-request@7.0.4:
+ resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==}
+ engines: {node: '>=8'}
+
+ call-bind@1.0.7:
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
+ 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'}
+
+ callsites@2.0.0:
+ resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==}
+ engines: {node: '>=4'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ camelcase-css@2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+
+ camelcase-keys@6.2.2:
+ resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
+ engines: {node: '>=8'}
+
+ camelcase@5.3.1:
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+ engines: {node: '>=6'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ caniuse-lite@1.0.30001620:
+ resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==}
+
+ chalk@1.1.3:
+ resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
+ engines: {node: '>=0.10.0'}
+
+ chalk@2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+
+ chalk@3.0.0:
+ resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
+ engines: {node: '>=8'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.3.0:
+ resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ char-regex@1.0.2:
+ resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
+ engines: {node: '>=10'}
+
+ char-regex@2.0.1:
+ resolution: {integrity: sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==}
+ engines: {node: '>=12.20'}
+
+ chardet@0.7.0:
+ resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+
+ charenc@0.0.2:
+ resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ chownr@2.0.0:
+ resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+ engines: {node: '>=10'}
+
+ chrome-launcher@0.15.2:
+ resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==}
+ engines: {node: '>=12.13.0'}
+ hasBin: true
+
+ ci-info@2.0.0:
+ resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
+
+ ci-info@3.9.0:
+ resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ engines: {node: '>=8'}
+
+ cjs-module-lexer@1.3.1:
+ resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==}
+
+ clean-regexp@1.0.0:
+ resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
+ engines: {node: '>=4'}
+
+ clean-stack@2.2.0:
+ resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
+ engines: {node: '>=6'}
+
+ cli-boxes@2.2.1:
+ resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
+ engines: {node: '>=6'}
+
+ cli-cursor@2.1.0:
+ resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==}
+ engines: {node: '>=4'}
+
+ cli-cursor@3.1.0:
+ resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ engines: {node: '>=8'}
+
+ cli-cursor@4.0.0:
+ resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ cli-spinners@2.9.2:
+ resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
+ engines: {node: '>=6'}
+
+ cli-truncate@0.2.1:
+ resolution: {integrity: sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==}
+ engines: {node: '>=0.10.0'}
+
+ cli-truncate@3.1.0:
+ resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ cli-width@2.2.1:
+ resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==}
+
+ cli-width@3.0.0:
+ resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
+ engines: {node: '>= 10'}
+
+ cliui@6.0.0:
+ resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
+
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
+ clone-deep@4.0.1:
+ resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
+ engines: {node: '>=6'}
+
+ clone-response@1.0.3:
+ resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
+
+ clone@1.0.4:
+ resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
+ engines: {node: '>=0.8'}
+
+ clone@2.1.2:
+ resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+
+ co@4.6.0:
+ resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+
+ code-point-at@1.1.0:
+ resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
+ engines: {node: '>=0.10.0'}
+
+ collect-v8-coverage@1.0.2:
+ resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
+
+ color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ color-string@1.9.1:
+ resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
+
+ color@4.2.3:
+ resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
+ engines: {node: '>=12.5.0'}
+
+ colorette@1.4.0:
+ resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==}
+
+ colorette@2.0.20:
+ resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+
+ combined-stream@1.0.8:
+ 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.0.0:
+ resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==}
+ engines: {node: '>=16'}
+
+ commander@11.1.0:
+ resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
+ engines: {node: '>=16'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
+ commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+
+ commander@9.5.0:
+ resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
+ engines: {node: ^12.20.0 || >=14}
+
+ commondir@1.0.1:
+ resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+
+ compare-func@2.0.0:
+ resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
+
+ component-type@1.2.2:
+ resolution: {integrity: sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==}
+
+ compressible@2.0.18:
+ resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
+ engines: {node: '>= 0.6'}
+
+ compression@1.7.4:
+ resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
+ engines: {node: '>= 0.8.0'}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ configstore@5.0.1:
+ resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==}
+ engines: {node: '>=8'}
+
+ connect@3.7.0:
+ resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
+ engines: {node: '>= 0.10.0'}
+
+ conventional-changelog-angular@6.0.0:
+ resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==}
+ engines: {node: '>=14'}
+
+ conventional-changelog-conventionalcommits@6.1.0:
+ resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==}
+ engines: {node: '>=14'}
+
+ conventional-commits-parser@4.0.0:
+ resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ cookie-signature@1.2.1:
+ resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==}
+ engines: {node: '>=6.6.0'}
+
+ cookie@0.6.0:
+ resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
+ engines: {node: '>= 0.6'}
+
+ core-js-compat@3.37.1:
+ resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==}
+
+ core-js@3.37.1:
+ resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==}
+
+ core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ cosmiconfig-typescript-loader@4.4.0:
+ resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==}
+ engines: {node: '>=v14.21.3'}
+ peerDependencies:
+ '@types/node': '*'
+ cosmiconfig: '>=7'
+ ts-node: '>=10'
+ typescript: '>=4'
+
+ cosmiconfig@5.2.1:
+ resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==}
+ engines: {node: '>=4'}
+
+ cosmiconfig@7.1.0:
+ resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
+ engines: {node: '>=10'}
+
+ cosmiconfig@8.3.6:
+ resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ create-jest@29.7.0:
+ resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+
+ create-require@1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+
+ cross-env@7.0.3:
+ resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
+ engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
+ hasBin: true
+
+ cross-fetch@3.1.8:
+ resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==}
+
+ cross-spawn@6.0.5:
+ resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
+ engines: {node: '>=4.8'}
+
+ cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+
+ crypt@0.0.2:
+ resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==}
+
+ crypto-random-string@1.0.0:
+ resolution: {integrity: sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==}
+ engines: {node: '>=4'}
+
+ crypto-random-string@2.0.0:
+ resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
+ engines: {node: '>=8'}
+
+ 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-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==}
+ engines: {node: '>= 6'}
+
+ css.escape@1.5.1:
+ resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ cssom@0.3.8:
+ resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
+
+ cssom@0.5.0:
+ resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
+
+ cssstyle@2.3.0:
+ resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
+ engines: {node: '>=8'}
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ dag-map@1.0.2:
+ resolution: {integrity: sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==}
+
+ dargs@7.0.0:
+ resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
+ engines: {node: '>=8'}
+
+ data-uri-to-buffer@3.0.1:
+ resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
+ engines: {node: '>= 6'}
+
+ data-urls@3.0.2:
+ resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
+ engines: {node: '>=12'}
+
+ data-view-buffer@1.0.1:
+ resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
+ 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-offset@1.0.0:
+ resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
+ engines: {node: '>= 0.4'}
+
+ date-fns@1.30.1:
+ resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==}
+
+ dayjs@1.11.11:
+ resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==}
+
+ debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decamelize-keys@1.1.1:
+ resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
+ engines: {node: '>=0.10.0'}
+
+ decamelize@1.2.0:
+ resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+
+ decimal.js@10.4.3:
+ resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
+
+ decode-uri-component@0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+
+ decompress-response@3.3.0:
+ resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==}
+ engines: {node: '>=4'}
+
+ decompress-response@5.0.0:
+ resolution: {integrity: sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==}
+ engines: {node: '>=10'}
+
+ dedent@1.5.3:
+ resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+
+ deep-equal@2.2.3:
+ resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
+ engines: {node: '>= 0.4'}
+
+ deep-extend@0.6.0:
+ resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
+ engines: {node: '>=4.0.0'}
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
+ default-gateway@4.2.0:
+ resolution: {integrity: sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==}
+ engines: {node: '>=6'}
+
+ defaults@1.0.4:
+ resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+
+ defer-to-connect@1.1.3:
+ resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==}
+
+ defer-to-connect@2.0.1:
+ resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
+ engines: {node: '>=10'}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-lazy-prop@2.0.0:
+ resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
+ engines: {node: '>=8'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ del@6.1.1:
+ resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
+ engines: {node: '>=10'}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ delta-e@0.0.8:
+ resolution: {integrity: sha512-xIggbz7AoZLjwyV+BatfsKhWB1ejeh6vabM4KTJ2e7/d+TS0f7s87aUfkJ7B+MfniM6DD5VOWWlqcKXksp5mIg==}
+
+ denodeify@1.2.1:
+ resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==}
+
+ depd@2.0.0:
+ 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}
+
+ detect-libc@1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ detect-newline@3.1.0:
+ resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
+ engines: {node: '>=8'}
+
+ didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
+ diff-sequences@29.6.3:
+ resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ diff@3.5.0:
+ resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==}
+ engines: {node: '>=0.3.1'}
+
+ diff@4.0.2:
+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+ 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==}
+
+ doctrine@2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+
+ doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+
+ dom-accessibility-api@0.5.16:
+ resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
+
+ dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+
+ dom-walk@0.1.2:
+ resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
+
+ domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+ domexception@4.0.0:
+ resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
+ engines: {node: '>=12'}
+ deprecated: Use your platform's native DOMException instead
+
+ domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+
+ domutils@3.1.0:
+ resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+
+ dot-prop@5.3.0:
+ resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
+ engines: {node: '>=8'}
+
+ dot-prop@6.0.1:
+ resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
+ engines: {node: '>=10'}
+
+ dotenv-expand@11.0.6:
+ resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==}
+ engines: {node: '>=12'}
+
+ dotenv@16.4.5:
+ resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
+ engines: {node: '>=12'}
+
+ duplexer3@0.1.5:
+ resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==}
+
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+ ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
+ electron-to-chromium@1.4.775:
+ resolution: {integrity: sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==}
+
+ elegant-spinner@1.0.1:
+ resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==}
+ engines: {node: '>=0.10.0'}
+
+ emittery@0.13.1:
+ resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
+ engines: {node: '>=12'}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+ encodeurl@1.0.2:
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
+ engines: {node: '>= 0.8'}
+
+ end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ env-editor@0.4.2:
+ resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==}
+ engines: {node: '>=8'}
+
+ envinfo@7.13.0:
+ resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ eol@0.9.1:
+ resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==}
+
+ error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+
+ error-stack-parser@2.1.4:
+ resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
+
+ errorhandler@1.5.1:
+ resolution: {integrity: sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==}
+ engines: {node: '>= 0.8'}
+
+ es-abstract@1.23.3:
+ resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==}
+ engines: {node: '>= 0.4'}
+
+ es-define-property@1.0.0:
+ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-get-iterator@1.1.3:
+ resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
+
+ es-iterator-helpers@1.0.19:
+ resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==}
+ engines: {node: '>= 0.4'}
+
+ es-object-atoms@1.0.0:
+ resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.0.3:
+ resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
+ engines: {node: '>= 0.4'}
+
+ es-shim-unscopables@1.0.2:
+ resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
+
+ es-to-primitive@1.2.1:
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
+ engines: {node: '>= 0.4'}
+
+ escalade@3.1.2:
+ resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
+ engines: {node: '>=6'}
+
+ escape-goat@2.1.1:
+ resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==}
+ engines: {node: '>=8'}
+
+ escape-goat@3.0.0:
+ resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==}
+ engines: {node: '>=10'}
+
+ escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
+ escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ escape-string-regexp@2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ escodegen@2.1.0:
+ resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
+ engines: {node: '>=6.0'}
+ hasBin: true
+
+ eslint-config-prettier@8.10.0:
+ resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-plugin-eslint-comments@3.2.0:
+ resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==}
+ engines: {node: '>=6.5.0'}
+ peerDependencies:
+ eslint: '>=4.19.1'
+
+ eslint-plugin-ft-flow@2.0.3:
+ resolution: {integrity: sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ '@babel/eslint-parser': ^7.12.0
+ eslint: ^8.1.0
+
+ eslint-plugin-i18n-json@4.0.0:
+ resolution: {integrity: sha512-rglbr9f/UaPN/OeiSLVVFlIh4RrXPTzX5qr4tqOdTj1Ryr8xIhUzriDDuyuPWliektO86c/zy1RldmBIOfDNsQ==}
+ engines: {node: '>=6.0.0'}
+ peerDependencies:
+ eslint: '>=4.0.0'
+
+ eslint-plugin-jest@26.9.0:
+ resolution: {integrity: sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ jest: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+ jest:
+ optional: true
+
+ eslint-plugin-prettier@4.2.1:
+ resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ eslint: '>=7.28.0'
+ eslint-config-prettier: '*'
+ prettier: '>=2.0.0'
+ peerDependenciesMeta:
+ eslint-config-prettier:
+ optional: true
+
+ eslint-plugin-react-hooks@4.6.2:
+ resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+
+ eslint-plugin-react-native-globals@0.1.2:
+ resolution: {integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==}
+
+ eslint-plugin-react-native@4.1.0:
+ resolution: {integrity: sha512-QLo7rzTBOl43FvVqDdq5Ql9IoElIuTdjrz9SKAXCvULvBoRZ44JGSkx9z4999ZusCsb4rK3gjS8gOGyeYqZv2Q==}
+ peerDependencies:
+ eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8
+
+ eslint-plugin-react@7.34.1:
+ resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+
+ eslint-plugin-simple-import-sort@10.0.0:
+ resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==}
+ peerDependencies:
+ eslint: '>=5.0.0'
+
+ eslint-plugin-tailwindcss@3.15.2:
+ resolution: {integrity: sha512-+HJfWcyP5B/e8r8qVSaTbf2i4+HsESJJsue66qFHRstV11CNTfdaDD9zkCVA1pm2EplBZ/BSJ3Htfzvb4YTVKw==}
+ engines: {node: '>=12.13.0'}
+ peerDependencies:
+ tailwindcss: ^3.4.0
+
+ eslint-plugin-testing-library@6.2.2:
+ resolution: {integrity: sha512-1E94YOTUDnOjSLyvOwmbVDzQi/WkKm3WVrMXu6SmBr6DN95xTGZmI6HJ/eOkSXh/DlheRsxaPsJvZByDBhWLVQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'}
+ peerDependencies:
+ eslint: ^7.5.0 || ^8.0.0
+
+ eslint-plugin-unicorn@46.0.1:
+ resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==}
+ engines: {node: '>=14.18'}
+ peerDependencies:
+ eslint: '>=8.28.0'
+
+ eslint-plugin-unused-imports@2.0.0:
+ resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^5.0.0
+ eslint: ^8.0.0
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+
+ eslint-rule-composer@0.3.0:
+ resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
+ engines: {node: '>=4.0.0'}
+
+ eslint-scope@5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+
+ eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@2.1.0:
+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
+ engines: {node: '>=10'}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint@8.57.0:
+ resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
+
+ 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'}
+ hasBin: true
+
+ esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ 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'}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ event-target-shim@5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
+ engines: {node: '>=6'}
+
+ eventemitter3@5.0.1:
+ resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+
+ exec-async@2.2.0:
+ resolution: {integrity: sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==}
+
+ execa@1.0.0:
+ resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
+ engines: {node: '>=6'}
+
+ execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+
+ execa@7.2.0:
+ resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
+ engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
+
+ exif-parser@0.1.12:
+ resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==}
+
+ exit@0.1.2:
+ resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
+ engines: {node: '>= 0.8.0'}
+
+ expect@29.7.0:
+ resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ expo-asset@10.0.6:
+ resolution: {integrity: sha512-waP73/ccn/HZNNcGM4/s3X3icKjSSbEQ9mwc6tX34oYNg+XE5WdwOuZ9wgVVFrU7wZMitq22lQXd2/O0db8bxg==}
+ peerDependencies:
+ expo: '*'
+
+ expo-build-properties@0.12.1:
+ resolution: {integrity: sha512-gn8sngNmOHkbJ5Kt3mKcKg+Wl6+d0m70gg9OllRIVeDkvZqCObKfnSM4tAQWiJhm62sHnL8udfYnuArnKhQd/g==}
+ peerDependencies:
+ expo: '*'
+
+ expo-constants@16.0.1:
+ resolution: {integrity: sha512-s6aTHtglp926EsugWtxN7KnpSsE9FCEjb7CgEjQQ78Gpu4btj4wB+IXot2tlqNwqv+x7xFe5veoPGfJDGF/kVg==}
+ peerDependencies:
+ expo: '*'
+
+ expo-dev-client@4.0.14:
+ resolution: {integrity: sha512-s5/FZZdgvoxBGA35QgNet61Dc1jh+8u375uaYkH9pUvfKFXURd9PDDAWvtAnOo+QYg9WwgiHPo7dKeCdN6pOPA==}
+ peerDependencies:
+ expo: '*'
+
+ expo-dev-launcher@4.0.15:
+ resolution: {integrity: sha512-avl4NTwFwalZjojFAXvINPgxAlcAxfdwy9PSsAq5KAkl9Vv+Vr8O2gI3nfrPwtqAA0iOIES/EKN0YFCiQuuvvg==}
+ peerDependencies:
+ expo: '*'
+
+ expo-dev-menu-interface@1.8.3:
+ resolution: {integrity: sha512-QM0LRozeFT5Ek0N7XpV93M+HMdEKRLEOXn0aW5M3uoUlnqC1+PLtF3HMy3k3hMKTTE/kJ1y1Z7akH07T0lunCQ==}
+ peerDependencies:
+ expo: '*'
+
+ expo-dev-menu@5.0.14:
+ resolution: {integrity: sha512-zPXBMCyjptn4Aw7D2Z8FEqndED33g1ryChN0nyTA1zHzckDNwnGuLdTWTsNFrqmFqyqjRJgG5xFVJmnsDO8WyQ==}
+ peerDependencies:
+ expo: '*'
+
+ expo-file-system@17.0.1:
+ resolution: {integrity: sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==}
+ peerDependencies:
+ expo: '*'
+
+ expo-font@12.0.5:
+ resolution: {integrity: sha512-h/VkN4jlHYDJ6T6pPgOYTVoDEfBY0CTKQe4pxnPDGQiE6H+DFdDgk+qWVABGpRMH0+zXoHB+AEi3OoQjXIynFA==}
+ peerDependencies:
+ expo: '*'
+
+ expo-image@1.12.9:
+ resolution: {integrity: sha512-WnC3Z3vsOTJLWE9FGB0a0GANmkpfBCqTf9bSLXXl50hEYiRcfwrAYZ/87oswAhggMGbJqOuLKZxt5rtuij1xcQ==}
+ peerDependencies:
+ expo: '*'
+
+ expo-json-utils@0.13.1:
+ resolution: {integrity: sha512-mlfaSArGVb+oJmUcR22jEONlgPp0wj4iNIHfQ2je9Q8WTOqMc0Ws9tUciz3JdJnhffdHqo/k8fpvf0IRmN5HPA==}
+
+ expo-keep-awake@13.0.2:
+ resolution: {integrity: sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==}
+ peerDependencies:
+ expo: '*'
+
+ expo-linking@6.3.1:
+ resolution: {integrity: sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==}
+
+ expo-localization@15.0.3:
+ resolution: {integrity: sha512-IfcmlKuKRlowR9qIzL0e+nGHBeNoF7l2GQaOJstc7HZiPjNJ4J1R4D53ZNf483dt7JSkTRJBihdTadOtOEjRdg==}
+ peerDependencies:
+ expo: '*'
+
+ expo-manifests@0.14.3:
+ resolution: {integrity: sha512-L3b5/qocBPiQjbW0cpOHfnqdKZbTJS7sA3mgeDJT+mWga/xYsdpma1EfNmsuvrOzjLGjStr1k1fceM9Bl49aqQ==}
+ peerDependencies:
+ expo: '*'
+
+ expo-modules-autolinking@1.11.1:
+ resolution: {integrity: sha512-2dy3lTz76adOl7QUvbreMCrXyzUiF8lygI7iFJLjgIQIVH+43KnFWE5zBumpPbkiaq0f0uaFpN9U0RGQbnKiMw==}
+ hasBin: true
+
+ expo-modules-core@1.12.11:
+ resolution: {integrity: sha512-CF5G6hZo/6uIUz6tj4dNRlvE5L4lakYukXPqz5ZHQ+6fLk1NQVZbRdpHjMkxO/QSBQcKUzG/ngeytpoJus7poQ==}
+
+ expo-router@3.5.14:
+ resolution: {integrity: sha512-RVsyJLosZSq89ebA5qfPToRcFZJoTTb+6nwPHk6iESD6KON/Q7ZODt5fvCwXkY86tLNEMGo160QvBPfBZmglaA==}
+ peerDependencies:
+ '@react-navigation/drawer': ^6.5.8
+ '@testing-library/jest-native': '*'
+ expo: '*'
+ expo-constants: '*'
+ expo-linking: '*'
+ expo-status-bar: '*'
+ react-native-reanimated: '*'
+ react-native-safe-area-context: '*'
+ react-native-screens: '*'
+ peerDependenciesMeta:
+ '@react-navigation/drawer':
+ optional: true
+ '@testing-library/jest-native':
+ optional: true
+ react-native-reanimated:
+ optional: true
+
+ expo-splash-screen@0.27.4:
+ resolution: {integrity: sha512-JwepK1FjbwiOK2nwIFanfzj9s7UXYnpTwLX8A9v7Ec3K4V28yu8HooSc9X60cftBw9UZrs8Gwj4PgTpQabBS9A==}
+ peerDependencies:
+ expo: '*'
+
+ expo-status-bar@1.12.1:
+ resolution: {integrity: sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==}
+
+ expo-system-ui@3.0.4:
+ resolution: {integrity: sha512-v1n6hBO30k9qw6RE8/au4yNoovs71ExGuXizJUlR5KSo4Ruogpb+0/2q3uRZMDIYWWCANvms8L0UOh6fQJ5TXg==}
+ peerDependencies:
+ expo: '*'
+
+ expo-updates-interface@0.16.2:
+ resolution: {integrity: sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A==}
+ peerDependencies:
+ expo: '*'
+
+ expo@51.0.8:
+ resolution: {integrity: sha512-bdTOiMb1f3PChtuqEZ9czUm2gMTmS0r1+H+Pkm2O3PsuLnOgxfIBzL6S37+J4cUocLBaENrmx9SOGKpzhBqXpg==}
+ hasBin: true
+
+ external-editor@3.1.0:
+ resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+ engines: {node: '>=4'}
+
+ 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'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fast-loops@1.1.3:
+ resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
+
+ fast-xml-parser@4.4.0:
+ resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==}
+ hasBin: true
+
+ fastq@1.17.1:
+ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+
+ fb-watchman@2.0.2:
+ resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+
+ fbemitter@3.0.0:
+ resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==}
+
+ fbjs-css-vars@1.0.2:
+ resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==}
+
+ fbjs@3.0.5:
+ resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==}
+
+ fetch-retry@4.1.1:
+ resolution: {integrity: sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==}
+
+ figures@1.7.0:
+ resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==}
+ engines: {node: '>=0.10.0'}
+
+ figures@2.0.0:
+ resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==}
+ engines: {node: '>=4'}
+
+ figures@3.2.0:
+ resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
+ engines: {node: '>=8'}
+
+ file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ file-type@16.5.4:
+ resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==}
+ engines: {node: '>=10'}
+
+ fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+
+ filter-obj@1.1.0:
+ resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
+ engines: {node: '>=0.10.0'}
+
+ finalhandler@1.1.2:
+ resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
+ engines: {node: '>= 0.8'}
+
+ find-babel-config@2.1.1:
+ resolution: {integrity: sha512-5Ji+EAysHGe1OipH7GN4qDjok5Z1uw5KAwDCbicU/4wyTZY7CqOCzcWbG7J5ad9mazq67k89fXlbc1MuIfl9uA==}
+
+ find-cache-dir@2.1.0:
+ resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==}
+ engines: {node: '>=6'}
+
+ find-up@3.0.0:
+ resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
+ engines: {node: '>=6'}
+
+ find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ find-yarn-workspace-root@2.0.0:
+ resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==}
+
+ flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ flatted@3.3.1:
+ resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
+
+ flow-enums-runtime@0.0.6:
+ resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==}
+
+ flow-parser@0.236.0:
+ resolution: {integrity: sha512-0OEk9Gr+Yj7wjDW2KgaNYUypKau71jAfFyeLQF5iVtxqc6uJHag/MT7pmaEApf4qM7u86DkBcd4ualddYMfbLw==}
+ engines: {node: '>=0.4.0'}
+
+ follow-redirects@1.15.6:
+ resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ 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.1.1:
+ resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
+ engines: {node: '>=14'}
+
+ form-data@3.0.1:
+ resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==}
+ engines: {node: '>= 6'}
+
+ form-data@4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+
+ framer-motion@6.5.1:
+ resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==}
+ peerDependencies:
+ react: '>=16.8 || ^17.0.0 || ^18.0.0'
+ react-dom: '>=16.8 || ^17.0.0 || ^18.0.0'
+
+ framesync@6.0.1:
+ resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==}
+
+ freeport-async@2.0.0:
+ resolution: {integrity: sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==}
+ engines: {node: '>=8'}
+
+ fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+
+ fs-extra@11.2.0:
+ resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
+ engines: {node: '>=14.14'}
+
+ fs-extra@8.1.0:
+ resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
+ engines: {node: '>=6 <7 || >=8'}
+
+ fs-extra@9.0.0:
+ resolution: {integrity: sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==}
+ engines: {node: '>=10'}
+
+ fs-extra@9.1.0:
+ resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
+ engines: {node: '>=10'}
+
+ fs-minipass@2.1.0:
+ resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+ engines: {node: '>= 8'}
+
+ fs-minipass@3.0.3:
+ resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ function.prototype.name@1.1.6:
+ resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ get-intrinsic@1.2.4:
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
+ engines: {node: '>= 0.4'}
+
+ 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-stream@4.1.0:
+ resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
+ engines: {node: '>=6'}
+
+ get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+
+ get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+
+ get-symbol-description@1.0.2:
+ resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
+ engines: {node: '>= 0.4'}
+
+ getenv@1.0.0:
+ resolution: {integrity: sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==}
+ engines: {node: '>=6'}
+
+ gifwrap@0.10.1:
+ resolution: {integrity: sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw==}
+
+ git-raw-commits@2.0.11:
+ resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ github-url-from-git@1.5.0:
+ resolution: {integrity: sha512-WWOec4aRI7YAykQ9+BHmzjyNlkfJFG8QLXnDTsLz/kZefq7qkzdfo4p6fkYYMIq1aj+gZcQs/1HQhQh3DPPxlQ==}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob@10.3.15:
+ resolution: {integrity: sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==}
+ engines: {node: '>=16 || 14 >=14.18'}
+ hasBin: true
+
+ glob@6.0.4:
+ resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==}
+
+ glob@7.1.6:
+ resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
+
+ glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+
+ glob@9.3.5:
+ resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ global-dirs@0.1.1:
+ resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}
+ engines: {node: '>=4'}
+
+ global-dirs@2.1.0:
+ resolution: {integrity: sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==}
+ engines: {node: '>=8'}
+
+ global-dirs@3.0.1:
+ resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
+ engines: {node: '>=10'}
+
+ 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@13.24.0:
+ resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
+ engines: {node: '>=8'}
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
+
+ globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+
+ gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+
+ got@10.7.0:
+ resolution: {integrity: sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==}
+ engines: {node: '>=10'}
+
+ got@9.6.0:
+ resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==}
+ engines: {node: '>=8.6'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ graphql-tag@2.12.6:
+ resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
+
+ graphql@15.8.0:
+ resolution: {integrity: sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==}
+ engines: {node: '>= 10.x'}
+
+ hard-rejection@2.1.0:
+ resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
+ engines: {node: '>=6'}
+
+ 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-flag@3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ 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==}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ has-yarn@2.1.0:
+ resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==}
+ engines: {node: '>=8'}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ hermes-estree@0.19.1:
+ resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==}
+
+ hermes-estree@0.20.1:
+ resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==}
+
+ hermes-parser@0.19.1:
+ resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==}
+
+ hermes-parser@0.20.1:
+ resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==}
+
+ hermes-profile-transformer@0.0.6:
+ resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==}
+ engines: {node: '>=8'}
+
+ hey-listen@1.0.8:
+ resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
+
+ hoist-non-react-statics@3.3.2:
+ resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+
+ hosted-git-info@2.8.9:
+ resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+
+ hosted-git-info@3.0.8:
+ resolution: {integrity: sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==}
+ engines: {node: '>=10'}
+
+ hosted-git-info@4.1.0:
+ resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
+ engines: {node: '>=10'}
+
+ html-encoding-sniffer@3.0.0:
+ resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
+ engines: {node: '>=12'}
+
+ html-escaper@2.0.2:
+ resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
+
+ html-parse-stringify@3.0.1:
+ resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==}
+
+ http-cache-semantics@4.1.1:
+ resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
+
+ http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+
+ http-proxy-agent@5.0.0:
+ resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
+ engines: {node: '>= 6'}
+
+ https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+
+ human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+
+ human-signals@4.3.1:
+ resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
+ engines: {node: '>=14.18.0'}
+
+ husky@8.0.3:
+ resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ hyphenate-style-name@1.0.5:
+ resolution: {integrity: sha512-fedL7PRwmeVkgyhu9hLeTBaI6wcGk7JGJswdaRsa5aUbkXI1kr1xZwTPBtaYPpwf56878iDek6VbVnuWMebJmw==}
+
+ i18next@22.5.1:
+ resolution: {integrity: sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA==}
+
+ iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+
+ iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ ignore-walk@3.0.4:
+ resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==}
+
+ ignore@5.3.1:
+ resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
+ engines: {node: '>= 4'}
+
+ image-q@4.0.0:
+ resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==}
+
+ image-size@1.1.1:
+ resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==}
+ 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==}
+ engines: {node: '>=6'}
+
+ import-lazy@2.1.0:
+ resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==}
+ engines: {node: '>=4'}
+
+ import-local@3.1.0:
+ resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ indent-string@3.2.0:
+ resolution: {integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==}
+ engines: {node: '>=4'}
+
+ indent-string@4.0.0:
+ resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+ engines: {node: '>=8'}
+
+ inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ ini@1.3.7:
+ resolution: {integrity: sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==}
+
+ ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
+ ini@2.0.0:
+ resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
+ engines: {node: '>=10'}
+
+ inline-style-prefixer@6.0.4:
+ resolution: {integrity: sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==}
+
+ inquirer-autosubmit-prompt@0.2.0:
+ resolution: {integrity: sha512-mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q==}
+
+ inquirer@6.5.2:
+ resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==}
+ engines: {node: '>=6.0.0'}
+
+ inquirer@7.3.3:
+ resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==}
+ engines: {node: '>=8.0.0'}
+
+ internal-ip@4.3.0:
+ resolution: {integrity: sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==}
+ engines: {node: '>=6'}
+
+ internal-slot@1.0.7:
+ resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
+ engines: {node: '>= 0.4'}
+
+ invariant@2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+
+ ip-regex@2.1.0:
+ resolution: {integrity: sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==}
+ engines: {node: '>=4'}
+
+ ipaddr.js@1.9.1:
+ resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
+ engines: {node: '>= 0.10'}
+
+ irregular-plurals@1.4.0:
+ resolution: {integrity: sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q==}
+ engines: {node: '>=0.10.0'}
+
+ is-arguments@1.1.1:
+ resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
+ engines: {node: '>= 0.4'}
+
+ is-array-buffer@3.0.4:
+ resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
+ 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-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==}
+ engines: {node: '>= 0.4'}
+
+ is-buffer@1.1.6:
+ resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+
+ is-builtin-module@3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
+ engines: {node: '>=6'}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ is-ci@2.0.0:
+ resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==}
+ hasBin: true
+
+ is-core-module@2.13.1:
+ resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
+
+ is-data-view@1.0.1:
+ resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.0.5:
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ 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'}
+ hasBin: true
+
+ is-extglob@1.0.0:
+ resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==}
+ engines: {node: '>=0.10.0'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-finalizationregistry@1.0.2:
+ resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
+
+ is-fullwidth-code-point@1.0.0:
+ resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==}
+ engines: {node: '>=0.10.0'}
+
+ is-fullwidth-code-point@2.0.0:
+ resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==}
+ engines: {node: '>=4'}
+
+ is-fullwidth-code-point@3.0.0:
+ 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-function@1.0.2:
+ resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==}
+
+ is-generator-fn@2.1.0:
+ 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@2.0.1:
+ resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==}
+ engines: {node: '>=0.10.0'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-installed-globally@0.3.2:
+ resolution: {integrity: sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==}
+ engines: {node: '>=8'}
+
+ is-installed-globally@0.4.0:
+ resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
+ engines: {node: '>=10'}
+
+ is-interactive@1.0.0:
+ resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
+ engines: {node: '>=8'}
+
+ is-invalid-path@0.1.0:
+ resolution: {integrity: sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==}
+ engines: {node: '>=0.10.0'}
+
+ 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@5.0.0:
+ resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==}
+ engines: {node: '>=10'}
+
+ is-number-object@1.0.7:
+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
+ engines: {node: '>= 0.4'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-obj@2.0.0:
+ resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
+ engines: {node: '>=8'}
+
+ is-observable@1.1.0:
+ resolution: {integrity: sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==}
+ engines: {node: '>=4'}
+
+ is-path-cwd@2.2.0:
+ resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
+ engines: {node: '>=6'}
+
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
+
+ is-plain-object@2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+
+ is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+
+ is-promise@2.2.2:
+ resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
+
+ is-regex@1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+
+ is-scoped@2.1.0:
+ resolution: {integrity: sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==}
+ engines: {node: '>=8'}
+
+ 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-stream@1.1.0:
+ resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ is-stream@3.0.0:
+ 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==}
+ engines: {node: '>= 0.4'}
+
+ is-symbol@1.0.4:
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
+ engines: {node: '>= 0.4'}
+
+ is-text-path@1.0.1:
+ resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
+ engines: {node: '>=0.10.0'}
+
+ is-typed-array@1.1.13:
+ resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
+ engines: {node: '>= 0.4'}
+
+ is-typedarray@1.0.0:
+ resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+
+ is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
+ is-url-superb@4.0.0:
+ resolution: {integrity: sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==}
+ engines: {node: '>=10'}
+
+ is-valid-path@0.1.1:
+ resolution: {integrity: sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==}
+ engines: {node: '>=0.10.0'}
+
+ 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-weakset@2.0.3:
+ resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
+ engines: {node: '>= 0.4'}
+
+ is-wsl@1.1.0:
+ resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==}
+ engines: {node: '>=4'}
+
+ is-wsl@2.2.0:
+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
+ engines: {node: '>=8'}
+
+ is-yarn-global@0.3.0:
+ resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==}
+
+ isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isobject@3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+
+ isomorphic-fetch@3.0.0:
+ resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==}
+
+ issue-regex@3.1.0:
+ resolution: {integrity: sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA==}
+ engines: {node: '>=10'}
+
+ istanbul-lib-coverage@3.2.2:
+ resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
+ engines: {node: '>=8'}
+
+ istanbul-lib-instrument@5.2.1:
+ resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
+ engines: {node: '>=8'}
+
+ istanbul-lib-instrument@6.0.2:
+ resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==}
+ engines: {node: '>=10'}
+
+ istanbul-lib-report@3.0.1:
+ resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
+ engines: {node: '>=10'}
+
+ istanbul-lib-source-maps@4.0.1:
+ resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
+ engines: {node: '>=10'}
+
+ istanbul-reports@3.1.7:
+ resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
+ engines: {node: '>=8'}
+
+ iterator.prototype@1.1.2:
+ resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
+
+ jackspeak@2.3.6:
+ resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
+ engines: {node: '>=14'}
+
+ jest-changed-files@29.7.0:
+ resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-circus@29.7.0:
+ resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-cli@29.7.0:
+ resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ jest-config@29.7.0:
+ resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ '@types/node': '*'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ ts-node:
+ optional: true
+
+ jest-diff@22.4.3:
+ resolution: {integrity: sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==}
+
+ jest-diff@29.7.0:
+ resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-docblock@29.7.0:
+ resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-each@29.7.0:
+ resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-environment-jsdom@29.7.0:
+ resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ canvas: ^2.5.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@51.0.2:
+ resolution: {integrity: sha512-ijIcjEASh2uORA3DBubOiIJTrPZXp8J3FedaEdnZPT09FkyTH8tZXp/ZRv37LKUomGA5XEHDYR2FY3UMfdIa7g==}
+ hasBin: true
+
+ jest-get-type@22.4.3:
+ resolution: {integrity: sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==}
+
+ jest-get-type@29.6.3:
+ resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-haste-map@29.7.0:
+ resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-junit@16.0.0:
+ resolution: {integrity: sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==}
+ engines: {node: '>=10.12.0'}
+
+ jest-leak-detector@29.7.0:
+ resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-matcher-utils@29.7.0:
+ resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.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-mock@29.7.0:
+ resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-pnp-resolver@1.2.3:
+ resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ jest-resolve: '*'
+ peerDependenciesMeta:
+ jest-resolve:
+ optional: true
+
+ jest-regex-util@29.6.3:
+ resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.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}
+
+ jest-resolve@29.7.0:
+ resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-runner@29.7.0:
+ resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-runtime@29.7.0:
+ resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-snapshot@29.7.0:
+ resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ jest-util@29.7.0:
+ resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.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}
+
+ jest-watch-select-projects@2.0.0:
+ resolution: {integrity: sha512-j00nW4dXc2NiCW6znXgFLF9g8PJ0zP25cpQ1xRro/HU2GBfZQFZD0SoXnAlaoKkIY4MlfTMkKGbNXFpvCdjl1w==}
+
+ jest-watch-typeahead@2.2.1:
+ resolution: {integrity: sha512-jYpYmUnTzysmVnwq49TAxlmtOAwp8QIqvZyoofQFn8fiWhEDZj33ZXzg3JA4nGnzWFm1hbWf3ADpteUokvXgFA==}
+ engines: {node: ^14.17.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ jest: ^27.0.0 || ^28.0.0 || ^29.0.0
+
+ jest-watcher@29.7.0:
+ resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.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@29.7.0:
+ resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+
+ jimp-compact@0.16.1:
+ resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==}
+
+ jimp@0.22.12:
+ resolution: {integrity: sha512-R5jZaYDnfkxKJy1dwLpj/7cvyjxiclxU3F4TrI/J4j2rS0niq6YDUMoPn5hs8GDpO+OZGo7Ky057CRtWesyhfg==}
+
+ jiti@1.21.0:
+ resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
+ hasBin: true
+
+ joi@17.13.1:
+ resolution: {integrity: sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==}
+
+ join-component@1.1.0:
+ resolution: {integrity: sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==}
+
+ jpeg-js@0.4.4:
+ resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ jsc-android@250231.0.0:
+ resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==}
+
+ jsc-safe-url@0.2.4:
+ resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==}
+
+ jscodeshift@0.14.0:
+ resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==}
+ hasBin: true
+ peerDependencies:
+ '@babel/preset-env': ^7.1.6
+
+ jsdom@20.0.3:
+ resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
+ jsesc@0.5.0:
+ resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
+ hasBin: true
+
+ jsesc@2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ jsesc@3.0.2:
+ resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json-buffer@3.0.0:
+ resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==}
+
+ 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==}
+
+ json-schema-deref-sync@0.13.0:
+ resolution: {integrity: sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==}
+ engines: {node: '>=6.0.0'}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsonfile@4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+
+ jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+
+ 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@3.1.0:
+ resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+
+ kleur@3.0.3:
+ resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
+ engines: {node: '>=6'}
+
+ latest-version@5.1.0:
+ resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==}
+ engines: {node: '>=8'}
+
+ leven@3.1.0:
+ resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
+ engines: {node: '>=6'}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ lighthouse-logger@1.4.2:
+ resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==}
+
+ lightningcss-darwin-arm64@1.19.0:
+ resolution: {integrity: sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-arm64@1.22.0:
+ resolution: {integrity: sha512-aH2be3nNny+It5YEVm8tBSSdRlBVWQV8m2oJ7dESiYRzyY/E/bQUe2xlw5caaMuhlM9aoTMtOH25yzMhir0qPg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.19.0:
+ resolution: {integrity: sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.22.0:
+ resolution: {integrity: sha512-9KHRFA0Y6mNxRHeoQMp0YaI0R0O2kOgUlYPRjuasU4d+pI8NRhVn9bt0yX9VPs5ibWX1RbDViSPtGJvYYrfVAQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.22.0:
+ resolution: {integrity: sha512-xaYL3xperGwD85rQioDb52ozF3NAJb+9wrge3jD9lxGffplu0Mn35rXMptB8Uc2N9Mw1i3Bvl7+z1evlqVl7ww==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.19.0:
+ resolution: {integrity: sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm-gnueabihf@1.22.0:
+ resolution: {integrity: sha512-epQGvXIjOuxrZpMpMnRjK54ZqzhiHhCPLtHvw2fb6NeK2kK9YtF0wqmeTBiQ1AkbWfnnXGTstYaFNiadNK+StQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.19.0:
+ resolution: {integrity: sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.22.0:
+ resolution: {integrity: sha512-AArGtKSY4DGTA8xP8SDyNyKtpsUl1Rzq6FW4JomeyUQ4nBrR71uPChksTpj3gmWuGhZeRKLeCUI1DBid/zhChg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-musl@1.19.0:
+ resolution: {integrity: sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-musl@1.22.0:
+ resolution: {integrity: sha512-RRraNgP8hnBPhInTTUdlFm+z16C/ghbxBG51Sw00hd7HUyKmEUKRozyc5od+/N6pOrX/bIh5vIbtMXIxsos0lg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-x64-gnu@1.19.0:
+ resolution: {integrity: sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-gnu@1.22.0:
+ resolution: {integrity: sha512-grdrhYGRi2KrR+bsXJVI0myRADqyA7ekprGxiuK5QRNkv7kj3Yq1fERDNyzZvjisHwKUi29sYMClscbtl+/Zpw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-musl@1.19.0:
+ resolution: {integrity: sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-musl@1.22.0:
+ resolution: {integrity: sha512-t5f90X+iQUtIyR56oXIHMBUyQFX/zwmPt72E6Dane3P8KNGlkijTg2I75XVQS860gNoEFzV7Mm5ArRRA7u5CAQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-win32-x64-msvc@1.19.0:
+ resolution: {integrity: sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.22.0:
+ resolution: {integrity: sha512-64HTDtOOZE9PUCZJiZZQpyqXBbdby1lnztBccnqh+NtbKxjnGzP92R2ngcgeuqMPecMNqNWxgoWgTGpC+yN5Sw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.19.0:
+ resolution: {integrity: sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==}
+ engines: {node: '>= 12.0.0'}
+
+ lightningcss@1.22.0:
+ resolution: {integrity: sha512-+z0qvwRVzs4XGRXelnWRNwqsXUx8k3bSkbP8vD42kYKSk3z9OM2P3e/gagT7ei/gwh8DTS80LZOFZV6lm8Z8Fg==}
+ engines: {node: '>= 12.0.0'}
+
+ lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+
+ lilconfig@3.1.1:
+ resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
+ engines: {node: '>=14'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ lint-staged@13.3.0:
+ resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+ hasBin: true
+
+ listr-input@0.2.1:
+ resolution: {integrity: sha512-oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg==}
+ engines: {node: '>=6'}
+
+ listr-silent-renderer@1.1.1:
+ resolution: {integrity: sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==}
+ engines: {node: '>=4'}
+
+ listr-update-renderer@0.5.0:
+ resolution: {integrity: sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ listr: ^0.14.2
+
+ listr-verbose-renderer@0.5.0:
+ resolution: {integrity: sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==}
+ engines: {node: '>=4'}
+
+ listr2@6.6.1:
+ resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ enquirer: '>= 2.3.0 < 3'
+ peerDependenciesMeta:
+ enquirer:
+ optional: true
+
+ listr@0.14.3:
+ resolution: {integrity: sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==}
+ engines: {node: '>=6'}
+
+ load-bmfont@1.4.1:
+ resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==}
+
+ locate-path@3.0.0:
+ resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
+ engines: {node: '>=6'}
+
+ locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ lodash.get@4.4.2:
+ resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
+
+ lodash.isequal@4.5.0:
+ resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
+
+ lodash.isfunction@3.0.9:
+ resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==}
+
+ lodash.isplainobject@4.0.6:
+ resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+
+ lodash.kebabcase@4.1.1:
+ resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
+
+ lodash.memoize@4.1.2:
+ resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash.mergewith@4.6.2:
+ resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==}
+
+ lodash.set@4.3.2:
+ resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==}
+
+ lodash.snakecase@4.1.1:
+ resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==}
+
+ lodash.startcase@4.4.0:
+ resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
+
+ lodash.throttle@4.1.1:
+ resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
+
+ lodash.uniq@4.5.0:
+ resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+
+ lodash.upperfirst@4.3.1:
+ resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==}
+
+ lodash.zip@4.2.0:
+ resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==}
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ log-symbols@1.0.2:
+ resolution: {integrity: sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==}
+ engines: {node: '>=0.10.0'}
+
+ log-symbols@2.2.0:
+ resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==}
+ engines: {node: '>=4'}
+
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
+ log-update@2.3.0:
+ resolution: {integrity: sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==}
+ engines: {node: '>=4'}
+
+ log-update@5.0.1:
+ resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ logkitty@0.7.1:
+ resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==}
+ hasBin: true
+
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+
+ lowercase-keys@1.0.1:
+ resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
+ engines: {node: '>=0.10.0'}
+
+ lowercase-keys@2.0.0:
+ resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
+ engines: {node: '>=8'}
+
+ lru-cache@10.2.2:
+ resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==}
+ engines: {node: 14 || >=16.14}
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+
+ make-dir@2.1.0:
+ resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
+ engines: {node: '>=6'}
+
+ make-dir@3.1.0:
+ resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
+ engines: {node: '>=8'}
+
+ make-dir@4.0.0:
+ resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
+ engines: {node: '>=10'}
+
+ make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
+ makeerror@1.0.12:
+ resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+
+ map-age-cleaner@0.1.3:
+ resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
+ engines: {node: '>=6'}
+
+ map-obj@1.0.1:
+ resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
+ engines: {node: '>=0.10.0'}
+
+ map-obj@4.3.0:
+ resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+ engines: {node: '>=8'}
+
+ marky@1.2.5:
+ resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==}
+
+ md5-file@3.2.3:
+ resolution: {integrity: sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ md5@2.2.1:
+ resolution: {integrity: sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==}
+
+ md5@2.3.0:
+ resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
+
+ md5hex@1.0.0:
+ resolution: {integrity: sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==}
+
+ mdn-data@2.0.14:
+ resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
+
+ memoize-one@5.2.1:
+ resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
+
+ memoize-one@6.0.0:
+ resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+
+ memory-cache@0.2.0:
+ resolution: {integrity: sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==}
+
+ meow@8.1.2:
+ resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
+ engines: {node: '>=10'}
+
+ merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ metro-babel-register@0.73.10:
+ resolution: {integrity: sha512-ozZQhlV7g4aIoNV+P15KkxoG6bgL9loKfmVbu6BTCXgOUe5Vh10Fr014khoKJ2ztQ4aLvacXud/pefibmR1PXg==}
+
+ metro-babel-transformer@0.80.9:
+ resolution: {integrity: sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ==}
+ engines: {node: '>=18'}
+
+ metro-cache-key@0.80.9:
+ resolution: {integrity: sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg==}
+ engines: {node: '>=18'}
+
+ metro-cache@0.80.9:
+ resolution: {integrity: sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w==}
+ engines: {node: '>=18'}
+
+ metro-config@0.80.9:
+ resolution: {integrity: sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg==}
+ engines: {node: '>=18'}
+
+ metro-core@0.80.9:
+ resolution: {integrity: sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg==}
+ engines: {node: '>=18'}
+
+ metro-file-map@0.80.9:
+ resolution: {integrity: sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ==}
+ engines: {node: '>=18'}
+
+ metro-minify-terser@0.80.9:
+ resolution: {integrity: sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A==}
+ engines: {node: '>=18'}
+
+ metro-resolver@0.80.9:
+ resolution: {integrity: sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w==}
+ engines: {node: '>=18'}
+
+ metro-runtime@0.80.9:
+ resolution: {integrity: sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg==}
+ engines: {node: '>=18'}
+
+ metro-source-map@0.80.9:
+ resolution: {integrity: sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw==}
+ engines: {node: '>=18'}
+
+ metro-symbolicate@0.80.9:
+ resolution: {integrity: sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ metro-transform-plugins@0.80.9:
+ resolution: {integrity: sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg==}
+ engines: {node: '>=18'}
+
+ metro-transform-worker@0.80.9:
+ resolution: {integrity: sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ==}
+ engines: {node: '>=18'}
+
+ metro@0.80.9:
+ resolution: {integrity: sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ mime@2.6.0:
+ resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
+ engines: {node: '>=4.0.0'}
+ hasBin: true
+
+ mimic-fn@1.2.0:
+ resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
+ engines: {node: '>=4'}
+
+ mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ mimic-fn@3.1.0:
+ resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
+ engines: {node: '>=8'}
+
+ mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+
+ mimic-response@1.0.1:
+ resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
+ engines: {node: '>=4'}
+
+ mimic-response@2.1.0:
+ resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
+ engines: {node: '>=8'}
+
+ min-document@2.19.0:
+ resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==}
+
+ min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@8.0.4:
+ resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimatch@9.0.4:
+ resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimist-options@4.1.0:
+ resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
+ engines: {node: '>= 6'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ minipass-collect@2.0.1:
+ resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minipass-flush@1.0.5:
+ resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
+ engines: {node: '>= 8'}
+
+ minipass-pipeline@1.2.4:
+ resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
+ engines: {node: '>=8'}
+
+ minipass@3.3.6:
+ resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+ engines: {node: '>=8'}
+
+ minipass@4.2.8:
+ resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==}
+ engines: {node: '>=8'}
+
+ minipass@5.0.0:
+ resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
+ engines: {node: '>=8'}
+
+ minipass@7.1.1:
+ resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minizlib@2.1.2:
+ resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+ engines: {node: '>= 8'}
+
+ 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
+
+ moti@0.28.1:
+ resolution: {integrity: sha512-DRlb/3k5GMgb2HIgPsjsKS7k2TAIcCTSaV4KFb4/J+WqJtPgywTz0O2byPsxNqUHImvDkf04fKXW5PcpXvC9zA==}
+ peerDependencies:
+ react-native-reanimated: '*'
+
+ mrmime@1.0.1:
+ resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
+ engines: {node: '>=10'}
+
+ ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
+ ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ mute-stream@0.0.7:
+ resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==}
+
+ mute-stream@0.0.8:
+ resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+
+ mv@2.1.1:
+ resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==}
+ engines: {node: '>=0.8.0'}
+
+ mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+
+ nanoid@3.3.7:
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ nativewind@4.0.36:
+ resolution: {integrity: sha512-nd0Xgjzaq0ISvUAjibZXcuSvvpX1BGX2mfOGBPZpjGfHL3By6fwLGsNhrKU6mi2FF30c+kdok3e2I4k/O0UO1Q==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ tailwindcss: '>3.3.0'
+
+ natural-compare-lite@1.4.0:
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ ncp@2.0.0:
+ resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==}
+ hasBin: true
+
+ negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+
+ neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+ nested-error-stacks@2.0.1:
+ resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==}
+
+ new-github-release-url@1.0.0:
+ resolution: {integrity: sha512-dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A==}
+ engines: {node: '>=10'}
+
+ nice-try@1.0.5:
+ resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
+
+ nocache@3.0.4:
+ resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==}
+ engines: {node: '>=12.0.0'}
+
+ node-abort-controller@3.1.1:
+ resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
+
+ node-dir@0.1.17:
+ resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==}
+ engines: {node: '>= 0.10.5'}
+
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-forge@1.3.1:
+ resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
+ engines: {node: '>= 6.13.0'}
+
+ node-int64@0.4.0:
+ resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
+
+ node-releases@2.0.14:
+ resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
+
+ node-stream-zip@1.15.0:
+ resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==}
+ engines: {node: '>=0.12.0'}
+
+ normalize-package-data@2.5.0:
+ resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+
+ normalize-package-data@3.0.3:
+ resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
+ engines: {node: '>=10'}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-url@4.5.1:
+ resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==}
+ engines: {node: '>=8'}
+
+ normalize-url@6.1.0:
+ resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
+ engines: {node: '>=10'}
+
+ np@7.7.0:
+ resolution: {integrity: sha512-G4HfO6JUl7iKOX1qfYHM/kG5ApqqZ4ma8YjtVAJoyS5VdKkGE/OdSG3cOE9Lwr71klNz9n6KIZmPRnh0L7qM1Q==}
+ engines: {git: '>=2.11.0', node: '>=10', npm: '>=6.8.0', yarn: '>=1.7.0'}
+ hasBin: true
+
+ npm-name@6.0.1:
+ resolution: {integrity: sha512-fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw==}
+ engines: {node: '>=10'}
+
+ npm-package-arg@7.0.0:
+ resolution: {integrity: sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==}
+
+ npm-run-path@2.0.2:
+ resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
+ engines: {node: '>=4'}
+
+ npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+
+ npm-run-path@5.3.0:
+ resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+ nullthrows@1.1.1:
+ resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
+
+ number-is-nan@1.0.1:
+ resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==}
+ engines: {node: '>=0.10.0'}
+
+ nwsapi@2.2.10:
+ resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==}
+
+ ob1@0.80.9:
+ resolution: {integrity: sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA==}
+ engines: {node: '>=18'}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
+ object-inspect@1.13.1:
+ resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
+
+ object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
+ 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==}
+ engines: {node: '>= 0.4'}
+
+ object.entries@1.1.8:
+ resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
+ engines: {node: '>= 0.4'}
+
+ object.fromentries@2.0.8:
+ resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
+ engines: {node: '>= 0.4'}
+
+ object.hasown@1.1.4:
+ resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==}
+ engines: {node: '>= 0.4'}
+
+ object.values@1.2.0:
+ resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
+ engines: {node: '>= 0.4'}
+
+ omggif@1.0.10:
+ resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==}
+
+ on-finished@2.3.0:
+ resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
+ engines: {node: '>= 0.8'}
+
+ on-finished@2.4.1:
+ 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==}
+ engines: {node: '>= 0.8'}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ onetime@2.0.1:
+ resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==}
+ engines: {node: '>=4'}
+
+ onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+
+ onetime@6.0.0:
+ resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+ engines: {node: '>=12'}
+
+ open@6.4.0:
+ resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==}
+ engines: {node: '>=8'}
+
+ open@7.4.2:
+ resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==}
+ engines: {node: '>=8'}
+
+ open@8.4.2:
+ resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
+ engines: {node: '>=12'}
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ ora@3.4.0:
+ 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'}
+
+ os-homedir@1.0.2:
+ resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==}
+ engines: {node: '>=0.10.0'}
+
+ os-tmpdir@1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+
+ osenv@0.1.5:
+ resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==}
+
+ ow@0.21.0:
+ resolution: {integrity: sha512-dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw==}
+ engines: {node: '>=10'}
+
+ p-cancelable@1.1.0:
+ resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==}
+ engines: {node: '>=6'}
+
+ p-cancelable@2.1.1:
+ resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
+ engines: {node: '>=8'}
+
+ p-defer@1.0.0:
+ resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
+ engines: {node: '>=4'}
+
+ p-event@4.2.0:
+ resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==}
+ engines: {node: '>=8'}
+
+ p-finally@1.0.0:
+ resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
+ engines: {node: '>=4'}
+
+ p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-locate@3.0.0:
+ resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
+ engines: {node: '>=6'}
+
+ p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ p-map@2.1.0:
+ resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
+ engines: {node: '>=6'}
+
+ p-map@3.0.0:
+ resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==}
+ engines: {node: '>=8'}
+
+ p-map@4.0.0:
+ resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
+ engines: {node: '>=10'}
+
+ p-memoize@4.0.4:
+ resolution: {integrity: sha512-ijdh0DP4Mk6J4FXlOM6vPPoCjPytcEseW8p/k5SDTSSfGV3E9bpt9Yzfifvzp6iohIieoLTkXRb32OWV0fB2Lw==}
+ engines: {node: '>=10'}
+
+ p-reflect@2.1.0:
+ resolution: {integrity: sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==}
+ engines: {node: '>=8'}
+
+ p-settle@4.1.1:
+ resolution: {integrity: sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==}
+ engines: {node: '>=10'}
+
+ p-timeout@3.2.0:
+ resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
+ engines: {node: '>=8'}
+
+ p-timeout@4.1.0:
+ resolution: {integrity: sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==}
+ engines: {node: '>=10'}
+
+ p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+
+ package-json@6.5.0:
+ resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==}
+ engines: {node: '>=8'}
+
+ pako@1.0.11:
+ resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse-bmfont-ascii@1.0.6:
+ resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==}
+
+ parse-bmfont-binary@1.0.6:
+ resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==}
+
+ parse-bmfont-xml@1.1.6:
+ resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==}
+
+ parse-headers@2.0.5:
+ resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==}
+
+ 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-png@2.1.0:
+ resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==}
+ engines: {node: '>=10'}
+
+ parse5@7.1.2:
+ resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
+
+ 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'}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ path-key@2.0.1:
+ resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
+ engines: {node: '>=4'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
+
+ path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ peek-readable@4.1.0:
+ resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==}
+ engines: {node: '>=8'}
+
+ phin@2.9.3:
+ resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==}
+ deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
+
+ picocolors@1.0.1:
+ resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@3.0.1:
+ resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==}
+ engines: {node: '>=10'}
+
+ pidtree@0.6.0:
+ resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
+ pify@4.0.1:
+ resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+ engines: {node: '>=6'}
+
+ pirates@4.0.6:
+ resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
+ engines: {node: '>= 6'}
+
+ pixelmatch@4.0.2:
+ resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==}
+ hasBin: true
+
+ pkg-dir@3.0.0:
+ resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==}
+ engines: {node: '>=6'}
+
+ pkg-dir@4.2.0:
+ resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
+ engines: {node: '>=8'}
+
+ pkg-dir@5.0.0:
+ resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==}
+ engines: {node: '>=10'}
+
+ pkg-up@3.1.0:
+ resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
+ engines: {node: '>=8'}
+
+ plist@3.1.0:
+ resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==}
+ engines: {node: '>=10.4.0'}
+
+ plur@2.1.2:
+ resolution: {integrity: sha512-WhcHk576xg9y/iv6RWOuroZgsqvCbJN+XGvAypCJwLAYs2iWDp5LUmvaCdV6JR2O0SMBf8l6p7A94AyLCFVMlQ==}
+ engines: {node: '>=0.10.0'}
+
+ pluralize@8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ engines: {node: '>=4'}
+
+ pngjs@3.4.0:
+ resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==}
+ engines: {node: '>=4.0.0'}
+
+ pngjs@6.0.0:
+ resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==}
+ engines: {node: '>=12.13.0'}
+
+ popmotion@11.0.3:
+ resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==}
+
+ possible-typed-array-names@1.0.0:
+ resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
+ engines: {node: '>= 0.4'}
+
+ postcss-import@15.1.0:
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-js@4.0.1:
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+
+ postcss-load-config@4.0.2:
+ resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
+ engines: {node: '>= 14'}
+ peerDependencies:
+ postcss: '>=8.0.9'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+
+ postcss-nested@6.0.1:
+ resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-selector-parser@6.0.16:
+ resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
+ engines: {node: '>=4'}
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ postcss@8.4.38:
+ resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prepend-http@2.0.0:
+ resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==}
+ engines: {node: '>=4'}
+
+ prettier-linter-helpers@1.0.0:
+ resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ engines: {node: '>=6.0.0'}
+
+ prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+
+ pretty-bytes@5.6.0:
+ resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
+ engines: {node: '>=6'}
+
+ pretty-format@22.4.3:
+ resolution: {integrity: sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==}
+
+ pretty-format@26.6.2:
+ resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==}
+ engines: {node: '>= 10'}
+
+ pretty-format@29.7.0:
+ resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ process-nextick-args@2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
+ progress@2.0.3:
+ resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
+ engines: {node: '>=0.4.0'}
+
+ promise@7.3.1:
+ resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==}
+
+ promise@8.3.0:
+ resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==}
+
+ prompts@2.4.2:
+ resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
+ engines: {node: '>= 6'}
+
+ prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+
+ proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+
+ psl@1.9.0:
+ resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
+
+ pump@3.0.0:
+ resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ pupa@2.1.1:
+ resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==}
+ engines: {node: '>=8'}
+
+ pure-rand@6.1.0:
+ resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
+
+ qrcode-terminal@0.11.0:
+ resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==}
+ hasBin: true
+
+ query-string@7.1.3:
+ resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==}
+ engines: {node: '>=6'}
+
+ querystring@0.2.1:
+ resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==}
+ engines: {node: '>=0.4.x'}
+ deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
+
+ querystringify@2.2.0:
+ resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ queue@6.0.2:
+ resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
+
+ quick-lru@4.0.1:
+ resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
+ engines: {node: '>=8'}
+
+ range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ rc@1.2.8:
+ resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
+ hasBin: true
+
+ react-devtools-core@5.2.0:
+ resolution: {integrity: sha512-vZK+/gvxxsieAoAyYaiRIVFxlajb7KXhgBDV7OsoMzaAE+IqGpoxusBjIgq5ibqA2IloKu0p9n7tE68z1xs18A==}
+
+ react-dom@18.2.0:
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
+ peerDependencies:
+ react: ^18.2.0
+
+ react-error-boundary@3.1.4:
+ resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==}
+ engines: {node: '>=10', npm: '>=6'}
+ peerDependencies:
+ react: '>=16.13.1'
+
+ react-fast-compare@3.2.2:
+ resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
+
+ react-freeze@1.0.4:
+ resolution: {integrity: sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ react: '>=17.0.0'
+
+ react-hook-form@7.51.4:
+ resolution: {integrity: sha512-V14i8SEkh+V1gs6YtD0hdHYnoL4tp/HX/A45wWQN15CYr9bFRmmRdYStSO5L65lCCZRF+kYiSKhm9alqbcdiVA==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18
+
+ react-i18next@12.3.1:
+ resolution: {integrity: sha512-5v8E2XjZDFzK7K87eSwC7AJcAkcLt5xYZ4+yTPDAW1i7C93oOY1dnr4BaQM7un4Hm+GmghuiPvevWwlca5PwDA==}
+ peerDependencies:
+ i18next: '>= 19.0.0'
+ react: '>= 16.8.0'
+ react-dom: '*'
+ react-native: '*'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+
+ react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+
+ react-is@17.0.2:
+ resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+
+ react-is@18.3.1:
+ resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+
+ react-native-avoid-softinput@4.0.2:
+ resolution: {integrity: sha512-/i8xNWGjpu3hEPCVjW2WsWTsM/mC4zTBr3DabOrdPfgw9Ww0Na69YQY1TSXCjbTjJmWwfTToPK5OEVm+ZwHmiQ==}
+ peerDependencies:
+ react: '>=17.0.0'
+ react-native: '>=0.65.0'
+
+ react-native-css-interop@0.0.36:
+ resolution: {integrity: sha512-ZWoKQlq6XrI5DB4BdPk5ABvJQsX7zls1SQYWuYXOQB8u5QE0KH3OfOGAGRZPekTjgkhjqGO4Bf8G2JTSWAYMSg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: '>=18'
+ react-native: '*'
+ react-native-reanimated: '>=3.6.2'
+ react-native-safe-area-context: '*'
+ react-native-svg: '*'
+ tailwindcss: ~3
+ peerDependenciesMeta:
+ react-native-safe-area-context:
+ optional: true
+ react-native-svg:
+ optional: true
+
+ react-native-flash-message@0.4.2:
+ resolution: {integrity: sha512-YvdXRW9AGMTI99S3DJZhLO0mbk/ehKv/UQf4/Df+3dtGi8DlkidRbyqCQZk1WMtZ7rN85PMTGr/xEI9CF9z0YA==}
+ peerDependencies:
+ prop-types: ^15.0 || ^16.0
+ react: '*'
+ react-native: '*'
+
+ react-native-gesture-handler@2.16.2:
+ resolution: {integrity: sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ react-native-helmet-async@2.0.4:
+ resolution: {integrity: sha512-m3CkXWss6B1dd6mCMleLpzDCJJGGaHOLQsUzZv8kAASJmMfmVT4d2fx375iXKTRWT25ThBfae3dECuX5cq/8hg==}
+ peerDependencies:
+ react: ^16.6.0 || ^17.0.0 || ^18.0.0
+
+ react-native-iphone-screen-helper@2.1.1:
+ resolution: {integrity: sha512-geuw/bli83+tOg8UpoioLk1H1aEy0wnMDusWkCazsyH6fSk6qzmgaZ2cRyyJRU8s2tG87HctZFKGTkyYzcUcfA==}
+ peerDependencies:
+ react-native: '>=0.42.0'
+
+ react-native-mmkv@2.6.3:
+ resolution: {integrity: sha512-CkLAU5EX18eDw0Q+h6qEXPvynb+NVDu54cOY3h4h9VUhaaflfAmGWBJRQCBQz5M0VdnS8utjgJNryTAWKUTqpw==}
+ peerDependencies:
+ react: '*'
+ react-native: '>=0.71.0'
+
+ react-native-reanimated@3.10.1:
+ resolution: {integrity: sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ react: '*'
+ react-native: '*'
+
+ react-native-restart@0.0.27:
+ resolution: {integrity: sha512-8KScVICrXwcTSJ1rjWkqVTHyEKQIttm5AIMGSK1QG1+RS5owYlE4z/1DykOTdWfVl9l16FIk0w9Xzk9ZO6jxlA==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ react-native-safe-area-context@4.10.1:
+ resolution: {integrity: sha512-w8tCuowDorUkPoWPXmhqosovBr33YsukkwYCDERZFHAxIkx6qBadYxfeoaJ91nCQKjkNzGrK5qhoNOeSIcYSpA==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ react-native-screens@3.31.1:
+ resolution: {integrity: sha512-8fRW362pfZ9y4rS8KY5P3DFScrmwo/vu1RrRMMx0PNHbeC9TLq0Kw1ubD83591yz64gLNHFLTVkTJmWeWCXKtQ==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ react-native-svg@15.2.0:
+ resolution: {integrity: sha512-R0E6IhcJfVLsL0lRmnUSm72QO+mTqcAOM5Jb8FVGxJqX3NfJMlMP0YyvcajZiaRR8CqQUpEoqrY25eyZb006kw==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+
+ react-native-web@0.19.11:
+ resolution: {integrity: sha512-51Qcjr0AtIgskwLqLsBByUMPs2nAWZ+6QF7x/siC72svNPcJ1/daXoPTNuHR2fX4oOrDATC4Vmc/SXOYPH19rw==}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+
+ react-native@0.74.1:
+ resolution: {integrity: sha512-0H2XpmghwOtfPpM2LKqHIN7gxy+7G/r1hwJHKLV6uoyXGC/gCojRtoo5NqyKrWpFC8cqyT6wTYCLuG7CxEKilg==}
+ engines: {node: '>=18'}
+ hasBin: true
+ peerDependencies:
+ '@types/react': ^18.2.6
+ react: 18.2.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-query-kit@3.3.0:
+ resolution: {integrity: sha512-4lmH/8eP/f0v4NnDuMS7hUPlw12yJ4YskghKZXnpoJrW8x6MJ6aNAqSTvqpGVk6WW+4nJH3NO6JXkPrOcMSEzg==}
+ peerDependencies:
+ '@tanstack/react-query': ^4 || ^5
+ peerDependenciesMeta:
+ '@tanstack/react-query':
+ optional: true
+
+ react-refresh@0.14.2:
+ resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
+ engines: {node: '>=0.10.0'}
+
+ react-shallow-renderer@16.15.0:
+ resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==}
+ peerDependencies:
+ react: ^16.0.0 || ^17.0.0 || ^18.0.0
+
+ react-test-renderer@18.2.0:
+ resolution: {integrity: sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==}
+ peerDependencies:
+ react: ^18.2.0
+
+ react-test-renderer@18.3.1:
+ resolution: {integrity: sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==}
+ peerDependencies:
+ react: ^18.3.1
+
+ react@18.2.0:
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
+ engines: {node: '>=0.10.0'}
+
+ read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+
+ read-pkg-up@7.0.1:
+ resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+ engines: {node: '>=8'}
+
+ read-pkg@5.2.0:
+ resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+ engines: {node: '>=8'}
+
+ readable-stream@2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
+ readable-web-to-node-stream@3.0.2:
+ resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==}
+ engines: {node: '>=8'}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ readline@1.3.0:
+ resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==}
+
+ recast@0.21.5:
+ resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==}
+ engines: {node: '>= 4'}
+
+ recyclerlistview@4.2.0:
+ resolution: {integrity: sha512-uuBCi0c+ggqHKwrzPX4Z/mJOzsBbjZEAwGGmlwpD/sD7raXixdAbdJ6BTcAmuWG50Cg4ru9p12M94Njwhr/27A==}
+ peerDependencies:
+ react: '>= 15.2.1'
+ react-native: '>= 0.30.0'
+
+ redent@3.0.0:
+ resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
+ engines: {node: '>=8'}
+
+ reflect.getprototypeof@1.0.6:
+ resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
+ engines: {node: '>= 0.4'}
+
+ regenerate-unicode-properties@10.1.1:
+ resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
+ engines: {node: '>=4'}
+
+ regenerate@1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+
+ 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-tree@0.1.27:
+ resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
+ hasBin: true
+
+ regexp.prototype.flags@1.5.2:
+ resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
+ engines: {node: '>= 0.4'}
+
+ regexpu-core@5.3.2:
+ resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
+ engines: {node: '>=4'}
+
+ registry-auth-token@4.2.2:
+ resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==}
+ engines: {node: '>=6.0.0'}
+
+ registry-url@5.1.0:
+ resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==}
+ engines: {node: '>=8'}
+
+ regjsparser@0.9.1:
+ resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
+ hasBin: true
+
+ remove-trailing-slash@0.1.1:
+ resolution: {integrity: sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
+ require-main-filename@2.0.0:
+ resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
+
+ requireg@0.2.2:
+ resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==}
+ engines: {node: '>= 4.0.0'}
+
+ requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+
+ reselect@4.1.8:
+ resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==}
+
+ resolve-cwd@3.0.0:
+ 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'}
+
+ resolve-from@5.0.0:
+ 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.exports@2.0.2:
+ resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
+ engines: {node: '>=10'}
+
+ resolve@1.22.8:
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ hasBin: true
+
+ 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
+
+ responselike@1.0.2:
+ resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==}
+
+ responselike@2.0.1:
+ resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
+
+ restore-cursor@2.0.0:
+ resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==}
+ engines: {node: '>=4'}
+
+ restore-cursor@3.1.0:
+ resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
+ engines: {node: '>=8'}
+
+ restore-cursor@4.0.0:
+ resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rfdc@1.3.1:
+ resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==}
+
+ rimraf@2.4.5:
+ resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==}
+ hasBin: true
+
+ rimraf@2.6.3:
+ resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
+ hasBin: true
+
+ rimraf@2.7.1:
+ resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+ hasBin: true
+
+ rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+
+ rtl-detect@1.1.2:
+ resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
+
+ run-async@2.4.1:
+ resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
+ engines: {node: '>=0.12.0'}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ rxjs@6.6.7:
+ resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
+ engines: {npm: '>=2.0.0'}
+
+ safe-array-concat@1.1.2:
+ resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
+ engines: {node: '>=0.4'}
+
+ safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-json-stringify@1.2.0:
+ resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==}
+
+ safe-regex-test@1.0.3:
+ resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex@2.1.1:
+ resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ sax@1.3.0:
+ resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
+
+ saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+
+ scheduler@0.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+
+ scheduler@0.24.0-canary-efb381bbf-20230505:
+ resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==}
+
+ schema-utils@4.2.0:
+ resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==}
+ engines: {node: '>= 12.13.0'}
+
+ scoped-regex@2.1.0:
+ resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
+ engines: {node: '>=8'}
+
+ selfsigned@2.4.1:
+ resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
+ engines: {node: '>=10'}
+
+ semver-diff@3.1.1:
+ resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==}
+ engines: {node: '>=8'}
+
+ semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ semver@7.6.2:
+ resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ send@0.18.0:
+ resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
+ engines: {node: '>= 0.8.0'}
+
+ serialize-error@2.1.0:
+ resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==}
+ engines: {node: '>=0.10.0'}
+
+ serve-static@1.15.0:
+ resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
+ engines: {node: '>= 0.8.0'}
+
+ set-blocking@2.0.0:
+ resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
+
+ set-cookie-parser@2.6.0:
+ resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ 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==}
+
+ shallow-clone@3.0.1:
+ resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
+ engines: {node: '>=8'}
+
+ shallowequal@1.1.0:
+ resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
+
+ shebang-command@1.2.0:
+ resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+ engines: {node: '>=0.10.0'}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@1.0.0:
+ resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+ engines: {node: '>=0.10.0'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ shell-quote@1.8.1:
+ resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
+
+ side-channel@1.0.6:
+ resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
+ 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==}
+
+ sisteransi@1.0.5:
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+
+ slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ slash@5.1.0:
+ resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
+ engines: {node: '>=14.16'}
+
+ slice-ansi@0.0.4:
+ resolution: {integrity: sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==}
+ engines: {node: '>=0.10.0'}
+
+ slice-ansi@2.1.0:
+ resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==}
+ engines: {node: '>=6'}
+
+ slice-ansi@5.0.0:
+ resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+ engines: {node: '>=12'}
+
+ slugify@1.6.6:
+ resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==}
+ engines: {node: '>=8.0.0'}
+
+ source-map-js@1.2.0:
+ resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
+ engines: {node: '>=0.10.0'}
+
+ source-map-support@0.5.13:
+ resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
+
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+ source-map@0.5.6:
+ resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.7.4:
+ resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
+ engines: {node: '>= 8'}
+
+ spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+ spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+ spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+ spdx-license-ids@3.0.17:
+ resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
+
+ split-on-first@1.1.0:
+ resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==}
+ engines: {node: '>=6'}
+
+ split2@3.2.2:
+ resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
+
+ split@1.0.1:
+ resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==}
+
+ sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+
+ ssri@10.0.6:
+ resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ stack-generator@2.0.10:
+ resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
+
+ stack-utils@2.0.6:
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
+ engines: {node: '>=10'}
+
+ stackframe@1.3.4:
+ resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
+
+ stacktrace-gps@3.1.2:
+ resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
+
+ stacktrace-js@2.0.2:
+ resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
+
+ stacktrace-parser@0.1.10:
+ resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==}
+ 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==}
+ engines: {node: '>= 0.8'}
+
+ stop-iteration-iterator@1.0.0:
+ resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
+ engines: {node: '>= 0.4'}
+
+ stream-buffers@2.2.0:
+ resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==}
+ engines: {node: '>= 0.10.0'}
+
+ stream-slice@0.1.2:
+ resolution: {integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==}
+
+ strict-uri-encode@2.0.0:
+ resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==}
+ engines: {node: '>=4'}
+
+ string-argv@0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+ engines: {node: '>=0.6.19'}
+
+ string-length@4.0.2:
+ resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
+ engines: {node: '>=10'}
+
+ string-length@5.0.1:
+ resolution: {integrity: sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==}
+ engines: {node: '>=12.20'}
+
+ string-natural-compare@3.0.1:
+ resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==}
+
+ string-width@1.0.2:
+ resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==}
+ engines: {node: '>=0.10.0'}
+
+ string-width@2.1.1:
+ resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==}
+ engines: {node: '>=4'}
+
+ string-width@4.2.3:
+ 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.prototype.matchall@4.0.11:
+ resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trim@1.2.9:
+ resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.8:
+ resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
+
+ string_decoder@1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+ strip-ansi@3.0.1:
+ resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
+ engines: {node: '>=0.10.0'}
+
+ strip-ansi@4.0.0:
+ resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==}
+ engines: {node: '>=4'}
+
+ strip-ansi@5.2.0:
+ resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==}
+ engines: {node: '>=6'}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+
+ strip-bom@4.0.0:
+ resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
+ engines: {node: '>=8'}
+
+ strip-eof@1.0.0:
+ resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
+ engines: {node: '>=0.10.0'}
+
+ strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
+ strip-final-newline@3.0.0:
+ resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+ engines: {node: '>=12'}
+
+ strip-indent@3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+
+ strip-json-comments@2.0.1:
+ resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
+ engines: {node: '>=0.10.0'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ strnum@1.0.5:
+ resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
+
+ strtok3@6.3.0:
+ resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==}
+ engines: {node: '>=10'}
+
+ structured-headers@0.4.1:
+ resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==}
+
+ style-value-types@5.0.0:
+ resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==}
+
+ styleq@0.1.3:
+ resolution: {integrity: sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==}
+
+ sucrase@3.34.0:
+ resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ sucrase@3.35.0:
+ resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
+ sudo-prompt@8.2.5:
+ resolution: {integrity: sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==}
+
+ sudo-prompt@9.1.1:
+ resolution: {integrity: sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==}
+
+ sudo-prompt@9.2.1:
+ resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==}
+
+ supports-color@2.0.0:
+ resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
+ engines: {node: '>=0.8.0'}
+
+ supports-color@5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
+ supports-hyperlinks@2.3.0:
+ resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==}
+ engines: {node: '>=8'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ symbol-observable@1.2.0:
+ resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==}
+ engines: {node: '>=0.10.0'}
+
+ symbol-observable@3.0.0:
+ resolution: {integrity: sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==}
+ engines: {node: '>=0.10'}
+
+ symbol-tree@3.2.4:
+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
+
+ tailwind-merge@1.14.0:
+ resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==}
+
+ tailwind-variants@0.1.20:
+ resolution: {integrity: sha512-AMh7x313t/V+eTySKB0Dal08RHY7ggYK0MSn/ad8wKWOrDUIzyiWNayRUm2PIJ4VRkvRnfNuyRuKbLV3EN+ewQ==}
+ engines: {node: '>=16.x', pnpm: '>=7.x'}
+ peerDependencies:
+ tailwindcss: '*'
+
+ tailwindcss@3.3.2:
+ resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
+ tar@6.2.1:
+ resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
+ engines: {node: '>=10'}
+
+ temp-dir@1.0.0:
+ resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==}
+ engines: {node: '>=4'}
+
+ temp-dir@2.0.0:
+ resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
+ engines: {node: '>=8'}
+
+ temp@0.8.4:
+ resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==}
+ engines: {node: '>=6.0.0'}
+
+ tempy@0.3.0:
+ resolution: {integrity: sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==}
+ engines: {node: '>=8'}
+
+ tempy@0.7.1:
+ resolution: {integrity: sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==}
+ engines: {node: '>=10'}
+
+ terminal-link@2.1.1:
+ resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
+ engines: {node: '>=8'}
+
+ terser@5.31.0:
+ resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ test-exclude@6.0.0:
+ resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
+ engines: {node: '>=8'}
+
+ text-extensions@1.9.0:
+ resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
+ engines: {node: '>=0.10'}
+
+ text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+ thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+
+ thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+
+ throat@5.0.0:
+ resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==}
+
+ through2@2.0.5:
+ resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+
+ through2@4.0.2:
+ resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
+
+ through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+ timm@1.7.1:
+ resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==}
+
+ tinycolor2@1.6.0:
+ resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
+
+ tmp@0.0.33:
+ resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+ engines: {node: '>=0.6.0'}
+
+ tmpl@1.0.5:
+ resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
+
+ to-fast-properties@2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ to-readable-stream@1.0.0:
+ resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==}
+ engines: {node: '>=6'}
+
+ to-readable-stream@2.1.0:
+ resolution: {integrity: sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==}
+ engines: {node: '>=8'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
+ token-types@4.2.1:
+ resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==}
+ engines: {node: '>=10'}
+
+ tough-cookie@4.1.4:
+ resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
+ engines: {node: '>=6'}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ tr46@3.0.0:
+ resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
+ engines: {node: '>=12'}
+
+ traverse@0.6.9:
+ resolution: {integrity: sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==}
+ engines: {node: '>= 0.4'}
+
+ trim-newlines@3.0.1:
+ resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
+ engines: {node: '>=8'}
+
+ 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}
+ hasBin: true
+ peerDependencies:
+ '@babel/core': '>=7.0.0-beta.0 <8'
+ '@jest/types': ^29.0.0
+ babel-jest: ^29.0.0
+ esbuild: '*'
+ jest: ^29.0.0
+ typescript: '>=4.3 <6'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ '@jest/types':
+ optional: true
+ babel-jest:
+ optional: true
+ esbuild:
+ optional: true
+
+ ts-node@10.9.2:
+ resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
+
+ ts-object-utils@0.0.5:
+ resolution: {integrity: sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==}
+
+ tslib@1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+
+ tslib@2.4.0:
+ resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
+
+ tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+
+ tsutils@3.21.0:
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
+
+ turbo-stream@2.0.1:
+ resolution: {integrity: sha512-sm0ZtcX9YWh28p5X8t5McxC2uthrt9p+g0bGE0KTVFhnhNWefpSVCr+67zRNDUOfo4bpXwiOp7otO+dyQ7/y/A==}
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-detect@4.0.8:
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
+ engines: {node: '>=4'}
+
+ type-fest@0.10.0:
+ resolution: {integrity: sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==}
+ engines: {node: '>=8'}
+
+ type-fest@0.16.0:
+ resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
+ engines: {node: '>=10'}
+
+ type-fest@0.18.1:
+ resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
+ engines: {node: '>=10'}
+
+ type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+
+ type-fest@0.21.3:
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
+ engines: {node: '>=10'}
+
+ type-fest@0.3.1:
+ resolution: {integrity: sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==}
+ engines: {node: '>=6'}
+
+ type-fest@0.4.1:
+ resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==}
+ engines: {node: '>=6'}
+
+ type-fest@0.6.0:
+ resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+ engines: {node: '>=8'}
+
+ type-fest@0.7.1:
+ resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
+ engines: {node: '>=8'}
+
+ type-fest@0.8.1:
+ resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+ engines: {node: '>=8'}
+
+ type-fest@1.4.0:
+ resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
+ engines: {node: '>=10'}
+
+ typed-array-buffer@1.0.2:
+ resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.1:
+ resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.2:
+ resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.6:
+ resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
+ engines: {node: '>= 0.4'}
+
+ typedarray-to-buffer@3.1.5:
+ resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
+
+ typedarray.prototype.slice@1.0.3:
+ resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==}
+ engines: {node: '>= 0.4'}
+
+ typescript@5.3.3:
+ resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ typescript@5.4.5:
+ resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ ua-parser-js@1.0.37:
+ resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==}
+
+ unbox-primitive@1.0.2:
+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+
+ undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+
+ undici@6.18.0:
+ resolution: {integrity: sha512-nT8jjv/fE9Et1ilR6QoW8ingRTY2Pp4l2RUrdzV5Yz35RJDrtPc1DXvuNqcpsJSGIRHFdt3YKKktTzJA6r0fTA==}
+ engines: {node: '>=18.17'}
+
+ unicode-canonical-property-names-ecmascript@2.0.0:
+ resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-ecmascript@2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-value-ecmascript@2.1.0:
+ resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
+ engines: {node: '>=4'}
+
+ unicode-property-aliases-ecmascript@2.1.0:
+ resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
+ engines: {node: '>=4'}
+
+ unique-filename@3.0.0:
+ resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ unique-slug@4.0.0:
+ resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ unique-string@1.0.0:
+ resolution: {integrity: sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==}
+ engines: {node: '>=4'}
+
+ unique-string@2.0.0:
+ resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
+ engines: {node: '>=8'}
+
+ universalify@0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+
+ universalify@0.2.0:
+ resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
+ engines: {node: '>= 4.0.0'}
+
+ universalify@1.0.0:
+ resolution: {integrity: sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==}
+ engines: {node: '>= 10.0.0'}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+
+ update-browserslist-db@1.0.16:
+ resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ update-notifier@5.1.0:
+ resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==}
+ engines: {node: '>=10'}
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ url-join@4.0.0:
+ resolution: {integrity: sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==}
+
+ url-parse-lax@3.0.0:
+ resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==}
+ engines: {node: '>=4'}
+
+ url-parse@1.5.10:
+ resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+
+ use-latest-callback@0.1.9:
+ resolution: {integrity: sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==}
+ peerDependencies:
+ react: '>=16.8'
+
+ use-sync-external-store@1.2.0:
+ resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+
+ utif2@4.1.0:
+ resolution: {integrity: sha512-+oknB9FHrJ7oW7A2WZYajOcv4FcDR4CfoGB0dPNfxbi4GO05RRnFmt5oa23+9w32EanrYcSJWspUiJkLMs+37w==}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ util@0.12.5:
+ resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+
+ utils-merge@1.0.1:
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
+ engines: {node: '>= 0.4.0'}
+
+ uuid@7.0.3:
+ resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==}
+ hasBin: true
+
+ uuid@8.3.2:
+ resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ hasBin: true
+
+ v8-compile-cache-lib@3.0.1:
+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+
+ v8-to-istanbul@9.2.0:
+ resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==}
+ engines: {node: '>=10.12.0'}
+
+ vali-date@1.0.0:
+ resolution: {integrity: sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==}
+ engines: {node: '>=0.10.0'}
+
+ valid-url@1.0.9:
+ resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==}
+
+ validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+ validate-npm-package-name@3.0.0:
+ resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
+
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
+ vlq@1.0.1:
+ resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==}
+
+ void-elements@3.1.0:
+ resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
+ engines: {node: '>=0.10.0'}
+
+ w3c-xmlserializer@4.0.0:
+ resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
+ engines: {node: '>=14'}
+
+ walker@1.0.8:
+ resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+
+ warn-once@0.1.1:
+ resolution: {integrity: sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==}
+
+ wcwidth@1.0.1:
+ resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+
+ web-encoding@1.1.5:
+ resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==}
+
+ web-streams-polyfill@3.3.3:
+ resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
+ engines: {node: '>= 8'}
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ webidl-conversions@5.0.0:
+ resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==}
+ engines: {node: '>=8'}
+
+ webidl-conversions@7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
+
+ whatwg-encoding@2.0.0:
+ resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
+ engines: {node: '>=12'}
+
+ whatwg-fetch@3.6.20:
+ resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==}
+
+ whatwg-mimetype@3.0.0:
+ resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
+ engines: {node: '>=12'}
+
+ whatwg-url-without-unicode@8.0.0-3:
+ resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==}
+ engines: {node: '>=10'}
+
+ whatwg-url@11.0.0:
+ resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
+ engines: {node: '>=12'}
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
+ which-boxed-primitive@1.0.2:
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+
+ which-builtin-type@1.1.3:
+ resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
+ engines: {node: '>= 0.4'}
+
+ which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
+
+ which-module@2.0.1:
+ resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
+
+ which-typed-array@1.1.15:
+ resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
+ engines: {node: '>= 0.4'}
+
+ which@1.3.1:
+ resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ widest-line@3.1.0:
+ resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
+ engines: {node: '>=8'}
+
+ wonka@4.0.15:
+ resolution: {integrity: sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==}
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wrap-ansi@3.0.1:
+ resolution: {integrity: sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==}
+ engines: {node: '>=4'}
+
+ wrap-ansi@6.2.0:
+ resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+ engines: {node: '>=8'}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ write-file-atomic@2.4.3:
+ resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==}
+
+ write-file-atomic@3.0.3:
+ resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}
+
+ write-file-atomic@4.0.2:
+ resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+
+ ws@6.2.2:
+ resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ ws@7.5.9:
+ resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ engines: {node: '>=8.3.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ ws@8.17.0:
+ resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ xcode@3.0.1:
+ resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==}
+ engines: {node: '>=10.0.0'}
+
+ xdg-basedir@4.0.0:
+ resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
+ engines: {node: '>=8'}
+
+ xhr@2.6.0:
+ resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==}
+
+ xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+
+ xml-parse-from-string@1.0.1:
+ resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==}
+
+ xml2js@0.5.0:
+ resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
+ engines: {node: '>=4.0.0'}
+
+ xml2js@0.6.0:
+ resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==}
+ engines: {node: '>=4.0.0'}
+
+ xml@1.0.1:
+ resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==}
+
+ xmlbuilder@11.0.1:
+ resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
+ engines: {node: '>=4.0'}
+
+ xmlbuilder@14.0.0:
+ resolution: {integrity: sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==}
+ engines: {node: '>=8.0'}
+
+ xmlbuilder@15.1.1:
+ resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==}
+ engines: {node: '>=8.0'}
+
+ xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+
+ xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+
+ y18n@4.0.3:
+ resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ yaml@1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+
+ yaml@2.3.1:
+ resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==}
+ engines: {node: '>= 14'}
+
+ yaml@2.4.2:
+ resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==}
+ engines: {node: '>= 14'}
+ hasBin: true
+
+ yargs-parser@18.1.3:
+ resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
+ engines: {node: '>=6'}
+
+ yargs-parser@20.2.9:
+ resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
+ engines: {node: '>=10'}
+
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ yargs@15.4.1:
+ resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
+ engines: {node: '>=8'}
+
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
+ yn@3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ zod@3.23.8:
+ resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
+
+ zustand@4.5.2:
+ resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==}
+ engines: {node: '>=12.7.0'}
+ peerDependencies:
+ '@types/react': '>=16.8'
+ immer: '>=9.0.6'
+ react: '>=16.8'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+
+snapshots:
+
+ '@adobe/css-tools@4.3.3': {}
+
+ '@alloc/quick-lru@5.2.0': {}
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@babel/code-frame@7.10.4':
+ dependencies:
+ '@babel/highlight': 7.24.5
+
+ '@babel/code-frame@7.24.2':
+ dependencies:
+ '@babel/highlight': 7.24.5
+ picocolors: 1.0.1
+
+ '@babel/compat-data@7.24.4': {}
+
+ '@babel/core@7.24.5':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.24.2
+ '@babel/generator': 7.24.5
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
+ '@babel/helpers': 7.24.5
+ '@babel/parser': 7.24.5
+ '@babel/template': 7.24.0
+ '@babel/traverse': 7.24.5
+ '@babel/types': 7.24.5
+ convert-source-map: 2.0.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/eslint-parser@7.24.5(@babel/core@7.24.5)(eslint@8.57.0)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
+ eslint: 8.57.0
+ eslint-visitor-keys: 2.1.0
+ semver: 6.3.1
+
+ '@babel/generator@7.24.5':
+ dependencies:
+ '@babel/types': 7.24.5
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 2.5.2
+
+ '@babel/helper-annotate-as-pure@7.22.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-compilation-targets@7.23.6':
+ dependencies:
+ '@babel/compat-data': 7.24.4
+ '@babel/helper-validator-option': 7.23.5
+ browserslist: 4.23.0
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-member-expression-to-functions': 7.24.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.24.5
+ semver: 6.3.1
+
+ '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ regexpu-core: 5.3.2
+ semver: 6.3.1
+
+ '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-plugin-utils': 7.24.5
+ debug: 4.3.4
+ lodash.debounce: 4.0.8
+ resolve: 1.22.8
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-environment-visitor@7.22.20': {}
+
+ '@babel/helper-function-name@7.23.0':
+ dependencies:
+ '@babel/template': 7.24.0
+ '@babel/types': 7.24.5
+
+ '@babel/helper-hoist-variables@7.22.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-member-expression-to-functions@7.24.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-module-imports@7.24.3':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-module-imports': 7.24.3
+ '@babel/helper-simple-access': 7.24.5
+ '@babel/helper-split-export-declaration': 7.24.5
+ '@babel/helper-validator-identifier': 7.24.5
+
+ '@babel/helper-optimise-call-expression@7.22.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-plugin-utils@7.24.5': {}
+
+ '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-wrap-function': 7.24.5
+
+ '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-member-expression-to-functions': 7.24.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+
+ '@babel/helper-simple-access@7.24.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.22.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-split-export-declaration@7.24.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/helper-string-parser@7.24.1': {}
+
+ '@babel/helper-validator-identifier@7.24.5': {}
+
+ '@babel/helper-validator-option@7.23.5': {}
+
+ '@babel/helper-wrap-function@7.24.5':
+ dependencies:
+ '@babel/helper-function-name': 7.23.0
+ '@babel/template': 7.24.0
+ '@babel/types': 7.24.5
+
+ '@babel/helpers@7.24.5':
+ dependencies:
+ '@babel/template': 7.24.0
+ '@babel/traverse': 7.24.5
+ '@babel/types': 7.24.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/highlight@7.24.5':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.24.5
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ picocolors: 1.0.1
+
+ '@babel/parser@7.24.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5)
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/compat-data': 7.24.4
+ '@babel/core': 7.24.5
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-module-imports': 7.24.3
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-classes@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5)
+ '@babel/helper-split-export-declaration': 7.24.5
+ globals: 11.12.0
+
+ '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/template': 7.24.0
+
+ '@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+
+ '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-simple-access': 7.24.5
+
+ '@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-validator-identifier': 7.24.5
+
+ '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-parameters@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-react-jsx-self@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-module-imports': 7.24.3
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5)
+ '@babel/types': 7.24.5
+
+ '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ regenerator-transform: 0.15.2
+
+ '@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-module-imports': 7.24.3
+ '@babel/helper-plugin-utils': 7.24.5
+ babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.5)
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5)
+ babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+
+ '@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-typescript@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5)
+
+ '@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.5
+
+ '@babel/preset-env@7.24.5(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/compat-data': 7.24.4
+ '@babel/core': 7.24.5
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-validator-option': 7.23.5
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.5)
+ '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.5)
+ '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.5)
+ '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.5)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.5)
+ babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.5)
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5)
+ babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5)
+ core-js-compat: 3.37.1
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/preset-flow@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-validator-option': 7.23.5
+ '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.5)
+
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/types': 7.24.5
+ esutils: 2.0.3
+
+ '@babel/preset-react@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-validator-option': 7.23.5
+ '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5)
+ '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.5)
+
+ '@babel/preset-typescript@7.24.1(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.5
+ '@babel/helper-validator-option': 7.23.5
+ '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.24.5)
+
+ '@babel/register@7.23.7(@babel/core@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ clone-deep: 4.0.1
+ find-cache-dir: 2.1.0
+ make-dir: 2.1.0
+ pirates: 4.0.6
+ source-map-support: 0.5.21
+
+ '@babel/regjsgen@0.8.0': {}
+
+ '@babel/runtime@7.24.5':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
+ '@babel/template@7.24.0':
+ dependencies:
+ '@babel/code-frame': 7.24.2
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.5
+
+ '@babel/traverse@7.24.5':
+ dependencies:
+ '@babel/code-frame': 7.24.2
+ '@babel/generator': 7.24.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.24.5
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.5
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.24.5':
+ dependencies:
+ '@babel/helper-string-parser': 7.24.1
+ '@babel/helper-validator-identifier': 7.24.5
+ to-fast-properties: 2.0.0
+
+ '@bcoe/v8-coverage@0.2.3': {}
+
+ '@commitlint/cli@17.8.1':
+ dependencies:
+ '@commitlint/format': 17.8.1
+ '@commitlint/lint': 17.8.1
+ '@commitlint/load': 17.8.1
+ '@commitlint/read': 17.8.1
+ '@commitlint/types': 17.8.1
+ execa: 5.1.1
+ lodash.isfunction: 3.0.9
+ resolve-from: 5.0.0
+ resolve-global: 1.0.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+
+ '@commitlint/config-conventional@17.8.1':
+ dependencies:
+ conventional-changelog-conventionalcommits: 6.1.0
+
+ '@commitlint/config-validator@17.8.1':
+ dependencies:
+ '@commitlint/types': 17.8.1
+ ajv: 8.13.0
+
+ '@commitlint/ensure@17.8.1':
+ dependencies:
+ '@commitlint/types': 17.8.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@17.8.1': {}
+
+ '@commitlint/format@17.8.1':
+ dependencies:
+ '@commitlint/types': 17.8.1
+ chalk: 4.1.2
+
+ '@commitlint/is-ignored@17.8.1':
+ dependencies:
+ '@commitlint/types': 17.8.1
+ semver: 7.5.4
+
+ '@commitlint/lint@17.8.1':
+ dependencies:
+ '@commitlint/is-ignored': 17.8.1
+ '@commitlint/parse': 17.8.1
+ '@commitlint/rules': 17.8.1
+ '@commitlint/types': 17.8.1
+
+ '@commitlint/load@17.8.1':
+ dependencies:
+ '@commitlint/config-validator': 17.8.1
+ '@commitlint/execute-rule': 17.8.1
+ '@commitlint/resolve-extends': 17.8.1
+ '@commitlint/types': 17.8.1
+ '@types/node': 20.5.1
+ chalk: 4.1.2
+ cosmiconfig: 8.3.6(typescript@5.3.3)
+ cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6)(ts-node@10.9.2)(typescript@5.4.5)
+ lodash.isplainobject: 4.0.6
+ lodash.merge: 4.6.2
+ lodash.uniq: 4.5.0
+ resolve-from: 5.0.0
+ ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.3.3)
+ typescript: 5.4.5
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+
+ '@commitlint/message@17.8.1': {}
+
+ '@commitlint/parse@17.8.1':
+ dependencies:
+ '@commitlint/types': 17.8.1
+ conventional-changelog-angular: 6.0.0
+ conventional-commits-parser: 4.0.0
+
+ '@commitlint/read@17.8.1':
+ dependencies:
+ '@commitlint/top-level': 17.8.1
+ '@commitlint/types': 17.8.1
+ fs-extra: 11.2.0
+ git-raw-commits: 2.0.11
+ minimist: 1.2.8
+
+ '@commitlint/resolve-extends@17.8.1':
+ dependencies:
+ '@commitlint/config-validator': 17.8.1
+ '@commitlint/types': 17.8.1
+ import-fresh: 3.3.0
+ lodash.mergewith: 4.6.2
+ resolve-from: 5.0.0
+ resolve-global: 1.0.0
+
+ '@commitlint/rules@17.8.1':
+ dependencies:
+ '@commitlint/ensure': 17.8.1
+ '@commitlint/message': 17.8.1
+ '@commitlint/to-lines': 17.8.1
+ '@commitlint/types': 17.8.1
+ execa: 5.1.1
+
+ '@commitlint/to-lines@17.8.1': {}
+
+ '@commitlint/top-level@17.8.1':
+ dependencies:
+ find-up: 5.0.0
+
+ '@commitlint/types@17.8.1':
+ dependencies:
+ chalk: 4.1.2
+
+ '@cspotcode/source-map-support@0.8.1':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+
+ '@dev-plugins/react-navigation@0.0.6(@react-navigation/core@6.4.16)(expo@51.0.8)(react@18.2.0)':
+ dependencies:
+ '@react-navigation/core': 6.4.16(react@18.2.0)
+ '@react-navigation/devtools': 6.0.26(react@18.2.0)
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ nanoid: 3.3.7
+ transitivePeerDependencies:
+ - react
+
+ '@dev-plugins/react-query@0.0.6(@tanstack/react-query@5.37.1)(expo@51.0.8)':
+ dependencies:
+ '@tanstack/react-query': 5.37.1(react@18.2.0)
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ flatted: 3.3.1
+
+ '@egjs/hammerjs@2.0.17':
+ dependencies:
+ '@types/hammerjs': 2.0.45
+
+ '@emotion/is-prop-valid@0.8.8':
+ dependencies:
+ '@emotion/memoize': 0.7.4
+ optional: true
+
+ '@emotion/memoize@0.7.4':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
+ dependencies:
+ eslint: 8.57.0
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.10.0': {}
+
+ '@eslint/eslintrc@2.1.4':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.4
+ espree: 9.6.1
+ globals: 13.24.0
+ ignore: 5.3.1
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@8.57.0': {}
+
+ '@expo/bunyan@4.0.0':
+ dependencies:
+ uuid: 8.3.2
+ optionalDependencies:
+ mv: 2.1.1
+ safe-json-stringify: 1.2.0
+
+ '@expo/cli@0.18.13(expo-modules-autolinking@1.11.1)':
+ dependencies:
+ '@babel/runtime': 7.24.5
+ '@expo/code-signing-certificates': 0.0.5
+ '@expo/config': 9.0.2
+ '@expo/config-plugins': 8.0.4
+ '@expo/devcert': 1.1.2
+ '@expo/env': 0.3.0
+ '@expo/image-utils': 0.5.1
+ '@expo/json-file': 8.3.3
+ '@expo/metro-config': 0.18.4
+ '@expo/osascript': 2.1.2
+ '@expo/package-manager': 1.5.2
+ '@expo/plist': 0.1.3
+ '@expo/prebuild-config': 7.0.4(expo-modules-autolinking@1.11.1)
+ '@expo/rudder-sdk-node': 1.1.1
+ '@expo/spawn-async': 1.7.2
+ '@expo/xcpretty': 4.3.1
+ '@react-native/dev-middleware': 0.74.83
+ '@urql/core': 2.3.6(graphql@15.8.0)
+ '@urql/exchange-retry': 0.3.0(graphql@15.8.0)
+ accepts: 1.3.8
+ arg: 5.0.2
+ better-opn: 3.0.2
+ bplist-parser: 0.3.2
+ cacache: 18.0.3
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ connect: 3.7.0
+ debug: 4.3.4
+ env-editor: 0.4.2
+ fast-glob: 3.3.2
+ find-yarn-workspace-root: 2.0.0
+ form-data: 3.0.1
+ freeport-async: 2.0.0
+ fs-extra: 8.1.0
+ getenv: 1.0.0
+ glob: 7.2.3
+ graphql: 15.8.0
+ graphql-tag: 2.12.6(graphql@15.8.0)
+ https-proxy-agent: 5.0.1
+ internal-ip: 4.3.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+ js-yaml: 3.14.1
+ json-schema-deref-sync: 0.13.0
+ lodash.debounce: 4.0.8
+ md5hex: 1.0.0
+ minimatch: 3.1.2
+ node-fetch: 2.7.0
+ node-forge: 1.3.1
+ npm-package-arg: 7.0.0
+ open: 8.4.2
+ ora: 3.4.0
+ picomatch: 3.0.1
+ pretty-bytes: 5.6.0
+ progress: 2.0.3
+ prompts: 2.4.2
+ qrcode-terminal: 0.11.0
+ require-from-string: 2.0.2
+ requireg: 0.2.2
+ resolve: 1.22.8
+ resolve-from: 5.0.0
+ resolve.exports: 2.0.2
+ semver: 7.6.2
+ send: 0.18.0
+ slugify: 1.6.6
+ source-map-support: 0.5.21
+ stacktrace-parser: 0.1.10
+ structured-headers: 0.4.1
+ tar: 6.2.1
+ temp-dir: 2.0.0
+ tempy: 0.7.1
+ terminal-link: 2.1.1
+ text-table: 0.2.0
+ url-join: 4.0.0
+ wrap-ansi: 7.0.0
+ ws: 8.17.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - expo-modules-autolinking
+ - 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@8.0.4':
+ dependencies:
+ '@expo/config-types': 51.0.0
+ '@expo/json-file': 8.3.3
+ '@expo/plist': 0.1.3
+ '@expo/sdk-runtime-versions': 1.0.0
+ chalk: 4.1.2
+ debug: 4.3.4
+ find-up: 5.0.0
+ getenv: 1.0.0
+ glob: 7.1.6
+ resolve-from: 5.0.0
+ semver: 7.6.2
+ slash: 3.0.0
+ slugify: 1.6.6
+ xcode: 3.0.1
+ xml2js: 0.6.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/config-types@51.0.0': {}
+
+ '@expo/config@9.0.2':
+ dependencies:
+ '@babel/code-frame': 7.10.4
+ '@expo/config-plugins': 8.0.4
+ '@expo/config-types': 51.0.0
+ '@expo/json-file': 8.3.3
+ getenv: 1.0.0
+ glob: 7.1.6
+ require-from-string: 2.0.2
+ resolve-from: 5.0.0
+ semver: 7.6.2
+ slugify: 1.6.6
+ sucrase: 3.34.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/devcert@1.1.2':
+ dependencies:
+ application-config-path: 0.1.1
+ command-exists: 1.2.9
+ debug: 3.2.7
+ eol: 0.9.1
+ get-port: 3.2.0
+ glob: 7.2.3
+ lodash: 4.17.21
+ mkdirp: 0.5.6
+ password-prompt: 1.1.3
+ rimraf: 2.7.1
+ sudo-prompt: 8.2.5
+ tmp: 0.0.33
+ tslib: 2.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/env@0.3.0':
+ dependencies:
+ chalk: 4.1.2
+ debug: 4.3.4
+ dotenv: 16.4.5
+ dotenv-expand: 11.0.6
+ getenv: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/image-utils@0.5.1':
+ dependencies:
+ '@expo/spawn-async': 1.7.2
+ chalk: 4.1.2
+ fs-extra: 9.0.0
+ getenv: 1.0.0
+ jimp-compact: 0.16.1
+ node-fetch: 2.7.0
+ parse-png: 2.1.0
+ resolve-from: 5.0.0
+ semver: 7.6.2
+ tempy: 0.3.0
+ transitivePeerDependencies:
+ - encoding
+
+ '@expo/json-file@8.3.3':
+ dependencies:
+ '@babel/code-frame': 7.10.4
+ json5: 2.2.3
+ write-file-atomic: 2.4.3
+
+ '@expo/metro-config@0.18.4':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/generator': 7.24.5
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.5
+ '@expo/config': 9.0.2
+ '@expo/env': 0.3.0
+ '@expo/json-file': 8.3.3
+ '@expo/spawn-async': 1.7.2
+ chalk: 4.1.2
+ debug: 4.3.4
+ find-yarn-workspace-root: 2.0.0
+ fs-extra: 9.1.0
+ getenv: 1.0.0
+ glob: 7.2.3
+ jsc-safe-url: 0.2.4
+ lightningcss: 1.19.0
+ postcss: 8.4.38
+ resolve-from: 5.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/metro-runtime@3.2.1(react-native@0.74.1)':
+ dependencies:
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ '@expo/osascript@2.1.2':
+ dependencies:
+ '@expo/spawn-async': 1.7.2
+ exec-async: 2.2.0
+
+ '@expo/package-manager@1.5.2':
+ dependencies:
+ '@expo/json-file': 8.3.3
+ '@expo/spawn-async': 1.7.2
+ ansi-regex: 5.0.1
+ chalk: 4.1.2
+ find-up: 5.0.0
+ find-yarn-workspace-root: 2.0.0
+ js-yaml: 3.14.1
+ micromatch: 4.0.5
+ npm-package-arg: 7.0.0
+ ora: 3.4.0
+ split: 1.0.1
+ sudo-prompt: 9.1.1
+
+ '@expo/plist@0.1.3':
+ dependencies:
+ '@xmldom/xmldom': 0.7.13
+ base64-js: 1.5.1
+ xmlbuilder: 14.0.0
+
+ '@expo/prebuild-config@7.0.3(expo-modules-autolinking@1.11.1)':
+ dependencies:
+ '@expo/config': 9.0.2
+ '@expo/config-plugins': 8.0.4
+ '@expo/config-types': 51.0.0
+ '@expo/image-utils': 0.5.1
+ '@expo/json-file': 8.3.3
+ '@react-native/normalize-colors': 0.74.83
+ debug: 4.3.4
+ expo-modules-autolinking: 1.11.1
+ fs-extra: 9.1.0
+ resolve-from: 5.0.0
+ semver: 7.6.2
+ xml2js: 0.6.0
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ '@expo/prebuild-config@7.0.4(expo-modules-autolinking@1.11.1)':
+ dependencies:
+ '@expo/config': 9.0.2
+ '@expo/config-plugins': 8.0.4
+ '@expo/config-types': 51.0.0
+ '@expo/image-utils': 0.5.1
+ '@expo/json-file': 8.3.3
+ '@react-native/normalize-colors': 0.74.83
+ debug: 4.3.4
+ expo-modules-autolinking: 1.11.1
+ fs-extra: 9.1.0
+ resolve-from: 5.0.0
+ semver: 7.6.2
+ xml2js: 0.6.0
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ '@expo/rudder-sdk-node@1.1.1':
+ dependencies:
+ '@expo/bunyan': 4.0.0
+ '@segment/loosely-validate-event': 2.0.0
+ fetch-retry: 4.1.1
+ md5: 2.3.0
+ node-fetch: 2.7.0
+ remove-trailing-slash: 0.1.1
+ uuid: 8.3.2
+ transitivePeerDependencies:
+ - encoding
+
+ '@expo/sdk-runtime-versions@1.0.0': {}
+
+ '@expo/server@0.4.2(typescript@5.3.3)':
+ dependencies:
+ '@remix-run/node': 2.9.2(typescript@5.3.3)
+ abort-controller: 3.0.0
+ debug: 4.3.4
+ source-map-support: 0.5.21
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@expo/spawn-async@1.7.2':
+ dependencies:
+ cross-spawn: 7.0.3
+
+ '@expo/vector-icons@14.0.2':
+ dependencies:
+ prop-types: 15.8.1
+
+ '@expo/xcpretty@4.3.1':
+ dependencies:
+ '@babel/code-frame': 7.10.4
+ chalk: 4.1.2
+ find-up: 5.0.0
+ js-yaml: 4.1.0
+
+ '@formatjs/ecma402-abstract@2.0.0':
+ dependencies:
+ '@formatjs/intl-localematcher': 0.5.4
+ tslib: 2.6.2
+
+ '@formatjs/icu-messageformat-parser@2.7.8':
+ dependencies:
+ '@formatjs/ecma402-abstract': 2.0.0
+ '@formatjs/icu-skeleton-parser': 1.8.2
+ tslib: 2.6.2
+
+ '@formatjs/icu-skeleton-parser@1.8.2':
+ dependencies:
+ '@formatjs/ecma402-abstract': 2.0.0
+ tslib: 2.6.2
+
+ '@formatjs/intl-localematcher@0.5.4':
+ dependencies:
+ tslib: 2.6.2
+
+ '@gorhom/bottom-sheet@4.6.3(@types/react@18.2.79)(react-native-gesture-handler@2.16.2)(react-native-reanimated@3.10.1)(react-native@0.74.1)(react@18.2.0)':
+ dependencies:
+ '@gorhom/portal': 1.0.14(react-native@0.74.1)(react@18.2.0)
+ '@types/react': 18.2.79
+ invariant: 2.2.4
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ react-native-gesture-handler: 2.16.2(react-native@0.74.1)(react@18.2.0)
+ react-native-reanimated: 3.10.1(@babel/core@7.24.5)(react-native@0.74.1)(react@18.2.0)
+
+ '@gorhom/portal@1.0.14(react-native@0.74.1)(react@18.2.0)':
+ dependencies:
+ nanoid: 3.3.7
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ '@graphql-typed-document-node/core@3.2.0(graphql@15.8.0)':
+ dependencies:
+ graphql: 15.8.0
+
+ '@hapi/hoek@9.3.0': {}
+
+ '@hapi/topo@5.1.0':
+ dependencies:
+ '@hapi/hoek': 9.3.0
+
+ '@hookform/resolvers@2.9.11(react-hook-form@7.51.4)':
+ dependencies:
+ react-hook-form: 7.51.4(react@18.2.0)
+
+ '@humanwhocodes/config-array@0.11.14':
+ dependencies:
+ '@humanwhocodes/object-schema': 2.0.3
+ debug: 4.3.4
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/object-schema@2.0.3': {}
+
+ '@isaacs/cliui@8.0.2':
+ 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/ttlcache@1.4.1': {}
+
+ '@istanbuljs/load-nyc-config@1.1.0':
+ dependencies:
+ camelcase: 5.3.1
+ find-up: 4.1.0
+ get-package-type: 0.1.0
+ js-yaml: 3.14.1
+ resolve-from: 5.0.0
+
+ '@istanbuljs/schema@0.1.3': {}
+
+ '@jest/console@29.7.0':
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ chalk: 4.1.2
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+ slash: 3.0.0
+
+ '@jest/core@29.7.0(ts-node@10.9.2)':
+ dependencies:
+ '@jest/console': 29.7.0
+ '@jest/reporters': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ 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@20.12.12)(ts-node@10.9.2)
+ jest-haste-map: 29.7.0
+ jest-message-util: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-resolve-dependencies: 29.7.0
+ jest-runner: 29.7.0
+ jest-runtime: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ jest-watcher: 29.7.0
+ micromatch: 4.0.5
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ strip-ansi: 6.0.1
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ '@jest/create-cache-key-function@29.7.0':
+ dependencies:
+ '@jest/types': 29.6.3
+
+ '@jest/environment@29.7.0':
+ dependencies:
+ '@jest/fake-timers': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ jest-mock: 29.7.0
+
+ '@jest/expect-utils@29.7.0':
+ dependencies:
+ jest-get-type: 29.6.3
+
+ '@jest/expect@29.7.0':
+ dependencies:
+ expect: 29.7.0
+ jest-snapshot: 29.7.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/fake-timers@29.7.0':
+ dependencies:
+ '@jest/types': 29.6.3
+ '@sinonjs/fake-timers': 10.3.0
+ '@types/node': 20.12.12
+ jest-message-util: 29.7.0
+ jest-mock: 29.7.0
+ jest-util: 29.7.0
+
+ '@jest/globals@29.7.0':
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/expect': 29.7.0
+ '@jest/types': 29.6.3
+ jest-mock: 29.7.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/reporters@29.7.0':
+ dependencies:
+ '@bcoe/v8-coverage': 0.2.3
+ '@jest/console': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@jridgewell/trace-mapping': 0.3.25
+ '@types/node': 20.12.12
+ chalk: 4.1.2
+ collect-v8-coverage: 1.0.2
+ exit: 0.1.2
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ istanbul-lib-coverage: 3.2.2
+ istanbul-lib-instrument: 6.0.2
+ istanbul-lib-report: 3.0.1
+ istanbul-lib-source-maps: 4.0.1
+ istanbul-reports: 3.1.7
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+ jest-worker: 29.7.0
+ slash: 3.0.0
+ string-length: 4.0.2
+ strip-ansi: 6.0.1
+ v8-to-istanbul: 9.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/schemas@29.6.3':
+ dependencies:
+ '@sinclair/typebox': 0.27.8
+
+ '@jest/source-map@29.6.3':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ callsites: 3.1.0
+ graceful-fs: 4.2.11
+
+ '@jest/test-result@29.7.0':
+ dependencies:
+ '@jest/console': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/istanbul-lib-coverage': 2.0.6
+ collect-v8-coverage: 1.0.2
+
+ '@jest/test-sequencer@29.7.0':
+ dependencies:
+ '@jest/test-result': 29.7.0
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.7.0
+ slash: 3.0.0
+
+ '@jest/transform@29.7.0':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@jest/types': 29.6.3
+ '@jridgewell/trace-mapping': 0.3.25
+ babel-plugin-istanbul: 6.1.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: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-util: 29.7.0
+ micromatch: 4.0.5
+ pirates: 4.0.6
+ slash: 3.0.0
+ write-file-atomic: 4.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@jest/types@26.6.2':
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 20.12.12
+ '@types/yargs': 15.0.19
+ chalk: 4.1.2
+
+ '@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': 20.12.12
+ '@types/yargs': 17.0.32
+ chalk: 4.1.2
+
+ '@jimp/bmp@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+ bmp-js: 0.1.0
+
+ '@jimp/core@0.22.12':
+ dependencies:
+ '@jimp/utils': 0.22.12
+ any-base: 1.1.0
+ buffer: 5.7.1
+ exif-parser: 0.1.12
+ file-type: 16.5.4
+ isomorphic-fetch: 3.0.0
+ pixelmatch: 4.0.2
+ tinycolor2: 1.6.0
+ transitivePeerDependencies:
+ - encoding
+
+ '@jimp/custom@0.22.12':
+ dependencies:
+ '@jimp/core': 0.22.12
+ transitivePeerDependencies:
+ - encoding
+
+ '@jimp/gif@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+ gifwrap: 0.10.1
+ omggif: 1.0.10
+
+ '@jimp/jpeg@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+ jpeg-js: 0.4.4
+
+ '@jimp/plugin-blit@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-blur@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-circle@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-color@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+ tinycolor2: 1.6.0
+
+ '@jimp/plugin-contain@0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blit@0.22.12)(@jimp/plugin-resize@0.22.12)(@jimp/plugin-scale@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-blit': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-resize': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-scale': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-resize@0.22.12)
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-cover@0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-crop@0.22.12)(@jimp/plugin-resize@0.22.12)(@jimp/plugin-scale@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-crop': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-resize': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-scale': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-resize@0.22.12)
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-crop@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-displace@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-dither@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-fisheye@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-flip@0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-rotate@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-rotate': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blit@0.22.12)(@jimp/plugin-crop@0.22.12)(@jimp/plugin-resize@0.22.12)
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-gaussian@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-invert@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-mask@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-normalize@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-print@0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blit@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-blit': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/utils': 0.22.12
+ load-bmfont: 1.4.1
+
+ '@jimp/plugin-resize@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-rotate@0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blit@0.22.12)(@jimp/plugin-crop@0.22.12)(@jimp/plugin-resize@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-blit': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-crop': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-resize': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-scale@0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-resize@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-resize': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-shadow@0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blur@0.22.12)(@jimp/plugin-resize@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-blur': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-resize': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugin-threshold@0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-color@0.22.12)(@jimp/plugin-resize@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-color': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-resize': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/utils': 0.22.12
+
+ '@jimp/plugins@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugin-blit': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-blur': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-circle': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-color': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-contain': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blit@0.22.12)(@jimp/plugin-resize@0.22.12)(@jimp/plugin-scale@0.22.12)
+ '@jimp/plugin-cover': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-crop@0.22.12)(@jimp/plugin-resize@0.22.12)(@jimp/plugin-scale@0.22.12)
+ '@jimp/plugin-crop': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-displace': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-dither': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-fisheye': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-flip': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-rotate@0.22.12)
+ '@jimp/plugin-gaussian': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-invert': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-mask': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-normalize': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-print': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blit@0.22.12)
+ '@jimp/plugin-resize': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/plugin-rotate': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blit@0.22.12)(@jimp/plugin-crop@0.22.12)(@jimp/plugin-resize@0.22.12)
+ '@jimp/plugin-scale': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-resize@0.22.12)
+ '@jimp/plugin-shadow': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-blur@0.22.12)(@jimp/plugin-resize@0.22.12)
+ '@jimp/plugin-threshold': 0.22.12(@jimp/custom@0.22.12)(@jimp/plugin-color@0.22.12)(@jimp/plugin-resize@0.22.12)
+ timm: 1.7.1
+
+ '@jimp/png@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/utils': 0.22.12
+ pngjs: 6.0.0
+
+ '@jimp/tiff@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/custom': 0.22.12
+ utif2: 4.1.0
+
+ '@jimp/types@0.22.12(@jimp/custom@0.22.12)':
+ dependencies:
+ '@jimp/bmp': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/custom': 0.22.12
+ '@jimp/gif': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/jpeg': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/png': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/tiff': 0.22.12(@jimp/custom@0.22.12)
+ timm: 1.7.1
+
+ '@jimp/utils@0.22.12':
+ dependencies:
+ regenerator-runtime: 0.13.11
+
+ '@jridgewell/gen-mapping@0.3.5':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/set-array@1.2.1': {}
+
+ '@jridgewell/source-map@0.3.6':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/sourcemap-codec@1.4.15': {}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ '@jridgewell/trace-mapping@0.3.9':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ '@motionone/animation@10.17.0':
+ dependencies:
+ '@motionone/easing': 10.17.0
+ '@motionone/types': 10.17.0
+ '@motionone/utils': 10.17.0
+ tslib: 2.6.2
+
+ '@motionone/dom@10.12.0':
+ dependencies:
+ '@motionone/animation': 10.17.0
+ '@motionone/generators': 10.17.0
+ '@motionone/types': 10.17.0
+ '@motionone/utils': 10.17.0
+ hey-listen: 1.0.8
+ tslib: 2.6.2
+
+ '@motionone/easing@10.17.0':
+ dependencies:
+ '@motionone/utils': 10.17.0
+ tslib: 2.6.2
+
+ '@motionone/generators@10.17.0':
+ dependencies:
+ '@motionone/types': 10.17.0
+ '@motionone/utils': 10.17.0
+ tslib: 2.6.2
+
+ '@motionone/types@10.17.0': {}
+
+ '@motionone/utils@10.17.0':
+ dependencies:
+ '@motionone/types': 10.17.0
+ hey-listen: 1.0.8
+ tslib: 2.6.2
+
+ '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
+ dependencies:
+ eslint-scope: 5.1.1
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.17.1
+
+ '@npmcli/fs@3.1.1':
+ dependencies:
+ semver: 7.6.2
+
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.0.0(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.24.5
+ react: 18.2.0
+
+ '@radix-ui/react-slot@1.0.1(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.24.5
+ '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0)
+ react: 18.2.0
+
+ '@react-native-community/cli-clean@13.6.6':
+ dependencies:
+ '@react-native-community/cli-tools': 13.6.6
+ chalk: 4.1.2
+ execa: 5.1.1
+ fast-glob: 3.3.2
+ transitivePeerDependencies:
+ - encoding
+
+ '@react-native-community/cli-config@13.6.6':
+ dependencies:
+ '@react-native-community/cli-tools': 13.6.6
+ chalk: 4.1.2
+ cosmiconfig: 5.2.1
+ deepmerge: 4.3.1
+ fast-glob: 3.3.2
+ joi: 17.13.1
+ transitivePeerDependencies:
+ - encoding
+
+ '@react-native-community/cli-debugger-ui@13.6.6':
+ dependencies:
+ serve-static: 1.15.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@react-native-community/cli-doctor@13.6.6':
+ dependencies:
+ '@react-native-community/cli-config': 13.6.6
+ '@react-native-community/cli-platform-android': 13.6.6
+ '@react-native-community/cli-platform-apple': 13.6.6
+ '@react-native-community/cli-platform-ios': 13.6.6
+ '@react-native-community/cli-tools': 13.6.6
+ chalk: 4.1.2
+ command-exists: 1.2.9
+ deepmerge: 4.3.1
+ envinfo: 7.13.0
+ execa: 5.1.1
+ hermes-profile-transformer: 0.0.6
+ node-stream-zip: 1.15.0
+ ora: 5.4.1
+ semver: 7.6.2
+ strip-ansi: 5.2.0
+ wcwidth: 1.0.1
+ yaml: 2.4.2
+ transitivePeerDependencies:
+ - encoding
+
+ '@react-native-community/cli-hermes@13.6.6':
+ dependencies:
+ '@react-native-community/cli-platform-android': 13.6.6
+ '@react-native-community/cli-tools': 13.6.6
+ chalk: 4.1.2
+ hermes-profile-transformer: 0.0.6
+ transitivePeerDependencies:
+ - encoding
+
+ '@react-native-community/cli-platform-android@13.6.6':
+ dependencies:
+ '@react-native-community/cli-tools': 13.6.6
+ chalk: 4.1.2
+ execa: 5.1.1
+ fast-glob: 3.3.2
+ fast-xml-parser: 4.4.0
+ logkitty: 0.7.1
+ transitivePeerDependencies:
+ - encoding
+
+ '@react-native-community/cli-platform-apple@13.6.6':
+ dependencies:
+ '@react-native-community/cli-tools': 13.6.6
+ chalk: 4.1.2
+ execa: 5.1.1
+ fast-glob: 3.3.2
+ fast-xml-parser: 4.4.0
+ ora: 5.4.1
+ transitivePeerDependencies:
+ - encoding
+
+ '@react-native-community/cli-platform-ios@13.6.6':
+ dependencies:
+ '@react-native-community/cli-platform-apple': 13.6.6
+ transitivePeerDependencies:
+ - encoding
+
+ '@react-native-community/cli-server-api@13.6.6':
+ dependencies:
+ '@react-native-community/cli-debugger-ui': 13.6.6
+ '@react-native-community/cli-tools': 13.6.6
+ compression: 1.7.4
+ connect: 3.7.0
+ errorhandler: 1.5.1
+ nocache: 3.0.4
+ pretty-format: 26.6.2
+ serve-static: 1.15.0
+ ws: 6.2.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@react-native-community/cli-tools@13.6.6':
+ dependencies:
+ appdirsjs: 1.2.7
+ chalk: 4.1.2
+ execa: 5.1.1
+ find-up: 5.0.0
+ mime: 2.6.0
+ node-fetch: 2.7.0
+ open: 6.4.0
+ ora: 5.4.1
+ semver: 7.6.2
+ shell-quote: 1.8.1
+ sudo-prompt: 9.2.1
+ transitivePeerDependencies:
+ - encoding
+
+ '@react-native-community/cli-types@13.6.6':
+ dependencies:
+ joi: 17.13.1
+
+ '@react-native-community/cli@13.6.6':
+ dependencies:
+ '@react-native-community/cli-clean': 13.6.6
+ '@react-native-community/cli-config': 13.6.6
+ '@react-native-community/cli-debugger-ui': 13.6.6
+ '@react-native-community/cli-doctor': 13.6.6
+ '@react-native-community/cli-hermes': 13.6.6
+ '@react-native-community/cli-server-api': 13.6.6
+ '@react-native-community/cli-tools': 13.6.6
+ '@react-native-community/cli-types': 13.6.6
+ chalk: 4.1.2
+ commander: 9.5.0
+ deepmerge: 4.3.1
+ execa: 5.1.1
+ find-up: 4.1.0
+ fs-extra: 8.1.0
+ graceful-fs: 4.2.11
+ prompts: 2.4.2
+ semver: 7.6.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@react-native-community/eslint-config@3.2.0(eslint@8.57.0)(jest@29.7.0)(prettier@2.8.8)(typescript@5.3.3)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/eslint-parser': 7.24.5(@babel/core@7.24.5)(eslint@8.57.0)
+ '@react-native-community/eslint-plugin': 1.3.0
+ '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.3.3)
+ eslint: 8.57.0
+ eslint-config-prettier: 8.10.0(eslint@8.57.0)
+ eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0)
+ eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.24.5)(eslint@8.57.0)
+ eslint-plugin-jest: 26.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(jest@29.7.0)(typescript@5.3.3)
+ eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@2.8.8)
+ eslint-plugin-react: 7.34.1(eslint@8.57.0)
+ eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
+ eslint-plugin-react-native: 4.1.0(eslint@8.57.0)
+ prettier: 2.8.8
+ transitivePeerDependencies:
+ - jest
+ - supports-color
+ - typescript
+
+ '@react-native-community/eslint-plugin@1.3.0': {}
+
+ '@react-native/assets-registry@0.74.83': {}
+
+ '@react-native/babel-plugin-codegen@0.74.83(@babel/preset-env@7.24.5)':
+ dependencies:
+ '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.5)
+ transitivePeerDependencies:
+ - '@babel/preset-env'
+ - supports-color
+
+ '@react-native/babel-preset@0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.5)
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.5)
+ '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.24.5)
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.5)
+ '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.5)
+ '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.5)
+ '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.5)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.5)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5)
+ '@babel/plugin-transform-react-jsx-self': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.5)
+ '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5)
+ '@babel/template': 7.24.0
+ '@react-native/babel-plugin-codegen': 0.74.83(@babel/preset-env@7.24.5)
+ babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.5)
+ react-refresh: 0.14.2
+ transitivePeerDependencies:
+ - '@babel/preset-env'
+ - supports-color
+
+ '@react-native/codegen@0.74.83(@babel/preset-env@7.24.5)':
+ dependencies:
+ '@babel/parser': 7.24.5
+ '@babel/preset-env': 7.24.5(@babel/core@7.24.5)
+ glob: 7.2.3
+ hermes-parser: 0.19.1
+ invariant: 2.2.4
+ jscodeshift: 0.14.0(@babel/preset-env@7.24.5)
+ mkdirp: 0.5.6
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@react-native/community-cli-plugin@0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5)':
+ dependencies:
+ '@react-native-community/cli-server-api': 13.6.6
+ '@react-native-community/cli-tools': 13.6.6
+ '@react-native/dev-middleware': 0.74.83
+ '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ chalk: 4.1.2
+ execa: 5.1.1
+ metro: 0.80.9
+ metro-config: 0.80.9
+ metro-core: 0.80.9
+ node-fetch: 2.7.0
+ querystring: 0.2.1
+ readline: 1.3.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@babel/preset-env'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@react-native/debugger-frontend@0.74.83': {}
+
+ '@react-native/dev-middleware@0.74.83':
+ dependencies:
+ '@isaacs/ttlcache': 1.4.1
+ '@react-native/debugger-frontend': 0.74.83
+ '@rnx-kit/chromium-edge-launcher': 1.0.0
+ chrome-launcher: 0.15.2
+ connect: 3.7.0
+ debug: 2.6.9
+ node-fetch: 2.7.0
+ nullthrows: 1.1.1
+ open: 7.4.2
+ selfsigned: 2.4.1
+ serve-static: 1.15.0
+ temp-dir: 2.0.0
+ ws: 6.2.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@react-native/gradle-plugin@0.74.83': {}
+
+ '@react-native/js-polyfills@0.74.83': {}
+
+ '@react-native/metro-babel-transformer@0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5)':
+ dependencies:
+ '@babel/core': 7.24.5
+ '@react-native/babel-preset': 0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ hermes-parser: 0.19.1
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - '@babel/preset-env'
+ - supports-color
+
+ '@react-native/normalize-colors@0.74.83': {}
+
+ '@react-native/virtualized-lists@0.74.83(@types/react@18.2.79)(react-native@0.74.1)(react@18.2.0)':
+ dependencies:
+ '@types/react': 18.2.79
+ invariant: 2.2.4
+ nullthrows: 1.1.1
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ '@react-navigation/bottom-tabs@6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.2.0)':
+ dependencies:
+ '@react-navigation/elements': 1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.2.0)
+ '@react-navigation/native': 6.1.17(react-native@0.74.1)(react@18.2.0)
+ color: 4.2.3
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.2.0)
+ react-native-screens: 3.31.1(react-native@0.74.1)(react@18.2.0)
+ warn-once: 0.1.1
+
+ '@react-navigation/core@6.4.16(react@18.2.0)':
+ dependencies:
+ '@react-navigation/routers': 6.1.9
+ escape-string-regexp: 4.0.0
+ nanoid: 3.3.7
+ query-string: 7.1.3
+ react: 18.2.0
+ react-is: 16.13.1
+ use-latest-callback: 0.1.9(react@18.2.0)
+
+ '@react-navigation/devtools@6.0.26(react@18.2.0)':
+ dependencies:
+ deep-equal: 2.2.3
+ nanoid: 3.3.7
+ react: 18.2.0
+ stacktrace-parser: 0.1.10
+
+ '@react-navigation/elements@1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.2.0)':
+ dependencies:
+ '@react-navigation/native': 6.1.17(react-native@0.74.1)(react@18.2.0)
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.2.0)
+
+ '@react-navigation/native-stack@6.9.26(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.2.0)':
+ dependencies:
+ '@react-navigation/elements': 1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.2.0)
+ '@react-navigation/native': 6.1.17(react-native@0.74.1)(react@18.2.0)
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.2.0)
+ react-native-screens: 3.31.1(react-native@0.74.1)(react@18.2.0)
+ warn-once: 0.1.1
+
+ '@react-navigation/native@6.1.17(react-native@0.74.1)(react@18.2.0)':
+ dependencies:
+ '@react-navigation/core': 6.4.16(react@18.2.0)
+ escape-string-regexp: 4.0.0
+ fast-deep-equal: 3.1.3
+ nanoid: 3.3.7
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ '@react-navigation/routers@6.1.9':
+ dependencies:
+ nanoid: 3.3.7
+
+ '@remix-run/node@2.9.2(typescript@5.3.3)':
+ dependencies:
+ '@remix-run/server-runtime': 2.9.2(typescript@5.3.3)
+ '@remix-run/web-fetch': 4.4.2
+ '@web3-storage/multipart-parser': 1.0.0
+ cookie-signature: 1.2.1
+ source-map-support: 0.5.21
+ stream-slice: 0.1.2
+ typescript: 5.3.3
+ undici: 6.18.0
+
+ '@remix-run/router@1.16.1': {}
+
+ '@remix-run/server-runtime@2.9.2(typescript@5.3.3)':
+ dependencies:
+ '@remix-run/router': 1.16.1
+ '@types/cookie': 0.6.0
+ '@web3-storage/multipart-parser': 1.0.0
+ cookie: 0.6.0
+ set-cookie-parser: 2.6.0
+ source-map: 0.7.4
+ turbo-stream: 2.0.1
+ typescript: 5.3.3
+
+ '@remix-run/web-blob@3.1.0':
+ dependencies:
+ '@remix-run/web-stream': 1.1.0
+ web-encoding: 1.1.5
+
+ '@remix-run/web-fetch@4.4.2':
+ dependencies:
+ '@remix-run/web-blob': 3.1.0
+ '@remix-run/web-file': 3.1.0
+ '@remix-run/web-form-data': 3.1.0
+ '@remix-run/web-stream': 1.1.0
+ '@web3-storage/multipart-parser': 1.0.0
+ abort-controller: 3.0.0
+ data-uri-to-buffer: 3.0.1
+ mrmime: 1.0.1
+
+ '@remix-run/web-file@3.1.0':
+ dependencies:
+ '@remix-run/web-blob': 3.1.0
+
+ '@remix-run/web-form-data@3.1.0':
+ dependencies:
+ web-encoding: 1.1.5
+
+ '@remix-run/web-stream@1.1.0':
+ dependencies:
+ web-streams-polyfill: 3.3.3
+
+ '@rnx-kit/chromium-edge-launcher@1.0.0':
+ dependencies:
+ '@types/node': 18.19.33
+ escape-string-regexp: 4.0.0
+ is-wsl: 2.2.0
+ lighthouse-logger: 1.4.2
+ mkdirp: 1.0.4
+ rimraf: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@samverschueren/stream-to-observable@0.3.1(rxjs@6.6.7)':
+ dependencies:
+ any-observable: 0.3.0(rxjs@6.6.7)
+ rxjs: 6.6.7
+ transitivePeerDependencies:
+ - zenObservable
+
+ '@segment/loosely-validate-event@2.0.0':
+ dependencies:
+ component-type: 1.2.2
+ join-component: 1.1.0
+
+ '@shopify/flash-list@1.6.4(@babel/runtime@7.24.5)(react-native@0.74.1)(react@18.2.0)':
+ dependencies:
+ '@babel/runtime': 7.24.5
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ recyclerlistview: 4.2.0(react-native@0.74.1)(react@18.2.0)
+ tslib: 2.4.0
+
+ '@sideway/address@4.1.5':
+ dependencies:
+ '@hapi/hoek': 9.3.0
+
+ '@sideway/formula@3.0.1': {}
+
+ '@sideway/pinpoint@2.0.0': {}
+
+ '@sinclair/typebox@0.27.8': {}
+
+ '@sindresorhus/is@0.14.0': {}
+
+ '@sindresorhus/is@2.1.1': {}
+
+ '@sindresorhus/is@4.6.0': {}
+
+ '@sinonjs/commons@3.0.1':
+ dependencies:
+ type-detect: 4.0.8
+
+ '@sinonjs/fake-timers@10.3.0':
+ dependencies:
+ '@sinonjs/commons': 3.0.1
+
+ '@szmarczak/http-timer@1.1.2':
+ dependencies:
+ defer-to-connect: 1.1.3
+
+ '@szmarczak/http-timer@4.0.6':
+ dependencies:
+ defer-to-connect: 2.0.1
+
+ '@tanstack/query-core@5.36.1': {}
+
+ '@tanstack/react-query@5.37.1(react@18.2.0)':
+ dependencies:
+ '@tanstack/query-core': 5.36.1
+ react: 18.2.0
+
+ '@testing-library/jest-dom@5.17.0':
+ dependencies:
+ '@adobe/css-tools': 4.3.3
+ '@babel/runtime': 7.24.5
+ '@types/testing-library__jest-dom': 5.14.9
+ aria-query: 5.3.0
+ chalk: 3.0.0
+ css.escape: 1.5.1
+ dom-accessibility-api: 0.5.16
+ lodash: 4.17.21
+ redent: 3.0.0
+
+ '@testing-library/react-native@12.5.0(jest@29.7.0)(react-native@0.74.1)(react-test-renderer@18.3.1)(react@18.2.0)':
+ dependencies:
+ jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2)
+ jest-matcher-utils: 29.7.0
+ pretty-format: 29.7.0
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ react-test-renderer: 18.3.1(react@18.2.0)
+ redent: 3.0.0
+
+ '@tokenizer/token@0.3.0': {}
+
+ '@tootallnate/once@2.0.0': {}
+
+ '@tsconfig/node10@1.0.11': {}
+
+ '@tsconfig/node12@1.0.11': {}
+
+ '@tsconfig/node14@1.0.3': {}
+
+ '@tsconfig/node16@1.0.4': {}
+
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.5
+ '@types/babel__generator': 7.6.8
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.20.5
+
+ '@types/babel__generator@7.6.8':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.5
+
+ '@types/babel__traverse@7.20.5':
+ dependencies:
+ '@babel/types': 7.24.5
+
+ '@types/cacheable-request@6.0.3':
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ '@types/keyv': 3.1.4
+ '@types/node': 20.12.12
+ '@types/responselike': 1.0.3
+
+ '@types/cookie@0.6.0': {}
+
+ '@types/graceful-fs@4.1.9':
+ dependencies:
+ '@types/node': 20.12.12
+
+ '@types/hammerjs@2.0.45': {}
+
+ '@types/http-cache-semantics@4.0.4': {}
+
+ '@types/i18n-js@3.8.9': {}
+
+ '@types/istanbul-lib-coverage@2.0.6': {}
+
+ '@types/istanbul-lib-report@3.0.3':
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.6
+
+ '@types/istanbul-reports@3.0.4':
+ dependencies:
+ '@types/istanbul-lib-report': 3.0.3
+
+ '@types/jest@29.5.12':
+ dependencies:
+ expect: 29.7.0
+ pretty-format: 29.7.0
+
+ '@types/jsdom@20.0.1':
+ dependencies:
+ '@types/node': 20.12.12
+ '@types/tough-cookie': 4.0.5
+ parse5: 7.1.2
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/keyv@3.1.4':
+ dependencies:
+ '@types/node': 20.12.12
+
+ '@types/lodash.memoize@4.1.9':
+ dependencies:
+ '@types/lodash': 4.17.4
+
+ '@types/lodash@4.17.4': {}
+
+ '@types/minimist@1.2.5': {}
+
+ '@types/node-forge@1.3.11':
+ dependencies:
+ '@types/node': 20.12.12
+
+ '@types/node@16.9.1': {}
+
+ '@types/node@18.19.33':
+ dependencies:
+ undici-types: 5.26.5
+
+ '@types/node@20.12.12':
+ dependencies:
+ undici-types: 5.26.5
+
+ '@types/node@20.5.1': {}
+
+ '@types/normalize-package-data@2.4.4': {}
+
+ '@types/parse-json@4.0.2': {}
+
+ '@types/prop-types@15.7.12': {}
+
+ '@types/react-test-renderer@18.3.0':
+ dependencies:
+ '@types/react': 18.2.79
+
+ '@types/react@18.2.79':
+ dependencies:
+ '@types/prop-types': 15.7.12
+ csstype: 3.1.3
+
+ '@types/responselike@1.0.3':
+ dependencies:
+ '@types/node': 20.12.12
+
+ '@types/semver@7.5.8': {}
+
+ '@types/stack-utils@2.0.3': {}
+
+ '@types/testing-library__jest-dom@5.14.9':
+ dependencies:
+ '@types/jest': 29.5.12
+
+ '@types/tough-cookie@4.0.5': {}
+
+ '@types/yargs-parser@21.0.3': {}
+
+ '@types/yargs@15.0.19':
+ dependencies:
+ '@types/yargs-parser': 21.0.3
+
+ '@types/yargs@17.0.32':
+ dependencies:
+ '@types/yargs-parser': 21.0.3
+
+ '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.3.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.10.0
+ '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.3.3)
+ debug: 4.3.4
+ eslint: 8.57.0
+ graphemer: 1.4.0
+ ignore: 5.3.1
+ natural-compare-lite: 1.4.0
+ semver: 7.6.2
+ tsutils: 3.21.0(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.3.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3)
+ debug: 4.3.4
+ eslint: 8.57.0
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@5.62.0':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+
+ '@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.3.3)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.3.3)
+ debug: 4.3.4
+ eslint: 8.57.0
+ tsutils: 3.21.0(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@5.62.0': {}
+
+ '@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3)':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.6.2
+ tsutils: 3.21.0(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.3.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.8
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3)
+ eslint: 8.57.0
+ eslint-scope: 5.1.1
+ semver: 7.6.2
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/visitor-keys@5.62.0':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ eslint-visitor-keys: 3.4.3
+
+ '@ungap/structured-clone@1.2.0': {}
+
+ '@urql/core@2.3.6(graphql@15.8.0)':
+ dependencies:
+ '@graphql-typed-document-node/core': 3.2.0(graphql@15.8.0)
+ graphql: 15.8.0
+ wonka: 4.0.15
+
+ '@urql/exchange-retry@0.3.0(graphql@15.8.0)':
+ dependencies:
+ '@urql/core': 2.3.6(graphql@15.8.0)
+ graphql: 15.8.0
+ wonka: 4.0.15
+
+ '@web3-storage/multipart-parser@1.0.0': {}
+
+ '@xmldom/xmldom@0.7.13': {}
+
+ '@xmldom/xmldom@0.8.10': {}
+
+ '@zxing/text-encoding@0.9.0':
+ optional: true
+
+ JSONStream@1.3.5:
+ dependencies:
+ jsonparse: 1.3.1
+ through: 2.3.8
+
+ abab@2.0.6: {}
+
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
+ accepts@1.3.8:
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
+ acorn-globals@7.0.1:
+ dependencies:
+ acorn: 8.11.3
+ acorn-walk: 8.3.2
+
+ acorn-jsx@5.3.2(acorn@8.11.3):
+ dependencies:
+ acorn: 8.11.3
+
+ acorn-walk@8.3.2: {}
+
+ acorn@8.11.3: {}
+
+ agent-base@6.0.2:
+ dependencies:
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+
+ aggregate-error@3.1.0:
+ dependencies:
+ clean-stack: 2.2.0
+ indent-string: 4.0.0
+
+ ajv-formats@2.1.1(ajv@8.13.0):
+ dependencies:
+ ajv: 8.13.0
+
+ ajv-keywords@5.1.0(ajv@8.13.0):
+ dependencies:
+ ajv: 8.13.0
+ fast-deep-equal: 3.1.3
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ 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.13.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
+
+ anser@1.4.10: {}
+
+ ansi-align@3.0.1:
+ dependencies:
+ string-width: 4.2.3
+
+ ansi-escapes@3.2.0: {}
+
+ ansi-escapes@4.3.2:
+ dependencies:
+ type-fest: 0.21.3
+
+ ansi-escapes@5.0.0:
+ dependencies:
+ type-fest: 1.4.0
+
+ ansi-escapes@6.2.1: {}
+
+ ansi-fragments@0.2.1:
+ dependencies:
+ colorette: 1.4.0
+ slice-ansi: 2.1.0
+ strip-ansi: 5.2.0
+
+ ansi-regex@2.1.1: {}
+
+ ansi-regex@3.0.1: {}
+
+ ansi-regex@4.1.1: {}
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.0.1: {}
+
+ ansi-styles@2.2.1: {}
+
+ ansi-styles@3.2.1:
+ dependencies:
+ color-convert: 1.9.3
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@5.2.0: {}
+
+ ansi-styles@6.2.1: {}
+
+ any-base@1.1.0: {}
+
+ any-observable@0.3.0(rxjs@6.6.7):
+ dependencies:
+ rxjs: 6.6.7
+
+ any-observable@0.5.1(rxjs@6.6.7):
+ dependencies:
+ rxjs: 6.6.7
+
+ any-promise@1.3.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ app-icon-badge@0.0.15:
+ dependencies:
+ color-convert: 2.0.1
+ commander: 11.1.0
+ delta-e: 0.0.8
+ jimp: 0.22.12
+ transitivePeerDependencies:
+ - encoding
+
+ appdirsjs@1.2.7: {}
+
+ application-config-path@0.1.1: {}
+
+ arg@4.1.3: {}
+
+ arg@5.0.2: {}
+
+ argparse@1.0.10:
+ dependencies:
+ sprintf-js: 1.0.3
+
+ argparse@2.0.1: {}
+
+ aria-query@5.3.0:
+ dependencies:
+ dequal: 2.0.3
+
+ array-buffer-byte-length@1.0.1:
+ dependencies:
+ call-bind: 1.0.7
+ is-array-buffer: 3.0.4
+
+ array-ify@1.0.0: {}
+
+ array-includes@3.1.8:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-object-atoms: 1.0.0
+ get-intrinsic: 1.2.4
+ is-string: 1.0.7
+
+ array-union@2.1.0: {}
+
+ array.prototype.findlast@1.2.5:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ es-shim-unscopables: 1.0.2
+
+ array.prototype.flat@1.3.2:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-shim-unscopables: 1.0.2
+
+ array.prototype.flatmap@1.3.2:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-shim-unscopables: 1.0.2
+
+ array.prototype.toreversed@1.1.2:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-shim-unscopables: 1.0.2
+
+ array.prototype.tosorted@1.1.3:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ 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
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ is-array-buffer: 3.0.4
+ is-shared-array-buffer: 1.0.3
+
+ arrify@1.0.1: {}
+
+ asap@2.0.6: {}
+
+ ast-types@0.15.2:
+ dependencies:
+ tslib: 2.6.2
+
+ astral-regex@1.0.0: {}
+
+ async-exit-hook@2.0.1: {}
+
+ async-limiter@1.0.1: {}
+
+ asynckit@0.4.0: {}
+
+ at-least-node@1.0.0: {}
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.0.0
+
+ axios@1.7.1:
+ dependencies:
+ follow-redirects: 1.15.6
+ form-data: 4.0.0
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
+ babel-core@7.0.0-bridge.0(@babel/core@7.24.5):
+ dependencies:
+ '@babel/core': 7.24.5
+
+ babel-jest@29.7.0(@babel/core@7.24.5):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@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.24.5)
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ slash: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-istanbul@6.1.1:
+ dependencies:
+ '@babel/helper-plugin-utils': 7.24.5
+ '@istanbuljs/load-nyc-config': 1.1.0
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-instrument: 5.2.1
+ test-exclude: 6.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-jest-hoist@29.6.3:
+ dependencies:
+ '@babel/template': 7.24.0
+ '@babel/types': 7.24.5
+ '@types/babel__core': 7.20.5
+ '@types/babel__traverse': 7.20.5
+
+ babel-plugin-module-resolver@5.0.2:
+ dependencies:
+ find-babel-config: 2.1.1
+ glob: 9.3.5
+ pkg-up: 3.1.0
+ reselect: 4.1.8
+ resolve: 1.22.8
+
+ babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.5):
+ dependencies:
+ '@babel/compat-data': 7.24.4
+ '@babel/core': 7.24.5
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.5):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5)
+ core-js-compat: 3.37.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.5):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5)
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-react-native-web@0.19.11: {}
+
+ babel-plugin-replace-ts-export-assignment@0.0.2: {}
+
+ babel-plugin-tester@11.0.4(@babel/core@7.24.5):
+ dependencies:
+ '@babel/core': 7.24.5
+ core-js: 3.37.1
+ debug: 4.3.4
+ lodash.mergewith: 4.6.2
+ prettier: 2.8.8
+ strip-indent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.5):
+ dependencies:
+ '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5)
+ transitivePeerDependencies:
+ - '@babel/core'
+
+ babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.5):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5)
+
+ babel-preset-expo@11.0.6(@babel/core@7.24.5)(@babel/preset-env@7.24.5):
+ dependencies:
+ '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5)
+ '@babel/preset-react': 7.24.1(@babel/core@7.24.5)
+ '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5)
+ '@react-native/babel-preset': 0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ babel-plugin-react-native-web: 0.19.11
+ react-refresh: 0.14.2
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@babel/preset-env'
+ - supports-color
+
+ babel-preset-jest@29.6.3(@babel/core@7.24.5):
+ dependencies:
+ '@babel/core': 7.24.5
+ babel-plugin-jest-hoist: 29.6.3
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.5)
+
+ balanced-match@1.0.2: {}
+
+ base64-js@1.5.1: {}
+
+ better-opn@3.0.2:
+ dependencies:
+ open: 8.4.2
+
+ big-integer@1.6.52: {}
+
+ binary-extensions@2.3.0: {}
+
+ 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: {}
+
+ boxen@5.1.2:
+ dependencies:
+ ansi-align: 3.0.1
+ camelcase: 6.3.0
+ chalk: 4.1.2
+ cli-boxes: 2.2.1
+ string-width: 4.2.3
+ type-fest: 0.20.2
+ widest-line: 3.1.0
+ wrap-ansi: 7.0.0
+
+ bplist-creator@0.1.0:
+ dependencies:
+ stream-buffers: 2.2.0
+
+ bplist-parser@0.3.1:
+ dependencies:
+ big-integer: 1.6.52
+
+ bplist-parser@0.3.2:
+ dependencies:
+ big-integer: 1.6.52
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.2:
+ dependencies:
+ fill-range: 7.0.1
+
+ browserslist@4.23.0:
+ dependencies:
+ caniuse-lite: 1.0.30001620
+ electron-to-chromium: 1.4.775
+ node-releases: 2.0.14
+ update-browserslist-db: 1.0.16(browserslist@4.23.0)
+
+ bs-logger@0.2.6:
+ dependencies:
+ fast-json-stable-stringify: 2.1.0
+
+ bser@2.1.1:
+ dependencies:
+ node-int64: 0.4.0
+
+ buffer-alloc-unsafe@1.1.0: {}
+
+ buffer-alloc@1.2.0:
+ dependencies:
+ buffer-alloc-unsafe: 1.1.0
+ buffer-fill: 1.0.0
+
+ buffer-equal@0.0.1: {}
+
+ buffer-fill@1.0.0: {}
+
+ buffer-from@1.1.2: {}
+
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ builtin-modules@3.3.0: {}
+
+ builtins@1.0.3: {}
+
+ bytes@3.0.0: {}
+
+ cacache@18.0.3:
+ dependencies:
+ '@npmcli/fs': 3.1.1
+ fs-minipass: 3.0.3
+ glob: 10.3.15
+ lru-cache: 10.2.2
+ minipass: 7.1.1
+ minipass-collect: 2.0.1
+ minipass-flush: 1.0.5
+ minipass-pipeline: 1.2.4
+ p-map: 4.0.0
+ ssri: 10.0.6
+ tar: 6.2.1
+ unique-filename: 3.0.0
+
+ cacheable-lookup@2.0.1:
+ dependencies:
+ '@types/keyv': 3.1.4
+ keyv: 4.5.4
+
+ cacheable-request@6.1.0:
+ dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 3.1.0
+ lowercase-keys: 2.0.0
+ normalize-url: 4.5.1
+ responselike: 1.0.2
+
+ cacheable-request@7.0.4:
+ dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ lowercase-keys: 2.0.0
+ normalize-url: 6.1.0
+ responselike: 2.0.1
+
+ call-bind@1.0.7:
+ 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:
+ dependencies:
+ callsites: 2.0.0
+
+ caller-path@2.0.0:
+ dependencies:
+ caller-callsite: 2.0.0
+
+ callsites@2.0.0: {}
+
+ callsites@3.1.0: {}
+
+ camelcase-css@2.0.1: {}
+
+ camelcase-keys@6.2.2:
+ dependencies:
+ camelcase: 5.3.1
+ map-obj: 4.3.0
+ quick-lru: 4.0.1
+
+ camelcase@5.3.1: {}
+
+ camelcase@6.3.0: {}
+
+ caniuse-lite@1.0.30001620: {}
+
+ chalk@1.1.3:
+ dependencies:
+ ansi-styles: 2.2.1
+ escape-string-regexp: 1.0.5
+ has-ansi: 2.0.0
+ strip-ansi: 3.0.1
+ supports-color: 2.0.0
+
+ chalk@2.4.2:
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ chalk@3.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.3.0: {}
+
+ char-regex@1.0.2: {}
+
+ char-regex@2.0.1: {}
+
+ chardet@0.7.0: {}
+
+ charenc@0.0.2: {}
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ chownr@2.0.0: {}
+
+ chrome-launcher@0.15.2:
+ dependencies:
+ '@types/node': 20.12.12
+ escape-string-regexp: 4.0.0
+ is-wsl: 2.2.0
+ lighthouse-logger: 1.4.2
+ transitivePeerDependencies:
+ - supports-color
+
+ ci-info@2.0.0: {}
+
+ ci-info@3.9.0: {}
+
+ cjs-module-lexer@1.3.1: {}
+
+ clean-regexp@1.0.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ clean-stack@2.2.0: {}
+
+ cli-boxes@2.2.1: {}
+
+ cli-cursor@2.1.0:
+ dependencies:
+ restore-cursor: 2.0.0
+
+ cli-cursor@3.1.0:
+ dependencies:
+ restore-cursor: 3.1.0
+
+ cli-cursor@4.0.0:
+ dependencies:
+ restore-cursor: 4.0.0
+
+ cli-spinners@2.9.2: {}
+
+ cli-truncate@0.2.1:
+ dependencies:
+ slice-ansi: 0.0.4
+ string-width: 1.0.2
+
+ cli-truncate@3.1.0:
+ dependencies:
+ slice-ansi: 5.0.0
+ string-width: 5.1.2
+
+ cli-width@2.2.1: {}
+
+ cli-width@3.0.0: {}
+
+ cliui@6.0.0:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ clone-deep@4.0.1:
+ dependencies:
+ is-plain-object: 2.0.4
+ kind-of: 6.0.3
+ shallow-clone: 3.0.1
+
+ clone-response@1.0.3:
+ dependencies:
+ mimic-response: 1.0.1
+
+ clone@1.0.4: {}
+
+ clone@2.1.2: {}
+
+ co@4.6.0: {}
+
+ code-point-at@1.1.0: {}
+
+ collect-v8-coverage@1.0.2: {}
+
+ color-convert@1.9.3:
+ dependencies:
+ color-name: 1.1.3
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.3: {}
+
+ color-name@1.1.4: {}
+
+ color-string@1.9.1:
+ dependencies:
+ color-name: 1.1.4
+ simple-swizzle: 0.2.2
+
+ color@4.2.3:
+ dependencies:
+ color-convert: 2.0.1
+ color-string: 1.9.1
+
+ colorette@1.4.0: {}
+
+ colorette@2.0.20: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ command-exists@1.2.9: {}
+
+ commander@11.0.0: {}
+
+ commander@11.1.0: {}
+
+ commander@2.20.3: {}
+
+ commander@4.1.1: {}
+
+ commander@7.2.0: {}
+
+ commander@9.5.0: {}
+
+ commondir@1.0.1: {}
+
+ compare-func@2.0.0:
+ dependencies:
+ array-ify: 1.0.0
+ dot-prop: 5.3.0
+
+ component-type@1.2.2: {}
+
+ compressible@2.0.18:
+ dependencies:
+ mime-db: 1.52.0
+
+ compression@1.7.4:
+ dependencies:
+ accepts: 1.3.8
+ bytes: 3.0.0
+ compressible: 2.0.18
+ debug: 2.6.9
+ on-headers: 1.0.2
+ safe-buffer: 5.1.2
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ concat-map@0.0.1: {}
+
+ configstore@5.0.1:
+ dependencies:
+ dot-prop: 5.3.0
+ graceful-fs: 4.2.11
+ make-dir: 3.1.0
+ unique-string: 2.0.0
+ write-file-atomic: 3.0.3
+ xdg-basedir: 4.0.0
+
+ connect@3.7.0:
+ dependencies:
+ debug: 2.6.9
+ finalhandler: 1.1.2
+ parseurl: 1.3.3
+ utils-merge: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ conventional-changelog-angular@6.0.0:
+ dependencies:
+ compare-func: 2.0.0
+
+ conventional-changelog-conventionalcommits@6.1.0:
+ dependencies:
+ compare-func: 2.0.0
+
+ conventional-commits-parser@4.0.0:
+ dependencies:
+ JSONStream: 1.3.5
+ is-text-path: 1.0.1
+ meow: 8.1.2
+ split2: 3.2.2
+
+ convert-source-map@2.0.0: {}
+
+ cookie-signature@1.2.1: {}
+
+ cookie@0.6.0: {}
+
+ core-js-compat@3.37.1:
+ dependencies:
+ browserslist: 4.23.0
+
+ core-js@3.37.1: {}
+
+ core-util-is@1.0.3: {}
+
+ cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6)(ts-node@10.9.2)(typescript@5.4.5):
+ dependencies:
+ '@types/node': 20.5.1
+ cosmiconfig: 8.3.6(typescript@5.3.3)
+ ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.3.3)
+ typescript: 5.4.5
+
+ cosmiconfig@5.2.1:
+ dependencies:
+ import-fresh: 2.0.0
+ is-directory: 0.3.1
+ js-yaml: 3.14.1
+ parse-json: 4.0.0
+
+ cosmiconfig@7.1.0:
+ dependencies:
+ '@types/parse-json': 4.0.2
+ import-fresh: 3.3.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.2
+
+ cosmiconfig@8.3.6(typescript@5.3.3):
+ dependencies:
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ typescript: 5.3.3
+
+ create-jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2):
+ 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@20.5.1)(ts-node@10.9.2)
+ jest-util: 29.7.0
+ prompts: 2.4.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ create-require@1.1.1: {}
+
+ cross-env@7.0.3:
+ dependencies:
+ cross-spawn: 7.0.3
+
+ cross-fetch@3.1.8:
+ dependencies:
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
+ cross-spawn@6.0.5:
+ dependencies:
+ nice-try: 1.0.5
+ path-key: 2.0.1
+ semver: 5.7.2
+ shebang-command: 1.2.0
+ which: 1.3.1
+
+ cross-spawn@7.0.3:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ crypt@0.0.2: {}
+
+ crypto-random-string@1.0.0: {}
+
+ crypto-random-string@2.0.0: {}
+
+ css-in-js-utils@3.1.0:
+ dependencies:
+ hyphenate-style-name: 1.0.5
+
+ css-select@5.1.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ nth-check: 2.1.1
+
+ css-tree@1.1.3:
+ dependencies:
+ mdn-data: 2.0.14
+ source-map: 0.6.1
+
+ css-what@6.1.0: {}
+
+ css.escape@1.5.1: {}
+
+ cssesc@3.0.0: {}
+
+ cssom@0.3.8: {}
+
+ cssom@0.5.0: {}
+
+ cssstyle@2.3.0:
+ dependencies:
+ cssom: 0.3.8
+
+ csstype@3.1.3: {}
+
+ dag-map@1.0.2: {}
+
+ dargs@7.0.0: {}
+
+ data-uri-to-buffer@3.0.1: {}
+
+ data-urls@3.0.2:
+ dependencies:
+ abab: 2.0.6
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 11.0.0
+
+ data-view-buffer@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.1:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-data-view: 1.0.1
+
+ data-view-byte-offset@1.0.0:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-data-view: 1.0.1
+
+ date-fns@1.30.1: {}
+
+ dayjs@1.11.11: {}
+
+ debug@2.6.9:
+ dependencies:
+ ms: 2.0.0
+
+ debug@3.2.7:
+ dependencies:
+ ms: 2.1.3
+
+ debug@4.3.4:
+ dependencies:
+ ms: 2.1.2
+
+ decamelize-keys@1.1.1:
+ dependencies:
+ decamelize: 1.2.0
+ map-obj: 1.0.1
+
+ decamelize@1.2.0: {}
+
+ decimal.js@10.4.3: {}
+
+ decode-uri-component@0.2.2: {}
+
+ decompress-response@3.3.0:
+ dependencies:
+ mimic-response: 1.0.1
+
+ decompress-response@5.0.0:
+ dependencies:
+ mimic-response: 2.1.0
+
+ dedent@1.5.3: {}
+
+ deep-equal@2.2.3:
+ dependencies:
+ array-buffer-byte-length: 1.0.1
+ call-bind: 1.0.7
+ es-get-iterator: 1.1.3
+ get-intrinsic: 1.2.4
+ is-arguments: 1.1.1
+ is-array-buffer: 3.0.4
+ is-date-object: 1.0.5
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.3
+ isarray: 2.0.5
+ object-is: 1.1.6
+ object-keys: 1.1.1
+ object.assign: 4.1.5
+ regexp.prototype.flags: 1.5.2
+ side-channel: 1.0.6
+ which-boxed-primitive: 1.0.2
+ which-collection: 1.0.2
+ which-typed-array: 1.1.15
+
+ deep-extend@0.6.0: {}
+
+ deep-is@0.1.4: {}
+
+ deepmerge@4.3.1: {}
+
+ default-gateway@4.2.0:
+ dependencies:
+ execa: 1.0.0
+ ip-regex: 2.1.0
+
+ defaults@1.0.4:
+ dependencies:
+ clone: 1.0.4
+
+ defer-to-connect@1.1.3: {}
+
+ defer-to-connect@2.0.1: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ gopd: 1.0.1
+
+ define-lazy-prop@2.0.0: {}
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ del@6.1.1:
+ dependencies:
+ globby: 11.1.0
+ graceful-fs: 4.2.11
+ is-glob: 4.0.3
+ is-path-cwd: 2.2.0
+ is-path-inside: 3.0.3
+ p-map: 4.0.0
+ rimraf: 3.0.2
+ slash: 3.0.0
+
+ delayed-stream@1.0.0: {}
+
+ delta-e@0.0.8: {}
+
+ denodeify@1.2.1: {}
+
+ depd@2.0.0: {}
+
+ dequal@2.0.3: {}
+
+ destroy@1.2.0: {}
+
+ detect-libc@1.0.3: {}
+
+ detect-newline@3.1.0: {}
+
+ didyoumean@1.2.2: {}
+
+ diff-sequences@29.6.3: {}
+
+ diff@3.5.0: {}
+
+ diff@4.0.2: {}
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ dlv@1.1.3: {}
+
+ doctrine@2.1.0:
+ dependencies:
+ esutils: 2.0.3
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+
+ dom-accessibility-api@0.5.16: {}
+
+ dom-serializer@2.0.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+
+ dom-walk@0.1.2: {}
+
+ domelementtype@2.3.0: {}
+
+ domexception@4.0.0:
+ dependencies:
+ webidl-conversions: 7.0.0
+
+ domhandler@5.0.3:
+ dependencies:
+ domelementtype: 2.3.0
+
+ domutils@3.1.0:
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+
+ dot-prop@5.3.0:
+ dependencies:
+ is-obj: 2.0.0
+
+ dot-prop@6.0.1:
+ dependencies:
+ is-obj: 2.0.0
+
+ dotenv-expand@11.0.6:
+ dependencies:
+ dotenv: 16.4.5
+
+ dotenv@16.4.5: {}
+
+ duplexer3@0.1.5: {}
+
+ eastasianwidth@0.2.0: {}
+
+ ee-first@1.1.1: {}
+
+ electron-to-chromium@1.4.775: {}
+
+ elegant-spinner@1.0.1: {}
+
+ emittery@0.13.1: {}
+
+ emoji-regex@8.0.0: {}
+
+ emoji-regex@9.2.2: {}
+
+ encodeurl@1.0.2: {}
+
+ end-of-stream@1.4.4:
+ dependencies:
+ once: 1.4.0
+
+ entities@4.5.0: {}
+
+ env-editor@0.4.2: {}
+
+ envinfo@7.13.0: {}
+
+ eol@0.9.1: {}
+
+ error-ex@1.3.2:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ error-stack-parser@2.1.4:
+ dependencies:
+ stackframe: 1.3.4
+
+ errorhandler@1.5.1:
+ dependencies:
+ accepts: 1.3.8
+ escape-html: 1.0.3
+
+ es-abstract@1.23.3:
+ dependencies:
+ array-buffer-byte-length: 1.0.1
+ arraybuffer.prototype.slice: 1.0.3
+ 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
+ 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
+ globalthis: 1.0.4
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.2
+ has-proto: 1.0.3
+ has-symbols: 1.0.3
+ hasown: 2.0.2
+ internal-slot: 1.0.7
+ is-array-buffer: 3.0.4
+ is-callable: 1.2.7
+ is-data-view: 1.0.1
+ 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.1
+ object-keys: 1.1.1
+ object.assign: 4.1.5
+ regexp.prototype.flags: 1.5.2
+ safe-array-concat: 1.1.2
+ safe-regex-test: 1.0.3
+ string.prototype.trim: 1.2.9
+ string.prototype.trimend: 1.0.8
+ 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
+
+ es-define-property@1.0.0:
+ dependencies:
+ get-intrinsic: 1.2.4
+
+ es-errors@1.3.0: {}
+
+ es-get-iterator@1.1.3:
+ dependencies:
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+ has-symbols: 1.0.3
+ is-arguments: 1.1.1
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-string: 1.0.7
+ isarray: 2.0.5
+ stop-iteration-iterator: 1.0.0
+
+ es-iterator-helpers@1.0.19:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-errors: 1.3.0
+ es-set-tostringtag: 2.0.3
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
+ globalthis: 1.0.4
+ has-property-descriptors: 1.0.2
+ has-proto: 1.0.3
+ has-symbols: 1.0.3
+ internal-slot: 1.0.7
+ iterator.prototype: 1.1.2
+ safe-array-concat: 1.1.2
+
+ es-object-atoms@1.0.0:
+ 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-shim-unscopables@1.0.2:
+ dependencies:
+ hasown: 2.0.2
+
+ es-to-primitive@1.2.1:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.0.5
+ is-symbol: 1.0.4
+
+ escalade@3.1.2: {}
+
+ escape-goat@2.1.1: {}
+
+ escape-goat@3.0.0: {}
+
+ escape-html@1.0.3: {}
+
+ escape-string-regexp@1.0.5: {}
+
+ escape-string-regexp@2.0.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ escodegen@2.1.0:
+ dependencies:
+ esprima: 4.0.1
+ estraverse: 5.3.0
+ esutils: 2.0.3
+ optionalDependencies:
+ source-map: 0.6.1
+
+ eslint-config-prettier@8.10.0(eslint@8.57.0):
+ dependencies:
+ eslint: 8.57.0
+
+ eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0):
+ dependencies:
+ escape-string-regexp: 1.0.5
+ eslint: 8.57.0
+ ignore: 5.3.1
+
+ eslint-plugin-ft-flow@2.0.3(@babel/eslint-parser@7.24.5)(eslint@8.57.0):
+ dependencies:
+ '@babel/eslint-parser': 7.24.5(@babel/core@7.24.5)(eslint@8.57.0)
+ eslint: 8.57.0
+ lodash: 4.17.21
+ string-natural-compare: 3.0.1
+
+ eslint-plugin-i18n-json@4.0.0(eslint@8.57.0):
+ dependencies:
+ '@formatjs/icu-messageformat-parser': 2.7.8
+ chalk: 2.4.2
+ eslint: 8.57.0
+ indent-string: 3.2.0
+ jest-diff: 22.4.3
+ lodash.get: 4.4.2
+ lodash.isequal: 4.5.0
+ lodash.isplainobject: 4.0.6
+ lodash.set: 4.3.2
+ log-symbols: 2.2.0
+ parse-json: 5.2.0
+ plur: 2.1.2
+ pretty-format: 22.4.3
+
+ eslint-plugin-jest@26.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(jest@29.7.0)(typescript@5.3.3):
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.3.3)
+ eslint: 8.57.0
+ jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@2.8.8):
+ dependencies:
+ eslint: 8.57.0
+ eslint-config-prettier: 8.10.0(eslint@8.57.0)
+ prettier: 2.8.8
+ prettier-linter-helpers: 1.0.0
+
+ eslint-plugin-react-hooks@4.6.2(eslint@8.57.0):
+ dependencies:
+ eslint: 8.57.0
+
+ eslint-plugin-react-native-globals@0.1.2: {}
+
+ eslint-plugin-react-native@4.1.0(eslint@8.57.0):
+ dependencies:
+ eslint: 8.57.0
+ eslint-plugin-react-native-globals: 0.1.2
+
+ eslint-plugin-react@7.34.1(eslint@8.57.0):
+ dependencies:
+ array-includes: 3.1.8
+ array.prototype.findlast: 1.2.5
+ array.prototype.flatmap: 1.3.2
+ array.prototype.toreversed: 1.1.2
+ array.prototype.tosorted: 1.1.3
+ doctrine: 2.1.0
+ es-iterator-helpers: 1.0.19
+ eslint: 8.57.0
+ estraverse: 5.3.0
+ jsx-ast-utils: 3.3.5
+ minimatch: 3.1.2
+ object.entries: 1.1.8
+ object.fromentries: 2.0.8
+ object.hasown: 1.1.4
+ object.values: 1.2.0
+ prop-types: 15.8.1
+ resolve: 2.0.0-next.5
+ semver: 6.3.1
+ string.prototype.matchall: 4.0.11
+
+ eslint-plugin-simple-import-sort@10.0.0(eslint@8.57.0):
+ dependencies:
+ eslint: 8.57.0
+
+ eslint-plugin-tailwindcss@3.15.2(tailwindcss@3.3.2):
+ dependencies:
+ fast-glob: 3.3.2
+ postcss: 8.4.38
+ tailwindcss: 3.3.2(ts-node@10.9.2)
+
+ eslint-plugin-testing-library@6.2.2(eslint@8.57.0)(typescript@5.3.3):
+ dependencies:
+ '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.3.3)
+ eslint: 8.57.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-unicorn@46.0.1(eslint@8.57.0):
+ dependencies:
+ '@babel/helper-validator-identifier': 7.24.5
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ ci-info: 3.9.0
+ clean-regexp: 1.0.0
+ eslint: 8.57.0
+ esquery: 1.5.0
+ indent-string: 4.0.0
+ is-builtin-module: 3.2.1
+ jsesc: 3.0.2
+ lodash: 4.17.21
+ pluralize: 8.0.0
+ read-pkg-up: 7.0.1
+ regexp-tree: 0.1.27
+ regjsparser: 0.9.1
+ safe-regex: 2.1.1
+ semver: 7.6.2
+ strip-indent: 3.0.0
+
+ eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0):
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.3.3)
+ eslint: 8.57.0
+ eslint-rule-composer: 0.3.0
+
+ eslint-rule-composer@0.3.0: {}
+
+ eslint-scope@5.1.1:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@2.1.0: {}
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint@8.57.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ '@eslint-community/regexpp': 4.10.0
+ '@eslint/eslintrc': 2.1.4
+ '@eslint/js': 8.57.0
+ '@humanwhocodes/config-array': 0.11.14
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.2.0
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.5.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.24.0
+ graphemer: 1.4.0
+ ignore: 5.3.1
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.0
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.11.3
+ acorn-jsx: 5.3.2(acorn@8.11.3)
+ eslint-visitor-keys: 3.4.3
+
+ esprima@4.0.1: {}
+
+ esquery@1.5.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@4.3.0: {}
+
+ estraverse@5.3.0: {}
+
+ esutils@2.0.3: {}
+
+ etag@1.8.1: {}
+
+ event-target-shim@5.0.1: {}
+
+ eventemitter3@5.0.1: {}
+
+ exec-async@2.2.0: {}
+
+ execa@1.0.0:
+ dependencies:
+ cross-spawn: 6.0.5
+ get-stream: 4.1.0
+ is-stream: 1.1.0
+ npm-run-path: 2.0.2
+ p-finally: 1.0.0
+ signal-exit: 3.0.7
+ strip-eof: 1.0.0
+
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ execa@7.2.0:
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 4.3.1
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.3.0
+ onetime: 6.0.0
+ signal-exit: 3.0.7
+ strip-final-newline: 3.0.0
+
+ exif-parser@0.1.12: {}
+
+ exit@0.1.2: {}
+
+ expect@29.7.0:
+ dependencies:
+ '@jest/expect-utils': 29.7.0
+ jest-get-type: 29.6.3
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+
+ expo-asset@10.0.6(expo@51.0.8):
+ dependencies:
+ '@react-native/assets-registry': 0.74.83
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ expo-constants: 16.0.1(expo@51.0.8)
+ invariant: 2.2.4
+ md5-file: 3.2.3
+ transitivePeerDependencies:
+ - supports-color
+
+ expo-build-properties@0.12.1(expo@51.0.8):
+ dependencies:
+ ajv: 8.13.0
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ semver: 7.6.2
+
+ expo-constants@16.0.1(expo@51.0.8):
+ dependencies:
+ '@expo/config': 9.0.2
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ transitivePeerDependencies:
+ - supports-color
+
+ expo-dev-client@4.0.14(expo@51.0.8):
+ dependencies:
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ expo-dev-launcher: 4.0.15(expo@51.0.8)
+ expo-dev-menu: 5.0.14(expo@51.0.8)
+ expo-dev-menu-interface: 1.8.3(expo@51.0.8)
+ expo-manifests: 0.14.3(expo@51.0.8)
+ expo-updates-interface: 0.16.2(expo@51.0.8)
+ transitivePeerDependencies:
+ - supports-color
+
+ expo-dev-launcher@4.0.15(expo@51.0.8):
+ dependencies:
+ ajv: 8.11.0
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ expo-dev-menu: 5.0.14(expo@51.0.8)
+ expo-manifests: 0.14.3(expo@51.0.8)
+ resolve-from: 5.0.0
+ semver: 7.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ expo-dev-menu-interface@1.8.3(expo@51.0.8):
+ dependencies:
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+
+ expo-dev-menu@5.0.14(expo@51.0.8):
+ dependencies:
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ expo-dev-menu-interface: 1.8.3(expo@51.0.8)
+ semver: 7.6.2
+
+ expo-file-system@17.0.1(expo@51.0.8):
+ dependencies:
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+
+ expo-font@12.0.5(expo@51.0.8):
+ dependencies:
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ fontfaceobserver: 2.3.0
+
+ expo-image@1.12.9(expo@51.0.8):
+ dependencies:
+ '@react-native/assets-registry': 0.74.83
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+
+ expo-json-utils@0.13.1: {}
+
+ expo-keep-awake@13.0.2(expo@51.0.8):
+ dependencies:
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+
+ expo-linking@6.3.1(expo@51.0.8):
+ dependencies:
+ expo-constants: 16.0.1(expo@51.0.8)
+ invariant: 2.2.4
+ transitivePeerDependencies:
+ - expo
+ - supports-color
+
+ expo-localization@15.0.3(expo@51.0.8):
+ dependencies:
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ rtl-detect: 1.1.2
+
+ expo-manifests@0.14.3(expo@51.0.8):
+ dependencies:
+ '@expo/config': 9.0.2
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ expo-json-utils: 0.13.1
+ transitivePeerDependencies:
+ - supports-color
+
+ expo-modules-autolinking@1.11.1:
+ dependencies:
+ chalk: 4.1.2
+ commander: 7.2.0
+ fast-glob: 3.3.2
+ find-up: 5.0.0
+ fs-extra: 9.1.0
+
+ expo-modules-core@1.12.11:
+ dependencies:
+ invariant: 2.2.4
+
+ expo-router@3.5.14(expo-constants@16.0.1)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.1)(expo-status-bar@1.12.1)(expo@51.0.8)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.2.0)(typescript@5.3.3):
+ dependencies:
+ '@expo/metro-runtime': 3.2.1(react-native@0.74.1)
+ '@expo/server': 0.4.2(typescript@5.3.3)
+ '@radix-ui/react-slot': 1.0.1(react@18.2.0)
+ '@react-navigation/bottom-tabs': 6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.2.0)
+ '@react-navigation/native': 6.1.17(react-native@0.74.1)(react@18.2.0)
+ '@react-navigation/native-stack': 6.9.26(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.2.0)
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ expo-constants: 16.0.1(expo@51.0.8)
+ expo-linking: 6.3.1(expo@51.0.8)
+ expo-splash-screen: 0.27.4(expo-modules-autolinking@1.11.1)(expo@51.0.8)
+ expo-status-bar: 1.12.1
+ react-native-helmet-async: 2.0.4(react@18.2.0)
+ react-native-reanimated: 3.10.1(@babel/core@7.24.5)(react-native@0.74.1)(react@18.2.0)
+ react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.2.0)
+ react-native-screens: 3.31.1(react-native@0.74.1)(react@18.2.0)
+ schema-utils: 4.2.0
+ transitivePeerDependencies:
+ - encoding
+ - expo-modules-autolinking
+ - react
+ - react-native
+ - supports-color
+ - typescript
+
+ expo-splash-screen@0.27.4(expo-modules-autolinking@1.11.1)(expo@51.0.8):
+ dependencies:
+ '@expo/prebuild-config': 7.0.3(expo-modules-autolinking@1.11.1)
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ transitivePeerDependencies:
+ - encoding
+ - expo-modules-autolinking
+ - supports-color
+
+ expo-status-bar@1.12.1: {}
+
+ expo-system-ui@3.0.4(expo@51.0.8):
+ dependencies:
+ '@react-native/normalize-colors': 0.74.83
+ debug: 4.3.4
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ transitivePeerDependencies:
+ - supports-color
+
+ expo-updates-interface@0.16.2(expo@51.0.8):
+ dependencies:
+ expo: 51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+
+ expo@51.0.8(@babel/core@7.24.5)(@babel/preset-env@7.24.5):
+ dependencies:
+ '@babel/runtime': 7.24.5
+ '@expo/cli': 0.18.13(expo-modules-autolinking@1.11.1)
+ '@expo/config': 9.0.2
+ '@expo/config-plugins': 8.0.4
+ '@expo/metro-config': 0.18.4
+ '@expo/vector-icons': 14.0.2
+ babel-preset-expo: 11.0.6(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ expo-asset: 10.0.6(expo@51.0.8)
+ expo-file-system: 17.0.1(expo@51.0.8)
+ expo-font: 12.0.5(expo@51.0.8)
+ expo-keep-awake: 13.0.2(expo@51.0.8)
+ expo-modules-autolinking: 1.11.1
+ expo-modules-core: 1.12.11
+ fbemitter: 3.0.0
+ whatwg-url-without-unicode: 8.0.0-3
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@babel/preset-env'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ external-editor@3.1.0:
+ dependencies:
+ chardet: 0.7.0
+ iconv-lite: 0.4.24
+ tmp: 0.0.33
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.3.0: {}
+
+ fast-glob@3.3.2:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fast-loops@1.1.3: {}
+
+ fast-xml-parser@4.4.0:
+ dependencies:
+ strnum: 1.0.5
+
+ fastq@1.17.1:
+ dependencies:
+ reusify: 1.0.4
+
+ fb-watchman@2.0.2:
+ dependencies:
+ bser: 2.1.1
+
+ fbemitter@3.0.0:
+ dependencies:
+ fbjs: 3.0.5
+ transitivePeerDependencies:
+ - encoding
+
+ fbjs-css-vars@1.0.2: {}
+
+ fbjs@3.0.5:
+ dependencies:
+ cross-fetch: 3.1.8
+ 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.37
+ transitivePeerDependencies:
+ - encoding
+
+ fetch-retry@4.1.1: {}
+
+ figures@1.7.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+ object-assign: 4.1.1
+
+ figures@2.0.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ figures@3.2.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ file-entry-cache@6.0.1:
+ dependencies:
+ flat-cache: 3.2.0
+
+ file-type@16.5.4:
+ dependencies:
+ readable-web-to-node-stream: 3.0.2
+ strtok3: 6.3.0
+ token-types: 4.2.1
+
+ fill-range@7.0.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ filter-obj@1.1.0: {}
+
+ finalhandler@1.1.2:
+ dependencies:
+ debug: 2.6.9
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ on-finished: 2.3.0
+ parseurl: 1.3.3
+ statuses: 1.5.0
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ find-babel-config@2.1.1:
+ dependencies:
+ json5: 2.2.3
+ path-exists: 4.0.0
+
+ find-cache-dir@2.1.0:
+ dependencies:
+ commondir: 1.0.1
+ make-dir: 2.1.0
+ pkg-dir: 3.0.0
+
+ find-up@3.0.0:
+ dependencies:
+ locate-path: 3.0.0
+
+ find-up@4.1.0:
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ find-yarn-workspace-root@2.0.0:
+ dependencies:
+ micromatch: 4.0.5
+
+ flat-cache@3.2.0:
+ dependencies:
+ flatted: 3.3.1
+ keyv: 4.5.4
+ rimraf: 3.0.2
+
+ flatted@3.3.1: {}
+
+ flow-enums-runtime@0.0.6: {}
+
+ flow-parser@0.236.0: {}
+
+ follow-redirects@1.15.6: {}
+
+ fontfaceobserver@2.3.0: {}
+
+ for-each@0.3.3:
+ dependencies:
+ is-callable: 1.2.7
+
+ foreground-child@3.1.1:
+ dependencies:
+ cross-spawn: 7.0.3
+ signal-exit: 4.1.0
+
+ form-data@3.0.1:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ form-data@4.0.0:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ framer-motion@6.5.1(react-dom@18.2.0)(react@18.2.0):
+ dependencies:
+ '@motionone/dom': 10.12.0
+ framesync: 6.0.1
+ hey-listen: 1.0.8
+ popmotion: 11.0.3
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ style-value-types: 5.0.0
+ tslib: 2.6.2
+ optionalDependencies:
+ '@emotion/is-prop-valid': 0.8.8
+
+ framesync@6.0.1:
+ dependencies:
+ tslib: 2.6.2
+
+ freeport-async@2.0.0: {}
+
+ fresh@0.5.2: {}
+
+ fs-extra@11.2.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-extra@8.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+
+ fs-extra@9.0.0:
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 1.0.0
+
+ fs-extra@9.1.0:
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-minipass@2.1.0:
+ dependencies:
+ minipass: 3.3.6
+
+ fs-minipass@3.0.3:
+ dependencies:
+ minipass: 7.1.1
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.6:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ functions-have-names: 1.2.3
+
+ functions-have-names@1.2.3: {}
+
+ gensync@1.0.0-beta.2: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-intrinsic@1.2.4:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ has-proto: 1.0.3
+ has-symbols: 1.0.3
+ hasown: 2.0.2
+
+ get-package-type@0.1.0: {}
+
+ get-port@3.2.0: {}
+
+ get-stream@4.1.0:
+ dependencies:
+ pump: 3.0.0
+
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.0
+
+ get-stream@6.0.1: {}
+
+ get-symbol-description@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+
+ getenv@1.0.0: {}
+
+ gifwrap@0.10.1:
+ dependencies:
+ image-q: 4.0.0
+ omggif: 1.0.10
+
+ git-raw-commits@2.0.11:
+ dependencies:
+ dargs: 7.0.0
+ lodash: 4.17.21
+ meow: 8.1.2
+ split2: 3.2.2
+ through2: 4.0.2
+
+ github-url-from-git@1.5.0: {}
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@10.3.15:
+ dependencies:
+ foreground-child: 3.1.1
+ jackspeak: 2.3.6
+ minimatch: 9.0.4
+ minipass: 7.1.1
+ path-scurry: 1.11.1
+
+ glob@6.0.4:
+ dependencies:
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ optional: true
+
+ glob@7.1.6:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ glob@9.3.5:
+ dependencies:
+ fs.realpath: 1.0.0
+ minimatch: 8.0.4
+ minipass: 4.2.8
+ path-scurry: 1.11.1
+
+ global-dirs@0.1.1:
+ dependencies:
+ ini: 1.3.8
+
+ global-dirs@2.1.0:
+ dependencies:
+ ini: 1.3.7
+
+ global-dirs@3.0.1:
+ dependencies:
+ ini: 2.0.0
+
+ global@4.4.0:
+ dependencies:
+ min-document: 2.19.0
+ process: 0.11.10
+
+ globals@11.12.0: {}
+
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.0.1
+
+ globby@11.1.0:
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.2
+ ignore: 5.3.1
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ gopd@1.0.1:
+ dependencies:
+ get-intrinsic: 1.2.4
+
+ got@10.7.0:
+ dependencies:
+ '@sindresorhus/is': 2.1.1
+ '@szmarczak/http-timer': 4.0.6
+ '@types/cacheable-request': 6.0.3
+ '@types/keyv': 3.1.4
+ '@types/responselike': 1.0.3
+ cacheable-lookup: 2.0.1
+ cacheable-request: 7.0.4
+ decompress-response: 5.0.0
+ duplexer3: 0.1.5
+ get-stream: 5.2.0
+ lowercase-keys: 2.0.0
+ mimic-response: 2.1.0
+ p-cancelable: 2.1.1
+ p-event: 4.2.0
+ responselike: 2.0.1
+ to-readable-stream: 2.1.0
+ type-fest: 0.10.0
+
+ got@9.6.0:
+ dependencies:
+ '@sindresorhus/is': 0.14.0
+ '@szmarczak/http-timer': 1.1.2
+ '@types/keyv': 3.1.4
+ '@types/responselike': 1.0.3
+ cacheable-request: 6.1.0
+ decompress-response: 3.3.0
+ duplexer3: 0.1.5
+ get-stream: 4.1.0
+ lowercase-keys: 1.0.1
+ mimic-response: 1.0.1
+ p-cancelable: 1.1.0
+ to-readable-stream: 1.0.0
+ url-parse-lax: 3.0.0
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ graphql-tag@2.12.6(graphql@15.8.0):
+ dependencies:
+ graphql: 15.8.0
+ tslib: 2.6.2
+
+ graphql@15.8.0: {}
+
+ hard-rejection@2.1.0: {}
+
+ has-ansi@2.0.0:
+ dependencies:
+ ansi-regex: 2.1.1
+
+ has-bigints@1.0.2: {}
+
+ has-flag@3.0.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.0
+
+ has-proto@1.0.3: {}
+
+ has-symbols@1.0.3: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.0.3
+
+ has-yarn@2.1.0: {}
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ hermes-estree@0.19.1: {}
+
+ hermes-estree@0.20.1: {}
+
+ hermes-parser@0.19.1:
+ dependencies:
+ hermes-estree: 0.19.1
+
+ hermes-parser@0.20.1:
+ dependencies:
+ hermes-estree: 0.20.1
+
+ hermes-profile-transformer@0.0.6:
+ dependencies:
+ source-map: 0.7.4
+
+ hey-listen@1.0.8: {}
+
+ hoist-non-react-statics@3.3.2:
+ dependencies:
+ react-is: 16.13.1
+
+ hosted-git-info@2.8.9: {}
+
+ hosted-git-info@3.0.8:
+ dependencies:
+ lru-cache: 6.0.0
+
+ hosted-git-info@4.1.0:
+ dependencies:
+ lru-cache: 6.0.0
+
+ html-encoding-sniffer@3.0.0:
+ dependencies:
+ whatwg-encoding: 2.0.0
+
+ html-escaper@2.0.2: {}
+
+ html-parse-stringify@3.0.1:
+ dependencies:
+ void-elements: 3.1.0
+
+ http-cache-semantics@4.1.1: {}
+
+ http-errors@2.0.0:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+
+ http-proxy-agent@5.0.0:
+ dependencies:
+ '@tootallnate/once': 2.0.0
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+
+ https-proxy-agent@5.0.1:
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+
+ human-signals@2.1.0: {}
+
+ human-signals@4.3.1: {}
+
+ husky@8.0.3: {}
+
+ hyphenate-style-name@1.0.5: {}
+
+ i18next@22.5.1:
+ dependencies:
+ '@babel/runtime': 7.24.5
+
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
+ ignore-walk@3.0.4:
+ dependencies:
+ minimatch: 3.1.2
+
+ ignore@5.3.1: {}
+
+ image-q@4.0.0:
+ dependencies:
+ '@types/node': 16.9.1
+
+ image-size@1.1.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:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ import-lazy@2.1.0: {}
+
+ import-local@3.1.0:
+ dependencies:
+ pkg-dir: 4.2.0
+ resolve-cwd: 3.0.0
+
+ imurmurhash@0.1.4: {}
+
+ indent-string@3.2.0: {}
+
+ indent-string@4.0.0: {}
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ ini@1.3.7: {}
+
+ ini@1.3.8: {}
+
+ ini@2.0.0: {}
+
+ inline-style-prefixer@6.0.4:
+ dependencies:
+ css-in-js-utils: 3.1.0
+ fast-loops: 1.1.3
+
+ inquirer-autosubmit-prompt@0.2.0:
+ dependencies:
+ chalk: 2.4.2
+ inquirer: 6.5.2
+ rxjs: 6.6.7
+
+ inquirer@6.5.2:
+ dependencies:
+ ansi-escapes: 3.2.0
+ chalk: 2.4.2
+ cli-cursor: 2.1.0
+ cli-width: 2.2.1
+ external-editor: 3.1.0
+ figures: 2.0.0
+ lodash: 4.17.21
+ mute-stream: 0.0.7
+ run-async: 2.4.1
+ rxjs: 6.6.7
+ string-width: 2.1.1
+ strip-ansi: 5.2.0
+ through: 2.3.8
+
+ inquirer@7.3.3:
+ dependencies:
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-width: 3.0.0
+ external-editor: 3.1.0
+ figures: 3.2.0
+ lodash: 4.17.21
+ mute-stream: 0.0.8
+ run-async: 2.4.1
+ rxjs: 6.6.7
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ through: 2.3.8
+
+ internal-ip@4.3.0:
+ dependencies:
+ default-gateway: 4.2.0
+ ipaddr.js: 1.9.1
+
+ internal-slot@1.0.7:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.2
+ side-channel: 1.0.6
+
+ invariant@2.2.4:
+ dependencies:
+ loose-envify: 1.4.0
+
+ ip-regex@2.1.0: {}
+
+ ipaddr.js@1.9.1: {}
+
+ irregular-plurals@1.4.0: {}
+
+ is-arguments@1.1.1:
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+
+ is-array-buffer@3.0.4:
+ dependencies:
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+
+ 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-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-boolean-object@1.1.2:
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+
+ is-buffer@1.1.6: {}
+
+ is-builtin-module@3.2.1:
+ dependencies:
+ builtin-modules: 3.3.0
+
+ is-callable@1.2.7: {}
+
+ is-ci@2.0.0:
+ dependencies:
+ ci-info: 2.0.0
+
+ is-core-module@2.13.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-data-view@1.0.1:
+ dependencies:
+ is-typed-array: 1.1.13
+
+ is-date-object@1.0.5:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-directory@0.3.1: {}
+
+ is-docker@2.2.1: {}
+
+ is-extglob@1.0.0: {}
+
+ is-extglob@2.1.1: {}
+
+ is-finalizationregistry@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+
+ is-fullwidth-code-point@1.0.0:
+ dependencies:
+ number-is-nan: 1.0.1
+
+ is-fullwidth-code-point@2.0.0: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-fullwidth-code-point@4.0.0: {}
+
+ is-function@1.0.2: {}
+
+ is-generator-fn@2.1.0: {}
+
+ is-generator-function@1.0.10:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-glob@2.0.1:
+ dependencies:
+ is-extglob: 1.0.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-installed-globally@0.3.2:
+ dependencies:
+ global-dirs: 2.1.0
+ is-path-inside: 3.0.3
+
+ is-installed-globally@0.4.0:
+ dependencies:
+ global-dirs: 3.0.1
+ is-path-inside: 3.0.3
+
+ is-interactive@1.0.0: {}
+
+ is-invalid-path@0.1.0:
+ dependencies:
+ is-glob: 2.0.1
+
+ is-map@2.0.3: {}
+
+ is-negative-zero@2.0.3: {}
+
+ is-npm@5.0.0: {}
+
+ is-number-object@1.0.7:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-number@7.0.0: {}
+
+ is-obj@2.0.0: {}
+
+ is-observable@1.1.0:
+ dependencies:
+ symbol-observable: 1.2.0
+
+ is-path-cwd@2.2.0: {}
+
+ is-path-inside@3.0.3: {}
+
+ is-plain-obj@1.1.0: {}
+
+ is-plain-object@2.0.4:
+ dependencies:
+ isobject: 3.0.1
+
+ is-potential-custom-element-name@1.0.1: {}
+
+ is-promise@2.2.2: {}
+
+ is-regex@1.1.4:
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+
+ is-scoped@2.1.0:
+ dependencies:
+ scoped-regex: 2.1.0
+
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.3:
+ dependencies:
+ call-bind: 1.0.7
+
+ is-stream@1.1.0: {}
+
+ is-stream@2.0.1: {}
+
+ is-stream@3.0.0: {}
+
+ is-string@1.0.7:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-symbol@1.0.4:
+ dependencies:
+ has-symbols: 1.0.3
+
+ is-text-path@1.0.1:
+ dependencies:
+ text-extensions: 1.9.0
+
+ is-typed-array@1.1.13:
+ dependencies:
+ which-typed-array: 1.1.15
+
+ is-typedarray@1.0.0: {}
+
+ is-unicode-supported@0.1.0: {}
+
+ is-url-superb@4.0.0: {}
+
+ is-valid-path@0.1.1:
+ dependencies:
+ is-invalid-path: 0.1.0
+
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+
+ is-weakset@2.0.3:
+ dependencies:
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+
+ is-wsl@1.1.0: {}
+
+ is-wsl@2.2.0:
+ dependencies:
+ is-docker: 2.2.1
+
+ is-yarn-global@0.3.0: {}
+
+ isarray@1.0.0: {}
+
+ isarray@2.0.5: {}
+
+ isexe@2.0.0: {}
+
+ isobject@3.0.1: {}
+
+ isomorphic-fetch@3.0.0:
+ dependencies:
+ node-fetch: 2.7.0
+ whatwg-fetch: 3.6.20
+ transitivePeerDependencies:
+ - encoding
+
+ issue-regex@3.1.0: {}
+
+ istanbul-lib-coverage@3.2.2: {}
+
+ istanbul-lib-instrument@5.2.1:
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/parser': 7.24.5
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.2
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-lib-instrument@6.0.2:
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/parser': 7.24.5
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.2
+ semver: 7.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-lib-report@3.0.1:
+ dependencies:
+ istanbul-lib-coverage: 3.2.2
+ make-dir: 4.0.0
+ supports-color: 7.2.0
+
+ istanbul-lib-source-maps@4.0.1:
+ dependencies:
+ debug: 4.3.4
+ istanbul-lib-coverage: 3.2.2
+ source-map: 0.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-reports@3.1.7:
+ dependencies:
+ html-escaper: 2.0.2
+ istanbul-lib-report: 3.0.1
+
+ iterator.prototype@1.1.2:
+ dependencies:
+ define-properties: 1.2.1
+ get-intrinsic: 1.2.4
+ has-symbols: 1.0.3
+ reflect.getprototypeof: 1.0.6
+ set-function-name: 2.0.2
+
+ jackspeak@2.3.6:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
+ jest-changed-files@29.7.0:
+ dependencies:
+ execa: 5.1.1
+ jest-util: 29.7.0
+ p-limit: 3.1.0
+
+ jest-circus@29.7.0:
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/expect': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ chalk: 4.1.2
+ co: 4.6.0
+ dedent: 1.5.3
+ is-generator-fn: 2.1.0
+ jest-each: 29.7.0
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-runtime: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
+ p-limit: 3.1.0
+ pretty-format: 29.7.0
+ pure-rand: 6.1.0
+ slash: 3.0.0
+ stack-utils: 2.0.6
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
+ jest-cli@29.7.0(@types/node@20.5.1)(ts-node@10.9.2):
+ dependencies:
+ '@jest/core': 29.7.0(ts-node@10.9.2)
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
+ chalk: 4.1.2
+ create-jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2)
+ exit: 0.1.2
+ import-local: 3.1.0
+ jest-config: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2)
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ jest-config@29.7.0(@types/node@20.12.12)(ts-node@10.9.2):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@jest/test-sequencer': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ babel-jest: 29.7.0(@babel/core@7.24.5)
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ deepmerge: 4.3.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-circus: 29.7.0
+ jest-environment-node: 29.7.0
+ jest-get-type: 29.6.3
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-runner: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ micromatch: 4.0.5
+ parse-json: 5.2.0
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.3.3)
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
+ jest-config@29.7.0(@types/node@20.5.1)(ts-node@10.9.2):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@jest/test-sequencer': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.5.1
+ babel-jest: 29.7.0(@babel/core@7.24.5)
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ deepmerge: 4.3.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-circus: 29.7.0
+ jest-environment-node: 29.7.0
+ jest-get-type: 29.6.3
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-runner: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ micromatch: 4.0.5
+ parse-json: 5.2.0
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.3.3)
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
+ jest-diff@22.4.3:
+ dependencies:
+ chalk: 2.4.2
+ diff: 3.5.0
+ jest-get-type: 22.4.3
+ pretty-format: 22.4.3
+
+ jest-diff@29.7.0:
+ dependencies:
+ chalk: 4.1.2
+ diff-sequences: 29.6.3
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
+
+ jest-docblock@29.7.0:
+ dependencies:
+ detect-newline: 3.1.0
+
+ jest-each@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ chalk: 4.1.2
+ jest-get-type: 29.6.3
+ jest-util: 29.7.0
+ pretty-format: 29.7.0
+
+ jest-environment-jsdom@29.7.0:
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/fake-timers': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/jsdom': 20.0.1
+ '@types/node': 20.12.12
+ jest-mock: 29.7.0
+ jest-util: 29.7.0
+ jsdom: 20.0.3
+ 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': 20.12.12
+ jest-mock: 29.7.0
+ jest-util: 29.7.0
+
+ jest-expo@51.0.2(@babel/core@7.24.5)(jest@29.7.0)(react@18.2.0):
+ dependencies:
+ '@expo/config': 9.0.2
+ '@expo/json-file': 8.3.3
+ '@jest/create-cache-key-function': 29.7.0
+ babel-jest: 29.7.0(@babel/core@7.24.5)
+ find-up: 5.0.0
+ jest-environment-jsdom: 29.7.0
+ jest-watch-select-projects: 2.0.0
+ jest-watch-typeahead: 2.2.1(jest@29.7.0)
+ json5: 2.2.3
+ lodash: 4.17.21
+ react-test-renderer: 18.2.0(react@18.2.0)
+ stacktrace-js: 2.0.2
+ transitivePeerDependencies:
+ - '@babel/core'
+ - bufferutil
+ - canvas
+ - jest
+ - react
+ - supports-color
+ - utf-8-validate
+
+ jest-get-type@22.4.3: {}
+
+ jest-get-type@29.6.3: {}
+
+ jest-haste-map@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/graceful-fs': 4.1.9
+ '@types/node': 20.12.12
+ anymatch: 3.1.3
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ jest-regex-util: 29.6.3
+ jest-util: 29.7.0
+ jest-worker: 29.7.0
+ micromatch: 4.0.5
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ jest-junit@16.0.0:
+ dependencies:
+ mkdirp: 1.0.4
+ strip-ansi: 6.0.1
+ uuid: 8.3.2
+ xml: 1.0.1
+
+ jest-leak-detector@29.7.0:
+ dependencies:
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
+
+ jest-matcher-utils@29.7.0:
+ dependencies:
+ chalk: 4.1.2
+ jest-diff: 29.7.0
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
+
+ jest-message-util@29.7.0:
+ dependencies:
+ '@babel/code-frame': 7.24.2
+ '@jest/types': 29.6.3
+ '@types/stack-utils': 2.0.3
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ micromatch: 4.0.5
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ stack-utils: 2.0.6
+
+ jest-mock@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ jest-util: 29.7.0
+
+ jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
+ dependencies:
+ jest-resolve: 29.7.0
+
+ jest-regex-util@29.6.3: {}
+
+ jest-resolve-dependencies@29.7.0:
+ dependencies:
+ jest-regex-util: 29.6.3
+ jest-snapshot: 29.7.0
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-resolve@29.7.0:
+ dependencies:
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.7.0
+ 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
+ slash: 3.0.0
+
+ jest-runner@29.7.0:
+ dependencies:
+ '@jest/console': 29.7.0
+ '@jest/environment': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ chalk: 4.1.2
+ emittery: 0.13.1
+ graceful-fs: 4.2.11
+ jest-docblock: 29.7.0
+ jest-environment-node: 29.7.0
+ jest-haste-map: 29.7.0
+ jest-leak-detector: 29.7.0
+ jest-message-util: 29.7.0
+ jest-resolve: 29.7.0
+ jest-runtime: 29.7.0
+ jest-util: 29.7.0
+ jest-watcher: 29.7.0
+ jest-worker: 29.7.0
+ p-limit: 3.1.0
+ source-map-support: 0.5.13
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-runtime@29.7.0:
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/fake-timers': 29.7.0
+ '@jest/globals': 29.7.0
+ '@jest/source-map': 29.6.3
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ chalk: 4.1.2
+ cjs-module-lexer: 1.3.1
+ collect-v8-coverage: 1.0.2
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-haste-map: 29.7.0
+ jest-message-util: 29.7.0
+ jest-mock: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
+ slash: 3.0.0
+ strip-bom: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-snapshot@29.7.0:
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/generator': 7.24.5
+ '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5)
+ '@babel/types': 7.24.5
+ '@jest/expect-utils': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.5)
+ chalk: 4.1.2
+ expect: 29.7.0
+ graceful-fs: 4.2.11
+ jest-diff: 29.7.0
+ jest-get-type: 29.6.3
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+ natural-compare: 1.4.0
+ pretty-format: 29.7.0
+ semver: 7.6.2
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-util@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ graceful-fs: 4.2.11
+ picomatch: 2.3.1
+
+ jest-validate@29.7.0:
+ dependencies:
+ '@jest/types': 29.6.3
+ camelcase: 6.3.0
+ chalk: 4.1.2
+ jest-get-type: 29.6.3
+ leven: 3.1.0
+ pretty-format: 29.7.0
+
+ jest-watch-select-projects@2.0.0:
+ dependencies:
+ ansi-escapes: 4.3.2
+ chalk: 3.0.0
+ prompts: 2.4.2
+
+ jest-watch-typeahead@2.2.1(jest@29.7.0):
+ dependencies:
+ ansi-escapes: 6.2.1
+ chalk: 4.1.2
+ jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2)
+ 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
+
+ jest-watcher@29.7.0:
+ dependencies:
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.12.12
+ 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@29.7.0:
+ dependencies:
+ '@types/node': 20.12.12
+ jest-util: 29.7.0
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ jest@29.7.0(@types/node@20.5.1)(ts-node@10.9.2):
+ dependencies:
+ '@jest/core': 29.7.0(ts-node@10.9.2)
+ '@jest/types': 29.6.3
+ import-local: 3.1.0
+ jest-cli: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2)
+ transitivePeerDependencies:
+ - '@types/node'
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ jimp-compact@0.16.1: {}
+
+ jimp@0.22.12:
+ dependencies:
+ '@jimp/custom': 0.22.12
+ '@jimp/plugins': 0.22.12(@jimp/custom@0.22.12)
+ '@jimp/types': 0.22.12(@jimp/custom@0.22.12)
+ regenerator-runtime: 0.13.11
+ transitivePeerDependencies:
+ - encoding
+
+ jiti@1.21.0: {}
+
+ joi@17.13.1:
+ dependencies:
+ '@hapi/hoek': 9.3.0
+ '@hapi/topo': 5.1.0
+ '@sideway/address': 4.1.5
+ '@sideway/formula': 3.0.1
+ '@sideway/pinpoint': 2.0.0
+
+ join-component@1.1.0: {}
+
+ jpeg-js@0.4.4: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@3.14.1:
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsc-android@250231.0.0: {}
+
+ jsc-safe-url@0.2.4: {}
+
+ jscodeshift@0.14.0(@babel/preset-env@7.24.5):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/parser': 7.24.5
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.5)
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.5)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.5)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5)
+ '@babel/preset-env': 7.24.5(@babel/core@7.24.5)
+ '@babel/preset-flow': 7.24.1(@babel/core@7.24.5)
+ '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5)
+ '@babel/register': 7.23.7(@babel/core@7.24.5)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.24.5)
+ chalk: 4.1.2
+ flow-parser: 0.236.0
+ graceful-fs: 4.2.11
+ micromatch: 4.0.5
+ neo-async: 2.6.2
+ node-dir: 0.1.17
+ recast: 0.21.5
+ temp: 0.8.4
+ write-file-atomic: 2.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ jsdom@20.0.3:
+ dependencies:
+ abab: 2.0.6
+ acorn: 8.11.3
+ acorn-globals: 7.0.1
+ cssom: 0.5.0
+ cssstyle: 2.3.0
+ data-urls: 3.0.2
+ decimal.js: 10.4.3
+ domexception: 4.0.0
+ escodegen: 2.1.0
+ form-data: 4.0.0
+ 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.10
+ parse5: 7.1.2
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 4.1.4
+ w3c-xmlserializer: 4.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 2.0.0
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 11.0.0
+ ws: 8.17.0
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ jsesc@0.5.0: {}
+
+ jsesc@2.5.2: {}
+
+ jsesc@3.0.2: {}
+
+ json-buffer@3.0.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-better-errors@1.0.2: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-deref-sync@0.13.0:
+ dependencies:
+ clone: 2.1.2
+ dag-map: 1.0.2
+ is-valid-path: 0.1.1
+ lodash: 4.17.21
+ md5: 2.2.1
+ memory-cache: 0.2.0
+ traverse: 0.6.9
+ valid-url: 1.0.9
+
+ json-schema-traverse@0.4.1: {}
+
+ json-schema-traverse@1.0.0: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@2.2.3: {}
+
+ jsonfile@4.0.0:
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonparse@1.3.1: {}
+
+ jsx-ast-utils@3.3.5:
+ dependencies:
+ array-includes: 3.1.8
+ array.prototype.flat: 1.3.2
+ object.assign: 4.1.5
+ object.values: 1.2.0
+
+ keyv@3.1.0:
+ dependencies:
+ json-buffer: 3.0.0
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ kind-of@6.0.3: {}
+
+ kleur@3.0.3: {}
+
+ latest-version@5.1.0:
+ dependencies:
+ package-json: 6.5.0
+
+ leven@3.1.0: {}
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ lighthouse-logger@1.4.2:
+ dependencies:
+ debug: 2.6.9
+ marky: 1.2.5
+ transitivePeerDependencies:
+ - supports-color
+
+ lightningcss-darwin-arm64@1.19.0:
+ optional: true
+
+ lightningcss-darwin-arm64@1.22.0:
+ optional: true
+
+ lightningcss-darwin-x64@1.19.0:
+ optional: true
+
+ lightningcss-darwin-x64@1.22.0:
+ optional: true
+
+ lightningcss-freebsd-x64@1.22.0:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.19.0:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.22.0:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.19.0:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.22.0:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.19.0:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.22.0:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.19.0:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.22.0:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.19.0:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.22.0:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.19.0:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.22.0:
+ optional: true
+
+ lightningcss@1.19.0:
+ dependencies:
+ detect-libc: 1.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.19.0
+ lightningcss-darwin-x64: 1.19.0
+ lightningcss-linux-arm-gnueabihf: 1.19.0
+ lightningcss-linux-arm64-gnu: 1.19.0
+ lightningcss-linux-arm64-musl: 1.19.0
+ lightningcss-linux-x64-gnu: 1.19.0
+ lightningcss-linux-x64-musl: 1.19.0
+ lightningcss-win32-x64-msvc: 1.19.0
+
+ lightningcss@1.22.0:
+ dependencies:
+ detect-libc: 1.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.22.0
+ lightningcss-darwin-x64: 1.22.0
+ lightningcss-freebsd-x64: 1.22.0
+ lightningcss-linux-arm-gnueabihf: 1.22.0
+ lightningcss-linux-arm64-gnu: 1.22.0
+ lightningcss-linux-arm64-musl: 1.22.0
+ lightningcss-linux-x64-gnu: 1.22.0
+ lightningcss-linux-x64-musl: 1.22.0
+ lightningcss-win32-x64-msvc: 1.22.0
+
+ lilconfig@2.1.0: {}
+
+ lilconfig@3.1.1: {}
+
+ lines-and-columns@1.2.4: {}
+
+ lint-staged@13.3.0:
+ dependencies:
+ chalk: 5.3.0
+ commander: 11.0.0
+ debug: 4.3.4
+ execa: 7.2.0
+ lilconfig: 2.1.0
+ listr2: 6.6.1
+ micromatch: 4.0.5
+ pidtree: 0.6.0
+ string-argv: 0.3.2
+ yaml: 2.3.1
+ transitivePeerDependencies:
+ - enquirer
+ - supports-color
+
+ listr-input@0.2.1:
+ dependencies:
+ inquirer: 7.3.3
+ inquirer-autosubmit-prompt: 0.2.0
+ rxjs: 6.6.7
+ through: 2.3.8
+
+ listr-silent-renderer@1.1.1: {}
+
+ listr-update-renderer@0.5.0(listr@0.14.3):
+ dependencies:
+ chalk: 1.1.3
+ cli-truncate: 0.2.1
+ elegant-spinner: 1.0.1
+ figures: 1.7.0
+ indent-string: 3.2.0
+ listr: 0.14.3
+ log-symbols: 1.0.2
+ log-update: 2.3.0
+ strip-ansi: 3.0.1
+
+ listr-verbose-renderer@0.5.0:
+ dependencies:
+ chalk: 2.4.2
+ cli-cursor: 2.1.0
+ date-fns: 1.30.1
+ figures: 2.0.0
+
+ listr2@6.6.1:
+ dependencies:
+ cli-truncate: 3.1.0
+ colorette: 2.0.20
+ eventemitter3: 5.0.1
+ log-update: 5.0.1
+ rfdc: 1.3.1
+ wrap-ansi: 8.1.0
+
+ listr@0.14.3:
+ dependencies:
+ '@samverschueren/stream-to-observable': 0.3.1(rxjs@6.6.7)
+ is-observable: 1.1.0
+ is-promise: 2.2.2
+ is-stream: 1.1.0
+ listr-silent-renderer: 1.1.1
+ listr-update-renderer: 0.5.0(listr@0.14.3)
+ listr-verbose-renderer: 0.5.0
+ p-map: 2.1.0
+ rxjs: 6.6.7
+ transitivePeerDependencies:
+ - zen-observable
+ - zenObservable
+
+ load-bmfont@1.4.1:
+ dependencies:
+ buffer-equal: 0.0.1
+ mime: 1.6.0
+ parse-bmfont-ascii: 1.0.6
+ parse-bmfont-binary: 1.0.6
+ parse-bmfont-xml: 1.1.6
+ phin: 2.9.3
+ xhr: 2.6.0
+ xtend: 4.0.2
+
+ locate-path@3.0.0:
+ dependencies:
+ p-locate: 3.0.0
+ path-exists: 3.0.0
+
+ locate-path@5.0.0:
+ dependencies:
+ p-locate: 4.1.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.camelcase@4.3.0: {}
+
+ lodash.debounce@4.0.8: {}
+
+ lodash.get@4.4.2: {}
+
+ lodash.isequal@4.5.0: {}
+
+ lodash.isfunction@3.0.9: {}
+
+ lodash.isplainobject@4.0.6: {}
+
+ lodash.kebabcase@4.1.1: {}
+
+ lodash.memoize@4.1.2: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash.mergewith@4.6.2: {}
+
+ lodash.set@4.3.2: {}
+
+ lodash.snakecase@4.1.1: {}
+
+ lodash.startcase@4.4.0: {}
+
+ lodash.throttle@4.1.1: {}
+
+ lodash.uniq@4.5.0: {}
+
+ lodash.upperfirst@4.3.1: {}
+
+ lodash.zip@4.2.0: {}
+
+ lodash@4.17.21: {}
+
+ log-symbols@1.0.2:
+ dependencies:
+ chalk: 1.1.3
+
+ log-symbols@2.2.0:
+ dependencies:
+ chalk: 2.4.2
+
+ log-symbols@4.1.0:
+ dependencies:
+ chalk: 4.1.2
+ is-unicode-supported: 0.1.0
+
+ log-update@2.3.0:
+ dependencies:
+ ansi-escapes: 3.2.0
+ cli-cursor: 2.1.0
+ wrap-ansi: 3.0.1
+
+ log-update@5.0.1:
+ dependencies:
+ ansi-escapes: 5.0.0
+ cli-cursor: 4.0.0
+ slice-ansi: 5.0.0
+ strip-ansi: 7.1.0
+ wrap-ansi: 8.1.0
+
+ logkitty@0.7.1:
+ dependencies:
+ ansi-fragments: 0.2.1
+ dayjs: 1.11.11
+ yargs: 15.4.1
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ lowercase-keys@1.0.1: {}
+
+ lowercase-keys@2.0.0: {}
+
+ lru-cache@10.2.2: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ lru-cache@6.0.0:
+ dependencies:
+ yallist: 4.0.0
+
+ make-dir@2.1.0:
+ dependencies:
+ pify: 4.0.1
+ semver: 5.7.2
+
+ make-dir@3.1.0:
+ dependencies:
+ semver: 6.3.1
+
+ make-dir@4.0.0:
+ dependencies:
+ semver: 7.6.2
+
+ make-error@1.3.6: {}
+
+ makeerror@1.0.12:
+ dependencies:
+ tmpl: 1.0.5
+
+ map-age-cleaner@0.1.3:
+ dependencies:
+ p-defer: 1.0.0
+
+ map-obj@1.0.1: {}
+
+ map-obj@4.3.0: {}
+
+ marky@1.2.5: {}
+
+ md5-file@3.2.3:
+ dependencies:
+ buffer-alloc: 1.2.0
+
+ md5@2.2.1:
+ dependencies:
+ charenc: 0.0.2
+ crypt: 0.0.2
+ is-buffer: 1.1.6
+
+ md5@2.3.0:
+ dependencies:
+ charenc: 0.0.2
+ crypt: 0.0.2
+ is-buffer: 1.1.6
+
+ md5hex@1.0.0: {}
+
+ mdn-data@2.0.14: {}
+
+ memoize-one@5.2.1: {}
+
+ memoize-one@6.0.0: {}
+
+ memory-cache@0.2.0: {}
+
+ meow@8.1.2:
+ dependencies:
+ '@types/minimist': 1.2.5
+ camelcase-keys: 6.2.2
+ decamelize-keys: 1.1.1
+ hard-rejection: 2.1.0
+ minimist-options: 4.1.0
+ normalize-package-data: 3.0.3
+ read-pkg-up: 7.0.1
+ redent: 3.0.0
+ trim-newlines: 3.0.1
+ type-fest: 0.18.1
+ yargs-parser: 20.2.9
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ metro-babel-register@0.73.10:
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.5)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.5)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5)
+ '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5)
+ '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5)
+ '@babel/register': 7.23.7(@babel/core@7.24.5)
+ babel-plugin-replace-ts-export-assignment: 0.0.2
+ escape-string-regexp: 1.0.5
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-babel-transformer@0.80.9:
+ dependencies:
+ '@babel/core': 7.24.5
+ hermes-parser: 0.20.1
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-cache-key@0.80.9: {}
+
+ metro-cache@0.80.9:
+ dependencies:
+ metro-core: 0.80.9
+ rimraf: 3.0.2
+
+ metro-config@0.80.9:
+ dependencies:
+ connect: 3.7.0
+ cosmiconfig: 5.2.1
+ jest-validate: 29.7.0
+ metro: 0.80.9
+ metro-cache: 0.80.9
+ metro-core: 0.80.9
+ metro-runtime: 0.80.9
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ metro-core@0.80.9:
+ dependencies:
+ lodash.throttle: 4.1.1
+ metro-resolver: 0.80.9
+
+ metro-file-map@0.80.9:
+ dependencies:
+ anymatch: 3.1.3
+ debug: 2.6.9
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ invariant: 2.2.4
+ jest-worker: 29.7.0
+ micromatch: 4.0.5
+ node-abort-controller: 3.1.1
+ nullthrows: 1.1.1
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-minify-terser@0.80.9:
+ dependencies:
+ terser: 5.31.0
+
+ metro-resolver@0.80.9: {}
+
+ metro-runtime@0.80.9:
+ dependencies:
+ '@babel/runtime': 7.24.5
+
+ metro-source-map@0.80.9:
+ dependencies:
+ '@babel/traverse': 7.24.5
+ '@babel/types': 7.24.5
+ invariant: 2.2.4
+ metro-symbolicate: 0.80.9
+ nullthrows: 1.1.1
+ ob1: 0.80.9
+ source-map: 0.5.7
+ vlq: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-symbolicate@0.80.9:
+ dependencies:
+ invariant: 2.2.4
+ metro-source-map: 0.80.9
+ nullthrows: 1.1.1
+ source-map: 0.5.7
+ through2: 2.0.5
+ vlq: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-transform-plugins@0.80.9:
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/generator': 7.24.5
+ '@babel/template': 7.24.0
+ '@babel/traverse': 7.24.5
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ metro-transform-worker@0.80.9:
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/generator': 7.24.5
+ '@babel/parser': 7.24.5
+ '@babel/types': 7.24.5
+ metro: 0.80.9
+ metro-babel-transformer: 0.80.9
+ metro-cache: 0.80.9
+ metro-cache-key: 0.80.9
+ metro-minify-terser: 0.80.9
+ metro-source-map: 0.80.9
+ metro-transform-plugins: 0.80.9
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ metro@0.80.9:
+ dependencies:
+ '@babel/code-frame': 7.24.2
+ '@babel/core': 7.24.5
+ '@babel/generator': 7.24.5
+ '@babel/parser': 7.24.5
+ '@babel/template': 7.24.0
+ '@babel/traverse': 7.24.5
+ '@babel/types': 7.24.5
+ accepts: 1.3.8
+ chalk: 4.1.2
+ ci-info: 2.0.0
+ connect: 3.7.0
+ debug: 2.6.9
+ denodeify: 1.2.1
+ error-stack-parser: 2.1.4
+ graceful-fs: 4.2.11
+ hermes-parser: 0.20.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.80.9
+ metro-cache: 0.80.9
+ metro-cache-key: 0.80.9
+ metro-config: 0.80.9
+ metro-core: 0.80.9
+ metro-file-map: 0.80.9
+ metro-resolver: 0.80.9
+ metro-runtime: 0.80.9
+ metro-source-map: 0.80.9
+ metro-symbolicate: 0.80.9
+ metro-transform-plugins: 0.80.9
+ metro-transform-worker: 0.80.9
+ mime-types: 2.1.35
+ node-fetch: 2.7.0
+ nullthrows: 1.1.1
+ rimraf: 3.0.2
+ serialize-error: 2.1.0
+ source-map: 0.5.7
+ strip-ansi: 6.0.1
+ throat: 5.0.0
+ ws: 7.5.9
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ micromatch@4.0.5:
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mime@1.6.0: {}
+
+ mime@2.6.0: {}
+
+ mimic-fn@1.2.0: {}
+
+ mimic-fn@2.1.0: {}
+
+ mimic-fn@3.1.0: {}
+
+ mimic-fn@4.0.0: {}
+
+ mimic-response@1.0.1: {}
+
+ mimic-response@2.1.0: {}
+
+ min-document@2.19.0:
+ dependencies:
+ dom-walk: 0.1.2
+
+ min-indent@1.0.1: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@8.0.4:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimatch@9.0.4:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimist-options@4.1.0:
+ dependencies:
+ arrify: 1.0.1
+ is-plain-obj: 1.1.0
+ kind-of: 6.0.3
+
+ minimist@1.2.8: {}
+
+ minipass-collect@2.0.1:
+ dependencies:
+ minipass: 7.1.1
+
+ minipass-flush@1.0.5:
+ dependencies:
+ minipass: 3.3.6
+
+ minipass-pipeline@1.2.4:
+ dependencies:
+ minipass: 3.3.6
+
+ minipass@3.3.6:
+ dependencies:
+ yallist: 4.0.0
+
+ minipass@4.2.8: {}
+
+ minipass@5.0.0: {}
+
+ minipass@7.1.1: {}
+
+ minizlib@2.1.2:
+ dependencies:
+ minipass: 3.3.6
+ yallist: 4.0.0
+
+ mkdirp@0.5.6:
+ dependencies:
+ minimist: 1.2.8
+
+ mkdirp@1.0.4: {}
+
+ moti@0.28.1(react-dom@18.2.0)(react-native-reanimated@3.10.1)(react@18.2.0):
+ dependencies:
+ framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0)
+ react-native-reanimated: 3.10.1(@babel/core@7.24.5)(react-native@0.74.1)(react@18.2.0)
+ transitivePeerDependencies:
+ - react
+ - react-dom
+
+ mrmime@1.0.1: {}
+
+ ms@2.0.0: {}
+
+ ms@2.1.2: {}
+
+ ms@2.1.3: {}
+
+ mute-stream@0.0.7: {}
+
+ mute-stream@0.0.8: {}
+
+ mv@2.1.1:
+ dependencies:
+ mkdirp: 0.5.6
+ ncp: 2.0.0
+ rimraf: 2.4.5
+ optional: true
+
+ mz@2.7.0:
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+
+ nanoid@3.3.7: {}
+
+ nativewind@4.0.36(@babel/core@7.24.5)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-svg@15.2.0)(react-native@0.74.1)(react@18.2.0)(tailwindcss@3.3.2):
+ dependencies:
+ react-native-css-interop: 0.0.36(@babel/core@7.24.5)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-svg@15.2.0)(react-native@0.74.1)(react@18.2.0)(tailwindcss@3.3.2)
+ tailwindcss: 3.3.2(ts-node@10.9.2)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - react
+ - react-native
+ - react-native-reanimated
+ - react-native-safe-area-context
+ - react-native-svg
+ - supports-color
+
+ natural-compare-lite@1.4.0: {}
+
+ natural-compare@1.4.0: {}
+
+ ncp@2.0.0:
+ optional: true
+
+ negotiator@0.6.3: {}
+
+ neo-async@2.6.2: {}
+
+ nested-error-stacks@2.0.1: {}
+
+ new-github-release-url@1.0.0:
+ dependencies:
+ type-fest: 0.4.1
+
+ nice-try@1.0.5: {}
+
+ nocache@3.0.4: {}
+
+ node-abort-controller@3.1.1: {}
+
+ node-dir@0.1.17:
+ dependencies:
+ minimatch: 3.1.2
+
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
+ node-forge@1.3.1: {}
+
+ node-int64@0.4.0: {}
+
+ node-releases@2.0.14: {}
+
+ node-stream-zip@1.15.0: {}
+
+ normalize-package-data@2.5.0:
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.8
+ semver: 5.7.2
+ validate-npm-package-license: 3.0.4
+
+ normalize-package-data@3.0.3:
+ dependencies:
+ hosted-git-info: 4.1.0
+ is-core-module: 2.13.1
+ semver: 7.6.2
+ validate-npm-package-license: 3.0.4
+
+ normalize-path@3.0.0: {}
+
+ normalize-url@4.5.1: {}
+
+ normalize-url@6.1.0: {}
+
+ np@7.7.0:
+ dependencies:
+ '@samverschueren/stream-to-observable': 0.3.1(rxjs@6.6.7)
+ any-observable: 0.5.1(rxjs@6.6.7)
+ async-exit-hook: 2.0.1
+ chalk: 4.1.2
+ cosmiconfig: 7.1.0
+ del: 6.1.1
+ escape-goat: 3.0.0
+ escape-string-regexp: 4.0.0
+ execa: 5.1.1
+ github-url-from-git: 1.5.0
+ has-yarn: 2.1.0
+ hosted-git-info: 3.0.8
+ ignore-walk: 3.0.4
+ import-local: 3.1.0
+ inquirer: 7.3.3
+ is-installed-globally: 0.3.2
+ is-interactive: 1.0.0
+ is-scoped: 2.1.0
+ issue-regex: 3.1.0
+ listr: 0.14.3
+ listr-input: 0.2.1
+ log-symbols: 4.1.0
+ meow: 8.1.2
+ minimatch: 3.1.2
+ new-github-release-url: 1.0.0
+ npm-name: 6.0.1
+ onetime: 5.1.2
+ open: 7.4.2
+ ow: 0.21.0
+ p-memoize: 4.0.4
+ p-timeout: 4.1.0
+ pkg-dir: 5.0.0
+ read-pkg-up: 7.0.1
+ rxjs: 6.6.7
+ semver: 7.6.2
+ split: 1.0.1
+ symbol-observable: 3.0.0
+ terminal-link: 2.1.1
+ update-notifier: 5.1.0
+ transitivePeerDependencies:
+ - zen-observable
+ - zenObservable
+
+ npm-name@6.0.1:
+ dependencies:
+ got: 10.7.0
+ is-scoped: 2.1.0
+ is-url-superb: 4.0.0
+ lodash.zip: 4.2.0
+ org-regex: 1.0.0
+ p-map: 3.0.0
+ registry-auth-token: 4.2.2
+ registry-url: 5.1.0
+ validate-npm-package-name: 3.0.0
+
+ npm-package-arg@7.0.0:
+ dependencies:
+ hosted-git-info: 3.0.8
+ osenv: 0.1.5
+ semver: 5.7.2
+ validate-npm-package-name: 3.0.0
+
+ npm-run-path@2.0.2:
+ dependencies:
+ path-key: 2.0.1
+
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
+ npm-run-path@5.3.0:
+ dependencies:
+ path-key: 4.0.0
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ nullthrows@1.1.1: {}
+
+ number-is-nan@1.0.1: {}
+
+ nwsapi@2.2.10: {}
+
+ ob1@0.80.9: {}
+
+ object-assign@4.1.1: {}
+
+ object-hash@3.0.0: {}
+
+ object-inspect@1.13.1: {}
+
+ object-is@1.1.6:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.5:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+
+ object.entries@1.1.8:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ object.fromentries@2.0.8:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-object-atoms: 1.0.0
+
+ object.hasown@1.1.4:
+ dependencies:
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-object-atoms: 1.0.0
+
+ object.values@1.2.0:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ omggif@1.0.10: {}
+
+ on-finished@2.3.0:
+ dependencies:
+ ee-first: 1.1.1
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
+ on-headers@1.0.2: {}
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@2.0.1:
+ dependencies:
+ mimic-fn: 1.2.0
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ onetime@6.0.0:
+ dependencies:
+ mimic-fn: 4.0.0
+
+ open@6.4.0:
+ dependencies:
+ is-wsl: 1.1.0
+
+ open@7.4.2:
+ dependencies:
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+
+ open@8.4.2:
+ dependencies:
+ define-lazy-prop: 2.0.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ 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-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
+ wcwidth: 1.0.1
+
+ org-regex@1.0.0: {}
+
+ os-homedir@1.0.2: {}
+
+ os-tmpdir@1.0.2: {}
+
+ osenv@0.1.5:
+ dependencies:
+ os-homedir: 1.0.2
+ os-tmpdir: 1.0.2
+
+ ow@0.21.0:
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ callsites: 3.1.0
+ dot-prop: 6.0.1
+ lodash.isequal: 4.5.0
+ type-fest: 0.20.2
+ vali-date: 1.0.0
+
+ p-cancelable@1.1.0: {}
+
+ p-cancelable@2.1.1: {}
+
+ p-defer@1.0.0: {}
+
+ p-event@4.2.0:
+ dependencies:
+ p-timeout: 3.2.0
+
+ p-finally@1.0.0: {}
+
+ p-limit@2.3.0:
+ dependencies:
+ p-try: 2.2.0
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@3.0.0:
+ dependencies:
+ p-limit: 2.3.0
+
+ p-locate@4.1.0:
+ dependencies:
+ p-limit: 2.3.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ p-map@2.1.0: {}
+
+ p-map@3.0.0:
+ dependencies:
+ aggregate-error: 3.1.0
+
+ p-map@4.0.0:
+ dependencies:
+ aggregate-error: 3.1.0
+
+ p-memoize@4.0.4:
+ dependencies:
+ map-age-cleaner: 0.1.3
+ mimic-fn: 3.1.0
+ p-settle: 4.1.1
+
+ p-reflect@2.1.0: {}
+
+ p-settle@4.1.1:
+ dependencies:
+ p-limit: 2.3.0
+ p-reflect: 2.1.0
+
+ p-timeout@3.2.0:
+ dependencies:
+ p-finally: 1.0.0
+
+ p-timeout@4.1.0: {}
+
+ p-try@2.2.0: {}
+
+ package-json@6.5.0:
+ dependencies:
+ got: 9.6.0
+ registry-auth-token: 4.2.2
+ registry-url: 5.1.0
+ semver: 6.3.1
+
+ pako@1.0.11: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-bmfont-ascii@1.0.6: {}
+
+ parse-bmfont-binary@1.0.6: {}
+
+ parse-bmfont-xml@1.1.6:
+ dependencies:
+ xml-parse-from-string: 1.0.1
+ xml2js: 0.5.0
+
+ parse-headers@2.0.5: {}
+
+ 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.24.2
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ parse-png@2.1.0:
+ dependencies:
+ pngjs: 3.4.0
+
+ parse5@7.1.2:
+ dependencies:
+ entities: 4.5.0
+
+ parseurl@1.3.3: {}
+
+ password-prompt@1.1.3:
+ dependencies:
+ ansi-escapes: 4.3.2
+ cross-spawn: 7.0.3
+
+ path-exists@3.0.0: {}
+
+ path-exists@4.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@2.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-key@4.0.0: {}
+
+ path-parse@1.0.7: {}
+
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.2.2
+ minipass: 7.1.1
+
+ path-type@4.0.0: {}
+
+ peek-readable@4.1.0: {}
+
+ phin@2.9.3: {}
+
+ picocolors@1.0.1: {}
+
+ picomatch@2.3.1: {}
+
+ picomatch@3.0.1: {}
+
+ pidtree@0.6.0: {}
+
+ pify@2.3.0: {}
+
+ pify@4.0.1: {}
+
+ pirates@4.0.6: {}
+
+ pixelmatch@4.0.2:
+ dependencies:
+ pngjs: 3.4.0
+
+ pkg-dir@3.0.0:
+ dependencies:
+ find-up: 3.0.0
+
+ pkg-dir@4.2.0:
+ dependencies:
+ find-up: 4.1.0
+
+ pkg-dir@5.0.0:
+ dependencies:
+ find-up: 5.0.0
+
+ pkg-up@3.1.0:
+ dependencies:
+ find-up: 3.0.0
+
+ plist@3.1.0:
+ dependencies:
+ '@xmldom/xmldom': 0.8.10
+ base64-js: 1.5.1
+ xmlbuilder: 15.1.1
+
+ plur@2.1.2:
+ dependencies:
+ irregular-plurals: 1.4.0
+
+ pluralize@8.0.0: {}
+
+ pngjs@3.4.0: {}
+
+ pngjs@6.0.0: {}
+
+ popmotion@11.0.3:
+ dependencies:
+ framesync: 6.0.1
+ hey-listen: 1.0.8
+ style-value-types: 5.0.0
+ tslib: 2.6.2
+
+ possible-typed-array-names@1.0.0: {}
+
+ postcss-import@15.1.0(postcss@8.4.38):
+ dependencies:
+ postcss: 8.4.38
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.8
+
+ postcss-js@4.0.1(postcss@8.4.38):
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.4.38
+
+ postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2):
+ dependencies:
+ lilconfig: 3.1.1
+ postcss: 8.4.38
+ ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.3.3)
+ yaml: 2.4.2
+
+ postcss-nested@6.0.1(postcss@8.4.38):
+ dependencies:
+ postcss: 8.4.38
+ postcss-selector-parser: 6.0.16
+
+ postcss-selector-parser@6.0.16:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-value-parser@4.2.0: {}
+
+ postcss@8.4.38:
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.0.1
+ source-map-js: 1.2.0
+
+ prelude-ls@1.2.1: {}
+
+ prepend-http@2.0.0: {}
+
+ prettier-linter-helpers@1.0.0:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@2.8.8: {}
+
+ pretty-bytes@5.6.0: {}
+
+ pretty-format@22.4.3:
+ dependencies:
+ ansi-regex: 3.0.1
+ ansi-styles: 3.2.1
+
+ pretty-format@26.6.2:
+ dependencies:
+ '@jest/types': 26.6.2
+ ansi-regex: 5.0.1
+ ansi-styles: 4.3.0
+ react-is: 17.0.2
+
+ pretty-format@29.7.0:
+ dependencies:
+ '@jest/schemas': 29.6.3
+ ansi-styles: 5.2.0
+ react-is: 18.3.1
+
+ process-nextick-args@2.0.1: {}
+
+ process@0.11.10: {}
+
+ progress@2.0.3: {}
+
+ promise@7.3.1:
+ dependencies:
+ asap: 2.0.6
+
+ promise@8.3.0:
+ dependencies:
+ asap: 2.0.6
+
+ prompts@2.4.2:
+ dependencies:
+ kleur: 3.0.3
+ sisteransi: 1.0.5
+
+ prop-types@15.8.1:
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ proxy-from-env@1.1.0: {}
+
+ psl@1.9.0: {}
+
+ pump@3.0.0:
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+
+ punycode@2.3.1: {}
+
+ pupa@2.1.1:
+ dependencies:
+ escape-goat: 2.1.1
+
+ pure-rand@6.1.0: {}
+
+ qrcode-terminal@0.11.0: {}
+
+ query-string@7.1.3:
+ dependencies:
+ decode-uri-component: 0.2.2
+ filter-obj: 1.1.0
+ split-on-first: 1.1.0
+ strict-uri-encode: 2.0.0
+
+ querystring@0.2.1: {}
+
+ querystringify@2.2.0: {}
+
+ queue-microtask@1.2.3: {}
+
+ queue@6.0.2:
+ dependencies:
+ inherits: 2.0.4
+
+ quick-lru@4.0.1: {}
+
+ range-parser@1.2.1: {}
+
+ rc@1.2.8:
+ dependencies:
+ deep-extend: 0.6.0
+ ini: 1.3.8
+ minimist: 1.2.8
+ strip-json-comments: 2.0.1
+
+ react-devtools-core@5.2.0:
+ dependencies:
+ shell-quote: 1.8.1
+ ws: 7.5.9
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ react-dom@18.2.0(react@18.2.0):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.2.0
+ scheduler: 0.23.2
+
+ react-error-boundary@3.1.4(react@18.2.0):
+ dependencies:
+ '@babel/runtime': 7.24.5
+ react: 18.2.0
+
+ react-fast-compare@3.2.2: {}
+
+ react-freeze@1.0.4(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+
+ react-hook-form@7.51.4(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+
+ react-i18next@12.3.1(i18next@22.5.1)(react-dom@18.2.0)(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ '@babel/runtime': 7.24.5
+ html-parse-stringify: 3.0.1
+ i18next: 22.5.1
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-is@16.13.1: {}
+
+ react-is@17.0.2: {}
+
+ react-is@18.3.1: {}
+
+ react-native-avoid-softinput@4.0.2(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-native-css-interop@0.0.36(@babel/core@7.24.5)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-svg@15.2.0)(react-native@0.74.1)(react@18.2.0)(tailwindcss@3.3.2):
+ dependencies:
+ '@babel/helper-module-imports': 7.24.3
+ '@babel/traverse': 7.24.5
+ '@babel/types': 7.24.5
+ babel-plugin-tester: 11.0.4(@babel/core@7.24.5)
+ lightningcss: 1.22.0
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ react-native-reanimated: 3.10.1(@babel/core@7.24.5)(react-native@0.74.1)(react@18.2.0)
+ react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.2.0)
+ react-native-svg: 15.2.0(react-native@0.74.1)(react@18.2.0)
+ tailwindcss: 3.3.2(ts-node@10.9.2)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ react-native-flash-message@0.4.2(prop-types@15.8.1)(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ prop-types: 15.8.1
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ react-native-iphone-screen-helper: 2.1.1(react-native@0.74.1)
+
+ react-native-gesture-handler@2.16.2(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ '@egjs/hammerjs': 2.0.17
+ hoist-non-react-statics: 3.3.2
+ invariant: 2.2.4
+ lodash: 4.17.21
+ prop-types: 15.8.1
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-native-helmet-async@2.0.4(react@18.2.0):
+ dependencies:
+ invariant: 2.2.4
+ react: 18.2.0
+ react-fast-compare: 3.2.2
+ shallowequal: 1.1.0
+
+ react-native-iphone-screen-helper@2.1.1(react-native@0.74.1):
+ dependencies:
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-native-mmkv@2.6.3(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-native-reanimated@3.10.1(@babel/core@7.24.5)(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5)
+ '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.5)
+ '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5)
+ convert-source-map: 2.0.0
+ invariant: 2.2.4
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-native-restart@0.0.27(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-native-safe-area-context@4.10.1(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-native-screens@3.31.1(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+ react-freeze: 1.0.4(react@18.2.0)
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ warn-once: 0.1.1
+
+ react-native-svg@15.2.0(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ css-select: 5.1.0
+ css-tree: 1.1.3
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+
+ react-native-web@0.19.11(react-dom@18.2.0)(react@18.2.0):
+ dependencies:
+ '@babel/runtime': 7.24.5
+ '@react-native/normalize-colors': 0.74.83
+ fbjs: 3.0.5
+ inline-style-prefixer: 6.0.4
+ memoize-one: 6.0.0
+ nullthrows: 1.1.1
+ postcss-value-parser: 4.2.0
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ styleq: 0.1.3
+ transitivePeerDependencies:
+ - encoding
+
+ react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0):
+ dependencies:
+ '@jest/create-cache-key-function': 29.7.0
+ '@react-native-community/cli': 13.6.6
+ '@react-native-community/cli-platform-android': 13.6.6
+ '@react-native-community/cli-platform-ios': 13.6.6
+ '@react-native/assets-registry': 0.74.83
+ '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.5)
+ '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.5)(@babel/preset-env@7.24.5)
+ '@react-native/gradle-plugin': 0.74.83
+ '@react-native/js-polyfills': 0.74.83
+ '@react-native/normalize-colors': 0.74.83
+ '@react-native/virtualized-lists': 0.74.83(@types/react@18.2.79)(react-native@0.74.1)(react@18.2.0)
+ '@types/react': 18.2.79
+ abort-controller: 3.0.0
+ anser: 1.4.10
+ ansi-regex: 5.0.1
+ base64-js: 1.5.1
+ chalk: 4.1.2
+ event-target-shim: 5.0.1
+ flow-enums-runtime: 0.0.6
+ invariant: 2.2.4
+ jest-environment-node: 29.7.0
+ jsc-android: 250231.0.0
+ memoize-one: 5.2.1
+ metro-runtime: 0.80.9
+ metro-source-map: 0.80.9
+ mkdirp: 0.5.6
+ nullthrows: 1.1.1
+ pretty-format: 26.6.2
+ promise: 8.3.0
+ react: 18.2.0
+ react-devtools-core: 5.2.0
+ react-refresh: 0.14.2
+ react-shallow-renderer: 16.15.0(react@18.2.0)
+ regenerator-runtime: 0.13.11
+ scheduler: 0.24.0-canary-efb381bbf-20230505
+ stacktrace-parser: 0.1.10
+ whatwg-fetch: 3.6.20
+ ws: 6.2.2
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@babel/preset-env'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ react-query-kit@3.3.0(@tanstack/react-query@5.37.1):
+ dependencies:
+ '@tanstack/react-query': 5.37.1(react@18.2.0)
+
+ react-refresh@0.14.2: {}
+
+ react-shallow-renderer@16.15.0(react@18.2.0):
+ dependencies:
+ object-assign: 4.1.1
+ react: 18.2.0
+ react-is: 18.3.1
+
+ react-test-renderer@18.2.0(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+ react-is: 18.3.1
+ react-shallow-renderer: 16.15.0(react@18.2.0)
+ scheduler: 0.23.2
+
+ react-test-renderer@18.3.1(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+ react-is: 18.3.1
+ react-shallow-renderer: 16.15.0(react@18.2.0)
+ scheduler: 0.23.2
+
+ react@18.2.0:
+ dependencies:
+ loose-envify: 1.4.0
+
+ read-cache@1.0.0:
+ dependencies:
+ pify: 2.3.0
+
+ read-pkg-up@7.0.1:
+ dependencies:
+ find-up: 4.1.0
+ read-pkg: 5.2.0
+ type-fest: 0.8.1
+
+ read-pkg@5.2.0:
+ dependencies:
+ '@types/normalize-package-data': 2.4.4
+ normalize-package-data: 2.5.0
+ parse-json: 5.2.0
+ type-fest: 0.6.0
+
+ readable-stream@2.3.8:
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readable-web-to-node-stream@3.0.2:
+ dependencies:
+ readable-stream: 3.6.2
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ readline@1.3.0: {}
+
+ recast@0.21.5:
+ dependencies:
+ ast-types: 0.15.2
+ esprima: 4.0.1
+ source-map: 0.6.1
+ tslib: 2.6.2
+
+ recyclerlistview@4.2.0(react-native@0.74.1)(react@18.2.0):
+ dependencies:
+ lodash.debounce: 4.0.8
+ prop-types: 15.8.1
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.2.79)(react@18.2.0)
+ ts-object-utils: 0.0.5
+
+ redent@3.0.0:
+ dependencies:
+ indent-string: 4.0.0
+ strip-indent: 3.0.0
+
+ reflect.getprototypeof@1.0.6:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ globalthis: 1.0.4
+ which-builtin-type: 1.1.3
+
+ regenerate-unicode-properties@10.1.1:
+ dependencies:
+ regenerate: 1.4.2
+
+ regenerate@1.4.2: {}
+
+ regenerator-runtime@0.13.11: {}
+
+ regenerator-runtime@0.14.1: {}
+
+ regenerator-transform@0.15.2:
+ dependencies:
+ '@babel/runtime': 7.24.5
+
+ regexp-tree@0.1.27: {}
+
+ regexp.prototype.flags@1.5.2:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ set-function-name: 2.0.2
+
+ regexpu-core@5.3.2:
+ dependencies:
+ '@babel/regjsgen': 0.8.0
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.1.1
+ regjsparser: 0.9.1
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.1.0
+
+ registry-auth-token@4.2.2:
+ dependencies:
+ rc: 1.2.8
+
+ registry-url@5.1.0:
+ dependencies:
+ rc: 1.2.8
+
+ regjsparser@0.9.1:
+ dependencies:
+ jsesc: 0.5.0
+
+ remove-trailing-slash@0.1.1: {}
+
+ require-directory@2.1.1: {}
+
+ require-from-string@2.0.2: {}
+
+ require-main-filename@2.0.0: {}
+
+ requireg@0.2.2:
+ dependencies:
+ nested-error-stacks: 2.0.1
+ rc: 1.2.8
+ resolve: 1.7.1
+
+ requires-port@1.0.0: {}
+
+ reselect@4.1.8: {}
+
+ resolve-cwd@3.0.0:
+ dependencies:
+ resolve-from: 5.0.0
+
+ resolve-from@3.0.0: {}
+
+ resolve-from@4.0.0: {}
+
+ resolve-from@5.0.0: {}
+
+ resolve-global@1.0.0:
+ dependencies:
+ global-dirs: 0.1.1
+
+ resolve.exports@2.0.2: {}
+
+ resolve@1.22.8:
+ dependencies:
+ is-core-module: 2.13.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ resolve@1.7.1:
+ dependencies:
+ path-parse: 1.0.7
+
+ resolve@2.0.0-next.5:
+ dependencies:
+ is-core-module: 2.13.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ responselike@1.0.2:
+ dependencies:
+ lowercase-keys: 1.0.1
+
+ responselike@2.0.1:
+ dependencies:
+ lowercase-keys: 2.0.0
+
+ restore-cursor@2.0.0:
+ dependencies:
+ onetime: 2.0.1
+ signal-exit: 3.0.7
+
+ restore-cursor@3.1.0:
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+
+ restore-cursor@4.0.0:
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+
+ reusify@1.0.4: {}
+
+ rfdc@1.3.1: {}
+
+ rimraf@2.4.5:
+ dependencies:
+ glob: 6.0.4
+ optional: true
+
+ rimraf@2.6.3:
+ dependencies:
+ glob: 7.2.3
+
+ rimraf@2.7.1:
+ dependencies:
+ glob: 7.2.3
+
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
+ rtl-detect@1.1.2: {}
+
+ run-async@2.4.1: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ rxjs@6.6.7:
+ dependencies:
+ tslib: 1.14.1
+
+ safe-array-concat@1.1.2:
+ dependencies:
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+ has-symbols: 1.0.3
+ isarray: 2.0.5
+
+ safe-buffer@5.1.2: {}
+
+ safe-buffer@5.2.1: {}
+
+ safe-json-stringify@1.2.0:
+ optional: true
+
+ safe-regex-test@1.0.3:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-regex: 1.1.4
+
+ safe-regex@2.1.1:
+ dependencies:
+ regexp-tree: 0.1.27
+
+ safer-buffer@2.1.2: {}
+
+ sax@1.3.0: {}
+
+ saxes@6.0.0:
+ dependencies:
+ xmlchars: 2.2.0
+
+ scheduler@0.23.2:
+ dependencies:
+ loose-envify: 1.4.0
+
+ scheduler@0.24.0-canary-efb381bbf-20230505:
+ dependencies:
+ loose-envify: 1.4.0
+
+ schema-utils@4.2.0:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 8.13.0
+ ajv-formats: 2.1.1(ajv@8.13.0)
+ ajv-keywords: 5.1.0(ajv@8.13.0)
+
+ scoped-regex@2.1.0: {}
+
+ selfsigned@2.4.1:
+ dependencies:
+ '@types/node-forge': 1.3.11
+ node-forge: 1.3.1
+
+ semver-diff@3.1.1:
+ dependencies:
+ semver: 6.3.1
+
+ semver@5.7.2: {}
+
+ semver@6.3.1: {}
+
+ semver@7.5.4:
+ dependencies:
+ lru-cache: 6.0.0
+
+ semver@7.6.2: {}
+
+ send@0.18.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
+
+ serialize-error@2.1.0: {}
+
+ serve-static@1.15.0:
+ dependencies:
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.18.0
+ transitivePeerDependencies:
+ - supports-color
+
+ set-blocking@2.0.0: {}
+
+ set-cookie-parser@2.6.0: {}
+
+ set-function-length@1.2.2:
+ dependencies:
+ 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
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ setimmediate@1.0.5: {}
+
+ setprototypeof@1.2.0: {}
+
+ shallow-clone@3.0.1:
+ dependencies:
+ kind-of: 6.0.3
+
+ shallowequal@1.1.0: {}
+
+ shebang-command@1.2.0:
+ dependencies:
+ shebang-regex: 1.0.0
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@1.0.0: {}
+
+ shebang-regex@3.0.0: {}
+
+ shell-quote@1.8.1: {}
+
+ side-channel@1.0.6:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ object-inspect: 1.13.1
+
+ signal-exit@3.0.7: {}
+
+ signal-exit@4.1.0: {}
+
+ simple-plist@1.3.1:
+ dependencies:
+ bplist-creator: 0.1.0
+ bplist-parser: 0.3.1
+ plist: 3.1.0
+
+ simple-swizzle@0.2.2:
+ dependencies:
+ is-arrayish: 0.3.2
+
+ sisteransi@1.0.5: {}
+
+ slash@3.0.0: {}
+
+ slash@5.1.0: {}
+
+ slice-ansi@0.0.4: {}
+
+ slice-ansi@2.1.0:
+ dependencies:
+ ansi-styles: 3.2.1
+ astral-regex: 1.0.0
+ is-fullwidth-code-point: 2.0.0
+
+ slice-ansi@5.0.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 4.0.0
+
+ slugify@1.6.6: {}
+
+ source-map-js@1.2.0: {}
+
+ source-map-support@0.5.13:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.5.6: {}
+
+ source-map@0.5.7: {}
+
+ source-map@0.6.1: {}
+
+ source-map@0.7.4: {}
+
+ spdx-correct@3.2.0:
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.17
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@3.0.1:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.17
+
+ spdx-license-ids@3.0.17: {}
+
+ split-on-first@1.1.0: {}
+
+ split2@3.2.2:
+ dependencies:
+ readable-stream: 3.6.2
+
+ split@1.0.1:
+ dependencies:
+ through: 2.3.8
+
+ sprintf-js@1.0.3: {}
+
+ ssri@10.0.6:
+ dependencies:
+ minipass: 7.1.1
+
+ stack-generator@2.0.10:
+ dependencies:
+ stackframe: 1.3.4
+
+ stack-utils@2.0.6:
+ dependencies:
+ escape-string-regexp: 2.0.0
+
+ stackframe@1.3.4: {}
+
+ stacktrace-gps@3.1.2:
+ dependencies:
+ source-map: 0.5.6
+ stackframe: 1.3.4
+
+ stacktrace-js@2.0.2:
+ dependencies:
+ error-stack-parser: 2.1.4
+ stack-generator: 2.0.10
+ stacktrace-gps: 3.1.2
+
+ stacktrace-parser@0.1.10:
+ dependencies:
+ type-fest: 0.7.1
+
+ statuses@1.5.0: {}
+
+ statuses@2.0.1: {}
+
+ stop-iteration-iterator@1.0.0:
+ dependencies:
+ internal-slot: 1.0.7
+
+ stream-buffers@2.2.0: {}
+
+ stream-slice@0.1.2: {}
+
+ strict-uri-encode@2.0.0: {}
+
+ string-argv@0.3.2: {}
+
+ string-length@4.0.2:
+ dependencies:
+ char-regex: 1.0.2
+ strip-ansi: 6.0.1
+
+ string-length@5.0.1:
+ dependencies:
+ char-regex: 2.0.1
+ strip-ansi: 7.1.0
+
+ string-natural-compare@3.0.1: {}
+
+ string-width@1.0.2:
+ dependencies:
+ code-point-at: 1.1.0
+ is-fullwidth-code-point: 1.0.0
+ strip-ansi: 3.0.1
+
+ string-width@2.1.1:
+ dependencies:
+ is-fullwidth-code-point: 2.0.0
+ strip-ansi: 4.0.0
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
+ string.prototype.matchall@4.0.11:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ get-intrinsic: 1.2.4
+ gopd: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.7
+ regexp.prototype.flags: 1.5.2
+ set-function-name: 2.0.2
+ side-channel: 1.0.6
+
+ string.prototype.trim@1.2.9:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-object-atoms: 1.0.0
+
+ string.prototype.trimend@1.0.8:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ string_decoder@1.1.1:
+ dependencies:
+ safe-buffer: 5.1.2
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-ansi@3.0.1:
+ dependencies:
+ ansi-regex: 2.1.1
+
+ strip-ansi@4.0.0:
+ dependencies:
+ ansi-regex: 3.0.1
+
+ strip-ansi@5.2.0:
+ dependencies:
+ ansi-regex: 4.1.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.0.1
+
+ strip-bom@4.0.0: {}
+
+ strip-eof@1.0.0: {}
+
+ strip-final-newline@2.0.0: {}
+
+ strip-final-newline@3.0.0: {}
+
+ strip-indent@3.0.0:
+ dependencies:
+ min-indent: 1.0.1
+
+ strip-json-comments@2.0.1: {}
+
+ strip-json-comments@3.1.1: {}
+
+ strnum@1.0.5: {}
+
+ strtok3@6.3.0:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+ peek-readable: 4.1.0
+
+ structured-headers@0.4.1: {}
+
+ style-value-types@5.0.0:
+ dependencies:
+ hey-listen: 1.0.8
+ tslib: 2.6.2
+
+ styleq@0.1.3: {}
+
+ sucrase@3.34.0:
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ commander: 4.1.1
+ glob: 7.1.6
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.6
+ ts-interface-checker: 0.1.13
+
+ sucrase@3.35.0:
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ commander: 4.1.1
+ glob: 10.3.15
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.6
+ ts-interface-checker: 0.1.13
+
+ sudo-prompt@8.2.5: {}
+
+ sudo-prompt@9.1.1: {}
+
+ sudo-prompt@9.2.1: {}
+
+ supports-color@2.0.0: {}
+
+ supports-color@5.5.0:
+ dependencies:
+ has-flag: 3.0.0
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-hyperlinks@2.3.0:
+ dependencies:
+ has-flag: 4.0.0
+ supports-color: 7.2.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ symbol-observable@1.2.0: {}
+
+ symbol-observable@3.0.0: {}
+
+ symbol-tree@3.2.4: {}
+
+ tailwind-merge@1.14.0: {}
+
+ tailwind-variants@0.1.20(tailwindcss@3.3.2):
+ dependencies:
+ tailwind-merge: 1.14.0
+ tailwindcss: 3.3.2(ts-node@10.9.2)
+
+ tailwindcss@3.3.2(ts-node@10.9.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
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ jiti: 1.21.0
+ lilconfig: 2.1.0
+ micromatch: 4.0.5
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.0.1
+ postcss: 8.4.38
+ postcss-import: 15.1.0(postcss@8.4.38)
+ postcss-js: 4.0.1(postcss@8.4.38)
+ postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2)
+ postcss-nested: 6.0.1(postcss@8.4.38)
+ postcss-selector-parser: 6.0.16
+ postcss-value-parser: 4.2.0
+ resolve: 1.22.8
+ sucrase: 3.35.0
+ transitivePeerDependencies:
+ - ts-node
+
+ tar@6.2.1:
+ dependencies:
+ chownr: 2.0.0
+ fs-minipass: 2.1.0
+ minipass: 5.0.0
+ minizlib: 2.1.2
+ mkdirp: 1.0.4
+ yallist: 4.0.0
+
+ temp-dir@1.0.0: {}
+
+ temp-dir@2.0.0: {}
+
+ temp@0.8.4:
+ dependencies:
+ rimraf: 2.6.3
+
+ tempy@0.3.0:
+ dependencies:
+ temp-dir: 1.0.0
+ type-fest: 0.3.1
+ unique-string: 1.0.0
+
+ tempy@0.7.1:
+ dependencies:
+ del: 6.1.1
+ is-stream: 2.0.1
+ temp-dir: 2.0.0
+ type-fest: 0.16.0
+ unique-string: 2.0.0
+
+ terminal-link@2.1.1:
+ dependencies:
+ ansi-escapes: 4.3.2
+ supports-hyperlinks: 2.3.0
+
+ terser@5.31.0:
+ dependencies:
+ '@jridgewell/source-map': 0.3.6
+ acorn: 8.11.3
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ test-exclude@6.0.0:
+ dependencies:
+ '@istanbuljs/schema': 0.1.3
+ glob: 7.2.3
+ minimatch: 3.1.2
+
+ text-extensions@1.9.0: {}
+
+ text-table@0.2.0: {}
+
+ thenify-all@1.6.0:
+ dependencies:
+ thenify: 3.3.1
+
+ thenify@3.3.1:
+ dependencies:
+ any-promise: 1.3.0
+
+ throat@5.0.0: {}
+
+ through2@2.0.5:
+ dependencies:
+ readable-stream: 2.3.8
+ xtend: 4.0.2
+
+ through2@4.0.2:
+ dependencies:
+ readable-stream: 3.6.2
+
+ through@2.3.8: {}
+
+ timm@1.7.1: {}
+
+ tinycolor2@1.6.0: {}
+
+ tmp@0.0.33:
+ dependencies:
+ os-tmpdir: 1.0.2
+
+ tmpl@1.0.5: {}
+
+ to-fast-properties@2.0.0: {}
+
+ to-readable-stream@1.0.0: {}
+
+ to-readable-stream@2.1.0: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toidentifier@1.0.1: {}
+
+ token-types@4.2.1:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+ ieee754: 1.2.1
+
+ tough-cookie@4.1.4:
+ dependencies:
+ psl: 1.9.0
+ punycode: 2.3.1
+ universalify: 0.2.0
+ url-parse: 1.5.10
+
+ tr46@0.0.3: {}
+
+ tr46@3.0.0:
+ dependencies:
+ punycode: 2.3.1
+
+ traverse@0.6.9:
+ dependencies:
+ gopd: 1.0.1
+ typedarray.prototype.slice: 1.0.3
+ which-typed-array: 1.1.15
+
+ trim-newlines@3.0.1: {}
+
+ ts-interface-checker@0.1.13: {}
+
+ ts-jest@29.1.2(@babel/core@7.24.5)(jest@29.7.0)(typescript@5.3.3):
+ dependencies:
+ '@babel/core': 7.24.5
+ bs-logger: 0.2.6
+ fast-json-stable-stringify: 2.1.0
+ jest: 29.7.0(@types/node@20.5.1)(ts-node@10.9.2)
+ jest-util: 29.7.0
+ json5: 2.2.3
+ lodash.memoize: 4.1.2
+ make-error: 1.3.6
+ semver: 7.6.2
+ typescript: 5.3.3
+ yargs-parser: 21.1.1
+
+ ts-node@10.9.2(@types/node@20.5.1)(typescript@5.3.3):
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.11
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 20.5.1
+ acorn: 8.11.3
+ acorn-walk: 8.3.2
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 5.3.3
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+
+ ts-object-utils@0.0.5: {}
+
+ tslib@1.14.1: {}
+
+ tslib@2.4.0: {}
+
+ tslib@2.6.2: {}
+
+ tsutils@3.21.0(typescript@5.3.3):
+ dependencies:
+ tslib: 1.14.1
+ typescript: 5.3.3
+
+ turbo-stream@2.0.1: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-detect@4.0.8: {}
+
+ type-fest@0.10.0: {}
+
+ type-fest@0.16.0: {}
+
+ type-fest@0.18.1: {}
+
+ type-fest@0.20.2: {}
+
+ type-fest@0.21.3: {}
+
+ type-fest@0.3.1: {}
+
+ type-fest@0.4.1: {}
+
+ type-fest@0.6.0: {}
+
+ type-fest@0.7.1: {}
+
+ type-fest@0.8.1: {}
+
+ type-fest@1.4.0: {}
+
+ typed-array-buffer@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-typed-array: 1.1.13
+
+ typed-array-byte-length@1.0.1:
+ 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
+
+ typed-array-byte-offset@1.0.2:
+ 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
+
+ typed-array-length@1.0.6:
+ 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
+
+ typedarray-to-buffer@3.1.5:
+ dependencies:
+ is-typedarray: 1.0.0
+
+ typedarray.prototype.slice@1.0.3:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-errors: 1.3.0
+ typed-array-buffer: 1.0.2
+ typed-array-byte-offset: 1.0.2
+
+ typescript@5.3.3: {}
+
+ typescript@5.4.5: {}
+
+ ua-parser-js@1.0.37: {}
+
+ unbox-primitive@1.0.2:
+ dependencies:
+ call-bind: 1.0.7
+ has-bigints: 1.0.2
+ has-symbols: 1.0.3
+ which-boxed-primitive: 1.0.2
+
+ undici-types@5.26.5: {}
+
+ undici@6.18.0: {}
+
+ unicode-canonical-property-names-ecmascript@2.0.0: {}
+
+ unicode-match-property-ecmascript@2.0.0:
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.0
+ unicode-property-aliases-ecmascript: 2.1.0
+
+ unicode-match-property-value-ecmascript@2.1.0: {}
+
+ unicode-property-aliases-ecmascript@2.1.0: {}
+
+ unique-filename@3.0.0:
+ dependencies:
+ unique-slug: 4.0.0
+
+ unique-slug@4.0.0:
+ dependencies:
+ imurmurhash: 0.1.4
+
+ unique-string@1.0.0:
+ dependencies:
+ crypto-random-string: 1.0.0
+
+ unique-string@2.0.0:
+ dependencies:
+ crypto-random-string: 2.0.0
+
+ universalify@0.1.2: {}
+
+ universalify@0.2.0: {}
+
+ universalify@1.0.0: {}
+
+ universalify@2.0.1: {}
+
+ unpipe@1.0.0: {}
+
+ update-browserslist-db@1.0.16(browserslist@4.23.0):
+ dependencies:
+ browserslist: 4.23.0
+ escalade: 3.1.2
+ picocolors: 1.0.1
+
+ update-notifier@5.1.0:
+ dependencies:
+ boxen: 5.1.2
+ chalk: 4.1.2
+ configstore: 5.0.1
+ has-yarn: 2.1.0
+ import-lazy: 2.1.0
+ is-ci: 2.0.0
+ is-installed-globally: 0.4.0
+ is-npm: 5.0.0
+ is-yarn-global: 0.3.0
+ latest-version: 5.1.0
+ pupa: 2.1.1
+ semver: 7.6.2
+ semver-diff: 3.1.1
+ xdg-basedir: 4.0.0
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ url-join@4.0.0: {}
+
+ url-parse-lax@3.0.0:
+ dependencies:
+ prepend-http: 2.0.0
+
+ url-parse@1.5.10:
+ dependencies:
+ querystringify: 2.2.0
+ requires-port: 1.0.0
+
+ use-latest-callback@0.1.9(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+
+ use-sync-external-store@1.2.0(react@18.2.0):
+ dependencies:
+ react: 18.2.0
+
+ utif2@4.1.0:
+ dependencies:
+ pako: 1.0.11
+
+ util-deprecate@1.0.2: {}
+
+ util@0.12.5:
+ dependencies:
+ inherits: 2.0.4
+ is-arguments: 1.1.1
+ is-generator-function: 1.0.10
+ is-typed-array: 1.1.13
+ which-typed-array: 1.1.15
+
+ utils-merge@1.0.1: {}
+
+ uuid@7.0.3: {}
+
+ uuid@8.3.2: {}
+
+ v8-compile-cache-lib@3.0.1: {}
+
+ v8-to-istanbul@9.2.0:
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ '@types/istanbul-lib-coverage': 2.0.6
+ convert-source-map: 2.0.0
+
+ vali-date@1.0.0: {}
+
+ valid-url@1.0.9: {}
+
+ validate-npm-package-license@3.0.4:
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+
+ validate-npm-package-name@3.0.0:
+ dependencies:
+ builtins: 1.0.3
+
+ vary@1.1.2: {}
+
+ vlq@1.0.1: {}
+
+ void-elements@3.1.0: {}
+
+ w3c-xmlserializer@4.0.0:
+ dependencies:
+ xml-name-validator: 4.0.0
+
+ walker@1.0.8:
+ dependencies:
+ makeerror: 1.0.12
+
+ warn-once@0.1.1: {}
+
+ wcwidth@1.0.1:
+ dependencies:
+ defaults: 1.0.4
+
+ web-encoding@1.1.5:
+ dependencies:
+ util: 0.12.5
+ optionalDependencies:
+ '@zxing/text-encoding': 0.9.0
+
+ web-streams-polyfill@3.3.3: {}
+
+ webidl-conversions@3.0.1: {}
+
+ webidl-conversions@5.0.0: {}
+
+ webidl-conversions@7.0.0: {}
+
+ whatwg-encoding@2.0.0:
+ dependencies:
+ iconv-lite: 0.6.3
+
+ whatwg-fetch@3.6.20: {}
+
+ whatwg-mimetype@3.0.0: {}
+
+ whatwg-url-without-unicode@8.0.0-3:
+ dependencies:
+ buffer: 5.7.1
+ punycode: 2.3.1
+ webidl-conversions: 5.0.0
+
+ whatwg-url@11.0.0:
+ dependencies:
+ tr46: 3.0.0
+ webidl-conversions: 7.0.0
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ which-boxed-primitive@1.0.2:
+ 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
+
+ which-builtin-type@1.1.3:
+ dependencies:
+ function.prototype.name: 1.1.6
+ 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.1.4
+ is-weakref: 1.0.2
+ isarray: 2.0.5
+ which-boxed-primitive: 1.0.2
+ which-collection: 1.0.2
+ which-typed-array: 1.1.15
+
+ 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-module@2.0.1: {}
+
+ which-typed-array@1.1.15:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.2
+
+ which@1.3.1:
+ dependencies:
+ isexe: 2.0.0
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ widest-line@3.1.0:
+ dependencies:
+ string-width: 4.2.3
+
+ wonka@4.0.15: {}
+
+ word-wrap@1.2.5: {}
+
+ wrap-ansi@3.0.1:
+ dependencies:
+ string-width: 2.1.1
+ strip-ansi: 4.0.0
+
+ wrap-ansi@6.2.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ 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
+
+ wrappy@1.0.2: {}
+
+ write-file-atomic@2.4.3:
+ dependencies:
+ graceful-fs: 4.2.11
+ imurmurhash: 0.1.4
+ signal-exit: 3.0.7
+
+ write-file-atomic@3.0.3:
+ dependencies:
+ imurmurhash: 0.1.4
+ is-typedarray: 1.0.0
+ signal-exit: 3.0.7
+ typedarray-to-buffer: 3.1.5
+
+ write-file-atomic@4.0.2:
+ dependencies:
+ imurmurhash: 0.1.4
+ signal-exit: 3.0.7
+
+ ws@6.2.2:
+ dependencies:
+ async-limiter: 1.0.1
+
+ ws@7.5.9: {}
+
+ ws@8.17.0: {}
+
+ xcode@3.0.1:
+ dependencies:
+ simple-plist: 1.3.1
+ uuid: 7.0.3
+
+ xdg-basedir@4.0.0: {}
+
+ xhr@2.6.0:
+ dependencies:
+ global: 4.4.0
+ is-function: 1.0.2
+ parse-headers: 2.0.5
+ xtend: 4.0.2
+
+ xml-name-validator@4.0.0: {}
+
+ xml-parse-from-string@1.0.1: {}
+
+ xml2js@0.5.0:
+ dependencies:
+ sax: 1.3.0
+ xmlbuilder: 11.0.1
+
+ xml2js@0.6.0:
+ dependencies:
+ sax: 1.3.0
+ xmlbuilder: 11.0.1
+
+ xml@1.0.1: {}
+
+ xmlbuilder@11.0.1: {}
+
+ xmlbuilder@14.0.0: {}
+
+ xmlbuilder@15.1.1: {}
+
+ xmlchars@2.2.0: {}
+
+ xtend@4.0.2: {}
+
+ y18n@4.0.3: {}
+
+ y18n@5.0.8: {}
+
+ yallist@3.1.1: {}
+
+ yallist@4.0.0: {}
+
+ yaml@1.10.2: {}
+
+ yaml@2.3.1: {}
+
+ yaml@2.4.2: {}
+
+ yargs-parser@18.1.3:
+ dependencies:
+ camelcase: 5.3.1
+ decamelize: 1.2.0
+
+ yargs-parser@20.2.9: {}
+
+ yargs-parser@21.1.1: {}
+
+ yargs@15.4.1:
+ dependencies:
+ cliui: 6.0.0
+ decamelize: 1.2.0
+ find-up: 4.1.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ require-main-filename: 2.0.0
+ set-blocking: 2.0.0
+ string-width: 4.2.3
+ which-module: 2.0.1
+ y18n: 4.0.3
+ yargs-parser: 18.1.3
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.1.2
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ yn@3.1.1: {}
+
+ yocto-queue@0.1.0: {}
+
+ zod@3.23.8: {}
+
+ zustand@4.5.2(@types/react@18.2.79)(react@18.2.0):
+ dependencies:
+ '@types/react': 18.2.79
+ react: 18.2.0
+ use-sync-external-store: 1.2.0(react@18.2.0)
diff --git a/project.d.ts b/project.d.ts
new file mode 100644
index 0000000..a13e313
--- /dev/null
+++ b/project.d.ts
@@ -0,0 +1 @@
+///
diff --git a/scripts/eas-pre-install b/scripts/eas-pre-install
new file mode 100755
index 0000000..1e80093
--- /dev/null
+++ b/scripts/eas-pre-install
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+if [[ "$EAS_BUILD_PLATFORM" == "android" ]]; then
+ npm install -g pnpm@8.6.5
+ pnpm --version
+fi
diff --git a/scripts/genrate-apk-and-install b/scripts/genrate-apk-and-install
new file mode 100755
index 0000000..6de1fdf
--- /dev/null
+++ b/scripts/genrate-apk-and-install
@@ -0,0 +1,5 @@
+#!/bin/bash
+# this simple script will get the latest build url for the android platform
+./android/gradlew assembleRelease -p ./android # build debug apk
+find ./android -type f -name "app-release.apk" # find apk file
+adb install ""
\ No newline at end of file
diff --git a/scripts/i18next-syntax-validation.js b/scripts/i18next-syntax-validation.js
new file mode 100644
index 0000000..6be5484
--- /dev/null
+++ b/scripts/i18next-syntax-validation.js
@@ -0,0 +1,23 @@
+const validate = (message = '') => {
+ if (!(message || '').trim()) {
+ throw new SyntaxError('Message is Empty.');
+ }
+ if (typeof message !== 'string') {
+ throw new TypeError('Message must be a String.');
+ }
+ if (
+ (message.includes('{') || message.includes('}')) &&
+ !/{{ ?(?:- |\w+?)(, ?)?\w+? ?}}/g.test(message)
+ ) {
+ throw new SyntaxError(
+ 'Interpolation error. See: https://www.i18next.com/misc/json-format'
+ );
+ }
+ if (message.includes('$t(') && !/\$t\([\w]+:\w+(?:\.\w+)*\)/g.test(message)) {
+ throw new SyntaxError(
+ 'Nesting error. See: https://www.i18next.com/misc/json-format'
+ );
+ }
+};
+
+module.exports = validate;
diff --git a/setup.ts b/setup.ts
new file mode 100644
index 0000000..fe67449
--- /dev/null
+++ b/setup.ts
@@ -0,0 +1,5 @@
+// react-hook form setup for testing
+// @ts-ignore
+global.window = {};
+// @ts-ignore
+global.window = global;
diff --git a/src/api/common/api-provider.tsx b/src/api/common/api-provider.tsx
new file mode 100644
index 0000000..ff1e48d
--- /dev/null
+++ b/src/api/common/api-provider.tsx
@@ -0,0 +1,13 @@
+import { useReactQueryDevTools } from '@dev-plugins/react-query';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+import * as React from 'react';
+
+export const queryClient = new QueryClient();
+
+export function APIProvider({ children }: { children: React.ReactNode }) {
+ useReactQueryDevTools(queryClient);
+ return (
+ // Provide the client to your App
+ {children}
+ );
+}
diff --git a/src/api/common/client.tsx b/src/api/common/client.tsx
new file mode 100644
index 0000000..85ee325
--- /dev/null
+++ b/src/api/common/client.tsx
@@ -0,0 +1,5 @@
+import { Env } from '@env';
+import axios from 'axios';
+export const client = axios.create({
+ baseURL: Env.API_URL,
+});
diff --git a/src/api/common/index.tsx b/src/api/common/index.tsx
new file mode 100644
index 0000000..e5c6ea7
--- /dev/null
+++ b/src/api/common/index.tsx
@@ -0,0 +1,3 @@
+export * from './api-provider';
+export * from './client';
+export * from './utils';
diff --git a/src/api/common/utils.tsx b/src/api/common/utils.tsx
new file mode 100644
index 0000000..34b2bdf
--- /dev/null
+++ b/src/api/common/utils.tsx
@@ -0,0 +1,51 @@
+import type {
+ GetNextPageParamFunction,
+ GetPreviousPageParamFunction,
+} from '@tanstack/react-query';
+
+import type { PaginateQuery } from '../types';
+
+type KeyParams = {
+ [key: string]: any;
+};
+export const DEFAULT_LIMIT = 10;
+
+export function getQueryKey(key: string, params?: T) {
+ return [key, ...(params ? [params] : [])];
+}
+
+// for infinite query pages to flatList data
+export function normalizePages(pages?: PaginateQuery[]): T[] {
+ return pages
+ ? pages.reduce((prev: T[], current) => [...prev, ...current.results], [])
+ : [];
+}
+
+// a function that accept a url and return params as an object
+export function getUrlParameters(
+ url: string | null
+): { [k: string]: string } | null {
+ if (url === null) {
+ return null;
+ }
+ let regex = /[?&]([^=#]+)=([^]*)/g,
+ params = {},
+ match;
+ while ((match = regex.exec(url))) {
+ if (match[1] !== null) {
+ //@ts-ignore
+ params[match[1]] = match[2];
+ }
+ }
+ return params;
+}
+
+export const getPreviousPageParam: GetNextPageParamFunction<
+ unknown,
+ PaginateQuery
+> = (page) => getUrlParameters(page.previous)?.offset ?? null;
+
+export const getNextPageParam: GetPreviousPageParamFunction<
+ unknown,
+ PaginateQuery
+> = (page) => getUrlParameters(page.next)?.offset ?? null;
diff --git a/src/api/index.tsx b/src/api/index.tsx
new file mode 100644
index 0000000..deda663
--- /dev/null
+++ b/src/api/index.tsx
@@ -0,0 +1,3 @@
+export * from './common';
+export * from './posts';
+export * from './types';
diff --git a/src/api/posts/index.ts b/src/api/posts/index.ts
new file mode 100644
index 0000000..fad8551
--- /dev/null
+++ b/src/api/posts/index.ts
@@ -0,0 +1,4 @@
+export * from './types';
+export * from './use-add-post';
+export * from './use-post';
+export * from './use-posts';
diff --git a/src/api/posts/types.ts b/src/api/posts/types.ts
new file mode 100644
index 0000000..460be1c
--- /dev/null
+++ b/src/api/posts/types.ts
@@ -0,0 +1,6 @@
+export type Post = {
+ userId: number;
+ id: number;
+ title: string;
+ body: string;
+};
diff --git a/src/api/posts/use-add-post.ts b/src/api/posts/use-add-post.ts
new file mode 100644
index 0000000..cb4c3bd
--- /dev/null
+++ b/src/api/posts/use-add-post.ts
@@ -0,0 +1,17 @@
+import type { AxiosError } from 'axios';
+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) =>
+ client({
+ url: 'posts/add',
+ method: 'POST',
+ data: variables,
+ }).then((response) => response.data),
+});
diff --git a/src/api/posts/use-post.ts b/src/api/posts/use-post.ts
new file mode 100644
index 0000000..4a00158
--- /dev/null
+++ b/src/api/posts/use-post.ts
@@ -0,0 +1,17 @@
+import type { AxiosError } from 'axios';
+import { createQuery } from 'react-query-kit';
+
+import { client } from '../common';
+import type { Post } from './types';
+
+type Variables = { id: string };
+type Response = Post;
+
+export const usePost = createQuery({
+ queryKey: ['posts'],
+ fetcher: (variables) => {
+ return client
+ .get(`posts/${variables.id}`)
+ .then((response) => response.data);
+ },
+});
diff --git a/src/api/posts/use-posts.ts b/src/api/posts/use-posts.ts
new file mode 100644
index 0000000..d1386b5
--- /dev/null
+++ b/src/api/posts/use-posts.ts
@@ -0,0 +1,15 @@
+import type { AxiosError } from 'axios';
+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
+
+export const usePosts = createQuery({
+ queryKey: ['posts'],
+ fetcher: () => {
+ return client.get(`posts`).then((response) => response.data.posts);
+ },
+});
diff --git a/src/api/types.ts b/src/api/types.ts
new file mode 100644
index 0000000..410359c
--- /dev/null
+++ b/src/api/types.ts
@@ -0,0 +1,6 @@
+export type PaginateQuery = {
+ results: T[];
+ count: number;
+ next: string | null;
+ previous: string | null;
+};
diff --git a/src/app/(app)/_layout.tsx b/src/app/(app)/_layout.tsx
new file mode 100644
index 0000000..086e551
--- /dev/null
+++ b/src/app/(app)/_layout.tsx
@@ -0,0 +1,75 @@
+/* eslint-disable react/no-unstable-nested-components */
+import { Link, Redirect, SplashScreen, Tabs } from 'expo-router';
+import React, { useCallback, useEffect } from 'react';
+
+import { useAuth, useIsFirstTime } from '@/core';
+import { Pressable, Text } from '@/ui';
+import {
+ Feed as FeedIcon,
+ Settings as SettingsIcon,
+ Style as StyleIcon,
+} from '@/ui/icons';
+
+export default function TabLayout() {
+ const status = useAuth.use.status();
+ const [isFirstTime] = useIsFirstTime();
+ const hideSplash = useCallback(async () => {
+ await SplashScreen.hideAsync();
+ }, []);
+ useEffect(() => {
+ if (status !== 'idle') {
+ setTimeout(() => {
+ hideSplash();
+ }, 1000);
+ }
+ }, [hideSplash, status]);
+
+ if (isFirstTime) {
+ return ;
+ }
+ if (status === 'signOut') {
+ return ;
+ }
+ return (
+
+ ,
+ headerRight: () => ,
+ tabBarTestID: 'feed-tab',
+ }}
+ />
+
+ ,
+ tabBarTestID: 'style-tab',
+ }}
+ />
+ ,
+ tabBarTestID: 'settings-tab',
+ }}
+ />
+
+ );
+}
+
+const CreateNewPostLink = () => {
+ return (
+
+
+ Create
+
+
+ );
+};
diff --git a/src/app/(app)/index.tsx b/src/app/(app)/index.tsx
new file mode 100644
index 0000000..4163a4c
--- /dev/null
+++ b/src/app/(app)/index.tsx
@@ -0,0 +1,35 @@
+import { FlashList } from '@shopify/flash-list';
+import React from 'react';
+
+import type { Post } from '@/api';
+import { usePosts } from '@/api';
+import { Card } from '@/components/card';
+import { EmptyList, FocusAwareStatusBar, Text, View } from '@/ui';
+
+export default function Feed() {
+ const { data, isPending, isError } = usePosts();
+ const renderItem = React.useCallback(
+ ({ item }: { item: Post }) => ,
+ []
+ );
+
+ if (isError) {
+ return (
+
+ Error Loading data
+
+ );
+ }
+ return (
+
+
+ `item-${index}`}
+ ListEmptyComponent={}
+ estimatedItemSize={300}
+ />
+
+ );
+}
diff --git a/src/app/(app)/settings.tsx b/src/app/(app)/settings.tsx
new file mode 100644
index 0000000..13cf446
--- /dev/null
+++ b/src/app/(app)/settings.tsx
@@ -0,0 +1,79 @@
+/* eslint-disable react/react-in-jsx-scope */
+import { Env } from '@env';
+import { useColorScheme } from 'nativewind';
+
+import { Item } from '@/components/settings/item';
+import { ItemsContainer } from '@/components/settings/items-container';
+import { LanguageItem } from '@/components/settings/language-item';
+import { ThemeItem } from '@/components/settings/theme-item';
+import { translate, useAuth } from '@/core';
+import { colors, FocusAwareStatusBar, ScrollView, Text, View } from '@/ui';
+import { Github, Rate, Share, Support, Website } from '@/ui/icons';
+
+export default function Settings() {
+ const signOut = useAuth.use.signOut();
+ const { colorScheme } = useColorScheme();
+ const iconColor =
+ colorScheme === 'dark' ? colors.neutral[400] : colors.neutral[500];
+ return (
+ <>
+
+
+
+
+
+ {translate('settings.title')}
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+ onPress={() => {}}
+ />
+ }
+ onPress={() => {}}
+ />
+ }
+ onPress={() => {}}
+ />
+
+
+
+ - {}} />
+
- {}} />
+
}
+ onPress={() => {}}
+ />
+ }
+ onPress={() => {}}
+ />
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/src/app/(app)/style.tsx b/src/app/(app)/style.tsx
new file mode 100644
index 0000000..b919ef3
--- /dev/null
+++ b/src/app/(app)/style.tsx
@@ -0,0 +1,23 @@
+import * as React from 'react';
+
+import { Buttons } from '@/components/buttons';
+import { Colors } from '@/components/colors';
+import { Inputs } from '@/components/inputs';
+import { Typography } from '@/components/typography';
+import { FocusAwareStatusBar, SafeAreaView, ScrollView } from '@/ui';
+
+export default function Style() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/src/app/_layout.tsx b/src/app/_layout.tsx
new file mode 100644
index 0000000..dba050b
--- /dev/null
+++ b/src/app/_layout.tsx
@@ -0,0 +1,69 @@
+/* eslint-disable react/react-in-jsx-scope */
+import { useReactNavigationDevTools } from '@dev-plugins/react-navigation';
+import { BottomSheetModalProvider } from '@gorhom/bottom-sheet';
+import { ThemeProvider } from '@react-navigation/native';
+import { SplashScreen, Stack, useNavigationContainerRef } from 'expo-router';
+import { StyleSheet } from 'react-native';
+import FlashMessage from 'react-native-flash-message';
+import { GestureHandlerRootView } from 'react-native-gesture-handler';
+
+import { APIProvider } from '@/api';
+import { hydrateAuth, loadSelectedTheme } from '@/core';
+import { useThemeConfig } from '@/core/use-theme-config';
+
+export { ErrorBoundary } from 'expo-router';
+
+// Import global CSS file
+import '../../global.css';
+
+export const unstable_settings = {
+ initialRouteName: '(app)',
+};
+
+hydrateAuth();
+loadSelectedTheme();
+// Prevent the splash screen from auto-hiding before asset loading is complete.
+SplashScreen.preventAutoHideAsync();
+
+export default function RootLayout() {
+ const navigationRef = useNavigationContainerRef();
+ useReactNavigationDevTools(navigationRef);
+ return ;
+}
+
+function RootLayoutNav() {
+ return (
+
+
+
+
+
+
+
+ );
+}
+
+function Providers({ children }: { children: React.ReactNode }) {
+ const theme = useThemeConfig();
+ return (
+
+
+
+
+ {children}
+
+
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ },
+});
diff --git a/src/app/feed/[id].tsx b/src/app/feed/[id].tsx
new file mode 100644
index 0000000..64e4e53
--- /dev/null
+++ b/src/app/feed/[id].tsx
@@ -0,0 +1,42 @@
+import { Stack, useLocalSearchParams } from 'expo-router';
+import * as React from 'react';
+
+import { usePost } from '@/api';
+import { ActivityIndicator, FocusAwareStatusBar, Text, View } from '@/ui';
+
+export default function Post() {
+ const local = useLocalSearchParams<{ id: string }>();
+
+ const { data, isPending, isError } = usePost({
+ //@ts-ignore
+ variables: { id: local.id },
+ });
+
+ if (isPending) {
+ return (
+
+
+
+
+
+ );
+ }
+ if (isError) {
+ return (
+
+
+
+ Error loading post
+
+ );
+ }
+
+ return (
+
+
+
+ {data.title}
+ {data.body}
+
+ );
+}
diff --git a/src/app/feed/add-post.tsx b/src/app/feed/add-post.tsx
new file mode 100644
index 0000000..a374115
--- /dev/null
+++ b/src/app/feed/add-post.tsx
@@ -0,0 +1,74 @@
+import { zodResolver } from '@hookform/resolvers/zod';
+import { Stack } from 'expo-router';
+import * as React from 'react';
+import { useForm } from 'react-hook-form';
+import { showMessage } from 'react-native-flash-message';
+import { z } from 'zod';
+
+import { useAddPost } from '@/api';
+import { Button, ControlledInput, showErrorMessage, View } from '@/ui';
+
+const schema = z.object({
+ title: z.string().min(10),
+ body: z.string().min(120),
+});
+
+type FormType = z.infer;
+
+export default function AddPost() {
+ const { control, handleSubmit } = useForm({
+ resolver: zodResolver(schema),
+ });
+ const { mutate: addPost, isPending } = useAddPost();
+
+ const onSubmit = (data: FormType) => {
+ console.log(data);
+ addPost(
+ { ...data, userId: 1 },
+ {
+ onSuccess: () => {
+ showMessage({
+ message: 'Post added successfully',
+ type: 'success',
+ });
+ // here you can navigate to the post list and refresh the list data
+ //queryClient.invalidateQueries(usePosts.getKey());
+ },
+ onError: () => {
+ showErrorMessage('Error adding post');
+ },
+ }
+ );
+ };
+ return (
+ <>
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/src/app/login.tsx b/src/app/login.tsx
new file mode 100644
index 0000000..7878255
--- /dev/null
+++ b/src/app/login.tsx
@@ -0,0 +1,26 @@
+import { useRouter } from 'expo-router';
+import React from 'react';
+
+import type { LoginFormProps } from '@/components/login-form';
+import { LoginForm } from '@/components/login-form';
+import { useAuth } from '@/core';
+import { useSoftKeyboardEffect } from '@/core/keyboard';
+import { FocusAwareStatusBar } from '@/ui';
+
+export default function Login() {
+ const router = useRouter();
+ const signIn = useAuth.use.signIn();
+ useSoftKeyboardEffect();
+
+ const onSubmit: LoginFormProps['onSubmit'] = (data) => {
+ console.log(data);
+ signIn({ access: 'access-token', refresh: 'refresh-token' });
+ router.push('/');
+ };
+ return (
+ <>
+
+
+ >
+ );
+}
diff --git a/src/app/onboarding.tsx b/src/app/onboarding.tsx
new file mode 100644
index 0000000..4d0be84
--- /dev/null
+++ b/src/app/onboarding.tsx
@@ -0,0 +1,48 @@
+import { useRouter } from 'expo-router';
+import React from 'react';
+
+import { Cover } from '@/components/cover';
+import { useIsFirstTime } from '@/core/hooks';
+import { Button, FocusAwareStatusBar, SafeAreaView, Text, View } from '@/ui';
+export default function Onboarding() {
+ const [_, setIsFirstTime] = useIsFirstTime();
+ const router = useRouter();
+ return (
+
+
+
+
+
+
+
+ Obytes Starter
+
+
+ The right way to build your mobile app
+
+
+
+ 🚀 Production-ready{' '}
+
+
+ 🥷 Developer experience + Productivity
+
+
+ 🧩 Minimal code and dependencies
+
+
+ 💪 well maintained third-party libraries
+
+
+
+
+
+ );
+}
diff --git a/src/components/buttons.tsx b/src/components/buttons.tsx
new file mode 100644
index 0000000..480939f
--- /dev/null
+++ b/src/components/buttons.tsx
@@ -0,0 +1,52 @@
+import React from 'react';
+
+import { Button, View } from '@/ui';
+
+import { Title } from './title';
+
+export const Buttons = () => {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/src/components/card.tsx b/src/components/card.tsx
new file mode 100644
index 0000000..f579229
--- /dev/null
+++ b/src/components/card.tsx
@@ -0,0 +1,40 @@
+import { Link } from 'expo-router';
+import React from 'react';
+
+import type { Post } from '@/api';
+import { Image, Pressable, Text, View } from '@/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',
+ 'https://images.unsplash.com/photo-1515386474292-47555758ef2e?auto=format&fit=crop&w=800&q=80',
+ 'https://plus.unsplash.com/premium_photo-1666815503002-5f07a44ac8fb?auto=format&fit=crop&w=800&q=80',
+ 'https://images.unsplash.com/photo-1587974928442-77dc3e0dba72?auto=format&fit=crop&w=800&q=80',
+];
+
+export const Card = ({ title, body, id }: Props) => {
+ return (
+
+
+
+
+
+
+ {title}
+
+ {body}
+
+
+
+
+
+ );
+};
diff --git a/src/components/colors.tsx b/src/components/colors.tsx
new file mode 100644
index 0000000..3ae5dc5
--- /dev/null
+++ b/src/components/colors.tsx
@@ -0,0 +1,50 @@
+import React from 'react';
+
+import { Text, View } from '@/ui';
+import colors from '@/ui/colors';
+
+import { Title } from './title';
+type ColorName = keyof typeof colors;
+
+export const Colors = () => {
+ return (
+ <>
+
+ {(Object.keys(colors) as ColorName[]).map((name) => (
+
+ ))}
+ >
+ );
+};
+
+const Color = ({ name }: { name: ColorName }) => {
+ if (typeof colors[name] === 'string') return null;
+ return (
+
+ {name.toUpperCase()}
+
+ {Object.entries(colors[name]).map(([key, value]) => {
+ return (
+
+ );
+ })}
+
+
+ );
+};
+
+const ColorCard = ({ color, value }: { value: string; color: string }) => {
+ return (
+
+
+ {value}
+
+ );
+};
diff --git a/src/components/cover.tsx b/src/components/cover.tsx
new file mode 100644
index 0000000..6657da5
--- /dev/null
+++ b/src/components/cover.tsx
@@ -0,0 +1,217 @@
+/* eslint-disable max-lines-per-function */
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { Circle, Path, Polygon } from 'react-native-svg';
+// TODO: should be updated to simple images
+export const Cover = (props: SvgProps) => (
+
+);
diff --git a/src/components/inputs.tsx b/src/components/inputs.tsx
new file mode 100644
index 0000000..730c52e
--- /dev/null
+++ b/src/components/inputs.tsx
@@ -0,0 +1,81 @@
+import React from 'react';
+
+import type { Option } from '@/ui';
+import { Input, Select, View } from '@/ui';
+import { Checkbox, Radio, Switch } from '@/ui';
+
+import { Title } from './title';
+
+const options: Option[] = [
+ { value: 'chocolate', label: 'Chocolate' },
+ { value: 'strawberry', label: 'Strawberry' },
+ { value: 'vanilla', label: 'Vanilla' },
+];
+
+export const Inputs = () => {
+ const [value, setValue] = React.useState();
+ return (
+ <>
+
+
+
+
+
+
+ >
+ );
+};
+
+const CheckboxExample = () => {
+ const [checked, setChecked] = React.useState(false);
+ return (
+
+
+
+
+ );
+};
+
+const RadioExample = () => {
+ const [selected, setSelected] = React.useState(false);
+ return (
+
+
+
+
+ );
+};
+
+const SwitchExample = () => {
+ const [active, setActive] = React.useState(false);
+ return (
+
+
+
+
+ );
+};
diff --git a/src/components/login-form.test.tsx b/src/components/login-form.test.tsx
new file mode 100644
index 0000000..9d91ace
--- /dev/null
+++ b/src/components/login-form.test.tsx
@@ -0,0 +1,65 @@
+import React from 'react';
+
+import { cleanup, fireEvent, render, screen, waitFor } from '@/core/test-utils';
+
+import type { LoginFormProps } from './login-form';
+import { LoginForm } from './login-form';
+
+afterEach(cleanup);
+
+const onSubmitMock: jest.Mock = jest.fn();
+
+describe('LoginForm Form ', () => {
+ it('renders correctly', async () => {
+ render();
+ expect(await screen.findByText(/Sign in/i)).toBeOnTheScreen();
+ });
+
+ it('should display required error when values are empty', async () => {
+ render();
+
+ const button = screen.getByTestId('login-button');
+ expect(screen.queryByText(/Email is required/i)).not.toBeOnTheScreen();
+ fireEvent.press(button);
+ expect(await screen.findByText(/Email is required/i)).toBeOnTheScreen();
+ expect(screen.getByText(/Password is required/i)).toBeOnTheScreen();
+ });
+
+ it('should display matching error when email is invalid', async () => {
+ render();
+
+ const button = screen.getByTestId('login-button');
+ const emailInput = screen.getByTestId('email-input');
+ const passwordInput = screen.getByTestId('password-input');
+
+ fireEvent.changeText(emailInput, 'yyyyy');
+ fireEvent.changeText(passwordInput, 'test');
+ fireEvent.press(button);
+
+ expect(screen.queryByText(/Email is required/i)).not.toBeOnTheScreen();
+ expect(await screen.findByText(/Invalid Email Format/i)).toBeOnTheScreen();
+ });
+
+ it('Should call LoginForm with correct values when values are valid', async () => {
+ render();
+
+ const button = screen.getByTestId('login-button');
+ const emailInput = screen.getByTestId('email-input');
+ const passwordInput = screen.getByTestId('password-input');
+
+ fireEvent.changeText(emailInput, 'youssef@gmail.com');
+ fireEvent.changeText(passwordInput, 'password');
+ fireEvent.press(button);
+ await waitFor(() => {
+ expect(onSubmitMock).toHaveBeenCalledTimes(1);
+ });
+ // undefined because we don't use second argument of the SubmitHandler
+ expect(onSubmitMock).toHaveBeenCalledWith(
+ {
+ email: 'youssef@gmail.com',
+ password: 'password',
+ },
+ undefined
+ );
+ });
+});
diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx
new file mode 100644
index 0000000..278b42c
--- /dev/null
+++ b/src/components/login-form.tsx
@@ -0,0 +1,67 @@
+import { zodResolver } from '@hookform/resolvers/zod';
+import React from 'react';
+import type { SubmitHandler } from 'react-hook-form';
+import { useForm } from 'react-hook-form';
+import * as z from 'zod';
+
+import { Button, ControlledInput, Text, View } from '@/ui';
+
+const schema = z.object({
+ name: z.string().optional(),
+ email: z
+ .string({
+ required_error: 'Email is required',
+ })
+ .email('Invalid email format'),
+ password: z
+ .string({
+ required_error: 'Password is required',
+ })
+ .min(6, 'Password must be at least 6 characters'),
+});
+
+export type FormType = z.infer;
+
+export type LoginFormProps = {
+ onSubmit?: SubmitHandler;
+};
+
+export const LoginForm = ({ onSubmit = () => {} }: LoginFormProps) => {
+ const { handleSubmit, control } = useForm({
+ resolver: zodResolver(schema),
+ });
+ return (
+
+
+ Sign In
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/src/components/settings/item.tsx b/src/components/settings/item.tsx
new file mode 100644
index 0000000..9621959
--- /dev/null
+++ b/src/components/settings/item.tsx
@@ -0,0 +1,36 @@
+import * as React from 'react';
+
+import type { TxKeyPath } from '@/core';
+import { Pressable, Text, View } from '@/ui';
+import { ArrowRight } from '@/ui/icons';
+
+type ItemProps = {
+ text: TxKeyPath;
+ value?: string;
+ onPress?: () => void;
+ icon?: React.ReactNode;
+};
+
+export const Item = ({ text, value, icon, onPress }: ItemProps) => {
+ const isPressable = onPress !== undefined;
+ return (
+
+
+ {icon && {icon}}
+
+
+
+ {value}
+ {isPressable && (
+
+
+
+ )}
+
+
+ );
+};
diff --git a/src/components/settings/items-container.tsx b/src/components/settings/items-container.tsx
new file mode 100644
index 0000000..75ea97b
--- /dev/null
+++ b/src/components/settings/items-container.tsx
@@ -0,0 +1,22 @@
+import React from 'react';
+
+import type { TxKeyPath } from '@/core';
+import { Text, View } from '@/ui';
+
+type Props = {
+ children: React.ReactNode;
+ title?: TxKeyPath;
+};
+
+export const ItemsContainer = ({ children, title }: Props) => {
+ return (
+ <>
+ {title && }
+ {
+
+ {children}
+
+ }
+ >
+ );
+};
diff --git a/src/components/settings/language-item.tsx b/src/components/settings/language-item.tsx
new file mode 100644
index 0000000..6cb8f2c
--- /dev/null
+++ b/src/components/settings/language-item.tsx
@@ -0,0 +1,50 @@
+import * as React from 'react';
+
+import { useSelectedLanguage } from '@/core';
+import { translate } from '@/core';
+import type { Language } from '@/core/i18n/resources';
+import type { Option } from '@/ui';
+import { Options, useModal } from '@/ui';
+
+import { Item } from './item';
+
+export const LanguageItem = () => {
+ const { language, setLanguage } = useSelectedLanguage();
+ const modal = useModal();
+ const onSelect = React.useCallback(
+ (option: Option) => {
+ setLanguage(option.value as Language);
+ modal.dismiss();
+ },
+ [setLanguage, modal]
+ );
+
+ const langs = React.useMemo(
+ () => [
+ { label: translate('settings.english'), value: 'en' },
+ { label: translate('settings.arabic'), value: 'ar' },
+ ],
+ []
+ );
+
+ const selectedLanguage = React.useMemo(
+ () => langs.find((lang) => lang.value === language),
+ [language, langs]
+ );
+
+ return (
+ <>
+
+
+ >
+ );
+};
diff --git a/src/components/settings/theme-item.tsx b/src/components/settings/theme-item.tsx
new file mode 100644
index 0000000..9a94dd1
--- /dev/null
+++ b/src/components/settings/theme-item.tsx
@@ -0,0 +1,51 @@
+import React from 'react';
+
+import type { ColorSchemeType } from '@/core';
+import { translate, useSelectedTheme } from '@/core';
+import type { Option } from '@/ui';
+import { Options, useModal } from '@/ui';
+
+import { Item } from './item';
+
+export const ThemeItem = () => {
+ const { selectedTheme, setSelectedTheme } = useSelectedTheme();
+ const modal = useModal();
+
+ const onSelect = React.useCallback(
+ (option: Option) => {
+ setSelectedTheme(option.value as ColorSchemeType);
+ modal.dismiss();
+ },
+ [setSelectedTheme, modal]
+ );
+
+ const themes = React.useMemo(
+ () => [
+ { label: `${translate('settings.theme.dark')} 🌙`, value: 'dark' },
+ { 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]
+ );
+
+ return (
+ <>
+
+
+ >
+ );
+};
diff --git a/src/components/title.tsx b/src/components/title.tsx
new file mode 100644
index 0000000..a0dd88a
--- /dev/null
+++ b/src/components/title.tsx
@@ -0,0 +1,15 @@
+import * as React from 'react';
+
+import { Text, View } from '@/ui';
+
+type Props = {
+ text: string;
+};
+export const Title = ({ text }: Props) => {
+ return (
+
+ {text}
+
+
+ );
+};
diff --git a/src/components/typography.tsx b/src/components/typography.tsx
new file mode 100644
index 0000000..cd027ea
--- /dev/null
+++ b/src/components/typography.tsx
@@ -0,0 +1,27 @@
+import React from 'react';
+
+import { Text, View } from '@/ui';
+
+import { Title } from './title';
+
+export const Typography = () => {
+ return (
+ <>
+
+
+
+ H1: Lorem ipsum dolor sit
+
+ H2: Lorem ipsum dolor sit
+ H3: Lorem ipsum dolor sit
+ H4: Lorem ipsum dolor sit
+
+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Cumque quasi
+ aut, expedita tempore ratione quidem in, corporis quia minus et
+ dolorem sunt temporibus iusto consequatur culpa. Omnis sequi debitis
+ recusandae?
+
+
+ >
+ );
+};
diff --git a/src/core/auth/index.tsx b/src/core/auth/index.tsx
new file mode 100644
index 0000000..0e0d426
--- /dev/null
+++ b/src/core/auth/index.tsx
@@ -0,0 +1,45 @@
+import { create } from 'zustand';
+
+import { createSelectors } from '../utils';
+import type { TokenType } from './utils';
+import { getToken, removeToken, setToken } from './utils';
+
+interface AuthState {
+ token: TokenType | null;
+ status: 'idle' | 'signOut' | 'signIn';
+ signIn: (data: TokenType) => void;
+ signOut: () => void;
+ hydrate: () => void;
+}
+
+const _useAuth = create((set, get) => ({
+ status: 'idle',
+ token: null,
+ signIn: (token) => {
+ setToken(token);
+ set({ status: 'signIn', token });
+ },
+ signOut: () => {
+ removeToken();
+ set({ status: 'signOut', token: null });
+ },
+ hydrate: () => {
+ try {
+ const userToken = getToken();
+ if (userToken !== null) {
+ get().signIn(userToken);
+ } else {
+ get().signOut();
+ }
+ } catch (e) {
+ // catch error here
+ // Maybe sign_out user!
+ }
+ },
+}));
+
+export const useAuth = createSelectors(_useAuth);
+
+export const signOut = () => _useAuth.getState().signOut();
+export const signIn = (token: TokenType) => _useAuth.getState().signIn(token);
+export const hydrateAuth = () => _useAuth.getState().hydrate();
diff --git a/src/core/auth/utils.tsx b/src/core/auth/utils.tsx
new file mode 100644
index 0000000..cfbf7ad
--- /dev/null
+++ b/src/core/auth/utils.tsx
@@ -0,0 +1,12 @@
+import { getItem, removeItem, setItem } from '@/core/storage';
+
+const TOKEN = 'token';
+
+export type TokenType = {
+ access: string;
+ refresh: string;
+};
+
+export const getToken = () => getItem(TOKEN);
+export const removeToken = () => removeItem(TOKEN);
+export const setToken = (value: TokenType) => setItem(TOKEN, value);
diff --git a/src/core/env.js b/src/core/env.js
new file mode 100644
index 0000000..2c3559b
--- /dev/null
+++ b/src/core/env.js
@@ -0,0 +1,13 @@
+/*
+ * This file should not be modified; use `env.js` in the project root to add your client environment variables.
+ * If you import `Env` from `@env`, this is the file that will be loaded.
+ * You can only access the client environment variables here.
+ * NOTE: We use js file so we can load the client env types
+ */
+
+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`.
+export const Env = Constants.expoConfig?.extra ?? {};
diff --git a/src/core/hooks/index.tsx b/src/core/hooks/index.tsx
new file mode 100644
index 0000000..f2361e1
--- /dev/null
+++ b/src/core/hooks/index.tsx
@@ -0,0 +1,2 @@
+export * from './use-is-first-time';
+export * from './use-selected-theme';
diff --git a/src/core/hooks/use-is-first-time.tsx b/src/core/hooks/use-is-first-time.tsx
new file mode 100644
index 0000000..39d2a59
--- /dev/null
+++ b/src/core/hooks/use-is-first-time.tsx
@@ -0,0 +1,13 @@
+import { useMMKVBoolean } from 'react-native-mmkv';
+
+import { storage } from '../storage';
+
+const IS_FIRST_TIME = 'IS_FIRST_TIME';
+
+export const 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/core/hooks/use-selected-theme.tsx b/src/core/hooks/use-selected-theme.tsx
new file mode 100644
index 0000000..a678e37
--- /dev/null
+++ b/src/core/hooks/use-selected-theme.tsx
@@ -0,0 +1,38 @@
+import { colorScheme, useColorScheme } from 'nativewind';
+import React from 'react';
+import { useMMKVString } from 'react-native-mmkv';
+
+import { storage } from '../storage';
+
+const SELECTED_THEME = 'SELECTED_THEME';
+export type ColorSchemeType = 'light' | 'dark' | 'system';
+/**
+ * this hooks should only be used while selecting the theme
+ * This hooks will return the selected theme which is stored in MMKV
+ * selectedTheme should be one of the following values 'light', 'dark' or '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 = () => {
+ const { colorScheme: _color, setColorScheme } = useColorScheme();
+ const [theme, _setTheme] = useMMKVString(SELECTED_THEME, storage);
+
+ const setSelectedTheme = React.useCallback(
+ (t: ColorSchemeType) => {
+ setColorScheme(t);
+ _setTheme(t);
+ },
+ [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 = () => {
+ const theme = storage.getString(SELECTED_THEME);
+ if (theme !== undefined) {
+ console.log('theme', theme);
+ colorScheme.set(theme as ColorSchemeType);
+ }
+};
diff --git a/src/core/i18n/index.tsx b/src/core/i18n/index.tsx
new file mode 100644
index 0000000..f43b0a3
--- /dev/null
+++ b/src/core/i18n/index.tsx
@@ -0,0 +1,28 @@
+import { locale } from 'expo-localization';
+import i18n from 'i18next';
+import { initReactI18next } from 'react-i18next';
+import { I18nManager } from 'react-native';
+
+import { resources } from './resources';
+import { getLanguage } from './utils';
+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`
+ fallbackLng: 'en',
+ compatibilityJSON: 'v3', // By default React Native projects does not support Intl
+
+ // allows integrating dynamic values into translations.
+ interpolation: {
+ escapeValue: false, // escape passed in values to avoid XSS injections
+ },
+});
+
+// Is it a RTL language?
+export const isRTL: boolean = i18n.dir() === 'rtl';
+
+I18nManager.allowRTL(isRTL);
+I18nManager.forceRTL(isRTL);
+
+export default i18n;
diff --git a/src/core/i18n/react-i18next.d.ts b/src/core/i18n/react-i18next.d.ts
new file mode 100644
index 0000000..e7ed22e
--- /dev/null
+++ b/src/core/i18n/react-i18next.d.ts
@@ -0,0 +1,9 @@
+import type { resources } from './resources';
+
+// react-i18next versions higher than 11.11.0
+
+declare module 'react-i18next' {
+ interface CustomTypeOptions {
+ resources: (typeof resources)['en'];
+ }
+}
diff --git a/src/core/i18n/resources.ts b/src/core/i18n/resources.ts
new file mode 100644
index 0000000..ac05206
--- /dev/null
+++ b/src/core/i18n/resources.ts
@@ -0,0 +1,13 @@
+import ar from '@/translations/ar.json';
+import en from '@/translations/en.json';
+
+export const resources = {
+ en: {
+ translation: en,
+ },
+ ar: {
+ translation: ar,
+ },
+};
+
+export type Language = keyof typeof resources;
diff --git a/src/core/i18n/types.ts b/src/core/i18n/types.ts
new file mode 100644
index 0000000..015523d
--- /dev/null
+++ b/src/core/i18n/types.ts
@@ -0,0 +1,23 @@
+// https://github.com/infinitered/ignite/blob/master/boilerplate/app/i18n/i18n.ts
+export type RecursiveKeyOf = {
+ [TKey in keyof TObj & (string | number)]: RecursiveKeyOfHandleValue<
+ TObj[TKey],
+ `${TKey}`
+ >;
+}[keyof TObj & (string | number)];
+
+type RecursiveKeyOfInner = {
+ [TKey in keyof TObj & (string | number)]: RecursiveKeyOfHandleValue<
+ TObj[TKey],
+ `['${TKey}']` | `.${TKey}`
+ >;
+}[keyof TObj & (string | number)];
+
+type RecursiveKeyOfHandleValue<
+ TValue,
+ Text extends string
+> = TValue extends any[]
+ ? Text
+ : TValue extends object
+ ? Text | `${Text}${RecursiveKeyOfInner}`
+ : Text;
diff --git a/src/core/i18n/utils.tsx b/src/core/i18n/utils.tsx
new file mode 100644
index 0000000..ac69972
--- /dev/null
+++ b/src/core/i18n/utils.tsx
@@ -0,0 +1,54 @@
+import type TranslateOptions from 'i18next';
+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;
+
+export const LOCAL = 'local';
+
+export const getLanguage = () => storage.getString(LOCAL); // 'Marc' getItem(LOCAL);
+
+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
+);
+
+export const changeLanguage = (lang: Language) => {
+ i18n.changeLanguage(lang);
+ if (lang === 'ar') {
+ I18nManager.forceRTL(true);
+ } else {
+ I18nManager.forceRTL(false);
+ }
+ if (Platform.OS === 'ios' || Platform.OS === 'android') {
+ if (__DEV__) NativeModules.DevSettings.reload();
+ else RNRestart.restart();
+ } else if (Platform.OS === 'web') {
+ window.location.reload();
+ }
+};
+
+export const useSelectedLanguage = () => {
+ const [language, setLang] = useMMKVString(LOCAL);
+
+ const setLanguage = useCallback(
+ (lang: Language) => {
+ setLang(lang);
+ if (lang !== undefined) changeLanguage(lang as Language);
+ },
+ [setLang]
+ );
+
+ return { language: language as Language, setLanguage };
+};
diff --git a/src/core/index.tsx b/src/core/index.tsx
new file mode 100644
index 0000000..088206f
--- /dev/null
+++ b/src/core/index.tsx
@@ -0,0 +1,4 @@
+export * from './auth';
+export * from './hooks';
+export * from './i18n';
+export * from './utils';
diff --git a/src/core/keyboard.ts b/src/core/keyboard.ts
new file mode 100644
index 0000000..b2f2948
--- /dev/null
+++ b/src/core/keyboard.ts
@@ -0,0 +1,24 @@
+import { useFocusEffect } from '@react-navigation/native';
+import { AvoidSoftInput } from 'react-native-avoid-softinput';
+
+/**
+ * This hook should be used in every screen that has a form input field to avoid the keyboard
+ * This is not a one for all solution, if you want more customization please refer to those examples: https://mateusz1913.github.io/react-native-avoid-softinput/docs/recipes/recipes-form
+ */
+
+export const useSoftKeyboardEffect = () => {
+ useFocusEffect(() => {
+ AvoidSoftInput.setShouldMimicIOSBehavior(true);
+ AvoidSoftInput.setEnabled(true);
+ // AvoidSoftInput.setAvoidOffset(30);
+ AvoidSoftInput.setShowAnimationDelay(0);
+ AvoidSoftInput.setShowAnimationDuration(150);
+ AvoidSoftInput.setHideAnimationDuration(150);
+ AvoidSoftInput.setHideAnimationDelay(0);
+ return () => {
+ AvoidSoftInput.setAvoidOffset(0);
+ AvoidSoftInput.setEnabled(false);
+ AvoidSoftInput.setShouldMimicIOSBehavior(false);
+ };
+ });
+};
diff --git a/src/core/storage.tsx b/src/core/storage.tsx
new file mode 100644
index 0000000..f701809
--- /dev/null
+++ b/src/core/storage.tsx
@@ -0,0 +1,16 @@
+import { MMKV } from 'react-native-mmkv';
+
+export const storage = new MMKV();
+
+export function getItem(key: string): T {
+ const value = storage.getString(key);
+ return value ? JSON.parse(value) || null : null;
+}
+
+export async function setItem(key: string, value: T) {
+ storage.set(key, JSON.stringify(value));
+}
+
+export async function removeItem(key: string) {
+ storage.delete(key);
+}
diff --git a/src/core/test-utils.tsx b/src/core/test-utils.tsx
new file mode 100644
index 0000000..c9e74d9
--- /dev/null
+++ b/src/core/test-utils.tsx
@@ -0,0 +1,27 @@
+import '@shopify/flash-list/jestSetup';
+
+import { BottomSheetModalProvider } from '@gorhom/bottom-sheet';
+import { NavigationContainer } from '@react-navigation/native';
+import type { RenderOptions } from '@testing-library/react-native';
+import { render } from '@testing-library/react-native';
+import type { ReactElement } from 'react';
+import React from 'react';
+
+const createAppWrapper = () => {
+ return ({ children }: { children: React.ReactNode }) => (
+
+ {children}
+
+ );
+};
+
+const customRender = (
+ ui: ReactElement,
+ options?: Omit
+) => {
+ const Wrapper = createAppWrapper(); // make sure we have a new wrapper for each render
+ return render(ui, { wrapper: Wrapper, ...options });
+};
+
+export * from '@testing-library/react-native';
+export { customRender as render };
diff --git a/src/core/use-theme-config.tsx b/src/core/use-theme-config.tsx
new file mode 100644
index 0000000..051dbc4
--- /dev/null
+++ b/src/core/use-theme-config.tsx
@@ -0,0 +1,37 @@
+import type { Theme } from '@react-navigation/native';
+import {
+ DarkTheme as _DarkTheme,
+ DefaultTheme,
+} from '@react-navigation/native';
+import { useColorScheme } from 'nativewind';
+
+import colors from '@/ui/colors';
+
+const DarkTheme: Theme = {
+ ..._DarkTheme,
+ colors: {
+ ..._DarkTheme.colors,
+ primary: colors.primary[200],
+ background: colors.charcoal[950],
+ text: colors.charcoal[100],
+ border: colors.charcoal[500],
+ card: colors.charcoal[850],
+ },
+};
+
+const LightTheme: Theme = {
+ ...DefaultTheme,
+ colors: {
+ ...DefaultTheme.colors,
+ primary: colors.primary[400],
+ background: colors.white,
+ },
+};
+
+export function useThemeConfig() {
+ const { colorScheme } = useColorScheme();
+
+ if (colorScheme === 'dark') return DarkTheme;
+
+ return LightTheme;
+}
diff --git a/src/core/utils.ts b/src/core/utils.ts
new file mode 100644
index 0000000..ac88164
--- /dev/null
+++ b/src/core/utils.ts
@@ -0,0 +1,22 @@
+import { Linking } from 'react-native';
+import type { StoreApi, UseBoundStore } from 'zustand';
+
+export function openLinkInBrowser(url: string) {
+ Linking.canOpenURL(url).then((canOpen) => canOpen && Linking.openURL(url));
+}
+
+type WithSelectors = S extends { getState: () => infer T }
+ ? S & { use: { [K in keyof T]: () => T[K] } }
+ : never;
+
+export const createSelectors = >>(
+ _store: S
+) => {
+ let store = _store as WithSelectors;
+ store.use = {};
+ for (let k of Object.keys(store.getState())) {
+ (store.use as any)[k] = () => store((s) => s[k as keyof typeof s]);
+ }
+
+ return store;
+};
diff --git a/src/translations/ar.json b/src/translations/ar.json
new file mode 100644
index 0000000..c53a32a
--- /dev/null
+++ b/src/translations/ar.json
@@ -0,0 +1,33 @@
+{
+ "onboarding": {
+ "message": "مرحبا بكم في موقع تطبيق obytes"
+ },
+ "settings": {
+ "about": "حول التطبيق ",
+ "app_name": "اسم التطبيق",
+ "arabic": "عربي",
+ "english": "إنجليزي",
+ "generale": "عام",
+ "github": "جيثب",
+ "language": "لغة",
+ "links": "الروابط",
+ "logout": "تسجيل خروج",
+ "more": "أكثر",
+ "privacy": "سياسة الخصوصية",
+ "rate": "تقييم",
+ "share": "شارك",
+ "support": "الدعم",
+ "support_us": "ادعمنا",
+ "terms": "شروط الخدمة",
+ "theme": {
+ "dark": "مظلم",
+ "light": "خفيفة",
+ "system": "System",
+ "title": "سمة"
+ },
+ "title": "إعدادات",
+ "version": "إصدار",
+ "website": "موقع الكتروني"
+ },
+ "welcome": "test arabic"
+}
diff --git a/src/translations/en.json b/src/translations/en.json
new file mode 100644
index 0000000..43c8474
--- /dev/null
+++ b/src/translations/en.json
@@ -0,0 +1,33 @@
+{
+ "onboarding": {
+ "message": "Welcome to obytes app site"
+ },
+ "settings": {
+ "about": "About",
+ "app_name": "App Name",
+ "arabic": "Arabic",
+ "english": "English",
+ "generale": "General",
+ "github": "Github",
+ "language": "Language",
+ "links": "Links",
+ "logout": "Logout",
+ "more": "More",
+ "privacy": "Privacy Policy",
+ "rate": "Rate",
+ "share": "Share",
+ "support": "Support",
+ "support_us": "Support Us",
+ "terms": "Terms of Service",
+ "theme": {
+ "dark": "Dark",
+ "light": "Light",
+ "system": "System",
+ "title": "Theme"
+ },
+ "title": "Settings",
+ "version": "Version",
+ "website": "Website"
+ },
+ "welcome": "Welcome to obytes app site"
+}
diff --git a/src/types/index.ts b/src/types/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/ui/button.test.tsx b/src/ui/button.test.tsx
new file mode 100644
index 0000000..f210747
--- /dev/null
+++ b/src/ui/button.test.tsx
@@ -0,0 +1,111 @@
+/* eslint-disable max-lines-per-function */
+import React from 'react';
+import { Text } from 'react-native';
+
+import { cleanup, fireEvent, render, screen } from '@/core/test-utils';
+
+import { Button } from './button';
+
+afterEach(cleanup);
+
+describe('Button component ', () => {
+ it('should render correctly ', () => {
+ render();
+ expect(screen.getByTestId('button')).toBeOnTheScreen();
+ });
+ it('should render correctly if we add explicit child ', () => {
+ render(
+
+ );
+ expect(screen.getByText('Custom child')).toBeOnTheScreen();
+ });
+ it('should render the label correctly', () => {
+ render();
+ expect(screen.getByTestId('button')).toBeOnTheScreen();
+ expect(screen.getByText('Submit')).toBeOnTheScreen();
+ });
+ it('should render the loading indicator correctly', () => {
+ render();
+ expect(screen.getByTestId('button')).toBeOnTheScreen();
+ expect(screen.getByTestId('button-activity-indicator')).toBeOnTheScreen();
+ });
+ it('should call onClick handler when clicked', () => {
+ const onClick = jest.fn();
+ render(
+
+ );
+ expect(screen.getByTestId('button')).toBeOnTheScreen();
+ fireEvent.press(screen.getByTestId('button'));
+ expect(onClick).toHaveBeenCalledTimes(1);
+ });
+ it('should be disabled when loading', () => {
+ const onClick = jest.fn();
+ render(
+
+ );
+ expect(screen.getByTestId('button')).toBeOnTheScreen();
+ expect(screen.getByTestId('button-activity-indicator')).toBeOnTheScreen();
+ expect(screen.getByTestId('button')).toBeDisabled();
+ fireEvent.press(screen.getByTestId('button'));
+ expect(onClick).toHaveBeenCalledTimes(0);
+ });
+ it('should be disabled when disabled prop is true', () => {
+ render();
+ expect(screen.getByTestId('button')).toBeDisabled();
+ });
+ it("shouldn't call onClick when disabled", () => {
+ const onClick = jest.fn();
+ render(
+
+ );
+ expect(screen.getByTestId('button')).toBeOnTheScreen();
+ fireEvent.press(screen.getByTestId('button'));
+
+ expect(screen.getByTestId('button')).toBeDisabled();
+
+ expect(onClick).toHaveBeenCalledTimes(0);
+ });
+ it('should apply correct styles based on size prop', () => {
+ render();
+ 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;
+ expect(receivedStyle).toContain(expectedStyle);
+ });
+ it('should apply correct styles for label when variant is secondary', () => {
+ render();
+ 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;
+ expect(receivedStyle).toContain(expectedStyle);
+ });
+ it('should apply correct styles for label when is disabled', () => {
+ render();
+ 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;
+ expect(receivedStyle).toContain(expectedStyle);
+ });
+});
diff --git a/src/ui/button.tsx b/src/ui/button.tsx
new file mode 100644
index 0000000..c0435d5
--- /dev/null
+++ b/src/ui/button.tsx
@@ -0,0 +1,146 @@
+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 { tv } from 'tailwind-variants';
+
+const button = tv({
+ slots: {
+ container: 'my-2 flex flex-row items-center justify-center rounded-md px-4',
+ label: 'font-inter text-base font-semibold',
+ indicator: 'h-6 text-white',
+ },
+
+ variants: {
+ variant: {
+ default: {
+ container: 'bg-black dark:bg-white',
+ label: 'text-white dark:text-black',
+ indicator: 'text-white dark:text-black',
+ },
+ secondary: {
+ container: 'bg-primary-600',
+ label: 'text-secondary-600',
+ indicator: 'text-white',
+ },
+ outline: {
+ container: 'border border-neutral-400',
+ label: 'text-black dark:text-neutral-100',
+ indicator: 'text-black dark:text-neutral-100',
+ },
+ destructive: {
+ container: 'bg-red-600',
+ label: 'text-white',
+ indicator: 'text-white',
+ },
+ ghost: {
+ container: 'bg-transparent',
+ label: 'text-black underline dark:text-white',
+ indicator: 'text-black dark:text-white',
+ },
+ link: {
+ container: 'bg-transparent',
+ label: 'text-black',
+ indicator: 'text-black',
+ },
+ },
+ size: {
+ default: {
+ container: 'h-10 px-4',
+ label: 'text-base',
+ },
+ lg: {
+ container: 'h-12 px-8',
+ label: 'text-xl',
+ },
+ sm: {
+ container: 'h-8 px-3',
+ label: 'text-sm',
+ indicator: 'h-2',
+ },
+ icon: { container: 'h-9 w-9' },
+ },
+ disabled: {
+ true: {
+ container: 'bg-neutral-300 dark:bg-neutral-300',
+ label: 'text-neutral-600 dark:text-neutral-600',
+ indicator: 'text-neutral-400 dark:text-neutral-400',
+ },
+ },
+ fullWidth: {
+ true: {
+ container: '',
+ },
+ false: {
+ container: 'self-center',
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'default',
+ disabled: false,
+ fullWidth: true,
+ size: 'default',
+ },
+});
+
+type ButtonVariants = VariantProps;
+interface Props extends ButtonVariants, Omit {
+ label?: string;
+ loading?: boolean;
+ className?: string;
+ textClassName?: string;
+}
+
+export const Button = React.forwardRef(
+ (
+ {
+ 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]
+ );
+
+ return (
+
+ {props.children ? (
+ props.children
+ ) : (
+ <>
+ {loading ? (
+
+ ) : (
+
+ {text}
+
+ )}
+ >
+ )}
+
+ );
+ }
+);
diff --git a/src/ui/checkbox.test.tsx b/src/ui/checkbox.test.tsx
new file mode 100644
index 0000000..64acb4f
--- /dev/null
+++ b/src/ui/checkbox.test.tsx
@@ -0,0 +1,216 @@
+/* eslint-disable max-lines-per-function */
+import 'react-native';
+
+import React from 'react';
+
+import { cleanup, fireEvent, render, screen } from '@/core/test-utils';
+
+import { Checkbox, Radio, Switch } from './checkbox';
+
+afterEach(cleanup);
+
+describe('Checkbox, Radio & Switch components ', () => {
+ it(' renders correctly and call on change on Press', () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ expect(screen.getByTestId('checkbox')).toBeOnTheScreen();
+ expect(screen.queryByTestId('checkbox-label')).not.toBeOnTheScreen();
+ expect(screen.getByTestId('checkbox')).toBeEnabled();
+
+ expect(screen.getByTestId('checkbox')).not.toBeChecked();
+ expect(screen.getByTestId('checkbox').props.accessibilityRole).toBe(
+ 'checkbox'
+ );
+ expect(screen.getByTestId('checkbox').props.accessibilityLabel).toBe(
+ 'agree'
+ );
+
+ fireEvent.press(screen.getByTestId('checkbox'));
+ expect(mockOnChange).toHaveBeenCalledTimes(1);
+ expect(mockOnChange).toHaveBeenCalledWith(true);
+ });
+
+ it(" shouldn't change value while disabled", () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ expect(screen.getByTestId('checkbox')).toBeOnTheScreen();
+ expect(screen.getByTestId('checkbox')).toBeDisabled();
+ fireEvent.press(screen.getByTestId('checkbox'));
+ expect(mockOnChange).toHaveBeenCalledTimes(0);
+ });
+ it(' Should render the correct label', () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ expect(screen.getByTestId('checkbox')).toBeOnTheScreen();
+ expect(screen.getByTestId('checkbox-label')).toBeOnTheScreen();
+ expect(
+ screen.getByTestId('checkbox').props.accessibilityState.checked
+ ).toBe(false);
+ expect(screen.getByTestId('checkbox').props.accessibilityRole).toBe(
+ 'checkbox'
+ );
+
+ expect(screen.getByTestId('checkbox').props.accessibilityLabel).toBe(
+ 'agree'
+ );
+ expect(screen.getByTestId('checkbox-label')).toHaveTextContent(
+ 'I agree to terms and conditions'
+ );
+ fireEvent.press(screen.getByTestId('checkbox'));
+ expect(mockOnChange).toHaveBeenCalledTimes(0);
+ });
+
+ it(' renders correctly and call on change on Press', () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ expect(screen.getByTestId('radio')).toBeOnTheScreen();
+ expect(screen.queryByTestId('radio-label')).not.toBeOnTheScreen();
+ expect(screen.getByTestId('radio')).toBeEnabled();
+ expect(screen.getByTestId('radio')).not.toBeChecked();
+ expect(screen.getByTestId('radio').props.accessibilityRole).toBe('radio');
+ expect(screen.getByTestId('radio').props.accessibilityLabel).toBe('agree');
+ fireEvent.press(screen.getByTestId('radio'));
+ expect(mockOnChange).toHaveBeenCalledTimes(1);
+ expect(mockOnChange).toHaveBeenCalledWith(true);
+ });
+
+ it(' should render the correct label', () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ expect(screen.getByTestId('radio')).toBeOnTheScreen();
+ expect(screen.getByTestId('radio-label')).toBeOnTheScreen();
+ expect(screen.getByTestId('radio-label')).toHaveTextContent(
+ 'I agree to terms and conditions'
+ );
+
+ expect(screen.getByTestId('radio').props.accessibilityState.checked).toBe(
+ false
+ );
+ expect(screen.getByTestId('radio').props.accessibilityRole).toBe('radio');
+ expect(screen.getByTestId('radio').props.accessibilityLabel).toBe('agree');
+ fireEvent.press(screen.getByTestId('radio-label'));
+ expect(mockOnChange).toHaveBeenCalledTimes(1);
+ expect(mockOnChange).toHaveBeenCalledWith(true);
+ });
+
+ it(" shouldn't change value while disabled", () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ expect(screen.getByTestId('radio')).toBeOnTheScreen();
+ expect(screen.getByTestId('radio')).toBeDisabled();
+ fireEvent.press(screen.getByTestId('radio'));
+ expect(mockOnChange).toHaveBeenCalledTimes(0);
+ });
+
+ it(' renders correctly and call on change on Press', () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ 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
+ );
+ expect(screen.getByTestId('switch').props.accessibilityRole).toBe('switch');
+ expect(screen.getByTestId('switch').props.accessibilityLabel).toBe('agree');
+ fireEvent.press(screen.getByTestId('switch'));
+ expect(mockOnChange).toHaveBeenCalledTimes(1);
+ expect(mockOnChange).toHaveBeenCalledWith(true);
+ });
+
+ it(' should render the correct label', () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ expect(screen.getByTestId('switch')).toBeOnTheScreen();
+ expect(screen.getByTestId('switch-label')).toBeOnTheScreen();
+ expect(screen.getByTestId('switch-label')).toHaveTextContent(
+ 'I agree to terms and conditions'
+ );
+ expect(screen.getByTestId('switch').props.accessibilityState.checked).toBe(
+ false
+ );
+ expect(screen.getByTestId('switch').props.accessibilityRole).toBe('switch');
+ expect(screen.getByTestId('switch').props.accessibilityLabel).toBe('agree');
+ fireEvent.press(screen.getByTestId('switch-label'));
+ expect(mockOnChange).toHaveBeenCalledTimes(1);
+ expect(mockOnChange).toHaveBeenCalledWith(true);
+ });
+
+ it(" shouldn't change value while disabled", () => {
+ const mockOnChange = jest.fn((checked) => checked);
+ render(
+
+ );
+ expect(screen.getByTestId('switch')).toBeOnTheScreen();
+ fireEvent.press(screen.getByTestId('switch'));
+ expect(mockOnChange).toHaveBeenCalledTimes(0);
+ });
+});
diff --git a/src/ui/checkbox.tsx b/src/ui/checkbox.tsx
new file mode 100644
index 0000000..2fb3318
--- /dev/null
+++ b/src/ui/checkbox.tsx
@@ -0,0 +1,267 @@
+import { MotiView } from 'moti';
+import React, { useCallback } from 'react';
+import {
+ I18nManager,
+ Pressable,
+ type PressableProps,
+ View,
+} from 'react-native';
+import Svg, { Path } from 'react-native-svg';
+
+import colors from '@/ui/colors';
+
+import { Text } from './text';
+
+const SIZE = 20;
+const WIDTH = 50;
+const HEIGHT = 28;
+const THUMB_HEIGHT = 22;
+const THUMB_WIDTH = 22;
+const THUMB_OFFSET = 4;
+
+export interface RootProps extends Omit {
+ onChange: (checked: boolean) => void;
+ checked?: boolean;
+ className?: string;
+ accessibilityLabel: string;
+}
+
+export type IconProps = {
+ checked: boolean;
+};
+
+export const Root = ({
+ checked = false,
+ children,
+ onChange,
+ disabled,
+ className = '',
+ ...props
+}: RootProps) => {
+ const handleChange = useCallback(() => {
+ onChange(!checked);
+ }, [onChange, checked]);
+
+ return (
+
+ {children}
+
+ );
+};
+
+type LabelProps = {
+ text: string;
+ className?: string;
+ testID?: string;
+};
+
+const Label = ({ text, testID, className = '' }: LabelProps) => {
+ return (
+
+ {text}
+
+ );
+};
+
+export const CheckboxIcon = ({ checked = false }: IconProps) => {
+ const color = checked ? colors.primary[300] : colors.charcoal[400];
+ return (
+
+
+
+
+
+ );
+};
+
+const CheckboxRoot = ({ checked = false, children, ...props }: RootProps) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const CheckboxBase = ({
+ checked = false,
+ testID,
+ label,
+
+ ...props
+}: RootProps & { label?: string }) => {
+ return (
+
+
+ {label ? (
+
+ ) : null}
+
+ );
+};
+
+export const Checkbox = Object.assign(CheckboxBase, {
+ Icon: CheckboxIcon,
+ Root: CheckboxRoot,
+ Label,
+});
+
+export const RadioIcon = ({ checked = false }: IconProps) => {
+ const color = checked ? colors.primary[300] : colors.charcoal[400];
+ return (
+
+
+
+ );
+};
+
+const RadioRoot = ({ checked = false, children, ...props }: RootProps) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const RadioBase = ({
+ checked = false,
+ testID,
+ label,
+ ...props
+}: RootProps & { label?: string }) => {
+ return (
+
+
+ {label ? (
+
+ ) : null}
+
+ );
+};
+
+export const Radio = Object.assign(RadioBase, {
+ Icon: RadioIcon,
+ Root: RadioRoot,
+ Label,
+});
+
+export const SwitchIcon = ({ checked = false }: IconProps) => {
+ const translateX = checked
+ ? THUMB_OFFSET
+ : WIDTH - THUMB_WIDTH - THUMB_OFFSET;
+
+ const backgroundColor = checked ? colors.primary[300] : colors.charcoal[400];
+
+ return (
+
+
+
+
+
+
+ );
+};
+const SwitchRoot = ({ checked = false, children, ...props }: RootProps) => {
+ return (
+
+ {children}
+
+ );
+};
+
+const SwitchBase = ({
+ checked = false,
+ testID,
+ label,
+ ...props
+}: RootProps & { label?: string }) => {
+ return (
+
+
+ {label ? (
+
+ ) : null}
+
+ );
+};
+
+export const Switch = Object.assign(SwitchBase, {
+ Icon: SwitchIcon,
+ Root: SwitchRoot,
+ Label,
+});
diff --git a/src/ui/colors.js b/src/ui/colors.js
new file mode 100644
index 0000000..ed3352a
--- /dev/null
+++ b/src/ui/colors.js
@@ -0,0 +1,78 @@
+module.exports = {
+ white: '#ffffff',
+ black: '#000000',
+ charcoal: {
+ 50: '#F2F2F2',
+ 100: '#E5E5E5',
+ 200: '#C9C9C9',
+ 300: '#B0B0B0',
+ 400: '#969696',
+ 500: '#7D7D7D',
+ 600: '#616161',
+ 700: '#474747',
+ 800: '#383838',
+ 850: '#2E2E2E',
+ 900: '#1E1E1E',
+ 950: '#121212',
+ },
+ neutral: {
+ 50: '#FAFAFA',
+ 100: '#F5F5F5',
+ 200: '#F0EFEE',
+ 300: '#D4D4D4',
+ 400: '#A3A3A3',
+ 500: '#737373',
+ 600: '#525252',
+ 700: '#404040',
+ 800: '#262626',
+ 900: '#171717',
+ },
+ primary: {
+ 50: '#FFE2CC',
+ 100: '#FFC499',
+ 200: '#FFA766',
+ 300: '#FF984C',
+ 400: '#FF8933',
+ 500: '#FF7B1A',
+ 600: '#FF6C00',
+ 700: '#E56100',
+ 800: '#CC5600',
+ 900: '#B24C00',
+ },
+ success: {
+ 50: '#F0FDF4',
+ 100: '#DCFCE7',
+ 200: '#BBF7D0',
+ 300: '#86EFAC',
+ 400: '#4ADE80',
+ 500: '#22C55E',
+ 600: '#16A34A',
+ 700: '#15803D',
+ 800: '#166534',
+ 900: '#14532D',
+ },
+ warning: {
+ 50: '#FFFBEB',
+ 100: '#FEF3C7',
+ 200: '#FDE68A',
+ 300: '#FCD34D',
+ 400: '#FBBF24',
+ 500: '#F59E0B',
+ 600: '#D97706',
+ 700: '#B45309',
+ 800: '#92400E',
+ 900: '#78350F',
+ },
+ danger: {
+ 50: '#FEF2F2',
+ 100: '#FEE2E2',
+ 200: '#FECACA',
+ 300: '#FCA5A5',
+ 400: '#F87171',
+ 500: '#EF4444',
+ 600: '#DC2626',
+ 700: '#B91C1C',
+ 800: '#991B1B',
+ 900: '#7F1D1D',
+ },
+};
diff --git a/src/ui/focus-aware-status-bar.tsx b/src/ui/focus-aware-status-bar.tsx
new file mode 100644
index 0000000..5bb61de
--- /dev/null
+++ b/src/ui/focus-aware-status-bar.tsx
@@ -0,0 +1,14 @@
+import { useIsFocused } from '@react-navigation/native';
+import { useColorScheme } from 'nativewind';
+import * as React from 'react';
+import { StatusBar } from 'react-native';
+
+type Props = React.ComponentProps;
+export const FocusAwareStatusBar = (props: Props) => {
+ const isFocused = useIsFocused();
+ const { colorScheme } = useColorScheme();
+ const isDark = colorScheme === 'dark';
+ const barStyle = isDark ? 'light-content' : 'dark-content';
+
+ return isFocused ? : null;
+};
diff --git a/src/ui/icons/arrow-right.tsx b/src/ui/icons/arrow-right.tsx
new file mode 100644
index 0000000..68c3202
--- /dev/null
+++ b/src/ui/icons/arrow-right.tsx
@@ -0,0 +1,25 @@
+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 '@/core';
+
+export const ArrowRight = ({ color = '#CCC', style, ...props }: SvgProps) => (
+
+);
diff --git a/src/ui/icons/caret-down.tsx b/src/ui/icons/caret-down.tsx
new file mode 100644
index 0000000..77186e3
--- /dev/null
+++ b/src/ui/icons/caret-down.tsx
@@ -0,0 +1,20 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { Path } from 'react-native-svg';
+
+export const CaretDown = ({ ...props }: SvgProps) => (
+
+);
diff --git a/src/ui/icons/feed.tsx b/src/ui/icons/feed.tsx
new file mode 100644
index 0000000..898fed7
--- /dev/null
+++ b/src/ui/icons/feed.tsx
@@ -0,0 +1,12 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { Path } from 'react-native-svg';
+
+export const Feed = ({ color = '#000', ...props }: SvgProps) => (
+
+);
diff --git a/src/ui/icons/github.tsx b/src/ui/icons/github.tsx
new file mode 100644
index 0000000..e99d14f
--- /dev/null
+++ b/src/ui/icons/github.tsx
@@ -0,0 +1,25 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg';
+
+import colors from '../colors';
+
+export const Github = ({ color = colors.neutral[500], ...props }: SvgProps) => (
+
+);
diff --git a/src/ui/icons/home.tsx b/src/ui/icons/home.tsx
new file mode 100644
index 0000000..4d75519
--- /dev/null
+++ b/src/ui/icons/home.tsx
@@ -0,0 +1,14 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { Path } from 'react-native-svg';
+
+export function Home({ color = '#000', ...props }: SvgProps) {
+ return (
+
+ );
+}
diff --git a/src/ui/icons/index.tsx b/src/ui/icons/index.tsx
new file mode 100644
index 0000000..31258c0
--- /dev/null
+++ b/src/ui/icons/index.tsx
@@ -0,0 +1,12 @@
+export * from './arrow-right';
+export * from './caret-down';
+export * from './feed';
+export * from './github';
+export * from './home';
+export * from './language';
+export * from './rate';
+export * from './settings';
+export * from './share';
+export * from './style';
+export * from './support';
+export * from './website';
diff --git a/src/ui/icons/language.tsx b/src/ui/icons/language.tsx
new file mode 100644
index 0000000..13040cb
--- /dev/null
+++ b/src/ui/icons/language.tsx
@@ -0,0 +1,33 @@
+import React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { G, Path, Text, TSpan } from 'react-native-svg';
+
+export const Language = ({ ...props }: SvgProps) => (
+
+);
diff --git a/src/ui/icons/rate.tsx b/src/ui/icons/rate.tsx
new file mode 100644
index 0000000..ee3ff76
--- /dev/null
+++ b/src/ui/icons/rate.tsx
@@ -0,0 +1,24 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg';
+
+import colors from '../colors';
+
+export const Rate = ({ color = colors.neutral[500], ...props }: SvgProps) => (
+
+);
diff --git a/src/ui/icons/settings.tsx b/src/ui/icons/settings.tsx
new file mode 100644
index 0000000..49f2d5f
--- /dev/null
+++ b/src/ui/icons/settings.tsx
@@ -0,0 +1,14 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { Path } from 'react-native-svg';
+
+export const Settings = ({ color = '#000', ...props }: SvgProps) => {
+ return (
+
+ );
+};
diff --git a/src/ui/icons/share.tsx b/src/ui/icons/share.tsx
new file mode 100644
index 0000000..35bd80c
--- /dev/null
+++ b/src/ui/icons/share.tsx
@@ -0,0 +1,16 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { Path } from 'react-native-svg';
+
+import colors from '../colors';
+
+export const Share = ({ color = colors.neutral[500], ...props }: SvgProps) => (
+
+);
diff --git a/src/ui/icons/style.tsx b/src/ui/icons/style.tsx
new file mode 100644
index 0000000..07c95d8
--- /dev/null
+++ b/src/ui/icons/style.tsx
@@ -0,0 +1,22 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg';
+
+export const Style = ({ color, ...props }: SvgProps) => (
+
+);
diff --git a/src/ui/icons/support.tsx b/src/ui/icons/support.tsx
new file mode 100644
index 0000000..6eb3e03
--- /dev/null
+++ b/src/ui/icons/support.tsx
@@ -0,0 +1,27 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg';
+
+import colors from '../colors';
+
+export const Support = ({
+ color = colors.neutral[500],
+ ...props
+}: SvgProps) => (
+
+);
diff --git a/src/ui/icons/website.tsx b/src/ui/icons/website.tsx
new file mode 100644
index 0000000..b02cb3c
--- /dev/null
+++ b/src/ui/icons/website.tsx
@@ -0,0 +1,28 @@
+import * as React from 'react';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { ClipPath, Defs, G, Path } from 'react-native-svg';
+
+import colors from '../colors';
+
+export const Website = ({
+ color = colors.neutral[500],
+ ...props
+}: SvgProps) => (
+
+);
diff --git a/src/ui/image.tsx b/src/ui/image.tsx
new file mode 100644
index 0000000..6c6e616
--- /dev/null
+++ b/src/ui/image.tsx
@@ -0,0 +1,30 @@
+import type { ImageProps } from 'expo-image';
+import { Image as NImage } from 'expo-image';
+import { cssInterop } from 'nativewind';
+import * as React from 'react';
+
+export type ImgProps = ImageProps & {
+ className?: string;
+};
+
+cssInterop(NImage, { className: 'style' });
+
+export const Image = ({
+ style,
+ className,
+ placeholder = 'L6PZfSi_.AyE_3t7t7R**0o#DgR4',
+ ...props
+}: ImgProps) => {
+ return (
+
+ );
+};
+
+export const preloadImages = (sources: string[]) => {
+ NImage.prefetch(sources);
+};
diff --git a/src/ui/index.tsx b/src/ui/index.tsx
new file mode 100644
index 0000000..e6e253f
--- /dev/null
+++ b/src/ui/index.tsx
@@ -0,0 +1,32 @@
+import { cssInterop } from 'nativewind';
+import Svg from 'react-native-svg';
+
+export * from './button';
+export * from './checkbox';
+export { default as colors } from './colors';
+export * from './focus-aware-status-bar';
+export * from './image';
+export * from './input';
+export * from './list';
+export * from './modal';
+export * from './progress-bar';
+export * from './select';
+export * from './text';
+export * from './utils';
+
+// export base components from react-native
+export {
+ ActivityIndicator,
+ Pressable,
+ ScrollView,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+export { SafeAreaView } from 'react-native-safe-area-context';
+
+//Apply cssInterop to Svg to resolve className string into style
+cssInterop(Svg, {
+ className: {
+ target: 'style',
+ },
+});
diff --git a/src/ui/input.test.tsx b/src/ui/input.test.tsx
new file mode 100644
index 0000000..026e662
--- /dev/null
+++ b/src/ui/input.test.tsx
@@ -0,0 +1,108 @@
+/* eslint-disable max-lines-per-function */
+import React from 'react';
+import { I18nManager } from 'react-native';
+
+import { cleanup, fireEvent, render, screen } from '@/core/test-utils';
+
+import { Input } from './input';
+
+afterEach(cleanup);
+
+describe('Input component ', () => {
+ it('renders correctly ', () => {
+ render();
+ expect(screen.getByTestId('input')).toBeOnTheScreen();
+ });
+ it('should use the right direction for rtl layout', () => {
+ I18nManager.isRTL = true;
+ render();
+ expect(screen.getByTestId('input')).toHaveStyle({
+ writingDirection: 'rtl',
+ });
+ });
+
+ it('should use the right direction for ltr layout', () => {
+ I18nManager.isRTL = false;
+ render();
+ expect(screen.getByTestId('input')).toHaveStyle({
+ writingDirection: 'ltr',
+ });
+ });
+
+ it('should render the placeholder correctly ', () => {
+ render();
+ expect(screen.getByTestId('input')).toBeOnTheScreen();
+ expect(
+ screen.getByPlaceholderText('Enter your username')
+ ).toBeOnTheScreen();
+ });
+
+ it('should render the label correctly ', () => {
+ render();
+ expect(screen.getByTestId('input')).toBeOnTheScreen();
+
+ expect(screen.getByTestId('input-label')).toHaveTextContent('Username');
+ });
+
+ it('should render the error message correctly ', () => {
+ render();
+ expect(screen.getByTestId('input')).toBeOnTheScreen();
+
+ expect(screen.getByTestId('input-error')).toHaveTextContent(
+ 'This is an error message'
+ );
+ });
+ it('should render the label, error message & placeholder correctly ', () => {
+ render(
+
+ );
+ 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'
+ );
+ expect(
+ screen.getByPlaceholderText('Enter your username')
+ ).toBeOnTheScreen();
+ });
+
+ it('should trigger onFocus event correctly ', () => {
+ const onFocus = jest.fn();
+ render();
+
+ const input = screen.getByTestId('input');
+ fireEvent(input, 'focus');
+ expect(onFocus).toHaveBeenCalledTimes(1);
+ });
+
+ it('should trigger onBlur event correctly ', () => {
+ const onBlur = jest.fn();
+ render();
+
+ const input = screen.getByTestId('input');
+ fireEvent(input, 'blur');
+ expect(onBlur).toHaveBeenCalledTimes(1);
+ });
+ it('should trigger onChangeText event correctly', () => {
+ const onChangeText = jest.fn();
+ render();
+
+ const input = screen.getByTestId('input');
+ fireEvent.changeText(input, 'test text');
+ expect(onChangeText).toHaveBeenCalledTimes(1);
+ expect(onChangeText).toHaveBeenCalledWith('test text');
+ });
+ it('should be disabled when disabled prop is true', () => {
+ render();
+
+ const input = screen.getByTestId('input');
+ expect(input.props.disabled).toBe(true);
+ });
+});
diff --git a/src/ui/input.tsx b/src/ui/input.tsx
new file mode 100644
index 0000000..e66b57e
--- /dev/null
+++ b/src/ui/input.tsx
@@ -0,0 +1,140 @@
+import * as React from 'react';
+import type {
+ Control,
+ FieldValues,
+ Path,
+ RegisterOptions,
+} from 'react-hook-form';
+import { useController } from 'react-hook-form';
+import type { TextInput, TextInputProps } from 'react-native';
+import { I18nManager, StyleSheet, View } from 'react-native';
+import { TextInput as NTextInput } from 'react-native';
+import { tv } from 'tailwind-variants';
+
+import colors from './colors';
+import { Text } from './text';
+
+const inputTv = tv({
+ slots: {
+ container: 'mb-2',
+ label: 'text-grey-100 mb-1 text-lg dark:text-neutral-100',
+ input:
+ 'mt-0 rounded-xl border-[0.5px] border-neutral-300 bg-neutral-100 px-4 py-3 font-inter text-base font-medium leading-5 dark:border-neutral-700 dark:bg-neutral-800 dark:text-white',
+ },
+
+ variants: {
+ focused: {
+ true: {
+ input: 'border-neutral-400 dark:border-neutral-300',
+ },
+ },
+ error: {
+ true: {
+ input: 'border-danger-600',
+ label: 'text-danger-600 dark:text-danger-600',
+ },
+ },
+ disabled: {
+ true: {
+ input: 'bg-neutral-200',
+ },
+ },
+ },
+ defaultVariants: {
+ focused: false,
+ error: false,
+ disabled: false,
+ },
+});
+
+export interface NInputProps extends TextInputProps {
+ label?: string;
+ disabled?: boolean;
+ error?: string;
+}
+
+type TRule = Omit<
+ RegisterOptions,
+ 'valueAsNumber' | 'valueAsDate' | 'setValueAs'
+>;
+
+export type RuleType = { [name in keyof T]: TRule };
+export type InputControllerType = {
+ name: Path;
+ control: Control;
+ rules?: TRule;
+};
+
+interface ControlledInputProps
+ extends NInputProps,
+ InputControllerType {}
+
+export const Input = React.forwardRef((props, ref) => {
+ const { label, error, testID, ...inputProps } = props;
+ const [isFocussed, setIsFocussed] = React.useState(false);
+ const onBlur = React.useCallback(() => setIsFocussed(false), []);
+ const onFocus = React.useCallback(() => setIsFocussed(true), []);
+
+ const styles = React.useMemo(
+ () =>
+ inputTv({
+ error: Boolean(error),
+ focused: isFocussed,
+ disabled: Boolean(props.disabled),
+ }),
+ [error, isFocussed, props.disabled]
+ );
+
+ return (
+
+ {label && (
+
+ {label}
+
+ )}
+
+ {error && (
+
+ {error}
+
+ )}
+
+ );
+});
+
+// only used with react-hook-form
+export function ControlledInput(
+ props: ControlledInputProps
+) {
+ const { name, control, rules, ...inputProps } = props;
+
+ const { field, fieldState } = useController({ control, name, rules });
+ return (
+
+ );
+}
diff --git a/src/ui/list.tsx b/src/ui/list.tsx
new file mode 100644
index 0000000..68ebc72
--- /dev/null
+++ b/src/ui/list.tsx
@@ -0,0 +1,59 @@
+import { FlashList as NFlashList } from '@shopify/flash-list';
+import 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;
+};
+
+export const List = NFlashList;
+
+export const EmptyList = React.memo(({ isLoading }: Props) => {
+ return (
+
+ {!isLoading ? (
+
+
+ Sorry! No data found
+
+ ) : (
+
+ )}
+
+ );
+});
+
+export const NoData = () => (
+
+);
diff --git a/src/ui/modal.tsx b/src/ui/modal.tsx
new file mode 100644
index 0000000..073ed65
--- /dev/null
+++ b/src/ui/modal.tsx
@@ -0,0 +1,197 @@
+/**
+ * Modal
+ * Dependencies:
+ * - @gorhom/bottom-sheet.
+ *
+ * Props:
+ * - All `BottomSheetModalProps` props.
+ * - `title` (string | undefined): Optional title for the modal header.
+ *
+ * Usage Example:
+ * import { Modal, useModal } from '@gorhom/bottom-sheet';
+ *
+ * function DisplayModal() {
+ * const { ref, present, dismiss } = useModal();
+ *
+ * return (
+ *
+ *
+ * Modal Content
+ *
+ *
+ * );
+ * }
+ *
+ */
+
+import type {
+ BottomSheetBackdropProps,
+ BottomSheetModalProps,
+} from '@gorhom/bottom-sheet';
+import { BottomSheetModal, useBottomSheet } from '@gorhom/bottom-sheet';
+import * as React from 'react';
+import { Pressable, View } from 'react-native';
+import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
+import { Path, Svg } from 'react-native-svg';
+
+import { Text } from './text';
+
+type ModalProps = BottomSheetModalProps & {
+ title?: string;
+};
+
+type ModalRef = React.ForwardedRef;
+
+type ModalHeaderProps = {
+ title?: string;
+ dismiss: () => void;
+};
+
+export const useModal = () => {
+ const ref = React.useRef(null);
+ const present = React.useCallback((data?: any) => {
+ ref.current?.present(data);
+ }, []);
+ const dismiss = React.useCallback(() => {
+ 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(
+ () => (
+ <>
+
+
+ >
+ ),
+ [title, modal.dismiss]
+ );
+
+ return (
+
+ );
+ }
+);
+
+/**
+ * Custom Backdrop
+ */
+
+const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
+
+const CustomBackdrop = ({ style }: BottomSheetBackdropProps) => {
+ const { close } = useBottomSheet();
+ return (
+ close()}
+ entering={FadeIn.duration(50)}
+ exiting={FadeOut.duration(20)}
+ // eslint-disable-next-line react-native/no-inline-styles
+ style={[style, { backgroundColor: 'rgba(0, 0, 0, 0.4)' }]}
+ />
+ );
+};
+
+export const renderBackdrop = (props: BottomSheetBackdropProps) => (
+
+);
+
+/**
+ *
+ * @param detached
+ * @returns
+ *
+ * @description
+ * 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) => {
+ if (detached) {
+ return {
+ detached: true,
+ bottomInset: 46,
+ style: { marginHorizontal: 16, overflow: 'hidden' },
+ } as Partial;
+ }
+ return {} as Partial;
+};
+
+/**
+ * ModalHeader
+ */
+
+const ModalHeader = React.memo(({ title, dismiss }: ModalHeaderProps) => {
+ return (
+ <>
+ {title && (
+
+
+
+
+ {title}
+
+
+
+ )}
+
+ >
+ );
+});
+
+const CloseButton = ({ close }: { close: () => void }) => {
+ return (
+
+
+
+ );
+};
diff --git a/src/ui/progress-bar.tsx b/src/ui/progress-bar.tsx
new file mode 100644
index 0000000..a3e49fe
--- /dev/null
+++ b/src/ui/progress-bar.tsx
@@ -0,0 +1,51 @@
+import React, { forwardRef, useImperativeHandle } from 'react';
+import { View } from 'react-native';
+import Animated, {
+ Easing,
+ useAnimatedStyle,
+ useSharedValue,
+ withTiming,
+} from 'react-native-reanimated';
+import { twMerge } from 'tailwind-merge';
+
+type Props = {
+ initialProgress?: number;
+ className?: string;
+};
+
+export type ProgressBarRef = {
+ setProgress: (value: number) => void;
+};
+
+export const ProgressBar = forwardRef(
+ ({ initialProgress = 0, className = '' }, ref) => {
+ const progress = useSharedValue(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 (
+
+
+
+ );
+ }
+);
diff --git a/src/ui/select.test.tsx b/src/ui/select.test.tsx
new file mode 100644
index 0000000..9969b04
--- /dev/null
+++ b/src/ui/select.test.tsx
@@ -0,0 +1,96 @@
+/* eslint-disable max-lines-per-function */
+
+import React from 'react';
+
+import { cleanup, fireEvent, render, screen } from '@/core/test-utils';
+import type { Option } from '@/ui';
+
+import { Select } from './select';
+
+afterEach(cleanup);
+
+describe('Select component ', () => {
+ const options: Option[] = [
+ { value: 'chocolate', label: 'Chocolate' },
+ { value: 'strawberry', label: 'Strawberry' },
+ { value: 'vanilla', label: 'Vanilla' },
+ ];
+ it('should render correctly ', () => {
+ const onSelect = jest.fn();
+ render(
+
+ );
+ expect(screen.getByTestId('select-trigger')).toBeOnTheScreen();
+ expect(screen.getByTestId('select-label')).toBeOnTheScreen();
+ });
+
+ it('should render the label correctly ', () => {
+ const onSelect = jest.fn();
+ render(
+
+ );
+ expect(screen.getByTestId('select-trigger')).toBeOnTheScreen();
+ expect(screen.getByTestId('select-label')).toBeOnTheScreen();
+ expect(screen.getByTestId('select-label')).toHaveTextContent('Select');
+ });
+
+ it('should render the error correctly ', () => {
+ const onSelect = jest.fn();
+ render(
+
+ );
+ expect(screen.getByTestId('select-trigger')).toBeOnTheScreen();
+ expect(screen.getByTestId('select-error')).toBeOnTheScreen();
+ expect(screen.getByTestId('select-error')).toHaveTextContent(
+ 'Please select an option'
+ );
+ });
+
+ it('should open options modal on press', () => {
+ render(
+
+ );
+
+ const selectTrigger = screen.getByTestId('select-trigger');
+ fireEvent.press(selectTrigger);
+
+ expect(screen.getByTestId('select-item-chocolate')).toBeOnTheScreen();
+ expect(screen.getByTestId('select-item-strawberry')).toBeOnTheScreen();
+ expect(screen.getByTestId('select-item-vanilla')).toBeOnTheScreen();
+ });
+
+ it('should call onSelect on selecting an option', () => {
+ const onSelect = jest.fn();
+
+ render();
+
+ const optionModal = screen.getByTestId('select-modal');
+ fireEvent(optionModal, 'onPresent');
+
+ const optionItem1 = screen.getByTestId('select-item-chocolate');
+ fireEvent.press(optionItem1);
+
+ expect(onSelect).toHaveBeenCalledWith(options[0].value);
+ });
+});
diff --git a/src/ui/select.tsx b/src/ui/select.tsx
new file mode 100644
index 0000000..921f4a7
--- /dev/null
+++ b/src/ui/select.tsx
@@ -0,0 +1,269 @@
+/* eslint-disable max-lines-per-function */
+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, TouchableOpacity, View } from 'react-native';
+import { Pressable, type PressableProps } from 'react-native';
+import type { SvgProps } from 'react-native-svg';
+import Svg, { Path } from 'react-native-svg';
+import { tv } from 'tailwind-variants';
+
+import colors from '@/ui/colors';
+import { CaretDown } from '@/ui/icons';
+
+import type { InputControllerType } from './input';
+import { useModal } from './modal';
+import { Modal } from './modal';
+import { Text } from './text';
+
+const selectTv = tv({
+ slots: {
+ container: 'mb-4',
+ label: 'text-grey-100 dark:text-neutral-100 text-lg mb-1',
+ input:
+ 'mt-0 flex-row items-center justify-center border-[0.5px] border-grey-50 px-3 py-3 rounded-xl dark:bg-neutral-800 dark:border-neutral-500',
+ inputValue: 'dark:text-neutral-100',
+ },
+
+ variants: {
+ focused: {
+ true: {
+ input: 'border-neutral-600',
+ },
+ },
+ error: {
+ true: {
+ input: 'border-danger-600',
+ label: 'text-danger-600 dark:text-danger-600',
+ inputValue: 'text-danger-600',
+ },
+ },
+ disabled: {
+ true: {
+ input: 'bg-neutral-200',
+ },
+ },
+ },
+ defaultVariants: {
+ error: false,
+ disabled: false,
+ },
+});
+
+const List = Platform.OS === 'web' ? FlashList : BottomSheetFlatList;
+
+export type Option = { label: string; value: string | number };
+
+type OptionsProps = {
+ options: Option[];
+ onSelect: (option: Option) => void;
+ value?: string | number;
+ testID?: string;
+};
+
+function keyExtractor(item: Option) {
+ return `select-item-${item.value}`;
+}
+
+export const Options = React.forwardRef(
+ ({ options, onSelect, value, testID }, ref) => {
+ 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: Option }) => (
+