├── .github ├── ISSUE_TEMPLATE.md ├── ISSUE_TEMPLATE │ └── bug_report.yml ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── nightly.yaml │ ├── release.yaml │ └── tests.yaml ├── .gitignore ├── LICENSE ├── README.md ├── jest.config.js ├── package.json ├── scripts ├── __tests__ │ ├── bumpTemplateVersion-test.js │ ├── package_json-test.js │ └── stub │ │ └── npm ├── bumpedTemplateVersion.sh ├── updateReactNativeVersion.js └── updateTemplateVersion.js ├── template.config.js ├── template ├── App.tsx ├── Gemfile ├── README.md ├── __tests__ │ └── App.test.tsx ├── _bundle │ └── config ├── _eslintrc.js ├── _gitignore ├── _prettierrc.js ├── _watchmanconfig ├── android │ ├── app │ │ ├── build.gradle │ │ ├── debug.keystore │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── helloworld │ │ │ │ ├── MainActivity.kt │ │ │ │ └── MainApplication.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ └── rn_edit_text_material.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── app.json ├── babel.config.js ├── index.js ├── ios │ ├── HelloWorld.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── HelloWorld.xcscheme │ ├── HelloWorld │ │ ├── AppDelegate.swift │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── LaunchScreen.storyboard │ │ └── PrivacyInfo.xcprivacy │ ├── Podfile │ └── _xcode.env ├── jest.config.js ├── metro.config.js ├── package.json └── tsconfig.json └── yarn.lock /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ✋ To keep the backlog clean and actionable, issues will be 2 | 🚫 closed if they do not follow one of the issue templates: 3 | 👉 https://github.com/react-native-community/template/issues/new/choose 4 | 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: 🐛 Bug Report 2 | description: Report a reproducible bug or regression in React Native Community Template. 3 | labels: ["Needs: Triage :mag:"] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: "## Reporting a bug to the React Native Community Template" 8 | - type: markdown 9 | attributes: 10 | value: | 11 | Thank you for taking the time to report an issue for React Native Community Template, your contribution will help 12 | make the framework better for everyone. 13 | 14 | Before you continue: 15 | * Make sure your issue is related to the template and not the [React Native](https://github.com/facebook/react-native/issues) project. 16 | * Please [search for similar issues](https://github.com/react-native-community/template/issues) in our issue tracker. 17 | 18 | Make sure that your issue: 19 | * Have a **valid reproducer** in an [empty project from template](https://github.com/react-native-community/reproducer-react-native). 20 | 21 | We will be looking **ONLY** into issues with a reproducer, and on the latest version of the Template. 22 | - type: textarea 23 | id: description 24 | attributes: 25 | label: Description 26 | description: A clear and concise description of what the bug is. 27 | validations: 28 | required: true 29 | - type: textarea 30 | id: reproduction 31 | attributes: 32 | label: Steps to reproduce 33 | description: The list of steps that reproduce the issue. 34 | placeholder: | 35 | 1. Install the application with `yarn android` 36 | 2. Click on the button on the Home 37 | 3. Notice the crash 38 | validations: 39 | required: true 40 | - type: input 41 | id: version 42 | attributes: 43 | label: React Native Community Template Version 44 | description: The version of Template that this issue reproduces on. Bear in mind that only issues on the latest version of the Template will be supported. 45 | placeholder: "0.75.0" 46 | validations: 47 | required: true 48 | - type: dropdown 49 | id: platforms 50 | attributes: 51 | label: Affected Platforms 52 | description: Please select which platform you're developing to, and which OS you're using for building. 53 | multiple: true 54 | options: 55 | - Runtime - Android 56 | - Runtime - iOS 57 | - Runtime - Web 58 | - Runtime - Desktop 59 | - Build - MacOS 60 | - Build - Windows 61 | - Build - Linux 62 | - Other (please specify) 63 | validations: 64 | required: true 65 | - type: textarea 66 | id: react-native-info 67 | attributes: 68 | label: Output of `npx @react-native-community/cli@latest info` 69 | description: Run `npx @react-native-community/cli@latest info` in your terminal, copy and paste the results here. 70 | placeholder: | 71 | Paste the output of `npx @react-native-community/cli@latest info` here. The output looks like: 72 | ... 73 | System: 74 | OS: macOS 14.1.1 75 | CPU: (10) arm64 Apple M1 Max 76 | Memory: 417.81 MB / 64.00 GB 77 | Shell: 78 | version: "5.9" 79 | path: /bin/zsh 80 | Binaries: 81 | Node: ... 82 | version: 18.14.0 83 | ... 84 | render: text 85 | validations: 86 | required: true 87 | - type: textarea 88 | id: stacktrace 89 | attributes: 90 | label: Stacktrace or Logs 91 | description: Please provide a stacktrace or a log of your crash or failure 92 | render: text 93 | placeholder: | 94 | Paste your stacktraces and logs here. They might look like: 95 | 96 | java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfabricjni.so caused by: com.facebook.react.fabric.StateWrapperImpl result: 0 97 | at com.facebook.soloader.SoLoader.g(Unknown Source:341) 98 | at com.facebook.soloader.SoLoader.t(Unknown Source:124) 99 | at com.facebook.soloader.SoLoader.s(Unknown Source:2) 100 | at com.facebook.soloader.SoLoader.q(Unknown Source:42) 101 | at com.facebook.soloader.SoLoader.p(Unknown Source:1) 102 | ... 103 | validations: 104 | required: true 105 | - type: input 106 | id: reproducer 107 | attributes: 108 | label: Reproducer 109 | description: A link to the public repository that reproduces this bug, using [this template](https://github.com/react-native-community/reproducer-react-native). Reproducers are **mandatory**. 110 | placeholder: "https://github.com//" 111 | validations: 112 | required: true 113 | - type: textarea 114 | id: extra 115 | attributes: 116 | label: Screenshots and Videos 117 | description: | 118 | Please provide screenshot or a video of your bug if relevant. 119 | Issues with videos and screenshots are more likely to **get prioritized**. 120 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Summary: 4 | 5 | 6 | 7 | ## Changelog: 8 | 9 | 18 | 19 | ## Test Plan: 20 | 21 | 22 | -------------------------------------------------------------------------------- /.github/workflows/nightly.yaml: -------------------------------------------------------------------------------- 1 | name: Nightly 2 | 3 | on: 4 | workflow_dispatch: 5 | # Instead of running every night we run 6 | # Once for every commit in main as the traffic on this repo 7 | # is lower than facebook/react-native. 8 | push: 9 | branches: 10 | - main 11 | 12 | jobs: 13 | publish_template_as_nightly: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v4.1.1 18 | - name: Setup node.js 19 | uses: actions/setup-node@v4.0.0 20 | with: 21 | node-version: 18 22 | registry-url: 'https://registry.npmjs.org' 23 | - name: Update versions to nightly 24 | run: node ./scripts/updateTemplateVersion.js nightly 25 | - name: Update template/package.json to nightly react-native + @react-native 26 | run: node ./scripts/updateReactNativeVersion.js nightly 27 | - name: Publish NPM as Nightly 28 | run: npm publish --tag nightly 29 | env: 30 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 31 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | version: 7 | description: "The version of the react-native we the template to use in this release. For example 0.75.0-rc.0" 8 | required: true 9 | type: string 10 | is_latest_on_npm: 11 | description: "Whether we want to tag this template release as `latest` on NPM" 12 | required: true 13 | type: boolean 14 | default: false 15 | dry_run: 16 | description: "Run without making persistent changes to git or npm" 17 | type: boolean 18 | default: true 19 | 20 | jobs: 21 | publish_template: 22 | runs-on: ubuntu-latest 23 | steps: 24 | - name: Safeguard against branch name 25 | run: | 26 | if [[ "$GITHUB_REF_NAME" != *-stable ]]; then 27 | echo "Error: This workflow can only be executed from a branch ending with '-stable'." 28 | exit 1 29 | fi 30 | - name: Checkout 31 | uses: actions/checkout@v4.1.1 32 | - name: Setup node.js 33 | uses: actions/setup-node@v4.0.0 34 | with: 35 | node-version: 18 36 | registry-url: 'https://registry.npmjs.org' 37 | - name: Determine new template version 38 | run: echo "VERSION=$(./scripts/bumpedTemplateVersion.sh ${{ inputs.version }})" >> $GITHUB_ENV 39 | - name: Update versions to input one 40 | run: node ./scripts/updateTemplateVersion.js $VERSION 41 | - name: Update template/package.json to nightly react-native + @react-native 42 | run: node ./scripts/updateReactNativeVersion.js "${{ inputs.version }}" 43 | - name: Create corresponding commit & git tag 44 | run: | 45 | GIT=(echo git) 46 | if [ "${{ inputs.dry_run }}" = "false" ]; then 47 | GIT=(git) 48 | fi 49 | "${GIT[@]}" config --global user.name 'React Native Bot' 50 | "${GIT[@]}" config --global user.email 'bot@reactnative.dev' 51 | if [ -z "$("${GIT[@]}" status --porcelain)" ]; then 52 | echo "No changes, a previous release might have failed at the publish step. Continue to retry." 53 | exit 0 54 | fi 55 | "${GIT[@]}" commit -am "Bumping template to $VERSION" 56 | "${GIT[@]}" push 57 | "${GIT[@]}" tag $VERSION 58 | "${GIT[@]}" push --tags 59 | - name: Publish on NPM (with tag if needed) 60 | env: 61 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 62 | run: | 63 | args=(--dry-run) 64 | if [ "${{ inputs.dry_run }}" = "false" ]; then 65 | args=() 66 | fi 67 | IS_LATEST_ON_NPM="${{ inputs.is_latest_on_npm }}" 68 | if [[ "$IS_LATEST_ON_NPM" == "true" ]]; then 69 | npm publish --tag latest "${args[@]}" 70 | elif [[ "$VERSION" == *"rc"* ]]; then 71 | npm publish --tag next "${args[@]}" 72 | elif [[ "$GITHUB_REF_NAME" == *"-stable" ]]; then 73 | npm publish --tag "$GITHUB_REF_NAME" "${args[@]}" 74 | else 75 | npm publish "${args[@]}" 76 | fi 77 | -------------------------------------------------------------------------------- /.github/workflows/tests.yaml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | unit-tests: 11 | name: Unit Tests 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@v4.1.1 16 | - name: Setup node.js 17 | uses: actions/setup-node@v4.0.0 18 | with: 19 | node-version: 18 20 | - name: Run unit tests 21 | run: npm install && npm test 22 | 23 | 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Cache and log files 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* 8 | 9 | # Files in template directory (when manually testing) 10 | /template/node_modules 11 | /template/yarn.lock 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 react-native-community 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React Native Community Template 2 | 3 | The template used by `npx @react-native-community/cli init` to bootstrap a React Native application. 4 | 5 | [![Build Status][build-badge]][build] [![Version][version-badge]][package] [![MIT License][license-badge]][license] [![PRs Welcome][prs-welcome-badge]][prs-welcome] 6 | 7 | 8 | # Create Latest CLI Project 9 | Using this command create latest react-native project with this template 10 | ``` 11 | npx @react-native-community/cli@latest init TestApp 12 | ``` 13 | 14 | # Create Specific Version React-Native CLI Project 15 | Add version flag and specify that existing version of react-native to create project. 16 | Note that this command will create a new project from the template using the specific version passed to the flag 17 | 18 | npx @react-native-community/cli init TestApp --version 19 | 20 | Replace `` with the version number you need. For example: 0.75.2. 21 | 22 | 23 | ## Contents 24 | 25 | - [About](#about) 26 | - [License](#license) 27 | 28 | ## About 29 | 30 | This repository contains the template used by the React Native Community's Command Line Tool (or CLI) to bootstrap a React Native project. 31 | 32 | ## License 33 | 34 | Everything inside this repository is [MIT licensed](./LICENSE). 35 | 36 | 37 | 38 | [build-badge]: https://img.shields.io/github/actions/workflow/status/react-native-community/template/test.yml?branch=main&style=flat-square 39 | [build]: https://github.com/react-native-community/template/actions/workflows/test.yml 40 | [version-badge]: https://img.shields.io/npm/v/@react-native-community/template.svg?style=flat-square 41 | [package]: https://www.npmjs.com/package/@react-native-community/template 42 | [license-badge]: https://img.shields.io/npm/l/@react-native-community/template.svg?style=flat-square 43 | [license]: https://opensource.org/licenses/MIT 44 | [prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square 45 | [prs-welcome]: http://makeapullrequest.com 46 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('jest').Config} */ 2 | const config = { 3 | coverageProvider: "v8", 4 | testMatch: [ 5 | "**/__tests__/*.js", 6 | ], 7 | }; 8 | 9 | module.exports = config; 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@react-native-community/template", 3 | "version": "0.81.0-main", 4 | "description": "The template used by `npx @react-native-community/cli init` to bootstrap a React Native application.", 5 | "license": "MIT", 6 | "publishConfig": { 7 | "access": "public" 8 | }, 9 | "scripts": { 10 | "test": "jest" 11 | }, 12 | "type": "commonjs", 13 | "files": [ 14 | "template/*", 15 | "template.config.js" 16 | ], 17 | "dependencies": {}, 18 | "devDependencies": { 19 | "jest": "^29.7.0", 20 | "semver": "^7.6.3" 21 | }, 22 | "homepage": "https://github.com/react-native-community/template/tree/main", 23 | "repository": { 24 | "type": "git", 25 | "url": "git+https://github.com/react-native-community/template.git" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /scripts/__tests__/bumpTemplateVersion-test.js: -------------------------------------------------------------------------------- 1 | const {execSync, exec: _exec} = require('child_process'); 2 | const fs = require('fs'); 3 | const {promisify} = require('util'); 4 | const path = require('path'); 5 | const semver = require('semver'); 6 | 7 | function run(version) { 8 | return execSync(`./bumpedTemplateVersion.sh ${version}`, { cwd: 'scripts', stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim(); 9 | } 10 | 11 | const FIFO_PATH = '/tmp/_npm_fifo' 12 | 13 | const exec = promisify(_exec); 14 | const writeFile = promisify(fs.writeFile); 15 | 16 | async function runStubbedNpm(version, response) { 17 | cleanUpStubbedNpm(); 18 | execSync(`mkfifo ${FIFO_PATH}`); 19 | return Promise.all( 20 | [ 21 | writeFile(FIFO_PATH, JSON.stringify(response)), 22 | exec(`./bumpedTemplateVersion.sh ${version}`, { 23 | cwd: 'scripts', 24 | stdio: ['ignore', 'pipe', 'ignore'], 25 | env: { 26 | PATH: `${__dirname}/stub:${process.env.PATH}`, 27 | NPM_STUB_FIFO: FIFO_PATH, 28 | } 29 | }).then(raw => raw.stdout.toString().trim()), 30 | ] 31 | ).then(([, resp]) => resp); 32 | } 33 | 34 | function cleanUpStubbedNpm() { 35 | try { 36 | fs.unlinkSync(FIFO_PATH); 37 | } catch { 38 | // Best attempt is OK. 39 | } 40 | } 41 | 42 | describe('bumpTemplateVersion.sh', () => { 43 | 44 | it('nightlies stay the same', () => { 45 | expect(run('0.75.0-nightly-20240606-4324f0874')).toEqual('0.75.0-nightly-20240606-4324f0874'); 46 | }); 47 | 48 | it('release candidates appended with a sha', () => { 49 | expect(run('0.74.0-rc.3')).toMatch(/0\.74\.0-rc\.3-.+/); 50 | }); 51 | 52 | it('assumed it is the first version when no matching MAJOR.MINOR', () => { 53 | const versionShouldNeverExist = '1111.0.1'; 54 | expect(run(versionShouldNeverExist)).toEqual('1111.0.0'); 55 | }); 56 | 57 | it('bumps the patch if a version of the template already exists', async () => { 58 | // This sucks I know: 59 | const {version} = await fetch('https://registry.npmjs.com/@react-native-community/template/latest').then(resp => resp.json()); 60 | const {major, minor, patch} = semver.parse(version); 61 | expect(run(`${major}.${minor}.${patch}`)).toEqual(`${major}.${minor}.${patch+1}`); 62 | }); 63 | 64 | describe('handles different npm responses', () => { 65 | afterAll(cleanUpStubbedNpm); 66 | it('arrays of versions', async () => { 67 | expect(await runStubbedNpm('0.76.0', [ 68 | { version: '0.76.0' }, 69 | { version: '0.76.2' }, 70 | // Expecting +1 on this: 71 | { version: '0.76.3' }, 72 | ])).toEqual('0.76.4'); 73 | }); 74 | 75 | it('single version', async () => { 76 | expect(await runStubbedNpm('0.76.0', { version: '0.76.0' })).toEqual('0.76.1'); 77 | }); 78 | }); 79 | }); 80 | -------------------------------------------------------------------------------- /scripts/__tests__/package_json-test.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const {execSync} = require('child_process'); 3 | 4 | const branch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim(); 5 | 6 | const isStableBranch = /\d+\.\d+-stable$/.test(branch); 7 | 8 | const isReactNativePackage = pkg => pkg === "react-native" || pkg.startsWith("@react-native/"); 9 | 10 | const label = isStableBranch ? 'react-native and ' : ''; 11 | 12 | describe("react-native packages on a version branch need to be aligned", () => { 13 | it(`has a consistent version for ${label}@react-native/ scoped packages in the template/package.json`, () => { 14 | const pkgJson = JSON.parse(fs.readFileSync('template/package.json')); 15 | 16 | const everything = Object.entries({ 17 | ...pkgJson.dependencies, 18 | ...pkgJson.devDependencies, 19 | ...pkgJson.peerDependencies ?? {} 20 | }); 21 | 22 | const versions = Object.fromEntries(everything.filter(([name]) => isReactNativePackage(name))); 23 | 24 | if (!isStableBranch) { 25 | // This is the one case where "react-native" doesn't have to match 26 | delete versions["react-native"]; 27 | } 28 | 29 | const allReactNativeVersions = new Set(Object.values(versions)); 30 | 31 | // Only a single version 32 | expect(allReactNativeVersions.size).toEqual(1); 33 | }); 34 | }); 35 | -------------------------------------------------------------------------------- /scripts/__tests__/stub/npm: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cat $NPM_STUB_FIFO 3 | -------------------------------------------------------------------------------- /scripts/bumpedTemplateVersion.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # What this does: 4 | # 1. Take the version of react, use the MAJOR.MINOR 5 | # - /nightly/ -> MAJOR.MINOR.PATCH-nightly-YYYYNN-HASH 6 | # - /-rc.N/ -> MAJOR.MINOR.PATCH-rc.N-HASH 7 | # - ELSE: continue 8 | # 2. Look for the latest version of the template with that MAJOR.MINOR 9 | # - No version -> then set to MAJOR.MINOR.0 10 | # - MAJOR.MINOR.PATCH -> MAJOR.MINOR.PATCH+1 11 | 12 | log() { 13 | echo "$@" >&2 14 | } 15 | 16 | if [[ $# != 1 ]]; then 17 | log "USAGE: bumpTemplateVersion.sh " 18 | exit 1 19 | fi 20 | 21 | if [[ $1 =~ -rc\.[0-9]+ ]]; then 22 | log "Release candidate" 23 | # Append a sha, so if we need to re-release for a RC we don't conflict 24 | echo $1-$(git rev-parse --short HEAD) 25 | exit 0 26 | fi 27 | 28 | if [[ $1 =~ -nightly- ]]; then 29 | log "Nightly candidate" 30 | # Once a day, we're not going to get conflicts using the given nightly tag 31 | echo $1 32 | exit 0 33 | fi 34 | 35 | # Find current version of template that matches this version of react-native. 36 | if [[ $1 =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; then 37 | MAJOR_MINOR=$(awk -F'.' '{ print $1"."$2 }' <<< $1) 38 | CURRENT_VERSION=$(npm show --json "@react-native-community/template@^$MAJOR_MINOR") 39 | if [ $? -ne 0 ]; then 40 | echo "$MAJOR_MINOR.0"; 41 | exit 0; 42 | fi 43 | # Bump PATCH 44 | PUBLISHED=$(jq -r 'if . | type == "array" then last | .version else .version end' <<< $CURRENT_VERSION | awk -F'.' '{ print $1"."$2"."($3+1) }') 45 | echo $PUBLISHED; 46 | exit 0 47 | fi 48 | 49 | log "Unknown type of release: $RN_VERSION" 50 | exit 1 51 | -------------------------------------------------------------------------------- /scripts/updateReactNativeVersion.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | function updateDependencies(pkgJson, update) { 4 | console.log('Changing package.json dependencies:'); 5 | 6 | for (const [pkg, value] of Object.entries(update.dependencies ?? {})) { 7 | const old = pkgJson.dependencies[pkg]; 8 | if (old) { 9 | console.log(` - ${pkg}: ${old} → ${value}`); 10 | } else { 11 | console.log(` - ${pkg}: ${value}`); 12 | } 13 | pkgJson.dependencies[pkg] = value; 14 | } 15 | 16 | for (const [pkg, value] of Object.entries(update.devDependencies ?? {})) { 17 | const old = pkgJson.devDependencies[pkg]; 18 | if (old) { 19 | console.log(` - ${pkg}: ${old} → ${value}`); 20 | } else { 21 | console.log(` - ${pkg}: ${value}`); 22 | } 23 | pkgJson.devDependencies[pkg] = value; 24 | } 25 | 26 | return pkgJson; 27 | } 28 | 29 | const REACT_NATIVE_SCOPE = '@react-native/'; 30 | 31 | /** 32 | * Packages that are scoped under @react-native need a consistent version 33 | */ 34 | function normalizeReactNativeDeps(deps, version) { 35 | const updated = {}; 36 | for (const key of Object.keys(deps ?? {}).filter((pkg) => 37 | pkg.startsWith(REACT_NATIVE_SCOPE), 38 | )) { 39 | updated[key] = version; 40 | } 41 | return updated; 42 | } 43 | 44 | async function main(version) { 45 | const PKG_JSON_PATH = 'template/package.json'; 46 | // Update the react-native dependency if using the new @react-native-community/template. 47 | // We can figure this out as it ships with react-native@1000.0.0 set to a dummy version. 48 | let pkgJson = JSON.parse(fs.readFileSync(PKG_JSON_PATH, 'utf8')); 49 | 50 | pkgJson = updateDependencies(pkgJson, { 51 | dependencies: { 52 | 'react-native': version, 53 | ...normalizeReactNativeDeps(pkgJson.dependencies, version), 54 | }, 55 | devDependencies: { 56 | ...normalizeReactNativeDeps(pkgJson.devDependencies, version), 57 | }, 58 | }); 59 | 60 | let updated = JSON.stringify(pkgJson, null, 2); 61 | console.log( 62 | `\nWriting update template/package.json to ${PKG_JSON_PATH}:\n\n${updated}`, 63 | ); 64 | fs.writeFileSync(PKG_JSON_PATH, updated); 65 | 66 | // 2. Update the scripts.version field in the top level package.json. This lets us leverage 67 | // the https://registry.npmjs.org/@react-native-community/template API: 68 | // 69 | // "name": "@react-native-community/template", 70 | // "dist-tags": { 71 | // ... 72 | // "0.75-stable": "0.75.0-rc.0" 73 | // }, 74 | // "versions": { 75 | // "0.75.0-rc.0": { 76 | // "name": "@react-native-community/template", 77 | // "version": "0.75.0-rc.0", 78 | // "scripts": { 79 | // "version": "0.75.1" 80 | // ... 81 | // }, 82 | // 83 | // We can then correlate earlier version of react-native with earlier template. Significantly 84 | // none of this is 'user facing'. 85 | const PKG_JSON_ROOT_PATH = './package.json'; 86 | pkgJson = JSON.parse(fs.readFileSync(PKG_JSON_ROOT_PATH, 'utf8')); 87 | pkgJson.scripts ??= {}; 88 | pkgJson.scripts.version = version; 89 | updated = JSON.stringify(pkgJson, null, 2); 90 | console.log( 91 | `\nWriting update package.json to ${PKG_JSON_ROOT_PATH}:\n\n${updated}`, 92 | ); 93 | fs.writeFileSync(PKG_JSON_ROOT_PATH, updated); 94 | } 95 | 96 | if (require.main === module) { 97 | if (process.argv.length < 3) { 98 | console.log(`USAGE: updateReactNativeVersion.js 99 | 100 | Updates 'react-native' and '@react-native/' scoped packages to a common version within 101 | the template. 102 | `); 103 | process.exit(1); 104 | } 105 | main(process.argv.pop()).catch((e) => { 106 | throw e; 107 | }); 108 | } 109 | -------------------------------------------------------------------------------- /scripts/updateTemplateVersion.js: -------------------------------------------------------------------------------- 1 | const { readFileSync, writeFileSync } = require('fs'); 2 | 3 | /** 4 | * Function to get the Nightly version of the package, similar to the one used in React Native. 5 | * Version will look as follows: 6 | * `0.75.0-nightly-20241010-abcd1234` 7 | */ 8 | function getNightlyVersion(originalVersion) { 9 | const version = originalVersion.split('-')[0]; 10 | const date = new Date(); 11 | const year = date.getFullYear(); 12 | const month = date.getMonth() + 1; 13 | const day = date.getDate(); 14 | // Get the sha fromt he current commit on github actions 15 | const sha = process.env.GITHUB_SHA.slice(0, 7); 16 | return `${version}-nightly-${year}${month}${day}-${sha}`; 17 | } 18 | 19 | if (!process.argv[2]) { 20 | console.error('Please provide a version to update the template to.'); 21 | process.exit(1); 22 | } 23 | const targetVersion = process.argv[2]; 24 | 25 | // We first update version of the template we're about to publish. 26 | const packageJsonData = readFileSync('package.json', 'utf8'); 27 | const packageJson = JSON.parse(packageJsonData); 28 | if (targetVersion === 'nightly') { 29 | packageJson.version = getNightlyVersion(packageJson.version); 30 | } else { 31 | packageJson.version = targetVersion; 32 | } 33 | const updatedPackageJsonData = JSON.stringify(packageJson, null, 2); 34 | writeFileSync('package.json', updatedPackageJsonData, 'utf8'); 35 | console.log(`Template version updated to ${packageJson.version}`); 36 | -------------------------------------------------------------------------------- /template.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | module.exports = { 9 | placeholderName: 'HelloWorld', 10 | titlePlaceholder: 'Hello App Display Name', 11 | templateDir: './template', 12 | }; 13 | -------------------------------------------------------------------------------- /template/App.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | * 5 | * @format 6 | */ 7 | 8 | import { NewAppScreen } from '@react-native/new-app-screen'; 9 | import { StatusBar, StyleSheet, useColorScheme, View } from 'react-native'; 10 | 11 | function App() { 12 | const isDarkMode = useColorScheme() === 'dark'; 13 | 14 | return ( 15 | 16 | 17 | 18 | 19 | ); 20 | } 21 | 22 | const styles = StyleSheet.create({ 23 | container: { 24 | flex: 1, 25 | }, 26 | }); 27 | 28 | export default App; 29 | -------------------------------------------------------------------------------- /template/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby ">= 2.6.10" 5 | 6 | # Exclude problematic versions of cocoapods and activesupport that causes build failures. 7 | gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' 8 | gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' 9 | gem 'xcodeproj', '< 1.26.0' 10 | gem 'concurrent-ruby', '< 1.3.4' 11 | 12 | # Ruby 3.4.0 has removed some libraries from the standard library. 13 | gem 'bigdecimal' 14 | gem 'logger' 15 | gem 'benchmark' 16 | gem 'mutex_m' 17 | -------------------------------------------------------------------------------- /template/README.md: -------------------------------------------------------------------------------- 1 | This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli). 2 | 3 | # Getting Started 4 | 5 | > **Note**: Make sure you have completed the [Set Up Your Environment](https://reactnative.dev/docs/set-up-your-environment) guide before proceeding. 6 | 7 | ## Step 1: Start Metro 8 | 9 | First, you will need to run **Metro**, the JavaScript build tool for React Native. 10 | 11 | To start the Metro dev server, run the following command from the root of your React Native project: 12 | 13 | ```sh 14 | # Using npm 15 | npm start 16 | 17 | # OR using Yarn 18 | yarn start 19 | ``` 20 | 21 | ## Step 2: Build and run your app 22 | 23 | With Metro running, open a new terminal window/pane from the root of your React Native project, and use one of the following commands to build and run your Android or iOS app: 24 | 25 | ### Android 26 | 27 | ```sh 28 | # Using npm 29 | npm run android 30 | 31 | # OR using Yarn 32 | yarn android 33 | ``` 34 | 35 | ### iOS 36 | 37 | For iOS, remember to install CocoaPods dependencies (this only needs to be run on first clone or after updating native deps). 38 | 39 | The first time you create a new project, run the Ruby bundler to install CocoaPods itself: 40 | 41 | ```sh 42 | bundle install 43 | ``` 44 | 45 | Then, and every time you update your native dependencies, run: 46 | 47 | ```sh 48 | bundle exec pod install 49 | ``` 50 | 51 | For more information, please visit [CocoaPods Getting Started guide](https://guides.cocoapods.org/using/getting-started.html). 52 | 53 | ```sh 54 | # Using npm 55 | npm run ios 56 | 57 | # OR using Yarn 58 | yarn ios 59 | ``` 60 | 61 | If everything is set up correctly, you should see your new app running in the Android Emulator, iOS Simulator, or your connected device. 62 | 63 | This is one way to run your app — you can also build it directly from Android Studio or Xcode. 64 | 65 | ## Step 3: Modify your app 66 | 67 | Now that you have successfully run the app, let's make changes! 68 | 69 | Open `App.tsx` in your text editor of choice and make some changes. When you save, your app will automatically update and reflect these changes — this is powered by [Fast Refresh](https://reactnative.dev/docs/fast-refresh). 70 | 71 | When you want to forcefully reload, for example to reset the state of your app, you can perform a full reload: 72 | 73 | - **Android**: Press the R key twice or select **"Reload"** from the **Dev Menu**, accessed via Ctrl + M (Windows/Linux) or Cmd ⌘ + M (macOS). 74 | - **iOS**: Press R in iOS Simulator. 75 | 76 | ## Congratulations! :tada: 77 | 78 | You've successfully run and modified your React Native App. :partying_face: 79 | 80 | ### Now what? 81 | 82 | - If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps). 83 | - If you're curious to learn more about React Native, check out the [docs](https://reactnative.dev/docs/getting-started). 84 | 85 | # Troubleshooting 86 | 87 | If you're having issues getting the above steps to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page. 88 | 89 | # Learn More 90 | 91 | To learn more about React Native, take a look at the following resources: 92 | 93 | - [React Native Website](https://reactnative.dev) - learn more about React Native. 94 | - [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment. 95 | - [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**. 96 | - [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts. 97 | - [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native. 98 | -------------------------------------------------------------------------------- /template/__tests__/App.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import React from 'react'; 6 | import ReactTestRenderer from 'react-test-renderer'; 7 | import App from '../App'; 8 | 9 | test('renders correctly', async () => { 10 | await ReactTestRenderer.act(() => { 11 | ReactTestRenderer.create(); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /template/_bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /template/_eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native', 4 | }; 5 | -------------------------------------------------------------------------------- /template/_gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | **/.xcode.env.local 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | *.hprof 33 | .cxx/ 34 | *.keystore 35 | !debug.keystore 36 | .kotlin/ 37 | 38 | # node.js 39 | # 40 | node_modules/ 41 | npm-debug.log 42 | yarn-error.log 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | **/fastlane/report.xml 52 | **/fastlane/Preview.html 53 | **/fastlane/screenshots 54 | **/fastlane/test_output 55 | 56 | # Bundle artifact 57 | *.jsbundle 58 | 59 | # Ruby / CocoaPods 60 | **/Pods/ 61 | /vendor/bundle/ 62 | 63 | # Temporary files created by Metro to check the health of the file watcher 64 | .metro-health-check* 65 | 66 | # testing 67 | /coverage 68 | 69 | # Yarn 70 | .yarn/* 71 | !.yarn/patches 72 | !.yarn/plugins 73 | !.yarn/releases 74 | !.yarn/sdks 75 | !.yarn/versions 76 | -------------------------------------------------------------------------------- /template/_prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | singleQuote: true, 4 | trailingComma: 'all', 5 | }; 6 | -------------------------------------------------------------------------------- /template/_watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /template/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "com.android.application" 2 | apply plugin: "org.jetbrains.kotlin.android" 3 | apply plugin: "com.facebook.react" 4 | 5 | /** 6 | * This is the configuration block to customize your React Native Android app. 7 | * By default you don't need to apply any configuration, just uncomment the lines you need. 8 | */ 9 | react { 10 | /* Folders */ 11 | // The root of your project, i.e. where "package.json" lives. Default is '../..' 12 | // root = file("../../") 13 | // The folder where the react-native NPM package is. Default is ../../node_modules/react-native 14 | // reactNativeDir = file("../../node_modules/react-native") 15 | // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen 16 | // codegenDir = file("../../node_modules/@react-native/codegen") 17 | // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js 18 | // cliFile = file("../../node_modules/react-native/cli.js") 19 | 20 | /* Variants */ 21 | // The list of variants to that are debuggable. For those we're going to 22 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'. 23 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. 24 | // debuggableVariants = ["liteDebug", "prodDebug"] 25 | 26 | /* Bundling */ 27 | // A list containing the node command and its flags. Default is just 'node'. 28 | // nodeExecutableAndArgs = ["node"] 29 | // 30 | // The command to run when bundling. By default is 'bundle' 31 | // bundleCommand = "ram-bundle" 32 | // 33 | // The path to the CLI configuration file. Default is empty. 34 | // bundleConfig = file(../rn-cli.config.js) 35 | // 36 | // The name of the generated asset file containing your JS bundle 37 | // bundleAssetName = "MyApplication.android.bundle" 38 | // 39 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' 40 | // entryFile = file("../js/MyApplication.android.js") 41 | // 42 | // A list of extra flags to pass to the 'bundle' commands. 43 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle 44 | // extraPackagerArgs = [] 45 | 46 | /* Hermes Commands */ 47 | // The hermes compiler command to run. By default it is 'hermesc' 48 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" 49 | // 50 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" 51 | // hermesFlags = ["-O", "-output-source-map"] 52 | 53 | /* Autolinking */ 54 | autolinkLibrariesWithApp() 55 | } 56 | 57 | /** 58 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode. 59 | */ 60 | def enableProguardInReleaseBuilds = false 61 | 62 | /** 63 | * The preferred build flavor of JavaScriptCore (JSC) 64 | * 65 | * For example, to use the international variant, you can use: 66 | * `def jscFlavor = io.github.react-native-community:jsc-android-intl:2026004.+` 67 | * 68 | * The international variant includes ICU i18n library and necessary data 69 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that 70 | * give correct results when using with locales other than en-US. Note that 71 | * this variant is about 6MiB larger per architecture than default. 72 | */ 73 | def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+' 74 | 75 | android { 76 | ndkVersion rootProject.ext.ndkVersion 77 | buildToolsVersion rootProject.ext.buildToolsVersion 78 | compileSdk rootProject.ext.compileSdkVersion 79 | 80 | namespace "com.helloworld" 81 | defaultConfig { 82 | applicationId "com.helloworld" 83 | minSdkVersion rootProject.ext.minSdkVersion 84 | targetSdkVersion rootProject.ext.targetSdkVersion 85 | versionCode 1 86 | versionName "1.0" 87 | } 88 | signingConfigs { 89 | debug { 90 | storeFile file('debug.keystore') 91 | storePassword 'android' 92 | keyAlias 'androiddebugkey' 93 | keyPassword 'android' 94 | } 95 | } 96 | buildTypes { 97 | debug { 98 | signingConfig signingConfigs.debug 99 | } 100 | release { 101 | // Caution! In production, you need to generate your own keystore file. 102 | // see https://reactnative.dev/docs/signed-apk-android. 103 | signingConfig signingConfigs.debug 104 | minifyEnabled enableProguardInReleaseBuilds 105 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 106 | } 107 | } 108 | } 109 | 110 | dependencies { 111 | // The version of react-native is set by the React Native Gradle Plugin 112 | implementation("com.facebook.react:react-android") 113 | 114 | if (hermesEnabled.toBoolean()) { 115 | implementation("com.facebook.react:hermes-android") 116 | } else { 117 | implementation jscFlavor 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /template/android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/debug.keystore -------------------------------------------------------------------------------- /template/android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -------------------------------------------------------------------------------- /template/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /template/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 13 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /template/android/app/src/main/java/com/helloworld/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.helloworld 2 | 3 | import com.facebook.react.ReactActivity 4 | import com.facebook.react.ReactActivityDelegate 5 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled 6 | import com.facebook.react.defaults.DefaultReactActivityDelegate 7 | 8 | class MainActivity : ReactActivity() { 9 | 10 | /** 11 | * Returns the name of the main component registered from JavaScript. This is used to schedule 12 | * rendering of the component. 13 | */ 14 | override fun getMainComponentName(): String = "HelloWorld" 15 | 16 | /** 17 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] 18 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] 19 | */ 20 | override fun createReactActivityDelegate(): ReactActivityDelegate = 21 | DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) 22 | } 23 | -------------------------------------------------------------------------------- /template/android/app/src/main/java/com/helloworld/MainApplication.kt: -------------------------------------------------------------------------------- 1 | package com.helloworld 2 | 3 | import android.app.Application 4 | import com.facebook.react.PackageList 5 | import com.facebook.react.ReactApplication 6 | import com.facebook.react.ReactHost 7 | import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative 8 | import com.facebook.react.ReactNativeHost 9 | import com.facebook.react.ReactPackage 10 | import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost 11 | import com.facebook.react.defaults.DefaultReactNativeHost 12 | 13 | class MainApplication : Application(), ReactApplication { 14 | 15 | override val reactNativeHost: ReactNativeHost = 16 | object : DefaultReactNativeHost(this) { 17 | override fun getPackages(): List = 18 | PackageList(this).packages.apply { 19 | // Packages that cannot be autolinked yet can be added manually here, for example: 20 | // add(MyReactNativePackage()) 21 | } 22 | 23 | override fun getJSMainModuleName(): String = "index" 24 | 25 | override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG 26 | 27 | override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED 28 | override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED 29 | } 30 | 31 | override val reactHost: ReactHost 32 | get() = getDefaultReactHost(applicationContext, reactNativeHost) 33 | 34 | override fun onCreate() { 35 | super.onCreate() 36 | loadReactNative(this) 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /template/android/app/src/main/res/drawable/rn_edit_text_material.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 22 | 23 | 24 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /template/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Hello App Display Name 3 | 4 | -------------------------------------------------------------------------------- /template/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /template/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext { 3 | buildToolsVersion = "35.0.0" 4 | minSdkVersion = 24 5 | compileSdkVersion = 35 6 | targetSdkVersion = 35 7 | ndkVersion = "27.1.12297006" 8 | kotlinVersion = "2.1.20" 9 | } 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | dependencies { 15 | classpath("com.android.tools.build:gradle") 16 | classpath("com.facebook.react:react-native-gradle-plugin") 17 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") 18 | } 19 | } 20 | 21 | apply plugin: "com.facebook.react.rootproject" 22 | -------------------------------------------------------------------------------- /template/android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m 13 | org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | # AndroidX package structure to make it clearer which packages are bundled with the 21 | # Android operating system, and which are packaged with your app's APK 22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 23 | android.useAndroidX=true 24 | 25 | # Use this property to specify which architecture you want to build. 26 | # You can also override it from the CLI using 27 | # ./gradlew -PreactNativeArchitectures=x86_64 28 | reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 29 | 30 | # Use this property to enable support to the new architecture. 31 | # This will allow you to use TurboModules and the Fabric render in 32 | # your application. You should enable this flag either if you want 33 | # to write custom TurboModules/Fabric components OR use libraries that 34 | # are providing them. 35 | newArchEnabled=true 36 | 37 | # Use this property to enable or disable the Hermes JS engine. 38 | # If set to false, you will be using JSC instead. 39 | hermesEnabled=true 40 | -------------------------------------------------------------------------------- /template/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/react-native-community/template/9b3f65fa31655aa335fbe6d93a2f4d6f9930d93a/template/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /template/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /template/android/gradlew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright © 2015-2021 the original authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | # SPDX-License-Identifier: Apache-2.0 19 | # 20 | 21 | ############################################################################## 22 | # 23 | # Gradle start up script for POSIX generated by Gradle. 24 | # 25 | # Important for running: 26 | # 27 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 28 | # noncompliant, but you have some other compliant shell such as ksh or 29 | # bash, then to run this script, type that shell name before the whole 30 | # command line, like: 31 | # 32 | # ksh Gradle 33 | # 34 | # Busybox and similar reduced shells will NOT work, because this script 35 | # requires all of these POSIX shell features: 36 | # * functions; 37 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 38 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 39 | # * compound commands having a testable exit status, especially «case»; 40 | # * various built-in commands including «command», «set», and «ulimit». 41 | # 42 | # Important for patching: 43 | # 44 | # (2) This script targets any POSIX shell, so it avoids extensions provided 45 | # by Bash, Ksh, etc; in particular arrays are avoided. 46 | # 47 | # The "traditional" practice of packing multiple parameters into a 48 | # space-separated string is a well documented source of bugs and security 49 | # problems, so this is (mostly) avoided, by progressively accumulating 50 | # options in "$@", and eventually passing that to Java. 51 | # 52 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 53 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 54 | # see the in-line comments for details. 55 | # 56 | # There are tweaks for specific operating systems such as AIX, CygWin, 57 | # Darwin, MinGW, and NonStop. 58 | # 59 | # (3) This script is generated from the Groovy template 60 | # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 61 | # within the Gradle project. 62 | # 63 | # You can find Gradle at https://github.com/gradle/gradle/. 64 | # 65 | ############################################################################## 66 | 67 | # Attempt to set APP_HOME 68 | 69 | # Resolve links: $0 may be a link 70 | app_path=$0 71 | 72 | # Need this for daisy-chained symlinks. 73 | while 74 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 75 | [ -h "$app_path" ] 76 | do 77 | ls=$( ls -ld "$app_path" ) 78 | link=${ls#*' -> '} 79 | case $link in #( 80 | /*) app_path=$link ;; #( 81 | *) app_path=$APP_HOME$link ;; 82 | esac 83 | done 84 | 85 | # This is normally unused 86 | # shellcheck disable=SC2034 87 | APP_BASE_NAME=${0##*/} 88 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) 89 | APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit 90 | 91 | # Use the maximum available, or set MAX_FD != -1 to use that value. 92 | MAX_FD=maximum 93 | 94 | warn () { 95 | echo "$*" 96 | } >&2 97 | 98 | die () { 99 | echo 100 | echo "$*" 101 | echo 102 | exit 1 103 | } >&2 104 | 105 | # OS specific support (must be 'true' or 'false'). 106 | cygwin=false 107 | msys=false 108 | darwin=false 109 | nonstop=false 110 | case "$( uname )" in #( 111 | CYGWIN* ) cygwin=true ;; #( 112 | Darwin* ) darwin=true ;; #( 113 | MSYS* | MINGW* ) msys=true ;; #( 114 | NONSTOP* ) nonstop=true ;; 115 | esac 116 | 117 | CLASSPATH="\\\"\\\"" 118 | 119 | 120 | # Determine the Java command to use to start the JVM. 121 | if [ -n "$JAVA_HOME" ] ; then 122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 123 | # IBM's JDK on AIX uses strange locations for the executables 124 | JAVACMD=$JAVA_HOME/jre/sh/java 125 | else 126 | JAVACMD=$JAVA_HOME/bin/java 127 | fi 128 | if [ ! -x "$JAVACMD" ] ; then 129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 130 | 131 | Please set the JAVA_HOME variable in your environment to match the 132 | location of your Java installation." 133 | fi 134 | else 135 | JAVACMD=java 136 | if ! command -v java >/dev/null 2>&1 137 | then 138 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 139 | 140 | Please set the JAVA_HOME variable in your environment to match the 141 | location of your Java installation." 142 | fi 143 | fi 144 | 145 | # Increase the maximum file descriptors if we can. 146 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 147 | case $MAX_FD in #( 148 | max*) 149 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. 150 | # shellcheck disable=SC2039,SC3045 151 | MAX_FD=$( ulimit -H -n ) || 152 | warn "Could not query maximum file descriptor limit" 153 | esac 154 | case $MAX_FD in #( 155 | '' | soft) :;; #( 156 | *) 157 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. 158 | # shellcheck disable=SC2039,SC3045 159 | ulimit -n "$MAX_FD" || 160 | warn "Could not set maximum file descriptor limit to $MAX_FD" 161 | esac 162 | fi 163 | 164 | # Collect all arguments for the java command, stacking in reverse order: 165 | # * args from the command line 166 | # * the main class name 167 | # * -classpath 168 | # * -D...appname settings 169 | # * --module-path (only if needed) 170 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 171 | 172 | # For Cygwin or MSYS, switch paths to Windows format before running java 173 | if "$cygwin" || "$msys" ; then 174 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 175 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 176 | 177 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 178 | 179 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 180 | for arg do 181 | if 182 | case $arg in #( 183 | -*) false ;; # don't mess with options #( 184 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 185 | [ -e "$t" ] ;; #( 186 | *) false ;; 187 | esac 188 | then 189 | arg=$( cygpath --path --ignore --mixed "$arg" ) 190 | fi 191 | # Roll the args list around exactly as many times as the number of 192 | # args, so each arg winds up back in the position where it started, but 193 | # possibly modified. 194 | # 195 | # NB: a `for` loop captures its iteration list before it begins, so 196 | # changing the positional parameters here affects neither the number of 197 | # iterations, nor the values presented in `arg`. 198 | shift # remove old arg 199 | set -- "$@" "$arg" # push replacement arg 200 | done 201 | fi 202 | 203 | 204 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 205 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 206 | 207 | # Collect all arguments for the java command: 208 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, 209 | # and any embedded shellness will be escaped. 210 | # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be 211 | # treated as '${Hostname}' itself on the command line. 212 | 213 | set -- \ 214 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 215 | -classpath "$CLASSPATH" \ 216 | -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ 217 | "$@" 218 | 219 | # Stop when "xargs" is not available. 220 | if ! command -v xargs >/dev/null 2>&1 221 | then 222 | die "xargs is not available" 223 | fi 224 | 225 | # Use "xargs" to parse quoted args. 226 | # 227 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 228 | # 229 | # In Bash we could simply go: 230 | # 231 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 232 | # set -- "${ARGS[@]}" "$@" 233 | # 234 | # but POSIX shell has neither arrays nor command substitution, so instead we 235 | # post-process each arg (as a line of input to sed) to backslash-escape any 236 | # character that might be a shell metacharacter, then use eval to reverse 237 | # that process (while maintaining the separation between arguments), and wrap 238 | # the whole thing up as a single "set" statement. 239 | # 240 | # This will of course break if any of these variables contains a newline or 241 | # an unmatched quote. 242 | # 243 | 244 | eval "set -- $( 245 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 246 | xargs -n1 | 247 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 248 | tr '\n' ' ' 249 | )" '"$@"' 250 | 251 | exec "$JAVACMD" "$@" 252 | -------------------------------------------------------------------------------- /template/android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @REM Copyright (c) Meta Platforms, Inc. and affiliates. 2 | @REM 3 | @REM This source code is licensed under the MIT license found in the 4 | @REM LICENSE file in the root directory of this source tree. 5 | 6 | @rem 7 | @rem Copyright 2015 the original author or authors. 8 | @rem 9 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 10 | @rem you may not use this file except in compliance with the License. 11 | @rem You may obtain a copy of the License at 12 | @rem 13 | @rem https://www.apache.org/licenses/LICENSE-2.0 14 | @rem 15 | @rem Unless required by applicable law or agreed to in writing, software 16 | @rem distributed under the License is distributed on an "AS IS" BASIS, 17 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | @rem See the License for the specific language governing permissions and 19 | @rem limitations under the License. 20 | @rem 21 | @rem SPDX-License-Identifier: Apache-2.0 22 | @rem 23 | 24 | @if "%DEBUG%"=="" @echo off 25 | @rem ########################################################################## 26 | @rem 27 | @rem Gradle startup script for Windows 28 | @rem 29 | @rem ########################################################################## 30 | 31 | @rem Set local scope for the variables with windows NT shell 32 | if "%OS%"=="Windows_NT" setlocal 33 | 34 | set DIRNAME=%~dp0 35 | if "%DIRNAME%"=="" set DIRNAME=. 36 | @rem This is normally unused 37 | set APP_BASE_NAME=%~n0 38 | set APP_HOME=%DIRNAME% 39 | 40 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 41 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 42 | 43 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 44 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 45 | 46 | @rem Find java.exe 47 | if defined JAVA_HOME goto findJavaFromJavaHome 48 | 49 | set JAVA_EXE=java.exe 50 | %JAVA_EXE% -version >NUL 2>&1 51 | if %ERRORLEVEL% equ 0 goto execute 52 | 53 | echo. 1>&2 54 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 55 | echo. 1>&2 56 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 57 | echo location of your Java installation. 1>&2 58 | 59 | goto fail 60 | 61 | :findJavaFromJavaHome 62 | set JAVA_HOME=%JAVA_HOME:"=% 63 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 64 | 65 | if exist "%JAVA_EXE%" goto execute 66 | 67 | echo. 1>&2 68 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 69 | echo. 1>&2 70 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 71 | echo location of your Java installation. 1>&2 72 | 73 | goto fail 74 | 75 | :execute 76 | @rem Setup the command line 77 | 78 | set CLASSPATH= 79 | 80 | 81 | @rem Execute Gradle 82 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* 83 | 84 | :end 85 | @rem End local scope for the variables with windows NT shell 86 | if %ERRORLEVEL% equ 0 goto mainEnd 87 | 88 | :fail 89 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 90 | rem the _cmd.exe /c_ return code! 91 | set EXIT_CODE=%ERRORLEVEL% 92 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 93 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 94 | exit /b %EXIT_CODE% 95 | 96 | :mainEnd 97 | if "%OS%"=="Windows_NT" endlocal 98 | 99 | :omega 100 | -------------------------------------------------------------------------------- /template/android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } 2 | plugins { id("com.facebook.react.settings") } 3 | extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } 4 | rootProject.name = 'HelloWorld' 5 | include ':app' 6 | includeBuild('../node_modules/@react-native/gradle-plugin') 7 | -------------------------------------------------------------------------------- /template/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "HelloWorld", 3 | "displayName": "HelloWorld" 4 | } 5 | -------------------------------------------------------------------------------- /template/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:@react-native/babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /template/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import { AppRegistry } from 'react-native'; 6 | import App from './App'; 7 | import { name as appName } from './app.json'; 8 | 9 | AppRegistry.registerComponent(appName, () => App); 10 | -------------------------------------------------------------------------------- /template/ios/HelloWorld.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 54; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 0C80B921A6F3F58F76C31292 /* libPods-HelloWorld.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-HelloWorld.a */; }; 11 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 12 | 761780ED2CA45674006654EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761780EC2CA45674006654EE /* AppDelegate.swift */; }; 13 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; 14 | /* End PBXBuildFile section */ 15 | 16 | /* Begin PBXFileReference section */ 17 | 13B07F961A680F5B00A75B9A /* HelloWorld.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorld.app; sourceTree = BUILT_PRODUCTS_DIR; }; 18 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = HelloWorld/Images.xcassets; sourceTree = ""; }; 19 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = HelloWorld/Info.plist; sourceTree = ""; }; 20 | 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = HelloWorld/PrivacyInfo.xcprivacy; sourceTree = ""; }; 21 | 3B4392A12AC88292D35C810B /* Pods-HelloWorld.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld.debug.xcconfig"; path = "Target Support Files/Pods-HelloWorld/Pods-HelloWorld.debug.xcconfig"; sourceTree = ""; }; 22 | 5709B34CF0A7D63546082F79 /* Pods-HelloWorld.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld.release.xcconfig"; path = "Target Support Files/Pods-HelloWorld/Pods-HelloWorld.release.xcconfig"; sourceTree = ""; }; 23 | 5DCACB8F33CDC322A6C60F78 /* libPods-HelloWorld.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HelloWorld.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 24 | 761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = HelloWorld/AppDelegate.swift; sourceTree = ""; }; 25 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = HelloWorld/LaunchScreen.storyboard; sourceTree = ""; }; 26 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 27 | /* End PBXFileReference section */ 28 | 29 | /* Begin PBXFrameworksBuildPhase section */ 30 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 31 | isa = PBXFrameworksBuildPhase; 32 | buildActionMask = 2147483647; 33 | files = ( 34 | 0C80B921A6F3F58F76C31292 /* libPods-HelloWorld.a in Frameworks */, 35 | ); 36 | runOnlyForDeploymentPostprocessing = 0; 37 | }; 38 | /* End PBXFrameworksBuildPhase section */ 39 | 40 | /* Begin PBXGroup section */ 41 | 13B07FAE1A68108700A75B9A /* HelloWorld */ = { 42 | isa = PBXGroup; 43 | children = ( 44 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 45 | 761780EC2CA45674006654EE /* AppDelegate.swift */, 46 | 13B07FB61A68108700A75B9A /* Info.plist */, 47 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 48 | 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */, 49 | ); 50 | name = HelloWorld; 51 | sourceTree = ""; 52 | }; 53 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 54 | isa = PBXGroup; 55 | children = ( 56 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 57 | 5DCACB8F33CDC322A6C60F78 /* libPods-HelloWorld.a */, 58 | ); 59 | name = Frameworks; 60 | sourceTree = ""; 61 | }; 62 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 63 | isa = PBXGroup; 64 | children = ( 65 | ); 66 | name = Libraries; 67 | sourceTree = ""; 68 | }; 69 | 83CBB9F61A601CBA00E9B192 = { 70 | isa = PBXGroup; 71 | children = ( 72 | 13B07FAE1A68108700A75B9A /* HelloWorld */, 73 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 74 | 83CBBA001A601CBA00E9B192 /* Products */, 75 | 2D16E6871FA4F8E400B85C8A /* Frameworks */, 76 | BBD78D7AC51CEA395F1C20DB /* Pods */, 77 | ); 78 | indentWidth = 2; 79 | sourceTree = ""; 80 | tabWidth = 2; 81 | usesTabs = 0; 82 | }; 83 | 83CBBA001A601CBA00E9B192 /* Products */ = { 84 | isa = PBXGroup; 85 | children = ( 86 | 13B07F961A680F5B00A75B9A /* HelloWorld.app */, 87 | ); 88 | name = Products; 89 | sourceTree = ""; 90 | }; 91 | BBD78D7AC51CEA395F1C20DB /* Pods */ = { 92 | isa = PBXGroup; 93 | children = ( 94 | 3B4392A12AC88292D35C810B /* Pods-HelloWorld.debug.xcconfig */, 95 | 5709B34CF0A7D63546082F79 /* Pods-HelloWorld.release.xcconfig */, 96 | ); 97 | path = Pods; 98 | sourceTree = ""; 99 | }; 100 | /* End PBXGroup section */ 101 | 102 | /* Begin PBXNativeTarget section */ 103 | 13B07F861A680F5B00A75B9A /* HelloWorld */ = { 104 | isa = PBXNativeTarget; 105 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "HelloWorld" */; 106 | buildPhases = ( 107 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, 108 | 13B07F871A680F5B00A75B9A /* Sources */, 109 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 110 | 13B07F8E1A680F5B00A75B9A /* Resources */, 111 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 112 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, 113 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, 114 | ); 115 | buildRules = ( 116 | ); 117 | dependencies = ( 118 | ); 119 | name = HelloWorld; 120 | productName = HelloWorld; 121 | productReference = 13B07F961A680F5B00A75B9A /* HelloWorld.app */; 122 | productType = "com.apple.product-type.application"; 123 | }; 124 | /* End PBXNativeTarget section */ 125 | 126 | /* Begin PBXProject section */ 127 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 128 | isa = PBXProject; 129 | attributes = { 130 | LastUpgradeCheck = 1210; 131 | TargetAttributes = { 132 | 13B07F861A680F5B00A75B9A = { 133 | LastSwiftMigration = 1120; 134 | }; 135 | }; 136 | }; 137 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "HelloWorld" */; 138 | compatibilityVersion = "Xcode 12.0"; 139 | developmentRegion = en; 140 | hasScannedForEncodings = 0; 141 | knownRegions = ( 142 | en, 143 | Base, 144 | ); 145 | mainGroup = 83CBB9F61A601CBA00E9B192; 146 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 147 | projectDirPath = ""; 148 | projectRoot = ""; 149 | targets = ( 150 | 13B07F861A680F5B00A75B9A /* HelloWorld */, 151 | ); 152 | }; 153 | /* End PBXProject section */ 154 | 155 | /* Begin PBXResourcesBuildPhase section */ 156 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 157 | isa = PBXResourcesBuildPhase; 158 | buildActionMask = 2147483647; 159 | files = ( 160 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 161 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 162 | ); 163 | runOnlyForDeploymentPostprocessing = 0; 164 | }; 165 | /* End PBXResourcesBuildPhase section */ 166 | 167 | /* Begin PBXShellScriptBuildPhase section */ 168 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 169 | isa = PBXShellScriptBuildPhase; 170 | buildActionMask = 2147483647; 171 | files = ( 172 | ); 173 | inputPaths = ( 174 | "$(SRCROOT)/.xcode.env.local", 175 | "$(SRCROOT)/.xcode.env", 176 | ); 177 | name = "Bundle React Native code and images"; 178 | outputPaths = ( 179 | ); 180 | runOnlyForDeploymentPostprocessing = 0; 181 | shellPath = /bin/sh; 182 | shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; 183 | }; 184 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { 185 | isa = PBXShellScriptBuildPhase; 186 | buildActionMask = 2147483647; 187 | files = ( 188 | ); 189 | inputFileListPaths = ( 190 | "${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-frameworks-${CONFIGURATION}-input-files.xcfilelist", 191 | ); 192 | name = "[CP] Embed Pods Frameworks"; 193 | outputFileListPaths = ( 194 | "${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-frameworks-${CONFIGURATION}-output-files.xcfilelist", 195 | ); 196 | runOnlyForDeploymentPostprocessing = 0; 197 | shellPath = /bin/sh; 198 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-frameworks.sh\"\n"; 199 | showEnvVarsInLog = 0; 200 | }; 201 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { 202 | isa = PBXShellScriptBuildPhase; 203 | buildActionMask = 2147483647; 204 | files = ( 205 | ); 206 | inputFileListPaths = ( 207 | ); 208 | inputPaths = ( 209 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 210 | "${PODS_ROOT}/Manifest.lock", 211 | ); 212 | name = "[CP] Check Pods Manifest.lock"; 213 | outputFileListPaths = ( 214 | ); 215 | outputPaths = ( 216 | "$(DERIVED_FILE_DIR)/Pods-HelloWorld-checkManifestLockResult.txt", 217 | ); 218 | runOnlyForDeploymentPostprocessing = 0; 219 | shellPath = /bin/sh; 220 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 221 | showEnvVarsInLog = 0; 222 | }; 223 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { 224 | isa = PBXShellScriptBuildPhase; 225 | buildActionMask = 2147483647; 226 | files = ( 227 | ); 228 | inputFileListPaths = ( 229 | "${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-resources-${CONFIGURATION}-input-files.xcfilelist", 230 | ); 231 | name = "[CP] Copy Pods Resources"; 232 | outputFileListPaths = ( 233 | "${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-resources-${CONFIGURATION}-output-files.xcfilelist", 234 | ); 235 | runOnlyForDeploymentPostprocessing = 0; 236 | shellPath = /bin/sh; 237 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-resources.sh\"\n"; 238 | showEnvVarsInLog = 0; 239 | }; 240 | /* End PBXShellScriptBuildPhase section */ 241 | 242 | /* Begin PBXSourcesBuildPhase section */ 243 | 13B07F871A680F5B00A75B9A /* Sources */ = { 244 | isa = PBXSourcesBuildPhase; 245 | buildActionMask = 2147483647; 246 | files = ( 247 | 761780ED2CA45674006654EE /* AppDelegate.swift in Sources */, 248 | ); 249 | runOnlyForDeploymentPostprocessing = 0; 250 | }; 251 | /* End PBXSourcesBuildPhase section */ 252 | 253 | /* Begin XCBuildConfiguration section */ 254 | 13B07F941A680F5B00A75B9A /* Debug */ = { 255 | isa = XCBuildConfiguration; 256 | baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-HelloWorld.debug.xcconfig */; 257 | buildSettings = { 258 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 259 | CLANG_ENABLE_MODULES = YES; 260 | CURRENT_PROJECT_VERSION = 1; 261 | ENABLE_BITCODE = NO; 262 | INFOPLIST_FILE = HelloWorld/Info.plist; 263 | IPHONEOS_DEPLOYMENT_TARGET = 15.1; 264 | LD_RUNPATH_SEARCH_PATHS = ( 265 | "$(inherited)", 266 | "@executable_path/Frameworks", 267 | ); 268 | MARKETING_VERSION = 1.0; 269 | OTHER_LDFLAGS = ( 270 | "$(inherited)", 271 | "-ObjC", 272 | "-lc++", 273 | ); 274 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 275 | PRODUCT_NAME = HelloWorld; 276 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 277 | SWIFT_VERSION = 5.0; 278 | VERSIONING_SYSTEM = "apple-generic"; 279 | }; 280 | name = Debug; 281 | }; 282 | 13B07F951A680F5B00A75B9A /* Release */ = { 283 | isa = XCBuildConfiguration; 284 | baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-HelloWorld.release.xcconfig */; 285 | buildSettings = { 286 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 287 | CLANG_ENABLE_MODULES = YES; 288 | CURRENT_PROJECT_VERSION = 1; 289 | INFOPLIST_FILE = HelloWorld/Info.plist; 290 | IPHONEOS_DEPLOYMENT_TARGET = 15.1; 291 | LD_RUNPATH_SEARCH_PATHS = ( 292 | "$(inherited)", 293 | "@executable_path/Frameworks", 294 | ); 295 | MARKETING_VERSION = 1.0; 296 | OTHER_LDFLAGS = ( 297 | "$(inherited)", 298 | "-ObjC", 299 | "-lc++", 300 | ); 301 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; 302 | PRODUCT_NAME = HelloWorld; 303 | SWIFT_VERSION = 5.0; 304 | VERSIONING_SYSTEM = "apple-generic"; 305 | }; 306 | name = Release; 307 | }; 308 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 309 | isa = XCBuildConfiguration; 310 | buildSettings = { 311 | ALWAYS_SEARCH_USER_PATHS = NO; 312 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 313 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 314 | CLANG_CXX_LIBRARY = "libc++"; 315 | CLANG_ENABLE_MODULES = YES; 316 | CLANG_ENABLE_OBJC_ARC = YES; 317 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 318 | CLANG_WARN_BOOL_CONVERSION = YES; 319 | CLANG_WARN_COMMA = YES; 320 | CLANG_WARN_CONSTANT_CONVERSION = YES; 321 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 322 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 323 | CLANG_WARN_EMPTY_BODY = YES; 324 | CLANG_WARN_ENUM_CONVERSION = YES; 325 | CLANG_WARN_INFINITE_RECURSION = YES; 326 | CLANG_WARN_INT_CONVERSION = YES; 327 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 328 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 329 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 330 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 331 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 332 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 333 | CLANG_WARN_STRICT_PROTOTYPES = YES; 334 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 335 | CLANG_WARN_UNREACHABLE_CODE = YES; 336 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 337 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 338 | COPY_PHASE_STRIP = NO; 339 | ENABLE_STRICT_OBJC_MSGSEND = YES; 340 | ENABLE_TESTABILITY = YES; 341 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; 342 | GCC_C_LANGUAGE_STANDARD = gnu99; 343 | GCC_DYNAMIC_NO_PIC = NO; 344 | GCC_NO_COMMON_BLOCKS = YES; 345 | GCC_OPTIMIZATION_LEVEL = 0; 346 | GCC_PREPROCESSOR_DEFINITIONS = ( 347 | "DEBUG=1", 348 | "$(inherited)", 349 | ); 350 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 351 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 352 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 353 | GCC_WARN_UNDECLARED_SELECTOR = YES; 354 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 355 | GCC_WARN_UNUSED_FUNCTION = YES; 356 | GCC_WARN_UNUSED_VARIABLE = YES; 357 | IPHONEOS_DEPLOYMENT_TARGET = 15.1; 358 | LD_RUNPATH_SEARCH_PATHS = ( 359 | /usr/lib/swift, 360 | "$(inherited)", 361 | ); 362 | LIBRARY_SEARCH_PATHS = ( 363 | "\"$(SDKROOT)/usr/lib/swift\"", 364 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 365 | "\"$(inherited)\"", 366 | ); 367 | MTL_ENABLE_DEBUG_INFO = YES; 368 | ONLY_ACTIVE_ARCH = YES; 369 | OTHER_CPLUSPLUSFLAGS = ( 370 | "$(OTHER_CFLAGS)", 371 | "-DFOLLY_NO_CONFIG", 372 | "-DFOLLY_MOBILE=1", 373 | "-DFOLLY_USE_LIBCPP=1", 374 | "-DFOLLY_CFG_NO_COROUTINES=1", 375 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 376 | ); 377 | SDKROOT = iphoneos; 378 | }; 379 | name = Debug; 380 | }; 381 | 83CBBA211A601CBA00E9B192 /* Release */ = { 382 | isa = XCBuildConfiguration; 383 | buildSettings = { 384 | ALWAYS_SEARCH_USER_PATHS = NO; 385 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 386 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 387 | CLANG_CXX_LIBRARY = "libc++"; 388 | CLANG_ENABLE_MODULES = YES; 389 | CLANG_ENABLE_OBJC_ARC = YES; 390 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 391 | CLANG_WARN_BOOL_CONVERSION = YES; 392 | CLANG_WARN_COMMA = YES; 393 | CLANG_WARN_CONSTANT_CONVERSION = YES; 394 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 395 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 396 | CLANG_WARN_EMPTY_BODY = YES; 397 | CLANG_WARN_ENUM_CONVERSION = YES; 398 | CLANG_WARN_INFINITE_RECURSION = YES; 399 | CLANG_WARN_INT_CONVERSION = YES; 400 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 401 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 402 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 403 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 404 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 405 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 406 | CLANG_WARN_STRICT_PROTOTYPES = YES; 407 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 408 | CLANG_WARN_UNREACHABLE_CODE = YES; 409 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 410 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 411 | COPY_PHASE_STRIP = YES; 412 | ENABLE_NS_ASSERTIONS = NO; 413 | ENABLE_STRICT_OBJC_MSGSEND = YES; 414 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; 415 | GCC_C_LANGUAGE_STANDARD = gnu99; 416 | GCC_NO_COMMON_BLOCKS = YES; 417 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 418 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 419 | GCC_WARN_UNDECLARED_SELECTOR = YES; 420 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 421 | GCC_WARN_UNUSED_FUNCTION = YES; 422 | GCC_WARN_UNUSED_VARIABLE = YES; 423 | IPHONEOS_DEPLOYMENT_TARGET = 15.1; 424 | LD_RUNPATH_SEARCH_PATHS = ( 425 | /usr/lib/swift, 426 | "$(inherited)", 427 | ); 428 | LIBRARY_SEARCH_PATHS = ( 429 | "\"$(SDKROOT)/usr/lib/swift\"", 430 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 431 | "\"$(inherited)\"", 432 | ); 433 | MTL_ENABLE_DEBUG_INFO = NO; 434 | OTHER_CPLUSPLUSFLAGS = ( 435 | "$(OTHER_CFLAGS)", 436 | "-DFOLLY_NO_CONFIG", 437 | "-DFOLLY_MOBILE=1", 438 | "-DFOLLY_USE_LIBCPP=1", 439 | "-DFOLLY_CFG_NO_COROUTINES=1", 440 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 441 | ); 442 | SDKROOT = iphoneos; 443 | VALIDATE_PRODUCT = YES; 444 | }; 445 | name = Release; 446 | }; 447 | /* End XCBuildConfiguration section */ 448 | 449 | /* Begin XCConfigurationList section */ 450 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "HelloWorld" */ = { 451 | isa = XCConfigurationList; 452 | buildConfigurations = ( 453 | 13B07F941A680F5B00A75B9A /* Debug */, 454 | 13B07F951A680F5B00A75B9A /* Release */, 455 | ); 456 | defaultConfigurationIsVisible = 0; 457 | defaultConfigurationName = Release; 458 | }; 459 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "HelloWorld" */ = { 460 | isa = XCConfigurationList; 461 | buildConfigurations = ( 462 | 83CBBA201A601CBA00E9B192 /* Debug */, 463 | 83CBBA211A601CBA00E9B192 /* Release */, 464 | ); 465 | defaultConfigurationIsVisible = 0; 466 | defaultConfigurationName = Release; 467 | }; 468 | /* End XCConfigurationList section */ 469 | }; 470 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 471 | } 472 | -------------------------------------------------------------------------------- /template/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 53 | 55 | 61 | 62 | 63 | 64 | 70 | 72 | 78 | 79 | 80 | 81 | 83 | 84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /template/ios/HelloWorld/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import React 3 | import React_RCTAppDelegate 4 | import ReactAppDependencyProvider 5 | 6 | @main 7 | class AppDelegate: UIResponder, UIApplicationDelegate { 8 | var window: UIWindow? 9 | 10 | var reactNativeDelegate: ReactNativeDelegate? 11 | var reactNativeFactory: RCTReactNativeFactory? 12 | 13 | func application( 14 | _ application: UIApplication, 15 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil 16 | ) -> Bool { 17 | let delegate = ReactNativeDelegate() 18 | let factory = RCTReactNativeFactory(delegate: delegate) 19 | delegate.dependencyProvider = RCTAppDependencyProvider() 20 | 21 | reactNativeDelegate = delegate 22 | reactNativeFactory = factory 23 | 24 | window = UIWindow(frame: UIScreen.main.bounds) 25 | 26 | factory.startReactNative( 27 | withModuleName: "HelloWorld", 28 | in: window, 29 | launchOptions: launchOptions 30 | ) 31 | 32 | return true 33 | } 34 | } 35 | 36 | class ReactNativeDelegate: RCTDefaultReactNativeFactoryDelegate { 37 | override func sourceURL(for bridge: RCTBridge) -> URL? { 38 | self.bundleURL() 39 | } 40 | 41 | override func bundleURL() -> URL? { 42 | #if DEBUG 43 | RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index") 44 | #else 45 | Bundle.main.url(forResource: "main", withExtension: "jsbundle") 46 | #endif 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /template/ios/HelloWorld/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ios-marketing", 45 | "scale" : "1x", 46 | "size" : "1024x1024" 47 | } 48 | ], 49 | "info" : { 50 | "author" : "xcode", 51 | "version" : 1 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /template/ios/HelloWorld/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /template/ios/HelloWorld/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Hello App Display Name 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | $(MARKETING_VERSION) 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | $(CURRENT_PROJECT_VERSION) 25 | LSRequiresIPhoneOS 26 | 27 | NSAppTransportSecurity 28 | 29 | 30 | NSAllowsArbitraryLoads 31 | 32 | NSAllowsLocalNetworking 33 | 34 | 35 | NSLocationWhenInUseUsageDescription 36 | 37 | UILaunchStoryboardName 38 | LaunchScreen 39 | UIRequiredDeviceCapabilities 40 | 41 | arm64 42 | 43 | UISupportedInterfaceOrientations 44 | 45 | UIInterfaceOrientationPortrait 46 | UIInterfaceOrientationLandscapeLeft 47 | UIInterfaceOrientationLandscapeRight 48 | 49 | UIViewControllerBasedStatusBarAppearance 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /template/ios/HelloWorld/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /template/ios/HelloWorld/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryFileTimestamp 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | C617.1 13 | 14 | 15 | 16 | NSPrivacyAccessedAPIType 17 | NSPrivacyAccessedAPICategoryUserDefaults 18 | NSPrivacyAccessedAPITypeReasons 19 | 20 | CA92.1 21 | 22 | 23 | 24 | NSPrivacyAccessedAPIType 25 | NSPrivacyAccessedAPICategorySystemBootTime 26 | NSPrivacyAccessedAPITypeReasons 27 | 28 | 35F9.1 29 | 30 | 31 | 32 | NSPrivacyCollectedDataTypes 33 | 34 | NSPrivacyTracking 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /template/ios/Podfile: -------------------------------------------------------------------------------- 1 | # Resolve react_native_pods.rb with node to allow for hoisting 2 | require Pod::Executable.execute_command('node', ['-p', 3 | 'require.resolve( 4 | "react-native/scripts/react_native_pods.rb", 5 | {paths: [process.argv[1]]}, 6 | )', __dir__]).strip 7 | 8 | platform :ios, min_ios_version_supported 9 | prepare_react_native_project! 10 | 11 | linkage = ENV['USE_FRAMEWORKS'] 12 | if linkage != nil 13 | Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green 14 | use_frameworks! :linkage => linkage.to_sym 15 | end 16 | 17 | target 'HelloWorld' do 18 | config = use_native_modules! 19 | 20 | use_react_native!( 21 | :path => config[:reactNativePath], 22 | # An absolute path to your application root. 23 | :app_path => "#{Pod::Config.instance.installation_root}/.." 24 | ) 25 | 26 | post_install do |installer| 27 | # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 28 | react_native_post_install( 29 | installer, 30 | config[:reactNativePath], 31 | :mac_catalyst_enabled => false, 32 | # :ccache_enabled => true 33 | ) 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /template/ios/_xcode.env: -------------------------------------------------------------------------------- 1 | # This `.xcode.env` file is versioned and is used to source the environment 2 | # used when running script phases inside Xcode. 3 | # To customize your local environment, you can create an `.xcode.env.local` 4 | # file that is not versioned. 5 | 6 | # NODE_BINARY variable contains the PATH to the node executable. 7 | # 8 | # Customize the NODE_BINARY variable here. 9 | # For example, to use nvm with brew, add the following line 10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use 11 | export NODE_BINARY=$(command -v node) 12 | -------------------------------------------------------------------------------- /template/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /template/metro.config.js: -------------------------------------------------------------------------------- 1 | const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); 2 | 3 | /** 4 | * Metro configuration 5 | * https://reactnative.dev/docs/metro 6 | * 7 | * @type {import('@react-native/metro-config').MetroConfig} 8 | */ 9 | const config = {}; 10 | 11 | module.exports = mergeConfig(getDefaultConfig(__dirname), config); 12 | -------------------------------------------------------------------------------- /template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "HelloWorld", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "android": "react-native run-android", 7 | "ios": "react-native run-ios", 8 | "lint": "eslint .", 9 | "start": "react-native start", 10 | "test": "jest" 11 | }, 12 | "dependencies": { 13 | "react": "19.1.0", 14 | "react-native": "1000.0.0", 15 | "@react-native/new-app-screen": "0.81.0-main" 16 | }, 17 | "devDependencies": { 18 | "@babel/core": "^7.25.2", 19 | "@babel/preset-env": "^7.25.3", 20 | "@babel/runtime": "^7.25.0", 21 | "@react-native-community/cli": "19.0.0", 22 | "@react-native-community/cli-platform-android": "19.0.0", 23 | "@react-native-community/cli-platform-ios": "19.0.0", 24 | "@react-native/babel-preset": "0.81.0-main", 25 | "@react-native/eslint-config": "0.81.0-main", 26 | "@react-native/metro-config": "0.81.0-main", 27 | "@react-native/typescript-config": "0.81.0-main", 28 | "@types/jest": "^29.5.13", 29 | "@types/react": "^19.1.0", 30 | "@types/react-test-renderer": "^19.1.0", 31 | "eslint": "^8.19.0", 32 | "jest": "^29.6.3", 33 | "prettier": "2.8.8", 34 | "react-test-renderer": "19.1.0", 35 | "typescript": "^5.8.3" 36 | }, 37 | "engines": { 38 | "node": ">=18" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /template/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@react-native/typescript-config", 3 | "include": ["**/*.ts", "**/*.tsx"], 4 | "exclude": ["**/node_modules", "**/Pods"] 5 | } 6 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.2.0": 6 | version "2.3.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" 8 | integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.3.5" 11 | "@jridgewell/trace-mapping" "^0.3.24" 12 | 13 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": 14 | version "7.24.7" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" 16 | integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== 17 | dependencies: 18 | "@babel/highlight" "^7.24.7" 19 | picocolors "^1.0.0" 20 | 21 | "@babel/compat-data@^7.25.2": 22 | version "7.25.4" 23 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" 24 | integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== 25 | 26 | "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": 27 | version "7.25.2" 28 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" 29 | integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== 30 | dependencies: 31 | "@ampproject/remapping" "^2.2.0" 32 | "@babel/code-frame" "^7.24.7" 33 | "@babel/generator" "^7.25.0" 34 | "@babel/helper-compilation-targets" "^7.25.2" 35 | "@babel/helper-module-transforms" "^7.25.2" 36 | "@babel/helpers" "^7.25.0" 37 | "@babel/parser" "^7.25.0" 38 | "@babel/template" "^7.25.0" 39 | "@babel/traverse" "^7.25.2" 40 | "@babel/types" "^7.25.2" 41 | convert-source-map "^2.0.0" 42 | debug "^4.1.0" 43 | gensync "^1.0.0-beta.2" 44 | json5 "^2.2.3" 45 | semver "^6.3.1" 46 | 47 | "@babel/generator@^7.25.0", "@babel/generator@^7.25.6", "@babel/generator@^7.7.2": 48 | version "7.25.6" 49 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.6.tgz#0df1ad8cb32fe4d2b01d8bf437f153d19342a87c" 50 | integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw== 51 | dependencies: 52 | "@babel/types" "^7.25.6" 53 | "@jridgewell/gen-mapping" "^0.3.5" 54 | "@jridgewell/trace-mapping" "^0.3.25" 55 | jsesc "^2.5.1" 56 | 57 | "@babel/helper-compilation-targets@^7.25.2": 58 | version "7.25.2" 59 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" 60 | integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== 61 | dependencies: 62 | "@babel/compat-data" "^7.25.2" 63 | "@babel/helper-validator-option" "^7.24.8" 64 | browserslist "^4.23.1" 65 | lru-cache "^5.1.1" 66 | semver "^6.3.1" 67 | 68 | "@babel/helper-module-imports@^7.24.7": 69 | version "7.24.7" 70 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" 71 | integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== 72 | dependencies: 73 | "@babel/traverse" "^7.24.7" 74 | "@babel/types" "^7.24.7" 75 | 76 | "@babel/helper-module-transforms@^7.25.2": 77 | version "7.25.2" 78 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" 79 | integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== 80 | dependencies: 81 | "@babel/helper-module-imports" "^7.24.7" 82 | "@babel/helper-simple-access" "^7.24.7" 83 | "@babel/helper-validator-identifier" "^7.24.7" 84 | "@babel/traverse" "^7.25.2" 85 | 86 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0": 87 | version "7.24.8" 88 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" 89 | integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== 90 | 91 | "@babel/helper-simple-access@^7.24.7": 92 | version "7.24.7" 93 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" 94 | integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== 95 | dependencies: 96 | "@babel/traverse" "^7.24.7" 97 | "@babel/types" "^7.24.7" 98 | 99 | "@babel/helper-string-parser@^7.24.8": 100 | version "7.24.8" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" 102 | integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== 103 | 104 | "@babel/helper-validator-identifier@^7.24.7": 105 | version "7.24.7" 106 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" 107 | integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== 108 | 109 | "@babel/helper-validator-option@^7.24.8": 110 | version "7.24.8" 111 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" 112 | integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== 113 | 114 | "@babel/helpers@^7.25.0": 115 | version "7.25.6" 116 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.6.tgz#57ee60141829ba2e102f30711ffe3afab357cc60" 117 | integrity sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q== 118 | dependencies: 119 | "@babel/template" "^7.25.0" 120 | "@babel/types" "^7.25.6" 121 | 122 | "@babel/highlight@^7.24.7": 123 | version "7.24.7" 124 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" 125 | integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== 126 | dependencies: 127 | "@babel/helper-validator-identifier" "^7.24.7" 128 | chalk "^2.4.2" 129 | js-tokens "^4.0.0" 130 | picocolors "^1.0.0" 131 | 132 | "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.6": 133 | version "7.25.6" 134 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" 135 | integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== 136 | dependencies: 137 | "@babel/types" "^7.25.6" 138 | 139 | "@babel/plugin-syntax-async-generators@^7.8.4": 140 | version "7.8.4" 141 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" 142 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== 143 | dependencies: 144 | "@babel/helper-plugin-utils" "^7.8.0" 145 | 146 | "@babel/plugin-syntax-bigint@^7.8.3": 147 | version "7.8.3" 148 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" 149 | integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== 150 | dependencies: 151 | "@babel/helper-plugin-utils" "^7.8.0" 152 | 153 | "@babel/plugin-syntax-class-properties@^7.12.13": 154 | version "7.12.13" 155 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" 156 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== 157 | dependencies: 158 | "@babel/helper-plugin-utils" "^7.12.13" 159 | 160 | "@babel/plugin-syntax-class-static-block@^7.14.5": 161 | version "7.14.5" 162 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" 163 | integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== 164 | dependencies: 165 | "@babel/helper-plugin-utils" "^7.14.5" 166 | 167 | "@babel/plugin-syntax-import-attributes@^7.24.7": 168 | version "7.25.6" 169 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz#6d4c78f042db0e82fd6436cd65fec5dc78ad2bde" 170 | integrity sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ== 171 | dependencies: 172 | "@babel/helper-plugin-utils" "^7.24.8" 173 | 174 | "@babel/plugin-syntax-import-meta@^7.10.4": 175 | version "7.10.4" 176 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" 177 | integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== 178 | dependencies: 179 | "@babel/helper-plugin-utils" "^7.10.4" 180 | 181 | "@babel/plugin-syntax-json-strings@^7.8.3": 182 | version "7.8.3" 183 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" 184 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== 185 | dependencies: 186 | "@babel/helper-plugin-utils" "^7.8.0" 187 | 188 | "@babel/plugin-syntax-jsx@^7.7.2": 189 | version "7.24.7" 190 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" 191 | integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== 192 | dependencies: 193 | "@babel/helper-plugin-utils" "^7.24.7" 194 | 195 | "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": 196 | version "7.10.4" 197 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" 198 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== 199 | dependencies: 200 | "@babel/helper-plugin-utils" "^7.10.4" 201 | 202 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 203 | version "7.8.3" 204 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" 205 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== 206 | dependencies: 207 | "@babel/helper-plugin-utils" "^7.8.0" 208 | 209 | "@babel/plugin-syntax-numeric-separator@^7.10.4": 210 | version "7.10.4" 211 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" 212 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== 213 | dependencies: 214 | "@babel/helper-plugin-utils" "^7.10.4" 215 | 216 | "@babel/plugin-syntax-object-rest-spread@^7.8.3": 217 | version "7.8.3" 218 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" 219 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== 220 | dependencies: 221 | "@babel/helper-plugin-utils" "^7.8.0" 222 | 223 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 224 | version "7.8.3" 225 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" 226 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== 227 | dependencies: 228 | "@babel/helper-plugin-utils" "^7.8.0" 229 | 230 | "@babel/plugin-syntax-optional-chaining@^7.8.3": 231 | version "7.8.3" 232 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" 233 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== 234 | dependencies: 235 | "@babel/helper-plugin-utils" "^7.8.0" 236 | 237 | "@babel/plugin-syntax-private-property-in-object@^7.14.5": 238 | version "7.14.5" 239 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" 240 | integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== 241 | dependencies: 242 | "@babel/helper-plugin-utils" "^7.14.5" 243 | 244 | "@babel/plugin-syntax-top-level-await@^7.14.5": 245 | version "7.14.5" 246 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" 247 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== 248 | dependencies: 249 | "@babel/helper-plugin-utils" "^7.14.5" 250 | 251 | "@babel/plugin-syntax-typescript@^7.7.2": 252 | version "7.25.4" 253 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" 254 | integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== 255 | dependencies: 256 | "@babel/helper-plugin-utils" "^7.24.8" 257 | 258 | "@babel/template@^7.25.0", "@babel/template@^7.3.3": 259 | version "7.25.0" 260 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" 261 | integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== 262 | dependencies: 263 | "@babel/code-frame" "^7.24.7" 264 | "@babel/parser" "^7.25.0" 265 | "@babel/types" "^7.25.0" 266 | 267 | "@babel/traverse@^7.24.7", "@babel/traverse@^7.25.2": 268 | version "7.25.6" 269 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41" 270 | integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ== 271 | dependencies: 272 | "@babel/code-frame" "^7.24.7" 273 | "@babel/generator" "^7.25.6" 274 | "@babel/parser" "^7.25.6" 275 | "@babel/template" "^7.25.0" 276 | "@babel/types" "^7.25.6" 277 | debug "^4.3.1" 278 | globals "^11.1.0" 279 | 280 | "@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.6", "@babel/types@^7.3.3": 281 | version "7.25.6" 282 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" 283 | integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== 284 | dependencies: 285 | "@babel/helper-string-parser" "^7.24.8" 286 | "@babel/helper-validator-identifier" "^7.24.7" 287 | to-fast-properties "^2.0.0" 288 | 289 | "@bcoe/v8-coverage@^0.2.3": 290 | version "0.2.3" 291 | resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" 292 | integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== 293 | 294 | "@istanbuljs/load-nyc-config@^1.0.0": 295 | version "1.1.0" 296 | resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" 297 | integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== 298 | dependencies: 299 | camelcase "^5.3.1" 300 | find-up "^4.1.0" 301 | get-package-type "^0.1.0" 302 | js-yaml "^3.13.1" 303 | resolve-from "^5.0.0" 304 | 305 | "@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": 306 | version "0.1.3" 307 | resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" 308 | integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== 309 | 310 | "@jest/console@^29.7.0": 311 | version "29.7.0" 312 | resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" 313 | integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== 314 | dependencies: 315 | "@jest/types" "^29.6.3" 316 | "@types/node" "*" 317 | chalk "^4.0.0" 318 | jest-message-util "^29.7.0" 319 | jest-util "^29.7.0" 320 | slash "^3.0.0" 321 | 322 | "@jest/core@^29.7.0": 323 | version "29.7.0" 324 | resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" 325 | integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== 326 | dependencies: 327 | "@jest/console" "^29.7.0" 328 | "@jest/reporters" "^29.7.0" 329 | "@jest/test-result" "^29.7.0" 330 | "@jest/transform" "^29.7.0" 331 | "@jest/types" "^29.6.3" 332 | "@types/node" "*" 333 | ansi-escapes "^4.2.1" 334 | chalk "^4.0.0" 335 | ci-info "^3.2.0" 336 | exit "^0.1.2" 337 | graceful-fs "^4.2.9" 338 | jest-changed-files "^29.7.0" 339 | jest-config "^29.7.0" 340 | jest-haste-map "^29.7.0" 341 | jest-message-util "^29.7.0" 342 | jest-regex-util "^29.6.3" 343 | jest-resolve "^29.7.0" 344 | jest-resolve-dependencies "^29.7.0" 345 | jest-runner "^29.7.0" 346 | jest-runtime "^29.7.0" 347 | jest-snapshot "^29.7.0" 348 | jest-util "^29.7.0" 349 | jest-validate "^29.7.0" 350 | jest-watcher "^29.7.0" 351 | micromatch "^4.0.4" 352 | pretty-format "^29.7.0" 353 | slash "^3.0.0" 354 | strip-ansi "^6.0.0" 355 | 356 | "@jest/environment@^29.7.0": 357 | version "29.7.0" 358 | resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" 359 | integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== 360 | dependencies: 361 | "@jest/fake-timers" "^29.7.0" 362 | "@jest/types" "^29.6.3" 363 | "@types/node" "*" 364 | jest-mock "^29.7.0" 365 | 366 | "@jest/expect-utils@^29.7.0": 367 | version "29.7.0" 368 | resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" 369 | integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== 370 | dependencies: 371 | jest-get-type "^29.6.3" 372 | 373 | "@jest/expect@^29.7.0": 374 | version "29.7.0" 375 | resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" 376 | integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== 377 | dependencies: 378 | expect "^29.7.0" 379 | jest-snapshot "^29.7.0" 380 | 381 | "@jest/fake-timers@^29.7.0": 382 | version "29.7.0" 383 | resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" 384 | integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== 385 | dependencies: 386 | "@jest/types" "^29.6.3" 387 | "@sinonjs/fake-timers" "^10.0.2" 388 | "@types/node" "*" 389 | jest-message-util "^29.7.0" 390 | jest-mock "^29.7.0" 391 | jest-util "^29.7.0" 392 | 393 | "@jest/globals@^29.7.0": 394 | version "29.7.0" 395 | resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" 396 | integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== 397 | dependencies: 398 | "@jest/environment" "^29.7.0" 399 | "@jest/expect" "^29.7.0" 400 | "@jest/types" "^29.6.3" 401 | jest-mock "^29.7.0" 402 | 403 | "@jest/reporters@^29.7.0": 404 | version "29.7.0" 405 | resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" 406 | integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== 407 | dependencies: 408 | "@bcoe/v8-coverage" "^0.2.3" 409 | "@jest/console" "^29.7.0" 410 | "@jest/test-result" "^29.7.0" 411 | "@jest/transform" "^29.7.0" 412 | "@jest/types" "^29.6.3" 413 | "@jridgewell/trace-mapping" "^0.3.18" 414 | "@types/node" "*" 415 | chalk "^4.0.0" 416 | collect-v8-coverage "^1.0.0" 417 | exit "^0.1.2" 418 | glob "^7.1.3" 419 | graceful-fs "^4.2.9" 420 | istanbul-lib-coverage "^3.0.0" 421 | istanbul-lib-instrument "^6.0.0" 422 | istanbul-lib-report "^3.0.0" 423 | istanbul-lib-source-maps "^4.0.0" 424 | istanbul-reports "^3.1.3" 425 | jest-message-util "^29.7.0" 426 | jest-util "^29.7.0" 427 | jest-worker "^29.7.0" 428 | slash "^3.0.0" 429 | string-length "^4.0.1" 430 | strip-ansi "^6.0.0" 431 | v8-to-istanbul "^9.0.1" 432 | 433 | "@jest/schemas@^29.6.3": 434 | version "29.6.3" 435 | resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" 436 | integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== 437 | dependencies: 438 | "@sinclair/typebox" "^0.27.8" 439 | 440 | "@jest/source-map@^29.6.3": 441 | version "29.6.3" 442 | resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" 443 | integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== 444 | dependencies: 445 | "@jridgewell/trace-mapping" "^0.3.18" 446 | callsites "^3.0.0" 447 | graceful-fs "^4.2.9" 448 | 449 | "@jest/test-result@^29.7.0": 450 | version "29.7.0" 451 | resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" 452 | integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== 453 | dependencies: 454 | "@jest/console" "^29.7.0" 455 | "@jest/types" "^29.6.3" 456 | "@types/istanbul-lib-coverage" "^2.0.0" 457 | collect-v8-coverage "^1.0.0" 458 | 459 | "@jest/test-sequencer@^29.7.0": 460 | version "29.7.0" 461 | resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" 462 | integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== 463 | dependencies: 464 | "@jest/test-result" "^29.7.0" 465 | graceful-fs "^4.2.9" 466 | jest-haste-map "^29.7.0" 467 | slash "^3.0.0" 468 | 469 | "@jest/transform@^29.7.0": 470 | version "29.7.0" 471 | resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" 472 | integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== 473 | dependencies: 474 | "@babel/core" "^7.11.6" 475 | "@jest/types" "^29.6.3" 476 | "@jridgewell/trace-mapping" "^0.3.18" 477 | babel-plugin-istanbul "^6.1.1" 478 | chalk "^4.0.0" 479 | convert-source-map "^2.0.0" 480 | fast-json-stable-stringify "^2.1.0" 481 | graceful-fs "^4.2.9" 482 | jest-haste-map "^29.7.0" 483 | jest-regex-util "^29.6.3" 484 | jest-util "^29.7.0" 485 | micromatch "^4.0.4" 486 | pirates "^4.0.4" 487 | slash "^3.0.0" 488 | write-file-atomic "^4.0.2" 489 | 490 | "@jest/types@^29.6.3": 491 | version "29.6.3" 492 | resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" 493 | integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== 494 | dependencies: 495 | "@jest/schemas" "^29.6.3" 496 | "@types/istanbul-lib-coverage" "^2.0.0" 497 | "@types/istanbul-reports" "^3.0.0" 498 | "@types/node" "*" 499 | "@types/yargs" "^17.0.8" 500 | chalk "^4.0.0" 501 | 502 | "@jridgewell/gen-mapping@^0.3.5": 503 | version "0.3.5" 504 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" 505 | integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== 506 | dependencies: 507 | "@jridgewell/set-array" "^1.2.1" 508 | "@jridgewell/sourcemap-codec" "^1.4.10" 509 | "@jridgewell/trace-mapping" "^0.3.24" 510 | 511 | "@jridgewell/resolve-uri@^3.1.0": 512 | version "3.1.2" 513 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" 514 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 515 | 516 | "@jridgewell/set-array@^1.2.1": 517 | version "1.2.1" 518 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" 519 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 520 | 521 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": 522 | version "1.5.0" 523 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" 524 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 525 | 526 | "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": 527 | version "0.3.25" 528 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" 529 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 530 | dependencies: 531 | "@jridgewell/resolve-uri" "^3.1.0" 532 | "@jridgewell/sourcemap-codec" "^1.4.14" 533 | 534 | "@sinclair/typebox@^0.27.8": 535 | version "0.27.8" 536 | resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" 537 | integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== 538 | 539 | "@sinonjs/commons@^3.0.0": 540 | version "3.0.1" 541 | resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" 542 | integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== 543 | dependencies: 544 | type-detect "4.0.8" 545 | 546 | "@sinonjs/fake-timers@^10.0.2": 547 | version "10.3.0" 548 | resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" 549 | integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== 550 | dependencies: 551 | "@sinonjs/commons" "^3.0.0" 552 | 553 | "@types/babel__core@^7.1.14": 554 | version "7.20.5" 555 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" 556 | integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== 557 | dependencies: 558 | "@babel/parser" "^7.20.7" 559 | "@babel/types" "^7.20.7" 560 | "@types/babel__generator" "*" 561 | "@types/babel__template" "*" 562 | "@types/babel__traverse" "*" 563 | 564 | "@types/babel__generator@*": 565 | version "7.6.8" 566 | resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" 567 | integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== 568 | dependencies: 569 | "@babel/types" "^7.0.0" 570 | 571 | "@types/babel__template@*": 572 | version "7.4.4" 573 | resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" 574 | integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== 575 | dependencies: 576 | "@babel/parser" "^7.1.0" 577 | "@babel/types" "^7.0.0" 578 | 579 | "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": 580 | version "7.20.6" 581 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" 582 | integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== 583 | dependencies: 584 | "@babel/types" "^7.20.7" 585 | 586 | "@types/graceful-fs@^4.1.3": 587 | version "4.1.9" 588 | resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" 589 | integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== 590 | dependencies: 591 | "@types/node" "*" 592 | 593 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": 594 | version "2.0.6" 595 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" 596 | integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== 597 | 598 | "@types/istanbul-lib-report@*": 599 | version "3.0.3" 600 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" 601 | integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== 602 | dependencies: 603 | "@types/istanbul-lib-coverage" "*" 604 | 605 | "@types/istanbul-reports@^3.0.0": 606 | version "3.0.4" 607 | resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" 608 | integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== 609 | dependencies: 610 | "@types/istanbul-lib-report" "*" 611 | 612 | "@types/node@*": 613 | version "22.5.4" 614 | resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.4.tgz#83f7d1f65bc2ed223bdbf57c7884f1d5a4fa84e8" 615 | integrity sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg== 616 | dependencies: 617 | undici-types "~6.19.2" 618 | 619 | "@types/stack-utils@^2.0.0": 620 | version "2.0.3" 621 | resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" 622 | integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== 623 | 624 | "@types/yargs-parser@*": 625 | version "21.0.3" 626 | resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" 627 | integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== 628 | 629 | "@types/yargs@^17.0.8": 630 | version "17.0.33" 631 | resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" 632 | integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== 633 | dependencies: 634 | "@types/yargs-parser" "*" 635 | 636 | ansi-escapes@^4.2.1: 637 | version "4.3.2" 638 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" 639 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== 640 | dependencies: 641 | type-fest "^0.21.3" 642 | 643 | ansi-regex@^5.0.1: 644 | version "5.0.1" 645 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 646 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 647 | 648 | ansi-styles@^3.2.1: 649 | version "3.2.1" 650 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 651 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 652 | dependencies: 653 | color-convert "^1.9.0" 654 | 655 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 656 | version "4.3.0" 657 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 658 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 659 | dependencies: 660 | color-convert "^2.0.1" 661 | 662 | ansi-styles@^5.0.0: 663 | version "5.2.0" 664 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" 665 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== 666 | 667 | anymatch@^3.0.3: 668 | version "3.1.3" 669 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 670 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 671 | dependencies: 672 | normalize-path "^3.0.0" 673 | picomatch "^2.0.4" 674 | 675 | argparse@^1.0.7: 676 | version "1.0.10" 677 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 678 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 679 | dependencies: 680 | sprintf-js "~1.0.2" 681 | 682 | babel-jest@^29.7.0: 683 | version "29.7.0" 684 | resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" 685 | integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== 686 | dependencies: 687 | "@jest/transform" "^29.7.0" 688 | "@types/babel__core" "^7.1.14" 689 | babel-plugin-istanbul "^6.1.1" 690 | babel-preset-jest "^29.6.3" 691 | chalk "^4.0.0" 692 | graceful-fs "^4.2.9" 693 | slash "^3.0.0" 694 | 695 | babel-plugin-istanbul@^6.1.1: 696 | version "6.1.1" 697 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" 698 | integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== 699 | dependencies: 700 | "@babel/helper-plugin-utils" "^7.0.0" 701 | "@istanbuljs/load-nyc-config" "^1.0.0" 702 | "@istanbuljs/schema" "^0.1.2" 703 | istanbul-lib-instrument "^5.0.4" 704 | test-exclude "^6.0.0" 705 | 706 | babel-plugin-jest-hoist@^29.6.3: 707 | version "29.6.3" 708 | resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" 709 | integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== 710 | dependencies: 711 | "@babel/template" "^7.3.3" 712 | "@babel/types" "^7.3.3" 713 | "@types/babel__core" "^7.1.14" 714 | "@types/babel__traverse" "^7.0.6" 715 | 716 | babel-preset-current-node-syntax@^1.0.0: 717 | version "1.1.0" 718 | resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" 719 | integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== 720 | dependencies: 721 | "@babel/plugin-syntax-async-generators" "^7.8.4" 722 | "@babel/plugin-syntax-bigint" "^7.8.3" 723 | "@babel/plugin-syntax-class-properties" "^7.12.13" 724 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 725 | "@babel/plugin-syntax-import-attributes" "^7.24.7" 726 | "@babel/plugin-syntax-import-meta" "^7.10.4" 727 | "@babel/plugin-syntax-json-strings" "^7.8.3" 728 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 729 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 730 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 731 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 732 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 733 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 734 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 735 | "@babel/plugin-syntax-top-level-await" "^7.14.5" 736 | 737 | babel-preset-jest@^29.6.3: 738 | version "29.6.3" 739 | resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" 740 | integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== 741 | dependencies: 742 | babel-plugin-jest-hoist "^29.6.3" 743 | babel-preset-current-node-syntax "^1.0.0" 744 | 745 | balanced-match@^1.0.0: 746 | version "1.0.2" 747 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 748 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 749 | 750 | brace-expansion@^1.1.7: 751 | version "1.1.11" 752 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 753 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 754 | dependencies: 755 | balanced-match "^1.0.0" 756 | concat-map "0.0.1" 757 | 758 | braces@^3.0.3: 759 | version "3.0.3" 760 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" 761 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 762 | dependencies: 763 | fill-range "^7.1.1" 764 | 765 | browserslist@^4.23.1: 766 | version "4.23.3" 767 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" 768 | integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== 769 | dependencies: 770 | caniuse-lite "^1.0.30001646" 771 | electron-to-chromium "^1.5.4" 772 | node-releases "^2.0.18" 773 | update-browserslist-db "^1.1.0" 774 | 775 | bser@2.1.1: 776 | version "2.1.1" 777 | resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" 778 | integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== 779 | dependencies: 780 | node-int64 "^0.4.0" 781 | 782 | buffer-from@^1.0.0: 783 | version "1.1.2" 784 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 785 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 786 | 787 | callsites@^3.0.0: 788 | version "3.1.0" 789 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 790 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 791 | 792 | camelcase@^5.3.1: 793 | version "5.3.1" 794 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 795 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 796 | 797 | camelcase@^6.2.0: 798 | version "6.3.0" 799 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 800 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 801 | 802 | caniuse-lite@^1.0.30001646: 803 | version "1.0.30001658" 804 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001658.tgz#b5f7be8ac748a049ab06aa1cf7a1408d83f074ec" 805 | integrity sha512-N2YVqWbJELVdrnsW5p+apoQyYt51aBMSsBZki1XZEfeBCexcM/sf4xiAHcXQBkuOwJBXtWF7aW1sYX6tKebPHw== 806 | 807 | chalk@^2.4.2: 808 | version "2.4.2" 809 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 810 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 811 | dependencies: 812 | ansi-styles "^3.2.1" 813 | escape-string-regexp "^1.0.5" 814 | supports-color "^5.3.0" 815 | 816 | chalk@^4.0.0: 817 | version "4.1.2" 818 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 819 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 820 | dependencies: 821 | ansi-styles "^4.1.0" 822 | supports-color "^7.1.0" 823 | 824 | char-regex@^1.0.2: 825 | version "1.0.2" 826 | resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" 827 | integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== 828 | 829 | ci-info@^3.2.0: 830 | version "3.9.0" 831 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" 832 | integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== 833 | 834 | cjs-module-lexer@^1.0.0: 835 | version "1.4.0" 836 | resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz#677de7ed7efff67cc40c9bf1897fea79d41b5215" 837 | integrity sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g== 838 | 839 | cliui@^8.0.1: 840 | version "8.0.1" 841 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" 842 | integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== 843 | dependencies: 844 | string-width "^4.2.0" 845 | strip-ansi "^6.0.1" 846 | wrap-ansi "^7.0.0" 847 | 848 | co@^4.6.0: 849 | version "4.6.0" 850 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 851 | integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== 852 | 853 | collect-v8-coverage@^1.0.0: 854 | version "1.0.2" 855 | resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" 856 | integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== 857 | 858 | color-convert@^1.9.0: 859 | version "1.9.3" 860 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 861 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 862 | dependencies: 863 | color-name "1.1.3" 864 | 865 | color-convert@^2.0.1: 866 | version "2.0.1" 867 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 868 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 869 | dependencies: 870 | color-name "~1.1.4" 871 | 872 | color-name@1.1.3: 873 | version "1.1.3" 874 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 875 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 876 | 877 | color-name@~1.1.4: 878 | version "1.1.4" 879 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 880 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 881 | 882 | concat-map@0.0.1: 883 | version "0.0.1" 884 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 885 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 886 | 887 | convert-source-map@^2.0.0: 888 | version "2.0.0" 889 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" 890 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== 891 | 892 | create-jest@^29.7.0: 893 | version "29.7.0" 894 | resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" 895 | integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== 896 | dependencies: 897 | "@jest/types" "^29.6.3" 898 | chalk "^4.0.0" 899 | exit "^0.1.2" 900 | graceful-fs "^4.2.9" 901 | jest-config "^29.7.0" 902 | jest-util "^29.7.0" 903 | prompts "^2.0.1" 904 | 905 | cross-spawn@^7.0.3: 906 | version "7.0.3" 907 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 908 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 909 | dependencies: 910 | path-key "^3.1.0" 911 | shebang-command "^2.0.0" 912 | which "^2.0.1" 913 | 914 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: 915 | version "4.3.7" 916 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" 917 | integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== 918 | dependencies: 919 | ms "^2.1.3" 920 | 921 | dedent@^1.0.0: 922 | version "1.5.3" 923 | resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" 924 | integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== 925 | 926 | deepmerge@^4.2.2: 927 | version "4.3.1" 928 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" 929 | integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== 930 | 931 | detect-newline@^3.0.0: 932 | version "3.1.0" 933 | resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" 934 | integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== 935 | 936 | diff-sequences@^29.6.3: 937 | version "29.6.3" 938 | resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" 939 | integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== 940 | 941 | electron-to-chromium@^1.5.4: 942 | version "1.5.18" 943 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.18.tgz#5fe62b9d21efbcfa26571066502d94f3ed97e495" 944 | integrity sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ== 945 | 946 | emittery@^0.13.1: 947 | version "0.13.1" 948 | resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" 949 | integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== 950 | 951 | emoji-regex@^8.0.0: 952 | version "8.0.0" 953 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 954 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 955 | 956 | error-ex@^1.3.1: 957 | version "1.3.2" 958 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 959 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 960 | dependencies: 961 | is-arrayish "^0.2.1" 962 | 963 | escalade@^3.1.1, escalade@^3.1.2: 964 | version "3.2.0" 965 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" 966 | integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== 967 | 968 | escape-string-regexp@^1.0.5: 969 | version "1.0.5" 970 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 971 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 972 | 973 | escape-string-regexp@^2.0.0: 974 | version "2.0.0" 975 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" 976 | integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== 977 | 978 | esprima@^4.0.0: 979 | version "4.0.1" 980 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 981 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 982 | 983 | execa@^5.0.0: 984 | version "5.1.1" 985 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" 986 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 987 | dependencies: 988 | cross-spawn "^7.0.3" 989 | get-stream "^6.0.0" 990 | human-signals "^2.1.0" 991 | is-stream "^2.0.0" 992 | merge-stream "^2.0.0" 993 | npm-run-path "^4.0.1" 994 | onetime "^5.1.2" 995 | signal-exit "^3.0.3" 996 | strip-final-newline "^2.0.0" 997 | 998 | exit@^0.1.2: 999 | version "0.1.2" 1000 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" 1001 | integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== 1002 | 1003 | expect@^29.7.0: 1004 | version "29.7.0" 1005 | resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" 1006 | integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== 1007 | dependencies: 1008 | "@jest/expect-utils" "^29.7.0" 1009 | jest-get-type "^29.6.3" 1010 | jest-matcher-utils "^29.7.0" 1011 | jest-message-util "^29.7.0" 1012 | jest-util "^29.7.0" 1013 | 1014 | fast-json-stable-stringify@^2.1.0: 1015 | version "2.1.0" 1016 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1017 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1018 | 1019 | fb-watchman@^2.0.0: 1020 | version "2.0.2" 1021 | resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" 1022 | integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== 1023 | dependencies: 1024 | bser "2.1.1" 1025 | 1026 | fill-range@^7.1.1: 1027 | version "7.1.1" 1028 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" 1029 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 1030 | dependencies: 1031 | to-regex-range "^5.0.1" 1032 | 1033 | find-up@^4.0.0, find-up@^4.1.0: 1034 | version "4.1.0" 1035 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 1036 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1037 | dependencies: 1038 | locate-path "^5.0.0" 1039 | path-exists "^4.0.0" 1040 | 1041 | fs.realpath@^1.0.0: 1042 | version "1.0.0" 1043 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1044 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 1045 | 1046 | fsevents@^2.3.2: 1047 | version "2.3.3" 1048 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 1049 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 1050 | 1051 | function-bind@^1.1.2: 1052 | version "1.1.2" 1053 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 1054 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 1055 | 1056 | gensync@^1.0.0-beta.2: 1057 | version "1.0.0-beta.2" 1058 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1059 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1060 | 1061 | get-caller-file@^2.0.5: 1062 | version "2.0.5" 1063 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 1064 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 1065 | 1066 | get-package-type@^0.1.0: 1067 | version "0.1.0" 1068 | resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" 1069 | integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== 1070 | 1071 | get-stream@^6.0.0: 1072 | version "6.0.1" 1073 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" 1074 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 1075 | 1076 | glob@^7.1.3, glob@^7.1.4: 1077 | version "7.2.3" 1078 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1079 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1080 | dependencies: 1081 | fs.realpath "^1.0.0" 1082 | inflight "^1.0.4" 1083 | inherits "2" 1084 | minimatch "^3.1.1" 1085 | once "^1.3.0" 1086 | path-is-absolute "^1.0.0" 1087 | 1088 | globals@^11.1.0: 1089 | version "11.12.0" 1090 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1091 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1092 | 1093 | graceful-fs@^4.2.9: 1094 | version "4.2.11" 1095 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 1096 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 1097 | 1098 | has-flag@^3.0.0: 1099 | version "3.0.0" 1100 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1101 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 1102 | 1103 | has-flag@^4.0.0: 1104 | version "4.0.0" 1105 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1106 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1107 | 1108 | hasown@^2.0.2: 1109 | version "2.0.2" 1110 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" 1111 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 1112 | dependencies: 1113 | function-bind "^1.1.2" 1114 | 1115 | html-escaper@^2.0.0: 1116 | version "2.0.2" 1117 | resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" 1118 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 1119 | 1120 | human-signals@^2.1.0: 1121 | version "2.1.0" 1122 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" 1123 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 1124 | 1125 | import-local@^3.0.2: 1126 | version "3.2.0" 1127 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" 1128 | integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== 1129 | dependencies: 1130 | pkg-dir "^4.2.0" 1131 | resolve-cwd "^3.0.0" 1132 | 1133 | imurmurhash@^0.1.4: 1134 | version "0.1.4" 1135 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1136 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 1137 | 1138 | inflight@^1.0.4: 1139 | version "1.0.6" 1140 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1141 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1142 | dependencies: 1143 | once "^1.3.0" 1144 | wrappy "1" 1145 | 1146 | inherits@2: 1147 | version "2.0.4" 1148 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1149 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1150 | 1151 | is-arrayish@^0.2.1: 1152 | version "0.2.1" 1153 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1154 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 1155 | 1156 | is-core-module@^2.13.0: 1157 | version "2.15.1" 1158 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" 1159 | integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== 1160 | dependencies: 1161 | hasown "^2.0.2" 1162 | 1163 | is-fullwidth-code-point@^3.0.0: 1164 | version "3.0.0" 1165 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1166 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1167 | 1168 | is-generator-fn@^2.0.0: 1169 | version "2.1.0" 1170 | resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" 1171 | integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== 1172 | 1173 | is-number@^7.0.0: 1174 | version "7.0.0" 1175 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1176 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1177 | 1178 | is-stream@^2.0.0: 1179 | version "2.0.1" 1180 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" 1181 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 1182 | 1183 | isexe@^2.0.0: 1184 | version "2.0.0" 1185 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1186 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1187 | 1188 | istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: 1189 | version "3.2.2" 1190 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" 1191 | integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== 1192 | 1193 | istanbul-lib-instrument@^5.0.4: 1194 | version "5.2.1" 1195 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" 1196 | integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== 1197 | dependencies: 1198 | "@babel/core" "^7.12.3" 1199 | "@babel/parser" "^7.14.7" 1200 | "@istanbuljs/schema" "^0.1.2" 1201 | istanbul-lib-coverage "^3.2.0" 1202 | semver "^6.3.0" 1203 | 1204 | istanbul-lib-instrument@^6.0.0: 1205 | version "6.0.3" 1206 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" 1207 | integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== 1208 | dependencies: 1209 | "@babel/core" "^7.23.9" 1210 | "@babel/parser" "^7.23.9" 1211 | "@istanbuljs/schema" "^0.1.3" 1212 | istanbul-lib-coverage "^3.2.0" 1213 | semver "^7.5.4" 1214 | 1215 | istanbul-lib-report@^3.0.0: 1216 | version "3.0.1" 1217 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" 1218 | integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== 1219 | dependencies: 1220 | istanbul-lib-coverage "^3.0.0" 1221 | make-dir "^4.0.0" 1222 | supports-color "^7.1.0" 1223 | 1224 | istanbul-lib-source-maps@^4.0.0: 1225 | version "4.0.1" 1226 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" 1227 | integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== 1228 | dependencies: 1229 | debug "^4.1.1" 1230 | istanbul-lib-coverage "^3.0.0" 1231 | source-map "^0.6.1" 1232 | 1233 | istanbul-reports@^3.1.3: 1234 | version "3.1.7" 1235 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" 1236 | integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== 1237 | dependencies: 1238 | html-escaper "^2.0.0" 1239 | istanbul-lib-report "^3.0.0" 1240 | 1241 | jest-changed-files@^29.7.0: 1242 | version "29.7.0" 1243 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" 1244 | integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== 1245 | dependencies: 1246 | execa "^5.0.0" 1247 | jest-util "^29.7.0" 1248 | p-limit "^3.1.0" 1249 | 1250 | jest-circus@^29.7.0: 1251 | version "29.7.0" 1252 | resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" 1253 | integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== 1254 | dependencies: 1255 | "@jest/environment" "^29.7.0" 1256 | "@jest/expect" "^29.7.0" 1257 | "@jest/test-result" "^29.7.0" 1258 | "@jest/types" "^29.6.3" 1259 | "@types/node" "*" 1260 | chalk "^4.0.0" 1261 | co "^4.6.0" 1262 | dedent "^1.0.0" 1263 | is-generator-fn "^2.0.0" 1264 | jest-each "^29.7.0" 1265 | jest-matcher-utils "^29.7.0" 1266 | jest-message-util "^29.7.0" 1267 | jest-runtime "^29.7.0" 1268 | jest-snapshot "^29.7.0" 1269 | jest-util "^29.7.0" 1270 | p-limit "^3.1.0" 1271 | pretty-format "^29.7.0" 1272 | pure-rand "^6.0.0" 1273 | slash "^3.0.0" 1274 | stack-utils "^2.0.3" 1275 | 1276 | jest-cli@^29.7.0: 1277 | version "29.7.0" 1278 | resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" 1279 | integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== 1280 | dependencies: 1281 | "@jest/core" "^29.7.0" 1282 | "@jest/test-result" "^29.7.0" 1283 | "@jest/types" "^29.6.3" 1284 | chalk "^4.0.0" 1285 | create-jest "^29.7.0" 1286 | exit "^0.1.2" 1287 | import-local "^3.0.2" 1288 | jest-config "^29.7.0" 1289 | jest-util "^29.7.0" 1290 | jest-validate "^29.7.0" 1291 | yargs "^17.3.1" 1292 | 1293 | jest-config@^29.7.0: 1294 | version "29.7.0" 1295 | resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" 1296 | integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== 1297 | dependencies: 1298 | "@babel/core" "^7.11.6" 1299 | "@jest/test-sequencer" "^29.7.0" 1300 | "@jest/types" "^29.6.3" 1301 | babel-jest "^29.7.0" 1302 | chalk "^4.0.0" 1303 | ci-info "^3.2.0" 1304 | deepmerge "^4.2.2" 1305 | glob "^7.1.3" 1306 | graceful-fs "^4.2.9" 1307 | jest-circus "^29.7.0" 1308 | jest-environment-node "^29.7.0" 1309 | jest-get-type "^29.6.3" 1310 | jest-regex-util "^29.6.3" 1311 | jest-resolve "^29.7.0" 1312 | jest-runner "^29.7.0" 1313 | jest-util "^29.7.0" 1314 | jest-validate "^29.7.0" 1315 | micromatch "^4.0.4" 1316 | parse-json "^5.2.0" 1317 | pretty-format "^29.7.0" 1318 | slash "^3.0.0" 1319 | strip-json-comments "^3.1.1" 1320 | 1321 | jest-diff@^29.7.0: 1322 | version "29.7.0" 1323 | resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" 1324 | integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== 1325 | dependencies: 1326 | chalk "^4.0.0" 1327 | diff-sequences "^29.6.3" 1328 | jest-get-type "^29.6.3" 1329 | pretty-format "^29.7.0" 1330 | 1331 | jest-docblock@^29.7.0: 1332 | version "29.7.0" 1333 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" 1334 | integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== 1335 | dependencies: 1336 | detect-newline "^3.0.0" 1337 | 1338 | jest-each@^29.7.0: 1339 | version "29.7.0" 1340 | resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" 1341 | integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== 1342 | dependencies: 1343 | "@jest/types" "^29.6.3" 1344 | chalk "^4.0.0" 1345 | jest-get-type "^29.6.3" 1346 | jest-util "^29.7.0" 1347 | pretty-format "^29.7.0" 1348 | 1349 | jest-environment-node@^29.7.0: 1350 | version "29.7.0" 1351 | resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" 1352 | integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== 1353 | dependencies: 1354 | "@jest/environment" "^29.7.0" 1355 | "@jest/fake-timers" "^29.7.0" 1356 | "@jest/types" "^29.6.3" 1357 | "@types/node" "*" 1358 | jest-mock "^29.7.0" 1359 | jest-util "^29.7.0" 1360 | 1361 | jest-get-type@^29.6.3: 1362 | version "29.6.3" 1363 | resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" 1364 | integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== 1365 | 1366 | jest-haste-map@^29.7.0: 1367 | version "29.7.0" 1368 | resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" 1369 | integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== 1370 | dependencies: 1371 | "@jest/types" "^29.6.3" 1372 | "@types/graceful-fs" "^4.1.3" 1373 | "@types/node" "*" 1374 | anymatch "^3.0.3" 1375 | fb-watchman "^2.0.0" 1376 | graceful-fs "^4.2.9" 1377 | jest-regex-util "^29.6.3" 1378 | jest-util "^29.7.0" 1379 | jest-worker "^29.7.0" 1380 | micromatch "^4.0.4" 1381 | walker "^1.0.8" 1382 | optionalDependencies: 1383 | fsevents "^2.3.2" 1384 | 1385 | jest-leak-detector@^29.7.0: 1386 | version "29.7.0" 1387 | resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" 1388 | integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== 1389 | dependencies: 1390 | jest-get-type "^29.6.3" 1391 | pretty-format "^29.7.0" 1392 | 1393 | jest-matcher-utils@^29.7.0: 1394 | version "29.7.0" 1395 | resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" 1396 | integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== 1397 | dependencies: 1398 | chalk "^4.0.0" 1399 | jest-diff "^29.7.0" 1400 | jest-get-type "^29.6.3" 1401 | pretty-format "^29.7.0" 1402 | 1403 | jest-message-util@^29.7.0: 1404 | version "29.7.0" 1405 | resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" 1406 | integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== 1407 | dependencies: 1408 | "@babel/code-frame" "^7.12.13" 1409 | "@jest/types" "^29.6.3" 1410 | "@types/stack-utils" "^2.0.0" 1411 | chalk "^4.0.0" 1412 | graceful-fs "^4.2.9" 1413 | micromatch "^4.0.4" 1414 | pretty-format "^29.7.0" 1415 | slash "^3.0.0" 1416 | stack-utils "^2.0.3" 1417 | 1418 | jest-mock@^29.7.0: 1419 | version "29.7.0" 1420 | resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" 1421 | integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== 1422 | dependencies: 1423 | "@jest/types" "^29.6.3" 1424 | "@types/node" "*" 1425 | jest-util "^29.7.0" 1426 | 1427 | jest-pnp-resolver@^1.2.2: 1428 | version "1.2.3" 1429 | resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" 1430 | integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== 1431 | 1432 | jest-regex-util@^29.6.3: 1433 | version "29.6.3" 1434 | resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" 1435 | integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== 1436 | 1437 | jest-resolve-dependencies@^29.7.0: 1438 | version "29.7.0" 1439 | resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" 1440 | integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== 1441 | dependencies: 1442 | jest-regex-util "^29.6.3" 1443 | jest-snapshot "^29.7.0" 1444 | 1445 | jest-resolve@^29.7.0: 1446 | version "29.7.0" 1447 | resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" 1448 | integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== 1449 | dependencies: 1450 | chalk "^4.0.0" 1451 | graceful-fs "^4.2.9" 1452 | jest-haste-map "^29.7.0" 1453 | jest-pnp-resolver "^1.2.2" 1454 | jest-util "^29.7.0" 1455 | jest-validate "^29.7.0" 1456 | resolve "^1.20.0" 1457 | resolve.exports "^2.0.0" 1458 | slash "^3.0.0" 1459 | 1460 | jest-runner@^29.7.0: 1461 | version "29.7.0" 1462 | resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" 1463 | integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== 1464 | dependencies: 1465 | "@jest/console" "^29.7.0" 1466 | "@jest/environment" "^29.7.0" 1467 | "@jest/test-result" "^29.7.0" 1468 | "@jest/transform" "^29.7.0" 1469 | "@jest/types" "^29.6.3" 1470 | "@types/node" "*" 1471 | chalk "^4.0.0" 1472 | emittery "^0.13.1" 1473 | graceful-fs "^4.2.9" 1474 | jest-docblock "^29.7.0" 1475 | jest-environment-node "^29.7.0" 1476 | jest-haste-map "^29.7.0" 1477 | jest-leak-detector "^29.7.0" 1478 | jest-message-util "^29.7.0" 1479 | jest-resolve "^29.7.0" 1480 | jest-runtime "^29.7.0" 1481 | jest-util "^29.7.0" 1482 | jest-watcher "^29.7.0" 1483 | jest-worker "^29.7.0" 1484 | p-limit "^3.1.0" 1485 | source-map-support "0.5.13" 1486 | 1487 | jest-runtime@^29.7.0: 1488 | version "29.7.0" 1489 | resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" 1490 | integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== 1491 | dependencies: 1492 | "@jest/environment" "^29.7.0" 1493 | "@jest/fake-timers" "^29.7.0" 1494 | "@jest/globals" "^29.7.0" 1495 | "@jest/source-map" "^29.6.3" 1496 | "@jest/test-result" "^29.7.0" 1497 | "@jest/transform" "^29.7.0" 1498 | "@jest/types" "^29.6.3" 1499 | "@types/node" "*" 1500 | chalk "^4.0.0" 1501 | cjs-module-lexer "^1.0.0" 1502 | collect-v8-coverage "^1.0.0" 1503 | glob "^7.1.3" 1504 | graceful-fs "^4.2.9" 1505 | jest-haste-map "^29.7.0" 1506 | jest-message-util "^29.7.0" 1507 | jest-mock "^29.7.0" 1508 | jest-regex-util "^29.6.3" 1509 | jest-resolve "^29.7.0" 1510 | jest-snapshot "^29.7.0" 1511 | jest-util "^29.7.0" 1512 | slash "^3.0.0" 1513 | strip-bom "^4.0.0" 1514 | 1515 | jest-snapshot@^29.7.0: 1516 | version "29.7.0" 1517 | resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" 1518 | integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== 1519 | dependencies: 1520 | "@babel/core" "^7.11.6" 1521 | "@babel/generator" "^7.7.2" 1522 | "@babel/plugin-syntax-jsx" "^7.7.2" 1523 | "@babel/plugin-syntax-typescript" "^7.7.2" 1524 | "@babel/types" "^7.3.3" 1525 | "@jest/expect-utils" "^29.7.0" 1526 | "@jest/transform" "^29.7.0" 1527 | "@jest/types" "^29.6.3" 1528 | babel-preset-current-node-syntax "^1.0.0" 1529 | chalk "^4.0.0" 1530 | expect "^29.7.0" 1531 | graceful-fs "^4.2.9" 1532 | jest-diff "^29.7.0" 1533 | jest-get-type "^29.6.3" 1534 | jest-matcher-utils "^29.7.0" 1535 | jest-message-util "^29.7.0" 1536 | jest-util "^29.7.0" 1537 | natural-compare "^1.4.0" 1538 | pretty-format "^29.7.0" 1539 | semver "^7.5.3" 1540 | 1541 | jest-util@^29.7.0: 1542 | version "29.7.0" 1543 | resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" 1544 | integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== 1545 | dependencies: 1546 | "@jest/types" "^29.6.3" 1547 | "@types/node" "*" 1548 | chalk "^4.0.0" 1549 | ci-info "^3.2.0" 1550 | graceful-fs "^4.2.9" 1551 | picomatch "^2.2.3" 1552 | 1553 | jest-validate@^29.7.0: 1554 | version "29.7.0" 1555 | resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" 1556 | integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== 1557 | dependencies: 1558 | "@jest/types" "^29.6.3" 1559 | camelcase "^6.2.0" 1560 | chalk "^4.0.0" 1561 | jest-get-type "^29.6.3" 1562 | leven "^3.1.0" 1563 | pretty-format "^29.7.0" 1564 | 1565 | jest-watcher@^29.7.0: 1566 | version "29.7.0" 1567 | resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" 1568 | integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== 1569 | dependencies: 1570 | "@jest/test-result" "^29.7.0" 1571 | "@jest/types" "^29.6.3" 1572 | "@types/node" "*" 1573 | ansi-escapes "^4.2.1" 1574 | chalk "^4.0.0" 1575 | emittery "^0.13.1" 1576 | jest-util "^29.7.0" 1577 | string-length "^4.0.1" 1578 | 1579 | jest-worker@^29.7.0: 1580 | version "29.7.0" 1581 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" 1582 | integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== 1583 | dependencies: 1584 | "@types/node" "*" 1585 | jest-util "^29.7.0" 1586 | merge-stream "^2.0.0" 1587 | supports-color "^8.0.0" 1588 | 1589 | jest@^29.7.0: 1590 | version "29.7.0" 1591 | resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" 1592 | integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== 1593 | dependencies: 1594 | "@jest/core" "^29.7.0" 1595 | "@jest/types" "^29.6.3" 1596 | import-local "^3.0.2" 1597 | jest-cli "^29.7.0" 1598 | 1599 | js-tokens@^4.0.0: 1600 | version "4.0.0" 1601 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1602 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1603 | 1604 | js-yaml@^3.13.1: 1605 | version "3.14.1" 1606 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1607 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1608 | dependencies: 1609 | argparse "^1.0.7" 1610 | esprima "^4.0.0" 1611 | 1612 | jsesc@^2.5.1: 1613 | version "2.5.2" 1614 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1615 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1616 | 1617 | json-parse-even-better-errors@^2.3.0: 1618 | version "2.3.1" 1619 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 1620 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 1621 | 1622 | json5@^2.2.3: 1623 | version "2.2.3" 1624 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1625 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1626 | 1627 | kleur@^3.0.3: 1628 | version "3.0.3" 1629 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" 1630 | integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== 1631 | 1632 | leven@^3.1.0: 1633 | version "3.1.0" 1634 | resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" 1635 | integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== 1636 | 1637 | lines-and-columns@^1.1.6: 1638 | version "1.2.4" 1639 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 1640 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 1641 | 1642 | locate-path@^5.0.0: 1643 | version "5.0.0" 1644 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1645 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1646 | dependencies: 1647 | p-locate "^4.1.0" 1648 | 1649 | lru-cache@^5.1.1: 1650 | version "5.1.1" 1651 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1652 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 1653 | dependencies: 1654 | yallist "^3.0.2" 1655 | 1656 | make-dir@^4.0.0: 1657 | version "4.0.0" 1658 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" 1659 | integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== 1660 | dependencies: 1661 | semver "^7.5.3" 1662 | 1663 | makeerror@1.0.12: 1664 | version "1.0.12" 1665 | resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" 1666 | integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== 1667 | dependencies: 1668 | tmpl "1.0.5" 1669 | 1670 | merge-stream@^2.0.0: 1671 | version "2.0.0" 1672 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1673 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1674 | 1675 | micromatch@^4.0.4: 1676 | version "4.0.8" 1677 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" 1678 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== 1679 | dependencies: 1680 | braces "^3.0.3" 1681 | picomatch "^2.3.1" 1682 | 1683 | mimic-fn@^2.1.0: 1684 | version "2.1.0" 1685 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1686 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1687 | 1688 | minimatch@^3.0.4, minimatch@^3.1.1: 1689 | version "3.1.2" 1690 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1691 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1692 | dependencies: 1693 | brace-expansion "^1.1.7" 1694 | 1695 | ms@^2.1.3: 1696 | version "2.1.3" 1697 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1698 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1699 | 1700 | natural-compare@^1.4.0: 1701 | version "1.4.0" 1702 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1703 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1704 | 1705 | node-int64@^0.4.0: 1706 | version "0.4.0" 1707 | resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" 1708 | integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== 1709 | 1710 | node-releases@^2.0.18: 1711 | version "2.0.18" 1712 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" 1713 | integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== 1714 | 1715 | normalize-path@^3.0.0: 1716 | version "3.0.0" 1717 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1718 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1719 | 1720 | npm-run-path@^4.0.1: 1721 | version "4.0.1" 1722 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 1723 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 1724 | dependencies: 1725 | path-key "^3.0.0" 1726 | 1727 | once@^1.3.0: 1728 | version "1.4.0" 1729 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1730 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1731 | dependencies: 1732 | wrappy "1" 1733 | 1734 | onetime@^5.1.2: 1735 | version "5.1.2" 1736 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1737 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1738 | dependencies: 1739 | mimic-fn "^2.1.0" 1740 | 1741 | p-limit@^2.2.0: 1742 | version "2.3.0" 1743 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1744 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1745 | dependencies: 1746 | p-try "^2.0.0" 1747 | 1748 | p-limit@^3.1.0: 1749 | version "3.1.0" 1750 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1751 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1752 | dependencies: 1753 | yocto-queue "^0.1.0" 1754 | 1755 | p-locate@^4.1.0: 1756 | version "4.1.0" 1757 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1758 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1759 | dependencies: 1760 | p-limit "^2.2.0" 1761 | 1762 | p-try@^2.0.0: 1763 | version "2.2.0" 1764 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1765 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1766 | 1767 | parse-json@^5.2.0: 1768 | version "5.2.0" 1769 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" 1770 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 1771 | dependencies: 1772 | "@babel/code-frame" "^7.0.0" 1773 | error-ex "^1.3.1" 1774 | json-parse-even-better-errors "^2.3.0" 1775 | lines-and-columns "^1.1.6" 1776 | 1777 | path-exists@^4.0.0: 1778 | version "4.0.0" 1779 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1780 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1781 | 1782 | path-is-absolute@^1.0.0: 1783 | version "1.0.1" 1784 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1785 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1786 | 1787 | path-key@^3.0.0, path-key@^3.1.0: 1788 | version "3.1.1" 1789 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1790 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1791 | 1792 | path-parse@^1.0.7: 1793 | version "1.0.7" 1794 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1795 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1796 | 1797 | picocolors@^1.0.0, picocolors@^1.0.1: 1798 | version "1.1.0" 1799 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" 1800 | integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== 1801 | 1802 | picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: 1803 | version "2.3.1" 1804 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1805 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1806 | 1807 | pirates@^4.0.4: 1808 | version "4.0.6" 1809 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" 1810 | integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== 1811 | 1812 | pkg-dir@^4.2.0: 1813 | version "4.2.0" 1814 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 1815 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 1816 | dependencies: 1817 | find-up "^4.0.0" 1818 | 1819 | pretty-format@^29.7.0: 1820 | version "29.7.0" 1821 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" 1822 | integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== 1823 | dependencies: 1824 | "@jest/schemas" "^29.6.3" 1825 | ansi-styles "^5.0.0" 1826 | react-is "^18.0.0" 1827 | 1828 | prompts@^2.0.1: 1829 | version "2.4.2" 1830 | resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" 1831 | integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== 1832 | dependencies: 1833 | kleur "^3.0.3" 1834 | sisteransi "^1.0.5" 1835 | 1836 | pure-rand@^6.0.0: 1837 | version "6.1.0" 1838 | resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" 1839 | integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== 1840 | 1841 | react-is@^18.0.0: 1842 | version "18.3.1" 1843 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" 1844 | integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== 1845 | 1846 | require-directory@^2.1.1: 1847 | version "2.1.1" 1848 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1849 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== 1850 | 1851 | resolve-cwd@^3.0.0: 1852 | version "3.0.0" 1853 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" 1854 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 1855 | dependencies: 1856 | resolve-from "^5.0.0" 1857 | 1858 | resolve-from@^5.0.0: 1859 | version "5.0.0" 1860 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 1861 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1862 | 1863 | resolve.exports@^2.0.0: 1864 | version "2.0.2" 1865 | resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" 1866 | integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== 1867 | 1868 | resolve@^1.20.0: 1869 | version "1.22.8" 1870 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" 1871 | integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== 1872 | dependencies: 1873 | is-core-module "^2.13.0" 1874 | path-parse "^1.0.7" 1875 | supports-preserve-symlinks-flag "^1.0.0" 1876 | 1877 | semver@^6.3.0, semver@^6.3.1: 1878 | version "6.3.1" 1879 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 1880 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 1881 | 1882 | semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: 1883 | version "7.6.3" 1884 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" 1885 | integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== 1886 | 1887 | shebang-command@^2.0.0: 1888 | version "2.0.0" 1889 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1890 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1891 | dependencies: 1892 | shebang-regex "^3.0.0" 1893 | 1894 | shebang-regex@^3.0.0: 1895 | version "3.0.0" 1896 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1897 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1898 | 1899 | signal-exit@^3.0.3, signal-exit@^3.0.7: 1900 | version "3.0.7" 1901 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" 1902 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 1903 | 1904 | sisteransi@^1.0.5: 1905 | version "1.0.5" 1906 | resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" 1907 | integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== 1908 | 1909 | slash@^3.0.0: 1910 | version "3.0.0" 1911 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1912 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1913 | 1914 | source-map-support@0.5.13: 1915 | version "0.5.13" 1916 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" 1917 | integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== 1918 | dependencies: 1919 | buffer-from "^1.0.0" 1920 | source-map "^0.6.0" 1921 | 1922 | source-map@^0.6.0, source-map@^0.6.1: 1923 | version "0.6.1" 1924 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1925 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1926 | 1927 | sprintf-js@~1.0.2: 1928 | version "1.0.3" 1929 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1930 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== 1931 | 1932 | stack-utils@^2.0.3: 1933 | version "2.0.6" 1934 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" 1935 | integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== 1936 | dependencies: 1937 | escape-string-regexp "^2.0.0" 1938 | 1939 | string-length@^4.0.1: 1940 | version "4.0.2" 1941 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" 1942 | integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== 1943 | dependencies: 1944 | char-regex "^1.0.2" 1945 | strip-ansi "^6.0.0" 1946 | 1947 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: 1948 | version "4.2.3" 1949 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1950 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1951 | dependencies: 1952 | emoji-regex "^8.0.0" 1953 | is-fullwidth-code-point "^3.0.0" 1954 | strip-ansi "^6.0.1" 1955 | 1956 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1957 | version "6.0.1" 1958 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1959 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1960 | dependencies: 1961 | ansi-regex "^5.0.1" 1962 | 1963 | strip-bom@^4.0.0: 1964 | version "4.0.0" 1965 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" 1966 | integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== 1967 | 1968 | strip-final-newline@^2.0.0: 1969 | version "2.0.0" 1970 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" 1971 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 1972 | 1973 | strip-json-comments@^3.1.1: 1974 | version "3.1.1" 1975 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1976 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1977 | 1978 | supports-color@^5.3.0: 1979 | version "5.5.0" 1980 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1981 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1982 | dependencies: 1983 | has-flag "^3.0.0" 1984 | 1985 | supports-color@^7.1.0: 1986 | version "7.2.0" 1987 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1988 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1989 | dependencies: 1990 | has-flag "^4.0.0" 1991 | 1992 | supports-color@^8.0.0: 1993 | version "8.1.1" 1994 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 1995 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1996 | dependencies: 1997 | has-flag "^4.0.0" 1998 | 1999 | supports-preserve-symlinks-flag@^1.0.0: 2000 | version "1.0.0" 2001 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 2002 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 2003 | 2004 | test-exclude@^6.0.0: 2005 | version "6.0.0" 2006 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" 2007 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== 2008 | dependencies: 2009 | "@istanbuljs/schema" "^0.1.2" 2010 | glob "^7.1.4" 2011 | minimatch "^3.0.4" 2012 | 2013 | tmpl@1.0.5: 2014 | version "1.0.5" 2015 | resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" 2016 | integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== 2017 | 2018 | to-fast-properties@^2.0.0: 2019 | version "2.0.0" 2020 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 2021 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 2022 | 2023 | to-regex-range@^5.0.1: 2024 | version "5.0.1" 2025 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2026 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2027 | dependencies: 2028 | is-number "^7.0.0" 2029 | 2030 | type-detect@4.0.8: 2031 | version "4.0.8" 2032 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 2033 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 2034 | 2035 | type-fest@^0.21.3: 2036 | version "0.21.3" 2037 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" 2038 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== 2039 | 2040 | undici-types@~6.19.2: 2041 | version "6.19.8" 2042 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" 2043 | integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== 2044 | 2045 | update-browserslist-db@^1.1.0: 2046 | version "1.1.0" 2047 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" 2048 | integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== 2049 | dependencies: 2050 | escalade "^3.1.2" 2051 | picocolors "^1.0.1" 2052 | 2053 | v8-to-istanbul@^9.0.1: 2054 | version "9.3.0" 2055 | resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" 2056 | integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== 2057 | dependencies: 2058 | "@jridgewell/trace-mapping" "^0.3.12" 2059 | "@types/istanbul-lib-coverage" "^2.0.1" 2060 | convert-source-map "^2.0.0" 2061 | 2062 | walker@^1.0.8: 2063 | version "1.0.8" 2064 | resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" 2065 | integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== 2066 | dependencies: 2067 | makeerror "1.0.12" 2068 | 2069 | which@^2.0.1: 2070 | version "2.0.2" 2071 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2072 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2073 | dependencies: 2074 | isexe "^2.0.0" 2075 | 2076 | wrap-ansi@^7.0.0: 2077 | version "7.0.0" 2078 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2079 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2080 | dependencies: 2081 | ansi-styles "^4.0.0" 2082 | string-width "^4.1.0" 2083 | strip-ansi "^6.0.0" 2084 | 2085 | wrappy@1: 2086 | version "1.0.2" 2087 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2088 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 2089 | 2090 | write-file-atomic@^4.0.2: 2091 | version "4.0.2" 2092 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" 2093 | integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== 2094 | dependencies: 2095 | imurmurhash "^0.1.4" 2096 | signal-exit "^3.0.7" 2097 | 2098 | y18n@^5.0.5: 2099 | version "5.0.8" 2100 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 2101 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 2102 | 2103 | yallist@^3.0.2: 2104 | version "3.1.1" 2105 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 2106 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 2107 | 2108 | yargs-parser@^21.1.1: 2109 | version "21.1.1" 2110 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" 2111 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== 2112 | 2113 | yargs@^17.3.1: 2114 | version "17.7.2" 2115 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" 2116 | integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== 2117 | dependencies: 2118 | cliui "^8.0.1" 2119 | escalade "^3.1.1" 2120 | get-caller-file "^2.0.5" 2121 | require-directory "^2.1.1" 2122 | string-width "^4.2.3" 2123 | y18n "^5.0.5" 2124 | yargs-parser "^21.1.1" 2125 | 2126 | yocto-queue@^0.1.0: 2127 | version "0.1.0" 2128 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 2129 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2130 | --------------------------------------------------------------------------------