diff --git a/.eslintrc.pr.js b/.eslintrc.pr.js new file mode 100644 index 000000000000..63e058bf6005 --- /dev/null +++ b/.eslintrc.pr.js @@ -0,0 +1,7 @@ +module.exports = { + extends: './.eslintrc', + plugins: ['deprecation'], + rules: { + 'deprecation/deprecation': 'error', + }, +}; diff --git a/.github/actions/composite/setupNode/action.yml b/.github/actions/composite/setupNode/action.yml index b3bbf7a537ff..8eb4f6474638 100644 --- a/.github/actions/composite/setupNode/action.yml +++ b/.github/actions/composite/setupNode/action.yml @@ -9,12 +9,16 @@ outputs: runs: using: composite steps: + - name: Remove E/App version from package-lock.json + shell: bash + run: jq 'del(.version, .packages[""].version)' package-lock.json > normalized-package-lock.json + - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: npm cache-dependency-path: | - package-lock.json + normalized-package-lock.json desktop/package-lock.json - id: cache-node-modules diff --git a/.github/actions/javascript/getDeployPullRequestList/getDeployPullRequestList.ts b/.github/actions/javascript/getDeployPullRequestList/getDeployPullRequestList.ts index 5d5dbc7e2f29..2c854b37eb20 100644 --- a/.github/actions/javascript/getDeployPullRequestList/getDeployPullRequestList.ts +++ b/.github/actions/javascript/getDeployPullRequestList/getDeployPullRequestList.ts @@ -1,79 +1,9 @@ import * as core from '@actions/core'; import * as github from '@actions/github'; -import type {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types'; import {getJSONInput} from '@github/libs/ActionUtils'; import GithubUtils from '@github/libs/GithubUtils'; import GitUtils from '@github/libs/GitUtils'; -type WorkflowRun = RestEndpointMethodTypes['actions']['listWorkflowRuns']['response']['data']['workflow_runs'][number]; - -const BUILD_AND_DEPLOY_JOB_NAME_PREFIX = 'Build and deploy'; - -/** - * This function checks if a given release is a valid baseTag to get the PR list with `git log baseTag...endTag`. - * - * The rules are: - * - production deploys can only be compared with other production deploys - * - staging deploys can be compared with other staging deploys or production deploys. - * The reason is that the final staging release in each deploy cycle will BECOME a production release. - * For example, imagine a checklist is closed with version 9.0.20-6; that's the most recent staging deploy, but the release for 9.0.20-6 is now finalized, so it looks like a prod deploy. - * When 9.0.21-0 finishes deploying to staging, the most recent prerelease is 9.0.20-5. However, we want 9.0.20-6...9.0.21-0, - * NOT 9.0.20-5...9.0.21-0 (so that the PR CP'd in 9.0.20-6 is not included in the next checklist) - */ -async function isReleaseValidBaseForEnvironment(releaseTag: string, isProductionDeploy: boolean) { - if (!isProductionDeploy) { - return true; - } - const isPrerelease = ( - await GithubUtils.octokit.repos.getReleaseByTag({ - owner: github.context.repo.owner, - repo: github.context.repo.repo, - tag: releaseTag, - }) - ).data.prerelease; - return !isPrerelease; -} - -/** - * Was a given deploy workflow run successful on at least one platform? - */ -async function wasDeploySuccessful(runID: number) { - const jobsForWorkflowRun = ( - await GithubUtils.octokit.actions.listJobsForWorkflowRun({ - owner: github.context.repo.owner, - repo: github.context.repo.repo, - // eslint-disable-next-line @typescript-eslint/naming-convention - run_id: runID, - filter: 'latest', - }) - ).data.jobs; - return jobsForWorkflowRun.some((job) => job.name.startsWith(BUILD_AND_DEPLOY_JOB_NAME_PREFIX) && job.conclusion === 'success'); -} - -/** - * This function checks if a given deploy workflow is a valid basis for comparison when listing PRs merged between two versions. - * It returns the reason a version should be skipped, or an empty string if the version should not be skipped. - */ -async function shouldSkipVersion(lastSuccessfulDeploy: WorkflowRun, inputTag: string, isProductionDeploy: boolean): Promise { - if (!lastSuccessfulDeploy?.head_branch) { - // This should never happen. Just doing this to appease TS. - return ''; - } - - // we never want to compare a tag with itself. This check is necessary because prod deploys almost always have the same version as the last staging deploy. - // In this case, the next for wrong environment fails because the release that triggered that staging deploy is now finalized, so it looks like a prod deploy. - if (lastSuccessfulDeploy?.head_branch === inputTag) { - return `Same as input tag ${inputTag}`; - } - if (!(await isReleaseValidBaseForEnvironment(lastSuccessfulDeploy?.head_branch, isProductionDeploy))) { - return 'Was a staging deploy, we only want to compare with other production deploys'; - } - if (!(await wasDeploySuccessful(lastSuccessfulDeploy.id))) { - return 'Was an unsuccessful deploy, nothing was deployed in that version'; - } - return ''; -} - async function run() { try { const inputTag = core.getInput('TAG', {required: true}); @@ -82,62 +12,56 @@ async function run() { console.log(`Looking for PRs deployed to ${deployEnv} in ${inputTag}...`); - const platformDeploys = ( - await GithubUtils.octokit.actions.listWorkflowRuns({ - owner: github.context.repo.owner, - repo: github.context.repo.repo, - // eslint-disable-next-line @typescript-eslint/naming-convention - workflow_id: 'platformDeploy.yml', - status: 'completed', - }) - ).data.workflow_runs - // Note: we filter out cancelled runs instead of looking only for success runs - // because if a build fails on even one platform, then it will have the status 'failure' - .filter((workflowRun) => workflowRun.conclusion !== 'cancelled'); - - const deploys = ( - await GithubUtils.octokit.actions.listWorkflowRuns({ + let priorTag: string | undefined; + let foundCurrentRelease = false; + await GithubUtils.paginate( + GithubUtils.octokit.repos.listReleases, + { owner: github.context.repo.owner, repo: github.context.repo.repo, // eslint-disable-next-line @typescript-eslint/naming-convention - workflow_id: 'deploy.yml', - status: 'completed', - }) - ).data.workflow_runs - // Note: we filter out cancelled runs instead of looking only for success runs - // because if a build fails on even one platform, then it will have the status 'failure' - .filter((workflowRun) => workflowRun.conclusion !== 'cancelled'); - - // W've combined platformDeploy.yml and deploy.yml - // TODO: Remove this once there are successful staging and production deploys using the new deploy.yml workflow - const completedDeploys = [...deploys, ...platformDeploys]; - completedDeploys.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime()); - - // Find the most recent deploy workflow targeting the correct environment, for which at least one of the build jobs finished successfully - let lastSuccessfulDeploy = completedDeploys.shift(); - - if (!lastSuccessfulDeploy) { - throw new Error('Could not find a prior successful deploy'); - } - - let reason = await shouldSkipVersion(lastSuccessfulDeploy, inputTag, isProductionDeploy); - while (lastSuccessfulDeploy && reason) { - console.log( - `Deploy of tag ${lastSuccessfulDeploy.head_branch} was not valid as a base for comparison, looking at the next one. Reason: ${reason}`, - lastSuccessfulDeploy.html_url, - ); - lastSuccessfulDeploy = completedDeploys.shift(); - - if (!lastSuccessfulDeploy) { - throw new Error('Could not find a prior successful deploy'); - } - - reason = await shouldSkipVersion(lastSuccessfulDeploy, inputTag, isProductionDeploy); + per_page: 100, + }, + ({data}, done) => { + // For production deploys, look only at other production deploys. + // staging deploys can be compared with other staging deploys or production deploys. + // The reason is that the final staging release in each deploy cycle will BECOME a production release + const filteredData = isProductionDeploy ? data.filter((release) => !release.prerelease) : data; + + // Release was in the last page, meaning the previous release is the first item in this page + if (foundCurrentRelease) { + priorTag = data.at(0)?.tag_name; + done(); + return filteredData; + } + + // Search for the index of input tag + const indexOfCurrentRelease = filteredData.findIndex((release) => release.tag_name === inputTag); + + // If it happens to be at the end of this page, then the previous tag will be in the next page. + // Set a flag showing we found it so we grab the first release of the next page + if (indexOfCurrentRelease === filteredData.length - 1) { + foundCurrentRelease = true; + return filteredData; + } + + // If it's anywhere else in this page, the the prior release is the next item in the page + if (indexOfCurrentRelease >= 0) { + priorTag = filteredData.at(indexOfCurrentRelease + 1)?.tag_name; + done(); + } + + // Release not in this page (or we're done) + return filteredData; + }, + ); + + if (!priorTag) { + throw new Error('Something went wrong and the prior tag could not be found.'); } - const priorTag = lastSuccessfulDeploy.head_branch; console.log(`Looking for PRs deployed to ${deployEnv} between ${priorTag} and ${inputTag}`); - const prList = await GitUtils.getPullRequestsMergedBetween(priorTag ?? '', inputTag); + const prList = await GitUtils.getPullRequestsMergedBetween(priorTag, inputTag); console.log('Found the pull request list: ', prList); core.setOutput('PR_LIST', prList); } catch (error) { diff --git a/.github/actions/javascript/getDeployPullRequestList/index.js b/.github/actions/javascript/getDeployPullRequestList/index.js index 3faaeb28f548..918d631778d3 100644 --- a/.github/actions/javascript/getDeployPullRequestList/index.js +++ b/.github/actions/javascript/getDeployPullRequestList/index.js @@ -11502,111 +11502,51 @@ const github = __importStar(__nccwpck_require__(5438)); const ActionUtils_1 = __nccwpck_require__(6981); const GithubUtils_1 = __importDefault(__nccwpck_require__(9296)); const GitUtils_1 = __importDefault(__nccwpck_require__(1547)); -const BUILD_AND_DEPLOY_JOB_NAME_PREFIX = 'Build and deploy'; -/** - * This function checks if a given release is a valid baseTag to get the PR list with `git log baseTag...endTag`. - * - * The rules are: - * - production deploys can only be compared with other production deploys - * - staging deploys can be compared with other staging deploys or production deploys. - * The reason is that the final staging release in each deploy cycle will BECOME a production release. - * For example, imagine a checklist is closed with version 9.0.20-6; that's the most recent staging deploy, but the release for 9.0.20-6 is now finalized, so it looks like a prod deploy. - * When 9.0.21-0 finishes deploying to staging, the most recent prerelease is 9.0.20-5. However, we want 9.0.20-6...9.0.21-0, - * NOT 9.0.20-5...9.0.21-0 (so that the PR CP'd in 9.0.20-6 is not included in the next checklist) - */ -async function isReleaseValidBaseForEnvironment(releaseTag, isProductionDeploy) { - if (!isProductionDeploy) { - return true; - } - const isPrerelease = (await GithubUtils_1.default.octokit.repos.getReleaseByTag({ - owner: github.context.repo.owner, - repo: github.context.repo.repo, - tag: releaseTag, - })).data.prerelease; - return !isPrerelease; -} -/** - * Was a given deploy workflow run successful on at least one platform? - */ -async function wasDeploySuccessful(runID) { - const jobsForWorkflowRun = (await GithubUtils_1.default.octokit.actions.listJobsForWorkflowRun({ - owner: github.context.repo.owner, - repo: github.context.repo.repo, - // eslint-disable-next-line @typescript-eslint/naming-convention - run_id: runID, - filter: 'latest', - })).data.jobs; - return jobsForWorkflowRun.some((job) => job.name.startsWith(BUILD_AND_DEPLOY_JOB_NAME_PREFIX) && job.conclusion === 'success'); -} -/** - * This function checks if a given deploy workflow is a valid basis for comparison when listing PRs merged between two versions. - * It returns the reason a version should be skipped, or an empty string if the version should not be skipped. - */ -async function shouldSkipVersion(lastSuccessfulDeploy, inputTag, isProductionDeploy) { - if (!lastSuccessfulDeploy?.head_branch) { - // This should never happen. Just doing this to appease TS. - return ''; - } - // we never want to compare a tag with itself. This check is necessary because prod deploys almost always have the same version as the last staging deploy. - // In this case, the next for wrong environment fails because the release that triggered that staging deploy is now finalized, so it looks like a prod deploy. - if (lastSuccessfulDeploy?.head_branch === inputTag) { - return `Same as input tag ${inputTag}`; - } - if (!(await isReleaseValidBaseForEnvironment(lastSuccessfulDeploy?.head_branch, isProductionDeploy))) { - return 'Was a staging deploy, we only want to compare with other production deploys'; - } - if (!(await wasDeploySuccessful(lastSuccessfulDeploy.id))) { - return 'Was an unsuccessful deploy, nothing was deployed in that version'; - } - return ''; -} async function run() { try { const inputTag = core.getInput('TAG', { required: true }); const isProductionDeploy = !!(0, ActionUtils_1.getJSONInput)('IS_PRODUCTION_DEPLOY', { required: false }, false); const deployEnv = isProductionDeploy ? 'production' : 'staging'; console.log(`Looking for PRs deployed to ${deployEnv} in ${inputTag}...`); - const platformDeploys = (await GithubUtils_1.default.octokit.actions.listWorkflowRuns({ + let priorTag; + let foundCurrentRelease = false; + await GithubUtils_1.default.paginate(GithubUtils_1.default.octokit.repos.listReleases, { owner: github.context.repo.owner, repo: github.context.repo.repo, // eslint-disable-next-line @typescript-eslint/naming-convention - workflow_id: 'platformDeploy.yml', - status: 'completed', - })).data.workflow_runs - // Note: we filter out cancelled runs instead of looking only for success runs - // because if a build fails on even one platform, then it will have the status 'failure' - .filter((workflowRun) => workflowRun.conclusion !== 'cancelled'); - const deploys = (await GithubUtils_1.default.octokit.actions.listWorkflowRuns({ - owner: github.context.repo.owner, - repo: github.context.repo.repo, - // eslint-disable-next-line @typescript-eslint/naming-convention - workflow_id: 'deploy.yml', - status: 'completed', - })).data.workflow_runs - // Note: we filter out cancelled runs instead of looking only for success runs - // because if a build fails on even one platform, then it will have the status 'failure' - .filter((workflowRun) => workflowRun.conclusion !== 'cancelled'); - // W've combined platformDeploy.yml and deploy.yml - // TODO: Remove this once there are successful staging and production deploys using the new deploy.yml workflow - const completedDeploys = [...deploys, ...platformDeploys]; - completedDeploys.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime()); - // Find the most recent deploy workflow targeting the correct environment, for which at least one of the build jobs finished successfully - let lastSuccessfulDeploy = completedDeploys.shift(); - if (!lastSuccessfulDeploy) { - throw new Error('Could not find a prior successful deploy'); - } - let reason = await shouldSkipVersion(lastSuccessfulDeploy, inputTag, isProductionDeploy); - while (lastSuccessfulDeploy && reason) { - console.log(`Deploy of tag ${lastSuccessfulDeploy.head_branch} was not valid as a base for comparison, looking at the next one. Reason: ${reason}`, lastSuccessfulDeploy.html_url); - lastSuccessfulDeploy = completedDeploys.shift(); - if (!lastSuccessfulDeploy) { - throw new Error('Could not find a prior successful deploy'); + per_page: 100, + }, ({ data }, done) => { + // For production deploys, look only at other production deploys. + // staging deploys can be compared with other staging deploys or production deploys. + // The reason is that the final staging release in each deploy cycle will BECOME a production release + const filteredData = isProductionDeploy ? data.filter((release) => !release.prerelease) : data; + // Release was in the last page, meaning the previous release is the first item in this page + if (foundCurrentRelease) { + priorTag = data.at(0)?.tag_name; + done(); + return filteredData; + } + // Search for the index of input tag + const indexOfCurrentRelease = filteredData.findIndex((release) => release.tag_name === inputTag); + // If it happens to be at the end of this page, then the previous tag will be in the next page. + // Set a flag showing we found it so we grab the first release of the next page + if (indexOfCurrentRelease === filteredData.length - 1) { + foundCurrentRelease = true; + return filteredData; } - reason = await shouldSkipVersion(lastSuccessfulDeploy, inputTag, isProductionDeploy); + // If it's anywhere else in this page, the the prior release is the next item in the page + if (indexOfCurrentRelease >= 0) { + priorTag = filteredData.at(indexOfCurrentRelease + 1)?.tag_name; + done(); + } + // Release not in this page (or we're done) + return filteredData; + }); + if (!priorTag) { + throw new Error('Something went wrong and the prior tag could not be found.'); } - const priorTag = lastSuccessfulDeploy.head_branch; console.log(`Looking for PRs deployed to ${deployEnv} between ${priorTag} and ${inputTag}`); - const prList = await GitUtils_1.default.getPullRequestsMergedBetween(priorTag ?? '', inputTag); + const prList = await GitUtils_1.default.getPullRequestsMergedBetween(priorTag, inputTag); console.log('Found the pull request list: ', prList); core.setOutput('PR_LIST', prList); } diff --git a/.github/scripts/createHelpRedirects.sh b/.github/scripts/createHelpRedirects.sh index 1425939ff3ec..76696977de4d 100755 --- a/.github/scripts/createHelpRedirects.sh +++ b/.github/scripts/createHelpRedirects.sh @@ -1,7 +1,7 @@ #!/bin/bash # # Adds new routes to the Cloudflare Bulk Redirects list for communityDot to helpDot -# pages. Does some basic sanity checking. +# pages. Sanity checking is done upstream in the PRs themselves in verifyRedirect.sh. set -e diff --git a/.github/scripts/verifyRedirect.sh b/.github/scripts/verifyRedirect.sh index 05c402ad7766..af9861f40921 100755 --- a/.github/scripts/verifyRedirect.sh +++ b/.github/scripts/verifyRedirect.sh @@ -1,27 +1,31 @@ #!/bin/bash -# HelpDot - Verifies that redirects.csv does not have any duplicates -# Duplicate sourceURLs break redirection on cloudflare pages +# HelpDot - Verifies that redirects.csv does not have any errors that would prevent +# the bulk redirects in Cloudflare from working. This includes: +# Duplicate sourceURLs +# Source URLs containing anchors or URL params +# URLs pointing to themselves +# +# We also prevent adding source or destination URLs outside of an allowed list +# of domains. That's because these redirects run on our zone as a whole, so you +# could add a redirect for sites outside of help/community and Cloudflare would allow it +# and it would work. source scripts/shellUtils.sh declare -r REDIRECTS_FILE="docs/redirects.csv" declare -a ITEMS_TO_ADD -declare -r RED='\033[0;31m' -declare -r GREEN='\033[0;32m' -declare -r NC='\033[0m' - duplicates=$(awk -F, 'a[$1]++{print $1}' $REDIRECTS_FILE) if [[ -n "$duplicates" ]]; then - echo "${RED}duplicate redirects are not allowed: $duplicates ${NC}" + echo "${RED}duplicate redirects are not allowed: $duplicates ${RESET}" exit 1 fi npm run detectRedirectCycle DETECT_CYCLE_EXIT_CODE=$? if [[ DETECT_CYCLE_EXIT_CODE -eq 1 ]]; then - echo -e "${RED}The redirects.csv has a cycle. Please remove the redirect cycle because it will cause an infinite redirect loop ${NC}" + echo -e "${RED}The redirects.csv has a cycle. Please remove the redirect cycle because it will cause an infinite redirect loop ${RESET}" exit 1 fi @@ -46,8 +50,8 @@ while read -r line; do # Basic sanity checking to make sure that the source and destination are in expected # subdomains. - if ! [[ $SOURCE_URL =~ ^https://(community|help)\.expensify\.com ]] || [[ $SOURCE_URL =~ \# ]]; then - error "Found source URL that is not a communityDot or helpDot URL, or contains a '#': $SOURCE_URL" + if ! [[ $SOURCE_URL =~ ^https://(community|help)\.expensify\.com ]] || [[ $SOURCE_URL =~ (\#|\?) ]]; then + error "Found source URL that is not a communityDot or helpDot URL, or contains a '#' or '?': $SOURCE_URL" exit 1 fi @@ -66,9 +70,9 @@ done <<< "$(tail +2 $REDIRECTS_FILE)" # Sanity check that we should actually be running this and we aren't about to delete # every single redirect. if [[ "${#ITEMS_TO_ADD[@]}" -lt 1 ]]; then - error "No items found to add, why are we running?" + error "${RED}No items found to add, why are we running?${RESET}" exit 1 fi -echo -e "${GREEN}The redirects.csv is valid!${NC}" +echo -e "${GREEN}The redirects.csv is valid!${RESET}" exit 0 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f2a3f96b8f67..6ef9fe299510 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -14,6 +14,7 @@ concurrency: jobs: validateActor: runs-on: ubuntu-latest + timeout-minutes: 90 outputs: IS_DEPLOYER: ${{ fromJSON(steps.isUserDeployer.outputs.IS_DEPLOYER) || github.actor == 'OSBotify' || github.actor == 'os-botify[bot]' }} steps: @@ -28,10 +29,12 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }} - createTag: + prep: needs: validateActor - if: ${{ github.ref == 'refs/heads/staging' }} + if: ${{ fromJSON(needs.validateActor.outputs.IS_DEPLOYER) }} runs-on: ubuntu-latest + outputs: + APP_VERSION: ${{ steps.getAppVersion.outputs.VERSION }} steps: - name: Checkout uses: actions/checkout@v4 @@ -46,9 +49,14 @@ jobs: OS_BOTIFY_APP_ID: ${{ secrets.OS_BOTIFY_APP_ID }} OS_BOTIFY_PRIVATE_KEY: ${{ secrets.OS_BOTIFY_PRIVATE_KEY }} + - name: Get app version + id: getAppVersion + run: echo "VERSION=$(jq -r .version < package.json)" >> "$GITHUB_OUTPUT" + - name: Create and push tag + if: ${{ github.ref == 'refs/heads/staging' }} run: | - git tag "$(jq -r .version < package.json)" + git tag ${{ steps.getAppVersion.outputs.VERSION }} git push origin --tags # Note: we're updating the checklist before running the deploys and assuming that it will succeed on at least one platform @@ -56,15 +64,15 @@ jobs: name: Create or update deploy checklist uses: ./.github/workflows/createDeployChecklist.yml if: ${{ github.ref == 'refs/heads/staging' }} - needs: createTag + needs: prep secrets: inherit android: - # WARNING: getDeployPullRequestList depends on this job name. do not change job name without adjusting that action accordingly name: Build and deploy Android - needs: validateActor - if: ${{ fromJSON(needs.validateActor.outputs.IS_DEPLOYER) }} + needs: prep runs-on: ubuntu-latest-xl + env: + RUBYOPT: '-rostruct' steps: - name: Checkout uses: actions/checkout@v4 @@ -96,16 +104,21 @@ jobs: env: LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }} - - name: Set version in ENV - run: echo "VERSION_CODE=$(grep -o 'versionCode\s\+[0-9]\+' android/app/build.gradle | awk '{ print $2 }')" >> "$GITHUB_ENV" + - name: Get Android native version + id: getAndroidVersion + run: echo "VERSION_CODE=$(grep -o 'versionCode\s\+[0-9]\+' android/app/build.gradle | awk '{ print $2 }')" >> "$GITHUB_OUTPUT" - - name: Run Fastlane - run: bundle exec fastlane android ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'production' || 'beta' }} + - name: Build Android app + if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} + run: bundle exec fastlane android build env: - RUBYOPT: '-rostruct' MYAPP_UPLOAD_STORE_PASSWORD: ${{ secrets.MYAPP_UPLOAD_STORE_PASSWORD }} MYAPP_UPLOAD_KEY_PASSWORD: ${{ secrets.MYAPP_UPLOAD_KEY_PASSWORD }} - VERSION: ${{ env.VERSION_CODE }} + + - name: Upload Android app to Google Play + run: bundle exec fastlane android ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'upload_google_play_production' || 'upload_google_play_internal' }} + env: + VERSION: ${{ steps.getAndroidVersion.outputs.VERSION_CODE }} - name: Upload Android build to Browser Stack if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} @@ -141,7 +154,7 @@ jobs: attachments: [{ color: "#DB4545", pretext: ``, - text: `💥 Android production deploy failed. Please manually submit ${{ env.VERSION }} in the . 💥`, + text: `💥 Android production deploy failed. Please manually submit ${{ needs.prep.outputs.APP_VERSION }} in the . 💥`, }] } env: @@ -149,10 +162,8 @@ jobs: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} desktop: - # WARNING: getDeployPullRequestList depends on this job name. do not change job name without adjusting that action accordingly name: Build and deploy Desktop - needs: validateActor - if: ${{ fromJSON(needs.validateActor.outputs.IS_DEPLOYER) }} + needs: prep runs-on: macos-14-large steps: - name: Checkout @@ -185,20 +196,18 @@ jobs: - name: Upload desktop sourcemaps artifact uses: actions/upload-artifact@v4 with: - name: desktop-sourcemaps-artifact + name: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'desktop-sourcemaps-artifact' || 'desktop-staging-sourcemaps-artifact' }} path: ./desktop/dist/www/merged-source-map.js.map - name: Upload desktop build artifact uses: actions/upload-artifact@v4 with: - name: desktop-build-artifact + name: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'desktop-build-artifact' || 'desktop-staging-build-artifact' }} path: ./desktop-build/NewExpensify.dmg iOS: - # WARNING: getDeployPullRequestList depends on this job name. do not change job name without adjusting that action accordingly name: Build and deploy iOS - needs: validateActor - if: ${{ fromJSON(needs.validateActor.outputs.IS_DEPLOYER) }} + needs: prep env: DEVELOPER_DIR: /Applications/Xcode_15.2.0.app/Contents/Developer runs-on: macos-13-xlarge @@ -260,17 +269,28 @@ jobs: - name: Set current App version in Env run: echo "VERSION=$(npm run print-version --silent)" >> "$GITHUB_ENV" - - name: Set iOS version in ENV - run: echo "IOS_VERSION=$(echo '${{ env.VERSION }}' | tr '-' '.')" >> "$GITHUB_ENV" + - name: Get iOS native version + id: getIOSVersion + run: echo "IOS_VERSION=$(echo '${{ needs.prep.outputs.APP_VERSION }}' | tr '-' '.')" >> "$GITHUB_OUTPUT" - - name: Run Fastlane - run: bundle exec fastlane ios ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'production' || 'beta' }} + - name: Build iOS release app + if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} + run: bundle exec fastlane ios build + + - name: Upload release build to TestFlight + if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} + run: bundle exec fastlane ios upload_testflight env: APPLE_CONTACT_EMAIL: ${{ secrets.APPLE_CONTACT_EMAIL }} APPLE_CONTACT_PHONE: ${{ secrets.APPLE_CONTACT_PHONE }} APPLE_DEMO_EMAIL: ${{ secrets.APPLE_DEMO_EMAIL }} APPLE_DEMO_PASSWORD: ${{ secrets.APPLE_DEMO_PASSWORD }} - VERSION: ${{ env.IOS_VERSION }} + + - name: Submit build for App Store review + if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} + run: bundle exec fastlane ios submit_for_review + env: + VERSION: ${{ steps.getIOSVersion.outputs.IOS_VERSION }} - name: Upload iOS build to Browser Stack if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} @@ -303,7 +323,7 @@ jobs: attachments: [{ color: "#DB4545", pretext: ``, - text: `💥 iOS production deploy failed. Please manually submit ${{ env.IOS_VERSION }} in the . 💥`, + text: `💥 iOS production deploy failed. Please manually submit ${{ steps.getIOSVersion.outputs.IOS_VERSION }} in the . 💥`, }] } env: @@ -311,10 +331,8 @@ jobs: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} web: - # WARNING: getDeployPullRequestList depends on this job name. do not change job name without adjusting that action accordingly name: Build and deploy Web - needs: validateActor - if: ${{ fromJSON(needs.validateActor.outputs.IS_DEPLOYER) }} + needs: prep runs-on: ubuntu-latest-xl steps: - name: Checkout @@ -371,8 +389,8 @@ jobs: run: | sleep 5 DOWNLOADED_VERSION="$(wget -q -O /dev/stdout https://staging.new.expensify.com/version.json | jq -r '.version')" - if [[ '${{ env.VERSION }}' != "$DOWNLOADED_VERSION" ]]; then - echo "Error: deployed version $DOWNLOADED_VERSION does not match local version ${{ env.VERSION }}. Something went wrong..." + if [[ '${{ needs.prep.outputs.APP_VERSION }}' != "$DOWNLOADED_VERSION" ]]; then + echo "Error: deployed version $DOWNLOADED_VERSION does not match local version ${{ needs.prep.outputs.APP_VERSION }}. Something went wrong..." exit 1 fi @@ -381,15 +399,15 @@ jobs: run: | sleep 5 DOWNLOADED_VERSION="$(wget -q -O /dev/stdout https://new.expensify.com/version.json | jq -r '.version')" - if [[ '${{ env.VERSION }}' != "$DOWNLOADED_VERSION" ]]; then - echo "Error: deployed version $DOWNLOADED_VERSION does not match local version ${{ env.VERSION }}. Something went wrong..." + if [[ '${{ needs.prep.outputs.APP_VERSION }}' != "$DOWNLOADED_VERSION" ]]; then + echo "Error: deployed version $DOWNLOADED_VERSION does not match local version ${{ needs.prep.outputs.APP_VERSION }}. Something went wrong..." exit 1 fi - name: Upload web sourcemaps artifact uses: actions/upload-artifact@v4 with: - name: web-sourcemaps-artifact + name: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'web' || 'web-staging' }}-sourcemaps-artifact path: ./dist/merged-source-map.js.map - name: Compress web build .tar.gz and .zip @@ -400,13 +418,13 @@ jobs: - name: Upload .tar.gz web build artifact uses: actions/upload-artifact@v4 with: - name: web-build-tar-gz-artifact + name: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'web' || 'web-staging' }}-build-tar-gz-artifact path: ./webBuild.tar.gz - name: Upload .zip web build artifact uses: actions/upload-artifact@v4 with: - name: web-build-zip-artifact + name: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'web' || 'web-staging' }}-build-zip-artifact path: ./webBuild.zip postSlackMessageOnFailure: @@ -426,14 +444,11 @@ jobs: # Build a version of iOS and Android HybridApp if we are deploying to staging hybridApp: runs-on: ubuntu-latest - needs: validateActor - if: ${{ fromJSON(needs.validateActor.outputs.IS_DEPLOYER) && github.ref == 'refs/heads/staging' }} + needs: prep + if: ${{ github.ref == 'refs/heads/staging' }} steps: - - name: Checkout - uses: actions/checkout@v4 - - name: 'Deploy HybridApp' - run: gh workflow run --repo Expensify/Mobile-Deploy deploy.yml -f force_build=true -f build_version="$(npm run print-version --silent)" + run: gh workflow run --repo Expensify/Mobile-Deploy deploy.yml -f force_build=true -f build_version="${{ needs.prep.outputs.APP_VERSION }}" env: GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }} @@ -443,6 +458,7 @@ jobs: IS_AT_LEAST_ONE_PLATFORM_DEPLOYED: ${{ steps.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED }} IS_ALL_PLATFORMS_DEPLOYED: ${{ steps.checkDeploymentSuccess.outputs.IS_ALL_PLATFORMS_DEPLOYED }} needs: [android, desktop, iOS, web] + if: ${{ always() }} steps: - name: Check deployment success on at least one platform id: checkDeploymentSuccess @@ -467,23 +483,17 @@ jobs: createPrerelease: runs-on: ubuntu-latest if: ${{ github.ref == 'refs/heads/staging' && fromJSON(needs.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED) }} - needs: [checkDeploymentSuccess] + needs: [prep, checkDeploymentSuccess] steps: - - name: Checkout staging branch - uses: actions/checkout@v4 - - - name: Get current app version - run: echo "STAGING_VERSION=$(jq -r .version < package.json)" >> "$GITHUB_ENV" - - name: Download all workflow run artifacts uses: actions/download-artifact@v4 - name: 🚀 Create prerelease 🚀 run: | - gh release create ${{ env.STAGING_VERSION }} --title ${{ env.STAGING_VERSION }} --generate-notes --prerelease --target staging + gh release create ${{ needs.prep.outputs.APP_VERSION }} --repo ${{ github.repository }} --title ${{ needs.prep.outputs.APP_VERSION }} --generate-notes --prerelease --target staging RETRIES=0 MAX_RETRIES=10 - until [[ $(gh release view ${{ env.STAGING_VERSION }}) || $RETRIES -ge $MAX_RETRIES ]]; do + until [[ $(gh release view ${{ needs.prep.outputs.APP_VERSION }} --repo ${{ github.repository }}) || $RETRIES -ge $MAX_RETRIES ]]; do echo "release not found, retrying $((MAX_RETRIES - RETRIES++)) times" sleep 1 done @@ -492,21 +502,21 @@ jobs: - name: Rename web and desktop sourcemaps artifacts before assets upload in order to have unique ReleaseAsset.name run: | - mv ./desktop-sourcemaps-artifact/merged-source-map.js.map ./desktop-sourcemaps-artifact/desktop-merged-source-map.js.map - mv ./web-sourcemaps-artifact/merged-source-map.js.map ./web-sourcemaps-artifact/web-merged-source-map.js.map + mv ./desktop-staging-sourcemaps-artifact/merged-source-map.js.map ./desktop-staging-sourcemaps-artifact/desktop-staging-merged-source-map.js.map + mv ./web-staging-sourcemaps-artifact/merged-source-map.js.map ./web-staging-sourcemaps-artifact/web-staging-merged-source-map.js.map - name: Upload artifacts to GitHub Release run: | - gh release upload ${{ env.STAGING_VERSION }} \ - ./android-sourcemaps-artifact/index.android.bundle.map#android-sourcemap-${{ env.STAGING_VERSION }} \ + gh release upload ${{ needs.prep.outputs.APP_VERSION }} --repo ${{ github.repository }} --clobber \ + ./android-sourcemaps-artifact/index.android.bundle.map#android-sourcemap-${{ needs.prep.outputs.APP_VERSION }} \ ./android-build-artifact/app-production-release.aab \ - ./desktop-sourcemaps-artifact/desktop-merged-source-map.js.map#desktop-sourcemap-${{ env.STAGING_VERSION }} \ - ./desktop-build-artifact/NewExpensify.dmg \ - ./ios-sourcemaps-artifact/main.jsbundle.map#ios-sourcemap-${{ env.STAGING_VERSION }} \ + ./desktop-staging-sourcemaps-artifact/desktop-staging-merged-source-map.js.map#desktop-staging-sourcemap-${{ needs.prep.outputs.APP_VERSION }} \ + ./desktop-staging-build-artifact/NewExpensify.dmg#NewExpensifyStaging.dmg \ + ./ios-sourcemaps-artifact/main.jsbundle.map#ios-sourcemap-${{ needs.prep.outputs.APP_VERSION }} \ ./ios-build-artifact/New\ Expensify.ipa \ - ./web-sourcemaps-artifact/web-merged-source-map.js.map#web-sourcemap-${{ env.STAGING_VERSION }} \ - ./web-build-tar-gz-artifact/webBuild.tar.gz \ - ./web-build-zip-artifact/webBuild.zip + ./web-staging-sourcemaps-artifact/web-staging-merged-source-map.js.map#web-staging-sourcemap-${{ needs.prep.outputs.APP_VERSION }} \ + ./web-staging-build-tar-gz-artifact/webBuild.tar.gz#stagingWebBuild.tar.gz \ + ./web-staging-build-zip-artifact/webBuild.zip#stagingWebBuild.zip env: GITHUB_TOKEN: ${{ github.token }} @@ -531,14 +541,8 @@ jobs: finalizeRelease: runs-on: ubuntu-latest if: ${{ github.ref == 'refs/heads/production' && fromJSON(needs.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED) }} - needs: [checkDeploymentSuccess] + needs: [prep, checkDeploymentSuccess] steps: - - name: Checkout production branch - uses: actions/checkout@v4 - - - name: Get current app version - run: echo "PRODUCTION_VERSION=$(npm run print-version --silent)" >> "$GITHUB_ENV" - - name: Download all workflow run artifacts uses: actions/download-artifact@v4 @@ -547,22 +551,22 @@ jobs: mv ./desktop-sourcemaps-artifact/merged-source-map.js.map ./desktop-sourcemaps-artifact/desktop-merged-source-map.js.map mv ./web-sourcemaps-artifact/merged-source-map.js.map ./web-sourcemaps-artifact/web-merged-source-map.js.map - - name: Upload artifacts to GitHub Release + - name: 🚀 Edit the release to be no longer a prerelease 🚀 run: | - gh release upload ${{ env.STAGING_VERSION }} \ - ./desktop-sourcemaps-artifact/desktop-merged-source-map.js.map#desktop-sourcemap-${{ env.STAGING_VERSION }} \ - ./desktop-build-artifact/NewExpensify.dmg \ - ./web-sourcemaps-artifact/web-merged-source-map.js.map#web-sourcemap-${{ env.STAGING_VERSION }} \ - ./web-build-tar-gz-artifact/webBuild.tar.gz \ - ./web-build-zip-artifact/webBuild.zip + LATEST_RELEASE="$(gh release list --repo ${{ github.repository }} --exclude-pre-releases --json tagName,isLatest --jq '.[] | select(.isLatest) | .tagName')" + gh api --method POST /repos/Expensify/App/releases/generate-notes -f "tag_name=${{ needs.prep.outputs.APP_VERSION }}" -f "previous_tag_name=$LATEST_RELEASE" | jq -r '.body' >> releaseNotes.md + gh release edit ${{ needs.prep.outputs.APP_VERSION }} --repo ${{ github.repository }} --prerelease=false --latest --notes-file releaseNotes.md env: GITHUB_TOKEN: ${{ github.token }} - - name: 🚀 Edit the release to be no longer a prerelease 🚀 + - name: Upload artifacts to GitHub Release run: | - LATEST_RELEASE="$(gh release list --exclude-pre-releases --json tagName,isLatest --jq '.[] | select(.isLatest) | .tagName')" - gh api --method POST /repos/Expensify/App/releases/generate-notes -f "tag_name=${{ env.PRODUCTION_VERSION }}" -f "previous_tag_name=$LATEST_RELEASE" | jq -r '.body' >> releaseNotes.md - gh release edit ${{ env.PRODUCTION_VERSION }} --prerelease=false --latest --notes-file releaseNotes.md + gh release upload ${{ needs.prep.outputs.APP_VERSION }} --repo ${{ github.repository }} --clobber \ + ./desktop-sourcemaps-artifact/desktop-merged-source-map.js.map#desktop-sourcemap-${{ needs.prep.outputs.APP_VERSION }} \ + ./desktop-build-artifact/NewExpensify.dmg \ + ./web-sourcemaps-artifact/web-merged-source-map.js.map#web-sourcemap-${{ needs.prep.outputs.APP_VERSION }} \ + ./web-build-tar-gz-artifact/webBuild.tar.gz \ + ./web-build-zip-artifact/webBuild.zip env: GITHUB_TOKEN: ${{ github.token }} @@ -587,15 +591,9 @@ jobs: postSlackMessageOnSuccess: name: Post a Slack message when all platforms deploy successfully runs-on: ubuntu-latest - if: ${{ fromJSON(needs.checkDeploymentSuccess.outputs.IS_ALL_PLATFORMS_DEPLOYED) }} - needs: [checkDeploymentSuccess, createPrerelease, finalizeRelease] + if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_ALL_PLATFORMS_DEPLOYED) }} + needs: [prep, android, desktop, iOS, web, checkDeploymentSuccess, createPrerelease, finalizeRelease] steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set current App version in Env - run: echo "VERSION=$(npm run print-version --silent)" >> "$GITHUB_ENV" - - name: 'Announces the deploy in the #announce Slack room' uses: 8398a7/action-slack@v3 with: @@ -605,7 +603,7 @@ jobs: channel: '#announce', attachments: [{ color: 'good', - text: `🎉️ Successfully deployed ${process.env.AS_REPO} to ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'production' || 'staging' }} 🎉️`, + text: `🎉️ Successfully deployed ${process.env.AS_REPO} to ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'production' || 'staging' }} 🎉️`, }] } env: @@ -621,7 +619,7 @@ jobs: channel: '#deployer', attachments: [{ color: 'good', - text: `🎉️ Successfully deployed ${process.env.AS_REPO} to ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'production' || 'staging' }} 🎉️`, + text: `🎉️ Successfully deployed ${process.env.AS_REPO} to ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) && 'production' || 'staging' }} 🎉️`, }] } env: @@ -638,7 +636,7 @@ jobs: channel: '#expensify-open-source', attachments: [{ color: 'good', - text: `🎉️ Successfully deployed ${process.env.AS_REPO} to production 🎉️`, + text: `🎉️ Successfully deployed ${process.env.AS_REPO} to production 🎉️`, }] } env: @@ -648,8 +646,8 @@ jobs: postGithubComment: name: Post a GitHub comments on all deployed PRs when platforms are done building and deploying runs-on: ubuntu-latest - if: ${{ fromJSON(needs.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED) }} - needs: [android, desktop, iOS, web, checkDeploymentSuccess, createPrerelease, finalizeRelease] + if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED) }} + needs: [prep, android, desktop, iOS, web, checkDeploymentSuccess, createPrerelease, finalizeRelease] steps: - name: Checkout uses: actions/checkout@v4 @@ -657,14 +655,11 @@ jobs: - name: Setup Node uses: ./.github/actions/composite/setupNode - - name: Set current App version in Env - run: echo "VERSION=$(npm run print-version --silent)" >> "$GITHUB_ENV" - - name: Get Release Pull Request List id: getReleasePRList uses: ./.github/actions/javascript/getDeployPullRequestList with: - TAG: ${{ env.VERSION }} + TAG: ${{ needs.prep.outputs.APP_VERSION }} GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }} IS_PRODUCTION_DEPLOY: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} @@ -673,7 +668,7 @@ jobs: with: PR_LIST: ${{ steps.getReleasePRList.outputs.PR_LIST }} IS_PRODUCTION_DEPLOY: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} - DEPLOY_VERSION: ${{ env.VERSION }} + DEPLOY_VERSION: ${{ needs.prep.outputs.APP_VERSION }} GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }} ANDROID: ${{ needs.android.result }} DESKTOP: ${{ needs.desktop.result }} diff --git a/.github/workflows/e2ePerformanceTests.yml b/.github/workflows/e2ePerformanceTests.yml index e57556143978..b9352d406feb 100644 --- a/.github/workflows/e2ePerformanceTests.yml +++ b/.github/workflows/e2ePerformanceTests.yml @@ -220,7 +220,7 @@ jobs: Test spec output.txt log_artifacts: debug.log cleanup: true - timeout: 5400 + timeout: 7200 - name: Print logs if run failed if: failure() diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index da7757fcbfa8..4cf5c3eb287f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -28,6 +28,11 @@ jobs: env: CI: true + - name: Run ESLint with stricter checks on changed files + run: | + # shellcheck disable=SC2046 + npx eslint --config ./.eslintrc.pr.js $(git diff --diff-filter=AM --name-only main -- "*.js" "*.ts" "*.tsx") + - name: Verify there's no Prettier diff run: | npm run prettier -- --loglevel silent diff --git a/.github/workflows/testBuild.yml b/.github/workflows/testBuild.yml index 21f7fcedfe85..f523faf785c0 100644 --- a/.github/workflows/testBuild.yml +++ b/.github/workflows/testBuild.yml @@ -10,6 +10,9 @@ on: types: [opened, synchronize, labeled] branches: ['*ci-test/**'] +env: + PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} + jobs: validateActor: runs-on: ubuntu-latest @@ -35,7 +38,6 @@ jobs: echo "The 'Ready to Build' label is not attached to the PR #${{ env.PULL_REQUEST_NUMBER }}" fi env: - PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} GITHUB_TOKEN: ${{ github.token }} getBranchRef: @@ -64,7 +66,7 @@ jobs: if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }} runs-on: ubuntu-latest-xl env: - PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} + RUBYOPT: '-rostruct' steps: - name: Checkout uses: actions/checkout@v4 @@ -111,17 +113,19 @@ jobs: - name: Configure MapBox SDK run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }} - - name: Run Fastlane beta test - id: runFastlaneBetaTest - run: bundle exec fastlane android build_internal + - name: Run AdHoc build + run: bundle exec fastlane android build_adhoc + env: + MYAPP_UPLOAD_STORE_PASSWORD: ${{ secrets.MYAPP_UPLOAD_STORE_PASSWORD }} + MYAPP_UPLOAD_KEY_PASSWORD: ${{ secrets.MYAPP_UPLOAD_KEY_PASSWORD }} + + - name: Upload AdHoc build to S3 + run: bundle exec fastlane android upload_s3 env: - RUBYOPT: '-rostruct' S3_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY_ID }} S3_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} S3_BUCKET: ad-hoc-expensify-cash S3_REGION: us-east-1 - MYAPP_UPLOAD_STORE_PASSWORD: ${{ secrets.MYAPP_UPLOAD_STORE_PASSWORD }} - MYAPP_UPLOAD_KEY_PASSWORD: ${{ secrets.MYAPP_UPLOAD_KEY_PASSWORD }} - name: Upload Artifact uses: actions/upload-artifact@v4 @@ -134,7 +138,6 @@ jobs: needs: [validateActor, getBranchRef] if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }} env: - PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} DEVELOPER_DIR: /Applications/Xcode_15.2.0.app/Contents/Developer runs-on: macos-13-xlarge steps: @@ -205,8 +208,11 @@ jobs: aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: us-east-1 - - name: Run Fastlane - run: bundle exec fastlane ios build_internal + - name: Build AdHoc app + run: bundle exec fastlane ios build_adhoc + + - name: Upload AdHoc build to S3 + run: bundle exec fastlane ios upload_s3 env: S3_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY_ID }} S3_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} @@ -223,8 +229,6 @@ jobs: name: Build and deploy Desktop for testing needs: [validateActor, getBranchRef] if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }} - env: - PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} runs-on: macos-14-large steps: - name: Checkout @@ -268,8 +272,6 @@ jobs: name: Build and deploy Web needs: [validateActor, getBranchRef] if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }} - env: - PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} runs-on: ubuntu-latest-xl steps: - name: Checkout @@ -304,8 +306,6 @@ jobs: name: Post a GitHub comment with app download links for testing needs: [validateActor, getBranchRef, android, iOS, desktop, web] if: ${{ always() }} - env: - PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} steps: - name: Checkout uses: actions/checkout@v4 diff --git a/android/app/build.gradle b/android/app/build.gradle index 4b2ade51ccfc..19c634a10df8 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -110,8 +110,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1009003016 - versionName "9.0.30-16" + versionCode 1009003507 + versionName "9.0.35-7" // Supported language variants must be declared here to avoid from being removed during the compilation. // This also helps us to not include unnecessary language variants in the APK. resConfigs "en", "es" diff --git a/assets/images/Star.svg b/assets/images/Star.svg new file mode 100644 index 000000000000..71fdfde500a0 --- /dev/null +++ b/assets/images/Star.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/assets/images/bookmark.svg b/assets/images/bookmark.svg new file mode 100644 index 000000000000..d7c1a8397b37 --- /dev/null +++ b/assets/images/bookmark.svg @@ -0,0 +1 @@ + diff --git a/assets/images/companyCards/card-amex-blue.svg b/assets/images/companyCards/card-amex-blue.svg new file mode 100644 index 000000000000..5282ca095760 --- /dev/null +++ b/assets/images/companyCards/card-amex-blue.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-amex.svg b/assets/images/companyCards/card-amex.svg new file mode 100644 index 000000000000..5282ca095760 --- /dev/null +++ b/assets/images/companyCards/card-amex.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-bank_of_america.svg b/assets/images/companyCards/card-bank_of_america.svg new file mode 100644 index 000000000000..684a6a0a28f5 --- /dev/null +++ b/assets/images/companyCards/card-bank_of_america.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-brex.svg b/assets/images/companyCards/card-brex.svg new file mode 100644 index 000000000000..068c9a054d39 --- /dev/null +++ b/assets/images/companyCards/card-brex.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-capital_one.svg b/assets/images/companyCards/card-capital_one.svg new file mode 100644 index 000000000000..0a324710ae5d --- /dev/null +++ b/assets/images/companyCards/card-capital_one.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-chase.svg b/assets/images/companyCards/card-chase.svg new file mode 100644 index 000000000000..511453169813 --- /dev/null +++ b/assets/images/companyCards/card-chase.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-citi.svg b/assets/images/companyCards/card-citi.svg new file mode 100644 index 000000000000..2d2bf71b1312 --- /dev/null +++ b/assets/images/companyCards/card-citi.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-expensify.svg b/assets/images/companyCards/card-expensify.svg new file mode 100644 index 000000000000..d6b847d8f74f --- /dev/null +++ b/assets/images/companyCards/card-expensify.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-mastercard.svg b/assets/images/companyCards/card-mastercard.svg new file mode 100644 index 000000000000..b1a698fe9acc --- /dev/null +++ b/assets/images/companyCards/card-mastercard.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-other.svg b/assets/images/companyCards/card-other.svg new file mode 100644 index 000000000000..11ff21285626 --- /dev/null +++ b/assets/images/companyCards/card-other.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-stripe.svg b/assets/images/companyCards/card-stripe.svg new file mode 100644 index 000000000000..e4c874452309 --- /dev/null +++ b/assets/images/companyCards/card-stripe.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-visa.svg b/assets/images/companyCards/card-visa.svg new file mode 100644 index 000000000000..52d0f727a960 --- /dev/null +++ b/assets/images/companyCards/card-visa.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/companyCards/card-wells_fargo.svg b/assets/images/companyCards/card-wells_fargo.svg new file mode 100644 index 000000000000..66402710de97 --- /dev/null +++ b/assets/images/companyCards/card-wells_fargo.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/expensify-card-icon.svg b/assets/images/expensify-card-icon.svg index 8e20d27af48c..8680b7a22878 100644 --- a/assets/images/expensify-card-icon.svg +++ b/assets/images/expensify-card-icon.svg @@ -1 +1,16 @@ - \ No newline at end of file + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/user-eye.svg b/assets/images/user-eye.svg new file mode 100644 index 000000000000..2265b4892ded --- /dev/null +++ b/assets/images/user-eye.svg @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/assets/images/user-plus.svg b/assets/images/user-plus.svg new file mode 100644 index 000000000000..bd49633bf738 --- /dev/null +++ b/assets/images/user-plus.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/contributingGuides/CONTRIBUTING.md b/contributingGuides/CONTRIBUTING.md index ca9ca23a8577..4f949aa6b8b4 100644 --- a/contributingGuides/CONTRIBUTING.md +++ b/contributingGuides/CONTRIBUTING.md @@ -124,7 +124,7 @@ Additionally, if you want to discuss an idea with the open source community with [gpg] program = gpg ``` -11. [Open a pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork), and make sure to fill in the required fields. +11. [Open a pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork). It is required to complete every step and check every box in the PR Author Checklist. If a box has been checked without the action being taken, it will be a violation of [Rule #2](https://github.com/Expensify/App/blob/main/CODE_OF_CONDUCT.md) and could lead to [a warning](https://github.com/Expensify/App/blob/main/CODE_OF_CONDUCT.md#compliance) being issued. 12. An Expensify engineer and a member from the Contributor-Plus team will be assigned to your pull request automatically to review. 13. Daily updates on weekdays are highly recommended. If you know you won’t be able to provide updates within 48 hours, please comment on the PR or issue stating how long you plan to be out so that we may plan accordingly. We understand everyone needs a little vacation here and there. Any issue that doesn't receive an update for 5 days (including weekend days) may be considered abandoned and the original contract terminated. diff --git a/desktop/package-lock.json b/desktop/package-lock.json index 1187b3182187..152ad1a4c5ba 100644 --- a/desktop/package-lock.json +++ b/desktop/package-lock.json @@ -9,7 +9,7 @@ "dependencies": { "electron-context-menu": "^2.3.0", "electron-log": "^4.4.8", - "electron-updater": "^6.3.3", + "electron-updater": "^6.3.4", "mime-types": "^2.1.35", "node-machine-id": "^1.1.12" }, @@ -154,9 +154,9 @@ "integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA==" }, "node_modules/electron-updater": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.3.3.tgz", - "integrity": "sha512-Kj1u6kfyxUyatnspvKa6qhGn82rMZfUD03WOvCGJ12PyRss/AC8kkYsN9IrJihKTlN8nRwTjZ1JM2UUXoD0KsA==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.3.4.tgz", + "integrity": "sha512-uZUo7p1Y53G4tl6Cgw07X1yF8Jlz6zhaL7CQJDZ1fVVkOaBfE2cWtx80avwDVi8jHp+I/FWawrMgTAeCCNIfAg==", "license": "MIT", "dependencies": { "builder-util-runtime": "9.2.5", @@ -165,7 +165,7 @@ "lazy-val": "^1.0.5", "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", - "semver": "^7.3.8", + "semver": "^7.6.3", "tiny-typed-emitter": "^2.1.0" } }, @@ -276,17 +276,6 @@ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -349,12 +338,10 @@ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -445,11 +432,6 @@ "engines": { "node": ">=8" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } }, "dependencies": { @@ -552,9 +534,9 @@ "integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA==" }, "electron-updater": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.3.3.tgz", - "integrity": "sha512-Kj1u6kfyxUyatnspvKa6qhGn82rMZfUD03WOvCGJ12PyRss/AC8kkYsN9IrJihKTlN8nRwTjZ1JM2UUXoD0KsA==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.3.4.tgz", + "integrity": "sha512-uZUo7p1Y53G4tl6Cgw07X1yF8Jlz6zhaL7CQJDZ1fVVkOaBfE2cWtx80avwDVi8jHp+I/FWawrMgTAeCCNIfAg==", "requires": { "builder-util-runtime": "9.2.5", "fs-extra": "^10.1.0", @@ -562,7 +544,7 @@ "lazy-val": "^1.0.5", "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", - "semver": "^7.3.8", + "semver": "^7.6.3", "tiny-typed-emitter": "^2.1.0" } }, @@ -650,14 +632,6 @@ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -705,12 +679,9 @@ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" }, "slice-ansi": { "version": "3.0.0", @@ -774,11 +745,6 @@ "modify-filename": "^1.1.0", "path-exists": "^4.0.0" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/desktop/package.json b/desktop/package.json index cf3c3f4354b3..6c2158a74978 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -6,7 +6,7 @@ "dependencies": { "electron-context-menu": "^2.3.0", "electron-log": "^4.4.8", - "electron-updater": "^6.3.3", + "electron-updater": "^6.3.4", "mime-types": "^2.1.35", "node-machine-id": "^1.1.12" }, diff --git a/docs/articles/new-expensify/getting-started/Upgrade-to-a-Collect-Plan.md b/docs/Hidden/Upgrade-to-a-Collect-Plan.md similarity index 100% rename from docs/articles/new-expensify/getting-started/Upgrade-to-a-Collect-Plan.md rename to docs/Hidden/Upgrade-to-a-Collect-Plan.md diff --git a/docs/articles/expensify-classic/bank-accounts-and-payments/Third-Party-Payments.md b/docs/articles/expensify-classic/bank-accounts-and-payments/Third-Party-Payments.md index cae289a0526a..7d318fd35143 100644 --- a/docs/articles/expensify-classic/bank-accounts-and-payments/Third-Party-Payments.md +++ b/docs/articles/expensify-classic/bank-accounts-and-payments/Third-Party-Payments.md @@ -1,61 +1,29 @@ --- -title: Third Party Payments -description: A help article that covers Third Party Payment options including PayPal, Venmo, Wise, and Paylocity. +title: Third-Party Payments +description: Reimburse reports and pay bills using PayPal or Venmo. --- -# Expensify Third Party Payment Options - -Expensify offers convenient third party payment options that allow you to streamline the process of reimbursing expenses and managing your finances. With these options, you can pay your expenses and get reimbursed faster and more efficiently. In this guide, we'll walk you through the steps to set up and use Expensify's third party payment options. - -# Overview - -Expensify offers integration with various third party payment providers, making it easy to reimburse employees and manage your expenses seamlessly. Some of the key benefits of using third-party payment options in Expensify include: - +Expensify integrates with PayPal and Venmo, which can be used to reimburse employees or pay bills. Some of the key benefits of using a third-party payment provider are: - Faster Reimbursements: Expedite the reimbursement process and reduce the time it takes for employees to receive their funds. - Secure Transactions: Benefit from the security features and protocols provided by trusted payment providers. - Centralized Expense Management: Consolidate all your expenses and payments within Expensify for a more efficient financial workflow. -# Setting Up Third Party Payments - -To get started with third party payments in Expensify, follow these steps: - -1. **Log in to Expensify**: Access your Expensify account using your credentials. - -2. **Navigate to Settings**: Click on the "Settings" option in the top-right corner of the Expensify dashboard. - -3. **Select Payments**: In the Settings menu, find and click on the "Payments" or "Payment Methods" section. - -4. **Choose Third Party Payment Provider**: Select your preferred third party payment provider from the available options. Expensify may support providers such as PayPal, Venmo, Wise, and Paylocity. - -5. **Link Your Account**: Follow the prompts to link your third party payment account with Expensify. You may need to enter your account details and grant necessary permissions. +# Connect a third-party payment option -6. **Verify Your Account**: Confirm your linked account to ensure it's correctly integrated with Expensify. - -# Using Third Party Payments - -Once you've set up your third party payment option, you can start using it to reimburse expenses and manage payments: - -1. **Create an Expense Report**: Begin by creating an expense report in Expensify, adding all relevant expenses. - -2. **Submit for Approval**: After reviewing and verifying the expenses, submit the report for approval within Expensify. - -3. **Approval and Reimbursement**: Once the report is approved, the approved expenses can be reimbursed directly through your chosen third party payment provider. Expensify will automatically initiate the payment process. - -4. **Track Payment Status**: You can track the status of payments and view transaction details within your Expensify account. +To connect a third-party payment platform to Expensify: +1. Log into your Expensify web account +2. Head to **Settings > Account > Payments > Alternative Payment Accounts** +3. Choose PayPal or Venmo + - **PayPal**: Enter your username in the `paypal.me/` field + - **Venmo**: Receive invoices via Venmo by adding your mobile phone number as a Secondary Login {% include faq-begin.md %} -## Q: Are there any fees associated with using third party payment options in Expensify? - -A: The fees associated with third party payments may vary depending on the payment provider you choose. Be sure to review the terms and conditions of your chosen provider for details on any applicable fees. - -## Q: Can I use multiple third party payment providers with Expensify? - -A: Expensify allows you to link multiple payment providers if needed. You can select the most suitable payment method for each expense report. +## Can I use multiple third-party payment providers with Expensify? -## Q: Is there a limit on the amount I can reimburse using third party payments? +Yes, you can link both your Venmo and PayPal accounts to Expensify if you'd like. -A: The reimbursement limit may depend on the policies and settings configured within your Expensify account and the limits imposed by your chosen payment provider. +## Is there a limit on the amount I can reimburse using third party payments? -With Expensify's third party payment options, you can simplify your expense management and reimbursement processes. By following the steps outlined in this guide, you can set up and use third party payments efficiently. +The payment limit is dependent on the settings configured within your Expensify account as well as the limits imposed by the third-party payment provider. {% include faq-end.md %} diff --git a/docs/articles/expensify-classic/bank-accounts-and-payments/payments/Get-reimbursed-faster-as-a-non-US-employee.md b/docs/articles/expensify-classic/bank-accounts-and-payments/payments/Get-reimbursed-faster-as-a-non-US-employee.md new file mode 100644 index 000000000000..30dea99bbfde --- /dev/null +++ b/docs/articles/expensify-classic/bank-accounts-and-payments/payments/Get-reimbursed-faster-as-a-non-US-employee.md @@ -0,0 +1,24 @@ +--- +title: Get Reimbursed Faster as a Non-US Employee +description: How to use Wise to get paid faster +--- + +If you are an overseas employee who works for a US-based company, you can use Wise to be reimbursed for expenses just as quickly as your US-based colleagues. Wise (formerly TransferWise) is an FCA-regulated global money transfer service. + +Here’s how it works: + +1. When you sign up for a Wise account, you are provided with a USD checking account number and a routing number to use as your Expensify bank account. +2. Once you receive a reimbursement, it will be deposited directly into your Wise account. +3. You can then convert your funds into 40+ different currencies and withdraw them to your local bank account. If you live in the UK or EU, you can also get a debit card to spend money directly from your Wise account. + +## Set up reimbursements through Wise + +1. Check with your company to see if you can submit your expenses in USD. +2. Sign up for a Wise Borderless Account and get verified (verification can take up to 3 days). +3. In Expensify, [add a deposit-only bank account](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/bank-accounts/Connect-Personal-US-Bank-Account) with your Wise USD account and ACH routing numbers (NOT the wire transfer routing number). + +{% include info.html %} +Do not include spaces in the Wise account number, which should be 16 digits. +{% include end-info.html %} + +If your expenses are not in USD, Expensify will automatically convert them to USD when they are added to your expense report. Once you submit your expenses to your company’s USD workspace and they are approved, you will receive the reimbursement for the approved report total in USD in your Wise account. diff --git a/docs/articles/expensify-classic/domains/Claim-And-Verify-A-Domain.md b/docs/articles/expensify-classic/domains/Claim-And-Verify-A-Domain.md index 509961b026e5..ed74224c622e 100644 --- a/docs/articles/expensify-classic/domains/Claim-And-Verify-A-Domain.md +++ b/docs/articles/expensify-classic/domains/Claim-And-Verify-A-Domain.md @@ -37,7 +37,7 @@ To complete this step, you must have a Control workspace, and you’ll need acce
  1. Log in to your DNS service provider (which may be the website you purchased the domain from or that currently hosts the domain, like NameCheap, GoDaddy, DNSMadeEasy, or Amazon Route53. You may need to contact your company’s IT department if your domain is managed internally).
  2. Find the page for DNS records, which might be labeled as DNS Management or Zone File Editor.
  3. -
  4. Add a new TXT record and set the value as 532F6180D8.
  5. +
  6. Add a new TXT record with the value assigned to you in the domain verification settings.
  7. Save your changes.
  8. In Expensify, click the Domain Members tab and click Verify.
@@ -48,4 +48,4 @@ After successful verification, an email will be sent to all members of the Expen To add an additional domain, you’ll have to first add your email address that is connected with your domain as your [primary or secondary email] (https://help.expensify.com/articles/expensify-classic/settings/account-settings/Change-or-add-email-address) (for example, if your domain is yourcompany.com, then you want to add and verify your email address @yourcompany.com as your primary or secondary email address). Then you can complete the steps above to add the domain. - \ No newline at end of file + diff --git a/docs/articles/expensify-classic/integrations/HR-integrations/Deel.md b/docs/articles/expensify-classic/integrations/HR-integrations/Deel.md new file mode 100644 index 000000000000..12e616d9657f --- /dev/null +++ b/docs/articles/expensify-classic/integrations/HR-integrations/Deel.md @@ -0,0 +1,35 @@ +--- +title: Deel Integration +description: Automatically sync expenses from Expensify to Deel +--- + +# Overview + +This guide is for business clients who want to set up policies and synchronize expenses from Expensify to Deel. This one-way synchronization ensures that Expensify becomes the definitive source for all employee expenses. + +If you are a contractor or employee working for a company using Expensify, please refer to: + +- [Employee Guide to Using Expensify with Deel](https://help.letsdeel.com/hc/en-gb/articles/7123572847761-Employee-s-Guide-to-Using-Expensify-With-Deel) +- [Contractor Guide to Using Expensify with Deel](https://help.letsdeel.com/hc/en-gb/articles/9640208314897-How-Contractors-Can-Use-Expensify-With-Deel) + +## Introduction: + +By integrating Expensify with Deel, you can utilize Expensify’s approval workflows to ensure timely payment through Deel for your team. + +This process involves aligning user profiles and expense policies between Expensify and Deel. Once connected, Deel will scan for approved expenses from matched users included in selected workspaces for integration, allowing Deel to import these expenses for reimbursement. + +This synchronization is one-way. Expenses and receipts logged and approved in Expensify will sync to Deel. Expenses logged in Deel will not sync to Expensify. + +*Please note,* expense syncing is not immediate. For details on how syncing operates, refer to ["How Does Expense Syncing Work?"]([https://example.com](https://help.letsdeel.com/hc/en-gb/articles/5871319525521-How-To-Set-Up-The-Expensify-Integration-On-Deel-For-EOR-Employees-And-Contractors#h_01G25AWSW0KHWBA63C1AZ6X9E9)) + +## Before you begin: + +To establish a connection, make sure you have the following: + +- Deel Organization Manager permissions +- Expensify Admin permissions for policies you wish to integrate with Deel +- A paid Expensify subscription to approve expenses and sync them to Deel + +Expensify Admin permissions can be intricate. Refer to [Expensify’s Introduction to Integration]([https://example.com](https://integrations.expensify.com/Integration-Server/doc/#introduction)) for more details. + +For further steps on integration, consult the [integration guide](https://help.letsdeel.com/hc/en-gb/articles/5871319525521-How-To-Set-Up-The-Expensify-Integration-On-Deel-For-EOR-Employees-And-Contractors). diff --git a/docs/articles/new-expensify/expenses-&-payments/Approve-and-pay-expenses.md b/docs/articles/new-expensify/expenses-&-payments/Approve-and-pay-expenses.md index 54cbcfcb52c3..26634d9a33df 100644 --- a/docs/articles/new-expensify/expenses-&-payments/Approve-and-pay-expenses.md +++ b/docs/articles/new-expensify/expenses-&-payments/Approve-and-pay-expenses.md @@ -6,8 +6,8 @@ description: Approve, hold, or pay expenses submitted to you As a workspace admin, you can set an approval workflow for the expenses submitted to you. Expenses can be, -- Instantly submitted without needing approval. -- Submitted at a desired frequency (daily, weekly, monthly) and follow an approval workflow. +- Instantly submitted without needing approval. +- Submitted at a desired frequency (daily, weekly, monthly) and follow an approval workflow. **Setting approval workflow and submission frequencies** diff --git a/docs/articles/new-expensify/expenses-&-payments/Connect-a-Personal-Bank-Account.md b/docs/articles/new-expensify/expenses-&-payments/Connect-a-Personal-Bank-Account.md new file mode 100644 index 000000000000..b8e66c937a0a --- /dev/null +++ b/docs/articles/new-expensify/expenses-&-payments/Connect-a-Personal-Bank-Account.md @@ -0,0 +1,22 @@ +--- +title: Connect a Personal Bank Account to Receive Payments +description: Receive payments and reimbursements by adding a personal bank account. +--- +Connecting a personal bank account to Expensify allows you to get reimbursed for company expenses and receive peer-to-peer payments directly into your Expensify Wallet. + +**To connect a personal bank account:** +1. Click your profile image or icon in the bottom left menu. +2. Click **Wallet**. +3. Click **Add Bank Account**. +4. Click **Continue** (this will open a new window and redirect you to Plaid). + +{% include info.html %} +Plaid is an encrypted third-party financial data platform that Expensify uses to securely verify your banking information. +{% include end-info.html %} + +5. Follow the prompts to add the bank account details with Plaid. +6. Once those details are added, you'll be prompted to return to Expensify to complete linking the bank account. +7. Choose which account you want to connect to Expensify. +8. Click **Save & continue**. + +Once connected, all payments and reimbursements will be deposited directly into that bank account. diff --git a/docs/articles/new-expensify/expenses-&-payments/Pay-an-invoice.md b/docs/articles/new-expensify/expenses-&-payments/Pay-an-invoice.md index f9491892693a..bac8c52d361e 100644 --- a/docs/articles/new-expensify/expenses-&-payments/Pay-an-invoice.md +++ b/docs/articles/new-expensify/expenses-&-payments/Pay-an-invoice.md @@ -32,6 +32,7 @@ To pay an invoice, You can also view all unpaid invoices by searching for the sender’s email or phone number on the left-hand side of the app. The invoices waiting for your payment will have a green dot. +{% include faq-begin.md %} # FAQ **Can someone else pay an invoice besides the person who received it?** @@ -53,6 +54,6 @@ You will need to work with the vendor to discuss alternative payment options. Yo You can add additional payment methods to your [Wallet](https://help.expensify.com/articles/new-expensify/expenses-&-payments/Set-up-your-wallet). Click **Account Settings** > **Wallet** > click **Add Bank Account**. You will be prompted to choose a payment method when paying future invoices. - +{% include faq-end.md %} diff --git a/docs/articles/new-expensify/expenses-&-payments/Set-up-your-wallet.md b/docs/articles/new-expensify/expenses-&-payments/Set-up-your-wallet.md index 7f7b6196707d..fbed5048e575 100644 --- a/docs/articles/new-expensify/expenses-&-payments/Set-up-your-wallet.md +++ b/docs/articles/new-expensify/expenses-&-payments/Set-up-your-wallet.md @@ -2,24 +2,21 @@ title: Set up your wallet description: Send and receive payments by adding your payment account --- -
-To send and receive money using Expensify, you’ll first need to set up your Expensify Wallet by adding your payment account. -![The Wallet Tab where you can add a personal bank account]({{site.url}}/assets/images/ExpensifyHelp_R5_Wallet_1.png){:width="100%"} +The Expensify Wallet allows you to receive peer-to-peer payments. To set this up, you’ll first need to connect a personal bank account. -{% include selector.html values="desktop, mobile" %} +![The Wallet Tab where you can add a personal bank account]({{site.url}}/assets/images/ExpensifyHelp_R5_Wallet_1.png){:width="100%"} -{% include option.html value="desktop" %} +**To enable the Expensify Wallet:** 1. Click your profile image or icon in the bottom left menu. 2. Click **Wallet** in the left menu. 3. Click **Enable wallet**. -4. If you haven’t already added your bank account, click **Continue** and follow the prompts to add your bank account details with Plaid. If you have already connected your bank account, you’ll skip to the next step. +4. If you haven’t already added your bank account, click **Continue** and follow the prompts to [connect your personal bank account](https://help.expensify.com/articles/new-expensify/expenses-&-payments/Connect-a-Personal-Bank-Account) via Plaid. If you have already connected your bank account, you’ll skip to the next step. {% include info.html %} Plaid is an encrypted third-party financial data platform that Expensify uses to securely verify your banking information. {% include end-info.html %} -{:start="5"} 5. Enter your personal details (including your name, address, date of birth, phone number, and the last 4 digits of your social security number). 6. Click **Save & continue**. 7. Review the Onfido terms and click **Accept**. @@ -27,28 +24,3 @@ Plaid is an encrypted third-party financial data platform that Expensify uses to 9. Follow the prompts on your mobile device to submit your ID with Onfido. When your ID is uploaded successfully, Onfido closes automatically. You can return to your Expensify Wallet to verify that it is now enabled. Once enabled, you are ready to send and receive payments. -{% include end-option.html %} - -{% include option.html value="mobile" %} -1. Tap your profile image or icon in the bottom menu. -2. Tap **Wallet**. -3. Tap **Enable wallet**. -4. If you haven’t already added your bank account, tap **Continue** and follow the prompts to add your bank account details with Plaid. If you have already connected your bank account, you’ll skip to the next step. - -{% include info.html %} -Plaid is an encrypted third-party financial data platform that Expensify uses to securely verify your banking information. -{% include end-info.html %} - -{:start="5"} -5. Enter your personal details (including your name, address, date of birth, phone number, and the last 4 digits of your social security number). -6. Tap **Save & continue**. -7. Review the Onfido terms and tap **Accept**. -8. Follow the prompts to submit your ID with Onfido. When your ID is uploaded successfully, Onfido closes automatically. -9. Tap **Enable wallet** again to enable payments for the wallet. - -Once enabled, you are ready to send and receive payments. -{% include end-option.html %} - -{% include end-selector.html %} - -
diff --git a/docs/redirects.csv b/docs/redirects.csv index 256e7f370575..b56f148fcd80 100644 --- a/docs/redirects.csv +++ b/docs/redirects.csv @@ -542,11 +542,11 @@ https://community.expensify.com/discussion/8118/how-to-redeem-deel-com-perk,http https://community.expensify.com/discussion/8256/how-to-redeem-25-off-slack-with-the-expensify-card,https://help.expensify.com/articles/expensify-classic/expensify-card/Expensify-Card-Perks#slack https://community.expensify.com/discussion/8737/exclusive-perks-for-expensify-card-members,https://help.expensify.com/articles/expensify-classic/expensify-card/Expensify-Card-Perks https://community.expensify.com/discussion/9040/how-to-redeem-10-off-netsuite-with-the-expensify-card,https://help.expensify.com/articles/expensify-classic/expensify-card/Expensify-Card-Perks#netsuite -https://community.expensify.com/discussion/4828/how-to-match-your-company-cards-statement-to-expensify/p1?new=1,https://help.expensify.com/articles/expensify-classic/connect-credit-cards/company-cards/Reconciliation +https://community.expensify.com/discussion/4828/how-to-match-your-company-cards-statement-to-expensify,https://help.expensify.com/articles/expensify-classic/connect-credit-cards/company-cards/Reconciliation https://community.expensify.com/discussion/5580/deep-dive-configure-advanced-settings-for-netsuite/,https://help.expensify.com/articles/expensify-classic/connections/netsuite/Configure-Netsuite#step-3-configure-advanced-settings -https://community.expensify.com/discussion/7231/how-to-export-invoices-to-netsuite/p1?new=1,https://help.expensify.com/articles/expensify-classic/connections/netsuite/Configure-Netsuite#export-invoices +https://community.expensify.com/discussion/7231/how-to-export-invoices-to-netsuite/,https://help.expensify.com/articles/expensify-classic/connections/netsuite/Configure-Netsuite#export-invoices https://community.expensify.com/discussion/9168/how-to-troubleshoot-general-errors-when-uploading-your-id-via-onfido,https://help.expensify.com/articles/new-expensify/expenses-&-payments/Resolve-Errors-Adding-a-Bank-Account -https://community.expensify.com/discussion/4707/how-to-set-up-your-mobile-app,https://use.expensify.com/expensify-mobile-app +https://community.expensify.com/discussion/4707/how-to-set-up-your-mobile-app/,https://use.expensify.com/expensify-mobile-app https://community.expensify.com/discussion/7066/introducing-concierge-travel,https://help.expensify.com/expensify-classic/hubs/travel/ https://help.expensify.com/expensify-classic/hubs/integrations/,https://help.expensify.com/expensify-classic/hubs/connections/ https://help.expensify.com/articles/expensify-classic/policy-and-domain-settings/reports/Scheduled-Submit,https://help.expensify.com/articles/expensify-classic/reports/Automatically-submit-employee-reports @@ -554,7 +554,6 @@ https://help.expensify.com/articles/expensify-classic/expensify-card/Set-Up-the- https://community.expensify.com/discussion/5542/deep-dive-what-are-ereceipts,https://help.expensify.com/articles/expensify-classic/workspaces/Expense-Settings#ereceipts https://community.expensify.com/discussion/5738/deep-dive-how-does-concierge-receipt-audit-work,https://help.expensify.com/articles/expensify-classic/workspaces/Expense-Settings#concierge-receipt-audit https://community.expensify.com/discussion/4643/how-to-invite-people-to-your-policy-using-a-join-link,https://help.expensify.com/articles/expensify-classic/workspaces/Invite-members-and-assign-roles#invite-with-a-link -https://community.expensify.com/discussion/4975/how-to-invite-users-to-your-policy-manually-or-in-bulk/p1?new=1,https://help.expensify.com/articles/expensify-classic/workspaces/Invite-members-and-assign-roles https://help.expensify.com/articles/expensify-classic/workspaces/Invoicing,https://help.expensify.com/articles/expensify-classic/workspaces/Set-Up-Invoicing https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/bank-accounts/Enable-Global-Reimbursements.md,https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/bank-accounts/Enable-Global-Reimbursements https://help.expensify.com/articles/expensify-classic/integrations/travel-integrations/Trip-Actions,https://help.expensify.com/expensify-classic/hubs/connections/ @@ -564,9 +563,13 @@ https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Reimbursing-Reports,https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/payments/Reimburse-Reports-Invoices-and-Bills https://help.expensify.com/articles/expensify-classic/connect-credit-cards/Global-Reimbursements,https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/bank-accounts/Enable-Global-Reimbursements https://community.expensify.com/discussion/4641/how-to-add-a-deposit-only-bank-account-both-personal-and-business,https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/bank-accounts/Connect-US-Business-Bank-Account -https://community.expensify.com/discussion/5940/how-to-get-reimbursed-outside-the-us-with-wise-for-non-us-employees,https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Third-Party-Payments -https://community.expensify.com/home/leaving?allowTrusted=1&target=https%3A%2F%2Fqbo.intuit.com%2Fapp%2Fvendors,https://help.expensify.com/articles/expensify-classic/connections/quickbooks-online/Quickbooks-Online-Troubleshooting -https://community.expensify.com/discussion/5654/deep-dive-using-expense-rules-to-vendor-match-when-exporting-to-an-accounting-package/p1?new=1,https://help.expensify.com/articles/expensify-classic/connections/xero/Xero-Troubleshooting -https://help.expensify.com/articles/expensify-classic/spending-insights/(https://help.expensify.com/articles/expensify-classic/spending-insights/Custom-Templates),https://help.expensify.com/articles/expensify-classic/spending-insights/Custom-Templates +https://community.expensify.com/discussion/5940/how-to-get-reimbursed-outside-the-us-with-wise-for-non-us-employees,https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/payments/Get-reimbursed-faster-as-a-non-US-employee +https://help.expensify.com/articles/expensify-classic/spending-insights,https://help.expensify.com/articles/expensify-classic/spending-insights/Custom-Templates https://help.expensify.com/articles/expensify-classic/settings/account-settings/Set-notifications,https://help.expensify.com/articles/expensify-classic/settings/account-settings/Set-Notifications +https://help.expensify.com/articles/new-expensify/getting-started/Upgrade-to-a-Collect-Plan,https://help.expensify.com/Hidden/Upgrade-to-a-Collect-Plan https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/payments/Reimburse-Reports-Invoices-and-Bills,https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/payments/Reimburse-Reports +https://help.expensify.com/articles/new-expensify/expenses-&-payments/pay-an-invoice.html,https://help.expensify.com/articles/new-expensify/expenses-&-payments/Pay-an-invoice +https://community.expensify.com/discussion/4707/how-to-set-up-your-mobile-app,https://help.expensify.com/articles/expensify-classic/getting-started/Join-your-company's-workspace#download-the-mobile-app +https://community.expensify.com//discussion/6927/deep-dive-how-can-i-estimate-the-savings-applied-to-my-bill,https://help.expensify.com/articles/expensify-classic/expensify-billing/Billing-Overview#savings-calculator +https://community.expensify.com/discussion/5179/faq-what-does-a-policy-for-which-you-are-an-admin-has-out-of-date-billing-information-mean,https://help.expensify.com/articles/expensify-classic/expensify-billing/Out-of-date-Billing +https://community.expensify.com/discussion/6179/setting-up-a-receipt-or-travel-integration-with-expensify,https://help.expensify.com/articles/expensify-classic/connections/Additional-Travel-Integrations diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 2560e48728c5..15eb36c819b5 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -15,9 +15,79 @@ require 'ostruct' skip_docs opt_out_usage +KEY_GRADLE_APK_PATH = "gradleAPKOutputPath" +KEY_GRADLE_AAB_PATH = "gradleAABOutputPath" +KEY_IPA_PATH = "ipaPath" +KEY_DSYM_PATH = "dsymPath" + +# Export environment variables in the parent shell. +# In a GitHub Actions environment, it will save the environment variables in the GITHUB_ENV file. +# In any other environment, it will save them to the current shell environment using the `export` command. +def exportEnvVars(env_vars) + github_env_path = ENV['GITHUB_ENV'] + if github_env_path && File.exist?(github_env_path) + puts "Saving environment variables in GITHUB_ENV..." + File.open(github_env_path, "a") do |file| + env_vars.each do |key, value| + puts "#{key}=#{value}" + file.puts "#{key}=#{value}" + end + end + else + puts "Saving environment variables in parent shell..." + env_vars.each do |key, value| + puts "#{key}=#{value}" + command = "export #{key}=#{value}" + system(command) + end + end +end + +def setGradleOutputsInEnv() + puts "Saving Android build outputs in env..." + env_vars = { + KEY_GRADLE_APK_PATH => lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], + } + if lane_context.key?(SharedValues::GRADLE_AAB_OUTPUT_PATH) + env_vars[KEY_GRADLE_AAB_PATH] = lane_context[SharedValues::GRADLE_AAB_OUTPUT_PATH] + end + exportEnvVars(env_vars) +end + +def setIOSBuildOutputsInEnv() + puts "Saving iOS build outputs in env..." + exportEnvVars({ + KEY_IPA_PATH => lane_context[SharedValues::IPA_OUTPUT_PATH], + KEY_DSYM_PATH => lane_context[SharedValues::DSYM_OUTPUT_PATH], + }) +end + platform :android do - desc "Generate a new local APK for e2e testing" + desc "Generate a production AAB" + lane :build do + ENV["ENVFILE"]=".env.production" + gradle( + project_dir: './android', + task: 'bundle', + flavor: 'Production', + build_type: 'Release', + ) + setGradleOutputsInEnv() + end + desc "Generate a new local APK" + lane :build_local do + ENV["ENVFILE"]=".env.production" + gradle( + project_dir: './android', + task: 'assemble', + flavor: 'Production', + build_type: 'Release', + ) + setGradleOutputsInEnv() + end + + desc "Generate a new local APK for e2e testing" lane :build_e2e do ENV["ENVFILE"]="tests/e2e/.env.e2e" ENV["ENTRY_FILE"]="src/libs/E2E/reactNativeLaunchingTest.ts" @@ -29,6 +99,7 @@ platform :android do flavor: 'e2e', build_type: 'Release', ) + setGradleOutputsInEnv() end lane :build_e2edelta do @@ -42,68 +113,50 @@ platform :android do flavor: 'e2edelta', build_type: 'Release', ) + setGradleOutputsInEnv() end - desc "Generate a new local APK" - lane :build do - ENV["ENVFILE"]=".env.production" - + desc "Build AdHoc testing build" + lane :build_adhoc do + ENV["ENVFILE"]=".env.adhoc" gradle( project_dir: './android', task: 'assemble', - flavor: 'Production', + flavor: 'Adhoc', build_type: 'Release', ) + setGradleOutputsInEnv() end - desc "Build app for testing" - lane :build_internal do - ENV["ENVFILE"]=".env.adhoc" - - gradle( - project_dir: './android', - task: 'assemble', - flavor: 'Adhoc', - build_type: 'Release', - ) - + desc "Upload build to S3" + lane :upload_s3 do + puts "APK path: #{ENV[KEY_GRADLE_APK_PATH]}" aws_s3( access_key: ENV['S3_ACCESS_KEY'], secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], bucket: ENV['S3_BUCKET'], region: ENV['S3_REGION'], - - apk: lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], + apk: ENV[KEY_GRADLE_APK_PATH], app_directory: "android/#{ENV['PULL_REQUEST_NUMBER']}", ) - sh("echo '{\"apk_path\": \"#{lane_context[SharedValues::S3_APK_OUTPUT_PATH]}\",\"html_path\": \"#{lane_context[SharedValues::S3_HTML_OUTPUT_PATH]}\"}' > ../android_paths.json") end - desc "Build and upload app to Google Play" - lane :beta do - ENV["ENVFILE"]=".env.production" + desc "Upload app to Google Play for internal testing" + lane :upload_google_play_internal do # Google is very unreliable, so we retry a few times ENV["SUPPLY_UPLOAD_MAX_RETRIES"]="5" - - gradle( - project_dir: './android', - task: 'bundle', - flavor: 'Production', - build_type: 'Release', - ) - upload_to_play_store( - package_name: "com.expensify.chat", - json_key: './android/app/android-fastlane-json-key.json', - aab: './android/app/build/outputs/bundle/productionRelease/app-production-release.aab', - track: 'internal', - rollout: '1.0' + package_name: "com.expensify.chat", + json_key: './android/app/android-fastlane-json-key.json', + aab: ENV[KEY_GRADLE_AAB_PATH], + track: 'internal', + rollout: '1.0' ) end desc "Deploy app to Google Play production" - lane :production do + lane :upload_google_play_production do # Google is very unreliable, so we retry a few times ENV["SUPPLY_UPLOAD_MAX_RETRIES"]="5" google_play_track_version_codes( @@ -111,7 +164,6 @@ platform :android do json_key: './android/app/android-fastlane-json-key.json', track: 'internal' ) - upload_to_play_store( package_name: "com.expensify.chat", json_key: './android/app/android-fastlane-json-key.json', @@ -129,118 +181,114 @@ platform :android do end end +def setupIOSSigningCertificate() + require 'securerandom' + keychain_password = SecureRandom.uuid + + create_keychain( + name: "ios-build.keychain", + password: keychain_password, + default_keychain: "true", + unlock: "true", + timeout: "3600", + add_to_search_list: "true" + ) + + import_certificate( + certificate_path: "./ios/Certificates.p12", + keychain_name: "ios-build.keychain", + keychain_password: keychain_password + ) +end + platform :ios do - desc "Generate a local iOS production build" + desc "Build an iOS production build" lane :build do ENV["ENVFILE"]=".env.production" + setupIOSSigningCertificate() + + install_provisioning_profile( + path: "./ios/NewApp_AppStore.mobileprovision" + ) + + install_provisioning_profile( + path: "./ios/NewApp_AppStore_Notification_Service.mobileprovision" + ) + + build_app( + workspace: "./ios/NewExpensify.xcworkspace", + scheme: "New Expensify", + output_name: "New Expensify.ipa", + export_options: { + provisioningProfiles: { + "com.chat.expensify.chat" => "(NewApp) AppStore", + "com.chat.expensify.chat.NotificationServiceExtension" => "(NewApp) AppStore: Notification Service", + }, + manageAppVersionAndBuildNumber: false + } + ) + + setIOSBuildOutputsInEnv() + end + + desc "Build an unsigned iOS production build" + lane :build_unsigned do + ENV["ENVFILE"]=".env.production" build_app( workspace: "./ios/NewExpensify.xcworkspace", scheme: "New Expensify" ) + setIOSBuildOutputsInEnv() end - desc "Build app for testing" - lane :build_internal do - require 'securerandom' + desc "Build AdHoc app for testing" + lane :build_adhoc do ENV["ENVFILE"]=".env.adhoc" - keychain_password = SecureRandom.uuid - - create_keychain( - name: "ios-build.keychain", - password: keychain_password, - default_keychain: "true", - unlock: "true", - timeout: "3600", - add_to_search_list: "true" - ) - - import_certificate( - certificate_path: "./ios/Certificates.p12", - keychain_name: "ios-build.keychain", - keychain_password: keychain_password - ) + setupIOSSigningCertificate() install_provisioning_profile( - path: "./ios/NewApp_AdHoc.mobileprovision" + path: "./ios/NewApp_AdHoc.mobileprovision" ) install_provisioning_profile( - path: "./ios/NewApp_AdHoc_Notification_Service.mobileprovision" + path: "./ios/NewApp_AdHoc_Notification_Service.mobileprovision" ) build_app( - workspace: "./ios/NewExpensify.xcworkspace", - skip_profile_detection: true, - scheme: "New Expensify AdHoc", - export_method: "ad-hoc", - export_options: { - method: "ad-hoc", - provisioningProfiles: { - "com.expensify.chat.adhoc" => "(NewApp) AdHoc", - "com.expensify.chat.adhoc.NotificationServiceExtension" => "(NewApp) AdHoc: Notification Service", - }, - manageAppVersionAndBuildNumber: false - } + workspace: "./ios/NewExpensify.xcworkspace", + skip_profile_detection: true, + scheme: "New Expensify AdHoc", + export_method: "ad-hoc", + export_options: { + method: "ad-hoc", + provisioningProfiles: { + "com.expensify.chat.adhoc" => "(NewApp) AdHoc", + "com.expensify.chat.adhoc.NotificationServiceExtension" => "(NewApp) AdHoc: Notification Service", + }, + manageAppVersionAndBuildNumber: false + } ) + setIOSBuildOutputsInEnv() + end + desc "Upload app to S3" + lane :upload_s3 do + puts "IPA path: #{ENV[KEY_IPA_PATH]}" aws_s3( access_key: ENV['S3_ACCESS_KEY'], secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], bucket: ENV['S3_BUCKET'], region: ENV['S3_REGION'], - - ipa: lane_context[SharedValues::IPA_OUTPUT_PATH], + ipa: ENV[KEY_IPA_PATH], app_directory: "ios/#{ENV['PULL_REQUEST_NUMBER']}", ) - sh("echo '{\"ipa_path\": \"#{lane_context[SharedValues::S3_IPA_OUTPUT_PATH]}\",\"html_path\": \"#{lane_context[SharedValues::S3_HTML_OUTPUT_PATH]}\"}' > ../ios_paths.json") end - desc "Build and upload app to TestFlight" - lane :beta do - require 'securerandom' - ENV["ENVFILE"]=".env.production" - - keychain_password = SecureRandom.uuid - - create_keychain( - name: "ios-build.keychain", - password: keychain_password, - default_keychain: "true", - unlock: "true", - timeout: "3600", - add_to_search_list: "true" - ) - - import_certificate( - certificate_path: "./ios/Certificates.p12", - keychain_name: "ios-build.keychain", - keychain_password: keychain_password - ) - - install_provisioning_profile( - path: "./ios/NewApp_AppStore.mobileprovision" - ) - - install_provisioning_profile( - path: "./ios/NewApp_AppStore_Notification_Service.mobileprovision" - ) - - build_app( - workspace: "./ios/NewExpensify.xcworkspace", - scheme: "New Expensify", - output_name: "New Expensify.ipa", - export_options: { - provisioningProfiles: { - "com.chat.expensify.chat" => "(NewApp) AppStore", - "com.chat.expensify.chat.NotificationServiceExtension" => "(NewApp) AppStore: Notification Service", - }, - manageAppVersionAndBuildNumber: false - } - ) - + desc "Upload app to TestFlight" + lane :upload_testflight do upload_to_testflight( api_key_path: "./ios/ios-fastlane-json-key.json", distribute_external: true, @@ -249,30 +297,31 @@ platform :ios do groups: ["Beta"], demo_account_required: true, beta_app_review_info: { - contact_email: ENV["APPLE_CONTACT_EMAIL"], - contact_first_name: "Andrew", - contact_last_name: "Gable", - contact_phone: ENV["APPLE_CONTACT_PHONE"], - demo_account_name: ENV["APPLE_DEMO_EMAIL"], - demo_account_password: ENV["APPLE_DEMO_PASSWORD"], - notes: "1. In the Expensify app, enter the email 'appletest.expensify@proton.me'. This will trigger a sign-in link to be sent to 'appletest.expensify@proton.me' - 2. Navigate to https://account.proton.me/login, log into Proton Mail using 'appletest.expensify@proton.me' as email and the password associated with 'appletest.expensify@proton.me', provided above - 3. Once logged into Proton Mail, navigate to your inbox and locate the email triggered in step 1. The email subject should be 'Your magic sign-in link for Expensify' - 4. Open the email and copy the 6-digit sign-in code provided within - 5. Return to the Expensify app and enter the copied 6-digit code in the designated login field" + contact_email: ENV["APPLE_CONTACT_EMAIL"], + contact_first_name: "Andrew", + contact_last_name: "Gable", + contact_phone: ENV["APPLE_CONTACT_PHONE"], + demo_account_name: ENV["APPLE_DEMO_EMAIL"], + demo_account_password: ENV["APPLE_DEMO_PASSWORD"], + notes: "1. In the Expensify app, enter the email 'appletest.expensify@proton.me'. This will trigger a sign-in link to be sent to 'appletest.expensify@proton.me' + 2. Navigate to https://account.proton.me/login, log into Proton Mail using 'appletest.expensify@proton.me' as email and the password associated with 'appletest.expensify@proton.me', provided above + 3. Once logged into Proton Mail, navigate to your inbox and locate the email triggered in step 1. The email subject should be 'Your magic sign-in link for Expensify' + 4. Open the email and copy the 6-digit sign-in code provided within + 5. Return to the Expensify app and enter the copied 6-digit code in the designated login field" } ) + puts "dsym path: #{ENV[KEY_DSYM_PATH]}" upload_symbols_to_crashlytics( app_id: "1:921154746561:ios:216bd10ccc947659027c40", - dsym_path: lane_context[SharedValues::DSYM_OUTPUT_PATH], + dsym_path: ENV[KEY_DSYM_PATH], gsp_path: "./ios/GoogleService-Info.plist", binary_path: "./ios/Pods/FirebaseCrashlytics/upload-symbols" ) end - desc "Move app to App Store Review" - lane :production do + desc "Submit app to App Store Review" + lane :submit_for_review do deliver( api_key_path: "./ios/ios-fastlane-json-key.json", @@ -309,7 +358,6 @@ platform :ios do # Precheck cannot check for in app purchases with the API key we use precheck_include_in_app_purchases: false, submission_information: { - # We currently do not use idfa: https://developer.apple.com/app-store/user-privacy-and-data-use/ add_id_info_uses_idfa: false, @@ -334,6 +382,5 @@ platform :ios do 'en-US' => "Improvements and bug fixes" } ) - end end diff --git a/ios/NewExpensify.xcodeproj/project.pbxproj b/ios/NewExpensify.xcodeproj/project.pbxproj index d81aadc40697..19e80e80c59e 100644 --- a/ios/NewExpensify.xcodeproj/project.pbxproj +++ b/ios/NewExpensify.xcodeproj/project.pbxproj @@ -41,7 +41,7 @@ D27CE6B77196EF3EF450EEAC /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0D3F9E814828D91464DF9D35 /* PrivacyInfo.xcprivacy */; }; DD79042B2792E76D004484B4 /* RCTBootSplash.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD79042A2792E76D004484B4 /* RCTBootSplash.mm */; }; DDCB2E57F334C143AC462B43 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D20D83B0E39BA6D21761E72 /* ExpoModulesProvider.swift */; }; - E51DC681C7DEE40AEBDDFBFE /* (null) in Frameworks */ = {isa = PBXBuildFile; }; + E51DC681C7DEE40AEBDDFBFE /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; E9DF872D2525201700607FDC /* AirshipConfig.plist in Resources */ = {isa = PBXBuildFile; fileRef = E9DF872C2525201700607FDC /* AirshipConfig.plist */; }; ED222ED90E074A5481A854FA /* ExpensifyNeue-BoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 8B28D84EF339436DBD42A203 /* ExpensifyNeue-BoldItalic.otf */; }; F0C450EA2705020500FD2970 /* colors.json in Resources */ = {isa = PBXBuildFile; fileRef = F0C450E92705020500FD2970 /* colors.json */; }; @@ -171,8 +171,8 @@ buildActionMask = 2147483647; files = ( 383643682B6D4AE2005BB9AE /* DeviceCheck.framework in Frameworks */, - E51DC681C7DEE40AEBDDFBFE /* (null) in Frameworks */, - E51DC681C7DEE40AEBDDFBFE /* (null) in Frameworks */, + E51DC681C7DEE40AEBDDFBFE /* BuildFile in Frameworks */, + E51DC681C7DEE40AEBDDFBFE /* BuildFile in Frameworks */, 8744C5400E24E379441C04A4 /* libPods-NewExpensify.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index 36e697bdd350..11f5430c3519 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -19,7 +19,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 9.0.30 + 9.0.35 CFBundleSignature ???? CFBundleURLTypes @@ -40,7 +40,7 @@ CFBundleVersion - 9.0.30.16 + 9.0.35.7 FullStory OrgId diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index 1c0c3bc330a0..8d3815a7990f 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -15,10 +15,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 9.0.30 + 9.0.35 CFBundleSignature ???? CFBundleVersion - 9.0.30.16 + 9.0.35.7 diff --git a/ios/NotificationServiceExtension/Info.plist b/ios/NotificationServiceExtension/Info.plist index 7e517e69ff58..f52205db454a 100644 --- a/ios/NotificationServiceExtension/Info.plist +++ b/ios/NotificationServiceExtension/Info.plist @@ -11,9 +11,9 @@ CFBundleName $(PRODUCT_NAME) CFBundleShortVersionString - 9.0.30 + 9.0.35 CFBundleVersion - 9.0.30.16 + 9.0.35.7 NSExtension NSExtensionPointIdentifier diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 79cae5374b71..3a924c6421f3 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -27,20 +27,18 @@ PODS: - AppAuth/ExternalUserAgent (1.7.5): - AppAuth/Core - boost (1.84.0) - - BVLinearGradient (2.8.1): - - React-Core - DoubleConversion (1.1.6) - - EXAV (14.0.6): + - EXAV (14.0.7): - ExpoModulesCore - ReactCommon/turbomodule/core - EXImageLoader (4.7.0): - ExpoModulesCore - React-Core - - Expo (51.0.17): + - Expo (51.0.31): - ExpoModulesCore - ExpoAsset (10.0.10): - ExpoModulesCore - - ExpoImage (1.12.12): + - ExpoImage (1.12.15): - ExpoModulesCore - libavif/libdav1d - SDWebImage (~> 5.19.1) @@ -51,7 +49,7 @@ PODS: - EXImageLoader - ExpoModulesCore - SDWebImageWebPCoder - - ExpoModulesCore (1.12.18): + - ExpoModulesCore (1.12.23): - DoubleConversion - glog - hermes-engine @@ -1776,7 +1774,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-pdf (6.7.3): + - react-native-pdf (6.7.5): - DoubleConversion - glog - hermes-engine @@ -2362,7 +2360,7 @@ PODS: - RNGoogleSignin (10.0.1): - GoogleSignIn (~> 7.0) - React-Core - - RNLiveMarkdown (0.1.120): + - RNLiveMarkdown (0.1.143): - DoubleConversion - glog - hermes-engine @@ -2382,9 +2380,9 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNLiveMarkdown/common (= 0.1.120) + - RNLiveMarkdown/common (= 0.1.143) - Yoga - - RNLiveMarkdown/common (0.1.120): + - RNLiveMarkdown/common (0.1.143): - DoubleConversion - glog - hermes-engine @@ -2407,13 +2405,13 @@ PODS: - Yoga - RNLocalize (2.2.6): - React-Core - - rnmapbox-maps (10.1.26): + - rnmapbox-maps (10.1.30): - MapboxMaps (~> 10.18.2) - React - React-Core - - rnmapbox-maps/DynamicLibrary (= 10.1.26) + - rnmapbox-maps/DynamicLibrary (= 10.1.30) - Turf - - rnmapbox-maps/DynamicLibrary (10.1.26): + - rnmapbox-maps/DynamicLibrary (10.1.30): - DoubleConversion - hermes-engine - MapboxMaps (~> 10.18.2) @@ -2453,7 +2451,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNReactNativeHapticFeedback (2.2.0): + - RNReactNativeHapticFeedback (2.3.1): - DoubleConversion - glog - hermes-engine @@ -2584,7 +2582,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNShare (10.0.2): + - RNShare (11.0.2): - DoubleConversion - glog - hermes-engine @@ -2692,7 +2690,6 @@ PODS: DEPENDENCIES: - AirshipServiceExtension - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - - BVLinearGradient (from `../node_modules/react-native-linear-gradient`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - EXAV (from `../node_modules/expo-av/ios`) - EXImageLoader (from `../node_modules/expo-image-loader/ios`) @@ -2856,8 +2853,6 @@ SPEC REPOS: EXTERNAL SOURCES: boost: :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" - BVLinearGradient: - :path: "../node_modules/react-native-linear-gradient" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" EXAV: @@ -3102,15 +3097,14 @@ SPEC CHECKSUMS: AirshipServiceExtension: 9c73369f426396d9fb9ff222d86d842fac76ba46 AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa boost: 26992d1adf73c1c7676360643e687aee6dda994b - BVLinearGradient: 421743791a59d259aec53f4c58793aad031da2ca DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - EXAV: 62e66b067185d630fe4cb4aa6eb0e48f72e67e0f + EXAV: afa491e598334bbbb92a92a2f4dd33d7149ad37f EXImageLoader: ab589d67d6c5f2c33572afea9917304418566334 - Expo: 675a5642b5860771507237259da50b921c03a9f3 + Expo: 4773e11951abd0f666f67023f0cb1d48c3e8a32b ExpoAsset: 323700f291684f110fb55f0d4022a3362ea9f875 - ExpoImage: 2ccccff1219ebc765e344f3338f2430af2df4824 + ExpoImage: f77df382153d716f332f974438a803c4527f60b0 ExpoImageManipulator: aea99205c66043a00a0af90e345395637b9902fa - ExpoModulesCore: 606b7ca7c74186324975750c8a6f97b643f54ec9 + ExpoModulesCore: 335282d855cc34fb5540e170204e729a51464bbb FBLazyVector: 38bb611218305c3bc61803e287b8a81c6f63b619 Firebase: 629510f1a9ddb235f3a7c5c8ceb23ba887f0f814 FirebaseABTesting: 10cbce8db9985ae2e3847ea44e9947dd18f94e10 @@ -3188,7 +3182,7 @@ SPEC CHECKSUMS: react-native-launch-arguments: 5f41e0abf88a15e3c5309b8875d6fd5ac43df49d react-native-netinfo: fb5112b1fa754975485884ae85a3fb6a684f49d5 react-native-pager-view: 94195f1bf32e7f78359fa20057c97e632364a08b - react-native-pdf: dd6ae39a93607a80919bef9f3499e840c693989d + react-native-pdf: 2e2591ebd39422163850403b1c0cd7d6b351e168 react-native-performance: 3c608307be10964f8a97d3af462f37125b6d8fa5 react-native-plaid-link-sdk: f91a22b45b7c3d4cd6c47273200dc57df35068b0 react-native-quick-sqlite: 7c793c9f5834e756b336257a8d8b8239b7ceb451 @@ -3235,14 +3229,14 @@ SPEC CHECKSUMS: RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: 8781e2529230a1bc3ea8d75e5c3cd071b6c6aed7 RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0 - RNLiveMarkdown: cfc927fc0b1182e364237c72692e079107c6f5f1 + RNLiveMarkdown: e44918843c2638692348f39eafc275698baf0444 RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81 - rnmapbox-maps: 5ab6bfd249cd67262615153c648f8d809aab781c + rnmapbox-maps: 460d6ff97ae49c7d5708c3212c6521697c36a0c4 RNPermissions: 0b1429b55af59d1d08b75a8be2459f65a8ac3f28 - RNReactNativeHapticFeedback: a15b431d2903bc2eb3474ff8d9a05d3e67a70199 + RNReactNativeHapticFeedback: 31833c3ef341d716dbbd9d64e940f0c230db46f6 RNReanimated: 76901886830e1032f16bbf820153f7dc3f02d51d RNScreens: de6e57426ba0e6cbc3fb5b4f496e7f08cb2773c2 - RNShare: a3c2fbbca5682530b65ff405b34c91dad1e22442 + RNShare: bd4fe9b95d1ee89a200778cc0753ebe650154bb0 RNSound: 6c156f925295bdc83e8e422e7d8b38d33bc71852 RNSVG: 1079f96b39a35753d481a20e30603fd6fc4f6fa9 SDWebImage: 066c47b573f408f18caa467d71deace7c0f8280d diff --git a/metro.config.js b/metro.config.js index 0ad3bafc011e..c6e4ba6bb4ec 100644 --- a/metro.config.js +++ b/metro.config.js @@ -1,10 +1,13 @@ -const {getDefaultConfig} = require('expo/metro-config'); +const {getDefaultConfig: getExpoDefaultConfig} = require('expo/metro-config'); +const {getDefaultConfig: getReactNativeDefaultConfig} = require('@react-native/metro-config'); + const {mergeConfig} = require('@react-native/metro-config'); const defaultAssetExts = require('metro-config/src/defaults/defaults').assetExts; const defaultSourceExts = require('metro-config/src/defaults/defaults').sourceExts; require('dotenv').config(); -const defaultConfig = getDefaultConfig(__dirname); +const defaultConfig = getReactNativeDefaultConfig(__dirname); +const expoConfig = getExpoDefaultConfig(__dirname); const isE2ETesting = process.env.E2E_TESTING === 'true'; const e2eSourceExts = ['e2e.js', 'e2e.ts', 'e2e.tsx']; @@ -23,4 +26,4 @@ const config = { }, }; -module.exports = mergeConfig(defaultConfig, config); +module.exports = mergeConfig(defaultConfig, expoConfig, config); diff --git a/package-lock.json b/package-lock.json index 9166c7e16e98..b87dfc998555 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,33 +1,27 @@ { "name": "new.expensify", - "version": "9.0.30-16", + "version": "9.0.35-7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "new.expensify", - "version": "9.0.30-16", + "version": "9.0.35-7", "hasInstallScript": true, "license": "MIT", "dependencies": { - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.120", - "@expo/metro-runtime": "~3.1.1", + "@expensify/react-native-live-markdown": "0.1.143", + "@expo/metro-runtime": "~3.2.3", "@formatjs/intl-datetimeformat": "^6.12.5", "@formatjs/intl-listformat": "^7.5.7", "@formatjs/intl-locale": "^4.0.0", "@formatjs/intl-numberformat": "^8.10.3", "@formatjs/intl-pluralrules": "^5.2.14", - "@fullstory/babel-plugin-annotate-react": "github:fullstorydev/fullstory-babel-plugin-annotate-react#ryanwang/react-native-web-demo", - "@fullstory/babel-plugin-react-native": "^1.2.1", "@fullstory/browser": "^2.0.3", "@fullstory/react-native": "^1.4.2", "@gorhom/portal": "^1.0.14", "@invertase/react-native-apple-authentication": "^2.2.2", - "@kie/act-js": "^2.6.2", - "@kie/mock-github": "2.0.1", "@onfido/react-native-sdk": "10.6.0", "@react-native-camera-roll/camera-roll": "7.4.0", "@react-native-clipboard/clipboard": "^1.13.2", @@ -43,9 +37,8 @@ "@react-navigation/native": "6.1.12", "@react-navigation/stack": "6.3.29", "@react-ng/bounds-observer": "^0.2.1", - "@rnmapbox/maps": "10.1.26", + "@rnmapbox/maps": "10.1.30", "@shopify/flash-list": "1.7.1", - "@types/mime-db": "^1.43.5", "@ua/react-native-airship": "19.2.1", "@vue/preload-webpack-plugin": "^2.0.0", "awesome-phonenumber": "^5.4.0", @@ -56,16 +49,16 @@ "date-fns-tz": "^2.0.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "2.0.83", - "expo": "51.0.17", - "expo-av": "14.0.6", - "expo-image": "1.12.12", + "expensify-common": "2.0.84", + "expo": "51.0.31", + "expo-av": "14.0.7", + "expo-image": "1.12.15", "expo-image-manipulator": "12.0.5", "fast-equals": "^4.0.3", "focus-trap-react": "^10.2.3", "htmlparser2": "^7.2.0", "idb-keyval": "^6.2.1", - "jest-expo": "51.0.3", + "jest-expo": "51.0.4", "jest-when": "^3.5.2", "lodash": "4.17.21", "lottie-react-native": "6.5.1", @@ -94,18 +87,17 @@ "react-native-fs": "^2.20.0", "react-native-gesture-handler": "2.18.0", "react-native-google-places-autocomplete": "2.5.6", - "react-native-haptic-feedback": "^2.2.0", + "react-native-haptic-feedback": "^2.3.1", "react-native-image-picker": "^7.0.3", "react-native-image-size": "git+https://github.com/Expensify/react-native-image-size#cb392140db4953a283590d7cf93b4d0461baa2a9", "react-native-key-command": "^1.0.8", "react-native-keyboard-controller": "^1.13.4", "react-native-launch-arguments": "^4.0.2", - "react-native-linear-gradient": "^2.8.1", "react-native-localize": "^2.2.6", "react-native-modal": "^13.0.0", "react-native-onyx": "2.0.66", "react-native-pager-view": "6.4.1", - "react-native-pdf": "6.7.3", + "react-native-pdf": "6.7.5", "react-native-performance": "^5.1.0", "react-native-permissions": "^3.10.0", "react-native-picker-select": "git+https://github.com/Expensify/react-native-picker-select.git#da50d2c5c54e268499047f9cc98b8df4196c1ddf", @@ -117,7 +109,7 @@ "react-native-render-html": "6.3.1", "react-native-safe-area-context": "4.10.9", "react-native-screens": "3.34.0", - "react-native-share": "^10.0.2", + "react-native-share": "11.0.2", "react-native-sound": "^0.11.2", "react-native-svg": "15.6.0", "react-native-tab-view": "^3.5.2", @@ -125,14 +117,12 @@ "react-native-view-shot": "3.8.0", "react-native-vision-camera": "4.0.0-beta.13", "react-native-web": "^0.19.12", - "react-native-web-linear-gradient": "^1.1.2", "react-native-web-sound": "^0.1.3", "react-native-webview": "13.8.6", "react-pdf": "^7.7.3", "react-plaid-link": "3.3.2", "react-web-config": "^1.0.0", "react-webcam": "^7.1.1", - "react-window": "^1.8.9", "semver": "^7.5.2", "xlsx": "file:vendor/xlsx-0.20.3.tgz" }, @@ -143,6 +133,8 @@ "@babel/parser": "^7.22.16", "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/preset-env": "^7.20.0", "@babel/preset-flow": "^7.12.13", "@babel/preset-react": "^7.10.4", @@ -153,6 +145,7 @@ "@callstack/reassure-compare": "^1.0.0-rc.4", "@dword-design/eslint-plugin-import-alias": "^5.0.0", "@electron/notarize": "^2.1.0", + "@fullstory/babel-plugin-annotate-react": "^2.3.0", "@jest/globals": "^29.5.0", "@ngneat/falso": "^7.1.1", "@octokit/core": "4.0.4", @@ -169,7 +162,7 @@ "@storybook/addon-a11y": "^8.1.10", "@storybook/addon-essentials": "^8.1.10", "@storybook/addon-webpack5-compiler-babel": "^3.0.3", - "@storybook/cli": "^8.1.10", + "@storybook/cli": "^8.3.0", "@storybook/react": "^8.1.10", "@storybook/react-webpack5": "^8.1.6", "@storybook/theming": "^8.1.10", @@ -185,6 +178,7 @@ "@types/js-yaml": "^4.0.5", "@types/lodash": "^4.14.195", "@types/mapbox-gl": "^2.7.13", + "@types/mime-db": "^1.43.5", "@types/node": "^20.11.5", "@types/pusher-js": "^5.1.0", "@types/react": "^18.2.6", @@ -223,6 +217,7 @@ "eslint-config-airbnb-typescript": "^18.0.0", "eslint-config-expensify": "^2.0.58", "eslint-config-prettier": "^9.1.0", + "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-jest": "^28.6.0", "eslint-plugin-jsdoc": "^46.2.6", "eslint-plugin-react-compiler": "0.0.0-experimental-9ed098e-20240725", @@ -232,7 +227,6 @@ "eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0", "html-webpack-plugin": "^5.5.0", "http-server": "^14.1.1", - "husky": "^9.1.5", "jest": "29.4.1", "jest-circus": "29.4.1", "jest-cli": "29.4.1", @@ -255,7 +249,7 @@ "setimmediate": "^1.0.5", "shellcheck": "^1.1.0", "source-map": "^0.7.4", - "storybook": "^8.1.10", + "storybook": "^8.3.0", "style-loader": "^2.0.0", "time-analytics-webpack-plugin": "^0.1.17", "ts-jest": "^29.1.2", @@ -268,8 +262,7 @@ "webpack-bundle-analyzer": "^4.5.0", "webpack-cli": "^5.0.4", "webpack-dev-server": "^5.0.4", - "webpack-merge": "^5.8.0", - "yaml": "^2.2.1" + "webpack-merge": "^5.8.0" }, "engines": { "node": "20.15.1", @@ -398,17 +391,6 @@ "node": ">=6.0.0" } }, - "node_modules/@aw-web-design/x-default-browser": { - "version": "1.4.126", - "dev": true, - "license": "MIT", - "dependencies": { - "default-browser-id": "3.0.0" - }, - "bin": { - "x-default-browser": "bin/x-default-browser.js" - } - }, "node_modules/@azure/abort-controller": { "version": "2.1.2", "license": "MIT", @@ -1224,7 +1206,8 @@ }, "node_modules/@babel/plugin-proposal-decorators": { "version": "7.24.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7", @@ -1268,7 +1251,9 @@ }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { "version": "7.20.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "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.", "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1356,7 +1341,10 @@ }, "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.18.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1370,7 +1358,10 @@ }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.11", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.21.0", @@ -1429,7 +1420,8 @@ }, "node_modules/@babel/plugin-syntax-decorators": { "version": "7.24.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.24.7" }, @@ -2980,15 +2972,6 @@ "react": ">=18.0.0" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "devOptional": true, @@ -3586,9 +3569,9 @@ } }, "node_modules/@expensify/react-native-live-markdown": { - "version": "0.1.120", - "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.120.tgz", - "integrity": "sha512-MQ8/gPb2u8U1HPClwKhrf2sqjCpi56g5aEhonYOejMPd7kUKpV0nlccSJgy5UEwJFhtxL+cl7SgnXq8xJNwxng==", + "version": "0.1.143", + "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.143.tgz", + "integrity": "sha512-hZXYjKyTl/b2p7Ig9qhoB7cfVtTTcoE2cWvea8NJT3f5ZYckdyHDAgHI4pg0S0N68jP205Sk5pzqlltZUpZk5w==", "workspaces": [ "parser", "example", @@ -3603,40 +3586,38 @@ } }, "node_modules/@expo/bunyan": { - "version": "4.0.0", - "engines": [ - "node >=0.10.0" - ], - "license": "MIT", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.1.tgz", + "integrity": "sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==", "dependencies": { "uuid": "^8.0.0" }, - "optionalDependencies": { - "mv": "~2", - "safe-json-stringify": "~1" + "engines": { + "node": ">=0.10.0" } }, "node_modules/@expo/cli": { - "version": "0.18.21", - "license": "MIT", + "version": "0.18.29", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.29.tgz", + "integrity": "sha512-X810C48Ss+67RdZU39YEO1khNYo1RmjouRV+vVe0QhMoTe8R6OA3t+XYEdwaNbJ5p/DJN7szfHfNmX2glpC7xg==", "dependencies": { "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "0.0.5", "@expo/config": "~9.0.0-beta.0", - "@expo/config-plugins": "~8.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", "@expo/devcert": "^1.0.0", "@expo/env": "~0.3.0", "@expo/image-utils": "^0.5.0", "@expo/json-file": "^8.3.0", - "@expo/metro-config": "~0.18.6", + "@expo/metro-config": "0.18.11", "@expo/osascript": "^2.0.31", "@expo/package-manager": "^1.5.0", "@expo/plist": "^0.1.0", - "@expo/prebuild-config": "7.0.6", + "@expo/prebuild-config": "7.0.8", "@expo/rudder-sdk-node": "1.1.1", "@expo/spawn-async": "^1.7.2", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.74.84", + "@react-native/dev-middleware": "0.74.85", "@urql/core": "2.3.6", "@urql/exchange-retry": "0.3.0", "accepts": "^1.3.8", @@ -3704,14 +3685,16 @@ }, "node_modules/@expo/cli/node_modules/@babel/code-frame": { "version": "7.10.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@expo/cli/node_modules/@expo/config-plugins": { - "version": "8.0.6", - "license": "MIT", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.8.tgz", + "integrity": "sha512-Fvu6IO13EUw0R9WeqxUO37FkM62YJBNcZb9DyJAOgMz7Ez/vaKQGEjKt9cwT+Q6uirtCATMgaq6VWAW7YW8xXw==", "dependencies": { "@expo/config-types": "^51.0.0-unreleased", "@expo/json-file": "~8.3.0", @@ -3732,7 +3715,9 @@ }, "node_modules/@expo/cli/node_modules/@expo/config-plugins/node_modules/glob": { "version": "7.1.6", - "license": "ISC", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3750,11 +3735,13 @@ }, "node_modules/@expo/cli/node_modules/@expo/config-types": { "version": "51.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.2.tgz", + "integrity": "sha512-IglkIoiDwJMY01lYkF/ZSBoe/5cR+O3+Gx6fpLFjLfgZGBTdyPkKa1g8NWoWQCk+D3cKL2MDbszT2DyRRB0YqQ==" }, "node_modules/@expo/cli/node_modules/@expo/json-file": { "version": "8.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.2", @@ -3763,7 +3750,8 @@ }, "node_modules/@expo/cli/node_modules/@expo/plist": { "version": "0.1.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", "dependencies": { "@xmldom/xmldom": "~0.7.7", "base64-js": "^1.2.3", @@ -3772,7 +3760,8 @@ }, "node_modules/@expo/cli/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -3785,18 +3774,21 @@ }, "node_modules/@expo/cli/node_modules/arg": { "version": "5.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/@expo/cli/node_modules/bplist-creator": { "version": "0.0.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", + "integrity": "sha512-xp/tcaV3T5PCiaY04mXga7o/TE+t95gqeLmADeBI1CvZtdWTbgBt3uLpvh4UWtenKeBhCV6oVxGk38yZr2uYEA==", "dependencies": { "stream-buffers": "~2.2.0" } }, "node_modules/@expo/cli/node_modules/bplist-parser": { "version": "0.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", "dependencies": { "big-integer": "1.6.x" }, @@ -3806,7 +3798,8 @@ }, "node_modules/@expo/cli/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3820,7 +3813,8 @@ }, "node_modules/@expo/cli/node_modules/cli-cursor": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dependencies": { "restore-cursor": "^2.0.0" }, @@ -3830,7 +3824,8 @@ }, "node_modules/@expo/cli/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -3840,18 +3835,21 @@ }, "node_modules/@expo/cli/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@expo/cli/node_modules/escape-string-regexp": { "version": "1.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } }, "node_modules/@expo/cli/node_modules/fs-extra": { "version": "8.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -3863,7 +3861,9 @@ }, "node_modules/@expo/cli/node_modules/glob": { "version": "7.2.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3881,21 +3881,24 @@ }, "node_modules/@expo/cli/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@expo/cli/node_modules/jsonfile": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/@expo/cli/node_modules/log-symbols": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dependencies": { "chalk": "^2.0.1" }, @@ -3905,7 +3908,8 @@ }, "node_modules/@expo/cli/node_modules/log-symbols/node_modules/ansi-styles": { "version": "3.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { "color-convert": "^1.9.0" }, @@ -3915,7 +3919,8 @@ }, "node_modules/@expo/cli/node_modules/log-symbols/node_modules/chalk": { "version": "2.4.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3927,25 +3932,29 @@ }, "node_modules/@expo/cli/node_modules/log-symbols/node_modules/color-convert": { "version": "1.9.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@expo/cli/node_modules/log-symbols/node_modules/color-name": { "version": "1.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@expo/cli/node_modules/log-symbols/node_modules/has-flag": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, "node_modules/@expo/cli/node_modules/log-symbols/node_modules/supports-color": { "version": "5.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" }, @@ -3955,14 +3964,16 @@ }, "node_modules/@expo/cli/node_modules/mimic-fn": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "engines": { "node": ">=4" } }, "node_modules/@expo/cli/node_modules/onetime": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -3972,7 +3983,8 @@ }, "node_modules/@expo/cli/node_modules/ora": { "version": "3.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", @@ -3987,7 +3999,8 @@ }, "node_modules/@expo/cli/node_modules/ora/node_modules/ansi-styles": { "version": "3.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { "color-convert": "^1.9.0" }, @@ -3997,7 +4010,8 @@ }, "node_modules/@expo/cli/node_modules/ora/node_modules/chalk": { "version": "2.4.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -4009,25 +4023,29 @@ }, "node_modules/@expo/cli/node_modules/ora/node_modules/color-convert": { "version": "1.9.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@expo/cli/node_modules/ora/node_modules/color-name": { "version": "1.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@expo/cli/node_modules/ora/node_modules/has-flag": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, "node_modules/@expo/cli/node_modules/ora/node_modules/supports-color": { "version": "5.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" }, @@ -4037,7 +4055,8 @@ }, "node_modules/@expo/cli/node_modules/picomatch": { "version": "3.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", "engines": { "node": ">=10" }, @@ -4047,7 +4066,8 @@ }, "node_modules/@expo/cli/node_modules/restore-cursor": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -4058,7 +4078,8 @@ }, "node_modules/@expo/cli/node_modules/strip-ansi": { "version": "5.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -4068,7 +4089,8 @@ }, "node_modules/@expo/cli/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -4078,25 +4100,28 @@ }, "node_modules/@expo/cli/node_modules/universalify": { "version": "0.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "engines": { "node": ">= 4.0.0" } }, "node_modules/@expo/code-signing-certificates": { "version": "0.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", + "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==", "dependencies": { "node-forge": "^1.2.1", "nullthrows": "^1.1.1" } }, "node_modules/@expo/config": { - "version": "9.0.1", - "license": "MIT", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.3.tgz", + "integrity": "sha512-eOTNM8eOC8gZNHgenySRlc/lwmYY1NOgvjwA8LHuvPT7/eUwD93zrxu3lPD1Cc/P6C/2BcVdfH4hf0tLmDxnsg==", "dependencies": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~8.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", "@expo/config-types": "^51.0.0-unreleased", "@expo/json-file": "^8.3.0", "getenv": "^1.0.0", @@ -4211,14 +4236,16 @@ }, "node_modules/@expo/config/node_modules/@babel/code-frame": { "version": "7.10.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@expo/config/node_modules/@expo/config-plugins": { - "version": "8.0.0", - "license": "MIT", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.8.tgz", + "integrity": "sha512-Fvu6IO13EUw0R9WeqxUO37FkM62YJBNcZb9DyJAOgMz7Ez/vaKQGEjKt9cwT+Q6uirtCATMgaq6VWAW7YW8xXw==", "dependencies": { "@expo/config-types": "^51.0.0-unreleased", "@expo/json-file": "~8.3.0", @@ -4238,12 +4265,14 @@ } }, "node_modules/@expo/config/node_modules/@expo/config-types": { - "version": "51.0.0", - "license": "MIT" + "version": "51.0.2", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.2.tgz", + "integrity": "sha512-IglkIoiDwJMY01lYkF/ZSBoe/5cR+O3+Gx6fpLFjLfgZGBTdyPkKa1g8NWoWQCk+D3cKL2MDbszT2DyRRB0YqQ==" }, "node_modules/@expo/config/node_modules/@expo/json-file": { - "version": "8.3.1", - "license": "MIT", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.2", @@ -4251,8 +4280,9 @@ } }, "node_modules/@expo/config/node_modules/@expo/plist": { - "version": "0.1.1", - "license": "MIT", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", "dependencies": { "@xmldom/xmldom": "~0.7.7", "base64-js": "^1.2.3", @@ -4261,7 +4291,8 @@ }, "node_modules/@expo/config/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -4274,7 +4305,8 @@ }, "node_modules/@expo/config/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4288,7 +4320,8 @@ }, "node_modules/@expo/config/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -4298,18 +4331,21 @@ }, "node_modules/@expo/config/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@expo/config/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@expo/config/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -4318,58 +4354,115 @@ } }, "node_modules/@expo/devcert": { - "version": "1.1.2", - "license": "MIT", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.4.tgz", + "integrity": "sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==", "dependencies": { "application-config-path": "^0.1.0", "command-exists": "^1.2.4", "debug": "^3.1.0", "eol": "^0.9.1", "get-port": "^3.2.0", - "glob": "^7.1.2", + "glob": "^10.4.2", "lodash": "^4.17.21", "mkdirp": "^0.5.1", "password-prompt": "^1.0.4", - "rimraf": "^2.6.2", "sudo-prompt": "^8.2.0", "tmp": "^0.0.33", "tslib": "^2.4.0" } }, + "node_modules/@expo/devcert/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@expo/devcert/node_modules/debug": { "version": "3.2.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dependencies": { "ms": "^2.1.1" } }, - "node_modules/@expo/devcert/node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", + "node_modules/@expo/devcert/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { - "minimist": "^1.2.6" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { - "mkdirp": "bin/cmd.js" + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@expo/devcert/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", + "node_modules/@expo/devcert/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dependencies": { - "glob": "^7.1.3" + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/@expo/devcert/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@expo/devcert/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@expo/devcert/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" }, "bin": { - "rimraf": "bin.js" + "mkdirp": "bin/cmd.js" } }, "node_modules/@expo/devcert/node_modules/sudo-prompt": { "version": "8.2.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" }, "node_modules/@expo/devcert/node_modules/tmp": { "version": "0.0.33", - "license": "MIT", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -4448,7 +4541,8 @@ }, "node_modules/@expo/image-utils": { "version": "0.5.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.5.1.tgz", + "integrity": "sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A==", "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", @@ -4464,7 +4558,8 @@ }, "node_modules/@expo/image-utils/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -4477,7 +4572,8 @@ }, "node_modules/@expo/image-utils/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4491,7 +4587,8 @@ }, "node_modules/@expo/image-utils/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -4501,18 +4598,21 @@ }, "node_modules/@expo/image-utils/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@expo/image-utils/node_modules/crypto-random-string": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", "engines": { "node": ">=4" } }, "node_modules/@expo/image-utils/node_modules/fs-extra": { "version": "9.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -4525,14 +4625,16 @@ }, "node_modules/@expo/image-utils/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@expo/image-utils/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -4542,14 +4644,16 @@ }, "node_modules/@expo/image-utils/node_modules/temp-dir": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", "engines": { "node": ">=4" } }, "node_modules/@expo/image-utils/node_modules/tempy": { "version": "0.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", "dependencies": { "temp-dir": "^1.0.0", "type-fest": "^0.3.1", @@ -4561,14 +4665,16 @@ }, "node_modules/@expo/image-utils/node_modules/type-fest": { "version": "0.3.1", - "license": "(MIT OR CC0-1.0)", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", "engines": { "node": ">=6" } }, "node_modules/@expo/image-utils/node_modules/unique-string": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", "dependencies": { "crypto-random-string": "^1.0.0" }, @@ -4578,7 +4684,8 @@ }, "node_modules/@expo/image-utils/node_modules/universalify": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "engines": { "node": ">= 10.0.0" } @@ -4610,8 +4717,9 @@ } }, "node_modules/@expo/metro-config": { - "version": "0.18.8", - "license": "MIT", + "version": "0.18.11", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz", + "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==", "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", @@ -4635,14 +4743,16 @@ }, "node_modules/@expo/metro-config/node_modules/@babel/code-frame": { "version": "7.10.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@expo/metro-config/node_modules/@expo/json-file": { "version": "8.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.2", @@ -4651,7 +4761,8 @@ }, "node_modules/@expo/metro-config/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -4664,7 +4775,8 @@ }, "node_modules/@expo/metro-config/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4678,7 +4790,8 @@ }, "node_modules/@expo/metro-config/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -4688,11 +4801,14 @@ }, "node_modules/@expo/metro-config/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@expo/metro-config/node_modules/glob": { "version": "7.2.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4710,14 +4826,16 @@ }, "node_modules/@expo/metro-config/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@expo/metro-config/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -4726,15 +4844,17 @@ } }, "node_modules/@expo/metro-runtime": { - "version": "3.1.2", - "license": "MIT", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.3.tgz", + "integrity": "sha512-v5ji+fAGi7B9YavrxvekuF8gXEV/5fz0+PhaED5AaFDnbGB4IJIbpaiqK9nqZV1axjGZNQSw6Q8TsnFetCR3bQ==", "peerDependencies": { "react-native": "*" } }, "node_modules/@expo/osascript": { "version": "2.1.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.3.tgz", + "integrity": "sha512-aOEkhPzDsaAfolSswObGiYW0Pf0ROfR9J2NBRLQACdQ6uJlyAMiPF45DVEVknAU9juKh0y8ZyvC9LXqLEJYohA==", "dependencies": { "@expo/spawn-async": "^1.7.2", "exec-async": "^2.2.0" @@ -4745,7 +4865,8 @@ }, "node_modules/@expo/package-manager": { "version": "1.5.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.5.2.tgz", + "integrity": "sha512-IuA9XtGBilce0q8cyxtWINqbzMB1Fia0Yrug/O53HNuRSwQguV/iqjV68bsa4z8mYerePhcFgtvISWLAlNEbUA==", "dependencies": { "@expo/json-file": "^8.3.0", "@expo/spawn-async": "^1.7.2", @@ -4763,14 +4884,16 @@ }, "node_modules/@expo/package-manager/node_modules/@babel/code-frame": { "version": "7.10.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@expo/package-manager/node_modules/@expo/json-file": { "version": "8.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.2", @@ -4779,14 +4902,16 @@ }, "node_modules/@expo/package-manager/node_modules/ansi-regex": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/@expo/package-manager/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -4799,7 +4924,8 @@ }, "node_modules/@expo/package-manager/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4813,7 +4939,8 @@ }, "node_modules/@expo/package-manager/node_modules/cli-cursor": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dependencies": { "restore-cursor": "^2.0.0" }, @@ -4823,7 +4950,8 @@ }, "node_modules/@expo/package-manager/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -4833,25 +4961,29 @@ }, "node_modules/@expo/package-manager/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@expo/package-manager/node_modules/escape-string-regexp": { "version": "1.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } }, "node_modules/@expo/package-manager/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@expo/package-manager/node_modules/log-symbols": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dependencies": { "chalk": "^2.0.1" }, @@ -4861,7 +4993,8 @@ }, "node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/ansi-styles": { "version": "3.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { "color-convert": "^1.9.0" }, @@ -4871,7 +5004,8 @@ }, "node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/chalk": { "version": "2.4.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -4883,25 +5017,29 @@ }, "node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/color-convert": { "version": "1.9.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/color-name": { "version": "1.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/has-flag": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, "node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/supports-color": { "version": "5.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" }, @@ -4911,14 +5049,16 @@ }, "node_modules/@expo/package-manager/node_modules/mimic-fn": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "engines": { "node": ">=4" } }, "node_modules/@expo/package-manager/node_modules/onetime": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -4928,7 +5068,8 @@ }, "node_modules/@expo/package-manager/node_modules/ora": { "version": "3.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", @@ -4943,7 +5084,8 @@ }, "node_modules/@expo/package-manager/node_modules/ora/node_modules/ansi-styles": { "version": "3.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { "color-convert": "^1.9.0" }, @@ -4953,7 +5095,8 @@ }, "node_modules/@expo/package-manager/node_modules/ora/node_modules/chalk": { "version": "2.4.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -4965,25 +5108,29 @@ }, "node_modules/@expo/package-manager/node_modules/ora/node_modules/color-convert": { "version": "1.9.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@expo/package-manager/node_modules/ora/node_modules/color-name": { "version": "1.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@expo/package-manager/node_modules/ora/node_modules/has-flag": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, "node_modules/@expo/package-manager/node_modules/ora/node_modules/supports-color": { "version": "5.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" }, @@ -4993,7 +5140,8 @@ }, "node_modules/@expo/package-manager/node_modules/restore-cursor": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -5004,7 +5152,8 @@ }, "node_modules/@expo/package-manager/node_modules/strip-ansi": { "version": "5.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -5014,18 +5163,21 @@ }, "node_modules/@expo/package-manager/node_modules/strip-ansi/node_modules/ansi-regex": { "version": "4.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "engines": { "node": ">=6" } }, "node_modules/@expo/package-manager/node_modules/sudo-prompt": { "version": "9.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", + "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==" }, "node_modules/@expo/package-manager/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -5043,15 +5195,16 @@ } }, "node_modules/@expo/prebuild-config": { - "version": "7.0.6", - "license": "MIT", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.8.tgz", + "integrity": "sha512-wH9NVg6HiwF5y9x0TxiMEeBF+ITPGDXy5/i6OUheSrKpPgb0lF1Mwzl/f2fLPXBEpl+ZXOQ8LlLW32b7K9lrNg==", "dependencies": { "@expo/config": "~9.0.0-beta.0", - "@expo/config-plugins": "~8.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", "@expo/config-types": "^51.0.0-unreleased", "@expo/image-utils": "^0.5.0", "@expo/json-file": "^8.3.0", - "@react-native/normalize-colors": "0.74.84", + "@react-native/normalize-colors": "0.74.85", "debug": "^4.3.1", "fs-extra": "^9.0.0", "resolve-from": "^5.0.0", @@ -5064,14 +5217,16 @@ }, "node_modules/@expo/prebuild-config/node_modules/@babel/code-frame": { "version": "7.10.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@expo/prebuild-config/node_modules/@expo/config-plugins": { - "version": "8.0.6", - "license": "MIT", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.8.tgz", + "integrity": "sha512-Fvu6IO13EUw0R9WeqxUO37FkM62YJBNcZb9DyJAOgMz7Ez/vaKQGEjKt9cwT+Q6uirtCATMgaq6VWAW7YW8xXw==", "dependencies": { "@expo/config-types": "^51.0.0-unreleased", "@expo/json-file": "~8.3.0", @@ -5092,11 +5247,13 @@ }, "node_modules/@expo/prebuild-config/node_modules/@expo/config-types": { "version": "51.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.2.tgz", + "integrity": "sha512-IglkIoiDwJMY01lYkF/ZSBoe/5cR+O3+Gx6fpLFjLfgZGBTdyPkKa1g8NWoWQCk+D3cKL2MDbszT2DyRRB0YqQ==" }, "node_modules/@expo/prebuild-config/node_modules/@expo/json-file": { "version": "8.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.2", @@ -5105,7 +5262,8 @@ }, "node_modules/@expo/prebuild-config/node_modules/@expo/plist": { "version": "0.1.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", "dependencies": { "@xmldom/xmldom": "~0.7.7", "base64-js": "^1.2.3", @@ -5114,7 +5272,8 @@ }, "node_modules/@expo/prebuild-config/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -5127,7 +5286,8 @@ }, "node_modules/@expo/prebuild-config/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5141,7 +5301,8 @@ }, "node_modules/@expo/prebuild-config/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -5151,18 +5312,21 @@ }, "node_modules/@expo/prebuild-config/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@expo/prebuild-config/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@expo/prebuild-config/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -5172,7 +5336,8 @@ }, "node_modules/@expo/rudder-sdk-node": { "version": "1.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", + "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", "dependencies": { "@expo/bunyan": "^4.0.0", "@segment/loosely-validate-event": "^2.0.0", @@ -5188,7 +5353,8 @@ }, "node_modules/@expo/rudder-sdk-node/node_modules/fetch-retry": { "version": "4.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", + "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==" }, "node_modules/@expo/sdk-runtime-versions": { "version": "1.0.0", @@ -5196,7 +5362,8 @@ }, "node_modules/@expo/spawn-async": { "version": "1.7.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", + "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", "dependencies": { "cross-spawn": "^7.0.3" }, @@ -5210,7 +5377,8 @@ }, "node_modules/@expo/xcpretty": { "version": "4.3.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz", + "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==", "dependencies": { "@babel/code-frame": "7.10.4", "chalk": "^4.1.0", @@ -5223,14 +5391,16 @@ }, "node_modules/@expo/xcpretty/node_modules/@babel/code-frame": { "version": "7.10.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/@expo/xcpretty/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -5243,11 +5413,13 @@ }, "node_modules/@expo/xcpretty/node_modules/argparse": { "version": "2.0.1", - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/@expo/xcpretty/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5261,7 +5433,8 @@ }, "node_modules/@expo/xcpretty/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -5271,18 +5444,21 @@ }, "node_modules/@expo/xcpretty/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@expo/xcpretty/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/@expo/xcpretty/node_modules/js-yaml": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { "argparse": "^2.0.1" }, @@ -5292,7 +5468,8 @@ }, "node_modules/@expo/xcpretty/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -5300,11 +5477,6 @@ "node": ">=8" } }, - "node_modules/@fal-works/esbuild-plugin-global-externals": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, "node_modules/@formatjs/ecma402-abstract": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", @@ -5391,11 +5563,13 @@ }, "node_modules/@fullstory/babel-plugin-annotate-react": { "version": "2.3.0", - "resolved": "git+ssh://git@github.com/fullstorydev/fullstory-babel-plugin-annotate-react.git#25c26dadb644d5355e381a4ea4ca1cd05af4a8f6" + "resolved": "https://registry.npmjs.org/@fullstory/babel-plugin-annotate-react/-/babel-plugin-annotate-react-2.3.0.tgz", + "integrity": "sha512-gYLUL6Tu0exbvTIhK9nSCaztmqBlQAm07Fvtl/nKTc+lxwFkcX9vR8RrdTbyjJZKbPaA5EMlExQ6GeLCXkfm5g==" }, "node_modules/@fullstory/babel-plugin-react-native": { - "version": "1.2.1", - "license": "MIT", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@fullstory/babel-plugin-react-native/-/babel-plugin-react-native-1.3.0.tgz", + "integrity": "sha512-JSWV/fn5sEAUHhXD8CvyVTHAtttNjokLHguZ7pxh2EbG1TOg5yBCvXnF+yQ6heS5PKJen7TMS2mdBaXtnYEPIQ==", "dependencies": { "@babel/parser": "^7.0.0", "@babel/types": "^7.0.0" @@ -5448,7 +5622,8 @@ }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "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" } @@ -6341,59 +6516,9 @@ "react-native": "*" } }, - "node_modules/@kie/act-js": { - "version": "2.6.2", - "hasInstallScript": true, - "license": "SEE LICENSE IN LICENSE", - "dependencies": { - "@kie/mock-github": "^2.0.0", - "adm-zip": "^0.5.10", - "ajv": "^8.12.0", - "bin-links": "^4.0.1", - "express": "^4.18.1", - "follow-redirects": "^1.15.2", - "tar": "^6.1.13", - "yaml": "^2.1.3" - }, - "bin": { - "act-js": "bin/act" - } - }, - "node_modules/@kie/mock-github": { - "version": "2.0.1", - "license": "SEE LICENSE IN LICENSE", - "dependencies": { - "@octokit/openapi-types-ghec": "^18.0.0", - "ajv": "^8.11.0", - "express": "^4.18.1", - "fast-glob": "^3.2.12", - "fs-extra": "^10.1.0", - "nock": "^13.2.7", - "simple-git": "^3.8.0", - "totalist": "^3.0.0" - } - }, - "node_modules/@kie/mock-github/node_modules/fs-extra": { - "version": "10.1.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@kie/mock-github/node_modules/totalist": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/@kwsites/file-exists": { "version": "1.1.1", + "dev": true, "license": "MIT", "dependencies": { "debug": "^4.1.1" @@ -6401,6 +6526,7 @@ }, "node_modules/@kwsites/promise-deferred": { "version": "1.1.1", + "dev": true, "license": "MIT" }, "node_modules/@leichtgewicht/ip-codec": { @@ -6658,16 +6784,6 @@ "@types/react-native": "*" } }, - "node_modules/@ndelangen/get-tarball": { - "version": "3.0.9", - "dev": true, - "license": "MIT", - "dependencies": { - "gunzip-maybe": "^1.4.2", - "pump": "^3.0.0", - "tar-fs": "^2.1.1" - } - }, "node_modules/@ngneat/falso": { "version": "7.1.1", "dev": true, @@ -6716,7 +6832,8 @@ }, "node_modules/@npmcli/fs": { "version": "3.1.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dependencies": { "semver": "^7.3.5" }, @@ -6818,10 +6935,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@octokit/openapi-types-ghec": { - "version": "18.1.1", - "license": "MIT" - }, "node_modules/@octokit/plugin-paginate-rest": { "version": "3.1.0", "dev": true, @@ -7064,14 +7177,6 @@ "perf-profiler-commands": "dist/src/commands.js" } }, - "node_modules/@perf-profiler/android/node_modules/commander": { - "version": "12.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/@perf-profiler/ios": { "version": "0.3.3", "dev": true, @@ -7097,14 +7202,6 @@ "flashlight-ios-poc": "dist/launchIOS.js" } }, - "node_modules/@perf-profiler/ios-instruments/node_modules/commander": { - "version": "12.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/@perf-profiler/logger": { "version": "0.3.3", "dev": true, @@ -9959,18 +10056,20 @@ } }, "node_modules/@react-native/debugger-frontend": { - "version": "0.74.84", - "license": "BSD-3-Clause", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz", + "integrity": "sha512-gUIhhpsYLUTYWlWw4vGztyHaX/kNlgVspSvKe2XaPA7o3jYKUoNLc3Ov7u70u/MBWfKdcEffWq44eSe3j3s5JQ==", "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.74.84", - "license": "MIT", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.85.tgz", + "integrity": "sha512-BRmgCK5vnMmHaKRO+h8PKJmHHH3E6JFuerrcfE3wG2eZ1bcSr+QTu8DAlpxsDWvJvHpCi8tRJGauxd+Ssj/c7w==", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.84", + "@react-native/debugger-frontend": "0.74.85", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", @@ -9989,18 +10088,21 @@ }, "node_modules/@react-native/dev-middleware/node_modules/debug": { "version": "2.6.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { "ms": "2.0.0" } }, "node_modules/@react-native/dev-middleware/node_modules/ms": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/@react-native/dev-middleware/node_modules/open": { "version": "7.4.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -10073,8 +10175,9 @@ "license": "MIT" }, "node_modules/@react-native/normalize-colors": { - "version": "0.74.84", - "license": "MIT" + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", + "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==" }, "node_modules/@react-native/virtualized-lists": { "version": "0.75.2", @@ -10205,8 +10308,9 @@ } }, "node_modules/@rnmapbox/maps": { - "version": "10.1.26", - "license": "MIT", + "version": "10.1.30", + "resolved": "https://registry.npmjs.org/@rnmapbox/maps/-/maps-10.1.30.tgz", + "integrity": "sha512-3yl043+mpBldIHxTMMBU6Rdka6IjSww3kaIngltsUBTtnQI9NE1Yv3msC1X10E5bcfLHrhLxkiMSRhckCKBkPA==", "dependencies": { "@turf/along": "6.5.0", "@turf/distance": "6.5.0", @@ -10237,7 +10341,8 @@ }, "node_modules/@rnx-kit/chromium-edge-launcher": { "version": "1.0.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", + "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==", "dependencies": { "@types/node": "^18.0.0", "escape-string-regexp": "^4.0.0", @@ -10251,14 +10356,17 @@ } }, "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/@types/node": { - "version": "18.19.31", - "license": "MIT", + "version": "18.19.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.47.tgz", + "integrity": "sha512-1f7dB3BL/bpd9tnDJrrHb66Y+cVrhxSOTGorRNdHwYTUlTay3HuTDPKo9a/4vX9pMQkhYBcAbL4jQdNlhCFP9A==", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@segment/loosely-validate-event": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", "dependencies": { "component-type": "^1.2.1", "join-component": "^1.1.0" @@ -10310,6 +10418,8 @@ }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, "license": "MIT", "engines": { @@ -11885,185 +11995,167 @@ "which-typed-array": "^1.1.2" } }, - "node_modules/@storybook/builder-manager": { - "version": "8.1.10", + "node_modules/@storybook/builder-webpack5": { + "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "8.1.10", - "@storybook/manager": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@types/ejs": "^3.1.1", - "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", + "@storybook/channels": "8.1.6", + "@storybook/client-logger": "8.1.6", + "@storybook/core-common": "8.1.6", + "@storybook/core-events": "8.1.6", + "@storybook/core-webpack": "8.1.6", + "@storybook/node-logger": "8.1.6", + "@storybook/preview": "8.1.6", + "@storybook/preview-api": "8.1.6", + "@types/node": "^18.0.0", + "@types/semver": "^7.3.4", "browser-assert": "^1.2.1", - "ejs": "^3.1.10", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-plugin-alias": "^0.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "cjs-module-lexer": "^1.2.3", + "constants-browserify": "^1.0.0", + "css-loader": "^6.7.1", + "es-module-lexer": "^1.5.0", "express": "^4.17.3", + "fork-ts-checker-webpack-plugin": "^8.0.0", "fs-extra": "^11.1.0", + "html-webpack-plugin": "^5.5.0", + "magic-string": "^0.30.5", + "path-browserify": "^1.0.1", "process": "^0.11.10", - "util": "^0.12.4" + "semver": "^7.3.7", + "style-loader": "^3.3.1", + "terser-webpack-plugin": "^5.3.1", + "ts-dedent": "^2.0.0", + "url": "^0.11.0", + "util": "^0.12.4", + "util-deprecate": "^1.0.2", + "webpack": "5", + "webpack-dev-middleware": "^6.1.2", + "webpack-hot-middleware": "^2.25.1", + "webpack-virtual-modules": "^0.5.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@storybook/builder-manager/node_modules/@babel/traverse": { - "version": "7.24.7", + "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { + "version": "18.19.34", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" + "undici-types": "~5.26.4" } }, - "node_modules/@storybook/builder-manager/node_modules/@storybook/channels": { - "version": "8.1.10", + "node_modules/@storybook/builder-webpack5/node_modules/fs-extra": { + "version": "11.2.0", "dev": true, "license": "MIT", "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "engines": { + "node": ">=14.14" } }, - "node_modules/@storybook/builder-manager/node_modules/@storybook/client-logger": { - "version": "8.1.10", + "node_modules/@storybook/builder-webpack5/node_modules/path-browserify": { + "version": "1.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } + "license": "MIT" }, - "node_modules/@storybook/builder-manager/node_modules/@storybook/core-common": { - "version": "8.1.10", + "node_modules/@storybook/builder-webpack5/node_modules/style-loader": { + "version": "3.3.4", "dev": true, "license": "MIT", - "dependencies": { - "@storybook/core-events": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/types": "8.1.10", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "cross-spawn": "^7.0.3", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-register": "^3.5.0", - "execa": "^5.0.0", - "file-system-cache": "2.3.0", - "find-cache-dir": "^3.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "glob": "^10.0.0", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "node-fetch": "^2.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "prettier-fallback": "npm:prettier@^3", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "semver": "^7.3.7", - "tempy": "^3.1.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4" + "engines": { + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } + "webpack": "^5.0.0" } }, - "node_modules/@storybook/builder-manager/node_modules/@storybook/core-events": { - "version": "8.1.10", + "node_modules/@storybook/builder-webpack5/node_modules/util": { + "version": "0.12.5", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" } }, - "node_modules/@storybook/builder-manager/node_modules/@storybook/csf-tools": { - "version": "8.1.10", + "node_modules/@storybook/channels": { + "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/generator": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", - "@storybook/types": "8.1.10", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" + "@storybook/client-logger": "8.1.6", + "@storybook/core-events": "8.1.6", + "@storybook/global": "^5.0.0", + "telejson": "^7.2.0", + "tiny-invariant": "^1.3.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/builder-manager/node_modules/@storybook/node-logger": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@storybook/types": { - "version": "8.1.10", + "node_modules/@storybook/cli": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-8.3.0.tgz", + "integrity": "sha512-kR2x43BU/keIUPr+jHXK16BkhUXk+t4I6DgYgKyjYfFpjX2+tNYZ2b1f7RW+TjjUy4V6cf9FXl5N+GFmih8oiQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/channels": "8.1.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" + "@babel/core": "^7.24.4", + "@babel/types": "^7.24.0", + "@storybook/codemod": "8.3.0", + "@types/semver": "^7.3.4", + "chalk": "^4.1.0", + "commander": "^12.1.0", + "create-storybook": "8.3.0", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fd-package-json": "^1.2.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "giget": "^1.0.0", + "glob": "^10.0.0", + "globby": "^14.0.1", + "jscodeshift": "^0.15.1", + "leven": "^3.1.0", + "prompts": "^2.4.0", + "semver": "^7.3.7", + "storybook": "8.3.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0" + }, + "bin": { + "cli": "bin/index.cjs" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/builder-manager/node_modules/ansi-styles": { + "node_modules/@storybook/cli/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -12076,16 +12168,20 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/builder-manager/node_modules/brace-expansion": { + "node_modules/@storybook/cli/node_modules/brace-expansion": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, - "node_modules/@storybook/builder-manager/node_modules/chalk": { + "node_modules/@storybook/cli/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -12099,8 +12195,10 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/builder-manager/node_modules/color-convert": { + "node_modules/@storybook/cli/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12110,77 +12208,17 @@ "node": ">=7.0.0" } }, - "node_modules/@storybook/builder-manager/node_modules/color-name": { + "node_modules/@storybook/cli/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/@storybook/builder-manager/node_modules/crypto-random-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/builder-manager/node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/builder-manager/node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/@storybook/builder-manager/node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/builder-manager/node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/builder-manager/node_modules/fs-extra": { + "node_modules/@storybook/cli/node_modules/fs-extra": { "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "license": "MIT", "dependencies": { @@ -12192,8 +12230,10 @@ "node": ">=14.14" } }, - "node_modules/@storybook/builder-manager/node_modules/glob": { - "version": "10.4.2", + "node_modules/@storybook/cli/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { @@ -12207,42 +12247,50 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/builder-manager/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/@storybook/cli/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/builder-manager/node_modules/is-stream": { - "version": "3.0.0", + "node_modules/@storybook/cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@storybook/builder-manager/node_modules/jackspeak": { - "version": "3.4.0", + "node_modules/@storybook/cli/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -12250,41 +12298,50 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/@storybook/builder-manager/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/@storybook/cli/node_modules/jscodeshift": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz", + "integrity": "sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "@babel/core": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/preset-flow": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@babel/register": "^7.22.15", + "babel-core": "^7.0.0-bridge.0", + "chalk": "^4.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.23.3", + "temp": "^0.8.4", + "write-file-atomic": "^2.3.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/builder-manager/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" + "bin": { + "jscodeshift": "bin/jscodeshift.js" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@babel/preset-env": "^7.1.6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/builder-manager/node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "peerDependenciesMeta": { + "@babel/preset-env": { + "optional": true + } } }, - "node_modules/@storybook/builder-manager/node_modules/minimatch": { - "version": "9.0.4", + "node_modules/@storybook/cli/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -12297,49 +12354,33 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/builder-manager/node_modules/minipass": { + "node_modules/@storybook/cli/node_modules/minipass": { "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, - "node_modules/@storybook/builder-manager/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/@storybook/cli/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/builder-manager/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/builder-manager/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/builder-manager/node_modules/recast": { + "node_modules/@storybook/cli/node_modules/recast": { "version": "0.23.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz", + "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==", "dev": true, "license": "MIT", "dependencies": { @@ -12353,16 +12394,33 @@ "node": ">= 4" } }, - "node_modules/@storybook/builder-manager/node_modules/source-map": { + "node_modules/@storybook/cli/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/cli/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/@storybook/builder-manager/node_modules/supports-color": { + "node_modules/@storybook/cli/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -12372,178 +12430,282 @@ "node": ">=8" } }, - "node_modules/@storybook/builder-manager/node_modules/temp-dir": { - "version": "3.0.0", + "node_modules/@storybook/client-logger": { + "version": "8.1.6", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.16" + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/builder-manager/node_modules/tempy": { - "version": "3.1.0", + "node_modules/@storybook/codemod": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.3.0.tgz", + "integrity": "sha512-WwHgQLJw02eflkAzkUfuNP8Hu7Z12E6diUN2AWDXVYZJXyJjYhivGzONt2inrHhT3LTB9iSNVo0WsDE9AZU9RA==", "dev": true, "license": "MIT", "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^3.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "engines": { - "node": ">=14.16" + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.24.4", + "@babel/types": "^7.24.0", + "@storybook/core": "8.3.0", + "@storybook/csf": "^0.1.11", + "@types/cross-spawn": "^6.0.2", + "cross-spawn": "^7.0.3", + "globby": "^14.0.1", + "jscodeshift": "^0.15.1", + "lodash": "^4.17.21", + "prettier": "^3.1.1", + "recast": "^0.23.5", + "tiny-invariant": "^1.3.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/builder-manager/node_modules/type-fest": { - "version": "2.19.0", + "node_modules/@storybook/codemod/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12.20" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/builder-manager/node_modules/unique-string": { - "version": "3.0.0", + "node_modules/@storybook/codemod/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { - "crypto-random-string": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/builder-manager/node_modules/util": { - "version": "0.12.5", + "node_modules/@storybook/codemod/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@storybook/builder-webpack5": { - "version": "8.1.6", + "node_modules/@storybook/codemod/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/codemod/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/channels": "8.1.6", - "@storybook/client-logger": "8.1.6", - "@storybook/core-common": "8.1.6", - "@storybook/core-events": "8.1.6", - "@storybook/core-webpack": "8.1.6", - "@storybook/node-logger": "8.1.6", - "@storybook/preview": "8.1.6", - "@storybook/preview-api": "8.1.6", - "@types/node": "^18.0.0", - "@types/semver": "^7.3.4", - "browser-assert": "^1.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "cjs-module-lexer": "^1.2.3", - "constants-browserify": "^1.0.0", - "css-loader": "^6.7.1", - "es-module-lexer": "^1.5.0", - "express": "^4.17.3", - "fork-ts-checker-webpack-plugin": "^8.0.0", - "fs-extra": "^11.1.0", - "html-webpack-plugin": "^5.5.0", - "magic-string": "^0.30.5", - "path-browserify": "^1.0.1", - "process": "^0.11.10", - "semver": "^7.3.7", - "style-loader": "^3.3.1", - "terser-webpack-plugin": "^5.3.1", - "ts-dedent": "^2.0.0", - "url": "^0.11.0", - "util": "^0.12.4", - "util-deprecate": "^1.0.2", - "webpack": "5", - "webpack-dev-middleware": "^6.1.2", - "webpack-hot-middleware": "^2.25.1", - "webpack-virtual-modules": "^0.5.0" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/codemod/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/codemod/node_modules/jscodeshift": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz", + "integrity": "sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/preset-flow": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@babel/register": "^7.22.15", + "babel-core": "^7.0.0-bridge.0", + "chalk": "^4.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.23.3", + "temp": "^0.8.4", + "write-file-atomic": "^2.3.0" + }, + "bin": { + "jscodeshift": "bin/jscodeshift.js" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" }, "peerDependenciesMeta": { - "typescript": { + "@babel/preset-env": { "optional": true } } }, - "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { - "version": "18.19.34", + "node_modules/@storybook/codemod/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/builder-webpack5/node_modules/fs-extra": { - "version": "11.2.0", + "node_modules/@storybook/codemod/node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "bin": { + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=14.14" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/@storybook/builder-webpack5/node_modules/path-browserify": { - "version": "1.0.1", + "node_modules/@storybook/codemod/node_modules/recast": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz", + "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } }, - "node_modules/@storybook/builder-webpack5/node_modules/style-loader": { - "version": "3.3.4", + "node_modules/@storybook/codemod/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 12.13.0" + "node": ">=14.16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/codemod/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/codemod/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, - "peerDependencies": { - "webpack": "^5.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/@storybook/builder-webpack5/node_modules/util": { - "version": "0.12.5", + "node_modules/@storybook/components": { + "version": "8.1.10", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-slot": "^1.0.2", + "@storybook/client-logger": "8.1.10", + "@storybook/csf": "^0.1.7", + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.2.5", + "@storybook/theming": "8.1.10", + "@storybook/types": "8.1.10", + "memoizerific": "^1.11.3", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" } }, - "node_modules/@storybook/channels": { - "version": "8.1.6", + "node_modules/@storybook/components/node_modules/@storybook/channels": { + "version": "8.1.10", "dev": true, "license": "MIT", "dependencies": { - "@storybook/client-logger": "8.1.6", - "@storybook/core-events": "8.1.6", + "@storybook/client-logger": "8.1.10", + "@storybook/core-events": "8.1.10", "@storybook/global": "^5.0.0", "telejson": "^7.2.0", "tiny-invariant": "^1.3.1" @@ -12553,114 +12715,78 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/cli": { + "node_modules/@storybook/components/node_modules/@storybook/client-logger": { "version": "8.1.10", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.24.4", - "@babel/types": "^7.24.0", - "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/core-server": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/telemetry": "8.1.10", - "@storybook/types": "8.1.10", - "@types/semver": "^7.3.4", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "commander": "^6.2.1", - "cross-spawn": "^7.0.3", - "detect-indent": "^6.1.0", - "envinfo": "^7.7.3", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "get-npm-tarball-url": "^2.0.3", - "giget": "^1.0.0", - "globby": "^14.0.1", - "jscodeshift": "^0.15.1", - "leven": "^3.1.0", - "ora": "^5.4.1", - "prettier": "^3.1.1", - "prompts": "^2.4.0", - "read-pkg-up": "^7.0.1", - "semver": "^7.3.7", - "strip-json-comments": "^3.0.1", - "tempy": "^3.1.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0" - }, - "bin": { - "getstorybook": "bin/index.js", - "sb": "bin/index.js" + "@storybook/global": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/cli/node_modules/@babel/traverse": { - "version": "7.24.7", + "node_modules/@storybook/components/node_modules/@storybook/core-events": { + "version": "8.1.10", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@storybook/csf": "^0.1.7", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/cli/node_modules/@storybook/channels": { + "node_modules/@storybook/components/node_modules/@storybook/types": { "version": "8.1.10", "dev": true, "license": "MIT", "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" + "@storybook/channels": "8.1.10", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/cli/node_modules/@storybook/client-logger": { - "version": "8.1.10", + "node_modules/@storybook/core": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.3.0.tgz", + "integrity": "sha512-UeErpD0xRIP2nFA2TjPYxtEyv24O6VRfq2XXU5ki2QPYnxOxAPBbrMHCADjgBwNS4S2NUWTaVBYxybISVbrj+w==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0" + "@storybook/csf": "^0.1.11", + "@types/express": "^4.17.21", + "browser-assert": "^1.2.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", + "esbuild-register": "^3.5.0", + "express": "^4.19.2", + "process": "^0.11.10", + "recast": "^0.23.5", + "semver": "^7.6.2", + "util": "^0.12.5", + "ws": "^8.2.3" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/cli/node_modules/@storybook/core-common": { - "version": "8.1.10", + "node_modules/@storybook/core-common": { + "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-events": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/types": "8.1.10", + "@storybook/core-events": "8.1.6", + "@storybook/csf-tools": "8.1.6", + "@storybook/node-logger": "8.1.6", + "@storybook/types": "8.1.6", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", "chalk": "^4.1.0", @@ -12700,63 +12826,7 @@ } } }, - "node_modules/@storybook/cli/node_modules/@storybook/core-events": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/cli/node_modules/@storybook/csf-tools": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", - "@storybook/types": "8.1.10", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/cli/node_modules/@storybook/node-logger": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/cli/node_modules/@storybook/types": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.1.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/cli/node_modules/ansi-styles": { + "node_modules/@storybook/core-common/node_modules/ansi-styles": { "version": "4.3.0", "dev": true, "license": "MIT", @@ -12770,7 +12840,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/cli/node_modules/brace-expansion": { + "node_modules/@storybook/core-common/node_modules/brace-expansion": { "version": "2.0.1", "dev": true, "license": "MIT", @@ -12778,7 +12848,7 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@storybook/cli/node_modules/chalk": { + "node_modules/@storybook/core-common/node_modules/chalk": { "version": "4.1.2", "dev": true, "license": "MIT", @@ -12793,7 +12863,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/cli/node_modules/color-convert": { + "node_modules/@storybook/core-common/node_modules/color-convert": { "version": "2.0.1", "dev": true, "license": "MIT", @@ -12804,12 +12874,12 @@ "node": ">=7.0.0" } }, - "node_modules/@storybook/cli/node_modules/color-name": { + "node_modules/@storybook/core-common/node_modules/color-name": { "version": "1.1.4", "dev": true, "license": "MIT" }, - "node_modules/@storybook/cli/node_modules/crypto-random-string": { + "node_modules/@storybook/core-common/node_modules/crypto-random-string": { "version": "4.0.0", "dev": true, "license": "MIT", @@ -12823,7 +12893,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/crypto-random-string/node_modules/type-fest": { + "node_modules/@storybook/core-common/node_modules/crypto-random-string/node_modules/type-fest": { "version": "1.4.0", "dev": true, "license": "(MIT OR CC0-1.0)", @@ -12834,7 +12904,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/find-cache-dir": { + "node_modules/@storybook/core-common/node_modules/find-cache-dir": { "version": "3.3.2", "dev": true, "license": "MIT", @@ -12850,7 +12920,7 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/@storybook/cli/node_modules/find-cache-dir/node_modules/find-up": { + "node_modules/@storybook/core-common/node_modules/find-cache-dir/node_modules/find-up": { "version": "4.1.0", "dev": true, "license": "MIT", @@ -12862,7 +12932,7 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/find-cache-dir/node_modules/pkg-dir": { + "node_modules/@storybook/core-common/node_modules/find-cache-dir/node_modules/pkg-dir": { "version": "4.2.0", "dev": true, "license": "MIT", @@ -12873,7 +12943,7 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/fs-extra": { + "node_modules/@storybook/core-common/node_modules/fs-extra": { "version": "11.2.0", "dev": true, "license": "MIT", @@ -12886,48 +12956,28 @@ "node": ">=14.14" } }, - "node_modules/@storybook/cli/node_modules/glob": { - "version": "10.4.2", + "node_modules/@storybook/core-common/node_modules/glob": { + "version": "10.3.12", "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/cli/node_modules/globby": { - "version": "14.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/cli/node_modules/has-flag": { + "node_modules/@storybook/core-common/node_modules/has-flag": { "version": "4.0.0", "dev": true, "license": "MIT", @@ -12935,7 +12985,7 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/is-stream": { + "node_modules/@storybook/core-common/node_modules/is-stream": { "version": "3.0.0", "dev": true, "license": "MIT", @@ -12946,62 +12996,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/jackspeak": { - "version": "3.4.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/@storybook/cli/node_modules/jscodeshift": { - "version": "0.15.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/preset-flow": "^7.22.15", - "@babel/preset-typescript": "^7.23.0", - "@babel/register": "^7.22.15", - "babel-core": "^7.0.0-bridge.0", - "chalk": "^4.1.2", - "flow-parser": "0.*", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "neo-async": "^2.5.0", - "node-dir": "^0.1.17", - "recast": "^0.23.3", - "temp": "^0.8.4", - "write-file-atomic": "^2.3.0" - }, - "bin": { - "jscodeshift": "bin/jscodeshift.js" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - }, - "peerDependenciesMeta": { - "@babel/preset-env": { - "optional": true - } - } - }, - "node_modules/@storybook/cli/node_modules/locate-path": { + "node_modules/@storybook/core-common/node_modules/locate-path": { "version": "5.0.0", "dev": true, "license": "MIT", @@ -13012,7 +13007,7 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/make-dir": { + "node_modules/@storybook/core-common/node_modules/make-dir": { "version": "3.1.0", "dev": true, "license": "MIT", @@ -13026,7 +13021,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/make-dir/node_modules/semver": { + "node_modules/@storybook/core-common/node_modules/make-dir/node_modules/semver": { "version": "6.3.1", "dev": true, "license": "ISC", @@ -13034,7 +13029,7 @@ "semver": "bin/semver.js" } }, - "node_modules/@storybook/cli/node_modules/minimatch": { + "node_modules/@storybook/core-common/node_modules/minimatch": { "version": "9.0.4", "dev": true, "license": "ISC", @@ -13048,7 +13043,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/cli/node_modules/minipass": { + "node_modules/@storybook/core-common/node_modules/minipass": { "version": "7.1.2", "dev": true, "license": "ISC", @@ -13056,7 +13051,7 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/@storybook/cli/node_modules/p-limit": { + "node_modules/@storybook/core-common/node_modules/p-limit": { "version": "2.3.0", "dev": true, "license": "MIT", @@ -13070,7 +13065,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/p-locate": { + "node_modules/@storybook/core-common/node_modules/p-locate": { "version": "4.1.0", "dev": true, "license": "MIT", @@ -13081,7 +13076,7 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/path-exists": { + "node_modules/@storybook/core-common/node_modules/path-exists": { "version": "4.0.0", "dev": true, "license": "MIT", @@ -13089,77 +13084,18 @@ "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/path-type": { - "version": "5.0.0", + "node_modules/@storybook/core-common/node_modules/supports-color": { + "version": "7.2.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/cli/node_modules/prettier": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/@storybook/cli/node_modules/recast": { - "version": "0.23.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/cli/node_modules/slash": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/cli/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/cli/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/@storybook/cli/node_modules/temp-dir": { + "node_modules/@storybook/core-common/node_modules/temp-dir": { "version": "3.0.0", "dev": true, "license": "MIT", @@ -13167,7 +13103,7 @@ "node": ">=14.16" } }, - "node_modules/@storybook/cli/node_modules/tempy": { + "node_modules/@storybook/core-common/node_modules/tempy": { "version": "3.1.0", "dev": true, "license": "MIT", @@ -13184,7 +13120,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/type-fest": { + "node_modules/@storybook/core-common/node_modules/type-fest": { "version": "2.19.0", "dev": true, "license": "(MIT OR CC0-1.0)", @@ -13195,7 +13131,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/unique-string": { + "node_modules/@storybook/core-common/node_modules/unique-string": { "version": "3.0.0", "dev": true, "license": "MIT", @@ -13209,7 +13145,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/util": { + "node_modules/@storybook/core-common/node_modules/util": { "version": "0.12.5", "dev": true, "license": "MIT", @@ -13221,45 +13157,108 @@ "which-typed-array": "^1.1.2" } }, - "node_modules/@storybook/client-logger": { + "node_modules/@storybook/core-events": { "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0" + "@storybook/csf": "^0.1.7", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod": { + "node_modules/@storybook/core-webpack": { + "version": "8.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core-common": "8.1.6", + "@storybook/node-logger": "8.1.6", + "@storybook/types": "8.1.6", + "@types/node": "^18.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-webpack/node_modules/@types/node": { + "version": "18.19.34", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/core/node_modules/recast": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz", + "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@storybook/core/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/core/node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/@storybook/csf": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", + "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^2.19.0" + } + }, + "node_modules/@storybook/csf-plugin": { "version": "8.1.10", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.24.4", - "@babel/preset-env": "^7.24.4", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/types": "8.1.10", - "@types/cross-spawn": "^6.0.2", - "cross-spawn": "^7.0.3", - "globby": "^14.0.1", - "jscodeshift": "^0.15.1", - "lodash": "^4.17.21", - "prettier": "^3.1.1", - "recast": "^0.23.5", - "tiny-invariant": "^1.3.1" + "unplugin": "^1.3.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/@babel/traverse": { + "node_modules/@storybook/csf-plugin/node_modules/@babel/traverse": { "version": "7.24.7", "dev": true, "license": "MIT", @@ -13279,7 +13278,7 @@ "node": ">=6.9.0" } }, - "node_modules/@storybook/codemod/node_modules/@storybook/channels": { + "node_modules/@storybook/csf-plugin/node_modules/@storybook/channels": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13295,7 +13294,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/@storybook/client-logger": { + "node_modules/@storybook/csf-plugin/node_modules/@storybook/client-logger": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13307,7 +13306,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/@storybook/core-events": { + "node_modules/@storybook/csf-plugin/node_modules/@storybook/core-events": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13320,7 +13319,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/@storybook/csf-tools": { + "node_modules/@storybook/csf-plugin/node_modules/@storybook/csf-tools": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13340,16 +13339,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/@storybook/node-logger": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/codemod/node_modules/@storybook/types": { + "node_modules/@storybook/csf-plugin/node_modules/@storybook/types": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13363,52 +13353,83 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@storybook/csf-plugin/node_modules/fs-extra": { + "version": "11.2.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=14.14" } }, - "node_modules/@storybook/codemod/node_modules/chalk": { - "version": "4.1.2", + "node_modules/@storybook/csf-plugin/node_modules/recast": { + "version": "0.23.9", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">= 4" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/csf-tools": { + "version": "8.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "@storybook/csf": "^0.1.7", + "@storybook/types": "8.1.6", + "fs-extra": "^11.1.0", + "recast": "^0.23.5", + "ts-dedent": "^2.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/@storybook/csf-tools/node_modules/@babel/traverse": { + "version": "7.24.7", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" } }, - "node_modules/@storybook/codemod/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/codemod/node_modules/fs-extra": { + "node_modules/@storybook/csf-tools/node_modules/fs-extra": { "version": "11.2.0", "dev": true, "license": "MIT", @@ -13421,167 +13442,127 @@ "node": ">=14.14" } }, - "node_modules/@storybook/codemod/node_modules/globby": { - "version": "14.0.1", + "node_modules/@storybook/csf-tools/node_modules/recast": { + "version": "0.23.9", "dev": true, "license": "MIT", "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4" } }, - "node_modules/@storybook/codemod/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/@storybook/csf-tools/node_modules/source-map": { + "version": "0.6.1", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/codemod/node_modules/jscodeshift": { - "version": "0.15.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/preset-flow": "^7.22.15", - "@babel/preset-typescript": "^7.23.0", - "@babel/register": "^7.22.15", - "babel-core": "^7.0.0-bridge.0", - "chalk": "^4.1.2", - "flow-parser": "0.*", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "neo-async": "^2.5.0", - "node-dir": "^0.1.17", - "recast": "^0.23.3", - "temp": "^0.8.4", - "write-file-atomic": "^2.3.0" - }, - "bin": { - "jscodeshift": "bin/jscodeshift.js" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - }, - "peerDependenciesMeta": { - "@babel/preset-env": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/@storybook/codemod/node_modules/path-type": { - "version": "5.0.0", + "node_modules/@storybook/csf/node_modules/type-fest": { + "version": "2.19.0", "dev": true, - "license": "MIT", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=12" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/codemod/node_modules/prettier": { - "version": "3.3.2", + "node_modules/@storybook/docs-tools": { + "version": "8.1.6", "dev": true, "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" + "dependencies": { + "@storybook/core-common": "8.1.6", + "@storybook/core-events": "8.1.6", + "@storybook/preview-api": "8.1.6", + "@storybook/types": "8.1.6", + "@types/doctrine": "^0.0.3", + "assert": "^2.1.0", + "doctrine": "^3.0.0", + "lodash": "^4.17.21" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/recast": { - "version": "0.23.9", + "node_modules/@storybook/docs-tools/node_modules/assert": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" } }, - "node_modules/@storybook/codemod/node_modules/slash": { - "version": "5.1.0", + "node_modules/@storybook/docs-tools/node_modules/util": { + "version": "0.12.5", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" } }, - "node_modules/@storybook/codemod/node_modules/source-map": { - "version": "0.6.1", + "node_modules/@storybook/global": { + "version": "5.0.0", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/@storybook/codemod/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/@storybook/icons": { + "version": "1.2.9", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/components": { + "node_modules/@storybook/manager-api": { "version": "8.1.10", "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-dialog": "^1.0.5", - "@radix-ui/react-slot": "^1.0.2", + "@storybook/channels": "8.1.10", "@storybook/client-logger": "8.1.10", + "@storybook/core-events": "8.1.10", "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.5", + "@storybook/router": "8.1.10", "@storybook/theming": "8.1.10", "@storybook/types": "8.1.10", + "dequal": "^2.0.2", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", - "util-deprecate": "^1.0.2" + "store2": "^2.14.2", + "telejson": "^7.2.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" } }, - "node_modules/@storybook/components/node_modules/@storybook/channels": { + "node_modules/@storybook/manager-api/node_modules/@storybook/channels": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13597,7 +13578,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/components/node_modules/@storybook/client-logger": { + "node_modules/@storybook/manager-api/node_modules/@storybook/client-logger": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13609,7 +13590,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/components/node_modules/@storybook/core-events": { + "node_modules/@storybook/manager-api/node_modules/@storybook/core-events": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13622,7 +13603,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/components/node_modules/@storybook/types": { + "node_modules/@storybook/manager-api/node_modules/@storybook/types": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -13636,2086 +13617,145 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-common": { + "node_modules/@storybook/node-logger": { + "version": "8.1.6", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/preset-react-webpack": { "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-events": "8.1.6", - "@storybook/csf-tools": "8.1.6", + "@storybook/core-webpack": "8.1.6", + "@storybook/docs-tools": "8.1.6", "@storybook/node-logger": "8.1.6", - "@storybook/types": "8.1.6", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "cross-spawn": "^7.0.3", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-register": "^3.5.0", - "execa": "^5.0.0", - "file-system-cache": "2.3.0", - "find-cache-dir": "^3.0.0", + "@storybook/react": "8.1.6", + "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", + "@types/node": "^18.0.0", + "@types/semver": "^7.3.4", "find-up": "^5.0.0", "fs-extra": "^11.1.0", - "glob": "^10.0.0", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "node-fetch": "^2.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "prettier-fallback": "npm:prettier@^3", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", + "magic-string": "^0.30.5", + "react-docgen": "^7.0.0", + "resolve": "^1.22.8", "semver": "^7.3.7", - "tempy": "^3.1.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4" + "tsconfig-paths": "^4.2.0", + "webpack": "5" + }, + "engines": { + "node": ">=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "prettier": "^2 || ^3" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" }, "peerDependenciesMeta": { - "prettier": { + "typescript": { "optional": true } } }, - "node_modules/@storybook/core-common/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@storybook/preset-react-webpack/node_modules/@storybook/react": { + "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@storybook/client-logger": "8.1.6", + "@storybook/docs-tools": "8.1.6", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.1.6", + "@storybook/react-dom-shim": "8.1.6", + "@storybook/types": "8.1.6", + "@types/escodegen": "^0.0.6", + "@types/estree": "^0.0.51", + "@types/node": "^18.0.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "escodegen": "^2.1.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^15.0.0", + "semver": "^7.3.7", + "ts-dedent": "^2.0.0", + "type-fest": "~2.19", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "typescript": ">= 4.2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@storybook/core-common/node_modules/brace-expansion": { - "version": "2.0.1", + "node_modules/@storybook/preset-react-webpack/node_modules/@storybook/react-dom-shim": { + "version": "8.1.6", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@storybook/core-common/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/core-common/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/core-common/node_modules/crypto-random-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/fs-extra": { - "version": "11.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/core-common/node_modules/glob": { - "version": "10.3.12", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/core-common/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/is-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@storybook/core-common/node_modules/minimatch": { - "version": "9.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/core-common/node_modules/minipass": { - "version": "7.1.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@storybook/core-common/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/temp-dir": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@storybook/core-common/node_modules/tempy": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^3.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/unique-string": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/util": { - "version": "0.12.5", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/@storybook/core-events": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@aw-web-design/x-default-browser": "1.4.126", - "@babel/core": "^7.24.4", - "@babel/parser": "^7.24.4", - "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "8.1.10", - "@storybook/channels": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/csf": "^0.1.7", - "@storybook/csf-tools": "8.1.10", - "@storybook/docs-mdx": "3.1.0-next.0", - "@storybook/global": "^5.0.0", - "@storybook/manager": "8.1.10", - "@storybook/manager-api": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/preview-api": "8.1.10", - "@storybook/telemetry": "8.1.10", - "@storybook/types": "8.1.10", - "@types/detect-port": "^1.3.0", - "@types/diff": "^5.0.9", - "@types/node": "^18.0.0", - "@types/pretty-hrtime": "^1.0.0", - "@types/semver": "^7.3.4", - "better-opn": "^3.0.2", - "chalk": "^4.1.0", - "cli-table3": "^0.6.1", - "compression": "^1.7.4", - "detect-port": "^1.3.0", - "diff": "^5.2.0", - "express": "^4.17.3", - "fs-extra": "^11.1.0", - "globby": "^14.0.1", - "lodash": "^4.17.21", - "open": "^8.4.0", - "pretty-hrtime": "^1.0.3", - "prompts": "^2.4.0", - "read-pkg-up": "^7.0.1", - "semver": "^7.3.7", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4", - "util-deprecate": "^1.0.2", - "watchpack": "^2.2.0", - "ws": "^8.2.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@babel/traverse": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@storybook/core-server/node_modules/@storybook/channels": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@storybook/client-logger": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@storybook/core-common": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core-events": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/types": "8.1.10", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "cross-spawn": "^7.0.3", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-register": "^3.5.0", - "execa": "^5.0.0", - "file-system-cache": "2.3.0", - "find-cache-dir": "^3.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "glob": "^10.0.0", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "node-fetch": "^2.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "prettier-fallback": "npm:prettier@^3", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "semver": "^7.3.7", - "tempy": "^3.1.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } - } - }, - "node_modules/@storybook/core-server/node_modules/@storybook/core-events": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@storybook/csf-tools": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", - "@storybook/types": "8.1.10", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@storybook/node-logger": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/csf": "^0.1.7", - "@storybook/global": "^5.0.0", - "@storybook/types": "8.1.10", - "@types/qs": "^6.9.5", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@storybook/types": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.1.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.39", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@storybook/core-server/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@storybook/core-server/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/core-server/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/core-server/node_modules/crypto-random-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/diff": { - "version": "5.2.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/@storybook/core-server/node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/fs-extra": { - "version": "11.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/core-server/node_modules/glob": { - "version": "10.4.2", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/core-server/node_modules/globby": { - "version": "14.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/is-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/jackspeak": { - "version": "3.4.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/@storybook/core-server/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@storybook/core-server/node_modules/minimatch": { - "version": "9.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/core-server/node_modules/minipass": { - "version": "7.1.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@storybook/core-server/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/path-type": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/recast": { - "version": "0.23.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/core-server/node_modules/slash": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/core-server/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/temp-dir": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@storybook/core-server/node_modules/tempy": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^3.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/unique-string": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/util": { - "version": "0.12.5", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/@storybook/core-webpack": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core-common": "8.1.6", - "@storybook/node-logger": "8.1.6", - "@storybook/types": "8.1.6", - "@types/node": "^18.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-webpack/node_modules/@types/node": { - "version": "18.19.34", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@storybook/csf": { - "version": "0.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^2.19.0" - } - }, - "node_modules/@storybook/csf-plugin": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf-tools": "8.1.10", - "unplugin": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/@babel/traverse": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/@storybook/channels": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/@storybook/client-logger": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/@storybook/core-events": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/@storybook/csf-tools": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", - "@storybook/types": "8.1.10", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/@storybook/types": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.1.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/fs-extra": { - "version": "11.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/recast": { - "version": "0.23.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/csf-plugin/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/csf-tools": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", - "@storybook/types": "8.1.6", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-tools/node_modules/@babel/traverse": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@storybook/csf-tools/node_modules/fs-extra": { - "version": "11.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/csf-tools/node_modules/recast": { - "version": "0.23.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/csf-tools/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/csf/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/docs-mdx": { - "version": "3.1.0-next.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/docs-tools": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core-common": "8.1.6", - "@storybook/core-events": "8.1.6", - "@storybook/preview-api": "8.1.6", - "@storybook/types": "8.1.6", - "@types/doctrine": "^0.0.3", - "assert": "^2.1.0", - "doctrine": "^3.0.0", - "lodash": "^4.17.21" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/docs-tools/node_modules/assert": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "node_modules/@storybook/docs-tools/node_modules/util": { - "version": "0.12.5", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/@storybook/global": { - "version": "5.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/icons": { - "version": "1.2.9", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/manager": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager-api": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/csf": "^0.1.7", - "@storybook/global": "^5.0.0", - "@storybook/icons": "^1.2.5", - "@storybook/router": "8.1.10", - "@storybook/theming": "8.1.10", - "@storybook/types": "8.1.10", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "store2": "^2.14.2", - "telejson": "^7.2.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager-api/node_modules/@storybook/channels": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager-api/node_modules/@storybook/client-logger": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager-api/node_modules/@storybook/core-events": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager-api/node_modules/@storybook/types": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.1.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/node-logger": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preset-react-webpack": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core-webpack": "8.1.6", - "@storybook/docs-tools": "8.1.6", - "@storybook/node-logger": "8.1.6", - "@storybook/react": "8.1.6", - "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", - "@types/node": "^18.0.0", - "@types/semver": "^7.3.4", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "magic-string": "^0.30.5", - "react-docgen": "^7.0.0", - "resolve": "^1.22.8", - "semver": "^7.3.7", - "tsconfig-paths": "^4.2.0", - "webpack": "5" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/preset-react-webpack/node_modules/@storybook/react": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.6", - "@storybook/docs-tools": "8.1.6", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.1.6", - "@storybook/react-dom-shim": "8.1.6", - "@storybook/types": "8.1.6", - "@types/escodegen": "^0.0.6", - "@types/estree": "^0.0.51", - "@types/node": "^18.0.0", - "acorn": "^7.4.1", - "acorn-jsx": "^5.3.1", - "acorn-walk": "^7.2.0", - "escodegen": "^2.1.0", - "html-tags": "^3.1.0", - "lodash": "^4.17.21", - "prop-types": "^15.7.2", - "react-element-to-jsx-string": "^15.0.0", - "semver": "^7.3.7", - "ts-dedent": "^2.0.0", - "type-fest": "~2.19", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "typescript": ">= 4.2.x" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/preset-react-webpack/node_modules/@storybook/react-dom-shim": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" - } - }, - "node_modules/@storybook/preset-react-webpack/node_modules/@types/node": { - "version": "18.19.30", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@storybook/preset-react-webpack/node_modules/fs-extra": { - "version": "11.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/preset-react-webpack/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/preview": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preview-api": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/channels": "8.1.6", - "@storybook/client-logger": "8.1.6", - "@storybook/core-events": "8.1.6", - "@storybook/csf": "^0.1.7", - "@storybook/global": "^5.0.0", - "@storybook/types": "8.1.6", - "@types/qs": "^6.9.5", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/react": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/docs-tools": "8.1.10", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.1.10", - "@storybook/react-dom-shim": "8.1.10", - "@storybook/types": "8.1.10", - "@types/escodegen": "^0.0.6", - "@types/estree": "^0.0.51", - "@types/node": "^18.0.0", - "acorn": "^7.4.1", - "acorn-jsx": "^5.3.1", - "acorn-walk": "^7.2.0", - "escodegen": "^2.1.0", - "html-tags": "^3.1.0", - "lodash": "^4.17.21", - "prop-types": "^15.7.2", - "react-element-to-jsx-string": "^15.0.0", - "semver": "^7.3.7", - "ts-dedent": "^2.0.0", - "type-fest": "~2.19", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "typescript": ">= 4.2.x" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin": { - "version": "1.0.6--canary.9.0c3f3b7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "endent": "^2.0.1", - "find-cache-dir": "^3.3.1", - "flat-cache": "^3.0.4", - "micromatch": "^4.0.2", - "react-docgen-typescript": "^2.2.2", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "typescript": ">= 4.x", - "webpack": ">= 4" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@storybook/react-dom-shim": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" - } - }, - "node_modules/@storybook/react-webpack5": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/builder-webpack5": "8.1.6", - "@storybook/preset-react-webpack": "8.1.6", - "@storybook/react": "8.1.6", - "@storybook/types": "8.1.6", - "@types/node": "^18.0.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "typescript": ">= 4.2.x" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/react-webpack5/node_modules/@storybook/react": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.6", - "@storybook/docs-tools": "8.1.6", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.1.6", - "@storybook/react-dom-shim": "8.1.6", - "@storybook/types": "8.1.6", - "@types/escodegen": "^0.0.6", - "@types/estree": "^0.0.51", - "@types/node": "^18.0.0", - "acorn": "^7.4.1", - "acorn-jsx": "^5.3.1", - "acorn-walk": "^7.2.0", - "escodegen": "^2.1.0", - "html-tags": "^3.1.0", - "lodash": "^4.17.21", - "prop-types": "^15.7.2", - "react-element-to-jsx-string": "^15.0.0", - "semver": "^7.3.7", - "ts-dedent": "^2.0.0", - "type-fest": "~2.19", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "typescript": ">= 4.2.x" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/react-webpack5/node_modules/@storybook/react-dom-shim": { - "version": "8.1.6", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" - } - }, - "node_modules/@storybook/react-webpack5/node_modules/@types/node": { - "version": "18.19.28", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@storybook/react-webpack5/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react/node_modules/@babel/traverse": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@storybook/react/node_modules/@storybook/channels": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/react/node_modules/@storybook/client-logger": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/react/node_modules/@storybook/core-common": { - "version": "8.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core-events": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/types": "8.1.10", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "cross-spawn": "^7.0.3", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-register": "^3.5.0", - "execa": "^5.0.0", - "file-system-cache": "2.3.0", - "find-cache-dir": "^3.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "glob": "^10.0.0", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "node-fetch": "^2.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "prettier-fallback": "npm:prettier@^3", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "semver": "^7.3.7", - "tempy": "^3.1.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4" - }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" } }, - "node_modules/@storybook/react/node_modules/@storybook/core-events": { - "version": "8.1.10", + "node_modules/@storybook/preset-react-webpack/node_modules/@types/node": { + "version": "18.19.30", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "undici-types": "~5.26.4" } }, - "node_modules/@storybook/react/node_modules/@storybook/csf-tools": { - "version": "8.1.10", + "node_modules/@storybook/preset-react-webpack/node_modules/fs-extra": { + "version": "11.2.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/generator": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", - "@storybook/types": "8.1.10", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "engines": { + "node": ">=14.14" } }, - "node_modules/@storybook/react/node_modules/@storybook/docs-tools": { - "version": "8.1.10", + "node_modules/@storybook/preset-react-webpack/node_modules/type-fest": { + "version": "2.19.0", "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/core-common": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/preview-api": "8.1.10", - "@storybook/types": "8.1.10", - "@types/doctrine": "^0.0.3", - "assert": "^2.1.0", - "doctrine": "^3.0.0", - "lodash": "^4.17.21" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/react/node_modules/@storybook/node-logger": { - "version": "8.1.10", + "node_modules/@storybook/preview": { + "version": "8.1.6", "dev": true, "license": "MIT", "funding": { @@ -15723,17 +13763,17 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/react/node_modules/@storybook/preview-api": { - "version": "8.1.10", + "node_modules/@storybook/preview-api": { + "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "@storybook/channels": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", + "@storybook/channels": "8.1.6", + "@storybook/client-logger": "8.1.6", + "@storybook/core-events": "8.1.6", "@storybook/csf": "^0.1.7", "@storybook/global": "^5.0.0", - "@storybook/types": "8.1.10", + "@storybook/types": "8.1.6", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -15748,119 +13788,70 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/react/node_modules/@storybook/types": { + "node_modules/@storybook/react": { "version": "8.1.10", "dev": true, "license": "MIT", "dependencies": { - "@storybook/channels": "8.1.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/react/node_modules/@types/node": { - "version": "18.19.39", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@storybook/react/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" + "@storybook/client-logger": "8.1.10", + "@storybook/docs-tools": "8.1.10", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.1.10", + "@storybook/react-dom-shim": "8.1.10", + "@storybook/types": "8.1.10", + "@types/escodegen": "^0.0.6", + "@types/estree": "^0.0.51", + "@types/node": "^18.0.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "escodegen": "^2.1.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^15.0.0", + "semver": "^7.3.7", + "ts-dedent": "^2.0.0", + "type-fest": "~2.19", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/react/node_modules/assert": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "node_modules/@storybook/react/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@storybook/react/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/react/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "typescript": ">= 4.2.x" }, - "engines": { - "node": ">=7.0.0" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@storybook/react/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/react/node_modules/crypto-random-string": { - "version": "4.0.0", + "node_modules/@storybook/react-docgen-typescript-plugin": { + "version": "1.0.6--canary.9.0c3f3b7.0", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react/node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "debug": "^4.1.1", + "endent": "^2.0.1", + "find-cache-dir": "^3.3.1", + "flat-cache": "^3.0.4", + "micromatch": "^4.0.2", + "react-docgen-typescript": "^2.2.2", + "tslib": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "typescript": ">= 4.x", + "webpack": ">= 4" } }, - "node_modules/@storybook/react/node_modules/find-cache-dir": { + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/find-cache-dir": { "version": "3.3.2", "dev": true, "license": "MIT", @@ -15876,7 +13867,7 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/@storybook/react/node_modules/find-cache-dir/node_modules/find-up": { + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/find-up": { "version": "4.1.0", "dev": true, "license": "MIT", @@ -15888,89 +13879,7 @@ "node": ">=8" } }, - "node_modules/@storybook/react/node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/react/node_modules/fs-extra": { - "version": "11.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/react/node_modules/glob": { - "version": "10.4.2", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/react/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/react/node_modules/is-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react/node_modules/jackspeak": { - "version": "3.4.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/@storybook/react/node_modules/locate-path": { + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/locate-path": { "version": "5.0.0", "dev": true, "license": "MIT", @@ -15981,7 +13890,7 @@ "node": ">=8" } }, - "node_modules/@storybook/react/node_modules/make-dir": { + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/make-dir": { "version": "3.1.0", "dev": true, "license": "MIT", @@ -15995,37 +13904,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/react/node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@storybook/react/node_modules/minimatch": { - "version": "9.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/react/node_modules/minipass": { - "version": "7.1.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@storybook/react/node_modules/p-limit": { + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/p-limit": { "version": "2.3.0", "dev": true, "license": "MIT", @@ -16039,7 +13918,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/react/node_modules/p-locate": { + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/p-locate": { "version": "4.1.0", "dev": true, "license": "MIT", @@ -16050,7 +13929,7 @@ "node": ">=8" } }, - "node_modules/@storybook/react/node_modules/path-exists": { + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/path-exists": { "version": "4.0.0", "dev": true, "license": "MIT", @@ -16058,148 +13937,145 @@ "node": ">=8" } }, - "node_modules/@storybook/react/node_modules/recast": { - "version": "0.23.9", + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/pkg-dir": { + "version": "4.2.0", "dev": true, "license": "MIT", "dependencies": { - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tiny-invariant": "^1.3.3", - "tslib": "^2.0.1" + "find-up": "^4.0.0" }, "engines": { - "node": ">= 4" + "node": ">=8" } }, - "node_modules/@storybook/react/node_modules/source-map": { - "version": "0.6.1", + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/semver": { + "version": "6.3.1", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@storybook/react/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/@storybook/react-dom-shim": { + "version": "8.1.10", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/react/node_modules/temp-dir": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" } }, - "node_modules/@storybook/react/node_modules/tempy": { - "version": "3.1.0", + "node_modules/@storybook/react-webpack5": { + "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "is-stream": "^3.0.0", - "temp-dir": "^3.0.0", - "type-fest": "^2.12.2", - "unique-string": "^3.0.0" + "@storybook/builder-webpack5": "8.1.6", + "@storybook/preset-react-webpack": "8.1.6", + "@storybook/react": "8.1.6", + "@storybook/types": "8.1.6", + "@types/node": "^18.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=18.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "typescript": ">= 4.2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@storybook/react/node_modules/unique-string": { - "version": "3.0.0", + "node_modules/@storybook/react-webpack5/node_modules/@storybook/react": { + "version": "8.1.6", "dev": true, "license": "MIT", "dependencies": { - "crypto-random-string": "^4.0.0" + "@storybook/client-logger": "8.1.6", + "@storybook/docs-tools": "8.1.6", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.1.6", + "@storybook/react-dom-shim": "8.1.6", + "@storybook/types": "8.1.6", + "@types/escodegen": "^0.0.6", + "@types/estree": "^0.0.51", + "@types/node": "^18.0.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "escodegen": "^2.1.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^15.0.0", + "semver": "^7.3.7", + "ts-dedent": "^2.0.0", + "type-fest": "~2.19", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=12" + "node": ">=18.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react/node_modules/util": { - "version": "0.12.5", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "typescript": ">= 4.2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@storybook/router": { - "version": "8.1.10", + "node_modules/@storybook/react-webpack5/node_modules/@storybook/react-dom-shim": { + "version": "8.1.6", "dev": true, "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.10", - "memoizerific": "^1.11.3", - "qs": "^6.10.0" - }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" } }, - "node_modules/@storybook/router/node_modules/@storybook/client-logger": { - "version": "8.1.10", + "node_modules/@storybook/react-webpack5/node_modules/@types/node": { + "version": "18.19.28", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "undici-types": "~5.26.4" } }, - "node_modules/@storybook/telemetry": { - "version": "8.1.10", + "node_modules/@storybook/react-webpack5/node_modules/type-fest": { + "version": "2.19.0", "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "chalk": "^4.1.0", - "detect-package-manager": "^2.0.1", - "fetch-retry": "^5.0.2", - "fs-extra": "^11.1.0", - "read-pkg-up": "^7.0.1" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/@babel/traverse": { + "node_modules/@storybook/react/node_modules/@babel/traverse": { "version": "7.24.7", "dev": true, "license": "MIT", @@ -16219,7 +14095,7 @@ "node": ">=6.9.0" } }, - "node_modules/@storybook/telemetry/node_modules/@storybook/channels": { + "node_modules/@storybook/react/node_modules/@storybook/channels": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -16235,7 +14111,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/telemetry/node_modules/@storybook/client-logger": { + "node_modules/@storybook/react/node_modules/@storybook/client-logger": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -16247,7 +14123,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/telemetry/node_modules/@storybook/core-common": { + "node_modules/@storybook/react/node_modules/@storybook/core-common": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -16295,7 +14171,7 @@ } } }, - "node_modules/@storybook/telemetry/node_modules/@storybook/core-events": { + "node_modules/@storybook/react/node_modules/@storybook/core-events": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -16308,7 +14184,7 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/telemetry/node_modules/@storybook/csf-tools": { + "node_modules/@storybook/react/node_modules/@storybook/csf-tools": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -16328,16 +14204,60 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/telemetry/node_modules/@storybook/node-logger": { + "node_modules/@storybook/react/node_modules/@storybook/docs-tools": { "version": "8.1.10", "dev": true, "license": "MIT", + "dependencies": { + "@storybook/core-common": "8.1.10", + "@storybook/core-events": "8.1.10", + "@storybook/preview-api": "8.1.10", + "@storybook/types": "8.1.10", + "@types/doctrine": "^0.0.3", + "assert": "^2.1.0", + "doctrine": "^3.0.0", + "lodash": "^4.17.21" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/telemetry/node_modules/@storybook/types": { + "node_modules/@storybook/react/node_modules/@storybook/node-logger": { + "version": "8.1.10", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/react/node_modules/@storybook/preview-api": { + "version": "8.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "8.1.10", + "@storybook/client-logger": "8.1.10", + "@storybook/core-events": "8.1.10", + "@storybook/csf": "^0.1.7", + "@storybook/global": "^5.0.0", + "@storybook/types": "8.1.10", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/react/node_modules/@storybook/types": { "version": "8.1.10", "dev": true, "license": "MIT", @@ -16351,7 +14271,15 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/telemetry/node_modules/ansi-styles": { + "node_modules/@storybook/react/node_modules/@types/node": { + "version": "18.19.39", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/react/node_modules/ansi-styles": { "version": "4.3.0", "dev": true, "license": "MIT", @@ -16365,7 +14293,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/telemetry/node_modules/brace-expansion": { + "node_modules/@storybook/react/node_modules/assert": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/@storybook/react/node_modules/brace-expansion": { "version": "2.0.1", "dev": true, "license": "MIT", @@ -16373,7 +14313,7 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@storybook/telemetry/node_modules/chalk": { + "node_modules/@storybook/react/node_modules/chalk": { "version": "4.1.2", "dev": true, "license": "MIT", @@ -16388,7 +14328,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/telemetry/node_modules/color-convert": { + "node_modules/@storybook/react/node_modules/color-convert": { "version": "2.0.1", "dev": true, "license": "MIT", @@ -16399,12 +14339,12 @@ "node": ">=7.0.0" } }, - "node_modules/@storybook/telemetry/node_modules/color-name": { + "node_modules/@storybook/react/node_modules/color-name": { "version": "1.1.4", "dev": true, "license": "MIT" }, - "node_modules/@storybook/telemetry/node_modules/crypto-random-string": { + "node_modules/@storybook/react/node_modules/crypto-random-string": { "version": "4.0.0", "dev": true, "license": "MIT", @@ -16418,7 +14358,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/crypto-random-string/node_modules/type-fest": { + "node_modules/@storybook/react/node_modules/crypto-random-string/node_modules/type-fest": { "version": "1.4.0", "dev": true, "license": "(MIT OR CC0-1.0)", @@ -16429,7 +14369,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/find-cache-dir": { + "node_modules/@storybook/react/node_modules/find-cache-dir": { "version": "3.3.2", "dev": true, "license": "MIT", @@ -16445,7 +14385,7 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/@storybook/telemetry/node_modules/find-cache-dir/node_modules/find-up": { + "node_modules/@storybook/react/node_modules/find-cache-dir/node_modules/find-up": { "version": "4.1.0", "dev": true, "license": "MIT", @@ -16457,7 +14397,7 @@ "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/find-cache-dir/node_modules/pkg-dir": { + "node_modules/@storybook/react/node_modules/find-cache-dir/node_modules/pkg-dir": { "version": "4.2.0", "dev": true, "license": "MIT", @@ -16468,7 +14408,7 @@ "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/fs-extra": { + "node_modules/@storybook/react/node_modules/fs-extra": { "version": "11.2.0", "dev": true, "license": "MIT", @@ -16481,7 +14421,7 @@ "node": ">=14.14" } }, - "node_modules/@storybook/telemetry/node_modules/glob": { + "node_modules/@storybook/react/node_modules/glob": { "version": "10.4.2", "dev": true, "license": "ISC", @@ -16503,7 +14443,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/telemetry/node_modules/has-flag": { + "node_modules/@storybook/react/node_modules/has-flag": { "version": "4.0.0", "dev": true, "license": "MIT", @@ -16511,7 +14451,7 @@ "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/is-stream": { + "node_modules/@storybook/react/node_modules/is-stream": { "version": "3.0.0", "dev": true, "license": "MIT", @@ -16522,7 +14462,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/jackspeak": { + "node_modules/@storybook/react/node_modules/jackspeak": { "version": "3.4.0", "dev": true, "license": "BlueOak-1.0.0", @@ -16539,7 +14479,7 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/@storybook/telemetry/node_modules/locate-path": { + "node_modules/@storybook/react/node_modules/locate-path": { "version": "5.0.0", "dev": true, "license": "MIT", @@ -16550,7 +14490,7 @@ "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/make-dir": { + "node_modules/@storybook/react/node_modules/make-dir": { "version": "3.1.0", "dev": true, "license": "MIT", @@ -16564,7 +14504,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/make-dir/node_modules/semver": { + "node_modules/@storybook/react/node_modules/make-dir/node_modules/semver": { "version": "6.3.1", "dev": true, "license": "ISC", @@ -16572,7 +14512,7 @@ "semver": "bin/semver.js" } }, - "node_modules/@storybook/telemetry/node_modules/minimatch": { + "node_modules/@storybook/react/node_modules/minimatch": { "version": "9.0.4", "dev": true, "license": "ISC", @@ -16586,7 +14526,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/telemetry/node_modules/minipass": { + "node_modules/@storybook/react/node_modules/minipass": { "version": "7.1.2", "dev": true, "license": "ISC", @@ -16594,7 +14534,7 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/@storybook/telemetry/node_modules/p-limit": { + "node_modules/@storybook/react/node_modules/p-limit": { "version": "2.3.0", "dev": true, "license": "MIT", @@ -16608,7 +14548,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/p-locate": { + "node_modules/@storybook/react/node_modules/p-locate": { "version": "4.1.0", "dev": true, "license": "MIT", @@ -16619,7 +14559,7 @@ "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/path-exists": { + "node_modules/@storybook/react/node_modules/path-exists": { "version": "4.0.0", "dev": true, "license": "MIT", @@ -16627,7 +14567,7 @@ "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/recast": { + "node_modules/@storybook/react/node_modules/recast": { "version": "0.23.9", "dev": true, "license": "MIT", @@ -16642,7 +14582,7 @@ "node": ">= 4" } }, - "node_modules/@storybook/telemetry/node_modules/source-map": { + "node_modules/@storybook/react/node_modules/source-map": { "version": "0.6.1", "dev": true, "license": "BSD-3-Clause", @@ -16650,7 +14590,7 @@ "node": ">=0.10.0" } }, - "node_modules/@storybook/telemetry/node_modules/supports-color": { + "node_modules/@storybook/react/node_modules/supports-color": { "version": "7.2.0", "dev": true, "license": "MIT", @@ -16661,7 +14601,7 @@ "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/temp-dir": { + "node_modules/@storybook/react/node_modules/temp-dir": { "version": "3.0.0", "dev": true, "license": "MIT", @@ -16669,7 +14609,7 @@ "node": ">=14.16" } }, - "node_modules/@storybook/telemetry/node_modules/tempy": { + "node_modules/@storybook/react/node_modules/tempy": { "version": "3.1.0", "dev": true, "license": "MIT", @@ -16686,7 +14626,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/type-fest": { + "node_modules/@storybook/react/node_modules/type-fest": { "version": "2.19.0", "dev": true, "license": "(MIT OR CC0-1.0)", @@ -16697,7 +14637,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/unique-string": { + "node_modules/@storybook/react/node_modules/unique-string": { "version": "3.0.0", "dev": true, "license": "MIT", @@ -16711,7 +14651,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/telemetry/node_modules/util": { + "node_modules/@storybook/react/node_modules/util": { "version": "0.12.5", "dev": true, "license": "MIT", @@ -16723,6 +14663,32 @@ "which-typed-array": "^1.1.2" } }, + "node_modules/@storybook/router": { + "version": "8.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "8.1.10", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/router/node_modules/@storybook/client-logger": { + "version": "8.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, "node_modules/@storybook/theming": { "version": "8.1.10", "dev": true, @@ -17468,6 +15434,8 @@ }, "node_modules/@types/cross-spawn": { "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", "dev": true, "license": "MIT", "dependencies": { @@ -17482,26 +15450,11 @@ "@types/ms": "*" } }, - "node_modules/@types/detect-port": { - "version": "1.3.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/diff": { - "version": "5.2.1", - "dev": true, - "license": "MIT" - }, "node_modules/@types/doctrine": { "version": "0.0.3", "dev": true, "license": "MIT" }, - "node_modules/@types/ejs": { - "version": "3.1.5", - "dev": true, - "license": "MIT" - }, "node_modules/@types/emscripten": { "version": "1.39.10", "dev": true, @@ -17735,7 +15688,8 @@ "node_modules/@types/mime-db": { "version": "1.43.5", "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.43.5.tgz", - "integrity": "sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A==" + "integrity": "sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A==", + "dev": true }, "node_modules/@types/minimatch": { "version": "3.0.5", @@ -17783,11 +15737,6 @@ "@types/node": "*" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "dev": true, - "license": "MIT" - }, "node_modules/@types/parse-json": { "version": "4.0.0", "dev": true, @@ -17803,11 +15752,6 @@ "xmlbuilder": ">=11.0.1" } }, - "node_modules/@types/pretty-hrtime": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, "node_modules/@types/prop-types": { "version": "15.7.5", "license": "MIT" @@ -18598,7 +16542,8 @@ }, "node_modules/@urql/core": { "version": "2.3.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", + "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.0", "wonka": "^4.0.14" @@ -18609,7 +16554,8 @@ }, "node_modules/@urql/exchange-retry": { "version": "0.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", + "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", "dependencies": { "@urql/core": ">=2.3.1", "wonka": "^4.0.14" @@ -18872,20 +16818,6 @@ "version": "4.2.2", "license": "Apache-2.0" }, - "node_modules/@yarnpkg/esbuild-plugin-pnp": { - "version": "3.0.0-rc.15", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "esbuild": ">=0.10.0" - } - }, "node_modules/@yarnpkg/fslib": { "version": "2.10.3", "dev": true, @@ -19029,21 +16961,6 @@ "node": ">=0.4.0" } }, - "node_modules/address": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/adm-zip": { - "version": "0.5.10", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, "node_modules/agent-base": { "version": "6.0.2", "license": "MIT", @@ -19398,7 +17315,8 @@ }, "node_modules/application-config-path": { "version": "0.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", + "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==" }, "node_modules/applicationinsights": { "version": "2.7.3", @@ -19592,6 +17510,7 @@ }, "node_modules/array-flatten": { "version": "1.1.1", + "dev": true, "license": "MIT" }, "node_modules/array-includes": { @@ -20634,8 +18553,9 @@ } }, "node_modules/babel-preset-expo": { - "version": "11.0.11", - "license": "MIT", + "version": "11.0.14", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.14.tgz", + "integrity": "sha512-4BVYR0Sc2sSNxYTiE/OLSnPiOp+weFNy8eV+hX3aD6YAIbBnw+VubKRWqJV/sOJauzOLz0SgYAYyFciYMqizRA==", "dependencies": { "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-transform-export-namespace-from": "^7.22.11", @@ -20643,25 +18563,52 @@ "@babel/plugin-transform-parameters": "^7.22.15", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.74.84", + "@react-native/babel-preset": "0.74.87", "babel-plugin-react-compiler": "^0.0.0-experimental-592953e-20240517", "babel-plugin-react-native-web": "~0.19.10", "react-refresh": "^0.14.2" } }, + "node_modules/babel-preset-expo/node_modules/@babel/generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz", + "integrity": "sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==", + "dependencies": { + "@babel/types": "^7.2.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-preset-expo/node_modules/@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/babel-preset-expo/node_modules/@react-native/babel-plugin-codegen": { - "version": "0.74.84", - "license": "MIT", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.87.tgz", + "integrity": "sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==", "dependencies": { - "@react-native/codegen": "0.74.84" + "@react-native/codegen": "0.74.87" }, "engines": { "node": ">=18" } }, "node_modules/babel-preset-expo/node_modules/@react-native/babel-preset": { - "version": "0.74.84", - "license": "MIT", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.87.tgz", + "integrity": "sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==", "dependencies": { "@babel/core": "^7.20.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", @@ -20703,7 +18650,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.84", + "@react-native/babel-plugin-codegen": "0.74.87", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, @@ -20715,8 +18662,9 @@ } }, "node_modules/babel-preset-expo/node_modules/@react-native/codegen": { - "version": "0.74.84", - "license": "MIT", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.87.tgz", + "integrity": "sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==", "dependencies": { "@babel/parser": "^7.20.0", "glob": "^7.1.1", @@ -20733,28 +18681,112 @@ "@babel/preset-env": "^7.1.6" } }, + "node_modules/babel-preset-expo/node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/babel-preset-expo/node_modules/@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, "node_modules/babel-preset-expo/node_modules/babel-plugin-react-compiler": { - "version": "0.0.0", - "license": "MIT" + "version": "0.0.0-experimental-e68eda9-20240829", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-e68eda9-20240829.tgz", + "integrity": "sha512-H7e+R9ze2Ftdbh4W7C1oUIdWSn4xQEcRQDM2vVG2LBA8qiyvnnSR5L6+e06/J3fYHjFEkgdL96FsdOM7TNW2AA==", + "dependencies": { + "@babel/generator": "7.2.0", + "@babel/types": "^7.19.0", + "chalk": "4", + "invariant": "^2.2.4", + "pretty-format": "^24", + "zod": "^3.22.4", + "zod-validation-error": "^2.1.0" + } }, "node_modules/babel-preset-expo/node_modules/babel-plugin-react-native-web": { "version": "0.19.12", - "license": "MIT" + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.12.tgz", + "integrity": "sha512-eYZ4+P6jNcB37lObWIg0pUbi7+3PKoU1Oie2j0C8UF3cXyXoR74tO2NBjI/FORb2LJyItJZEAmjU5pSaJYEL1w==" + }, + "node_modules/babel-preset-expo/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-preset-expo/node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-preset-expo/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-preset-expo/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/babel-preset-expo/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } }, "node_modules/babel-preset-expo/node_modules/hermes-estree": { "version": "0.19.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz", + "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==" }, "node_modules/babel-preset-expo/node_modules/hermes-parser": { "version": "0.19.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz", + "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==", "dependencies": { "hermes-estree": "0.19.1" } }, "node_modules/babel-preset-expo/node_modules/mkdirp": { "version": "0.5.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { "minimist": "^1.2.6" }, @@ -20762,6 +18794,55 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/babel-preset-expo/node_modules/pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dependencies": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-preset-expo/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/babel-preset-expo/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-preset-expo/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-preset-expo/node_modules/zod-validation-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz", + "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.18.0" + } + }, "node_modules/babel-preset-jest": { "version": "29.6.3", "license": "MIT", @@ -20975,40 +19056,6 @@ "node": "*" } }, - "node_modules/bin-links": { - "version": "4.0.2", - "license": "ISC", - "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/bin-links/node_modules/signal-exit": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/bin-links/node_modules/write-file-atomic": { - "version": "5.0.1", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "devOptional": true, @@ -21064,19 +19111,22 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.0", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, "license": "MIT", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", + "qs": "6.13.0", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -21087,6 +19137,9 @@ }, "node_modules/body-parser/node_modules/bytes": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -21094,6 +19147,9 @@ }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "2.0.0" @@ -21101,6 +19157,9 @@ }, "node_modules/body-parser/node_modules/iconv-lite": { "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -21111,6 +19170,9 @@ }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, "license": "MIT" }, "node_modules/bonjour-service": { @@ -21143,17 +19205,6 @@ "stream-buffers": "2.2.x" } }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "license": "MIT", @@ -21521,7 +19572,8 @@ }, "node_modules/builtins": { "version": "1.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" }, "node_modules/bundle-name": { "version": "4.1.0", @@ -21560,8 +19612,9 @@ } }, "node_modules/cacache": { - "version": "18.0.3", - "license": "ISC", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", @@ -21582,14 +19635,16 @@ }, "node_modules/cacache/node_modules/brace-expansion": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/cacache/node_modules/fs-minipass": { "version": "3.0.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dependencies": { "minipass": "^7.0.3" }, @@ -21598,8 +19653,9 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.4.2", - "license": "ISC", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -21611,22 +19667,17 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/jackspeak": { - "version": "3.4.0", - "license": "BlueOak-1.0.0", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -21635,15 +19686,14 @@ } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.3.0", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/cacache/node_modules/minimatch": { "version": "9.0.5", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -21656,7 +19706,8 @@ }, "node_modules/cacache/node_modules/minipass": { "version": "7.1.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -21894,7 +19945,8 @@ }, "node_modules/charenc": { "version": "0.0.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "engines": { "node": "*" } @@ -21993,6 +20045,8 @@ }, "node_modules/citty": { "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", "dev": true, "license": "MIT", "dependencies": { @@ -22158,20 +20212,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-table3": { - "version": "0.6.5", - "dev": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, "node_modules/cli-truncate": { "version": "2.1.0", "dev": true, @@ -22277,13 +20317,6 @@ "node": ">=6" } }, - "node_modules/cmd-shim": { - "version": "6.0.1", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/co": { "version": "4.6.0", "license": "MIT", @@ -22386,11 +20419,13 @@ "license": "MIT" }, "node_modules/commander": { - "version": "6.2.1", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=18" } }, "node_modules/comment-parser": { @@ -22437,7 +20472,8 @@ }, "node_modules/component-type": { "version": "1.2.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz", + "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==", "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -22616,6 +20652,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true, + "license": "MIT" + }, "node_modules/config-file-ts": { "version": "0.2.8-rc1", "dev": true, @@ -22760,6 +20803,8 @@ }, "node_modules/consola": { "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", "dev": true, "license": "MIT", "engines": { @@ -22780,6 +20825,7 @@ }, "node_modules/content-disposition": { "version": "0.5.4", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" @@ -22790,6 +20836,7 @@ }, "node_modules/content-disposition/node_modules/safe-buffer": { "version": "5.2.1", + "dev": true, "funding": [ { "type": "github", @@ -22808,6 +20855,9 @@ }, "node_modules/content-type": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -22827,7 +20877,10 @@ "license": "MIT" }, "node_modules/cookie": { - "version": "0.5.0", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -22835,6 +20888,7 @@ }, "node_modules/cookie-signature": { "version": "1.0.6", + "dev": true, "license": "MIT" }, "node_modules/copy-descriptor": { @@ -23092,6 +21146,143 @@ "devOptional": true, "license": "MIT" }, + "node_modules/create-storybook": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/create-storybook/-/create-storybook-8.3.0.tgz", + "integrity": "sha512-MAcMWX7V4VE1W47O6tiwL4xBJprsa7b0cqLECNSKaW8nvr7LSFgveobIqWG7i1DqQg/cGWA09o2YRDc2LOFsmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/semver": "^7.3.4", + "chalk": "^4.1.0", + "commander": "^12.1.0", + "execa": "^5.0.0", + "fd-package-json": "^1.2.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "ora": "^5.4.1", + "prettier": "^3.1.1", + "prompts": "^2.4.0", + "semver": "^7.3.7", + "storybook": "8.3.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0" + }, + "bin": { + "create-storybook": "bin/index.cjs" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/create-storybook/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-storybook/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-storybook/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-storybook/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-storybook/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/create-storybook/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/create-storybook/node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/create-storybook/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cross-fetch": { "version": "3.1.5", "license": "MIT", @@ -23113,7 +21304,8 @@ }, "node_modules/crypt": { "version": "0.0.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "engines": { "node": "*" } @@ -23144,7 +21336,8 @@ }, "node_modules/crypto-random-string": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "engines": { "node": ">=8" } @@ -23408,7 +21601,8 @@ }, "node_modules/dag-map": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", + "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -23579,7 +21773,8 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "engines": { "node": ">=4.0.0" } @@ -23611,21 +21806,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/default-browser/node_modules/default-browser-id": { "version": "5.0.0", "dev": true, @@ -23717,6 +21897,8 @@ }, "node_modules/defu": { "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", "dev": true, "license": "MIT" }, @@ -23865,14 +22047,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-indent": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/detect-libc": { "version": "2.0.1", "devOptional": true, @@ -23898,33 +22072,6 @@ "dev": true, "license": "MIT" }, - "node_modules/detect-package-manager": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/detect-port": { - "version": "1.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - }, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/diagnostic-channel": { "version": "1.1.1", "license": "MIT", @@ -24230,17 +22377,6 @@ "dev": true, "license": "MIT" }, - "node_modules/duplexify": { - "version": "3.7.1", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "node_modules/earcut": { "version": "2.2.4", "license": "ISC" @@ -24612,7 +22748,8 @@ }, "node_modules/env-editor": { "version": "0.4.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", "engines": { "node": ">=8" } @@ -24636,7 +22773,8 @@ }, "node_modules/eol": { "version": "0.9.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==" }, "node_modules/err-code": { "version": "2.0.3", @@ -24899,11 +23037,6 @@ "@esbuild/win32-x64": "0.20.2" } }, - "node_modules/esbuild-plugin-alias": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, "node_modules/esbuild-register": { "version": "3.5.0", "dev": true, @@ -25283,6 +23416,154 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-deprecation": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-deprecation/-/eslint-plugin-deprecation-3.0.0.tgz", + "integrity": "sha512-JuVLdNg/uf0Adjg2tpTyYoYaMbwQNn/c78P1HcccokvhtRphgnRjZDKmhlxbxYptppex03zO76f97DD/yQHv7A==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^7.0.0", + "ts-api-utils": "^1.3.0", + "tslib": "^2.3.1" + }, + "peerDependencies": { + "eslint": "^8.0.0", + "typescript": "^4.2.4 || ^5.0.0" + } + }, + "node_modules/eslint-plugin-deprecation/node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-deprecation/node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-deprecation/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-deprecation/node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/eslint-plugin-deprecation/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-deprecation/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-deprecation/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-deprecation/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/eslint-plugin-es": { "version": "4.1.0", "dev": true, @@ -26103,7 +24384,8 @@ }, "node_modules/exec-async": { "version": "2.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", + "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==" }, "node_modules/execa": { "version": "5.1.1", @@ -26272,9 +24554,9 @@ } }, "node_modules/expensify-common": { - "version": "2.0.83", - "resolved": "https://registry.npmjs.org/expensify-common/-/expensify-common-2.0.83.tgz", - "integrity": "sha512-7CHVxV5yEJ43GGKF0UXiLKaSdfKaSHE4YC2+30gKxuWbs5XrOLOK3TcCzk54uBfbmPjmx6VrADbR9uzS4H0A0g==", + "version": "2.0.84", + "resolved": "https://registry.npmjs.org/expensify-common/-/expensify-common-2.0.84.tgz", + "integrity": "sha512-VistjMexRz/1u1IqjIZwGRE7aS6QOat7420Dualn+NaqMHGkfeeB4uUR3RQhCtlDbcwFBKTryIGgSrrC0N1YpA==", "dependencies": { "awesome-phonenumber": "^5.4.0", "classnames": "2.5.0", @@ -26313,22 +24595,23 @@ } }, "node_modules/expo": { - "version": "51.0.17", - "license": "MIT", + "version": "51.0.31", + "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.31.tgz", + "integrity": "sha512-YiUNcxzSkQ0jlKW+e8F81KnZfAhCugEZI9VYmuIsFONHivtiYIADHdcFvUWnexUEdgPQDkgWw85XBnIbzIZ39Q==", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.18.21", - "@expo/config": "9.0.1", - "@expo/config-plugins": "8.0.6", - "@expo/metro-config": "0.18.8", + "@expo/cli": "0.18.29", + "@expo/config": "9.0.3", + "@expo/config-plugins": "8.0.8", + "@expo/metro-config": "0.18.11", "@expo/vector-icons": "^14.0.0", - "babel-preset-expo": "~11.0.11", + "babel-preset-expo": "~11.0.14", "expo-asset": "~10.0.10", "expo-file-system": "~17.0.1", - "expo-font": "~12.0.7", + "expo-font": "~12.0.9", "expo-keep-awake": "~13.0.2", - "expo-modules-autolinking": "1.11.1", - "expo-modules-core": "1.12.18", + "expo-modules-autolinking": "1.11.2", + "expo-modules-core": "1.12.23", "fbemitter": "^3.0.0", "whatwg-url-without-unicode": "8.0.0-3" }, @@ -26349,8 +24632,9 @@ } }, "node_modules/expo-av": { - "version": "14.0.6", - "license": "MIT", + "version": "14.0.7", + "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-14.0.7.tgz", + "integrity": "sha512-FvKZxyy+2/qcCmp+e1GTK3s4zH8ZO1RfjpqNxh7ARlS1oH8HPtk1AyZAMo52tHz3yQ3UIqxQ2YbI9CFb4065lA==", "peerDependencies": { "expo": "*" } @@ -26374,8 +24658,9 @@ } }, "node_modules/expo-font": { - "version": "12.0.7", - "license": "MIT", + "version": "12.0.9", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.9.tgz", + "integrity": "sha512-seTCyf0tbgkAnp3ZI9ZfK9QVtURQUgFnuj+GuJ5TSnN0XsOtVe1s2RxTvmMgkfuvfkzcjJ69gyRpsZS1cC8hjw==", "dependencies": { "fontfaceobserver": "^2.1.0" }, @@ -26384,8 +24669,9 @@ } }, "node_modules/expo-image": { - "version": "1.12.12", - "license": "MIT", + "version": "1.12.15", + "resolved": "https://registry.npmjs.org/expo-image/-/expo-image-1.12.15.tgz", + "integrity": "sha512-rjvnNSaFnrmlugDESTaYJhgdqRLn+M5vu0lD5NGNd2LkxGG5HrRV3gSzeyQQ68XRhrDN8eJvkcKujPKJUTMraw==", "peerDependencies": { "expo": "*" } @@ -26415,14 +24701,17 @@ } }, "node_modules/expo-modules-autolinking": { - "version": "1.11.1", - "license": "MIT", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.2.tgz", + "integrity": "sha512-fdcaNO8ucHA3yLNY52ZUENBcAG7KEx8QyMmnVNavO1JVBGRMZG8JyVcbrhYQDtVtpxkbai5YzwvLutINvbDZDQ==", "dependencies": { "chalk": "^4.1.0", "commander": "^7.2.0", "fast-glob": "^3.2.5", "find-up": "^5.0.0", - "fs-extra": "^9.1.0" + "fs-extra": "^9.1.0", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" @@ -26430,7 +24719,8 @@ }, "node_modules/expo-modules-autolinking/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -26443,7 +24733,8 @@ }, "node_modules/expo-modules-autolinking/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -26457,7 +24748,8 @@ }, "node_modules/expo-modules-autolinking/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -26467,25 +24759,29 @@ }, "node_modules/expo-modules-autolinking/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/expo-modules-autolinking/node_modules/commander": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "engines": { "node": ">= 10" } }, "node_modules/expo-modules-autolinking/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/expo-modules-autolinking/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -26494,22 +24790,25 @@ } }, "node_modules/expo-modules-core": { - "version": "1.12.18", - "license": "MIT", + "version": "1.12.23", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.23.tgz", + "integrity": "sha512-NYp/rWhKW6zlqNdC8/r+FckzlAGWX0IJEjOxwYHuYeRUn/vnKksb43G4E3jcaQEZgmWlKxK4LpxL3gr7m0RJFA==", "dependencies": { "invariant": "^2.2.4" } }, "node_modules/expo/node_modules/@babel/code-frame": { "version": "7.10.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/expo/node_modules/@expo/config-plugins": { - "version": "8.0.6", - "license": "MIT", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.8.tgz", + "integrity": "sha512-Fvu6IO13EUw0R9WeqxUO37FkM62YJBNcZb9DyJAOgMz7Ez/vaKQGEjKt9cwT+Q6uirtCATMgaq6VWAW7YW8xXw==", "dependencies": { "@expo/config-types": "^51.0.0-unreleased", "@expo/json-file": "~8.3.0", @@ -26530,11 +24829,13 @@ }, "node_modules/expo/node_modules/@expo/config-types": { "version": "51.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.2.tgz", + "integrity": "sha512-IglkIoiDwJMY01lYkF/ZSBoe/5cR+O3+Gx6fpLFjLfgZGBTdyPkKa1g8NWoWQCk+D3cKL2MDbszT2DyRRB0YqQ==" }, "node_modules/expo/node_modules/@expo/json-file": { "version": "8.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", + "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.2", @@ -26543,7 +24844,8 @@ }, "node_modules/expo/node_modules/@expo/plist": { "version": "0.1.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", + "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", "dependencies": { "@xmldom/xmldom": "~0.7.7", "base64-js": "^1.2.3", @@ -26552,7 +24854,8 @@ }, "node_modules/expo/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -26565,7 +24868,8 @@ }, "node_modules/expo/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -26579,7 +24883,8 @@ }, "node_modules/expo/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -26589,18 +24894,21 @@ }, "node_modules/expo/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/expo/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/expo/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -26614,35 +24922,38 @@ "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.18.1", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", + "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", + "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -26655,17 +24966,59 @@ }, "node_modules/express/node_modules/debug": { "version": "2.6.9", + "dev": true, "license": "MIT", "dependencies": { "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", + "dev": true, "license": "MIT" }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", + "dev": true, "funding": [ { "type": "github", @@ -26682,6 +25035,48 @@ ], "license": "MIT" }, + "node_modules/express/node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/extend-shallow": { "version": "3.0.2", "license": "MIT", @@ -26917,6 +25312,16 @@ "version": "1.0.2", "license": "MIT" }, + "node_modules/fd-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-1.2.0.tgz", + "integrity": "sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "walk-up-path": "^3.0.1" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "dev": true, @@ -26925,11 +25330,6 @@ "pend": "~1.2.0" } }, - "node_modules/fetch-retry": { - "version": "5.0.6", - "dev": true, - "license": "MIT" - }, "node_modules/file-entry-cache": { "version": "6.0.1", "dev": true, @@ -27014,6 +25414,7 @@ }, "node_modules/finalhandler": { "version": "1.2.0", + "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", @@ -27030,6 +25431,7 @@ }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", + "dev": true, "license": "MIT", "dependencies": { "ms": "2.0.0" @@ -27037,6 +25439,7 @@ }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", + "dev": true, "license": "MIT" }, "node_modules/find-babel-config": { @@ -27203,6 +25606,7 @@ }, "node_modules/follow-redirects": { "version": "1.15.5", + "dev": true, "funding": [ { "type": "individual", @@ -27221,7 +25625,8 @@ }, "node_modules/fontfaceobserver": { "version": "2.3.0", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", + "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==" }, "node_modules/for-each": { "version": "0.3.3", @@ -27378,7 +25783,8 @@ }, "node_modules/form-data": { "version": "3.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -27415,6 +25821,7 @@ }, "node_modules/forwarded": { "version": "0.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -27445,7 +25852,8 @@ }, "node_modules/freeport-async": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", + "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", "engines": { "node": ">=8" } @@ -27460,7 +25868,8 @@ "node_modules/fs-constants": { "version": "1.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/fs-extra": { "version": "9.1.0", @@ -27721,14 +26130,6 @@ "node": ">=6" } }, - "node_modules/get-npm-tarball-url": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "license": "MIT", @@ -27738,7 +26139,8 @@ }, "node_modules/get-port": { "version": "3.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", "engines": { "node": ">=4" } @@ -27784,6 +26186,8 @@ }, "node_modules/giget": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz", + "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==", "dev": true, "license": "MIT", "dependencies": { @@ -27947,14 +26351,16 @@ }, "node_modules/graphql": { "version": "15.8.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", "engines": { "node": ">= 10.x" } }, "node_modules/graphql-tag": { "version": "2.12.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", "dependencies": { "tslib": "^2.1.0" }, @@ -27969,35 +26375,6 @@ "version": "1.1.0", "license": "ISC" }, - "node_modules/gunzip-maybe": { - "version": "1.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-zlib": "^0.1.4", - "is-deflate": "^1.0.0", - "is-gzip": "^1.0.0", - "peek-stream": "^1.1.0", - "pumpify": "^1.3.3", - "through2": "^2.0.3" - }, - "bin": { - "gunzip-maybe": "bin.js" - } - }, - "node_modules/gunzip-maybe/node_modules/browserify-zlib": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "pako": "~0.2.0" - } - }, - "node_modules/gunzip-maybe/node_modules/pako": { - "version": "0.2.9", - "dev": true, - "license": "MIT" - }, "node_modules/gzip-size": { "version": "6.0.0", "dev": true, @@ -28728,21 +27105,6 @@ "ms": "^2.0.0" } }, - "node_modules/husky": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.5.tgz", - "integrity": "sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==", - "dev": true, - "bin": { - "husky": "bin.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/hyperdyperid": { "version": "1.2.0", "dev": true, @@ -28989,7 +27351,8 @@ }, "node_modules/ini": { "version": "1.3.8", - "license": "ISC" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/inline-style-prefixer": { "version": "6.0.1", @@ -29000,7 +27363,8 @@ }, "node_modules/internal-ip": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "dependencies": { "default-gateway": "^4.2.0", "ipaddr.js": "^1.9.0" @@ -29011,7 +27375,8 @@ }, "node_modules/internal-ip/node_modules/cross-spawn": { "version": "6.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -29025,7 +27390,8 @@ }, "node_modules/internal-ip/node_modules/default-gateway": { "version": "4.2.0", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "dependencies": { "execa": "^1.0.0", "ip-regex": "^2.1.0" @@ -29036,7 +27402,8 @@ }, "node_modules/internal-ip/node_modules/execa": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dependencies": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -29052,7 +27419,8 @@ }, "node_modules/internal-ip/node_modules/get-stream": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dependencies": { "pump": "^3.0.0" }, @@ -29062,14 +27430,16 @@ }, "node_modules/internal-ip/node_modules/is-stream": { "version": "1.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/internal-ip/node_modules/npm-run-path": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dependencies": { "path-key": "^2.0.0" }, @@ -29079,21 +27449,24 @@ }, "node_modules/internal-ip/node_modules/path-key": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "engines": { "node": ">=4" } }, "node_modules/internal-ip/node_modules/semver": { "version": "5.7.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } }, "node_modules/internal-ip/node_modules/shebang-command": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -29103,14 +27476,16 @@ }, "node_modules/internal-ip/node_modules/shebang-regex": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/internal-ip/node_modules/which": { "version": "1.3.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dependencies": { "isexe": "^2.0.0" }, @@ -29171,7 +27546,8 @@ }, "node_modules/ip-regex": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", "engines": { "node": ">=4" } @@ -29373,11 +27749,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-deflate": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/is-descriptor": { "version": "1.0.2", "license": "MIT", @@ -29487,14 +27858,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-gzip": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-inside-container": { "version": "1.0.0", "dev": true, @@ -29535,7 +27898,8 @@ }, "node_modules/is-invalid-path": { "version": "0.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", "dependencies": { "is-glob": "^2.0.0" }, @@ -29545,14 +27909,16 @@ }, "node_modules/is-invalid-path/node_modules/is-extglob": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "engines": { "node": ">=0.10.0" } }, "node_modules/is-invalid-path/node_modules/is-glob": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dependencies": { "is-extglob": "^1.0.0" }, @@ -29770,7 +28136,8 @@ }, "node_modules/is-valid-path": { "version": "0.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", "dependencies": { "is-invalid-path": "^0.1.0" }, @@ -30797,8 +29164,9 @@ } }, "node_modules/jest-expo": { - "version": "51.0.3", - "license": "MIT", + "version": "51.0.4", + "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.4.tgz", + "integrity": "sha512-WmlR4rUur1TNF/F14brKCmPdX3TWf7Bno/6A1PuxnflN79LEIXpXuPKMlMWwCCChTohGB5FRniknRibblWu1ug==", "dependencies": { "@expo/config": "~9.0.0-beta.0", "@expo/json-file": "^8.3.0", @@ -31988,7 +30356,8 @@ }, "node_modules/jimp-compact": { "version": "0.16.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", + "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==" }, "node_modules/jiti": { "version": "1.20.0", @@ -32011,7 +30380,8 @@ }, "node_modules/join-component": { "version": "1.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", + "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==" }, "node_modules/jquery": { "version": "3.6.0", @@ -32175,7 +30545,8 @@ }, "node_modules/json-schema-deref-sync": { "version": "0.13.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", + "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", "dependencies": { "clone": "^2.1.2", "dag-map": "~1.0.0", @@ -32192,14 +30563,16 @@ }, "node_modules/json-schema-deref-sync/node_modules/clone": { "version": "2.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "engines": { "node": ">=0.8" } }, "node_modules/json-schema-deref-sync/node_modules/md5": { "version": "2.2.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", "dependencies": { "charenc": "~0.0.1", "crypt": "~0.0.1", @@ -32239,6 +30612,7 @@ }, "node_modules/json-stringify-safe": { "version": "5.0.1", + "dev": true, "license": "ISC" }, "node_modules/json5": { @@ -32445,7 +30819,8 @@ }, "node_modules/lightningcss": { "version": "1.19.0", - "license": "MPL-2.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", + "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", "dependencies": { "detect-libc": "^1.0.3" }, @@ -32469,10 +30844,11 @@ }, "node_modules/lightningcss-darwin-arm64": { "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", + "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", "cpu": [ "arm64" ], - "license": "MPL-2.0", "optional": true, "os": [ "darwin" @@ -32485,9 +30861,143 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", + "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", + "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", + "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", + "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", + "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", + "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", + "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lightningcss/node_modules/detect-libc": { "version": "1.0.3", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -33279,7 +31789,8 @@ }, "node_modules/md5": { "version": "2.3.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -33310,7 +31821,8 @@ }, "node_modules/md5hex": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", + "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==" }, "node_modules/mdn-data": { "version": "2.0.14", @@ -33318,6 +31830,9 @@ }, "node_modules/media-typer": { "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -33404,7 +31919,8 @@ }, "node_modules/memory-cache": { "version": "0.2.0", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", + "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==" }, "node_modules/memory-fs": { "version": "0.4.1", @@ -33415,8 +31931,14 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-refs": { "version": "1.2.1", @@ -33441,6 +31963,7 @@ }, "node_modules/methods": { "version": "1.1.2", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -34045,7 +32568,8 @@ }, "node_modules/minipass-collect": { "version": "2.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dependencies": { "minipass": "^7.0.3" }, @@ -34055,7 +32579,8 @@ }, "node_modules/minipass-collect/node_modules/minipass": { "version": "7.1.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -34165,10 +32690,31 @@ "node": ">=10" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/mlly/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, "node_modules/module-details-from-path": { "version": "1.0.3", @@ -34211,56 +32757,6 @@ "mustache": "bin/mustache" } }, - "node_modules/mv": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "license": "ISC", - "optional": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", - "optional": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "license": "ISC", - "optional": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/mz": { "version": "2.7.0", "license": "MIT", @@ -34321,14 +32817,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ncp": { - "version": "2.0.0", - "license": "MIT", - "optional": true, - "bin": { - "ncp": "bin/ncp" - } - }, "node_modules/negotiator": { "version": "0.6.3", "license": "MIT", @@ -34342,7 +32830,8 @@ }, "node_modules/nested-error-stacks": { "version": "2.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==" }, "node_modules/nice-try": { "version": "1.0.5", @@ -34363,19 +32852,6 @@ "node": ">=12.0.0" } }, - "node_modules/nock": { - "version": "13.3.3", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, "node_modules/node-abi": { "version": "3.65.0", "dev": true, @@ -34453,6 +32929,8 @@ }, "node_modules/node-fetch-native": { "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", "dev": true, "license": "MIT" }, @@ -34678,16 +33156,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm-package-arg": { "version": "7.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", + "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", "dependencies": { "hosted-git-info": "^3.0.2", "osenv": "^0.1.5", @@ -34697,7 +33169,8 @@ }, "node_modules/npm-package-arg/node_modules/hosted-git-info": { "version": "3.0.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -34707,7 +33180,8 @@ }, "node_modules/npm-package-arg/node_modules/semver": { "version": "5.7.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -34759,7 +33233,9 @@ "license": "MIT" }, "node_modules/nypm": { - "version": "0.3.8", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.11.tgz", + "integrity": "sha512-E5GqaAYSnbb6n1qZyik2wjPDZON43FqOJO59+3OkWrnmQtjggrMOVnsyzfjxp/tS6nlYJBA4zRA5jSM2YaadMg==", "dev": true, "license": "MIT", "dependencies": { @@ -34767,7 +33243,8 @@ "consola": "^3.2.3", "execa": "^8.0.1", "pathe": "^1.1.2", - "ufo": "^1.4.0" + "pkg-types": "^1.2.0", + "ufo": "^1.5.4" }, "bin": { "nypm": "dist/cli.mjs" @@ -34778,6 +33255,8 @@ }, "node_modules/nypm/node_modules/execa": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "license": "MIT", "dependencies": { @@ -34800,6 +33279,8 @@ }, "node_modules/nypm/node_modules/get-stream": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, "license": "MIT", "engines": { @@ -34811,6 +33292,8 @@ }, "node_modules/nypm/node_modules/human-signals": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -34819,6 +33302,8 @@ }, "node_modules/nypm/node_modules/is-stream": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "license": "MIT", "engines": { @@ -34830,6 +33315,8 @@ }, "node_modules/nypm/node_modules/mimic-fn": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, "license": "MIT", "engines": { @@ -34841,6 +33328,8 @@ }, "node_modules/nypm/node_modules/npm-run-path": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -34855,6 +33344,8 @@ }, "node_modules/nypm/node_modules/onetime": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "license": "MIT", "dependencies": { @@ -34869,6 +33360,8 @@ }, "node_modules/nypm/node_modules/path-key": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, "license": "MIT", "engines": { @@ -34880,6 +33373,8 @@ }, "node_modules/nypm/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -34891,6 +33386,8 @@ }, "node_modules/nypm/node_modules/strip-final-newline": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "license": "MIT", "engines": { @@ -35140,6 +33637,8 @@ }, "node_modules/ohash": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", "dev": true, "license": "MIT" }, @@ -35358,7 +33857,8 @@ }, "node_modules/os-homedir": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", "engines": { "node": ">=0.10.0" } @@ -35382,7 +33882,9 @@ }, "node_modules/osenv": { "version": "0.1.5", - "license": "ISC", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -35536,7 +34038,8 @@ }, "node_modules/parse-png": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", "dependencies": { "pngjs": "^3.3.0" }, @@ -35546,7 +34049,8 @@ }, "node_modules/parse-png/node_modules/pngjs": { "version": "3.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", "engines": { "node": ">=4.0.0" } @@ -35576,7 +34080,8 @@ }, "node_modules/password-prompt": { "version": "1.1.3", - "license": "0BSD", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", + "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", "dependencies": { "ansi-escapes": "^4.3.2", "cross-spawn": "^7.0.3" @@ -35788,7 +34293,10 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true, "license": "MIT" }, "node_modules/path-type": { @@ -35808,6 +34316,8 @@ }, "node_modules/pathe": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true, "license": "MIT" }, @@ -35856,16 +34366,6 @@ "npm": ">=6" } }, - "node_modules/peek-stream": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "duplexify": "^3.5.0", - "through2": "^2.0.3" - } - }, "node_modules/peggy": { "version": "4.0.3", "dev": true, @@ -35882,14 +34382,6 @@ "node": ">=18" } }, - "node_modules/peggy/node_modules/commander": { - "version": "12.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/pend": { "version": "1.2.0", "dev": true, @@ -35951,6 +34443,18 @@ "node": ">=10" } }, + "node_modules/pkg-types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.0.tgz", + "integrity": "sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, "node_modules/pkg-up": { "version": "3.1.0", "dev": true, @@ -36205,7 +34709,8 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "engines": { "node": ">=6" }, @@ -36325,19 +34830,13 @@ "version": "16.13.1", "license": "MIT" }, - "node_modules/propagate": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/protocol-buffers-schema": { "version": "3.6.0", "license": "MIT" }, "node_modules/proxy-addr": { "version": "2.0.7", + "dev": true, "license": "MIT", "dependencies": { "forwarded": "0.2.0", @@ -36379,25 +34878,6 @@ "once": "^1.3.1" } }, - "node_modules/pumpify": { - "version": "1.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "license": "MIT", @@ -36452,6 +34932,8 @@ }, "node_modules/qrcode-terminal": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", + "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", "bin": { "qrcode-terminal": "bin/qrcode-terminal.js" } @@ -36594,10 +35076,13 @@ } }, "node_modules/qs": { - "version": "6.10.3", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -36728,7 +35213,10 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, "license": "MIT", "dependencies": { "bytes": "3.1.2", @@ -36742,6 +35230,9 @@ }, "node_modules/raw-body/node_modules/bytes": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -36749,6 +35240,9 @@ }, "node_modules/raw-body/node_modules/iconv-lite": { "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -36766,7 +35260,8 @@ }, "node_modules/rc": { "version": "1.2.8", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -36779,7 +35274,8 @@ }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "engines": { "node": ">=0.10.0" } @@ -37314,8 +35810,12 @@ } }, "node_modules/react-native-haptic-feedback": { - "version": "2.2.0", - "license": "MIT", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/react-native-haptic-feedback/-/react-native-haptic-feedback-2.3.1.tgz", + "integrity": "sha512-dPfjV4iVHfhVyfG+nRd88ygjahbdup7KFZDM5L2aNIAzqbNtKxHZn5O1pHegwSj1t15VJliu0GyTX7XpBDeXUw==", + "workspaces": [ + "example" + ], "peerDependencies": { "react-native": ">=0.60.0" } @@ -37369,14 +35869,6 @@ "react-native": ">=0.60.0-rc.0 <1.0.x" } }, - "node_modules/react-native-linear-gradient": { - "version": "2.8.1", - "license": "MIT", - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, "node_modules/react-native-localize": { "version": "2.2.6", "license": "MIT", @@ -38203,8 +36695,9 @@ } }, "node_modules/react-native-pdf": { - "version": "6.7.3", - "license": "MIT", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/react-native-pdf/-/react-native-pdf-6.7.5.tgz", + "integrity": "sha512-d1S76p2Vwax2iG+kTnjINiUMvpjtJJvtMiYwHRbgGczT8GJjtXH49YCWOd+HfnUAU29cB+knzsKGYoZBMQM8Ow==", "dependencies": { "crypto-js": "4.2.0", "deprecated-react-native-prop-types": "^2.3.0" @@ -38400,8 +36893,9 @@ } }, "node_modules/react-native-share": { - "version": "10.0.2", - "license": "MIT", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-11.0.2.tgz", + "integrity": "sha512-7W7sb9qd8RjVEIMhbYc3MU//qGUNxf1XAqd3SlO/ivz89ed1jP1yUwYOcUK2Kf1NDY/kwWbPCkEKa6ZGVlcsOQ==", "engines": { "node": ">=16" } @@ -38492,13 +36986,6 @@ "react-dom": "^18.0.0" } }, - "node_modules/react-native-web-linear-gradient": { - "version": "1.1.2", - "license": "MIT", - "peerDependencies": { - "react-native-web": "*" - } - }, "node_modules/react-native-web-sound": { "version": "0.1.3", "license": "MIT", @@ -40070,13 +38557,6 @@ "read-binary-file-arch": "cli.js" } }, - "node_modules/read-cmd-shim": { - "version": "4.0.0", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/read-config-file": { "version": "6.4.0", "dev": true, @@ -40109,108 +38589,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "node_modules/readable-stream": { "version": "2.3.8", "license": "MIT", @@ -40523,7 +38901,8 @@ }, "node_modules/remove-trailing-slash": { "version": "0.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", + "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==" }, "node_modules/renderkid": { "version": "3.0.0", @@ -40615,6 +38994,8 @@ }, "node_modules/requireg": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", + "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", "dependencies": { "nested-error-stacks": "~2.0.1", "rc": "~1.2.7", @@ -40626,7 +39007,8 @@ }, "node_modules/requireg/node_modules/resolve": { "version": "1.7.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dependencies": { "path-parse": "^1.0.5" } @@ -40878,11 +39260,6 @@ "version": "5.1.2", "license": "MIT" }, - "node_modules/safe-json-stringify": { - "version": "1.2.0", - "license": "MIT", - "optional": true - }, "node_modules/safe-regex": { "version": "1.1.0", "license": "MIT", @@ -41176,7 +39553,9 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", + "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", @@ -41367,12 +39746,18 @@ "peer": true }, "node_modules/side-channel": { - "version": "1.0.4", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -41435,6 +39820,7 @@ }, "node_modules/simple-git": { "version": "3.24.0", + "dev": true, "license": "MIT", "dependencies": { "@kwsites/file-exists": "^1.1.1", @@ -41972,7 +40358,8 @@ }, "node_modules/split": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dependencies": { "through": "2" }, @@ -42003,7 +40390,8 @@ }, "node_modules/ssri": { "version": "10.0.6", - "license": "ISC", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dependencies": { "minipass": "^7.0.3" }, @@ -42013,7 +40401,8 @@ }, "node_modules/ssri/node_modules/minipass": { "version": "7.1.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -42206,15 +40595,18 @@ "license": "MIT" }, "node_modules/storybook": { - "version": "8.1.10", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.3.0.tgz", + "integrity": "sha512-XKU+nem9OKX/juvJPwka1Q7DTpSbOe0IMp8ZyLQWorhFKpquJdUjryl7Z9GiFZyyTykCqH4ItQ7h8PaOmqVMOw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/cli": "8.1.10" + "@storybook/core": "8.3.0" }, "bin": { - "sb": "index.js", - "storybook": "index.js" + "getstorybook": "bin/index.cjs", + "sb": "bin/index.cjs", + "storybook": "bin/index.cjs" }, "funding": { "type": "opencollective", @@ -42247,11 +40639,6 @@ "xtend": "^4.0.0" } }, - "node_modules/stream-shift": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, "node_modules/strict-uri-encode": { "version": "2.0.0", "license": "MIT", @@ -42464,7 +40851,8 @@ }, "node_modules/structured-headers": { "version": "0.4.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", + "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==" }, "node_modules/style-loader": { "version": "2.0.0", @@ -42629,7 +41017,8 @@ }, "node_modules/supports-hyperlinks": { "version": "2.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -42640,14 +41029,16 @@ }, "node_modules/supports-hyperlinks/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/supports-hyperlinks/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -42743,26 +41134,11 @@ "node": ">=10" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "dev": true, - "license": "ISC" - }, "node_modules/tar-stream": { "version": "2.2.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -42778,6 +41154,7 @@ "version": "3.6.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -42853,7 +41230,8 @@ }, "node_modules/tempy": { "version": "0.7.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", + "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", "dependencies": { "del": "^6.0.0", "is-stream": "^2.0.0", @@ -42870,7 +41248,8 @@ }, "node_modules/tempy/node_modules/del": { "version": "6.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", @@ -42890,14 +41269,16 @@ }, "node_modules/tempy/node_modules/is-path-inside": { "version": "3.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "engines": { "node": ">=8" } }, "node_modules/tempy/node_modules/type-fest": { "version": "0.16.0", - "license": "(MIT OR CC0-1.0)", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "engines": { "node": ">=10" }, @@ -42907,7 +41288,8 @@ }, "node_modules/terminal-link": { "version": "2.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -43038,7 +41420,8 @@ }, "node_modules/through": { "version": "2.3.8", - "license": "MIT" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/through2": { "version": "2.0.5", @@ -43284,7 +41667,8 @@ }, "node_modules/traverse": { "version": "0.6.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz", + "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==", "dependencies": { "gopd": "^1.0.1", "typedarray.prototype.slice": "^1.0.3", @@ -43307,7 +41691,6 @@ }, "node_modules/trim-right": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -43564,6 +41947,9 @@ }, "node_modules/type-is": { "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, "license": "MIT", "dependencies": { "media-typer": "0.3.0", @@ -43648,7 +42034,8 @@ }, "node_modules/typedarray.prototype.slice": { "version": "1.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", + "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -43705,7 +42092,9 @@ } }, "node_modules/ufo": { - "version": "1.5.3", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", "dev": true, "license": "MIT" }, @@ -43781,6 +42170,8 @@ }, "node_modules/unicorn-magic": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, "license": "MIT", "engines": { @@ -43822,7 +42213,8 @@ }, "node_modules/unique-filename": { "version": "3.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dependencies": { "unique-slug": "^4.0.0" }, @@ -43832,7 +42224,8 @@ }, "node_modules/unique-slug": { "version": "4.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dependencies": { "imurmurhash": "^0.1.4" }, @@ -43842,7 +42235,8 @@ }, "node_modules/unique-string": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -43995,14 +42389,6 @@ "license": "MIT", "optional": true }, - "node_modules/untildify": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/upath": { "version": "1.2.0", "license": "MIT", @@ -44066,7 +42452,8 @@ }, "node_modules/url-join": { "version": "4.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==" }, "node_modules/url-parse": { "version": "1.5.10", @@ -44330,7 +42717,9 @@ } }, "node_modules/valid-url": { - "version": "1.0.9" + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" }, "node_modules/validate-npm-package-license": { "version": "3.0.4", @@ -44342,7 +42731,8 @@ }, "node_modules/validate-npm-package-name": { "version": "3.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dependencies": { "builtins": "^1.0.3" } @@ -44406,6 +42796,13 @@ "dev": true, "license": "MIT" }, + "node_modules/walk-up-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "dev": true, + "license": "ISC" + }, "node_modules/walker": { "version": "1.0.8", "license": "Apache-2.0", @@ -45500,7 +43897,8 @@ }, "node_modules/wonka": { "version": "4.0.15", - "license": "MIT" + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", + "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==" }, "node_modules/word-wrap": { "version": "1.2.5", @@ -45704,7 +44102,8 @@ }, "node_modules/xml2js": { "version": "0.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", + "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -45715,7 +44114,8 @@ }, "node_modules/xml2js/node_modules/xmlbuilder": { "version": "11.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "engines": { "node": ">=4.0" } @@ -45897,7 +44297,6 @@ }, "node_modules/zod": { "version": "3.23.8", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index 44e592363302..a08dbfb42eab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "9.0.30-16", + "version": "9.0.35-7", "author": "Expensify, Inc.", "homepage": "https://new.expensify.com", "description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.", @@ -30,8 +30,8 @@ "createDocsRoutes": "ts-node .github/scripts/createDocsRoutes.ts", "detectRedirectCycle": "ts-node .github/scripts/detectRedirectCycle.ts", "desktop-build-adhoc": "scripts/build-desktop.sh adhoc", - "ios-build": "fastlane ios build", - "android-build": "fastlane android build", + "ios-build": "fastlane ios build_unsigned", + "android-build": "fastlane android build_local", "android-build-e2e": "bundle exec fastlane android build_e2e", "android-build-e2edelta": "bundle exec fastlane android build_e2edelta", "test": "TZ=utc NODE_OPTIONS=--experimental-vm-modules jest", @@ -67,24 +67,18 @@ "web:prod": "http-server ./dist --cors" }, "dependencies": { - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.120", - "@expo/metro-runtime": "~3.1.1", + "@expensify/react-native-live-markdown": "0.1.143", + "@expo/metro-runtime": "~3.2.3", "@formatjs/intl-datetimeformat": "^6.12.5", "@formatjs/intl-listformat": "^7.5.7", "@formatjs/intl-locale": "^4.0.0", "@formatjs/intl-numberformat": "^8.10.3", "@formatjs/intl-pluralrules": "^5.2.14", - "@fullstory/babel-plugin-annotate-react": "github:fullstorydev/fullstory-babel-plugin-annotate-react#ryanwang/react-native-web-demo", - "@fullstory/babel-plugin-react-native": "^1.2.1", "@fullstory/browser": "^2.0.3", "@fullstory/react-native": "^1.4.2", "@gorhom/portal": "^1.0.14", "@invertase/react-native-apple-authentication": "^2.2.2", - "@kie/act-js": "^2.6.2", - "@kie/mock-github": "2.0.1", "@onfido/react-native-sdk": "10.6.0", "@react-native-camera-roll/camera-roll": "7.4.0", "@react-native-clipboard/clipboard": "^1.13.2", @@ -100,9 +94,8 @@ "@react-navigation/native": "6.1.12", "@react-navigation/stack": "6.3.29", "@react-ng/bounds-observer": "^0.2.1", - "@rnmapbox/maps": "10.1.26", + "@rnmapbox/maps": "10.1.30", "@shopify/flash-list": "1.7.1", - "@types/mime-db": "^1.43.5", "@ua/react-native-airship": "19.2.1", "@vue/preload-webpack-plugin": "^2.0.0", "awesome-phonenumber": "^5.4.0", @@ -113,16 +106,16 @@ "date-fns-tz": "^2.0.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "2.0.83", - "expo": "51.0.17", - "expo-av": "14.0.6", - "expo-image": "1.12.12", + "expensify-common": "2.0.84", + "expo": "51.0.31", + "expo-av": "14.0.7", + "expo-image": "1.12.15", "expo-image-manipulator": "12.0.5", "fast-equals": "^4.0.3", "focus-trap-react": "^10.2.3", "htmlparser2": "^7.2.0", "idb-keyval": "^6.2.1", - "jest-expo": "51.0.3", + "jest-expo": "51.0.4", "jest-when": "^3.5.2", "lodash": "4.17.21", "lottie-react-native": "6.5.1", @@ -151,18 +144,17 @@ "react-native-fs": "^2.20.0", "react-native-gesture-handler": "2.18.0", "react-native-google-places-autocomplete": "2.5.6", - "react-native-haptic-feedback": "^2.2.0", + "react-native-haptic-feedback": "^2.3.1", "react-native-image-picker": "^7.0.3", "react-native-image-size": "git+https://github.com/Expensify/react-native-image-size#cb392140db4953a283590d7cf93b4d0461baa2a9", "react-native-key-command": "^1.0.8", "react-native-keyboard-controller": "^1.13.4", "react-native-launch-arguments": "^4.0.2", - "react-native-linear-gradient": "^2.8.1", "react-native-localize": "^2.2.6", "react-native-modal": "^13.0.0", "react-native-onyx": "2.0.66", "react-native-pager-view": "6.4.1", - "react-native-pdf": "6.7.3", + "react-native-pdf": "6.7.5", "react-native-performance": "^5.1.0", "react-native-permissions": "^3.10.0", "react-native-picker-select": "git+https://github.com/Expensify/react-native-picker-select.git#da50d2c5c54e268499047f9cc98b8df4196c1ddf", @@ -174,7 +166,7 @@ "react-native-render-html": "6.3.1", "react-native-safe-area-context": "4.10.9", "react-native-screens": "3.34.0", - "react-native-share": "^10.0.2", + "react-native-share": "11.0.2", "react-native-sound": "^0.11.2", "react-native-svg": "15.6.0", "react-native-tab-view": "^3.5.2", @@ -182,14 +174,12 @@ "react-native-view-shot": "3.8.0", "react-native-vision-camera": "4.0.0-beta.13", "react-native-web": "^0.19.12", - "react-native-web-linear-gradient": "^1.1.2", "react-native-web-sound": "^0.1.3", "react-native-webview": "13.8.6", "react-pdf": "^7.7.3", "react-plaid-link": "3.3.2", "react-web-config": "^1.0.0", "react-webcam": "^7.1.1", - "react-window": "^1.8.9", "semver": "^7.5.2", "xlsx": "file:vendor/xlsx-0.20.3.tgz" }, @@ -200,6 +190,8 @@ "@babel/parser": "^7.22.16", "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/preset-env": "^7.20.0", "@babel/preset-flow": "^7.12.13", "@babel/preset-react": "^7.10.4", @@ -210,6 +202,7 @@ "@callstack/reassure-compare": "^1.0.0-rc.4", "@dword-design/eslint-plugin-import-alias": "^5.0.0", "@electron/notarize": "^2.1.0", + "@fullstory/babel-plugin-annotate-react": "^2.3.0", "@jest/globals": "^29.5.0", "@ngneat/falso": "^7.1.1", "@octokit/core": "4.0.4", @@ -226,7 +219,7 @@ "@storybook/addon-a11y": "^8.1.10", "@storybook/addon-essentials": "^8.1.10", "@storybook/addon-webpack5-compiler-babel": "^3.0.3", - "@storybook/cli": "^8.1.10", + "@storybook/cli": "^8.3.0", "@storybook/react": "^8.1.10", "@storybook/react-webpack5": "^8.1.6", "@storybook/theming": "^8.1.10", @@ -242,6 +235,7 @@ "@types/js-yaml": "^4.0.5", "@types/lodash": "^4.14.195", "@types/mapbox-gl": "^2.7.13", + "@types/mime-db": "^1.43.5", "@types/node": "^20.11.5", "@types/pusher-js": "^5.1.0", "@types/react": "^18.2.6", @@ -280,6 +274,7 @@ "eslint-config-airbnb-typescript": "^18.0.0", "eslint-config-expensify": "^2.0.58", "eslint-config-prettier": "^9.1.0", + "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-jest": "^28.6.0", "eslint-plugin-jsdoc": "^46.2.6", "eslint-plugin-react-compiler": "0.0.0-experimental-9ed098e-20240725", @@ -289,7 +284,6 @@ "eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0", "html-webpack-plugin": "^5.5.0", "http-server": "^14.1.1", - "husky": "^9.1.5", "jest": "29.4.1", "jest-circus": "29.4.1", "jest-cli": "29.4.1", @@ -312,7 +306,7 @@ "setimmediate": "^1.0.5", "shellcheck": "^1.1.0", "source-map": "^0.7.4", - "storybook": "^8.1.10", + "storybook": "^8.3.0", "style-loader": "^2.0.0", "time-analytics-webpack-plugin": "^0.1.17", "ts-jest": "^29.1.2", @@ -325,11 +319,9 @@ "webpack-bundle-analyzer": "^4.5.0", "webpack-cli": "^5.0.4", "webpack-dev-server": "^5.0.4", - "webpack-merge": "^5.8.0", - "yaml": "^2.2.1" + "webpack-merge": "^5.8.0" }, "overrides": { - "expo": "51.0.17", "react-native": "0.75.2", "react-native-svg": "$react-native-svg", "react": "18.3.1", diff --git a/patches/@expensify+react-native-live-markdown+0.1.120+001+intial.patch b/patches/@expensify+react-native-live-markdown+0.1.120+001+intial.patch deleted file mode 100644 index 4e59d206268e..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.120+001+intial.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/LiveMarkdownModule.java b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/LiveMarkdownModule.java -index ed1428b..80641ce 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/LiveMarkdownModule.java -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/LiveMarkdownModule.java -@@ -1,7 +1,6 @@ - package com.expensify.livemarkdown; - - import com.facebook.react.bridge.ReactApplicationContext; --import com.facebook.react.bridge.UIManager; - import com.facebook.react.fabric.FabricUIManager; - import com.facebook.react.uimanager.UIManagerHelper; - import com.facebook.react.uimanager.common.UIManagerType; -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownUtils.java b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownUtils.java -index 7711d8b..0000caa 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownUtils.java -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownUtils.java -@@ -1,6 +1,5 @@ - package com.expensify.livemarkdown; - --import static com.facebook.infer.annotation.ThreadConfined.UI; - - import android.content.res.AssetManager; - import android.text.SpannableStringBuilder; -@@ -8,10 +7,7 @@ import android.text.Spanned; - - import androidx.annotation.NonNull; - --import com.facebook.infer.annotation.Assertions; --import com.facebook.infer.annotation.ThreadConfined; --import com.facebook.react.bridge.UiThreadUtil; --import com.facebook.react.views.text.CustomLineHeightSpan; -+import com.facebook.react.views.text.internal.span.CustomLineHeightSpan; - import com.facebook.soloader.SoLoader; - - import org.json.JSONArray; -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -index f5dfedf..1609c60 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -@@ -42,6 +42,8 @@ target_link_libraries( - ReactAndroid::rrc_textinput - ReactAndroid::react_render_textlayoutmanager - ReactAndroid::react_render_imagemanager -+ ReactAndroid::reactnativejni -+ ReactAndroid::mapbufferjni - fabricjni - fbjni - folly_runtime diff --git a/patches/@expensify+react-native-live-markdown+0.1.120+002+text-layout-manager.patch b/patches/@expensify+react-native-live-markdown+0.1.120+002+text-layout-manager.patch deleted file mode 100644 index 24f327649253..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.120+002+text-layout-manager.patch +++ /dev/null @@ -1,102 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/CustomMountingManager.java b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/CustomMountingManager.java -index 1b4381b..7e3aebe 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/CustomMountingManager.java -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/CustomMountingManager.java -@@ -13,7 +13,6 @@ import android.text.TextPaint; - import androidx.annotation.NonNull; - import androidx.annotation.Nullable; - --import com.facebook.common.logging.FLog; - import com.facebook.react.bridge.ReactContext; - import com.facebook.react.bridge.ReadableMap; - import com.facebook.react.common.mapbuffer.MapBuffer; -@@ -21,8 +20,8 @@ import com.facebook.react.fabric.mounting.MountingManager; - import com.facebook.react.uimanager.PixelUtil; - import com.facebook.react.uimanager.ViewManagerRegistry; - import com.facebook.react.views.text.TextAttributeProps; --import com.facebook.react.views.text.TextInlineViewPlaceholderSpan; --import com.facebook.react.views.text.TextLayoutManagerMapBuffer; -+import com.facebook.react.views.text.internal.span.TextInlineViewPlaceholderSpan; -+import com.facebook.react.views.text.TextLayoutManager; - import com.facebook.yoga.YogaMeasureMode; - import com.facebook.yoga.YogaMeasureOutput; - -@@ -63,7 +62,7 @@ public class CustomMountingManager extends MountingManager { - @Nullable float[] attachmentsPositions) { - - Spannable text = -- TextLayoutManagerMapBuffer.getOrCreateSpannableForText(context, attributedString, null); -+ TextLayoutManager.getOrCreateSpannableForText(context, attributedString, null); - - if (text == null) { - return 0; -@@ -71,14 +70,14 @@ public class CustomMountingManager extends MountingManager { - - int textBreakStrategy = - TextAttributeProps.getTextBreakStrategy( -- paragraphAttributes.getString(TextLayoutManagerMapBuffer.PA_KEY_TEXT_BREAK_STRATEGY)); -+ paragraphAttributes.getString(TextLayoutManager.PA_KEY_TEXT_BREAK_STRATEGY)); - boolean includeFontPadding = -- paragraphAttributes.contains(TextLayoutManagerMapBuffer.PA_KEY_INCLUDE_FONT_PADDING) -- ? paragraphAttributes.getBoolean(TextLayoutManagerMapBuffer.PA_KEY_INCLUDE_FONT_PADDING) -+ paragraphAttributes.contains(TextLayoutManager.PA_KEY_INCLUDE_FONT_PADDING) -+ ? paragraphAttributes.getBoolean(TextLayoutManager.PA_KEY_INCLUDE_FONT_PADDING) - : DEFAULT_INCLUDE_FONT_PADDING; - int hyphenationFrequency = - TextAttributeProps.getHyphenationFrequency( -- paragraphAttributes.getString(TextLayoutManagerMapBuffer.PA_KEY_HYPHENATION_FREQUENCY)); -+ paragraphAttributes.getString(TextLayoutManager.PA_KEY_HYPHENATION_FREQUENCY)); - - // StaticLayout returns wrong metrics for the last line if it's empty, add something to the - // last line so it's measured correctly -@@ -89,13 +88,15 @@ public class CustomMountingManager extends MountingManager { - text = sb; - } - -+ Layout.Alignment alignment = TextLayoutManager.getTextAlignment(attributedString, text); -+ - markdownUtils.applyMarkdownFormatting((SpannableStringBuilder)text); - - BoringLayout.Metrics boring = BoringLayout.isBoring(text, sTextPaintInstance); - -- Class mapBufferClass = TextLayoutManagerMapBuffer.class; -+ Class mapBufferClass = TextLayoutManager.class; - try { -- Method createLayoutMethod = mapBufferClass.getDeclaredMethod("createLayout", Spannable.class, BoringLayout.Metrics.class, float.class, YogaMeasureMode.class, boolean.class, int.class, int.class); -+ Method createLayoutMethod = mapBufferClass.getDeclaredMethod("createLayout", Spannable.class, BoringLayout.Metrics.class, float.class, YogaMeasureMode.class, boolean.class, int.class, int.class, Layout.Alignment.class); - createLayoutMethod.setAccessible(true); - - Layout layout = (Layout)createLayoutMethod.invoke( -@@ -106,11 +107,12 @@ public class CustomMountingManager extends MountingManager { - widthYogaMeasureMode, - includeFontPadding, - textBreakStrategy, -- hyphenationFrequency); -+ hyphenationFrequency, -+ alignment); - - int maximumNumberOfLines = -- paragraphAttributes.contains(TextLayoutManagerMapBuffer.PA_KEY_MAX_NUMBER_OF_LINES) -- ? paragraphAttributes.getInt(TextLayoutManagerMapBuffer.PA_KEY_MAX_NUMBER_OF_LINES) -+ paragraphAttributes.contains(TextLayoutManager.PA_KEY_MAX_NUMBER_OF_LINES) -+ ? paragraphAttributes.getInt(TextLayoutManager.PA_KEY_MAX_NUMBER_OF_LINES) - : UNSET; - - int calculatedLineCount = -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -index 1609c60..1888eea 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -@@ -65,6 +65,12 @@ target_link_libraries( - yoga - android - log -+ mapbufferjni -+ reactnativejni -+ react_render_consistency -+ react_performance_timeline -+ react_render_observers_events -+ react_featureflags - ) - - target_compile_options( diff --git a/patches/@expensify+react-native-live-markdown+0.1.120+003+shadow-node.patch b/patches/@expensify+react-native-live-markdown+0.1.120+003+shadow-node.patch deleted file mode 100644 index d3ff41b29249..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.120+003+shadow-node.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp b/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp -index 104363d..9240e9e 100644 ---- a/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp -+++ b/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp -@@ -11,7 +11,7 @@ namespace react { - extern const char MarkdownTextInputDecoratorViewComponentName[] = - "MarkdownTextInputDecoratorView"; - --const ShadowNodeFragment::Value -+const OwningShadowNodeFragment - MarkdownTextInputDecoratorShadowNode::updateFragmentState( - ShadowNodeFragment const &fragment, - ShadowNodeFamily::Shared const &family) { -@@ -24,12 +24,12 @@ MarkdownTextInputDecoratorShadowNode::updateFragmentState( - // propagated on every clone we need it to clear the reference in the registry - // when the view is removed from window it cannot be done in the destructor, - // as multiple shadow nodes for the same family may be created -- return ShadowNodeFragment::Value({ -+ return OwningShadowNodeFragment{ - .props = fragment.props, - .children = fragment.children, - .state = - std::make_shared(newStateData, *fragment.state), -- }); -+ }; - } - - } // namespace react -diff --git a/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.h b/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.h -index 294e0d3..597752c 100644 ---- a/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.h -+++ b/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.h -@@ -11,6 +11,20 @@ - namespace facebook { - namespace react { - -+struct OwningShadowNodeFragment { -+ Props::Shared props; -+ ShadowNode::SharedListOfShared children; -+ State::Shared state; -+ -+ operator ShadowNodeFragment() const { -+ return ShadowNodeFragment { -+ .props = props, -+ .children = children, -+ .state = state -+ }; -+ } -+}; -+ - JSI_EXPORT extern const char MarkdownTextInputDecoratorViewComponentName[]; - - class JSI_EXPORT MarkdownTextInputDecoratorShadowNode final -@@ -22,8 +36,7 @@ public: - MarkdownTextInputDecoratorShadowNode(ShadowNodeFragment const &fragment, - ShadowNodeFamily::Shared const &family, - ShadowNodeTraits traits) -- : ConcreteViewShadowNode(static_cast( -- updateFragmentState(fragment, family)), -+ : ConcreteViewShadowNode(updateFragmentState(fragment, family), - family, traits) {} - - MarkdownTextInputDecoratorShadowNode(ShadowNode const &sourceShadowNode, -@@ -37,7 +50,7 @@ public: - } - - private: -- static const ShadowNodeFragment::Value -+ static const OwningShadowNodeFragment - updateFragmentState(ShadowNodeFragment const &fragment, - ShadowNodeFamily::Shared const &family); - }; diff --git a/patches/@expensify+react-native-live-markdown+0.1.120+004+hybrid-app.patch b/patches/@expensify+react-native-live-markdown+0.1.120+004+hybrid-app.patch deleted file mode 100644 index 00f87066c9fa..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.120+004+hybrid-app.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/RNLiveMarkdown.podspec b/node_modules/@expensify/react-native-live-markdown/RNLiveMarkdown.podspec -index b1620ad..b3ea39c 100644 ---- a/node_modules/@expensify/react-native-live-markdown/RNLiveMarkdown.podspec -+++ b/node_modules/@expensify/react-native-live-markdown/RNLiveMarkdown.podspec -@@ -23,10 +23,10 @@ Pod::Spec.new do |s| - install_modules_dependencies(s) - - if ENV['USE_FRAMEWORKS'] && ENV['RCT_NEW_ARCH_ENABLED'] -- add_dependency(s, "React-Fabric", :additional_framework_paths => [ -+ add_dependency(s, "React-FabricComponents", :additional_framework_paths => [ - "react/renderer/textlayoutmanager/platform/ios", -- "react/renderer/components/textinput/iostextinput", -- ]) -+ "react/renderer/components/textinput/platform/ios", -+ ]); - end - - s.subspec "common" do |ss| diff --git a/patches/@expo+cli+0.18.21+001+rn-75-fixes.patch b/patches/@expo+cli+0.18.21+001+rn-75-fixes.patch deleted file mode 100644 index fcffe9939f2f..000000000000 --- a/patches/@expo+cli+0.18.21+001+rn-75-fixes.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/node_modules/@expo/cli/build/src/export/embed/index.js b/node_modules/@expo/cli/build/src/export/embed/index.js -index eed477f..00e1787 100644 ---- a/node_modules/@expo/cli/build/src/export/embed/index.js -+++ b/node_modules/@expo/cli/build/src/export/embed/index.js -@@ -80,6 +80,7 @@ const expoExportEmbed = async (argv)=>{ - "--assets-dest": String, - "--asset-catalog-dest": String, - "--unstable-transform-profile": String, -+ '--config-cmd': String, - "--config": String, - // This is here for compatibility with the `npx react-native bundle` command. - // devs should use `DEBUG=expo:*` instead. diff --git a/patches/@rnmapbox+maps+10.1.26+001+rn-75-fixes.patch b/patches/@rnmapbox+maps+10.1.26+001+rn-75-fixes.patch deleted file mode 100644 index c8e3719e80d8..000000000000 --- a/patches/@rnmapbox+maps+10.1.26+001+rn-75-fixes.patch +++ /dev/null @@ -1,188 +0,0 @@ -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt -index bf149f9..2d3441b 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt -@@ -190,7 +190,7 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame - - private fun setInitialCamera() { - mDefaultStop?.let { -- val mapView = mMapView!! -+ val mapView = mMapView ?: return - val map = mapView.getMapboxMap() - - it.setDuration(0) -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt -index 67c8656..248011f 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt -@@ -210,7 +210,7 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) : - - // region RNMBXImage children - -- override fun addView(parent: RNMBXImages?, childView: View?, childPosition: Int) { -+ override fun addView(parent: RNMBXImages, childView: View, childPosition: Int) { - if (parent == null || childView == null) { - Logger.e("RNMBXImages", "addView: parent or childView is null") - return -@@ -225,7 +225,7 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) : - childView.nativeImageUpdater = parent - } - -- override fun removeView(parent: RNMBXImages?, view: View?) { -+ override fun removeView(parent: RNMBXImages, view: View) { - if (parent == null || view == null) { - Logger.e("RNMBXImages", "removeView: parent or view is null") - return -@@ -234,7 +234,7 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) : - parent.mImageViews.remove(view) - } - -- override fun removeAllViews(parent: RNMBXImages?) { -+ override fun removeAllViews(parent: RNMBXImages) { - if (parent == null) { - Logger.e("RNMBXImages", "removeAllViews parent is null") - return -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt -index ef529ef..4115802 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt -@@ -152,14 +152,6 @@ class NativeMapViewModule(context: ReactApplicationContext, val viewTagResolver: - } - } - -- public fun setHandledMapChangedEvents( -- viewRef: Double?, -- events: ReadableArray, -- promise: Promise -- ) { -- setHandledMapChangedEvents(viewRef?.toInt(), events, promise) -- } -- - override fun clearData(viewRef: ViewRefTag?, promise: Promise) { - withMapViewOnUIThread(viewRef, promise) { - it.clearData(createCommandResponse(promise)) -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt -index 98febe7..8601286 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt -@@ -86,19 +86,19 @@ open class RNMBXMapViewManager(context: ReactApplicationContext, val viewTagReso - } - } - -- override fun addView(mapView: RNMBXMapView?, childView: View?, childPosition: Int) { -+ override fun addView(mapView: RNMBXMapView, childView: View, childPosition: Int) { - mapView!!.addFeature(childView, childPosition) - } - -- override fun getChildCount(mapView: RNMBXMapView?): Int { -+ override fun getChildCount(mapView: RNMBXMapView): Int { - return mapView!!.featureCount - } - -- override fun getChildAt(mapView: RNMBXMapView?, index: Int): View? { -+ override fun getChildAt(mapView: RNMBXMapView, index: Int): View? { - return mapView!!.getFeatureAt(index) - } - -- override fun removeViewAt(mapView: RNMBXMapView?, index: Int) { -+ override fun removeViewAt(mapView: RNMBXMapView, index: Int) { - mapView!!.removeFeatureAt(index) - } - -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSource.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSource.kt -index be22072..602ca6d 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSource.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSource.kt -@@ -37,7 +37,7 @@ class RNMBXImageSource(context: Context?) : RNMBXSource(context) { - val uri = Uri.parse(url) - if (uri.scheme == null) { - mResourceId = -- ResourceDrawableIdHelper.getInstance().getResourceDrawableId(this.context, url) -+ ResourceDrawableIdHelper.instance.getResourceDrawableId(this.context, url) - if (mSource != null) { - throw RuntimeException("ImageSource Resource id not supported in v10") - } -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterDemSourceManager.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterDemSourceManager.kt -index c843d11..70a2c47 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterDemSourceManager.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterDemSourceManager.kt -@@ -11,10 +11,10 @@ import com.rnmapbox.rnmbx.utils.Logger - // import com.rnmapbox.rnmbx.components.annotation.RNMBXCallout; - // import com.rnmapbox.rnmbx.utils.ResourceUtils; - class RNMBXRasterDemSourceManager(private val mContext: ReactApplicationContext) : -- RNMBXTileSourceManager( -+ RNMBXTileSourceManager( - mContext - ), RNMBXRasterDemSourceManagerInterface { -- override fun customEvents(): Map? { -+ override fun customEvents(): Map { - return MapBuilder.builder() - .build() - } -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterSourceManager.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterSourceManager.kt -index 5bebc1b..893d757 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterSourceManager.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterSourceManager.kt -@@ -8,7 +8,7 @@ import com.facebook.react.viewmanagers.RNMBXRasterSourceManagerInterface - import javax.annotation.Nonnull - - class RNMBXRasterSourceManager(reactApplicationContext: ReactApplicationContext) : -- RNMBXTileSourceManager(reactApplicationContext), -+ RNMBXTileSourceManager(reactApplicationContext), - RNMBXRasterSourceManagerInterface { - @Nonnull - override fun getName(): String { -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt -index 6398497..03c1829 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt -@@ -44,8 +44,8 @@ class RNMBXShapeSourceModule(reactContext: ReactApplicationContext?, private val - override fun getClusterLeaves( - viewRef: ViewRefTag?, - featureJSON: String, -- number: Int, -- offset: Int, -+ number: Double, -+ offset: Double, - promise: Promise - ) { - withShapeSourceOnUIThread(viewRef, promise) { -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSourceManager.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSourceManager.kt -index 767d27b..5ebe505 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSourceManager.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSourceManager.kt -@@ -7,7 +7,7 @@ import com.facebook.react.bridge.ReadableType - import com.facebook.react.uimanager.annotations.ReactProp - import com.rnmapbox.rnmbx.components.AbstractEventEmitter - --abstract class RNMBXTileSourceManager?> internal constructor( -+abstract class RNMBXTileSourceManager> internal constructor( - reactApplicationContext: ReactApplicationContext - ) : AbstractEventEmitter(reactApplicationContext) { - override fun getChildAt(source: T, childPosition: Int): View { -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXVectorSourceManager.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXVectorSourceManager.kt -index 63b1cfb..b0d3e88 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXVectorSourceManager.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXVectorSourceManager.kt -@@ -11,7 +11,7 @@ import com.rnmapbox.rnmbx.events.constants.eventMapOf - import javax.annotation.Nonnull - - class RNMBXVectorSourceManager(reactApplicationContext: ReactApplicationContext) : -- RNMBXTileSourceManager(reactApplicationContext), -+ RNMBXTileSourceManager(reactApplicationContext), - RNMBXVectorSourceManagerInterface { - @Nonnull - override fun getName(): String { -diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt -index 07bac4d..f45cc25 100644 ---- a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt -+++ b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt -@@ -16,7 +16,7 @@ data class ViewTagWaiter( - - const val LOG_TAG = "ViewTagResolver" - --typealias ViewRefTag = Int -+typealias ViewRefTag = Double - // see https://github.com/rnmapbox/maps/pull/3074 - open class ViewTagResolver(val context: ReactApplicationContext) { - private val createdViews: HashSet = hashSetOf() diff --git a/patches/date-fns-tz+2.0.0.patch b/patches/date-fns-tz+2.0.0.patch new file mode 100644 index 000000000000..aa88f1443a79 --- /dev/null +++ b/patches/date-fns-tz+2.0.0.patch @@ -0,0 +1,84 @@ +diff --git a/node_modules/date-fns-tz/_lib/tzTokenizeDate/index.js b/node_modules/date-fns-tz/_lib/tzTokenizeDate/index.js +index 9222a61..8540224 100644 +--- a/node_modules/date-fns-tz/_lib/tzTokenizeDate/index.js ++++ b/node_modules/date-fns-tz/_lib/tzTokenizeDate/index.js +@@ -59,20 +59,23 @@ function hackyOffset(dtf, date) { + + var dtfCache = {}; + ++// New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12` ++const testDateFormatted = new Intl.DateTimeFormat('en-US', { ++ hourCycle: 'h23', ++ timeZone: 'America/New_York', ++ year: 'numeric', ++ month: '2-digit', ++ day: '2-digit', ++ hour: '2-digit', ++ minute: '2-digit', ++ second: '2-digit', ++}).format(new Date('2014-06-25T04:00:00.123Z')) ++const hourCycleSupported = ++ testDateFormatted === '06/25/2014, 00:00:00' || ++ testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00' ++ + function getDateTimeFormat(timeZone) { + if (!dtfCache[timeZone]) { +- // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12` +- var testDateFormatted = new Intl.DateTimeFormat('en-US', { +- hour12: false, +- timeZone: 'America/New_York', +- year: 'numeric', +- month: 'numeric', +- day: '2-digit', +- hour: '2-digit', +- minute: '2-digit', +- second: '2-digit' +- }).format(new Date('2014-06-25T04:00:00.123Z')); +- var hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' || testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00'; + dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat('en-US', { + hour12: false, + timeZone: timeZone, +diff --git a/node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js b/node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js +index cc1d143..17333cc 100644 +--- a/node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js ++++ b/node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js +@@ -48,23 +48,24 @@ function hackyOffset(dtf, date) { + // to get deterministic local date/time output according to the `en-US` locale which + // can be used to extract local time parts as necessary. + var dtfCache = {} ++ ++// New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12` ++const testDateFormatted = new Intl.DateTimeFormat('en-US', { ++ hourCycle: 'h23', ++ timeZone: 'America/New_York', ++ year: 'numeric', ++ month: '2-digit', ++ day: '2-digit', ++ hour: '2-digit', ++ minute: '2-digit', ++ second: '2-digit', ++}).format(new Date('2014-06-25T04:00:00.123Z')) ++const hourCycleSupported = ++ testDateFormatted === '06/25/2014, 00:00:00' || ++ testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00' ++ + function getDateTimeFormat(timeZone) { + if (!dtfCache[timeZone]) { +- // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12` +- var testDateFormatted = new Intl.DateTimeFormat('en-US', { +- hour12: false, +- timeZone: 'America/New_York', +- year: 'numeric', +- month: 'numeric', +- day: '2-digit', +- hour: '2-digit', +- minute: '2-digit', +- second: '2-digit', +- }).format(new Date('2014-06-25T04:00:00.123Z')) +- var hourCycleSupported = +- testDateFormatted === '06/25/2014, 00:00:00' || +- testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00' +- + dtfCache[timeZone] = hourCycleSupported + ? new Intl.DateTimeFormat('en-US', { + hour12: false, diff --git a/patches/expo+51.0.17+001+hybrid-app.patch b/patches/expo+51.0.31+001+hybrid-app.patch similarity index 100% rename from patches/expo+51.0.17+001+hybrid-app.patch rename to patches/expo+51.0.31+001+hybrid-app.patch diff --git a/patches/expo+51.0.17+002+rn-75-fixes.patch b/patches/expo+51.0.31+002+rn-75-fixes.patch similarity index 51% rename from patches/expo+51.0.17+002+rn-75-fixes.patch rename to patches/expo+51.0.31+002+rn-75-fixes.patch index 77848c5369c4..8ed156d9ebba 100644 --- a/patches/expo+51.0.17+002+rn-75-fixes.patch +++ b/patches/expo+51.0.31+002+rn-75-fixes.patch @@ -1,23 +1,3 @@ -diff --git a/node_modules/expo/android/src/main/java/expo/modules/ExpoReactHostFactory.kt b/node_modules/expo/android/src/main/java/expo/modules/ExpoReactHostFactory.kt -index ed65d12..09bd068 100644 ---- a/node_modules/expo/android/src/main/java/expo/modules/ExpoReactHostFactory.kt -+++ b/node_modules/expo/android/src/main/java/expo/modules/ExpoReactHostFactory.kt -@@ -92,7 +92,6 @@ object ExpoReactHostFactory { - if (reactHost == null) { - val useDeveloperSupport = reactNativeHost.useDeveloperSupport - val reactHostDelegate = ExpoReactHostDelegate(WeakReference(context), reactNativeHost) -- val reactJsExceptionHandler = ReactJsExceptionHandler { _ -> } - val componentFactory = ComponentFactory() - DefaultComponentsRegistry.register(componentFactory) - -@@ -106,7 +105,6 @@ object ExpoReactHostFactory { - reactHostDelegate, - componentFactory, - true, -- reactJsExceptionHandler, - useDeveloperSupport - ) - .apply { diff --git a/node_modules/expo/android/src/main/java/expo/modules/ReactNativeHostWrapperBase.kt b/node_modules/expo/android/src/main/java/expo/modules/ReactNativeHostWrapperBase.kt index d6b2180..cb006ce 100644 --- a/node_modules/expo/android/src/main/java/expo/modules/ReactNativeHostWrapperBase.kt diff --git a/patches/expo-av+14.0.6+002+rn-75-fixes.patch b/patches/expo-av+14.0.6+002+rn-75-fixes.patch deleted file mode 100644 index 6f0a1db1535b..000000000000 --- a/patches/expo-av+14.0.6+002+rn-75-fixes.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/node_modules/expo-av/ios/EXAV.podspec b/node_modules/expo-av/ios/EXAV.podspec -index 20a258b..8add1ba 100644 ---- a/node_modules/expo-av/ios/EXAV.podspec -+++ b/node_modules/expo-av/ios/EXAV.podspec -@@ -20,7 +20,8 @@ Pod::Spec.new do |s| - # Swift/Objective-C compatibility - s.pod_target_xcconfig = { - 'DEFINES_MODULE' => 'YES', -- 'SWIFT_COMPILATION_MODE' => 'wholemodule' -+ 'SWIFT_COMPILATION_MODE' => 'wholemodule', -+ 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++20' - } - - if !$ExpoUseSources&.include?(package['name']) && ENV['EXPO_USE_SOURCE'].to_i == 0 && File.exist?("#{s.name}.xcframework") && Gem::Version.new(Pod::VERSION) >= Gem::Version.new('1.10.0') diff --git a/patches/expo-av+14.0.6+001+hybrid-app.patch b/patches/expo-av+14.0.7+001+hybrid-app.patch similarity index 94% rename from patches/expo-av+14.0.6+001+hybrid-app.patch rename to patches/expo-av+14.0.7+001+hybrid-app.patch index d26b966bbfd4..4cf0dee990c5 100644 --- a/patches/expo-av+14.0.6+001+hybrid-app.patch +++ b/patches/expo-av+14.0.7+001+hybrid-app.patch @@ -1,11 +1,11 @@ diff --git a/node_modules/expo-av/android/build.gradle b/node_modules/expo-av/android/build.gradle -index 2cd43df..bf748bc 100644 +index 11e7574..6dae6a0 100644 --- a/node_modules/expo-av/android/build.gradle +++ b/node_modules/expo-av/android/build.gradle @@ -3,12 +3,13 @@ apply plugin: 'com.android.library' group = 'host.exp.exponent' - version = '14.0.6' - + version = '14.0.7' + +def REACT_NATIVE_PATH = this.hasProperty('reactNativeProject') ? this.reactNativeProject + '/node_modules/react-native/package.json' : 'react-native/package.json' def REACT_NATIVE_BUILD_FROM_SOURCE = findProject(":ReactAndroid") != null def REACT_NATIVE_DIR = REACT_NATIVE_BUILD_FROM_SOURCE @@ -15,5 +15,5 @@ index 2cd43df..bf748bc 100644 - commandLine("node", "--print", "require.resolve('react-native/package.json')") + commandLine("node", "--print", "require.resolve('${REACT_NATIVE_PATH}')") }.standardOutput.asText.get().trim()).parent - + def reactNativeArchitectures() { diff --git a/patches/expo-image+1.12.12+001+rn-75-fixes.patch b/patches/expo-image+1.12.12+001+rn-75-fixes.patch deleted file mode 100644 index 4ef48d01da76..000000000000 --- a/patches/expo-image+1.12.12+001+rn-75-fixes.patch +++ /dev/null @@ -1,52 +0,0 @@ -\ No newline at end of file -diff --git a/node_modules/expo-image/android/build/tmp/kapt3/stubs/debug/expo/modules/image/thumbhash/ThumbhashModule.kapt_metadata b/node_modules/expo-image/android/build/tmp/kapt3/stubs/debug/expo/modules/image/thumbhash/ThumbhashModule.kapt_metadata -new file mode 100644 -index 0000000..f469e9e -Binary files /dev/null and b/node_modules/expo-image/android/build/tmp/kapt3/stubs/debug/expo/modules/image/thumbhash/ThumbhashModule.kapt_metadata differ -diff --git a/node_modules/expo-image/android/src/main/java/expo/modules/image/ExpoImageView.kt b/node_modules/expo-image/android/src/main/java/expo/modules/image/ExpoImageView.kt -index 64619c6..3d94142 100644 ---- a/node_modules/expo-image/android/src/main/java/expo/modules/image/ExpoImageView.kt -+++ b/node_modules/expo-image/android/src/main/java/expo/modules/image/ExpoImageView.kt -@@ -211,14 +211,14 @@ class ExpoImageView( - super.onDraw(canvas) - // Draw borders on top of the background and image - if (borderDrawableLazyHolder.isInitialized()) { -- val layoutDirection = if (I18nUtil.getInstance().isRTL(context)) { -+ val layoutDirection = if (I18nUtil.instance.isRTL(context)) { - LAYOUT_DIRECTION_RTL - } else { - LAYOUT_DIRECTION_LTR - } - - borderDrawable.apply { -- resolvedLayoutDirection = layoutDirection -+ setLayoutDirectionOverride(layoutDirection) - setBounds(0, 0, width, height) - draw(canvas) - } -diff --git a/node_modules/expo-image/android/src/main/java/expo/modules/image/ResourceIdHelper.kt b/node_modules/expo-image/android/src/main/java/expo/modules/image/ResourceIdHelper.kt -index aabe829..aac94db 100644 ---- a/node_modules/expo-image/android/src/main/java/expo/modules/image/ResourceIdHelper.kt -+++ b/node_modules/expo-image/android/src/main/java/expo/modules/image/ResourceIdHelper.kt -@@ -32,7 +32,7 @@ object ResourceIdHelper { - } - - fun getResourceUri(context: Context, name: String): Uri? { -- val drawableUri = ResourceDrawableIdHelper.getInstance().getResourceDrawableUri(context, name) -+ val drawableUri = ResourceDrawableIdHelper.instance.getResourceDrawableUri(context, name) - if (drawableUri != Uri.EMPTY) { - return drawableUri - } -diff --git a/node_modules/expo-image/android/src/main/java/expo/modules/image/drawing/OutlineProvider.kt b/node_modules/expo-image/android/src/main/java/expo/modules/image/drawing/OutlineProvider.kt -index 72b7289..5178d03 100644 ---- a/node_modules/expo-image/android/src/main/java/expo/modules/image/drawing/OutlineProvider.kt -+++ b/node_modules/expo-image/android/src/main/java/expo/modules/image/drawing/OutlineProvider.kt -@@ -52,7 +52,7 @@ class OutlineProvider(private val mContext: Context) : ViewOutlineProvider() { - } - - val isRTL = mLayoutDirection == View.LAYOUT_DIRECTION_RTL -- val isRTLSwap = I18nUtil.getInstance().doLeftAndRightSwapInRTL(mContext) -+ val isRTLSwap = I18nUtil.instance.doLeftAndRightSwapInRTL(mContext) - updateCornerRadius( - CornerRadius.TOP_LEFT, - BorderRadiusConfig.TOP_LEFT, diff --git a/patches/expo-modules-autolinking+1.11.1+001+hybrid-app.patch b/patches/expo-modules-autolinking+1.11.2+001+hybrid-app.patch similarity index 100% rename from patches/expo-modules-autolinking+1.11.1+001+hybrid-app.patch rename to patches/expo-modules-autolinking+1.11.2+001+hybrid-app.patch diff --git a/patches/expo-modules-core+1.12.18+002+rn75-fixes.patch b/patches/expo-modules-core+1.12.18+002+rn75-fixes.patch deleted file mode 100644 index 9377edf8e10f..000000000000 --- a/patches/expo-modules-core+1.12.18+002+rn75-fixes.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff --git a/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/ModuleRegistryReadyNotifier.java b/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/ModuleRegistryReadyNotifier.java -index c873ec0..98628e6 100644 ---- a/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/ModuleRegistryReadyNotifier.java -+++ b/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/ModuleRegistryReadyNotifier.java -@@ -20,7 +20,7 @@ public class ModuleRegistryReadyNotifier extends BaseJavaModule { - - @Override - public String getName() { -- return null; -+ return "ModuleRegistryReadyNotifier"; - } - - @Override -diff --git a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/AppContext.kt b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/AppContext.kt -index 7f1b5e6..bc127ff 100644 ---- a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/AppContext.kt -+++ b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/AppContext.kt -@@ -170,7 +170,7 @@ class AppContext( - this, - jsRuntimePointer, - jniDeallocator, -- reactContext.runtimeExecutor!! -+ reactContext.catalystInstance.runtimeExecutor!! - ) - } else { - jsiInterop.installJSI( -diff --git a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/defaultmodules/CoreModule.kt b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/defaultmodules/CoreModule.kt -index 71725db..62da68a 100644 ---- a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/defaultmodules/CoreModule.kt -+++ b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/defaultmodules/CoreModule.kt -@@ -4,7 +4,7 @@ import com.facebook.react.ReactActivity - import com.facebook.react.ReactDelegate - import com.facebook.react.bridge.UiThreadUtil - import com.facebook.react.config.ReactFeatureFlags --import com.facebook.react.devsupport.DisabledDevSupportManager -+import com.facebook.react.devsupport.ReleaseDevSupportManager - import expo.modules.kotlin.events.normalizeEventName - import expo.modules.kotlin.modules.Module - import expo.modules.kotlin.modules.ModuleDefinition -@@ -70,7 +70,7 @@ class CoreModule : Module() { - ?: return@AsyncFunction - if (!ReactFeatureFlags.enableBridgelessArchitecture) { - val reactInstanceManager = reactDelegate.reactInstanceManager -- if (reactInstanceManager.devSupportManager is DisabledDevSupportManager) { -+ if (reactInstanceManager.devSupportManager is ReleaseDevSupportManager) { - UiThreadUtil.runOnUiThread { - reactInstanceManager.recreateReactContextInBackground() - } -diff --git a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/views/FilteredReadableMap.kt b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/views/FilteredReadableMap.kt -index 0ff2a51..a6ff1f8 100644 ---- a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/views/FilteredReadableMap.kt -+++ b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/views/FilteredReadableMap.kt -@@ -41,8 +41,8 @@ class FilteredReadableMap( - private val backingMap: ReadableMap, - private val filteredKeys: List - ) : ReadableMap by backingMap { -- override fun getEntryIterator(): Iterator> = -- FilteredIterator(backingMap.entryIterator) { -+ override val entryIterator: Iterator> -+ get() = FilteredIterator(backingMap.entryIterator) { - !filteredKeys.contains(it.key) - } - diff --git a/patches/expo-modules-core+1.12.18+001+disableViewRecycling.patch b/patches/expo-modules-core+1.12.23+001+disableViewRecycling.patch similarity index 100% rename from patches/expo-modules-core+1.12.18+001+disableViewRecycling.patch rename to patches/expo-modules-core+1.12.23+001+disableViewRecycling.patch diff --git a/patches/expo-modules-core+1.12.18+003+hybrid-app.patch b/patches/expo-modules-core+1.12.23+002+hybrid-app.patch similarity index 100% rename from patches/expo-modules-core+1.12.18+003+hybrid-app.patch rename to patches/expo-modules-core+1.12.23+002+hybrid-app.patch diff --git a/patches/react-native-haptic-feedback+2.2.0.patch b/patches/react-native-haptic-feedback+2.2.0.patch deleted file mode 100644 index 4fb61b430869..000000000000 --- a/patches/react-native-haptic-feedback+2.2.0.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/node_modules/react-native-haptic-feedback/RNReactNativeHapticFeedback.podspec b/node_modules/react-native-haptic-feedback/RNReactNativeHapticFeedback.podspec -index e692f2d..9dedd9b 100644 ---- a/node_modules/react-native-haptic-feedback/RNReactNativeHapticFeedback.podspec -+++ b/node_modules/react-native-haptic-feedback/RNReactNativeHapticFeedback.podspec -@@ -17,24 +17,7 @@ Pod::Spec.new do |s| - s.source_files = "ios/**/*.{h,m,mm}" - s.requires_arc = true - -- s.dependency 'React-Core' -- -- # This guard prevent to install the dependencies when we run `pod install` in the old architecture. -- if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then -- folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' -- -- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1" -- s.pod_target_xcconfig = { -- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"", -- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" -- } -- -- s.dependency "React-Codegen" -- s.dependency "RCT-Folly" -- s.dependency "RCTRequired" -- s.dependency "RCTTypeSafety" -- s.dependency "ReactCommon/turbomodule/core" -- end -+ install_modules_dependencies(s) - end - - diff --git a/patches/react-native-haptic-feedback+2.3.1.patch b/patches/react-native-haptic-feedback+2.3.1.patch new file mode 100644 index 000000000000..799bdaf7e53e --- /dev/null +++ b/patches/react-native-haptic-feedback+2.3.1.patch @@ -0,0 +1,56 @@ +diff --git a/node_modules/react-native-haptic-feedback/ios/RNHapticFeedback/RNHapticFeedback.h b/node_modules/react-native-haptic-feedback/ios/RNHapticFeedback/RNHapticFeedback.h +index c1498b9..250df1f 100644 +--- a/node_modules/react-native-haptic-feedback/ios/RNHapticFeedback/RNHapticFeedback.h ++++ b/node_modules/react-native-haptic-feedback/ios/RNHapticFeedback/RNHapticFeedback.h +@@ -1,5 +1,5 @@ + #ifdef RCT_NEW_ARCH_ENABLED +-#import "RNHapticFeedbackSpec.h" ++#import + + @interface RNHapticFeedback : NSObject + #else +diff --git a/node_modules/react-native-haptic-feedback/ios/RNHapticFeedback/RNHapticFeedbackSpec.h b/node_modules/react-native-haptic-feedback/ios/RNHapticFeedback/RNHapticFeedbackSpec.h +deleted file mode 100644 +index 6f0f81d..0000000 +--- a/node_modules/react-native-haptic-feedback/ios/RNHapticFeedback/RNHapticFeedbackSpec.h ++++ /dev/null +@@ -1,15 +0,0 @@ +-// +-// RNHapticFeedbackSpec.h +-// RNHapticFeedback +-// +-// Created by Michael Kuczera on 05.08.24. +-// Copyright © 2024 Facebook. All rights reserved. +-// +-#import +- +-@protocol NativeHapticFeedbackSpec +- +-// Indicates whether the device supports haptic feedback +-- (Boolean)supportsHaptic; +- +-@end +diff --git a/node_modules/react-native-haptic-feedback/package.json b/node_modules/react-native-haptic-feedback/package.json +index 86dfaa4..9cec8e4 100644 +--- a/node_modules/react-native-haptic-feedback/package.json ++++ b/node_modules/react-native-haptic-feedback/package.json +@@ -6,18 +6,7 @@ + "source": "src/index.ts", + "main": "./lib/commonjs/index.js", + "module": "./lib/module/index.js", +- "exports": { +- ".": { +- "import": { +- "types": "./lib/typescript/module/src/index.d.ts", +- "default": "./lib/module/index.js" +- }, +- "require": { +- "types": "./lib/typescript/commonjs/src/index.d.ts", +- "default": "./lib/commonjs/index.js" +- } +- } +- }, ++ "types": "./lib/typescript/module/src/index.d.ts", + "scripts": { + "typecheck": "tsc --noEmit --project tsconfig.test.json", + "test": "jest", diff --git a/patches/react-native-pdf+6.7.3.patch b/patches/react-native-pdf+6.7.3.patch deleted file mode 100644 index 0f0f270cefd1..000000000000 --- a/patches/react-native-pdf+6.7.3.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff --git a/node_modules/react-native-pdf/react-native-pdf.podspec b/node_modules/react-native-pdf/react-native-pdf.podspec -index fb36140..5d5f19e 100644 ---- a/node_modules/react-native-pdf/react-native-pdf.podspec -+++ b/node_modules/react-native-pdf/react-native-pdf.podspec -@@ -17,24 +17,11 @@ Pod::Spec.new do |s| - s.framework = "PDFKit" - - if fabric_enabled -- folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' -- -- s.pod_target_xcconfig = { -- 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/boost" "$(PODS_ROOT)/boost-for-react-native" "$(PODS_ROOT)/RCT-Folly"', -- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", -- } - s.platforms = { ios: '11.0', tvos: '11.0' } -- s.compiler_flags = folly_compiler_flags + ' -DRCT_NEW_ARCH_ENABLED' - s.source_files = 'ios/**/*.{h,m,mm,cpp}' - s.requires_arc = true - -- s.dependency "React" -- s.dependency "React-RCTFabric" -- s.dependency "React-Codegen" -- s.dependency "RCT-Folly" -- s.dependency "RCTRequired" -- s.dependency "RCTTypeSafety" -- s.dependency "ReactCommon/turbomodule/core" -+ install_modules_dependencies(s) - else - s.platform = :ios, '8.0' - s.source_files = 'ios/**/*.{h,m,mm}' -diff --git a/node_modules/react-native-pdf/index.js b/node_modules/react-native-pdf/index.js -index c05de52..bea7af8 100644 ---- a/node_modules/react-native-pdf/index.js -+++ b/node_modules/react-native-pdf/index.js -@@ -367,11 +367,17 @@ export default class Pdf extends Component { - message[4] = message.splice(4).join('|'); - } - if (message[0] === 'loadComplete') { -+ let tableContents; -+ try { -+ tableContents = message[4]&&JSON.parse(message[4]); -+ } catch(e) { -+ tableContents = message[4]; -+ } - this.props.onLoadComplete && this.props.onLoadComplete(Number(message[1]), this.state.path, { - width: Number(message[2]), - height: Number(message[3]), - }, -- message[4]&&JSON.parse(message[4])); -+ tableContents); - } else if (message[0] === 'pageChanged') { - this.props.onPageChanged && this.props.onPageChanged(Number(message[1]), Number(message[2])); - } else if (message[0] === 'error') { diff --git a/patches/react-native-pdf+6.7.5.patch b/patches/react-native-pdf+6.7.5.patch new file mode 100644 index 000000000000..0cdcf4d5b0c9 --- /dev/null +++ b/patches/react-native-pdf+6.7.5.patch @@ -0,0 +1,12 @@ +diff --git a/node_modules/react-native-pdf/fabric/RNPDFPdfNativeComponent.js b/node_modules/react-native-pdf/fabric/RNPDFPdfNativeComponent.js +index 596d796..4e47061 100644 +--- a/node_modules/react-native-pdf/fabric/RNPDFPdfNativeComponent.js ++++ b/node_modules/react-native-pdf/fabric/RNPDFPdfNativeComponent.js +@@ -22,6 +22,7 @@ + enablePaging: ?boolean, + enableRTL: ?boolean, + enableAnnotationRendering: ?boolean, ++ enableDoubleTapZoom: ?boolean, + showsHorizontalScrollIndicator: ?boolean, + showsVerticalScrollIndicator: ?boolean, + enableAntialiasing: ?boolean, diff --git a/patches/react-native-share+10.0.2+001+hybrid-app.patch b/patches/react-native-share+10.0.2+001+hybrid-app.patch deleted file mode 100644 index 13dcc1e8438b..000000000000 --- a/patches/react-native-share+10.0.2+001+hybrid-app.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/node_modules/react-native-share/RNShare.podspec b/node_modules/react-native-share/RNShare.podspec -index 124a721..636a1f7 100644 ---- a/node_modules/react-native-share/RNShare.podspec -+++ b/node_modules/react-native-share/RNShare.podspec -@@ -20,20 +20,6 @@ Pod::Spec.new do |s| - - s.ios.weak_framework = 'LinkPresentation' - -- if ENV["RCT_NEW_ARCH_ENABLED"] == "1" -- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1" -- s.pod_target_xcconfig = { -- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"", -- "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1", -- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" -- } -- -- s.dependency "React-Codegen" -- s.dependency "React-RCTFabric" -- s.dependency "RCT-Folly" -- s.dependency "RCTRequired" -- s.dependency "RCTTypeSafety" -- s.dependency "ReactCommon/turbomodule/core" -- end -+ install_modules_dependencies(s) - - end diff --git a/src/CONST.ts b/src/CONST.ts index d0695b1e285f..86cbd4c28fc9 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -34,6 +34,8 @@ const CURRENT_YEAR = new Date().getFullYear(); const PULL_REQUEST_NUMBER = Config?.PULL_REQUEST_NUMBER ?? ''; const MAX_DATE = dateAdd(new Date(), {years: 1}); const MIN_DATE = dateSubtract(new Date(), {years: 20}); +const EXPENSIFY_POLICY_DOMAIN = 'expensify-policy'; +const EXPENSIFY_POLICY_DOMAIN_EXTENSION = '.exfy'; const keyModifierControl = KeyCommand?.constants?.keyModifierControl ?? 'keyModifierControl'; const keyModifierCommand = KeyCommand?.constants?.keyModifierCommand ?? 'keyModifierCommand'; @@ -187,6 +189,8 @@ const CONST = { }, // Multiplier for gyroscope animation in order to make it a bit more subtle ANIMATION_GYROSCOPE_VALUE: 0.4, + ANIMATION_PAY_BUTTON_DURATION: 200, + ANIMATION_PAY_BUTTON_HIDE_DELAY: 1000, BACKGROUND_IMAGE_TRANSITION_DURATION: 1000, SCREEN_TRANSITION_END_TIMEOUT: 1000, ARROW_HIDE_DELAY: 3000, @@ -461,7 +465,6 @@ const CONST = { DEFAULT_ROOMS: 'defaultRooms', DUPE_DETECTION: 'dupeDetection', P2P_DISTANCE_REQUESTS: 'p2pDistanceRequests', - WORKFLOWS_ADVANCED_APPROVAL: 'workflowsAdvancedApproval', SPOTNANA_TRAVEL: 'spotnanaTravel', REPORT_FIELDS_FEATURE: 'reportFieldsFeature', WORKSPACE_FEEDS: 'workspaceFeeds', @@ -715,7 +718,9 @@ const CONST = { SAGE_INTACCT_HELP_LINK: "https://help.expensify.com/articles/expensify-classic/connections/sage-intacct/Sage-Intacct-Troubleshooting#:~:text=First%20make%20sure%20that%20you,your%20company's%20Web%20Services%20authorizations.", PRICING: `https://www.expensify.com/pricing`, + COMPANY_CARDS_HELP: 'https://help.expensify.com/articles/expensify-classic/connect-credit-cards/company-cards/Commercial-Card-Feeds', CUSTOM_REPORT_NAME_HELP_URL: 'https://help.expensify.com/articles/expensify-classic/spending-insights/Custom-Templates', + COPILOT_HELP_URL: 'https://help.expensify.com/articles/expensify-classic/copilots-and-delegates/Assign-or-remove-a-Copilot', // Use Environment.getEnvironmentURL to get the complete URL with port number DEV_NEW_EXPENSIFY_URL: 'https://dev.new.expensify.com:', OLDDOT_URLS: { @@ -724,8 +729,8 @@ const CONST = { INBOX: 'inbox', }, - EXPENSIFY_POLICY_DOMAIN: 'expensify-policy', - EXPENSIFY_POLICY_DOMAIN_EXTENSION: '.exfy', + EXPENSIFY_POLICY_DOMAIN, + EXPENSIFY_POLICY_DOMAIN_EXTENSION, SIGN_IN_FORM_WIDTH: 300, @@ -772,6 +777,7 @@ const CONST = { }, MAX_COUNT_BEFORE_FOCUS_UPDATE: 30, MIN_INITIAL_REPORT_ACTION_COUNT: 15, + UNREPORTED_REPORTID: '0', SPLIT_REPORTID: '-2', ACTIONS: { LIMIT: 50, @@ -824,6 +830,7 @@ const CONST = { REIMBURSEMENT_SETUP: 'REIMBURSEMENTSETUP', // Deprecated OldDot Action REIMBURSEMENT_SETUP_REQUESTED: 'REIMBURSEMENTSETUPREQUESTED', // Deprecated OldDot Action REJECTED: 'REJECTED', + REMOVED_FROM_APPROVAL_CHAIN: 'REMOVEDFROMAPPROVALCHAIN', RENAMED: 'RENAMED', REPORT_PREVIEW: 'REPORTPREVIEW', SELECTED_FOR_RANDOM_AUDIT: 'SELECTEDFORRANDOMAUDIT', // OldDot Action @@ -943,6 +950,7 @@ const CONST = { ACCOUNT_MERGED: 'accountMerged', REMOVED_FROM_POLICY: 'removedFromPolicy', POLICY_DELETED: 'policyDeleted', + INVOICE_RECEIVER_POLICY_DELETED: 'invoiceReceiverPolicyDeleted', BOOKING_END_DATE_HAS_PASSED: 'bookingEndDateHasPassed', }, MESSAGE: { @@ -1019,6 +1027,9 @@ const CONST = { EXPORT_TO_INTEGRATION: 'exportToIntegration', MARK_AS_EXPORTED: 'markAsExported', }, + ROOM_MEMBERS_BULK_ACTION_TYPES: { + REMOVE: 'remove', + }, }, NEXT_STEP: { ICONS: { @@ -1818,6 +1829,16 @@ const CONST = { VENDOR_BILL: 'bill', }, + MISSING_PERSONAL_DETAILS_INDEXES: { + MAPPING: { + LEGAL_NAME: 0, + DATE_OF_BIRTH: 1, + ADDRESS: 2, + PHONE_NUMBER: 3, + }, + INDEX_LIST: ['1', '2', '3', '4'], + }, + ACCOUNT_ID: { ACCOUNTING: Number(Config?.EXPENSIFY_ACCOUNT_ID_ACCOUNTING ?? 9645353), ADMIN: Number(Config?.EXPENSIFY_ACCOUNT_ID_ADMIN ?? -1), @@ -2189,6 +2210,7 @@ const CONST = { REMOVE: 'remove', MAKE_MEMBER: 'makeMember', MAKE_ADMIN: 'makeAdmin', + MAKE_AUDITOR: 'makeAuditor', }, BULK_ACTION_TYPES: { DELETE: 'delete', @@ -2321,6 +2343,8 @@ const CONST = { NETSUITE_SYNC_UPDATE_DATA: 'netSuiteSyncUpdateConnectionData', NETSUITE_SYNC_NETSUITE_REIMBURSED_REPORTS: 'netSuiteSyncNetSuiteReimbursedReports', NETSUITE_SYNC_EXPENSIFY_REIMBURSED_REPORTS: 'netSuiteSyncExpensifyReimbursedReports', + NETSUITE_SYNC_IMPORT_VENDORS_TITLE: 'netSuiteImportVendorsTitle', + NETSUITE_SYNC_IMPORT_CUSTOM_LISTS_TITLE: 'netSuiteImportCustomListsTitle', SAGE_INTACCT_SYNC_CHECK_CONNECTION: 'intacctCheckConnection', SAGE_INTACCT_SYNC_IMPORT_TITLE: 'intacctImportTitle', SAGE_INTACCT_SYNC_IMPORT_DATA: 'intacctImportData', @@ -2338,6 +2362,15 @@ const CONST = { DEFAULT_MAX_EXPENSE_AGE: 90, DEFAULT_MAX_EXPENSE_AMOUNT: 200000, DEFAULT_MAX_AMOUNT_NO_RECEIPT: 2500, + REQUIRE_RECEIPTS_OVER_OPTIONS: { + DEFAULT: 'default', + NEVER: 'never', + ALWAYS: 'always', + }, + EXPENSE_LIMIT_TYPES: { + EXPENSE: 'expense', + DAILY: 'daily', + }, }, CUSTOM_UNITS: { @@ -2444,6 +2477,107 @@ const CONST = { }, CARD_TITLE_INPUT_LIMIT: 255, }, + COMPANY_CARDS: { + STEP: { + CARD_TYPE: 'CardType', + CARD_INSTRUCTIONS: 'CardInstructions', + CARD_NAME: 'CardName', + CARD_DETAILS: 'CardDetails', + }, + CARD_TYPE: { + AMEX: 'amex', + VISA: 'visa', + MASTERCARD: 'mastercard', + }, + DELETE_TRANSACTIONS: { + RESTRICT: 'corporate', + ALLOW: 'personal', + }, + EXPORT_CARD_TYPES: { + /** + * Name of Card NVP for QBO custom export accounts + */ + NVP_QUICKBOOKS_ONLINE_EXPORT_ACCOUNT: 'quickbooks_online_export_account', + NVP_QUICKBOOKS_ONLINE_EXPORT_ACCOUNT_DEBIT: 'quickbooks_online_export_account_debit', + + /** + * Name of Card NVP for NetSuite custom export accounts + */ + NVP_NETSUITE_EXPORT_ACCOUNT: 'netsuite_export_payable_account', + + /** + * Name of Card NVP for NetSuite custom vendors + */ + NVP_NETSUITE_EXPORT_VENDOR: 'netsuite_export_vendor', + + /** + * Name of Card NVP for Xero custom export accounts + */ + NVP_XERO_EXPORT_BANK_ACCOUNT: 'xero_export_bank_account', + + /** + * Name of Card NVP for Intacct custom export accounts + */ + NVP_INTACCT_EXPORT_CHARGE_CARD: 'intacct_export_charge_card', + + /** + * Name of card NVP for Intacct custom vendors + */ + NVP_INTACCT_EXPORT_VENDOR: 'intacct_export_vendor', + + /** + * Name of Card NVP for QuickBooks Desktop custom export accounts + */ + NVP_QUICKBOOKS_DESKTOP_EXPORT_ACCOUNT_CREDIT: 'quickbooks_desktop_export_account_credit', + + /** + * Name of Card NVP for QuickBooks Desktop custom export accounts + */ + NVP_FINANCIALFORCE_EXPORT_VENDOR: 'financialforce_export_vendor', + }, + EXPORT_CARD_POLICY_TYPES: { + /** + * Name of Card NVP for QBO custom export accounts + */ + NVP_QUICKBOOKS_ONLINE_EXPORT_ACCOUNT_POLICY_ID: 'quickbooks_online_export_account_policy_id', + NVP_QUICKBOOKS_ONLINE_EXPORT_ACCOUNT_DEBIT_POLICY_ID: 'quickbooks_online_export_account_debit_policy_id', + + /** + * Name of Card NVP for NetSuite custom export accounts + */ + NVP_NETSUITE_EXPORT_ACCOUNT_POLICY_ID: 'netsuite_export_payable_account_policy_id', + + /** + * Name of Card NVP for NetSuite custom vendors + */ + NVP_NETSUITE_EXPORT_VENDOR_POLICY_ID: 'netsuite_export_vendor_policy_id', + + /** + * Name of Card NVP for Xero custom export accounts + */ + NVP_XERO_EXPORT_BANK_ACCOUNT_POLICY_ID: 'xero_export_bank_account_policy_id', + + /** + * Name of Card NVP for Intacct custom export accounts + */ + NVP_INTACCT_EXPORT_CHARGE_CARD_POLICY_ID: 'intacct_export_charge_card_policy_id', + + /** + * Name of card NVP for Intacct custom vendors + */ + NVP_INTACCT_EXPORT_VENDOR_POLICY_ID: 'intacct_export_vendor_policy_id', + + /** + * Name of Card NVP for QuickBooks Desktop custom export accounts + */ + NVP_QUICKBOOKS_DESKTOP_EXPORT_ACCOUNT_CREDIT_POLICY_ID: 'quickbooks_desktop_export_account_credit_policy_id', + + /** + * Name of Card NVP for QuickBooks Desktop custom export accounts + */ + NVP_FINANCIALFORCE_EXPORT_VENDOR_POLICY_ID: 'financialforce_export_vendor_policy_id', + }, + }, AVATAR_ROW_SIZE: { DEFAULT: 4, LARGE_SCREEN: 8, @@ -2458,12 +2592,6 @@ const CONST = { PAYPERUSE: 'monthly2018', }, }, - COMPANY_CARDS: { - DELETE_TRANSACTIONS: { - RESTRICT: 'corporate', - ALLOW: 'personal', - }, - }, REGEX: { SPECIAL_CHARS_WITHOUT_NEWLINE: /((?!\n)[()-\s\t])/g, DIGITS_AND_PLUS: /^\+?[0-9]*$/, @@ -2505,10 +2633,8 @@ const CONST = { ATTACHMENT_ID: /chat-attachments\/(\d+)/, HAS_COLON_ONLY_AT_THE_BEGINNING: /^:[^:]+$/, HAS_AT_MOST_TWO_AT_SIGNS: /^@[^@]*@?[^@]*$/, - EMPTY_COMMENT: /^(\s)*$/, SPECIAL_CHAR: /[,/?"{}[\]()&^%;`$=#<>!*]/g, - FIRST_SPACE: /.+?(?=\s)/, get SPECIAL_CHAR_OR_EMOJI() { @@ -2526,33 +2652,28 @@ const CONST = { }, MERGED_ACCOUNT_PREFIX: /^(MERGED_\d+@)/, - ROUTES: { VALIDATE_LOGIN: /\/v($|(\/\/*))/, UNLINK_LOGIN: /\/u($|(\/\/*))/, REDUNDANT_SLASHES: /(\/{2,})|(\/$)/g, }, - TIME_STARTS_01: /^01:\d{2} [AP]M$/, TIME_FORMAT: /^\d{2}:\d{2} [AP]M$/, DATE_TIME_FORMAT: /^\d{2}-\d{2} \d{2}:\d{2} [AP]M$/, ILLEGAL_FILENAME_CHARACTERS: /\/|<|>|\*|"|:|\?|\\|\|/g, - ENCODE_PERCENT_CHARACTER: /%(25)+/g, - INVISIBLE_CHARACTERS_GROUPS: /[\p{C}\p{Z}]/gu, - OTHER_INVISIBLE_CHARACTERS: /[\u3164]/g, - REPORT_FIELD_TITLE: /{report:([a-zA-Z]+)}/g, - PATH_WITHOUT_POLICY_ID: /\/w\/[a-zA-Z0-9]+(\/|$)/, - POLICY_ID_FROM_PATH: /\/w\/([a-zA-Z0-9]+)(\/|$)/, - SHORT_MENTION: new RegExp(`@[\\w\\-\\+\\'#@]+(?:\\.[\\w\\-\\'\\+]+)*(?![^\`]*\`)`, 'gim'), - REPORT_ID_FROM_PATH: /\/r\/(\d+)/, + DISTANCE_MERCHANT: /^[0-9.]+ \w+ @ (-|-\()?[^0-9.\s]{1,3} ?[0-9.]+\)? \/ \w+$/, + + get EXPENSIFY_POLICY_DOMAIN_NAME() { + return new RegExp(`${EXPENSIFY_POLICY_DOMAIN}([a-zA-Z0-9]+)\\${EXPENSIFY_POLICY_DOMAIN_EXTENSION}`); + }, }, PRONOUNS: { @@ -4073,8 +4194,8 @@ const CONST = { GETCODE: 'GETCODE', }, DELEGATE_ROLE: { - SUBMITTER: 'submitter', ALL: 'all', + SUBMITTER: 'submitter', }, DELEGATE_ROLE_HELPDOT_ARTICLE_LINK: 'https://help.expensify.com/expensify-classic/hubs/copilots-and-delegates/', STRIPE_GBP_AUTH_STATUSES: { @@ -4206,6 +4327,11 @@ const CONST = { */ MAX_SELECTION_LIST_PAGE_LENGTH: 500, + /** + * We only include the members search bar when we have 8 or more members + */ + SHOULD_SHOW_MEMBERS_SEARCH_INPUT_BREAKPOINT: 8, + /** * Bank account names */ @@ -5395,11 +5521,6 @@ const CONST = { DONE: 'done', PAID: 'paid', }, - CHAT_STATUS: { - UNREAD: 'unread', - PINNED: 'pinned', - DRAFT: 'draft', - }, BULK_ACTION_TYPES: { EXPORT: 'export', HOLD: 'hold', @@ -5441,10 +5562,6 @@ const CONST = { LINKS: 'links', }, }, - CHAT_TYPES: { - LINK: 'link', - ATTACHMENT: 'attachment', - }, TABLE_COLUMNS: { RECEIPT: 'receipt', DATE: 'date', @@ -5492,8 +5609,6 @@ const CONST = { REPORT_ID: 'reportID', KEYWORD: 'keyword', IN: 'in', - HAS: 'has', - IS: 'is', }, }, diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index 45b9a8c68bbb..38affd97c637 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -215,6 +215,12 @@ const ONYXKEYS = { /** The NVP containing all information related to educational tooltip in workspace chat */ NVP_WORKSPACE_TOOLTIP: 'workspaceTooltip', + /** Whether to hide save search rename tooltip */ + NVP_SHOULD_HIDE_SAVED_SEARCH_RENAME_TOOLTIP: 'nvp_should_hide_saved_search_rename_tooltip', + + /** Whether to hide gbr tooltip */ + NVP_SHOULD_HIDE_GBR_TOOLTIP: 'nvp_should_hide_gbr_tooltip', + /** Does this user have push notifications enabled for this device? */ PUSH_NOTIFICATIONS_ENABLED: 'pushNotificationsEnabled', @@ -399,6 +405,9 @@ const ONYXKEYS = { /** Stores the information about the state of issuing a new card */ ISSUE_NEW_EXPENSIFY_CARD: 'issueNewExpensifyCard', + /** Stores the information about the state of addint a new company card */ + ADD_NEW_COMPANY_CARD: 'addNewCompanyCard', + /** Stores the information about the state of assigning a company card */ ASSIGN_CARD: 'assignCard', @@ -410,12 +419,20 @@ const ONYXKEYS = { /** Stores the information about currently edited advanced approval workflow */ APPROVAL_WORKFLOW: 'approvalWorkflow', + /** Stores the user search value for persistance across the screens */ + ROOM_MEMBERS_USER_SEARCH_PHRASE: 'roomMembersUserSearchPhrase', /** Stores information about recently uploaded spreadsheet file */ IMPORTED_SPREADSHEET: 'importedSpreadsheet', /** Stores the route to open after changing app permission from settings */ LAST_ROUTE: 'lastRoute', + /** Stores the information about the saved searches */ + SAVED_SEARCHES: 'nvp_savedSearches', + + /** Stores recently used currencies */ + RECENTLY_USED_CURRENCIES: 'nvp_recentlyUsedCurrencies', + /** Collection Keys */ COLLECTION: { DOWNLOAD: 'download_', @@ -504,6 +521,10 @@ const ONYXKEYS = { WORKSPACE_SETTINGS_FORM: 'workspaceSettingsForm', WORKSPACE_CATEGORY_FORM: 'workspaceCategoryForm', WORKSPACE_CATEGORY_FORM_DRAFT: 'workspaceCategoryFormDraft', + WORKSPACE_CATEGORY_DESCRIPTION_HINT_FORM: 'workspaceCategoryDescriptionHintForm', + WORKSPACE_CATEGORY_DESCRIPTION_HINT_FORM_DRAFT: 'workspaceCategoryDescriptionHintFormDraft', + WORKSPACE_CATEGORY_FLAG_AMOUNTS_OVER_FORM: 'workspaceCategoryFlagAmountsOverForm', + WORKSPACE_CATEGORY_FLAG_AMOUNTS_OVER_FORM_DRAFT: 'workspaceCategoryFlagAmountsOverFormDraft', WORKSPACE_TAG_FORM: 'workspaceTagForm', WORKSPACE_TAG_FORM_DRAFT: 'workspaceTagFormDraft', WORKSPACE_SETTINGS_FORM_DRAFT: 'workspaceSettingsFormDraft', @@ -515,6 +536,8 @@ const ONYXKEYS = { WORKSPACE_TAX_CUSTOM_NAME_DRAFT: 'workspaceTaxCustomNameDraft', WORKSPACE_COMPANY_CARD_FEED_NAME: 'workspaceCompanyCardFeedName', WORKSPACE_COMPANY_CARD_FEED_NAME_DRAFT: 'workspaceCompanyCardFeedNameDraft', + EDIT_WORKSPACE_COMPANY_CARD_NAME_FORM: 'editCompanyCardName', + EDIT_WORKSPACE_COMPANY_CARD_NAME_DRAFT_FORM: 'editCompanyCardNameDraft', WORKSPACE_REPORT_FIELDS_FORM: 'workspaceReportFieldForm', WORKSPACE_REPORT_FIELDS_FORM_DRAFT: 'workspaceReportFieldFormDraft', POLICY_CREATE_DISTANCE_RATE_FORM: 'policyCreateDistanceRateForm', @@ -545,6 +568,8 @@ const ONYXKEYS = { DATE_OF_BIRTH_FORM_DRAFT: 'dateOfBirthFormDraft', HOME_ADDRESS_FORM: 'homeAddressForm', HOME_ADDRESS_FORM_DRAFT: 'homeAddressFormDraft', + PERSONAL_DETAILS_FORM: 'personalDetailsForm', + PERSONAL_DETAILS_FORM_DRAFT: 'personalDetailsFormDraft', NEW_ROOM_FORM: 'newRoomForm', NEW_ROOM_FORM_DRAFT: 'newRoomFormDraft', ROOM_SETTINGS_FORM: 'roomSettingsForm', @@ -625,6 +650,8 @@ const ONYXKEYS = { SUBSCRIPTION_SIZE_FORM_DRAFT: 'subscriptionSizeFormDraft', ISSUE_NEW_EXPENSIFY_CARD_FORM: 'issueNewExpensifyCard', ISSUE_NEW_EXPENSIFY_CARD_FORM_DRAFT: 'issueNewExpensifyCardDraft', + ADD_NEW_CARD_FEED_FORM: 'addNewCardFeed', + ADD_NEW_CARD_FEED_FORM_DRAFT: 'addNewCardFeedDraft', ASSIGN_CARD_FORM: 'assignCard', ASSIGN_CARD_FORM_DRAFT: 'assignCardDraft', EDIT_EXPENSIFY_CARD_NAME_FORM: 'editExpensifyCardName', @@ -647,6 +674,8 @@ const ONYXKEYS = { SAGE_INTACCT_DIMENSION_TYPE_FORM_DRAFT: 'sageIntacctDimensionTypeFormDraft', SEARCH_ADVANCED_FILTERS_FORM: 'searchAdvancedFiltersForm', SEARCH_ADVANCED_FILTERS_FORM_DRAFT: 'searchAdvancedFiltersFormDraft', + SEARCH_SAVED_SEARCH_RENAME_FORM: 'searchSavedSearchRenameForm', + SEARCH_SAVED_SEARCH_RENAME_FORM_DRAFT: 'searchSavedSearchRenameFormDraft', TEXT_PICKER_MODAL_FORM: 'textPickerModalForm', TEXT_PICKER_MODAL_FORM_DRAFT: 'textPickerModalFormDraft', RULES_CUSTOM_NAME_MODAL_FORM: 'rulesCustomNameModalForm', @@ -676,7 +705,10 @@ type OnyxFormValuesMapping = { [ONYXKEYS.FORMS.WORKSPACE_RATE_AND_UNIT_FORM]: FormTypes.WorkspaceRateAndUnitForm; [ONYXKEYS.FORMS.WORKSPACE_TAX_CUSTOM_NAME]: FormTypes.WorkspaceTaxCustomName; [ONYXKEYS.FORMS.WORKSPACE_COMPANY_CARD_FEED_NAME]: FormTypes.WorkspaceCompanyCardFeedName; + [ONYXKEYS.FORMS.EDIT_WORKSPACE_COMPANY_CARD_NAME_FORM]: FormTypes.WorkspaceCompanyCardEditName; [ONYXKEYS.FORMS.WORKSPACE_REPORT_FIELDS_FORM]: FormTypes.WorkspaceReportFieldForm; + [ONYXKEYS.FORMS.WORKSPACE_CATEGORY_DESCRIPTION_HINT_FORM]: FormTypes.WorkspaceCategoryDescriptionHintForm; + [ONYXKEYS.FORMS.WORKSPACE_CATEGORY_FLAG_AMOUNTS_OVER_FORM]: FormTypes.WorkspaceCategoryFlagAmountsOverForm; [ONYXKEYS.FORMS.CLOSE_ACCOUNT_FORM]: FormTypes.CloseAccountForm; [ONYXKEYS.FORMS.PROFILE_SETTINGS_FORM]: FormTypes.ProfileSettingsForm; [ONYXKEYS.FORMS.DISPLAY_NAME_FORM]: FormTypes.DisplayNameForm; @@ -688,6 +720,7 @@ type OnyxFormValuesMapping = { [ONYXKEYS.FORMS.WORKSPACE_INVITE_MESSAGE_FORM]: FormTypes.WorkspaceInviteMessageForm; [ONYXKEYS.FORMS.DATE_OF_BIRTH_FORM]: FormTypes.DateOfBirthForm; [ONYXKEYS.FORMS.HOME_ADDRESS_FORM]: FormTypes.HomeAddressForm; + [ONYXKEYS.FORMS.PERSONAL_DETAILS_FORM]: FormTypes.PersonalDetailsForm; [ONYXKEYS.FORMS.NEW_ROOM_FORM]: FormTypes.NewRoomForm; [ONYXKEYS.FORMS.ROOM_SETTINGS_FORM]: FormTypes.RoomSettingsForm; [ONYXKEYS.FORMS.NEW_TASK_FORM]: FormTypes.NewTaskForm; @@ -732,6 +765,7 @@ type OnyxFormValuesMapping = { [ONYXKEYS.FORMS.NEW_CHAT_NAME_FORM]: FormTypes.NewChatNameForm; [ONYXKEYS.FORMS.SUBSCRIPTION_SIZE_FORM]: FormTypes.SubscriptionSizeForm; [ONYXKEYS.FORMS.ISSUE_NEW_EXPENSIFY_CARD_FORM]: FormTypes.IssueNewExpensifyCardForm; + [ONYXKEYS.FORMS.ADD_NEW_CARD_FEED_FORM]: FormTypes.AddNewCardFeedForm; [ONYXKEYS.FORMS.ASSIGN_CARD_FORM]: FormTypes.AssignCardForm; [ONYXKEYS.FORMS.EDIT_EXPENSIFY_CARD_NAME_FORM]: FormTypes.EditExpensifyCardNameForm; [ONYXKEYS.FORMS.EDIT_EXPENSIFY_CARD_LIMIT_FORM]: FormTypes.EditExpensifyCardLimitForm; @@ -751,6 +785,7 @@ type OnyxFormValuesMapping = { [ONYXKEYS.FORMS.RULES_REQUIRED_RECEIPT_AMOUNT_FORM]: FormTypes.RulesRequiredReceiptAmountForm; [ONYXKEYS.FORMS.RULES_MAX_EXPENSE_AMOUNT_FORM]: FormTypes.RulesMaxExpenseAmountForm; [ONYXKEYS.FORMS.RULES_MAX_EXPENSE_AGE_FORM]: FormTypes.RulesMaxExpenseAgeForm; + [ONYXKEYS.FORMS.SEARCH_SAVED_SEARCH_RENAME_FORM]: FormTypes.SearchSavedSearchRenameForm; }; type OnyxFormDraftValuesMapping = { @@ -816,7 +851,8 @@ type OnyxValuesMapping = { // ONYXKEYS.NVP_TRYNEWDOT is HybridApp onboarding data [ONYXKEYS.NVP_TRYNEWDOT]: OnyxTypes.TryNewDot; - + [ONYXKEYS.SAVED_SEARCHES]: OnyxTypes.SaveSearch[]; + [ONYXKEYS.RECENTLY_USED_CURRENCIES]: string[]; [ONYXKEYS.ACTIVE_CLIENTS]: string[]; [ONYXKEYS.DEVICE_ID]: string; [ONYXKEYS.IS_SIDEBAR_LOADED]: boolean; @@ -935,6 +971,7 @@ type OnyxValuesMapping = { [ONYXKEYS.NVP_TRAVEL_SETTINGS]: OnyxTypes.TravelSettings; [ONYXKEYS.REVIEW_DUPLICATES]: OnyxTypes.ReviewDuplicates; [ONYXKEYS.ISSUE_NEW_EXPENSIFY_CARD]: OnyxTypes.IssueNewCard; + [ONYXKEYS.ADD_NEW_COMPANY_CARD]: OnyxTypes.AddNewCompanyCardFeed; [ONYXKEYS.ASSIGN_CARD]: OnyxTypes.AssignCard; [ONYXKEYS.MOBILE_SELECTION_MODE]: OnyxTypes.MobileSelectionMode; [ONYXKEYS.NVP_FIRST_DAY_FREE_TRIAL]: string; @@ -943,10 +980,13 @@ type OnyxValuesMapping = { [ONYXKEYS.NVP_PRIVATE_AMOUNT_OWED]: number; [ONYXKEYS.NVP_PRIVATE_OWNER_BILLING_GRACE_PERIOD_END]: number; [ONYXKEYS.NVP_WORKSPACE_TOOLTIP]: OnyxTypes.WorkspaceTooltip; + [ONYXKEYS.NVP_SHOULD_HIDE_GBR_TOOLTIP]: boolean; [ONYXKEYS.NVP_PRIVATE_CANCELLATION_DETAILS]: OnyxTypes.CancellationDetails[]; + [ONYXKEYS.ROOM_MEMBERS_USER_SEARCH_PHRASE]: string; [ONYXKEYS.APPROVAL_WORKFLOW]: OnyxTypes.ApprovalWorkflowOnyx; [ONYXKEYS.IMPORTED_SPREADSHEET]: OnyxTypes.ImportedSpreadsheet; [ONYXKEYS.LAST_ROUTE]: string; + [ONYXKEYS.NVP_SHOULD_HIDE_SAVED_SEARCH_RENAME_TOOLTIP]: boolean; }; type OnyxValues = OnyxValuesMapping & OnyxCollectionValuesMapping & OnyxFormValuesMapping & OnyxFormDraftValuesMapping; diff --git a/src/ROUTES.ts b/src/ROUTES.ts index a28c2ef4fc57..27504998c49c 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -35,7 +35,11 @@ const ROUTES = { SEARCH_CENTRAL_PANE: { route: 'search', - getRoute: ({query}: {query: SearchQueryString}) => `search?q=${query}` as const, + getRoute: ({query}: {query: SearchQueryString}) => `search?q=${encodeURIComponent(query)}` as const, + }, + SEARCH_SAVED_SEARCH_RENAME: { + route: 'search/saved-search/rename', + getRoute: ({name, jsonQuery}: {name: string; jsonQuery: SearchQueryString}) => `search/saved-search/rename?name=${name}&q=${jsonQuery}` as const, }, SEARCH_ADVANCED_FILTERS: 'search/filters', SEARCH_ADVANCED_FILTERS_DATE: 'search/filters/date', @@ -53,9 +57,6 @@ const ROUTES = { SEARCH_ADVANCED_FILTERS_FROM: 'search/filters/from', SEARCH_ADVANCED_FILTERS_TO: 'search/filters/to', SEARCH_ADVANCED_FILTERS_IN: 'search/filters/in', - SEARCH_ADVANCED_FILTERS_HAS: 'search/filters/has', - SEARCH_ADVANCED_FILTERS_IS: 'search/filters/is', - SEARCH_REPORT: { route: 'search/view/:reportID/:reportActionID?', getRoute: (reportID: string, reportActionID?: string) => { @@ -134,6 +135,19 @@ const ROUTES = { SETTINGS_WORKSPACES: 'settings/workspaces', SETTINGS_SECURITY: 'settings/security', SETTINGS_CLOSE: 'settings/security/closeAccount', + SETTINGS_ADD_DELEGATE: 'settings/security/delegate', + SETTINGS_DELEGATE_ROLE: { + route: 'settings/security/delegate/:login/role/:role', + getRoute: (login: string, role?: string) => `settings/security/delegate/${encodeURIComponent(login)}/role/${role}` as const, + }, + SETTINGS_DELEGATE_CONFIRM: { + route: 'settings/security/delegate/:login/role/:role/confirm', + getRoute: (login: string, role: string) => `settings/security/delegate/${encodeURIComponent(login)}/role/${role}/confirm` as const, + }, + SETTINGS_DELEGATE_MAGIC_CODE: { + route: 'settings/security/delegate/:login/role/:role/magic-code', + getRoute: (login: string, role: string) => `settings/security/delegate/${encodeURIComponent(login)}/role/${role}/magic-code` as const, + }, SETTINGS_ABOUT: 'settings/about', SETTINGS_APP_DOWNLOAD_LINKS: 'settings/about/app-download-links', SETTINGS_WALLET: 'settings/wallet', @@ -356,9 +370,16 @@ const ROUTES = { route: 'r/:reportID/members', getRoute: (reportID: string) => `r/${reportID}/members` as const, }, + ROOM_MEMBER_DETAILS: { + route: 'r/:reportID/members/:accountID', + getRoute: (reportID: string, accountID: string | number) => `r/${reportID}/members/${accountID}` as const, + }, ROOM_INVITE: { route: 'r/:reportID/invite/:role?', - getRoute: (reportID: string, role?: string) => `r/${reportID}/invite/${role ?? ''}` as const, + getRoute: (reportID: string, role?: string) => { + const route = role ? (`r/${reportID}/invite/${role}` as const) : (`r/${reportID}/invite` as const); + return route; + }, }, MONEY_REQUEST_HOLD_REASON: { route: ':type/edit/reason/:transactionID?', @@ -649,8 +670,8 @@ const ROUTES = { }, WORKSPACE_WORKFLOWS_APPROVALS_APPROVER: { route: 'settings/workspaces/:policyID/workflows/approvals/approver', - getRoute: (policyID: string, approverIndex?: number, backTo?: string) => - getUrlWithBackToParam(`settings/workspaces/${policyID}/workflows/approvals/approver${approverIndex !== undefined ? `?approverIndex=${approverIndex}` : ''}` as const, backTo), + getRoute: (policyID: string, approverIndex: number, backTo?: string) => + getUrlWithBackToParam(`settings/workspaces/${policyID}/workflows/approvals/approver?approverIndex=${approverIndex}` as const, backTo), }, WORKSPACE_WORKFLOWS_PAYER: { route: 'settings/workspaces/:policyID/workflows/payer', @@ -786,6 +807,26 @@ const ROUTES = { route: 'settings/workspaces/:policyID/categories/:categoryName/gl-code', getRoute: (policyID: string, categoryName: string) => `settings/workspaces/${policyID}/categories/${encodeURIComponent(categoryName)}/gl-code` as const, }, + WORSKPACE_CATEGORY_DEFAULT_TAX_RATE: { + route: 'settings/workspaces/:policyID/categories/:categoryName/tax-rate', + getRoute: (policyID: string, categoryName: string) => `settings/workspaces/${policyID}/categories/${encodeURIComponent(categoryName)}/tax-rate` as const, + }, + WORSKPACE_CATEGORY_FLAG_AMOUNTS_OVER: { + route: 'settings/workspaces/:policyID/categories/:categoryName/flag-amounts', + getRoute: (policyID: string, categoryName: string) => `settings/workspaces/${policyID}/categories/${encodeURIComponent(categoryName)}/flag-amounts` as const, + }, + WORSKPACE_CATEGORY_DESCRIPTION_HINT: { + route: 'settings/workspaces/:policyID/categories/:categoryName/description-hint', + getRoute: (policyID: string, categoryName: string) => `settings/workspaces/${policyID}/categories/${encodeURIComponent(categoryName)}/description-hint` as const, + }, + WORSKPACE_CATEGORY_REQUIRE_RECEIPTS_OVER: { + route: 'settings/workspaces/:policyID/categories/:categoryName/require-receipts-over', + getRoute: (policyID: string, categoryName: string) => `settings/workspaces/${policyID}/categories/${encodeURIComponent(categoryName)}/require-receipts-over` as const, + }, + WORSKPACE_CATEGORY_APPROVER: { + route: 'settings/workspaces/:policyID/categories/:categoryName/approver', + getRoute: (policyID: string, categoryName: string) => `settings/workspaces/${policyID}/categories/${encodeURIComponent(categoryName)}/approver` as const, + }, WORKSPACE_MORE_FEATURES: { route: 'settings/workspaces/:policyID/more-features', getRoute: (policyID: string) => `settings/workspaces/${policyID}/more-features` as const, @@ -916,6 +957,14 @@ const ROUTES = { route: 'settings/workspaces/:policyID/reportFields/:reportFieldID/edit/initialValue', getRoute: (policyID: string, reportFieldID: string) => `settings/workspaces/${policyID}/reportFields/${encodeURIComponent(reportFieldID)}/edit/initialValue` as const, }, + WORKSPACE_COMPANY_CARDS: { + route: 'settings/workspaces/:policyID/company-cards', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/company-cards` as const, + }, + WORKSPACE_COMPANY_CARDS_ADD_NEW: { + route: 'settings/workspaces/:policyID/company-cards/add-card-feed', + getRoute: (policyID: string) => `settings/workspaces/${policyID}/company-cards/add-card-feed` as const, + }, WORKSPACE_COMPANY_CARDS_SELECT_FEED: { route: 'settings/workspaces/:policyID/company-cards/select-feed', getRoute: (policyID: string) => `settings/workspaces/${policyID}/company-cards/select-feed` as const, @@ -924,14 +973,22 @@ const ROUTES = { route: 'settings/workspaces/:policyID/expensify-card', getRoute: (policyID: string) => `settings/workspaces/${policyID}/expensify-card` as const, }, - WORKSPACE_COMPANY_CARDS: { - route: 'settings/workspaces/:policyID/company-cards', - getRoute: (policyID: string) => `settings/workspaces/${policyID}/company-cards` as const, - }, WORKSPACE_COMPANY_CARDS_ASSIGN_CARD: { route: 'settings/workspaces/:policyID/company-cards/:feed/assign-card', getRoute: (policyID: string, feed: string) => `settings/workspaces/${policyID}/company-cards/${feed}/assign-card` as const, }, + WORKSPACE_COMPANY_CARD_DETAILS: { + route: 'settings/workspaces/:policyID/company-cards/:bank/:cardID', + getRoute: (policyID: string, cardID: string, bank: string, backTo?: string) => getUrlWithBackToParam(`settings/workspaces/${policyID}/company-cards/${bank}/${cardID}`, backTo), + }, + WORKSPACE_COMPANY_CARD_NAME: { + route: 'settings/workspaces/:policyID/company-cards/:bank/:cardID/edit/name', + getRoute: (policyID: string, cardID: string, bank: string) => `settings/workspaces/${policyID}/company-cards/${bank}/${cardID}/edit/name` as const, + }, + WORKSPACE_COMPANY_CARD_EXPORT: { + route: 'settings/workspaces/:policyID/company-cards/:bank/:cardID/edit/export', + getRoute: (policyID: string, cardID: string, bank: string) => `settings/workspaces/${policyID}/company-cards/${bank}/${cardID}/edit/export` as const, + }, WORKSPACE_EXPENSIFY_CARD_DETAILS: { route: 'settings/workspaces/:policyID/expensify-card/:cardID', getRoute: (policyID: string, cardID: string, backTo?: string) => getUrlWithBackToParam(`settings/workspaces/${policyID}/expensify-card/${cardID}`, backTo), @@ -1197,6 +1254,10 @@ const ROUTES = { route: 'restricted-action/workspace/:policyID', getRoute: (policyID: string) => `restricted-action/workspace/${policyID}` as const, }, + MISSING_PERSONAL_DETAILS: { + route: 'missing-personal-details/workspace/:policyID', + getRoute: (policyID: string) => `missing-personal-details/workspace/${policyID}` as const, + }, POLICY_ACCOUNTING_NETSUITE_SUBSIDIARY_SELECTOR: { route: 'settings/workspaces/:policyID/accounting/netsuite/subsidiary-selector', getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/netsuite/subsidiary-selector` as const, @@ -1424,7 +1485,9 @@ const ROUTES = { */ const HYBRID_APP_ROUTES = { MONEY_REQUEST_CREATE: '/request/new/scan', - MONEY_REQUEST_SUBMIT_CREATE: '/submit/new/scan', + MONEY_REQUEST_CREATE_TAB_SCAN: '/submit/new/scan', + MONEY_REQUEST_CREATE_TAB_MANUAL: '/submit/new/manual', + MONEY_REQUEST_CREATE_TAB_DISTANCE: '/submit/new/distance', } as const; export {HYBRID_APP_ROUTES, getUrlWithBackToParam, PUBLIC_SCREENS_ROUTES}; diff --git a/src/SCREENS.ts b/src/SCREENS.ts index 67ba5b84c9ec..8168afba89ab 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -46,9 +46,8 @@ const SCREENS = { ADVANCED_FILTERS_TAG_RHP: 'Search_Advanced_Filters_Tag_RHP', ADVANCED_FILTERS_FROM_RHP: 'Search_Advanced_Filters_From_RHP', ADVANCED_FILTERS_TO_RHP: 'Search_Advanced_Filters_To_RHP', + SAVED_SEARCH_RENAME_RHP: 'Search_Saved_Search_Rename_RHP', ADVANCED_FILTERS_IN_RHP: 'Search_Advanced_Filters_In_RHP', - ADVANCED_FILTERS_HAS_RHP: 'Search_Advanced_Filters_Has_RHP', - ADVANCED_FILTERS_IS_RHP: 'Search_Advanced_Filters_Is_RHP', TRANSACTION_HOLD_REASON_RHP: 'Search_Transaction_Hold_Reason_RHP', BOTTOM_TAB: 'Search_Bottom_Tab', }, @@ -130,6 +129,12 @@ const SCREENS = { CHANGE_PAYMENT_CURRENCY: 'Settings_Subscription_Change_Payment_Currency', REQUEST_EARLY_CANCELLATION: 'Settings_Subscription_RequestEarlyCancellation', }, + DELEGATE: { + ADD_DELEGATE: 'Settings_Delegate_Add', + DELEGATE_ROLE: 'Settings_Delegate_Role', + DELEGATE_CONFIRM: 'Settings_Delegate_Confirm', + DELEGATE_MAGIC_CODE: 'Settings_Delegate_Magic_Code', + }, }, SAVE_THE_WORLD: { ROOT: 'SaveTheWorld_Root', @@ -160,6 +165,7 @@ const SCREENS = { SIGN_IN: 'SignIn', PRIVATE_NOTES: 'Private_Notes', ROOM_MEMBERS: 'RoomMembers', + ROOM_MEMBER_DETAILS: 'RoomMembers_Details', ROOM_INVITE: 'RoomInvite', REFERRAL: 'Referral', PROCESS_MONEY_REQUEST_HOLD: 'ProcessMoneyRequestHold', @@ -167,9 +173,11 @@ const SCREENS = { TRAVEL: 'Travel', SEARCH_REPORT: 'SearchReport', SEARCH_ADVANCED_FILTERS: 'SearchAdvancedFilters', + SEARCH_SAVED_SEARCH: 'SearchSavedSearch', SETTINGS_CATEGORIES: 'SettingsCategories', RESTRICTED_ACTION: 'RestrictedAction', REPORT_EXPORT: 'Report_Export', + MISSING_PERSONAL_DETAILS: 'MissingPersonalDetails', }, ONBOARDING_MODAL: { ONBOARDING: 'Onboarding', @@ -371,8 +379,16 @@ const SCREENS = { COMPANY_CARDS: 'Workspace_CompanyCards', COMPANY_CARDS_ASSIGN_CARD: 'Workspace_CompanyCards_AssignCard', COMPANY_CARDS_SELECT_FEED: 'Workspace_CompanyCards_Select_Feed', + COMPANY_CARDS_ADD_NEW: 'Workspace_CompanyCards_New', + COMPANY_CARDS_TYPE: 'Workspace_CompanyCards_Type', + COMPANY_CARDS_INSTRUCTIONS: 'Workspace_CompanyCards_Instructions', + COMPANY_CARDS_NAME: 'Workspace_CompanyCards_Name', + COMPANY_CARDS_DETAILS: 'Workspace_CompanyCards_Details', COMPANY_CARDS_SETTINGS: 'Workspace_CompanyCards_Settings', COMPANY_CARDS_SETTINGS_FEED_NAME: 'Workspace_CompanyCards_Settings_Feed_Name', + COMPANY_CARD_DETAILS: 'Workspace_CompanyCard_Details', + COMPANY_CARD_NAME: 'Workspace_CompanyCard_Name', + COMPANY_CARD_EXPORT: 'Workspace_CompanyCard_Export', EXPENSIFY_CARD: 'Workspace_ExpensifyCard', EXPENSIFY_CARD_DETAILS: 'Workspace_ExpensifyCard_Details', EXPENSIFY_CARD_LIMIT: 'Workspace_ExpensifyCard_Limit', @@ -436,6 +452,11 @@ const SCREENS = { CATEGORY_PAYROLL_CODE: 'Category_Payroll_Code', CATEGORY_GL_CODE: 'Category_GL_Code', CATEGORY_SETTINGS: 'Category_Settings', + CATEGORY_DEFAULT_TAX_RATE: 'Category_Default_Tax_Rate', + CATEGORY_FLAG_AMOUNTS_OVER: 'Category_Flag_Amounts_Over', + CATEGORY_DESCRIPTION_HINT: 'Category_Description_Hint', + CATEGORY_APPROVER: 'Category_Approver', + CATEGORY_REQUIRE_RECEIPTS_OVER: 'Category_Require_Receipts_Over', CATEGORIES_SETTINGS: 'Categories_Settings', CATEGORIES_IMPORT: 'Categories_Import', CATEGORIES_IMPORTED: 'Categories_Imported', @@ -514,8 +535,11 @@ const SCREENS = { DETAILS: 'ReportParticipants_Details', ROLE: 'ReportParticipants_Role', }, - ROOM_MEMBERS_ROOT: 'RoomMembers_Root', - ROOM_INVITE_ROOT: 'RoomInvite_Root', + ROOM_MEMBERS: { + ROOT: 'RoomMembers_Root', + INVITE: 'RoomMembers_Invite', + DETAILS: 'RoomMember_Details', + }, FLAG_COMMENT_ROOT: 'FlagComment_Root', REIMBURSEMENT_ACCOUNT: 'ReimbursementAccount', GET_ASSISTANCE: 'GetAssistance', @@ -524,6 +548,7 @@ const SCREENS = { TRANSACTION_RECEIPT: 'TransactionReceipt', FEATURE_TRAINING_ROOT: 'FeatureTraining_Root', RESTRICTED_ACTION_ROOT: 'RestrictedAction_Root', + MISSING_PERSONAL_DETAILS_ROOT: 'MissingPersonalDetails_Root', } as const; type Screen = DeepValueOf; diff --git a/src/components/AccountSwitcher.tsx b/src/components/AccountSwitcher.tsx index ba30ea0062b9..a9e223e56632 100644 --- a/src/components/AccountSwitcher.tsx +++ b/src/components/AccountSwitcher.tsx @@ -1,3 +1,4 @@ +import {Str} from 'expensify-common'; import React, {useRef, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -9,13 +10,14 @@ import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import {clearDelegatorErrors, connect, disconnect} from '@libs/actions/Delegate'; +import * as ErrorUtils from '@libs/ErrorUtils'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import variables from '@styles/variables'; import * as Modal from '@userActions/Modal'; import CONST from '@src/CONST'; -import type {TranslationPaths} from '@src/languages/types'; import ONYXKEYS from '@src/ONYXKEYS'; import type {PersonalDetails} from '@src/types/onyx'; +import type {Errors} from '@src/types/onyx/OnyxCommon'; import Avatar from './Avatar'; import ConfirmModal from './ConfirmModal'; import Icon from './Icon'; @@ -45,16 +47,17 @@ function AccountSwitcher() { const isActingAsDelegate = !!account?.delegatedAccess?.delegate ?? false; const canSwitchAccounts = canUseNewDotCopilot && (delegators.length > 0 || isActingAsDelegate); - const createBaseMenuItem = (personalDetails: PersonalDetails | undefined, error?: TranslationPaths, additionalProps: MenuItemWithLink = {}): MenuItemWithLink => { + const createBaseMenuItem = (personalDetails: PersonalDetails | undefined, errors?: Errors, additionalProps: MenuItemWithLink = {}): MenuItemWithLink => { + const error = Object.values(errors ?? {})[0] ?? ''; return { title: personalDetails?.displayName ?? personalDetails?.login, - description: personalDetails?.login, + description: Str.removeSMSDomain(personalDetails?.login ?? ''), avatarID: personalDetails?.accountID ?? -1, icon: personalDetails?.avatar ?? '', iconType: CONST.ICON_TYPE_AVATAR, outerWrapperStyle: shouldUseNarrowLayout ? {} : styles.accountSwitcherPopover, numberOfLinesDescription: 1, - errorText: error ? translate(error) : '', + errorText: error ?? '', shouldShowRedDotIndicator: !!error, errorTextStyle: styles.mt2, ...additionalProps, @@ -80,7 +83,7 @@ function AccountSwitcher() { } const delegatePersonalDetails = PersonalDetailsUtils.getPersonalDetailByEmail(delegateEmail); - const error = account?.delegatedAccess?.error; + const error = ErrorUtils.getLatestErrorField(account?.delegatedAccess, 'connect'); return [ createBaseMenuItem(delegatePersonalDetails, error, { @@ -99,7 +102,8 @@ function AccountSwitcher() { const delegatorMenuItems: MenuItemProps[] = delegators .filter(({email}) => email !== currentUserPersonalDetails.login) - .map(({email, role, error}, index) => { + .map(({email, role, errorFields}, index) => { + const error = ErrorUtils.getLatestErrorField({errorFields}, 'connect'); const personalDetails = PersonalDetailsUtils.getPersonalDetailByEmail(email); return createBaseMenuItem(personalDetails, error, { badgeText: translate('delegate.role', role), @@ -132,7 +136,7 @@ function AccountSwitcher() { - {currentUserPersonalDetails?.login} + {Str.removeSMSDomain(currentUserPersonalDetails?.login ?? '')} @@ -176,7 +180,7 @@ function AccountSwitcher() { anchorPosition={styles.accountSwitcherAnchorPosition} > - {translate('delegate.switchAccount')} + {translate('delegate.switchAccount')} ; }; -function AccountSwitcherSkeletonView({shouldAnimate = true, avatarSize = CONST.AVATAR_SIZE.LARGE}: AccountSwitcherSkeletonViewProps) { +function AccountSwitcherSkeletonView({shouldAnimate = true, avatarSize = CONST.AVATAR_SIZE.DEFAULT}: AccountSwitcherSkeletonViewProps) { const theme = useTheme(); const styles = useThemeStyles(); const StyleUtils = useStyleUtils(); @@ -30,7 +30,7 @@ function AccountSwitcherSkeletonView({shouldAnimate = true, avatarSize = CONST.A animate={shouldAnimate} backgroundColor={theme.skeletonLHNIn} foregroundColor={theme.skeletonLHNOut} - height={avatarPlaceholderSize + styles.pb3.paddingBottom} + height={avatarPlaceholderSize} > diff --git a/src/components/AmountForm.tsx b/src/components/AmountForm.tsx index f32d167e7133..09b5fd0cf7d6 100644 --- a/src/components/AmountForm.tsx +++ b/src/components/AmountForm.tsx @@ -49,7 +49,7 @@ type AmountFormProps = { /** Whether the form should use a standard TextInput as a base */ displayAsTextInput?: boolean; } & Pick & - Pick; + Pick; /** * Returns the new selection object based on the updated amount's length @@ -69,6 +69,7 @@ function AmountForm( currency = CONST.CURRENCY.USD, extraDecimals = 0, amountMaxLength, + errorText, onInputChange, onCurrencyButtonPress, displayAsTextInput = false, @@ -297,11 +298,11 @@ function AmountForm( // eslint-disable-next-line react/jsx-props-no-spreading {...rest} /> - {!!rest.errorText && ( + {!!errorText && ( )} diff --git a/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx b/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx index 1d273e847d26..1f1844bf20db 100644 --- a/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx +++ b/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx @@ -41,7 +41,7 @@ function BaseAnchorForAttachmentsOnly({style, source = '', displayName = '', dow return ( - {({anchor, report, reportNameValuePairs, action, checkIfContextMenuActive}) => ( + {({anchor, report, reportNameValuePairs, action, checkIfContextMenuActive, isDisabled}) => ( { @@ -53,9 +53,12 @@ function BaseAnchorForAttachmentsOnly({style, source = '', displayName = '', dow }} onPressIn={onPressIn} onPressOut={onPressOut} - onLongPress={(event) => - showContextMenuForReport(event, anchor, report?.reportID ?? '-1', action, checkIfContextMenuActive, ReportUtils.isArchivedRoom(report, reportNameValuePairs)) - } + onLongPress={(event) => { + if (isDisabled) { + return; + } + showContextMenuForReport(event, anchor, report?.reportID ?? '-1', action, checkIfContextMenuActive, ReportUtils.isArchivedRoom(report, reportNameValuePairs)); + }} shouldUseHapticsOnLongPress accessibilityLabel={displayName} role={CONST.ROLE.BUTTON} diff --git a/src/components/AnonymousReportFooter.tsx b/src/components/AnonymousReportFooter.tsx index 078b850de5ff..b9f074e887ce 100644 --- a/src/components/AnonymousReportFooter.tsx +++ b/src/components/AnonymousReportFooter.tsx @@ -48,7 +48,6 @@ function AnonymousReportFooter({isSmallSizeLayout = false, report, policy}: Anon