diff --git a/.babelrc b/.babelrc index f625e70226abf0..465e69eede3388 100644 --- a/.babelrc +++ b/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - "module:metro-react-native-babel-preset" + "module:@react-native/babel-preset" ], "plugins": [ "babel-plugin-transform-flow-enums" diff --git a/.circleci/Dockerfiles/Dockerfile.android b/.circleci/Dockerfiles/Dockerfile.android index 000822cd337393..738b5a79504934 100644 --- a/.circleci/Dockerfiles/Dockerfile.android +++ b/.circleci/Dockerfiles/Dockerfile.android @@ -14,7 +14,7 @@ # and build a Android application that can be used to run the # tests specified in the scripts/ directory. # -FROM reactnativecommunity/react-native-android:9.0 +FROM reactnativecommunity/react-native-android:v10.0 LABEL Description="React Native Android Test Image" LABEL maintainer="Meta Open Source " diff --git a/.circleci/config.yml b/.circleci/config.yml index ac8d9532a77541..46b7c1d42ac8ab 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,6 +6,7 @@ version: 2.1 orbs: win: circleci/windows@2.4.0 + android: circleci/android@2.3.0 # ------------------------- # REFERENCES @@ -113,7 +114,7 @@ executors: reactnativeandroid: <<: *defaults docker: - - image: reactnativecommunity/react-native-android:9.0 + - image: reactnativecommunity/react-native-android:v10.0 resource_class: "xlarge" environment: - TERM: "dumb" @@ -259,7 +260,7 @@ commands: command: cp packages/rn-tester/Podfile.lock packages/rn-tester/Podfile.lock.bak - restore_cache: keys: - # The committed lockfile is generated using USE_FRAMEWORKS=0 and USE_HERMES=1 so it could load an outdated cache if a change + # The committed lockfile is generated using static libraries and USE_HERMES=1 so it could load an outdated cache if a change # only affects the frameworks or hermes config. To help prevent this also cache based on the content of Podfile. - *pods_cache_key - steps: << parameters.steps >> @@ -724,6 +725,136 @@ jobs: path: ./reports/junit # ------------------------- + # JOBS: iOS E2E Tests + # ------------------------- + test_e2e_ios: + executor: reactnativeios + parameters: + ruby_version: + default: "2.7.7" + description: The version of ruby that must be used + type: string + steps: + - checkout_code_with_cache + - run_yarn + - attach_workspace: + at: . + - run: + name: Install appium + command: npm install appium@2.0.0 -g + - run: + name: Install appium drivers + command: | + appium driver install uiautomator2 + appium driver install xcuitest + - run: + name: Start Appium server + command: appium --base-path /wd/hub + background: true + - run: + name: Start Metro + command: | + cd packages/rn-tester + yarn start + background: true + - brew_install: + package: cmake + - setup_ruby: + ruby_version: << parameters.ruby_version >> + - run: + name: Install Bundler + command: | + cd packages/rn-tester + bundle check || bundle install + bundle exec pod setup + bundle exec pod install --verbose + - run: + name: Boot iOS Simulator + command: source scripts/.tests.env && xcrun simctl boot "$IOS_DEVICE" || true + - run: + name: Build app + command: | + xcodebuild build \ + -workspace packages/rn-tester/RNTesterPods.xcworkspace \ + -configuration Debug \ + -scheme RNTester \ + -sdk iphonesimulator \ + -derivedDataPath /tmp/e2e/ + - run: + name: Move app to correct directory + command: mv /tmp/e2e/Build/Products/Debug-iphonesimulator/RNTester.app packages/rn-tester-e2e/apps/rn-tester.app + - run: + name: Check Appium server status + command: | + if ! nc -z 127.0.0.1 4723; then + echo Could not find Appium server! + exit 1 + fi + - run: + name: Run E2E tests + command: | + cd packages/rn-tester-e2e + yarn test-ios-e2e + + # ------------------------- + # JOBS: Android E2E Tests + # ------------------------- + test_e2e_android: + executor: + name: android/android-machine + tag: 2023.07.1 + steps: + - checkout_code_with_cache + - run_yarn + - android/create-avd: + avd-name: e2e_emulator + system-image: system-images;android-33;google_apis;x86_64 + install: true + - android/start-emulator: + avd-name: e2e_emulator + no-window: true + restore-gradle-cache-prefix: v1a + post-emulator-launch-assemble-command: "" + - run: + name: Install appium + command: npm install appium@2.0.0 -g + - run: + name: Install appium drivers + command: | + appium driver install uiautomator2 + appium driver install xcuitest + - run: + name: Start Appium server + command: appium --base-path /wd/hub + background: true + - run: + name: Start Metro + command: | + cd packages/rn-tester + yarn start + background: true + - attach_workspace: + at: . + - run: + name: Build app + command: | + ./gradlew :packages:rn-tester:android:app:assembleHermesDebug -PreactNativeArchitectures=x86_64 + - run: + name: Move app to correct directory + command: mv packages/rn-tester/android/app/build/outputs/apk/hermes/debug/app-hermes-x86_64-debug.apk packages/rn-tester-e2e/apps/rn-tester.apk + - run: + name: Check Appium server status + command: | + if ! nc -z 127.0.0.1 4723; then + echo Could not find Appium server + exit 1 + fi + - run: + name: Run E2E tests + command: | + cd packages/rn-tester-e2e + yarn test-android-e2e + # ------------------------- # JOBS: Test Android # ------------------------- test_android: @@ -847,7 +978,7 @@ jobs: default: "StaticLibraries" description: Which kind of option we want to use for `use_frameworks!` type: enum - enum: ["StaticLibraries", "StaticFrameworks", "DynamicFrameworks"] + enum: ["StaticLibraries", "DynamicFrameworks"] ruby_version: default: "2.6.10" description: The version of ruby that must be used @@ -898,9 +1029,7 @@ jobs: export NO_FLIPPER=1 fi - if [[ << parameters.use_frameworks >> == "StaticFrameworks" ]]; then - export USE_FRAMEWORKS=static - elif [[ << parameters.use_frameworks >> == "DynamicFrameworks" ]]; then + if [[ << parameters.use_frameworks >> == "DynamicFrameworks" ]]; then export USE_FRAMEWORKS=dynamic fi @@ -960,9 +1089,9 @@ jobs: enum: ["NewArch", "OldArch"] use_frameworks: default: "StaticLibraries" - description: The dependency building and linking strategy to use. Must be one of "StaticLibraries", "StaticFrameworks", "DynamicFrameworks" + description: The dependency building and linking strategy to use. Must be one of "StaticLibraries", "DynamicFrameworks" type: enum - enum: ["StaticLibraries", "StaticFrameworks", "DynamicFrameworks"] + enum: ["StaticLibraries", "DynamicFrameworks"] ruby_version: default: "2.6.10" description: The version of ruby that must be used @@ -997,11 +1126,6 @@ jobs: export USE_HERMES=0 fi - if [[ << parameters.use_frameworks >> == "StaticFrameworks" ]]; then - export NO_FLIPPER=1 - export USE_FRAMEWORKS=static - fi - if [[ << parameters.use_frameworks >> == "DynamicFrameworks" ]]; then export NO_FLIPPER=1 export USE_FRAMEWORKS=dynamic @@ -1034,7 +1158,7 @@ jobs: - ANDROID_HOME: "C:\\Android\\android-sdk" - ANDROID_NDK: "C:\\Android\\android-sdk\\ndk\\20.1.5948944" - ANDROID_BUILD_VERSION: 33 - - ANDROID_TOOLS_VERSION: 33.0.0 + - ANDROID_TOOLS_VERSION: 33.0.1 - GRADLE_OPTS: -Dorg.gradle.daemon=false - CHOCO_CACHE_DIR: "C:\\ChocoCache" steps: @@ -1653,6 +1777,9 @@ workflows: run_disabled_tests: false - test_android - test_android_docker_image + - test_e2e_ios: + ruby_version: "2.7.7" + - test_e2e_android - test_android_template: requires: - build_npm_package @@ -1661,13 +1788,6 @@ workflows: architecture: ["NewArch", "OldArch"] jsengine: ["Hermes", "JSC"] flavor: ["Debug", "Release"] - - test_ios_template: - requires: - - build_npm_package - name: "Test Template with Ruby 2.7.7" - ruby_version: "2.7.7" - architecture: "NewArch" - flavor: "Debug" - test_ios_template: requires: - build_npm_package @@ -1684,18 +1804,13 @@ workflows: flavor: ["Debug", "Release"] jsengine: ["Hermes", "JSC"] flipper: ["WithFlipper", "WithoutFlipper"] - use_frameworks: ["StaticLibraries", "StaticFrameworks", "DynamicFrameworks"] + use_frameworks: ["StaticLibraries", "DynamicFrameworks"] exclude: - architecture: "NewArch" flavor: "Release" jsengine: "Hermes" flipper: "WithFlipper" use_frameworks: "StaticLibraries" - - architecture: "NewArch" - flavor: "Release" - jsengine: "Hermes" - flipper: "WithFlipper" - use_frameworks: "StaticFrameworks" - architecture: "NewArch" flavor: "Release" jsengine: "Hermes" @@ -1706,11 +1821,6 @@ workflows: jsengine: "JSC" flipper: "WithFlipper" use_frameworks: "StaticLibraries" - - architecture: "NewArch" - flavor: "Release" - jsengine: "JSC" - flipper: "WithFlipper" - use_frameworks: "StaticFrameworks" - architecture: "NewArch" flavor: "Release" jsengine: "JSC" @@ -1721,11 +1831,6 @@ workflows: jsengine: "Hermes" flipper: "WithFlipper" use_frameworks: "StaticLibraries" - - architecture: "OldArch" - flavor: "Release" - jsengine: "Hermes" - flipper: "WithFlipper" - use_frameworks: "StaticFrameworks" - architecture: "OldArch" flavor: "Release" jsengine: "Hermes" @@ -1736,36 +1841,11 @@ workflows: jsengine: "JSC" flipper: "WithFlipper" use_frameworks: "StaticLibraries" - - architecture: "OldArch" - flavor: "Release" - jsengine: "JSC" - flipper: "WithFlipper" - use_frameworks: "StaticFrameworks" - architecture: "OldArch" flavor: "Release" jsengine: "JSC" flipper: "WithFlipper" use_frameworks: "DynamicFrameworks" - - architecture: "NewArch" - flavor: "Debug" - jsengine: "Hermes" - flipper: "WithFlipper" - use_frameworks: "StaticFrameworks" - - architecture: "NewArch" - flavor: "Debug" - jsengine: "JSC" - flipper: "WithFlipper" - use_frameworks: "StaticFrameworks" - - architecture: "OldArch" - flavor: "Debug" - jsengine: "Hermes" - flipper: "WithFlipper" - use_frameworks: "StaticFrameworks" - - architecture: "OldArch" - flavor: "Debug" - jsengine: "JSC" - flipper: "WithFlipper" - use_frameworks: "StaticFrameworks" - architecture: "NewArch" flavor: "Debug" jsengine: "Hermes" @@ -1786,12 +1866,6 @@ workflows: jsengine: "JSC" flipper: "WithFlipper" use_frameworks: "DynamicFrameworks" - - test_ios_rntester: - requires: - - build_hermes_macos - name: "Test RNTester with Ruby 2.7.7" - ruby_version: "2.7.7" - architecture: "NewArch" - test_ios_rntester: requires: - build_hermes_macos @@ -1805,13 +1879,7 @@ workflows: parameters: architecture: ["NewArch", "OldArch"] jsengine: ["Hermes", "JSC"] - use_frameworks: ["StaticLibraries", "StaticFrameworks", "DynamicFrameworks"] - - test_ios: - name: "Test iOS with Ruby 2.7.7" - run_unit_tests: true - requires: - - build_hermes_macos - ruby_version: "2.7.7" + use_frameworks: ["StaticLibraries", "DynamicFrameworks"] - test_ios: name: "Test iOS with Ruby 3.2.0" run_unit_tests: true diff --git a/.flowconfig b/.flowconfig index 971ed5d2fe4460..58386d6a6f22ff 100644 --- a/.flowconfig +++ b/.flowconfig @@ -30,10 +30,8 @@ packages/react-native/interface.js packages/react-native/flow/ [options] +experimental.global_find_ref=true enums=true -conditional_type=true -mapped_type=true -type_guards=true emoji=true @@ -78,4 +76,4 @@ untyped-import untyped-type-import [version] -^0.212.0 +^0.213.1 diff --git a/.flowconfig.android b/.flowconfig.android index 5ca9c29b13a603..05ba551b980f23 100644 --- a/.flowconfig.android +++ b/.flowconfig.android @@ -30,10 +30,8 @@ packages/react-native/interface.js packages/react-native/flow/ [options] +experimental.global_find_ref=true enums=true -conditional_type=true -mapped_type=true -type_guards=true emoji=true @@ -78,4 +76,4 @@ untyped-import untyped-type-import [version] -^0.212.0 +^0.213.1 diff --git a/.github/workflow-scripts/actOnLabel.js b/.github/workflow-scripts/actOnLabel.js index 7556e122bee631..a4c2158466cad8 100644 --- a/.github/workflow-scripts/actOnLabel.js +++ b/.github/workflow-scripts/actOnLabel.js @@ -129,7 +129,7 @@ module.exports = async (github, context, labelWithContext) => { await addComment( `| :warning: | Unsupported Version of React Native |\n` + `| --- | --- |\n` + - `| :information_source: | It looks like your issue or the example you provided uses an [unsupported version of React Native](https://github.com/reactwg/react-native-releases/blob/main/README.md#releases-support-policy). Due to the number of issues we receive, we're currently only accepting new issues against one of the supported versions. Please [upgrade](https://reactnative.dev/docs/upgrading) to latest and verify if the issue persists (alternatively, create a new project and repro the issue in it). If you cannot upgrade, please open your issue on [StackOverflow](https://stackoverflow.com/questions/tagged/react-native) to get further community support. |`, + `| :information_source: | It looks like your issue or the example you provided uses an [unsupported version of React Native](https://github.com/reactwg/react-native-releases/blob/main/README.md#releases-support-policy).

Due to the number of issues we receive, we're currently only accepting new issues against one of the supported versions. Please [upgrade](https://reactnative.dev/docs/upgrading) to latest and verify if the issue persists (alternatively, create a new project and repro the issue in it). If you cannot upgrade, please open your issue on [StackOverflow](https://stackoverflow.com/questions/tagged/react-native) to get further community support. |`, ); await requestAuthorFeedback(); return; @@ -137,7 +137,7 @@ module.exports = async (github, context, labelWithContext) => { await addComment( `| :warning: | Too Old Version of React Native |\n` + `| --- | --- |\n` + - `| :information_source: | It looks like your issue or the example you provided uses a [**Too Old Version of React Native**](https://github.com/reactwg/react-native-releases/blob/main/README.md#releases-support-policy).\nDue to the number of issues we receive, we're currently only accepting new issues against one of the supported versions. Please [upgrade](https://reactnative.dev/docs/upgrading) to latest and verify if the issue persists (alternatively, create a new project and repro the issue in it). If you cannot upgrade, please open your issue on [StackOverflow](https://stackoverflow.com/questions/tagged/react-native) to get further community support. |`, + `| :information_source: | It looks like your issue or the example you provided uses a [**Too Old Version of React Native**](https://github.com/reactwg/react-native-releases/blob/main/README.md#releases-support-policy).

Due to the number of issues we receive, we're currently only accepting new issues against one of the supported versions. Please [upgrade](https://reactnative.dev/docs/upgrading) to latest and verify if the issue persists (alternatively, create a new project and repro the issue in it). If you cannot upgrade, please open your issue on [StackOverflow](https://stackoverflow.com/questions/tagged/react-native) to get further community support. |`, ); await closeIssue(); return; diff --git a/.github/workflow-scripts/checkForReproducer.js b/.github/workflow-scripts/checkForReproducer.js index 1b8973b3c01407..50baff0d81c893 100644 --- a/.github/workflow-scripts/checkForReproducer.js +++ b/.github/workflow-scripts/checkForReproducer.js @@ -13,6 +13,7 @@ const NEEDS_REPRO_MESSAGE = `| :warning: | Missing Reproducible Example |\n` + `| --- | --- |\n` + `| :information_source: | We could not detect a reproducible example in your issue report. Please provide either:
|`; +const SKIP_ISSUES_OLDER_THAN = '2023-07-01T00:00:00Z'; module.exports = async (github, context) => { const issueData = { @@ -26,6 +27,11 @@ module.exports = async (github, context) => { const author = issue.data.user.login; + const issueDate = issue.data.created_at; + if (isDateBefore(issueDate, SKIP_ISSUES_OLDER_THAN)) { + return; + } + const maintainerChangedLabel = await hasMaintainerChangedLabel( github, issueData, @@ -108,3 +114,10 @@ async function hasMaintainerChangedLabel(github, issueData, author) { event.actor.login !== author && event.label.name === NEEDS_REPRO_LABEL, ); } + +function isDateBefore(firstDate, secondDate) { + const date1 = new Date(firstDate); + const date2 = new Date(secondDate); + + return date1.getTime() < date2.getTime(); +} diff --git a/.github/workflows/check-for-reproducer.yml b/.github/workflows/check-for-reproducer.yml index 8ef450fc1aea74..97d841e7e6b7c3 100644 --- a/.github/workflows/check-for-reproducer.yml +++ b/.github/workflows/check-for-reproducer.yml @@ -1,16 +1,14 @@ name: Check for reproducer # This workflow is triggered when issue is created or edited. -# Also, when a comment is added, edited or deleted. on: issues: types: [opened, edited] - issue_comment: - types: [created, edited, deleted] jobs: check-for-reproducer: runs-on: ubuntu-latest - if: github.repository == 'facebook/react-native' && github.event.issue.pull_request == null && github.event.issue.state == 'open' + if: | + github.repository == 'facebook/react-native' && github.event.issue.pull_request == null && github.event.issue.state == 'open' && !contains(github.event.issue.labels.*.name, ':open_umbrella: Umbrella') steps: - uses: actions/checkout@v3 - uses: actions/github-script@v6 diff --git a/.gitignore b/.gitignore index 90f2382d7dffb4..ce1c26d86ac226 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,7 @@ buck-out /.lsp-buck-out /packages/react-native/ReactAndroid/src/main/jni/prebuilt/lib/ /packages/react-native/ReactAndroid/src/main/gen +/.cpplsp.buckd # Android Studio .project @@ -146,3 +147,7 @@ package-lock.json # Temporary files created by Metro to check the health of the file watcher .metro-health-check* + +# E2E files +/packages/rn-tester-e2e/apps/*.apk +/packages/rn-tester-e2e/apps/*.app diff --git a/CHANGELOG.md b/CHANGELOG.md index 25d4ad442083ee..ce349404807630 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1080,6 +1080,12 @@ Read the [announcement blogpost here](https://reactnative.dev/blog/2023/01/12/ve - Bump terser minor version to mitigate CVE-2022-25858 ([743f9ff63b](https://github.com/facebook/react-native/commit/743f9ff63bf1e3825a1788978a9f6bad8ebddc0d) by [@GijsWeterings](https://github.com/GijsWeterings)) +## v0.70.13 + +### Fixed + +- Fix: bumped CLI to address broken backward compatibility ([549ff6380a](https://github.com/facebook/react-native/commit/549ff6380aa1cf85b86545a22fcb4a850995c8e3) by [@Titozzz](https://github.com/Titozzz)) + ## v0.70.12 ### Fixed diff --git a/build.gradle.kts b/build.gradle.kts index c5b21e74cb5016..4149d83015a53a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,8 +7,8 @@ plugins { id("io.github.gradle-nexus.publish-plugin") version "1.1.0" - id("com.android.library") version "8.0.2" apply false - id("com.android.application") version "8.0.2" apply false + id("com.android.library") version "8.1.0" apply false + id("com.android.application") version "8.1.0" apply false id("de.undercouch.download") version "5.0.1" apply false kotlin("android") version "1.8.0" apply false } @@ -30,7 +30,7 @@ version = group = "com.facebook.react" val ndkPath by extra(System.getenv("ANDROID_NDK")) -val ndkVersion by extra(System.getenv("ANDROID_NDK_VERSION") ?: "23.1.7779620") +val ndkVersion by extra(System.getenv("ANDROID_NDK_VERSION") ?: "25.1.8937393") val sonatypeUsername = findProperty("SONATYPE_USERNAME")?.toString() val sonatypePassword = findProperty("SONATYPE_PASSWORD")?.toString() diff --git a/flow-typed/npm/babel-traverse_v7.x.x.js b/flow-typed/npm/babel-traverse_v7.x.x.js index 146ee86677719f..2e3520dd23b98a 100644 --- a/flow-typed/npm/babel-traverse_v7.x.x.js +++ b/flow-typed/npm/babel-traverse_v7.x.x.js @@ -11,7 +11,7 @@ // The sections between BEGIN GENERATED and END GENERATED are generated // by the updateBabelTraverseTypes.js script. You can update the sections with -// node ./xplat/js/tools/metro/scripts/updateBabelTraverseTypes.js path/to/this/file +// node /scripts/updateBabelTraverseTypes.js path/to/this/file 'use strict'; @@ -793,6 +793,7 @@ declare module '@babel/traverse' { // This section is automatically generated. Don't edit by hand. // See the comment at the top of the file on how to update the definitions. // BEGIN GENERATED NODE PATH METHODS + isAccessor(opts?: Opts): boolean; isAnyTypeAnnotation(opts?: Opts): boolean; isArgumentPlaceholder(opts?: Opts): boolean; isArrayExpression(opts?: Opts): boolean; @@ -818,6 +819,7 @@ declare module '@babel/traverse' { isCallExpression(opts?: Opts): boolean; isCatchClause(opts?: Opts): boolean; isClass(opts?: Opts): boolean; + isClassAccessorProperty(opts?: Opts): boolean; isClassBody(opts?: Opts): boolean; isClassDeclaration(opts?: Opts): boolean; isClassExpression(opts?: Opts): boolean; @@ -934,6 +936,7 @@ declare module '@babel/traverse' { isMemberExpression(opts?: Opts): boolean; isMetaProperty(opts?: Opts): boolean; isMethod(opts?: Opts): boolean; + isMiscellaneous(opts?: Opts): boolean; isMixedTypeAnnotation(opts?: Opts): boolean; isModuleDeclaration(opts?: Opts): boolean; isModuleExpression(opts?: Opts): boolean; @@ -991,6 +994,7 @@ declare module '@babel/traverse' { isSequenceExpression(opts?: Opts): boolean; isSpreadElement(opts?: Opts): boolean; isSpreadProperty(opts?: Opts): boolean; + isStandardized(opts?: Opts): boolean; isStatement(opts?: Opts): boolean; isStaticBlock(opts?: Opts): boolean; isStringLiteral(opts?: Opts): boolean; @@ -1024,6 +1028,7 @@ declare module '@babel/traverse' { isTSIndexSignature(opts?: Opts): boolean; isTSIndexedAccessType(opts?: Opts): boolean; isTSInferType(opts?: Opts): boolean; + isTSInstantiationExpression(opts?: Opts): boolean; isTSInterfaceBody(opts?: Opts): boolean; isTSInterfaceDeclaration(opts?: Opts): boolean; isTSIntersectionType(opts?: Opts): boolean; @@ -1046,6 +1051,7 @@ declare module '@babel/traverse' { isTSPropertySignature(opts?: Opts): boolean; isTSQualifiedName(opts?: Opts): boolean; isTSRestType(opts?: Opts): boolean; + isTSSatisfiesExpression(opts?: Opts): boolean; isTSStringKeyword(opts?: Opts): boolean; isTSSymbolKeyword(opts?: Opts): boolean; isTSThisType(opts?: Opts): boolean; @@ -1074,6 +1080,7 @@ declare module '@babel/traverse' { isThisExpression(opts?: Opts): boolean; isThisTypeAnnotation(opts?: Opts): boolean; isThrowStatement(opts?: Opts): boolean; + isTopicReference(opts?: Opts): boolean; isTryStatement(opts?: Opts): boolean; isTupleExpression(opts?: Opts): boolean; isTupleTypeAnnotation(opts?: Opts): boolean; @@ -1083,6 +1090,7 @@ declare module '@babel/traverse' { isTypeParameter(opts?: Opts): boolean; isTypeParameterDeclaration(opts?: Opts): boolean; isTypeParameterInstantiation(opts?: Opts): boolean; + isTypeScript(opts?: Opts): boolean; isTypeofTypeAnnotation(opts?: Opts): boolean; isUnaryExpression(opts?: Opts): boolean; isUnaryLike(opts?: Opts): boolean; @@ -1100,6 +1108,7 @@ declare module '@babel/traverse' { isWhileStatement(opts?: Opts): boolean; isWithStatement(opts?: Opts): boolean; isYieldExpression(opts?: Opts): boolean; + assertAccessor(opts?: Opts): void; assertAnyTypeAnnotation(opts?: Opts): void; assertArgumentPlaceholder(opts?: Opts): void; assertArrayExpression(opts?: Opts): void; @@ -1125,6 +1134,7 @@ declare module '@babel/traverse' { assertCallExpression(opts?: Opts): void; assertCatchClause(opts?: Opts): void; assertClass(opts?: Opts): void; + assertClassAccessorProperty(opts?: Opts): void; assertClassBody(opts?: Opts): void; assertClassDeclaration(opts?: Opts): void; assertClassExpression(opts?: Opts): void; @@ -1241,6 +1251,7 @@ declare module '@babel/traverse' { assertMemberExpression(opts?: Opts): void; assertMetaProperty(opts?: Opts): void; assertMethod(opts?: Opts): void; + assertMiscellaneous(opts?: Opts): void; assertMixedTypeAnnotation(opts?: Opts): void; assertModuleDeclaration(opts?: Opts): void; assertModuleExpression(opts?: Opts): void; @@ -1298,6 +1309,7 @@ declare module '@babel/traverse' { assertSequenceExpression(opts?: Opts): void; assertSpreadElement(opts?: Opts): void; assertSpreadProperty(opts?: Opts): void; + assertStandardized(opts?: Opts): void; assertStatement(opts?: Opts): void; assertStaticBlock(opts?: Opts): void; assertStringLiteral(opts?: Opts): void; @@ -1331,6 +1343,7 @@ declare module '@babel/traverse' { assertTSIndexSignature(opts?: Opts): void; assertTSIndexedAccessType(opts?: Opts): void; assertTSInferType(opts?: Opts): void; + assertTSInstantiationExpression(opts?: Opts): void; assertTSInterfaceBody(opts?: Opts): void; assertTSInterfaceDeclaration(opts?: Opts): void; assertTSIntersectionType(opts?: Opts): void; @@ -1353,6 +1366,7 @@ declare module '@babel/traverse' { assertTSPropertySignature(opts?: Opts): void; assertTSQualifiedName(opts?: Opts): void; assertTSRestType(opts?: Opts): void; + assertTSSatisfiesExpression(opts?: Opts): void; assertTSStringKeyword(opts?: Opts): void; assertTSSymbolKeyword(opts?: Opts): void; assertTSThisType(opts?: Opts): void; @@ -1381,6 +1395,7 @@ declare module '@babel/traverse' { assertThisExpression(opts?: Opts): void; assertThisTypeAnnotation(opts?: Opts): void; assertThrowStatement(opts?: Opts): void; + assertTopicReference(opts?: Opts): void; assertTryStatement(opts?: Opts): void; assertTupleExpression(opts?: Opts): void; assertTupleTypeAnnotation(opts?: Opts): void; @@ -1390,6 +1405,7 @@ declare module '@babel/traverse' { assertTypeParameter(opts?: Opts): void; assertTypeParameterDeclaration(opts?: Opts): void; assertTypeParameterInstantiation(opts?: Opts): void; + assertTypeScript(opts?: Opts): void; assertTypeofTypeAnnotation(opts?: Opts): void; assertUnaryExpression(opts?: Opts): void; assertUnaryLike(opts?: Opts): void; @@ -1431,6 +1447,7 @@ declare module '@babel/traverse' { // This section is automatically generated. Don't edit by hand. // See the comment at the top of the file on how to update the definitions. // BEGIN GENERATED VISITOR METHODS + Accessor?: VisitNode, AnyTypeAnnotation?: VisitNode, ArgumentPlaceholder?: VisitNode, ArrayExpression?: VisitNode, @@ -1462,6 +1479,7 @@ declare module '@babel/traverse' { CallExpression?: VisitNode, CatchClause?: VisitNode, Class?: VisitNode, + ClassAccessorProperty?: VisitNode, ClassBody?: VisitNode, ClassDeclaration?: VisitNode, ClassExpression?: VisitNode, @@ -1598,6 +1616,7 @@ declare module '@babel/traverse' { MemberExpression?: VisitNode, MetaProperty?: VisitNode, Method?: VisitNode, + Miscellaneous?: VisitNode, MixedTypeAnnotation?: VisitNode, ModuleDeclaration?: VisitNode, ModuleExpression?: VisitNode, @@ -1682,6 +1701,7 @@ declare module '@babel/traverse' { SequenceExpression?: VisitNode, SpreadElement?: VisitNode, SpreadProperty?: VisitNode, + Standardized?: VisitNode, Statement?: VisitNode, StaticBlock?: VisitNode, StringLiteral?: VisitNode, @@ -1733,6 +1753,10 @@ declare module '@babel/traverse' { TSIndexSignature?: VisitNode, TSIndexedAccessType?: VisitNode, TSInferType?: VisitNode, + TSInstantiationExpression?: VisitNode< + BabelNodeTSInstantiationExpression, + TState, + >, TSInterfaceBody?: VisitNode, TSInterfaceDeclaration?: VisitNode, TSIntersectionType?: VisitNode, @@ -1758,6 +1782,7 @@ declare module '@babel/traverse' { TSPropertySignature?: VisitNode, TSQualifiedName?: VisitNode, TSRestType?: VisitNode, + TSSatisfiesExpression?: VisitNode, TSStringKeyword?: VisitNode, TSSymbolKeyword?: VisitNode, TSThisType?: VisitNode, @@ -1795,6 +1820,7 @@ declare module '@babel/traverse' { ThisExpression?: VisitNode, ThisTypeAnnotation?: VisitNode, ThrowStatement?: VisitNode, + TopicReference?: VisitNode, TryStatement?: VisitNode, TupleExpression?: VisitNode, TupleTypeAnnotation?: VisitNode, @@ -1810,6 +1836,7 @@ declare module '@babel/traverse' { BabelNodeTypeParameterInstantiation, TState, >, + TypeScript?: VisitNode, TypeofTypeAnnotation?: VisitNode, UnaryExpression?: VisitNode, UnaryLike?: VisitNode, diff --git a/flow-typed/npm/babel-types_v7.x.x.js b/flow-typed/npm/babel-types_v7.x.x.js index 339c7e6c7394ee..74249fe3c2fd76 100644 --- a/flow-typed/npm/babel-types_v7.x.x.js +++ b/flow-typed/npm/babel-types_v7.x.x.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * @generated - * See xplat/js/tools/metro/scripts/updateBabelTypesFlowTypes.js. + * See /scripts/updateBabelTypesFlowTypes.js. * @flow strict */ @@ -72,7 +72,7 @@ declare type BabelNodeBinaryExpression = { end: ?number; loc: ?BabelNodeSourceLocation, type: "BinaryExpression"; - operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<="; + operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>"; left: BabelNodeExpression | BabelNodePrivateName; right: BabelNodeExpression; }; @@ -141,7 +141,7 @@ declare type BabelNodeCallExpression = { end: ?number; loc: ?BabelNodeSourceLocation, type: "CallExpression"; - callee: BabelNodeExpression | BabelNodeV8IntrinsicIdentifier; + callee: BabelNodeExpression | BabelNodeSuper | BabelNodeV8IntrinsicIdentifier; arguments: Array; optional?: true | false; typeArguments?: BabelNodeTypeParameterInstantiation; @@ -276,11 +276,12 @@ declare type BabelNodeFunctionDeclaration = { loc: ?BabelNodeSourceLocation, type: "FunctionDeclaration"; id?: BabelNodeIdentifier; - params: Array; + params: Array; body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; declare?: boolean; + predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; }; @@ -294,10 +295,11 @@ declare type BabelNodeFunctionExpression = { loc: ?BabelNodeSourceLocation, type: "FunctionExpression"; id?: BabelNodeIdentifier; - params: Array; + params: Array; body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; + predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; }; @@ -417,7 +419,7 @@ declare type BabelNodeMemberExpression = { end: ?number; loc: ?BabelNodeSourceLocation, type: "MemberExpression"; - object: BabelNodeExpression; + object: BabelNodeExpression | BabelNodeSuper; property: BabelNodeExpression | BabelNodeIdentifier | BabelNodePrivateName; computed?: boolean; optional?: true | false; @@ -431,7 +433,7 @@ declare type BabelNodeNewExpression = { end: ?number; loc: ?BabelNodeSourceLocation, type: "NewExpression"; - callee: BabelNodeExpression | BabelNodeV8IntrinsicIdentifier; + callee: BabelNodeExpression | BabelNodeSuper | BabelNodeV8IntrinsicIdentifier; arguments: Array; optional?: true | false; typeArguments?: BabelNodeTypeParameterInstantiation; @@ -473,8 +475,8 @@ declare type BabelNodeObjectMethod = { loc: ?BabelNodeSourceLocation, type: "ObjectMethod"; kind?: "method" | "get" | "set"; - key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral; - params: Array; + key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral; + params: Array; body: BabelNodeBlockStatement; computed?: boolean; generator?: boolean; @@ -492,7 +494,7 @@ declare type BabelNodeObjectProperty = { end: ?number; loc: ?BabelNodeSourceLocation, type: "ObjectProperty"; - key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral; + key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral | BabelNodePrivateName; value: BabelNodeExpression | BabelNodePatternLike; computed?: boolean; shorthand?: boolean; @@ -509,6 +511,7 @@ declare type BabelNodeRestElement = { type: "RestElement"; argument: BabelNodeLVal; decorators?: Array; + optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; }; @@ -637,7 +640,7 @@ declare type BabelNodeVariableDeclaration = { end: ?number; loc: ?BabelNodeSourceLocation, type: "VariableDeclaration"; - kind: "var" | "let" | "const"; + kind: "var" | "let" | "const" | "using"; declarations: Array; declare?: boolean; }; @@ -687,7 +690,7 @@ declare type BabelNodeAssignmentPattern = { end: ?number; loc: ?BabelNodeSourceLocation, type: "AssignmentPattern"; - left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression; + left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; right: BabelNodeExpression; decorators?: Array; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; @@ -701,8 +704,9 @@ declare type BabelNodeArrayPattern = { end: ?number; loc: ?BabelNodeSourceLocation, type: "ArrayPattern"; - elements: Array; + elements: Array; decorators?: Array; + optional?: boolean; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; }; @@ -714,11 +718,12 @@ declare type BabelNodeArrowFunctionExpression = { end: ?number; loc: ?BabelNodeSourceLocation, type: "ArrowFunctionExpression"; - params: Array; + params: Array; body: BabelNodeBlockStatement | BabelNodeExpression; async?: boolean; expression: boolean; generator?: boolean; + predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; }; @@ -731,7 +736,7 @@ declare type BabelNodeClassBody = { end: ?number; loc: ?BabelNodeSourceLocation, type: "ClassBody"; - body: Array; + body: Array; }; declare type BabelNodeClassExpression = { @@ -793,7 +798,8 @@ declare type BabelNodeExportDefaultDeclaration = { end: ?number; loc: ?BabelNodeSourceLocation, type: "ExportDefaultDeclaration"; - declaration: BabelNodeFunctionDeclaration | BabelNodeTSDeclareFunction | BabelNodeClassDeclaration | BabelNodeExpression; + declaration: BabelNodeTSDeclareFunction | BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression; + exportKind?: "value"; }; declare type BabelNodeExportNamedDeclaration = { @@ -821,6 +827,7 @@ declare type BabelNodeExportSpecifier = { type: "ExportSpecifier"; local: BabelNodeIdentifier; exported: BabelNodeIdentifier | BabelNodeStringLiteral; + exportKind?: "type" | "value"; }; declare type BabelNodeForOfStatement = { @@ -849,6 +856,7 @@ declare type BabelNodeImportDeclaration = { source: BabelNodeStringLiteral; assertions?: Array; importKind?: "type" | "typeof" | "value"; + module?: boolean; }; declare type BabelNodeImportDefaultSpecifier = { @@ -883,7 +891,7 @@ declare type BabelNodeImportSpecifier = { type: "ImportSpecifier"; local: BabelNodeIdentifier; imported: BabelNodeIdentifier | BabelNodeStringLiteral; - importKind?: "type" | "typeof"; + importKind?: "type" | "typeof" | "value"; }; declare type BabelNodeMetaProperty = { @@ -907,7 +915,7 @@ declare type BabelNodeClassMethod = { loc: ?BabelNodeSourceLocation, type: "ClassMethod"; kind?: "get" | "set" | "method" | "constructor"; - key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression; + key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression; params: Array; body: BabelNodeBlockStatement; computed?: boolean; @@ -979,7 +987,7 @@ declare type BabelNodeTemplateElement = { end: ?number; loc: ?BabelNodeSourceLocation, type: "TemplateElement"; - value: { raw: string, cooked?: string }; + value: any; tail?: boolean; }; @@ -1079,6 +1087,120 @@ declare type BabelNodeOptionalCallExpression = { typeParameters?: BabelNodeTSTypeParameterInstantiation; }; +declare type BabelNodeClassProperty = { + leadingComments?: Array; + innerComments?: Array; + trailingComments?: Array; + start: ?number; + end: ?number; + loc: ?BabelNodeSourceLocation, + type: "ClassProperty"; + key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression; + value?: BabelNodeExpression; + typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; + decorators?: Array; + computed?: boolean; + static?: boolean; + abstract?: boolean; + accessibility?: "public" | "private" | "protected"; + declare?: boolean; + definite?: boolean; + optional?: boolean; + override?: boolean; + readonly?: boolean; + variance?: BabelNodeVariance; +}; + +declare type BabelNodeClassAccessorProperty = { + leadingComments?: Array; + innerComments?: Array; + trailingComments?: Array; + start: ?number; + end: ?number; + loc: ?BabelNodeSourceLocation, + type: "ClassAccessorProperty"; + key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression | BabelNodePrivateName; + value?: BabelNodeExpression; + typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; + decorators?: Array; + computed?: boolean; + static?: boolean; + abstract?: boolean; + accessibility?: "public" | "private" | "protected"; + declare?: boolean; + definite?: boolean; + optional?: boolean; + override?: boolean; + readonly?: boolean; + variance?: BabelNodeVariance; +}; + +declare type BabelNodeClassPrivateProperty = { + leadingComments?: Array; + innerComments?: Array; + trailingComments?: Array; + start: ?number; + end: ?number; + loc: ?BabelNodeSourceLocation, + type: "ClassPrivateProperty"; + key: BabelNodePrivateName; + value?: BabelNodeExpression; + decorators?: Array; + static?: boolean; + definite?: boolean; + readonly?: boolean; + typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; + variance?: BabelNodeVariance; +}; + +declare type BabelNodeClassPrivateMethod = { + leadingComments?: Array; + innerComments?: Array; + trailingComments?: Array; + start: ?number; + end: ?number; + loc: ?BabelNodeSourceLocation, + type: "ClassPrivateMethod"; + kind?: "get" | "set" | "method"; + key: BabelNodePrivateName; + params: Array; + body: BabelNodeBlockStatement; + static?: boolean; + abstract?: boolean; + access?: "public" | "private" | "protected"; + accessibility?: "public" | "private" | "protected"; + async?: boolean; + computed?: boolean; + decorators?: Array; + generator?: boolean; + optional?: boolean; + override?: boolean; + returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; + typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; +}; + +declare type BabelNodePrivateName = { + leadingComments?: Array; + innerComments?: Array; + trailingComments?: Array; + start: ?number; + end: ?number; + loc: ?BabelNodeSourceLocation, + type: "PrivateName"; + id: BabelNodeIdentifier; +}; + +declare type BabelNodeStaticBlock = { + leadingComments?: Array; + innerComments?: Array; + trailingComments?: Array; + start: ?number; + end: ?number; + loc: ?BabelNodeSourceLocation, + type: "StaticBlock"; + body: Array; +}; + declare type BabelNodeAnyTypeAnnotation = { leadingComments?: Array; innerComments?: Array; @@ -1235,6 +1357,7 @@ declare type BabelNodeDeclareOpaqueType = { id: BabelNodeIdentifier; typeParameters?: BabelNodeTypeParameterDeclaration; supertype?: BabelNodeFlowType; + impltype?: BabelNodeFlowType; }; declare type BabelNodeDeclareVariable = { @@ -2091,212 +2214,136 @@ declare type BabelNodeBindExpression = { callee: BabelNodeExpression; }; -declare type BabelNodeClassProperty = { +declare type BabelNodeImportAttribute = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "ClassProperty"; - key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression; - value?: BabelNodeExpression; - typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; - decorators?: Array; - computed?: boolean; - static?: boolean; - abstract?: boolean; - accessibility?: "public" | "private" | "protected"; - declare?: boolean; - definite?: boolean; - optional?: boolean; - override?: boolean; - readonly?: boolean; + type: "ImportAttribute"; + key: BabelNodeIdentifier | BabelNodeStringLiteral; + value: BabelNodeStringLiteral; }; -declare type BabelNodePipelineTopicExpression = { +declare type BabelNodeDecorator = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "PipelineTopicExpression"; + type: "Decorator"; expression: BabelNodeExpression; }; -declare type BabelNodePipelineBareFunction = { - leadingComments?: Array; - innerComments?: Array; - trailingComments?: Array; - start: ?number; - end: ?number; - loc: ?BabelNodeSourceLocation, - type: "PipelineBareFunction"; - callee: BabelNodeExpression; -}; - -declare type BabelNodePipelinePrimaryTopicReference = { - leadingComments?: Array; - innerComments?: Array; - trailingComments?: Array; - start: ?number; - end: ?number; - loc: ?BabelNodeSourceLocation, - type: "PipelinePrimaryTopicReference"; -}; - -declare type BabelNodeClassPrivateProperty = { - leadingComments?: Array; - innerComments?: Array; - trailingComments?: Array; - start: ?number; - end: ?number; - loc: ?BabelNodeSourceLocation, - type: "ClassPrivateProperty"; - key: BabelNodePrivateName; - value?: BabelNodeExpression; - decorators?: Array; - static: any; - typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; -}; - -declare type BabelNodeClassPrivateMethod = { +declare type BabelNodeDoExpression = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "ClassPrivateMethod"; - kind?: "get" | "set" | "method" | "constructor"; - key: BabelNodePrivateName; - params: Array; + type: "DoExpression"; body: BabelNodeBlockStatement; - static?: boolean; - abstract?: boolean; - access?: "public" | "private" | "protected"; - accessibility?: "public" | "private" | "protected"; async?: boolean; - computed?: boolean; - decorators?: Array; - generator?: boolean; - optional?: boolean; - override?: boolean; - returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; - typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; }; -declare type BabelNodeImportAttribute = { - leadingComments?: Array; - innerComments?: Array; - trailingComments?: Array; - start: ?number; - end: ?number; - loc: ?BabelNodeSourceLocation, - type: "ImportAttribute"; - key: BabelNodeIdentifier | BabelNodeStringLiteral; - value: BabelNodeStringLiteral; -}; - -declare type BabelNodeDecorator = { +declare type BabelNodeExportDefaultSpecifier = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "Decorator"; - expression: BabelNodeExpression; + type: "ExportDefaultSpecifier"; + exported: BabelNodeIdentifier; }; -declare type BabelNodeDoExpression = { +declare type BabelNodeRecordExpression = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "DoExpression"; - body: BabelNodeBlockStatement; - async?: boolean; + type: "RecordExpression"; + properties: Array; }; -declare type BabelNodeExportDefaultSpecifier = { +declare type BabelNodeTupleExpression = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "ExportDefaultSpecifier"; - exported: BabelNodeIdentifier; + type: "TupleExpression"; + elements?: Array; }; -declare type BabelNodePrivateName = { +declare type BabelNodeDecimalLiteral = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "PrivateName"; - id: BabelNodeIdentifier; + type: "DecimalLiteral"; + value: string; }; -declare type BabelNodeRecordExpression = { +declare type BabelNodeModuleExpression = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "RecordExpression"; - properties: Array; + type: "ModuleExpression"; + body: BabelNodeProgram; }; -declare type BabelNodeTupleExpression = { +declare type BabelNodeTopicReference = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "TupleExpression"; - elements?: Array; + type: "TopicReference"; }; -declare type BabelNodeDecimalLiteral = { +declare type BabelNodePipelineTopicExpression = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "DecimalLiteral"; - value: string; + type: "PipelineTopicExpression"; + expression: BabelNodeExpression; }; -declare type BabelNodeStaticBlock = { +declare type BabelNodePipelineBareFunction = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "StaticBlock"; - body: Array; + type: "PipelineBareFunction"; + callee: BabelNodeExpression; }; -declare type BabelNodeModuleExpression = { +declare type BabelNodePipelinePrimaryTopicReference = { leadingComments?: Array; innerComments?: Array; trailingComments?: Array; start: ?number; end: ?number; loc: ?BabelNodeSourceLocation, - type: "ModuleExpression"; - body: BabelNodeProgram; + type: "PipelinePrimaryTopicReference"; }; declare type BabelNodeTSParameterProperty = { @@ -2309,6 +2356,8 @@ declare type BabelNodeTSParameterProperty = { type: "TSParameterProperty"; parameter: BabelNodeIdentifier | BabelNodeAssignmentPattern; accessibility?: "public" | "private" | "protected"; + decorators?: Array; + override?: boolean; readonly?: boolean; }; @@ -2322,7 +2371,7 @@ declare type BabelNodeTSDeclareFunction = { type: "TSDeclareFunction"; id?: BabelNodeIdentifier; typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; - params: Array; + params: Array; returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop; async?: boolean; declare?: boolean; @@ -2338,7 +2387,7 @@ declare type BabelNodeTSDeclareMethod = { loc: ?BabelNodeSourceLocation, type: "TSDeclareMethod"; decorators?: Array; - key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression; + key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression; typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; params: Array; returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop; @@ -2404,6 +2453,7 @@ declare type BabelNodeTSPropertySignature = { typeAnnotation?: BabelNodeTSTypeAnnotation; initializer?: BabelNodeExpression; computed?: boolean; + kind: "get" | "set"; optional?: boolean; readonly?: boolean; }; @@ -2640,6 +2690,7 @@ declare type BabelNodeTSTypeQuery = { loc: ?BabelNodeSourceLocation, type: "TSTypeQuery"; exprName: BabelNodeTSEntityName | BabelNodeTSImportType; + typeParameters?: BabelNodeTSTypeParameterInstantiation; }; declare type BabelNodeTSTypeLiteral = { @@ -2803,8 +2854,8 @@ declare type BabelNodeTSMappedType = { typeParameter: BabelNodeTSTypeParameter; typeAnnotation?: BabelNodeTSType; nameType?: BabelNodeTSType; - optional?: boolean; - readonly?: boolean; + optional?: true | false | "+" | "-"; + readonly?: true | false | "+" | "-"; }; declare type BabelNodeTSLiteralType = { @@ -2815,7 +2866,7 @@ declare type BabelNodeTSLiteralType = { end: ?number; loc: ?BabelNodeSourceLocation, type: "TSLiteralType"; - literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral; + literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral | BabelNodeTemplateLiteral | BabelNodeUnaryExpression; }; declare type BabelNodeTSExpressionWithTypeArguments = { @@ -2870,6 +2921,18 @@ declare type BabelNodeTSTypeAliasDeclaration = { declare?: boolean; }; +declare type BabelNodeTSInstantiationExpression = { + leadingComments?: Array; + innerComments?: Array; + trailingComments?: Array; + start: ?number; + end: ?number; + loc: ?BabelNodeSourceLocation, + type: "TSInstantiationExpression"; + expression: BabelNodeExpression; + typeParameters?: BabelNodeTSTypeParameterInstantiation; +}; + declare type BabelNodeTSAsExpression = { leadingComments?: Array; innerComments?: Array; @@ -2882,6 +2945,18 @@ declare type BabelNodeTSAsExpression = { typeAnnotation: BabelNodeTSType; }; +declare type BabelNodeTSSatisfiesExpression = { + leadingComments?: Array; + innerComments?: Array; + trailingComments?: Array; + start: ?number; + end: ?number; + loc: ?BabelNodeSourceLocation, + type: "TSSatisfiesExpression"; + expression: BabelNodeExpression; + typeAnnotation: BabelNodeTSType; +}; + declare type BabelNodeTSTypeAssertion = { leadingComments?: Array; innerComments?: Array; @@ -2969,6 +3044,7 @@ declare type BabelNodeTSImportEqualsDeclaration = { type: "TSImportEqualsDeclaration"; id: BabelNodeIdentifier; moduleReference: BabelNodeTSEntityName | BabelNodeTSExternalModuleReference; + importKind?: "type" | "value"; isExport: boolean; }; @@ -3060,10 +3136,13 @@ declare type BabelNodeTSTypeParameter = { constraint?: BabelNodeTSType; default?: BabelNodeTSType; name: string; + in?: boolean; + out?: boolean; }; -declare type BabelNode = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeInterpreterDirective | BabelNodeDirective | BabelNodeDirectiveLiteral | BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeCallExpression | BabelNodeCatchClause | BabelNodeConditionalExpression | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeFile | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeProgram | BabelNodeObjectExpression | BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeRestElement | BabelNodeReturnStatement | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeSwitchCase | BabelNodeSwitchStatement | BabelNodeThisExpression | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeVariableDeclaration | BabelNodeVariableDeclarator | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeArrowFunctionExpression | BabelNodeClassBody | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeExportSpecifier | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeMetaProperty | BabelNodeClassMethod | BabelNodeObjectPattern | BabelNodeSpreadElement | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateElement | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeExportNamespaceSpecifier | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeDeclaredPredicate | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInferredPredicate | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeInterfaceTypeAnnotation | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeInternalSlot | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty | BabelNodeOpaqueType | BabelNodeQualifiedTypeIdentifier | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameter | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeUnionTypeAnnotation | BabelNodeVariance | BabelNodeVoidTypeAnnotation | BabelNodeEnumDeclaration | BabelNodeEnumBooleanBody | BabelNodeEnumNumberBody | BabelNodeEnumStringBody | BabelNodeEnumSymbolBody | BabelNodeEnumBooleanMember | BabelNodeEnumNumberMember | BabelNodeEnumStringMember | BabelNodeEnumDefaultedMember | BabelNodeIndexedAccessType | BabelNodeOptionalIndexedAccessType | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment | BabelNodeNoop | BabelNodePlaceholder | BabelNodeV8IntrinsicIdentifier | BabelNodeArgumentPlaceholder | BabelNodeBindExpression | BabelNodeClassProperty | BabelNodePipelineTopicExpression | BabelNodePipelineBareFunction | BabelNodePipelinePrimaryTopicReference | BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodeImportAttribute | BabelNodeDecorator | BabelNodeDoExpression | BabelNodeExportDefaultSpecifier | BabelNodePrivateName | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeStaticBlock | BabelNodeModuleExpression | BabelNodeTSParameterProperty | BabelNodeTSDeclareFunction | BabelNodeTSDeclareMethod | BabelNodeTSQualifiedName | BabelNodeTSCallSignatureDeclaration | BabelNodeTSConstructSignatureDeclaration | BabelNodeTSPropertySignature | BabelNodeTSMethodSignature | BabelNodeTSIndexSignature | BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSFunctionType | BabelNodeTSConstructorType | BabelNodeTSTypeReference | BabelNodeTSTypePredicate | BabelNodeTSTypeQuery | BabelNodeTSTypeLiteral | BabelNodeTSArrayType | BabelNodeTSTupleType | BabelNodeTSOptionalType | BabelNodeTSRestType | BabelNodeTSNamedTupleMember | BabelNodeTSUnionType | BabelNodeTSIntersectionType | BabelNodeTSConditionalType | BabelNodeTSInferType | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments | BabelNodeTSInterfaceDeclaration | BabelNodeTSInterfaceBody | BabelNodeTSTypeAliasDeclaration | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSEnumDeclaration | BabelNodeTSEnumMember | BabelNodeTSModuleDeclaration | BabelNodeTSModuleBlock | BabelNodeTSImportType | BabelNodeTSImportEqualsDeclaration | BabelNodeTSExternalModuleReference | BabelNodeTSNonNullExpression | BabelNodeTSExportAssignment | BabelNodeTSNamespaceExportDeclaration | BabelNodeTSTypeAnnotation | BabelNodeTSTypeParameterInstantiation | BabelNodeTSTypeParameterDeclaration | BabelNodeTSTypeParameter; -declare type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeBindExpression | BabelNodePipelinePrimaryTopicReference | BabelNodeDoExpression | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeModuleExpression | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; +declare type BabelNode = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeInterpreterDirective | BabelNodeDirective | BabelNodeDirectiveLiteral | BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeCallExpression | BabelNodeCatchClause | BabelNodeConditionalExpression | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeFile | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeProgram | BabelNodeObjectExpression | BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeRestElement | BabelNodeReturnStatement | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeSwitchCase | BabelNodeSwitchStatement | BabelNodeThisExpression | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeVariableDeclaration | BabelNodeVariableDeclarator | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeArrowFunctionExpression | BabelNodeClassBody | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeExportSpecifier | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeMetaProperty | BabelNodeClassMethod | BabelNodeObjectPattern | BabelNodeSpreadElement | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateElement | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeExportNamespaceSpecifier | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeClassProperty | BabelNodeClassAccessorProperty | BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName | BabelNodeStaticBlock | BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeDeclaredPredicate | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInferredPredicate | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeInterfaceTypeAnnotation | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeInternalSlot | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty | BabelNodeOpaqueType | BabelNodeQualifiedTypeIdentifier | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameter | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeUnionTypeAnnotation | BabelNodeVariance | BabelNodeVoidTypeAnnotation | BabelNodeEnumDeclaration | BabelNodeEnumBooleanBody | BabelNodeEnumNumberBody | BabelNodeEnumStringBody | BabelNodeEnumSymbolBody | BabelNodeEnumBooleanMember | BabelNodeEnumNumberMember | BabelNodeEnumStringMember | BabelNodeEnumDefaultedMember | BabelNodeIndexedAccessType | BabelNodeOptionalIndexedAccessType | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment | BabelNodeNoop | BabelNodePlaceholder | BabelNodeV8IntrinsicIdentifier | BabelNodeArgumentPlaceholder | BabelNodeBindExpression | BabelNodeImportAttribute | BabelNodeDecorator | BabelNodeDoExpression | BabelNodeExportDefaultSpecifier | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeModuleExpression | BabelNodeTopicReference | BabelNodePipelineTopicExpression | BabelNodePipelineBareFunction | BabelNodePipelinePrimaryTopicReference | BabelNodeTSParameterProperty | BabelNodeTSDeclareFunction | BabelNodeTSDeclareMethod | BabelNodeTSQualifiedName | BabelNodeTSCallSignatureDeclaration | BabelNodeTSConstructSignatureDeclaration | BabelNodeTSPropertySignature | BabelNodeTSMethodSignature | BabelNodeTSIndexSignature | BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSFunctionType | BabelNodeTSConstructorType | BabelNodeTSTypeReference | BabelNodeTSTypePredicate | BabelNodeTSTypeQuery | BabelNodeTSTypeLiteral | BabelNodeTSArrayType | BabelNodeTSTupleType | BabelNodeTSOptionalType | BabelNodeTSRestType | BabelNodeTSNamedTupleMember | BabelNodeTSUnionType | BabelNodeTSIntersectionType | BabelNodeTSConditionalType | BabelNodeTSInferType | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments | BabelNodeTSInterfaceDeclaration | BabelNodeTSInterfaceBody | BabelNodeTSTypeAliasDeclaration | BabelNodeTSInstantiationExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSEnumDeclaration | BabelNodeTSEnumMember | BabelNodeTSModuleDeclaration | BabelNodeTSModuleBlock | BabelNodeTSImportType | BabelNodeTSImportEqualsDeclaration | BabelNodeTSExternalModuleReference | BabelNodeTSNonNullExpression | BabelNodeTSExportAssignment | BabelNodeTSNamespaceExportDeclaration | BabelNodeTSTypeAnnotation | BabelNodeTSTypeParameterInstantiation | BabelNodeTSTypeParameterDeclaration | BabelNodeTSTypeParameter; +declare type BabelNodeStandardized = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeInterpreterDirective | BabelNodeDirective | BabelNodeDirectiveLiteral | BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeCallExpression | BabelNodeCatchClause | BabelNodeConditionalExpression | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeFile | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeProgram | BabelNodeObjectExpression | BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeRestElement | BabelNodeReturnStatement | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeSwitchCase | BabelNodeSwitchStatement | BabelNodeThisExpression | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeVariableDeclaration | BabelNodeVariableDeclarator | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeArrowFunctionExpression | BabelNodeClassBody | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeExportSpecifier | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeMetaProperty | BabelNodeClassMethod | BabelNodeObjectPattern | BabelNodeSpreadElement | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateElement | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeExportNamespaceSpecifier | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeClassProperty | BabelNodeClassAccessorProperty | BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName | BabelNodeStaticBlock; +declare type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeBindExpression | BabelNodeDoExpression | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeModuleExpression | BabelNodeTopicReference | BabelNodePipelineTopicExpression | BabelNodePipelineBareFunction | BabelNodePipelinePrimaryTopicReference | BabelNodeTSInstantiationExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; declare type BabelNodeBinary = BabelNodeBinaryExpression | BabelNodeLogicalExpression; declare type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeStaticBlock | BabelNodeTSModuleBlock; declare type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeStaticBlock | BabelNodeTSModuleBlock; @@ -3078,25 +3157,27 @@ declare type BabelNodeExpressionWrapper = BabelNodeExpressionStatement | BabelNo declare type BabelNodeFor = BabelNodeForInStatement | BabelNodeForStatement | BabelNodeForOfStatement; declare type BabelNodeForXStatement = BabelNodeForInStatement | BabelNodeForOfStatement; declare type BabelNodeFunction = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod | BabelNodeClassPrivateMethod; -declare type BabelNodeFunctionParent = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod | BabelNodeClassPrivateMethod; +declare type BabelNodeFunctionParent = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeStaticBlock | BabelNodeTSModuleBlock; declare type BabelNodePureish = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeArrowFunctionExpression | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral; declare type BabelNodeDeclaration = BabelNodeFunctionDeclaration | BabelNodeVariableDeclaration | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeInterfaceDeclaration | BabelNodeOpaqueType | BabelNodeTypeAlias | BabelNodeEnumDeclaration | BabelNodeTSDeclareFunction | BabelNodeTSInterfaceDeclaration | BabelNodeTSTypeAliasDeclaration | BabelNodeTSEnumDeclaration | BabelNodeTSModuleDeclaration; -declare type BabelNodePatternLike = BabelNodeIdentifier | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; -declare type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern | BabelNodeTSParameterProperty; +declare type BabelNodePatternLike = BabelNodeIdentifier | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; +declare type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern | BabelNodeTSParameterProperty | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; declare type BabelNodeTSEntityName = BabelNodeIdentifier | BabelNodeTSQualifiedName; declare type BabelNodeLiteral = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeTemplateLiteral | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral; declare type BabelNodeImmutable = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXOpeningElement | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment | BabelNodeDecimalLiteral; declare type BabelNodeUserWhitespacable = BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeObjectTypeInternalSlot | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty; declare type BabelNodeMethod = BabelNodeObjectMethod | BabelNodeClassMethod | BabelNodeClassPrivateMethod; declare type BabelNodeObjectMember = BabelNodeObjectMethod | BabelNodeObjectProperty; -declare type BabelNodeProperty = BabelNodeObjectProperty | BabelNodeClassProperty | BabelNodeClassPrivateProperty; +declare type BabelNodeProperty = BabelNodeObjectProperty | BabelNodeClassProperty | BabelNodeClassAccessorProperty | BabelNodeClassPrivateProperty; declare type BabelNodeUnaryLike = BabelNodeUnaryExpression | BabelNodeSpreadElement; declare type BabelNodePattern = BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; declare type BabelNodeClass = BabelNodeClassExpression | BabelNodeClassDeclaration; declare type BabelNodeModuleDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration; declare type BabelNodeExportDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration; declare type BabelNodeModuleSpecifier = BabelNodeExportSpecifier | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeExportNamespaceSpecifier | BabelNodeExportDefaultSpecifier; -declare type BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeDeclaredPredicate | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInferredPredicate | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeInterfaceTypeAnnotation | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeInternalSlot | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty | BabelNodeOpaqueType | BabelNodeQualifiedTypeIdentifier | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameter | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeUnionTypeAnnotation | BabelNodeVariance | BabelNodeVoidTypeAnnotation | BabelNodeIndexedAccessType | BabelNodeOptionalIndexedAccessType; +declare type BabelNodeAccessor = BabelNodeClassAccessorProperty; +declare type BabelNodePrivate = BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName; +declare type BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeDeclaredPredicate | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInferredPredicate | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeInterfaceTypeAnnotation | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeInternalSlot | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty | BabelNodeOpaqueType | BabelNodeQualifiedTypeIdentifier | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameter | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeUnionTypeAnnotation | BabelNodeVariance | BabelNodeVoidTypeAnnotation | BabelNodeEnumDeclaration | BabelNodeEnumBooleanBody | BabelNodeEnumNumberBody | BabelNodeEnumStringBody | BabelNodeEnumSymbolBody | BabelNodeEnumBooleanMember | BabelNodeEnumNumberMember | BabelNodeEnumStringMember | BabelNodeEnumDefaultedMember | BabelNodeIndexedAccessType | BabelNodeOptionalIndexedAccessType; declare type BabelNodeFlowType = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeExistsTypeAnnotation | BabelNodeFunctionTypeAnnotation | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceTypeAnnotation | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumberLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeObjectTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation | BabelNodeIndexedAccessType | BabelNodeOptionalIndexedAccessType; declare type BabelNodeFlowBaseAnnotation = BabelNodeAnyTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeSymbolTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeVoidTypeAnnotation; declare type BabelNodeFlowDeclaration = BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeInterfaceDeclaration | BabelNodeOpaqueType | BabelNodeTypeAlias; @@ -3104,7 +3185,8 @@ declare type BabelNodeFlowPredicate = BabelNodeDeclaredPredicate | BabelNodeInfe declare type BabelNodeEnumBody = BabelNodeEnumBooleanBody | BabelNodeEnumNumberBody | BabelNodeEnumStringBody | BabelNodeEnumSymbolBody; declare type BabelNodeEnumMember = BabelNodeEnumBooleanMember | BabelNodeEnumNumberMember | BabelNodeEnumStringMember | BabelNodeEnumDefaultedMember; declare type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment; -declare type BabelNodePrivate = BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName; +declare type BabelNodeMiscellaneous = BabelNodeNoop | BabelNodePlaceholder | BabelNodeV8IntrinsicIdentifier; +declare type BabelNodeTypeScript = BabelNodeTSParameterProperty | BabelNodeTSDeclareFunction | BabelNodeTSDeclareMethod | BabelNodeTSQualifiedName | BabelNodeTSCallSignatureDeclaration | BabelNodeTSConstructSignatureDeclaration | BabelNodeTSPropertySignature | BabelNodeTSMethodSignature | BabelNodeTSIndexSignature | BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSFunctionType | BabelNodeTSConstructorType | BabelNodeTSTypeReference | BabelNodeTSTypePredicate | BabelNodeTSTypeQuery | BabelNodeTSTypeLiteral | BabelNodeTSArrayType | BabelNodeTSTupleType | BabelNodeTSOptionalType | BabelNodeTSRestType | BabelNodeTSNamedTupleMember | BabelNodeTSUnionType | BabelNodeTSIntersectionType | BabelNodeTSConditionalType | BabelNodeTSInferType | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments | BabelNodeTSInterfaceDeclaration | BabelNodeTSInterfaceBody | BabelNodeTSTypeAliasDeclaration | BabelNodeTSInstantiationExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSEnumDeclaration | BabelNodeTSEnumMember | BabelNodeTSModuleDeclaration | BabelNodeTSModuleBlock | BabelNodeTSImportType | BabelNodeTSImportEqualsDeclaration | BabelNodeTSExternalModuleReference | BabelNodeTSNonNullExpression | BabelNodeTSExportAssignment | BabelNodeTSNamespaceExportDeclaration | BabelNodeTSTypeAnnotation | BabelNodeTSTypeParameterInstantiation | BabelNodeTSTypeParameterDeclaration | BabelNodeTSTypeParameter; declare type BabelNodeTSTypeElement = BabelNodeTSCallSignatureDeclaration | BabelNodeTSConstructSignatureDeclaration | BabelNodeTSPropertySignature | BabelNodeTSMethodSignature | BabelNodeTSIndexSignature; declare type BabelNodeTSType = BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSFunctionType | BabelNodeTSConstructorType | BabelNodeTSTypeReference | BabelNodeTSTypePredicate | BabelNodeTSTypeQuery | BabelNodeTSTypeLiteral | BabelNodeTSArrayType | BabelNodeTSTupleType | BabelNodeTSOptionalType | BabelNodeTSRestType | BabelNodeTSUnionType | BabelNodeTSIntersectionType | BabelNodeTSConditionalType | BabelNodeTSInferType | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments | BabelNodeTSImportType; declare type BabelNodeTSBaseType = BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSLiteralType; @@ -3112,13 +3194,13 @@ declare type BabelNodeTSBaseType = BabelNodeTSAnyKeyword | BabelNodeTSBooleanKey declare module "@babel/types" { declare export function arrayExpression(elements?: Array): BabelNodeArrayExpression; declare export function assignmentExpression(operator: string, left: BabelNodeLVal, right: BabelNodeExpression): BabelNodeAssignmentExpression; - declare export function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=", left: BabelNodeExpression | BabelNodePrivateName, right: BabelNodeExpression): BabelNodeBinaryExpression; + declare export function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>", left: BabelNodeExpression | BabelNodePrivateName, right: BabelNodeExpression): BabelNodeBinaryExpression; declare export function interpreterDirective(value: string): BabelNodeInterpreterDirective; declare export function directive(value: BabelNodeDirectiveLiteral): BabelNodeDirective; declare export function directiveLiteral(value: string): BabelNodeDirectiveLiteral; declare export function blockStatement(body: Array, directives?: Array): BabelNodeBlockStatement; declare export function breakStatement(label?: BabelNodeIdentifier): BabelNodeBreakStatement; - declare export function callExpression(callee: BabelNodeExpression | BabelNodeV8IntrinsicIdentifier, _arguments: Array): BabelNodeCallExpression; + declare export function callExpression(callee: BabelNodeExpression | BabelNodeSuper | BabelNodeV8IntrinsicIdentifier, _arguments: Array): BabelNodeCallExpression; declare export function catchClause(param?: BabelNodeIdentifier | BabelNodeArrayPattern | BabelNodeObjectPattern, body: BabelNodeBlockStatement): BabelNodeCatchClause; declare export function conditionalExpression(test: BabelNodeExpression, consequent: BabelNodeExpression, alternate: BabelNodeExpression): BabelNodeConditionalExpression; declare export function continueStatement(label?: BabelNodeIdentifier): BabelNodeContinueStatement; @@ -3129,8 +3211,8 @@ declare module "@babel/types" { declare export function file(program: BabelNodeProgram, comments?: Array, tokens?: Array): BabelNodeFile; declare export function forInStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForInStatement; declare export function forStatement(init?: BabelNodeVariableDeclaration | BabelNodeExpression, test?: BabelNodeExpression, update?: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForStatement; - declare export function functionDeclaration(id?: BabelNodeIdentifier, params: Array, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean): BabelNodeFunctionDeclaration; - declare export function functionExpression(id?: BabelNodeIdentifier, params: Array, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean): BabelNodeFunctionExpression; + declare export function functionDeclaration(id?: BabelNodeIdentifier, params: Array, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean): BabelNodeFunctionDeclaration; + declare export function functionExpression(id?: BabelNodeIdentifier, params: Array, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean): BabelNodeFunctionExpression; declare export function identifier(name: string): BabelNodeIdentifier; declare export function ifStatement(test: BabelNodeExpression, consequent: BabelNodeStatement, alternate?: BabelNodeStatement): BabelNodeIfStatement; declare export function labeledStatement(label: BabelNodeIdentifier, body: BabelNodeStatement): BabelNodeLabeledStatement; @@ -3140,12 +3222,12 @@ declare module "@babel/types" { declare export function booleanLiteral(value: boolean): BabelNodeBooleanLiteral; declare export function regExpLiteral(pattern: string, flags?: string): BabelNodeRegExpLiteral; declare export function logicalExpression(operator: "||" | "&&" | "??", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeLogicalExpression; - declare export function memberExpression(object: BabelNodeExpression, property: BabelNodeExpression | BabelNodeIdentifier | BabelNodePrivateName, computed?: boolean, optional?: true | false): BabelNodeMemberExpression; - declare export function newExpression(callee: BabelNodeExpression | BabelNodeV8IntrinsicIdentifier, _arguments: Array): BabelNodeNewExpression; + declare export function memberExpression(object: BabelNodeExpression | BabelNodeSuper, property: BabelNodeExpression | BabelNodeIdentifier | BabelNodePrivateName, computed?: boolean, optional?: true | false): BabelNodeMemberExpression; + declare export function newExpression(callee: BabelNodeExpression | BabelNodeSuper | BabelNodeV8IntrinsicIdentifier, _arguments: Array): BabelNodeNewExpression; declare export function program(body: Array, directives?: Array, sourceType?: "script" | "module", interpreter?: BabelNodeInterpreterDirective): BabelNodeProgram; declare export function objectExpression(properties: Array): BabelNodeObjectExpression; - declare export function objectMethod(kind?: "method" | "get" | "set", key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral, params: Array, body: BabelNodeBlockStatement, computed?: boolean, generator?: boolean, async?: boolean): BabelNodeObjectMethod; - declare export function objectProperty(key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral, value: BabelNodeExpression | BabelNodePatternLike, computed?: boolean, shorthand?: boolean, decorators?: Array): BabelNodeObjectProperty; + declare export function objectMethod(kind?: "method" | "get" | "set", key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral, params: Array, body: BabelNodeBlockStatement, computed?: boolean, generator?: boolean, async?: boolean): BabelNodeObjectMethod; + declare export function objectProperty(key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral | BabelNodePrivateName, value: BabelNodeExpression | BabelNodePatternLike, computed?: boolean, shorthand?: boolean, decorators?: Array): BabelNodeObjectProperty; declare export function restElement(argument: BabelNodeLVal): BabelNodeRestElement; declare export function returnStatement(argument?: BabelNodeExpression): BabelNodeReturnStatement; declare export function sequenceExpression(expressions: Array): BabelNodeSequenceExpression; @@ -3157,18 +3239,18 @@ declare module "@babel/types" { declare export function tryStatement(block: BabelNodeBlockStatement, handler?: BabelNodeCatchClause, finalizer?: BabelNodeBlockStatement): BabelNodeTryStatement; declare export function unaryExpression(operator: "void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof", argument: BabelNodeExpression, prefix?: boolean): BabelNodeUnaryExpression; declare export function updateExpression(operator: "++" | "--", argument: BabelNodeExpression, prefix?: boolean): BabelNodeUpdateExpression; - declare export function variableDeclaration(kind: "var" | "let" | "const", declarations: Array): BabelNodeVariableDeclaration; + declare export function variableDeclaration(kind: "var" | "let" | "const" | "using", declarations: Array): BabelNodeVariableDeclaration; declare export function variableDeclarator(id: BabelNodeLVal, init?: BabelNodeExpression): BabelNodeVariableDeclarator; declare export function whileStatement(test: BabelNodeExpression, body: BabelNodeStatement): BabelNodeWhileStatement; declare export function withStatement(object: BabelNodeExpression, body: BabelNodeStatement): BabelNodeWithStatement; - declare export function assignmentPattern(left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression, right: BabelNodeExpression): BabelNodeAssignmentPattern; - declare export function arrayPattern(elements: Array): BabelNodeArrayPattern; - declare export function arrowFunctionExpression(params: Array, body: BabelNodeBlockStatement | BabelNodeExpression, async?: boolean): BabelNodeArrowFunctionExpression; - declare export function classBody(body: Array): BabelNodeClassBody; + declare export function assignmentPattern(left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression, right: BabelNodeExpression): BabelNodeAssignmentPattern; + declare export function arrayPattern(elements: Array): BabelNodeArrayPattern; + declare export function arrowFunctionExpression(params: Array, body: BabelNodeBlockStatement | BabelNodeExpression, async?: boolean): BabelNodeArrowFunctionExpression; + declare export function classBody(body: Array): BabelNodeClassBody; declare export function classExpression(id?: BabelNodeIdentifier, superClass?: BabelNodeExpression, body: BabelNodeClassBody, decorators?: Array): BabelNodeClassExpression; declare export function classDeclaration(id: BabelNodeIdentifier, superClass?: BabelNodeExpression, body: BabelNodeClassBody, decorators?: Array): BabelNodeClassDeclaration; declare export function exportAllDeclaration(source: BabelNodeStringLiteral): BabelNodeExportAllDeclaration; - declare export function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeTSDeclareFunction | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; + declare export function exportDefaultDeclaration(declaration: BabelNodeTSDeclareFunction | BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; declare export function exportNamedDeclaration(declaration?: BabelNodeDeclaration, specifiers?: Array, source?: BabelNodeStringLiteral): BabelNodeExportNamedDeclaration; declare export function exportSpecifier(local: BabelNodeIdentifier, exported: BabelNodeIdentifier | BabelNodeStringLiteral): BabelNodeExportSpecifier; declare export function forOfStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement, _await?: boolean): BabelNodeForOfStatement; @@ -3177,13 +3259,13 @@ declare module "@babel/types" { declare export function importNamespaceSpecifier(local: BabelNodeIdentifier): BabelNodeImportNamespaceSpecifier; declare export function importSpecifier(local: BabelNodeIdentifier, imported: BabelNodeIdentifier | BabelNodeStringLiteral): BabelNodeImportSpecifier; declare export function metaProperty(meta: BabelNodeIdentifier, property: BabelNodeIdentifier): BabelNodeMetaProperty; - declare export function classMethod(kind?: "get" | "set" | "method" | "constructor", key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, params: Array, body: BabelNodeBlockStatement, computed?: boolean, _static?: boolean, generator?: boolean, async?: boolean): BabelNodeClassMethod; + declare export function classMethod(kind?: "get" | "set" | "method" | "constructor", key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression, params: Array, body: BabelNodeBlockStatement, computed?: boolean, _static?: boolean, generator?: boolean, async?: boolean): BabelNodeClassMethod; declare export function objectPattern(properties: Array): BabelNodeObjectPattern; declare export function spreadElement(argument: BabelNodeExpression): BabelNodeSpreadElement; declare var _super: () => BabelNodeSuper; declare export { _super as super } declare export function taggedTemplateExpression(tag: BabelNodeExpression, quasi: BabelNodeTemplateLiteral): BabelNodeTaggedTemplateExpression; - declare export function templateElement(value: { raw: string, cooked?: string }, tail?: boolean): BabelNodeTemplateElement; + declare export function templateElement(value: any, tail?: boolean): BabelNodeTemplateElement; declare export function templateLiteral(quasis: Array, expressions: Array): BabelNodeTemplateLiteral; declare export function yieldExpression(argument?: BabelNodeExpression, delegate?: boolean): BabelNodeYieldExpression; declare export function awaitExpression(argument: BabelNodeExpression): BabelNodeAwaitExpression; @@ -3193,6 +3275,12 @@ declare module "@babel/types" { declare export function exportNamespaceSpecifier(exported: BabelNodeIdentifier): BabelNodeExportNamespaceSpecifier; declare export function optionalMemberExpression(object: BabelNodeExpression, property: BabelNodeExpression | BabelNodeIdentifier, computed?: boolean, optional: boolean): BabelNodeOptionalMemberExpression; declare export function optionalCallExpression(callee: BabelNodeExpression, _arguments: Array, optional: boolean): BabelNodeOptionalCallExpression; + declare export function classProperty(key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression, value?: BabelNodeExpression, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, decorators?: Array, computed?: boolean, _static?: boolean): BabelNodeClassProperty; + declare export function classAccessorProperty(key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression | BabelNodePrivateName, value?: BabelNodeExpression, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, decorators?: Array, computed?: boolean, _static?: boolean): BabelNodeClassAccessorProperty; + declare export function classPrivateProperty(key: BabelNodePrivateName, value?: BabelNodeExpression, decorators?: Array, _static?: boolean): BabelNodeClassPrivateProperty; + declare export function classPrivateMethod(kind?: "get" | "set" | "method", key: BabelNodePrivateName, params: Array, body: BabelNodeBlockStatement, _static?: boolean): BabelNodeClassPrivateMethod; + declare export function privateName(id: BabelNodeIdentifier): BabelNodePrivateName; + declare export function staticBlock(body: Array): BabelNodeStaticBlock; declare export function anyTypeAnnotation(): BabelNodeAnyTypeAnnotation; declare export function arrayTypeAnnotation(elementType: BabelNodeFlowType): BabelNodeArrayTypeAnnotation; declare export function booleanTypeAnnotation(): BabelNodeBooleanTypeAnnotation; @@ -3278,25 +3366,21 @@ declare module "@babel/types" { declare export function v8IntrinsicIdentifier(name: string): BabelNodeV8IntrinsicIdentifier; declare export function argumentPlaceholder(): BabelNodeArgumentPlaceholder; declare export function bindExpression(object: BabelNodeExpression, callee: BabelNodeExpression): BabelNodeBindExpression; - declare export function classProperty(key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, value?: BabelNodeExpression, typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop, decorators?: Array, computed?: boolean, _static?: boolean): BabelNodeClassProperty; - declare export function pipelineTopicExpression(expression: BabelNodeExpression): BabelNodePipelineTopicExpression; - declare export function pipelineBareFunction(callee: BabelNodeExpression): BabelNodePipelineBareFunction; - declare export function pipelinePrimaryTopicReference(): BabelNodePipelinePrimaryTopicReference; - declare export function classPrivateProperty(key: BabelNodePrivateName, value?: BabelNodeExpression, decorators?: Array, _static: any): BabelNodeClassPrivateProperty; - declare export function classPrivateMethod(kind?: "get" | "set" | "method" | "constructor", key: BabelNodePrivateName, params: Array, body: BabelNodeBlockStatement, _static?: boolean): BabelNodeClassPrivateMethod; declare export function importAttribute(key: BabelNodeIdentifier | BabelNodeStringLiteral, value: BabelNodeStringLiteral): BabelNodeImportAttribute; declare export function decorator(expression: BabelNodeExpression): BabelNodeDecorator; declare export function doExpression(body: BabelNodeBlockStatement, async?: boolean): BabelNodeDoExpression; declare export function exportDefaultSpecifier(exported: BabelNodeIdentifier): BabelNodeExportDefaultSpecifier; - declare export function privateName(id: BabelNodeIdentifier): BabelNodePrivateName; declare export function recordExpression(properties: Array): BabelNodeRecordExpression; declare export function tupleExpression(elements?: Array): BabelNodeTupleExpression; declare export function decimalLiteral(value: string): BabelNodeDecimalLiteral; - declare export function staticBlock(body: Array): BabelNodeStaticBlock; declare export function moduleExpression(body: BabelNodeProgram): BabelNodeModuleExpression; + declare export function topicReference(): BabelNodeTopicReference; + declare export function pipelineTopicExpression(expression: BabelNodeExpression): BabelNodePipelineTopicExpression; + declare export function pipelineBareFunction(callee: BabelNodeExpression): BabelNodePipelineBareFunction; + declare export function pipelinePrimaryTopicReference(): BabelNodePipelinePrimaryTopicReference; declare export function tsParameterProperty(parameter: BabelNodeIdentifier | BabelNodeAssignmentPattern): BabelNodeTSParameterProperty; - declare export function tsDeclareFunction(id?: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop, params: Array, returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeTSDeclareFunction; - declare export function tsDeclareMethod(decorators?: Array, key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeExpression, typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop, params: Array, returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeTSDeclareMethod; + declare export function tsDeclareFunction(id?: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop, params: Array, returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeTSDeclareFunction; + declare export function tsDeclareMethod(decorators?: Array, key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression, typeParameters?: BabelNodeTSTypeParameterDeclaration | BabelNodeNoop, params: Array, returnType?: BabelNodeTSTypeAnnotation | BabelNodeNoop): BabelNodeTSDeclareMethod; declare export function tsQualifiedName(left: BabelNodeTSEntityName, right: BabelNodeIdentifier): BabelNodeTSQualifiedName; declare export function tsCallSignatureDeclaration(typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters: Array, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSCallSignatureDeclaration; declare export function tsConstructSignatureDeclaration(typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters: Array, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSConstructSignatureDeclaration; @@ -3321,7 +3405,7 @@ declare module "@babel/types" { declare export function tsConstructorType(typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters: Array, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSConstructorType; declare export function tsTypeReference(typeName: BabelNodeTSEntityName, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSTypeReference; declare export function tsTypePredicate(parameterName: BabelNodeIdentifier | BabelNodeTSThisType, typeAnnotation?: BabelNodeTSTypeAnnotation, asserts?: boolean): BabelNodeTSTypePredicate; - declare export function tsTypeQuery(exprName: BabelNodeTSEntityName | BabelNodeTSImportType): BabelNodeTSTypeQuery; + declare export function tsTypeQuery(exprName: BabelNodeTSEntityName | BabelNodeTSImportType, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSTypeQuery; declare export function tsTypeLiteral(members: Array): BabelNodeTSTypeLiteral; declare export function tsArrayType(elementType: BabelNodeTSType): BabelNodeTSArrayType; declare export function tsTupleType(elementTypes: Array): BabelNodeTSTupleType; @@ -3336,12 +3420,14 @@ declare module "@babel/types" { declare export function tsTypeOperator(typeAnnotation: BabelNodeTSType): BabelNodeTSTypeOperator; declare export function tsIndexedAccessType(objectType: BabelNodeTSType, indexType: BabelNodeTSType): BabelNodeTSIndexedAccessType; declare export function tsMappedType(typeParameter: BabelNodeTSTypeParameter, typeAnnotation?: BabelNodeTSType, nameType?: BabelNodeTSType): BabelNodeTSMappedType; - declare export function tsLiteralType(literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral): BabelNodeTSLiteralType; + declare export function tsLiteralType(literal: BabelNodeNumericLiteral | BabelNodeStringLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral | BabelNodeTemplateLiteral | BabelNodeUnaryExpression): BabelNodeTSLiteralType; declare export function tsExpressionWithTypeArguments(expression: BabelNodeTSEntityName, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSExpressionWithTypeArguments; declare export function tsInterfaceDeclaration(id: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration, _extends?: Array, body: BabelNodeTSInterfaceBody): BabelNodeTSInterfaceDeclaration; declare export function tsInterfaceBody(body: Array): BabelNodeTSInterfaceBody; declare export function tsTypeAliasDeclaration(id: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration, typeAnnotation: BabelNodeTSType): BabelNodeTSTypeAliasDeclaration; + declare export function tsInstantiationExpression(expression: BabelNodeExpression, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSInstantiationExpression; declare export function tsAsExpression(expression: BabelNodeExpression, typeAnnotation: BabelNodeTSType): BabelNodeTSAsExpression; + declare export function tsSatisfiesExpression(expression: BabelNodeExpression, typeAnnotation: BabelNodeTSType): BabelNodeTSSatisfiesExpression; declare export function tsTypeAssertion(typeAnnotation: BabelNodeTSType, expression: BabelNodeExpression): BabelNodeTSTypeAssertion; declare export function tsEnumDeclaration(id: BabelNodeIdentifier, members: Array): BabelNodeTSEnumDeclaration; declare export function tsEnumMember(id: BabelNodeIdentifier | BabelNodeStringLiteral, initializer?: BabelNodeExpression): BabelNodeTSEnumMember; @@ -3438,6 +3524,12 @@ declare module "@babel/types" { declare export function isExportNamespaceSpecifier(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ExportNamespaceSpecifier'); declare export function isOptionalMemberExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'OptionalMemberExpression'); declare export function isOptionalCallExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'OptionalCallExpression'); + declare export function isClassProperty(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ClassProperty'); + declare export function isClassAccessorProperty(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ClassAccessorProperty'); + declare export function isClassPrivateProperty(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ClassPrivateProperty'); + declare export function isClassPrivateMethod(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ClassPrivateMethod'); + declare export function isPrivateName(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'PrivateName'); + declare export function isStaticBlock(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'StaticBlock'); declare export function isAnyTypeAnnotation(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'AnyTypeAnnotation'); declare export function isArrayTypeAnnotation(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ArrayTypeAnnotation'); declare export function isBooleanTypeAnnotation(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'BooleanTypeAnnotation'); @@ -3523,22 +3615,18 @@ declare module "@babel/types" { declare export function isV8IntrinsicIdentifier(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'V8IntrinsicIdentifier'); declare export function isArgumentPlaceholder(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ArgumentPlaceholder'); declare export function isBindExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'BindExpression'); - declare export function isClassProperty(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ClassProperty'); - declare export function isPipelineTopicExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'PipelineTopicExpression'); - declare export function isPipelineBareFunction(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'PipelineBareFunction'); - declare export function isPipelinePrimaryTopicReference(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'PipelinePrimaryTopicReference'); - declare export function isClassPrivateProperty(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ClassPrivateProperty'); - declare export function isClassPrivateMethod(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ClassPrivateMethod'); declare export function isImportAttribute(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ImportAttribute'); declare export function isDecorator(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'Decorator'); declare export function isDoExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'DoExpression'); declare export function isExportDefaultSpecifier(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ExportDefaultSpecifier'); - declare export function isPrivateName(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'PrivateName'); declare export function isRecordExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'RecordExpression'); declare export function isTupleExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TupleExpression'); declare export function isDecimalLiteral(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'DecimalLiteral'); - declare export function isStaticBlock(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'StaticBlock'); declare export function isModuleExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'ModuleExpression'); + declare export function isTopicReference(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TopicReference'); + declare export function isPipelineTopicExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'PipelineTopicExpression'); + declare export function isPipelineBareFunction(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'PipelineBareFunction'); + declare export function isPipelinePrimaryTopicReference(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'PipelinePrimaryTopicReference'); declare export function isTSParameterProperty(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSParameterProperty'); declare export function isTSDeclareFunction(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSDeclareFunction'); declare export function isTSDeclareMethod(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSDeclareMethod'); @@ -3586,7 +3674,9 @@ declare module "@babel/types" { declare export function isTSInterfaceDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSInterfaceDeclaration'); declare export function isTSInterfaceBody(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSInterfaceBody'); declare export function isTSTypeAliasDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSTypeAliasDeclaration'); + declare export function isTSInstantiationExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSInstantiationExpression'); declare export function isTSAsExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSAsExpression'); + declare export function isTSSatisfiesExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSSatisfiesExpression'); declare export function isTSTypeAssertion(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSTypeAssertion'); declare export function isTSEnumDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSEnumDeclaration'); declare export function isTSEnumMember(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSEnumMember'); @@ -3602,7 +3692,8 @@ declare module "@babel/types" { declare export function isTSTypeParameterInstantiation(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSTypeParameterInstantiation'); declare export function isTSTypeParameterDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSTypeParameterDeclaration'); declare export function isTSTypeParameter(node: ?Object, opts?: ?Object): boolean %checks (node != null && node.type === 'TSTypeParameter'); - declare export function isExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ArrayExpression' || node.type === 'AssignmentExpression' || node.type === 'BinaryExpression' || node.type === 'CallExpression' || node.type === 'ConditionalExpression' || node.type === 'FunctionExpression' || node.type === 'Identifier' || node.type === 'StringLiteral' || node.type === 'NumericLiteral' || node.type === 'NullLiteral' || node.type === 'BooleanLiteral' || node.type === 'RegExpLiteral' || node.type === 'LogicalExpression' || node.type === 'MemberExpression' || node.type === 'NewExpression' || node.type === 'ObjectExpression' || node.type === 'SequenceExpression' || node.type === 'ParenthesizedExpression' || node.type === 'ThisExpression' || node.type === 'UnaryExpression' || node.type === 'UpdateExpression' || node.type === 'ArrowFunctionExpression' || node.type === 'ClassExpression' || node.type === 'MetaProperty' || node.type === 'Super' || node.type === 'TaggedTemplateExpression' || node.type === 'TemplateLiteral' || node.type === 'YieldExpression' || node.type === 'AwaitExpression' || node.type === 'Import' || node.type === 'BigIntLiteral' || node.type === 'OptionalMemberExpression' || node.type === 'OptionalCallExpression' || node.type === 'TypeCastExpression' || node.type === 'JSXElement' || node.type === 'JSXFragment' || node.type === 'BindExpression' || node.type === 'PipelinePrimaryTopicReference' || node.type === 'DoExpression' || node.type === 'RecordExpression' || node.type === 'TupleExpression' || node.type === 'DecimalLiteral' || node.type === 'ModuleExpression' || node.type === 'TSAsExpression' || node.type === 'TSTypeAssertion' || node.type === 'TSNonNullExpression')); + declare export function isStandardized(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ArrayExpression' || node.type === 'AssignmentExpression' || node.type === 'BinaryExpression' || node.type === 'InterpreterDirective' || node.type === 'Directive' || node.type === 'DirectiveLiteral' || node.type === 'BlockStatement' || node.type === 'BreakStatement' || node.type === 'CallExpression' || node.type === 'CatchClause' || node.type === 'ConditionalExpression' || node.type === 'ContinueStatement' || node.type === 'DebuggerStatement' || node.type === 'DoWhileStatement' || node.type === 'EmptyStatement' || node.type === 'ExpressionStatement' || node.type === 'File' || node.type === 'ForInStatement' || node.type === 'ForStatement' || node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'Identifier' || node.type === 'IfStatement' || node.type === 'LabeledStatement' || node.type === 'StringLiteral' || node.type === 'NumericLiteral' || node.type === 'NullLiteral' || node.type === 'BooleanLiteral' || node.type === 'RegExpLiteral' || node.type === 'LogicalExpression' || node.type === 'MemberExpression' || node.type === 'NewExpression' || node.type === 'Program' || node.type === 'ObjectExpression' || node.type === 'ObjectMethod' || node.type === 'ObjectProperty' || node.type === 'RestElement' || node.type === 'ReturnStatement' || node.type === 'SequenceExpression' || node.type === 'ParenthesizedExpression' || node.type === 'SwitchCase' || node.type === 'SwitchStatement' || node.type === 'ThisExpression' || node.type === 'ThrowStatement' || node.type === 'TryStatement' || node.type === 'UnaryExpression' || node.type === 'UpdateExpression' || node.type === 'VariableDeclaration' || node.type === 'VariableDeclarator' || node.type === 'WhileStatement' || node.type === 'WithStatement' || node.type === 'AssignmentPattern' || node.type === 'ArrayPattern' || node.type === 'ArrowFunctionExpression' || node.type === 'ClassBody' || node.type === 'ClassExpression' || node.type === 'ClassDeclaration' || node.type === 'ExportAllDeclaration' || node.type === 'ExportDefaultDeclaration' || node.type === 'ExportNamedDeclaration' || node.type === 'ExportSpecifier' || node.type === 'ForOfStatement' || node.type === 'ImportDeclaration' || node.type === 'ImportDefaultSpecifier' || node.type === 'ImportNamespaceSpecifier' || node.type === 'ImportSpecifier' || node.type === 'MetaProperty' || node.type === 'ClassMethod' || node.type === 'ObjectPattern' || node.type === 'SpreadElement' || node.type === 'Super' || node.type === 'TaggedTemplateExpression' || node.type === 'TemplateElement' || node.type === 'TemplateLiteral' || node.type === 'YieldExpression' || node.type === 'AwaitExpression' || node.type === 'Import' || node.type === 'BigIntLiteral' || node.type === 'ExportNamespaceSpecifier' || node.type === 'OptionalMemberExpression' || node.type === 'OptionalCallExpression' || node.type === 'ClassProperty' || node.type === 'ClassAccessorProperty' || node.type === 'ClassPrivateProperty' || node.type === 'ClassPrivateMethod' || node.type === 'PrivateName' || node.type === 'StaticBlock')); + declare export function isExpression(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ArrayExpression' || node.type === 'AssignmentExpression' || node.type === 'BinaryExpression' || node.type === 'CallExpression' || node.type === 'ConditionalExpression' || node.type === 'FunctionExpression' || node.type === 'Identifier' || node.type === 'StringLiteral' || node.type === 'NumericLiteral' || node.type === 'NullLiteral' || node.type === 'BooleanLiteral' || node.type === 'RegExpLiteral' || node.type === 'LogicalExpression' || node.type === 'MemberExpression' || node.type === 'NewExpression' || node.type === 'ObjectExpression' || node.type === 'SequenceExpression' || node.type === 'ParenthesizedExpression' || node.type === 'ThisExpression' || node.type === 'UnaryExpression' || node.type === 'UpdateExpression' || node.type === 'ArrowFunctionExpression' || node.type === 'ClassExpression' || node.type === 'MetaProperty' || node.type === 'Super' || node.type === 'TaggedTemplateExpression' || node.type === 'TemplateLiteral' || node.type === 'YieldExpression' || node.type === 'AwaitExpression' || node.type === 'Import' || node.type === 'BigIntLiteral' || node.type === 'OptionalMemberExpression' || node.type === 'OptionalCallExpression' || node.type === 'TypeCastExpression' || node.type === 'JSXElement' || node.type === 'JSXFragment' || node.type === 'BindExpression' || node.type === 'DoExpression' || node.type === 'RecordExpression' || node.type === 'TupleExpression' || node.type === 'DecimalLiteral' || node.type === 'ModuleExpression' || node.type === 'TopicReference' || node.type === 'PipelineTopicExpression' || node.type === 'PipelineBareFunction' || node.type === 'PipelinePrimaryTopicReference' || node.type === 'TSInstantiationExpression' || node.type === 'TSAsExpression' || node.type === 'TSSatisfiesExpression' || node.type === 'TSTypeAssertion' || node.type === 'TSNonNullExpression')); declare export function isBinary(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'BinaryExpression' || node.type === 'LogicalExpression')); declare export function isScopable(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'BlockStatement' || node.type === 'CatchClause' || node.type === 'DoWhileStatement' || node.type === 'ForInStatement' || node.type === 'ForStatement' || node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'Program' || node.type === 'ObjectMethod' || node.type === 'SwitchStatement' || node.type === 'WhileStatement' || node.type === 'ArrowFunctionExpression' || node.type === 'ClassExpression' || node.type === 'ClassDeclaration' || node.type === 'ForOfStatement' || node.type === 'ClassMethod' || node.type === 'ClassPrivateMethod' || node.type === 'StaticBlock' || node.type === 'TSModuleBlock')); declare export function isBlockParent(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'BlockStatement' || node.type === 'CatchClause' || node.type === 'DoWhileStatement' || node.type === 'ForInStatement' || node.type === 'ForStatement' || node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'Program' || node.type === 'ObjectMethod' || node.type === 'SwitchStatement' || node.type === 'WhileStatement' || node.type === 'ArrowFunctionExpression' || node.type === 'ForOfStatement' || node.type === 'ClassMethod' || node.type === 'ClassPrivateMethod' || node.type === 'StaticBlock' || node.type === 'TSModuleBlock')); @@ -3617,25 +3708,27 @@ declare module "@babel/types" { declare export function isFor(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ForInStatement' || node.type === 'ForStatement' || node.type === 'ForOfStatement')); declare export function isForXStatement(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ForInStatement' || node.type === 'ForOfStatement')); declare export function isFunction(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'ObjectMethod' || node.type === 'ArrowFunctionExpression' || node.type === 'ClassMethod' || node.type === 'ClassPrivateMethod')); - declare export function isFunctionParent(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'ObjectMethod' || node.type === 'ArrowFunctionExpression' || node.type === 'ClassMethod' || node.type === 'ClassPrivateMethod')); + declare export function isFunctionParent(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'ObjectMethod' || node.type === 'ArrowFunctionExpression' || node.type === 'ClassMethod' || node.type === 'ClassPrivateMethod' || node.type === 'StaticBlock' || node.type === 'TSModuleBlock')); declare export function isPureish(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'StringLiteral' || node.type === 'NumericLiteral' || node.type === 'NullLiteral' || node.type === 'BooleanLiteral' || node.type === 'RegExpLiteral' || node.type === 'ArrowFunctionExpression' || node.type === 'BigIntLiteral' || node.type === 'DecimalLiteral')); declare export function isDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'FunctionDeclaration' || node.type === 'VariableDeclaration' || node.type === 'ClassDeclaration' || node.type === 'ExportAllDeclaration' || node.type === 'ExportDefaultDeclaration' || node.type === 'ExportNamedDeclaration' || node.type === 'ImportDeclaration' || node.type === 'DeclareClass' || node.type === 'DeclareFunction' || node.type === 'DeclareInterface' || node.type === 'DeclareModule' || node.type === 'DeclareModuleExports' || node.type === 'DeclareTypeAlias' || node.type === 'DeclareOpaqueType' || node.type === 'DeclareVariable' || node.type === 'DeclareExportDeclaration' || node.type === 'DeclareExportAllDeclaration' || node.type === 'InterfaceDeclaration' || node.type === 'OpaqueType' || node.type === 'TypeAlias' || node.type === 'EnumDeclaration' || node.type === 'TSDeclareFunction' || node.type === 'TSInterfaceDeclaration' || node.type === 'TSTypeAliasDeclaration' || node.type === 'TSEnumDeclaration' || node.type === 'TSModuleDeclaration')); - declare export function isPatternLike(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'Identifier' || node.type === 'RestElement' || node.type === 'AssignmentPattern' || node.type === 'ArrayPattern' || node.type === 'ObjectPattern')); - declare export function isLVal(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'Identifier' || node.type === 'MemberExpression' || node.type === 'RestElement' || node.type === 'AssignmentPattern' || node.type === 'ArrayPattern' || node.type === 'ObjectPattern' || node.type === 'TSParameterProperty')); + declare export function isPatternLike(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'Identifier' || node.type === 'RestElement' || node.type === 'AssignmentPattern' || node.type === 'ArrayPattern' || node.type === 'ObjectPattern' || node.type === 'TSAsExpression' || node.type === 'TSSatisfiesExpression' || node.type === 'TSTypeAssertion' || node.type === 'TSNonNullExpression')); + declare export function isLVal(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'Identifier' || node.type === 'MemberExpression' || node.type === 'RestElement' || node.type === 'AssignmentPattern' || node.type === 'ArrayPattern' || node.type === 'ObjectPattern' || node.type === 'TSParameterProperty' || node.type === 'TSAsExpression' || node.type === 'TSSatisfiesExpression' || node.type === 'TSTypeAssertion' || node.type === 'TSNonNullExpression')); declare export function isTSEntityName(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'Identifier' || node.type === 'TSQualifiedName')); declare export function isLiteral(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'StringLiteral' || node.type === 'NumericLiteral' || node.type === 'NullLiteral' || node.type === 'BooleanLiteral' || node.type === 'RegExpLiteral' || node.type === 'TemplateLiteral' || node.type === 'BigIntLiteral' || node.type === 'DecimalLiteral')); declare export function isImmutable(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'StringLiteral' || node.type === 'NumericLiteral' || node.type === 'NullLiteral' || node.type === 'BooleanLiteral' || node.type === 'BigIntLiteral' || node.type === 'JSXAttribute' || node.type === 'JSXClosingElement' || node.type === 'JSXElement' || node.type === 'JSXExpressionContainer' || node.type === 'JSXSpreadChild' || node.type === 'JSXOpeningElement' || node.type === 'JSXText' || node.type === 'JSXFragment' || node.type === 'JSXOpeningFragment' || node.type === 'JSXClosingFragment' || node.type === 'DecimalLiteral')); declare export function isUserWhitespacable(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ObjectMethod' || node.type === 'ObjectProperty' || node.type === 'ObjectTypeInternalSlot' || node.type === 'ObjectTypeCallProperty' || node.type === 'ObjectTypeIndexer' || node.type === 'ObjectTypeProperty' || node.type === 'ObjectTypeSpreadProperty')); declare export function isMethod(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ObjectMethod' || node.type === 'ClassMethod' || node.type === 'ClassPrivateMethod')); declare export function isObjectMember(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ObjectMethod' || node.type === 'ObjectProperty')); - declare export function isProperty(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ObjectProperty' || node.type === 'ClassProperty' || node.type === 'ClassPrivateProperty')); + declare export function isProperty(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ObjectProperty' || node.type === 'ClassProperty' || node.type === 'ClassAccessorProperty' || node.type === 'ClassPrivateProperty')); declare export function isUnaryLike(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'UnaryExpression' || node.type === 'SpreadElement')); declare export function isPattern(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'AssignmentPattern' || node.type === 'ArrayPattern' || node.type === 'ObjectPattern')); declare export function isClass(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ClassExpression' || node.type === 'ClassDeclaration')); declare export function isModuleDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ExportAllDeclaration' || node.type === 'ExportDefaultDeclaration' || node.type === 'ExportNamedDeclaration' || node.type === 'ImportDeclaration')); declare export function isExportDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ExportAllDeclaration' || node.type === 'ExportDefaultDeclaration' || node.type === 'ExportNamedDeclaration')); declare export function isModuleSpecifier(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ExportSpecifier' || node.type === 'ImportDefaultSpecifier' || node.type === 'ImportNamespaceSpecifier' || node.type === 'ImportSpecifier' || node.type === 'ExportNamespaceSpecifier' || node.type === 'ExportDefaultSpecifier')); - declare export function isFlow(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'AnyTypeAnnotation' || node.type === 'ArrayTypeAnnotation' || node.type === 'BooleanTypeAnnotation' || node.type === 'BooleanLiteralTypeAnnotation' || node.type === 'NullLiteralTypeAnnotation' || node.type === 'ClassImplements' || node.type === 'DeclareClass' || node.type === 'DeclareFunction' || node.type === 'DeclareInterface' || node.type === 'DeclareModule' || node.type === 'DeclareModuleExports' || node.type === 'DeclareTypeAlias' || node.type === 'DeclareOpaqueType' || node.type === 'DeclareVariable' || node.type === 'DeclareExportDeclaration' || node.type === 'DeclareExportAllDeclaration' || node.type === 'DeclaredPredicate' || node.type === 'ExistsTypeAnnotation' || node.type === 'FunctionTypeAnnotation' || node.type === 'FunctionTypeParam' || node.type === 'GenericTypeAnnotation' || node.type === 'InferredPredicate' || node.type === 'InterfaceExtends' || node.type === 'InterfaceDeclaration' || node.type === 'InterfaceTypeAnnotation' || node.type === 'IntersectionTypeAnnotation' || node.type === 'MixedTypeAnnotation' || node.type === 'EmptyTypeAnnotation' || node.type === 'NullableTypeAnnotation' || node.type === 'NumberLiteralTypeAnnotation' || node.type === 'NumberTypeAnnotation' || node.type === 'ObjectTypeAnnotation' || node.type === 'ObjectTypeInternalSlot' || node.type === 'ObjectTypeCallProperty' || node.type === 'ObjectTypeIndexer' || node.type === 'ObjectTypeProperty' || node.type === 'ObjectTypeSpreadProperty' || node.type === 'OpaqueType' || node.type === 'QualifiedTypeIdentifier' || node.type === 'StringLiteralTypeAnnotation' || node.type === 'StringTypeAnnotation' || node.type === 'SymbolTypeAnnotation' || node.type === 'ThisTypeAnnotation' || node.type === 'TupleTypeAnnotation' || node.type === 'TypeofTypeAnnotation' || node.type === 'TypeAlias' || node.type === 'TypeAnnotation' || node.type === 'TypeCastExpression' || node.type === 'TypeParameter' || node.type === 'TypeParameterDeclaration' || node.type === 'TypeParameterInstantiation' || node.type === 'UnionTypeAnnotation' || node.type === 'Variance' || node.type === 'VoidTypeAnnotation' || node.type === 'IndexedAccessType' || node.type === 'OptionalIndexedAccessType')); + declare export function isAccessor(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ClassAccessorProperty')); + declare export function isPrivate(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ClassPrivateProperty' || node.type === 'ClassPrivateMethod' || node.type === 'PrivateName')); + declare export function isFlow(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'AnyTypeAnnotation' || node.type === 'ArrayTypeAnnotation' || node.type === 'BooleanTypeAnnotation' || node.type === 'BooleanLiteralTypeAnnotation' || node.type === 'NullLiteralTypeAnnotation' || node.type === 'ClassImplements' || node.type === 'DeclareClass' || node.type === 'DeclareFunction' || node.type === 'DeclareInterface' || node.type === 'DeclareModule' || node.type === 'DeclareModuleExports' || node.type === 'DeclareTypeAlias' || node.type === 'DeclareOpaqueType' || node.type === 'DeclareVariable' || node.type === 'DeclareExportDeclaration' || node.type === 'DeclareExportAllDeclaration' || node.type === 'DeclaredPredicate' || node.type === 'ExistsTypeAnnotation' || node.type === 'FunctionTypeAnnotation' || node.type === 'FunctionTypeParam' || node.type === 'GenericTypeAnnotation' || node.type === 'InferredPredicate' || node.type === 'InterfaceExtends' || node.type === 'InterfaceDeclaration' || node.type === 'InterfaceTypeAnnotation' || node.type === 'IntersectionTypeAnnotation' || node.type === 'MixedTypeAnnotation' || node.type === 'EmptyTypeAnnotation' || node.type === 'NullableTypeAnnotation' || node.type === 'NumberLiteralTypeAnnotation' || node.type === 'NumberTypeAnnotation' || node.type === 'ObjectTypeAnnotation' || node.type === 'ObjectTypeInternalSlot' || node.type === 'ObjectTypeCallProperty' || node.type === 'ObjectTypeIndexer' || node.type === 'ObjectTypeProperty' || node.type === 'ObjectTypeSpreadProperty' || node.type === 'OpaqueType' || node.type === 'QualifiedTypeIdentifier' || node.type === 'StringLiteralTypeAnnotation' || node.type === 'StringTypeAnnotation' || node.type === 'SymbolTypeAnnotation' || node.type === 'ThisTypeAnnotation' || node.type === 'TupleTypeAnnotation' || node.type === 'TypeofTypeAnnotation' || node.type === 'TypeAlias' || node.type === 'TypeAnnotation' || node.type === 'TypeCastExpression' || node.type === 'TypeParameter' || node.type === 'TypeParameterDeclaration' || node.type === 'TypeParameterInstantiation' || node.type === 'UnionTypeAnnotation' || node.type === 'Variance' || node.type === 'VoidTypeAnnotation' || node.type === 'EnumDeclaration' || node.type === 'EnumBooleanBody' || node.type === 'EnumNumberBody' || node.type === 'EnumStringBody' || node.type === 'EnumSymbolBody' || node.type === 'EnumBooleanMember' || node.type === 'EnumNumberMember' || node.type === 'EnumStringMember' || node.type === 'EnumDefaultedMember' || node.type === 'IndexedAccessType' || node.type === 'OptionalIndexedAccessType')); declare export function isFlowType(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'AnyTypeAnnotation' || node.type === 'ArrayTypeAnnotation' || node.type === 'BooleanTypeAnnotation' || node.type === 'BooleanLiteralTypeAnnotation' || node.type === 'NullLiteralTypeAnnotation' || node.type === 'ExistsTypeAnnotation' || node.type === 'FunctionTypeAnnotation' || node.type === 'GenericTypeAnnotation' || node.type === 'InterfaceTypeAnnotation' || node.type === 'IntersectionTypeAnnotation' || node.type === 'MixedTypeAnnotation' || node.type === 'EmptyTypeAnnotation' || node.type === 'NullableTypeAnnotation' || node.type === 'NumberLiteralTypeAnnotation' || node.type === 'NumberTypeAnnotation' || node.type === 'ObjectTypeAnnotation' || node.type === 'StringLiteralTypeAnnotation' || node.type === 'StringTypeAnnotation' || node.type === 'SymbolTypeAnnotation' || node.type === 'ThisTypeAnnotation' || node.type === 'TupleTypeAnnotation' || node.type === 'TypeofTypeAnnotation' || node.type === 'UnionTypeAnnotation' || node.type === 'VoidTypeAnnotation' || node.type === 'IndexedAccessType' || node.type === 'OptionalIndexedAccessType')); declare export function isFlowBaseAnnotation(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'AnyTypeAnnotation' || node.type === 'BooleanTypeAnnotation' || node.type === 'NullLiteralTypeAnnotation' || node.type === 'MixedTypeAnnotation' || node.type === 'EmptyTypeAnnotation' || node.type === 'NumberTypeAnnotation' || node.type === 'StringTypeAnnotation' || node.type === 'SymbolTypeAnnotation' || node.type === 'ThisTypeAnnotation' || node.type === 'VoidTypeAnnotation')); declare export function isFlowDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'DeclareClass' || node.type === 'DeclareFunction' || node.type === 'DeclareInterface' || node.type === 'DeclareModule' || node.type === 'DeclareModuleExports' || node.type === 'DeclareTypeAlias' || node.type === 'DeclareOpaqueType' || node.type === 'DeclareVariable' || node.type === 'DeclareExportDeclaration' || node.type === 'DeclareExportAllDeclaration' || node.type === 'InterfaceDeclaration' || node.type === 'OpaqueType' || node.type === 'TypeAlias')); @@ -3643,7 +3736,8 @@ declare module "@babel/types" { declare export function isEnumBody(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'EnumBooleanBody' || node.type === 'EnumNumberBody' || node.type === 'EnumStringBody' || node.type === 'EnumSymbolBody')); declare export function isEnumMember(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'EnumBooleanMember' || node.type === 'EnumNumberMember' || node.type === 'EnumStringMember' || node.type === 'EnumDefaultedMember')); declare export function isJSX(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'JSXAttribute' || node.type === 'JSXClosingElement' || node.type === 'JSXElement' || node.type === 'JSXEmptyExpression' || node.type === 'JSXExpressionContainer' || node.type === 'JSXSpreadChild' || node.type === 'JSXIdentifier' || node.type === 'JSXMemberExpression' || node.type === 'JSXNamespacedName' || node.type === 'JSXOpeningElement' || node.type === 'JSXSpreadAttribute' || node.type === 'JSXText' || node.type === 'JSXFragment' || node.type === 'JSXOpeningFragment' || node.type === 'JSXClosingFragment')); - declare export function isPrivate(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'ClassPrivateProperty' || node.type === 'ClassPrivateMethod' || node.type === 'PrivateName')); + declare export function isMiscellaneous(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'Noop' || node.type === 'Placeholder' || node.type === 'V8IntrinsicIdentifier')); + declare export function isTypeScript(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'TSParameterProperty' || node.type === 'TSDeclareFunction' || node.type === 'TSDeclareMethod' || node.type === 'TSQualifiedName' || node.type === 'TSCallSignatureDeclaration' || node.type === 'TSConstructSignatureDeclaration' || node.type === 'TSPropertySignature' || node.type === 'TSMethodSignature' || node.type === 'TSIndexSignature' || node.type === 'TSAnyKeyword' || node.type === 'TSBooleanKeyword' || node.type === 'TSBigIntKeyword' || node.type === 'TSIntrinsicKeyword' || node.type === 'TSNeverKeyword' || node.type === 'TSNullKeyword' || node.type === 'TSNumberKeyword' || node.type === 'TSObjectKeyword' || node.type === 'TSStringKeyword' || node.type === 'TSSymbolKeyword' || node.type === 'TSUndefinedKeyword' || node.type === 'TSUnknownKeyword' || node.type === 'TSVoidKeyword' || node.type === 'TSThisType' || node.type === 'TSFunctionType' || node.type === 'TSConstructorType' || node.type === 'TSTypeReference' || node.type === 'TSTypePredicate' || node.type === 'TSTypeQuery' || node.type === 'TSTypeLiteral' || node.type === 'TSArrayType' || node.type === 'TSTupleType' || node.type === 'TSOptionalType' || node.type === 'TSRestType' || node.type === 'TSNamedTupleMember' || node.type === 'TSUnionType' || node.type === 'TSIntersectionType' || node.type === 'TSConditionalType' || node.type === 'TSInferType' || node.type === 'TSParenthesizedType' || node.type === 'TSTypeOperator' || node.type === 'TSIndexedAccessType' || node.type === 'TSMappedType' || node.type === 'TSLiteralType' || node.type === 'TSExpressionWithTypeArguments' || node.type === 'TSInterfaceDeclaration' || node.type === 'TSInterfaceBody' || node.type === 'TSTypeAliasDeclaration' || node.type === 'TSInstantiationExpression' || node.type === 'TSAsExpression' || node.type === 'TSSatisfiesExpression' || node.type === 'TSTypeAssertion' || node.type === 'TSEnumDeclaration' || node.type === 'TSEnumMember' || node.type === 'TSModuleDeclaration' || node.type === 'TSModuleBlock' || node.type === 'TSImportType' || node.type === 'TSImportEqualsDeclaration' || node.type === 'TSExternalModuleReference' || node.type === 'TSNonNullExpression' || node.type === 'TSExportAssignment' || node.type === 'TSNamespaceExportDeclaration' || node.type === 'TSTypeAnnotation' || node.type === 'TSTypeParameterInstantiation' || node.type === 'TSTypeParameterDeclaration' || node.type === 'TSTypeParameter')); declare export function isTSTypeElement(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'TSCallSignatureDeclaration' || node.type === 'TSConstructSignatureDeclaration' || node.type === 'TSPropertySignature' || node.type === 'TSMethodSignature' || node.type === 'TSIndexSignature')); declare export function isTSType(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'TSAnyKeyword' || node.type === 'TSBooleanKeyword' || node.type === 'TSBigIntKeyword' || node.type === 'TSIntrinsicKeyword' || node.type === 'TSNeverKeyword' || node.type === 'TSNullKeyword' || node.type === 'TSNumberKeyword' || node.type === 'TSObjectKeyword' || node.type === 'TSStringKeyword' || node.type === 'TSSymbolKeyword' || node.type === 'TSUndefinedKeyword' || node.type === 'TSUnknownKeyword' || node.type === 'TSVoidKeyword' || node.type === 'TSThisType' || node.type === 'TSFunctionType' || node.type === 'TSConstructorType' || node.type === 'TSTypeReference' || node.type === 'TSTypePredicate' || node.type === 'TSTypeQuery' || node.type === 'TSTypeLiteral' || node.type === 'TSArrayType' || node.type === 'TSTupleType' || node.type === 'TSOptionalType' || node.type === 'TSRestType' || node.type === 'TSUnionType' || node.type === 'TSIntersectionType' || node.type === 'TSConditionalType' || node.type === 'TSInferType' || node.type === 'TSParenthesizedType' || node.type === 'TSTypeOperator' || node.type === 'TSIndexedAccessType' || node.type === 'TSMappedType' || node.type === 'TSLiteralType' || node.type === 'TSExpressionWithTypeArguments' || node.type === 'TSImportType')); declare export function isTSBaseType(node: ?Object, opts?: ?Object): boolean %checks (node != null && (node.type === 'TSAnyKeyword' || node.type === 'TSBooleanKeyword' || node.type === 'TSBigIntKeyword' || node.type === 'TSIntrinsicKeyword' || node.type === 'TSNeverKeyword' || node.type === 'TSNullKeyword' || node.type === 'TSNumberKeyword' || node.type === 'TSObjectKeyword' || node.type === 'TSStringKeyword' || node.type === 'TSSymbolKeyword' || node.type === 'TSUndefinedKeyword' || node.type === 'TSUnknownKeyword' || node.type === 'TSVoidKeyword' || node.type === 'TSThisType' || node.type === 'TSLiteralType')); @@ -3802,6 +3896,12 @@ declare module "@babel/types" { declare export type ExportNamespaceSpecifier = BabelNodeExportNamespaceSpecifier; declare export type OptionalMemberExpression = BabelNodeOptionalMemberExpression; declare export type OptionalCallExpression = BabelNodeOptionalCallExpression; + declare export type ClassProperty = BabelNodeClassProperty; + declare export type ClassAccessorProperty = BabelNodeClassAccessorProperty; + declare export type ClassPrivateProperty = BabelNodeClassPrivateProperty; + declare export type ClassPrivateMethod = BabelNodeClassPrivateMethod; + declare export type PrivateName = BabelNodePrivateName; + declare export type StaticBlock = BabelNodeStaticBlock; declare export type AnyTypeAnnotation = BabelNodeAnyTypeAnnotation; declare export type ArrayTypeAnnotation = BabelNodeArrayTypeAnnotation; declare export type BooleanTypeAnnotation = BabelNodeBooleanTypeAnnotation; @@ -3887,22 +3987,18 @@ declare module "@babel/types" { declare export type V8IntrinsicIdentifier = BabelNodeV8IntrinsicIdentifier; declare export type ArgumentPlaceholder = BabelNodeArgumentPlaceholder; declare export type BindExpression = BabelNodeBindExpression; - declare export type ClassProperty = BabelNodeClassProperty; - declare export type PipelineTopicExpression = BabelNodePipelineTopicExpression; - declare export type PipelineBareFunction = BabelNodePipelineBareFunction; - declare export type PipelinePrimaryTopicReference = BabelNodePipelinePrimaryTopicReference; - declare export type ClassPrivateProperty = BabelNodeClassPrivateProperty; - declare export type ClassPrivateMethod = BabelNodeClassPrivateMethod; declare export type ImportAttribute = BabelNodeImportAttribute; declare export type Decorator = BabelNodeDecorator; declare export type DoExpression = BabelNodeDoExpression; declare export type ExportDefaultSpecifier = BabelNodeExportDefaultSpecifier; - declare export type PrivateName = BabelNodePrivateName; declare export type RecordExpression = BabelNodeRecordExpression; declare export type TupleExpression = BabelNodeTupleExpression; declare export type DecimalLiteral = BabelNodeDecimalLiteral; - declare export type StaticBlock = BabelNodeStaticBlock; declare export type ModuleExpression = BabelNodeModuleExpression; + declare export type TopicReference = BabelNodeTopicReference; + declare export type PipelineTopicExpression = BabelNodePipelineTopicExpression; + declare export type PipelineBareFunction = BabelNodePipelineBareFunction; + declare export type PipelinePrimaryTopicReference = BabelNodePipelinePrimaryTopicReference; declare export type TSParameterProperty = BabelNodeTSParameterProperty; declare export type TSDeclareFunction = BabelNodeTSDeclareFunction; declare export type TSDeclareMethod = BabelNodeTSDeclareMethod; @@ -3950,7 +4046,9 @@ declare module "@babel/types" { declare export type TSInterfaceDeclaration = BabelNodeTSInterfaceDeclaration; declare export type TSInterfaceBody = BabelNodeTSInterfaceBody; declare export type TSTypeAliasDeclaration = BabelNodeTSTypeAliasDeclaration; + declare export type TSInstantiationExpression = BabelNodeTSInstantiationExpression; declare export type TSAsExpression = BabelNodeTSAsExpression; + declare export type TSSatisfiesExpression = BabelNodeTSSatisfiesExpression; declare export type TSTypeAssertion = BabelNodeTSTypeAssertion; declare export type TSEnumDeclaration = BabelNodeTSEnumDeclaration; declare export type TSEnumMember = BabelNodeTSEnumMember; @@ -3966,6 +4064,7 @@ declare module "@babel/types" { declare export type TSTypeParameterInstantiation = BabelNodeTSTypeParameterInstantiation; declare export type TSTypeParameterDeclaration = BabelNodeTSTypeParameterDeclaration; declare export type TSTypeParameter = BabelNodeTSTypeParameter; + declare export type Standardized = BabelNodeStandardized; declare export type Expression = BabelNodeExpression; declare export type Binary = BabelNodeBinary; declare export type Scopable = BabelNodeScopable; @@ -3999,6 +4098,8 @@ declare module "@babel/types" { declare export type ModuleDeclaration = BabelNodeModuleDeclaration; declare export type ExportDeclaration = BabelNodeExportDeclaration; declare export type ModuleSpecifier = BabelNodeModuleSpecifier; + declare export type Accessor = BabelNodeAccessor; + declare export type Private = BabelNodePrivate; declare export type Flow = BabelNodeFlow; declare export type FlowType = BabelNodeFlowType; declare export type FlowBaseAnnotation = BabelNodeFlowBaseAnnotation; @@ -4007,7 +4108,8 @@ declare module "@babel/types" { declare export type EnumBody = BabelNodeEnumBody; declare export type EnumMember = BabelNodeEnumMember; declare export type JSX = BabelNodeJSX; - declare export type Private = BabelNodePrivate; + declare export type Miscellaneous = BabelNodeMiscellaneous; + declare export type TypeScript = BabelNodeTypeScript; declare export type TSTypeElement = BabelNodeTSTypeElement; declare export type TSType = BabelNodeTSType; declare export type TSBaseType = BabelNodeTSBaseType; diff --git a/jest/preprocessor.js b/jest/preprocessor.js index e1677246e2fbe6..5529814623528a 100644 --- a/jest/preprocessor.js +++ b/jest/preprocessor.js @@ -28,7 +28,7 @@ const nodeFiles = /[\\/]metro(?:-[^/]*)[\\/]/; // hook. This is used below to configure babelTransformSync under Jest. const {only: _, ...nodeBabelOptions} = metroBabelRegister.config([]); -const transformer = require('metro-react-native-babel-transformer'); +const transformer = require('@react-native/metro-babel-transformer'); module.exports = { process(src /*: string */, file /*: string */) /*: {code: string, ...} */ { @@ -50,6 +50,7 @@ module.exports = { enableBabelRuntime: false, experimentalImportSupport: false, globalPrefix: '', + hermesParser: true, hot: false, inlineRequires: true, minify: false, @@ -81,7 +82,7 @@ module.exports = { // $FlowFixMe[signature-verification-failure] getCacheKey: createCacheKeyFunction([ __filename, - require.resolve('metro-react-native-babel-transformer'), + require.resolve('@react-native/metro-babel-transformer'), require.resolve('@babel/core/package.json'), ]), }; diff --git a/package.json b/package.json index 5def95e7a0ae87..255014e6679a15 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "prettier": "prettier --write \"./**/*.{js,md,yml,ts,tsx}\"", "format-check": "prettier --list-different \"./**/*.{js,md,yml,ts,tsx}\"", "update-lock": "npx yarn-deduplicate", - "docker-setup-android": "docker pull reactnativecommunity/react-native-android:9.0", + "docker-setup-android": "docker pull reactnativecommunity/react-native-android:v10.0", "docker-build-android": "docker build -t reactnativeci/android -f .circleci/Dockerfiles/Dockerfile.android .", "test-android-run-instrumentation": "docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-instrumentation-tests.sh", "test-android-run-unit": "docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-unit-tests.sh", @@ -56,6 +56,7 @@ "@babel/plugin-transform-regenerator": "^7.20.0", "@definitelytyped/dtslint": "^0.0.127", "@jest/create-cache-key-function": "^29.2.1", + "@react-native/metro-babel-transformer": "^0.73.11", "@react-native/metro-config": "^0.73.0", "@types/react": "^18.0.18", "@typescript-eslint/parser": "^5.57.1", @@ -77,19 +78,18 @@ "eslint-plugin-react-native": "^4.0.0", "eslint-plugin-redundant-undefined": "^0.4.0", "eslint-plugin-relay": "^1.8.3", - "flow-bin": "^0.212.0", - "hermes-eslint": "0.14.0", + "flow-bin": "^0.213.1", + "hermes-eslint": "0.15.0", "inquirer": "^7.1.0", "jest": "^29.2.1", "jest-junit": "^10.0.0", "jscodeshift": "^0.14.0", - "metro-babel-register": "0.76.2", - "metro-memory-fs": "0.76.2", - "metro-react-native-babel-transformer": "0.76.2", + "metro-babel-register": "0.77.0", + "metro-memory-fs": "0.77.0", "mkdirp": "^0.5.1", "mock-fs": "^5.1.4", "prettier": "2.8.8", - "prettier-plugin-hermes-parser": "0.12.1", + "prettier-plugin-hermes-parser": "0.14.0", "react": "18.2.0", "react-test-renderer": "18.2.0", "shelljs": "^0.8.5", diff --git a/packages/metro-config/README.md b/packages/metro-config/README.md index 903a3b3a76d3df..9dcb9a75a2fc2a 100644 --- a/packages/metro-config/README.md +++ b/packages/metro-config/README.md @@ -5,7 +5,7 @@ ## Installation ``` -yarn add --dev @react-native/js-polyfills metro-config metro-react-native-babel-transformer metro-runtime @react-native/metro-config +yarn add --dev @react-native/js-polyfills metro-config @react-native/metro-babel-transformer metro-runtime @react-native/metro-config ``` *Note: We're using `yarn` to install deps. Feel free to change commands to use `npm` 3+ and `npx` if you like* diff --git a/packages/metro-config/index.js b/packages/metro-config/index.js index 8829d8c194098c..2abf2c8757d475 100644 --- a/packages/metro-config/index.js +++ b/packages/metro-config/index.js @@ -73,7 +73,7 @@ function getDefaultConfig( 'metro-runtime/src/modules/asyncRequire', ), babelTransformerPath: require.resolve( - 'metro-react-native-babel-transformer', + '@react-native/metro-babel-transformer', ), getTransformOptions: async () => ({ transform: { diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 392918648795c2..43010a983d55ad 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -16,9 +16,9 @@ }, "exports": "./index.js", "dependencies": { + "@react-native/metro-babel-transformer": "^0.73.11", "@react-native/js-polyfills": "^0.73.0", - "metro-config": "0.76.7", - "metro-react-native-babel-transformer": "0.76.7", - "metro-runtime": "0.76.7" + "metro-config": "0.77.0", + "metro-runtime": "0.77.0" } } diff --git a/packages/react-native-babel-preset/.npmignore b/packages/react-native-babel-preset/.npmignore new file mode 100644 index 00000000000000..0ec3b99a14c7b7 --- /dev/null +++ b/packages/react-native-babel-preset/.npmignore @@ -0,0 +1,6 @@ +**/__mocks__/ +**/__tests__/ +/build/ +/src.real/ +/types/ +yarn.lock diff --git a/packages/react-native-babel-preset/README.md b/packages/react-native-babel-preset/README.md new file mode 100644 index 00000000000000..a29c400c093e1d --- /dev/null +++ b/packages/react-native-babel-preset/README.md @@ -0,0 +1,41 @@ +# @react-native/babel-preset + +Babel presets for [React Native](https://reactnative.dev) applications. React Native itself uses this Babel preset by default when transforming your app's source code. + +If you wish to use a custom Babel configuration by writing a `babel.config.js` file in your project's root directory, you must specify all the plugins necessary to transform your code. React Native does not apply its default Babel configuration in this case. So, to make your life easier, you can use this preset to get the default configuration and then specify more plugins that run before it. + +## Usage + +As mentioned above, you only need to use this preset if you are writing a custom `babel.config.js` file. + +### Installation + +Install `@react-native/babel-preset` in your app: + +with `npm`: + +```sh +npm i @react-native/babel-preset --save-dev +``` + +or with `yarn`: + +```sh +yarn add -D @react-native/babel-preset +``` + +### Configuring Babel + +Then, create a file called `babel.config.js` in your project's root directory. The existence of this `babel.config.js` file will tell React Native to use your custom Babel configuration instead of its own. Then load this preset: + +``` +{ + "presets": ["module:@react-native/babel-preset"] +} +``` + +You can further customize your Babel configuration by specifying plugins and other options. See [Babel's `babel.config.js` documentation](https://babeljs.io/docs/en/config-files/) to learn more. + +## Help and Support + +If you get stuck configuring Babel, please ask a question on Stack Overflow or find a consultant for help. If you discover a bug, please open up an issue. diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json new file mode 100644 index 00000000000000..5eea10e6ab5ff2 --- /dev/null +++ b/packages/react-native-babel-preset/package.json @@ -0,0 +1,63 @@ +{ + "name": "@react-native/babel-preset", + "version": "0.73.15", + "description": "Babel preset for React Native applications", + "main": "src/index.js", + "repository": { + "type": "git", + "url": "git@github.com:facebook/react-native.git" + }, + "keywords": [ + "babel", + "preset", + "react-native" + ], + "license": "MIT", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.18.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", + "@babel/plugin-proposal-numeric-separator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.20.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.18.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.20.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.20.0", + "@babel/plugin-transform-flow-strip-types": "^7.20.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.4.0" + }, + "peerDependencies": { + "@babel/core": "*" + }, + "engines": { + "node": ">=18" + } +} diff --git a/packages/react-native-babel-preset/src/configs/hmr.js b/packages/react-native-babel-preset/src/configs/hmr.js new file mode 100644 index 00000000000000..46cbcbd485e61a --- /dev/null +++ b/packages/react-native-babel-preset/src/configs/hmr.js @@ -0,0 +1,17 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @oncall react_native + */ + +'use strict'; + +module.exports = function () { + return { + plugins: [require('react-refresh/babel')], + }; +}; diff --git a/packages/react-native-babel-preset/src/configs/lazy-imports.js b/packages/react-native-babel-preset/src/configs/lazy-imports.js new file mode 100644 index 00000000000000..1c001f67a91f15 --- /dev/null +++ b/packages/react-native-babel-preset/src/configs/lazy-imports.js @@ -0,0 +1,93 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @oncall react_native + */ + +// This is the set of modules that React Native publicly exports and that we +// want to require lazily. Keep this list in sync with +// react-native/index.js (though having extra entries here is fairly harmless). + +'use strict'; + +module.exports = new Set([ + 'AccessibilityInfo', + 'ActivityIndicator', + 'Button', + 'DatePickerIOS', + 'DrawerLayoutAndroid', + 'FlatList', + 'Image', + 'ImageBackground', + 'InputAccessoryView', + 'KeyboardAvoidingView', + 'Modal', + 'Pressable', + 'ProgressBarAndroid', + 'ProgressViewIOS', + 'SafeAreaView', + 'ScrollView', + 'SectionList', + 'Slider', + 'Switch', + 'RefreshControl', + 'StatusBar', + 'Text', + 'TextInput', + 'Touchable', + 'TouchableHighlight', + 'TouchableNativeFeedback', + 'TouchableOpacity', + 'TouchableWithoutFeedback', + 'View', + 'VirtualizedList', + 'VirtualizedSectionList', + + // APIs + 'ActionSheetIOS', + 'Alert', + 'Animated', + 'Appearance', + 'AppRegistry', + 'AppState', + 'AsyncStorage', + 'BackHandler', + 'Clipboard', + 'DeviceInfo', + 'Dimensions', + 'Easing', + 'ReactNative', + 'I18nManager', + 'InteractionManager', + 'Keyboard', + 'LayoutAnimation', + 'Linking', + 'LogBox', + 'NativeEventEmitter', + 'PanResponder', + 'PermissionsAndroid', + 'PixelRatio', + 'PushNotificationIOS', + 'Settings', + 'Share', + 'StyleSheet', + 'Systrace', + 'ToastAndroid', + 'TVEventHandler', + 'UIManager', + 'ReactNative', + 'UTFSequence', + 'Vibration', + + // Plugins + 'RCTDeviceEventEmitter', + 'RCTNativeAppEventEmitter', + 'NativeModules', + 'Platform', + 'processColor', + 'requireNativeComponent', +]); diff --git a/packages/react-native-babel-preset/src/configs/main.js b/packages/react-native-babel-preset/src/configs/main.js new file mode 100644 index 00000000000000..675d51de5f9fbb --- /dev/null +++ b/packages/react-native-babel-preset/src/configs/main.js @@ -0,0 +1,215 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @oncall react_native + */ + +'use strict'; + +const passthroughSyntaxPlugins = require('../passthrough-syntax-plugins'); +const lazyImports = require('./lazy-imports'); + +function isTypeScriptSource(fileName) { + return !!fileName && fileName.endsWith('.ts'); +} + +function isTSXSource(fileName) { + return !!fileName && fileName.endsWith('.tsx'); +} + +const defaultPlugins = [ + [require('@babel/plugin-syntax-flow')], + [require('babel-plugin-transform-flow-enums')], + [require('@babel/plugin-transform-block-scoping')], + [ + require('@babel/plugin-proposal-class-properties'), + // use `this.foo = bar` instead of `this.defineProperty('foo', ...)` + {loose: true}, + ], + [require('@babel/plugin-syntax-dynamic-import')], + [require('@babel/plugin-syntax-export-default-from')], + ...passthroughSyntaxPlugins, + [require('@babel/plugin-transform-unicode-regex')], +]; + +const getPreset = (src, options) => { + const transformProfile = + (options && options.unstable_transformProfile) || 'default'; + const isHermesStable = transformProfile === 'hermes-stable'; + const isHermesCanary = transformProfile === 'hermes-canary'; + const isHermes = isHermesStable || isHermesCanary; + + const isNull = src == null; + const hasClass = isNull || src.indexOf('class') !== -1; + + const extraPlugins = []; + if (!options.useTransformReactJSXExperimental) { + extraPlugins.push([ + require('@babel/plugin-transform-react-jsx'), + {runtime: 'automatic'}, + ]); + } + + if (!options || !options.disableImportExportTransform) { + extraPlugins.push( + [require('@babel/plugin-proposal-export-default-from')], + [ + require('@babel/plugin-transform-modules-commonjs'), + { + strict: false, + strictMode: false, // prevent "use strict" injections + lazy: + options && options.lazyImportExportTransform != null + ? options.lazyImportExportTransform + : importSpecifier => lazyImports.has(importSpecifier), + allowTopLevelThis: true, // dont rewrite global `this` -> `undefined` + }, + ], + ); + } + + if (hasClass) { + extraPlugins.push([require('@babel/plugin-transform-classes')]); + } + + // TODO(gaearon): put this back into '=>' indexOf bailout + // and patch react-refresh to not depend on this transform. + extraPlugins.push([require('@babel/plugin-transform-arrow-functions')]); + + if (!isHermes) { + extraPlugins.push([require('@babel/plugin-transform-computed-properties')]); + extraPlugins.push([require('@babel/plugin-transform-parameters')]); + extraPlugins.push([ + require('@babel/plugin-transform-shorthand-properties'), + ]); + extraPlugins.push([ + require('@babel/plugin-proposal-optional-catch-binding'), + ]); + extraPlugins.push([require('@babel/plugin-transform-function-name')]); + extraPlugins.push([require('@babel/plugin-transform-literals')]); + extraPlugins.push([require('@babel/plugin-proposal-numeric-separator')]); + extraPlugins.push([require('@babel/plugin-transform-sticky-regex')]); + } else { + extraPlugins.push([ + require('@babel/plugin-transform-named-capturing-groups-regex'), + ]); + } + if (!isHermesCanary) { + extraPlugins.push([ + require('@babel/plugin-transform-destructuring'), + {useBuiltIns: true}, + ]); + } + if (!isHermes && (isNull || hasClass || src.indexOf('...') !== -1)) { + extraPlugins.push( + [require('@babel/plugin-transform-spread')], + [ + require('@babel/plugin-proposal-object-rest-spread'), + // Assume no dependence on getters or evaluation order. See https://github.com/babel/babel/pull/11520 + {loose: true, useBuiltIns: true}, + ], + ); + } + if (isNull || src.indexOf('async') !== -1) { + extraPlugins.push([ + require('@babel/plugin-proposal-async-generator-functions'), + ]); + extraPlugins.push([require('@babel/plugin-transform-async-to-generator')]); + } + if ( + isNull || + src.indexOf('React.createClass') !== -1 || + src.indexOf('createReactClass') !== -1 + ) { + extraPlugins.push([require('@babel/plugin-transform-react-display-name')]); + } + if (!isHermes && (isNull || src.indexOf('?.') !== -1)) { + extraPlugins.push([ + require('@babel/plugin-proposal-optional-chaining'), + {loose: true}, + ]); + } + if (!isHermes && (isNull || src.indexOf('??') !== -1)) { + extraPlugins.push([ + require('@babel/plugin-proposal-nullish-coalescing-operator'), + {loose: true}, + ]); + } + + if (options && options.dev && !options.useTransformReactJSXExperimental) { + extraPlugins.push([require('@babel/plugin-transform-react-jsx-source')]); + extraPlugins.push([require('@babel/plugin-transform-react-jsx-self')]); + } + + if (!options || options.enableBabelRuntime !== false) { + // Allows configuring a specific runtime version to optimize output + const isVersion = typeof options?.enableBabelRuntime === 'string'; + + extraPlugins.push([ + require('@babel/plugin-transform-runtime'), + { + helpers: true, + regenerator: !isHermes, + ...(isVersion && {version: options.enableBabelRuntime}), + }, + ]); + } + + return { + comments: false, + compact: true, + overrides: [ + // the flow strip types plugin must go BEFORE class properties! + // there'll be a test case that fails if you don't. + { + plugins: [require('@babel/plugin-transform-flow-strip-types')], + }, + { + plugins: defaultPlugins, + }, + { + test: isTypeScriptSource, + plugins: [ + [ + require('@babel/plugin-transform-typescript'), + { + isTSX: false, + allowNamespaces: true, + }, + ], + ], + }, + { + test: isTSXSource, + plugins: [ + [ + require('@babel/plugin-transform-typescript'), + { + isTSX: true, + allowNamespaces: true, + }, + ], + ], + }, + { + plugins: extraPlugins, + }, + ], + }; +}; + +module.exports = options => { + if (options.withDevTools == null) { + const env = process.env.BABEL_ENV || process.env.NODE_ENV; + if (!env || env === 'development') { + return getPreset(null, {...options, dev: true}); + } + } + return getPreset(null, options); +}; + +module.exports.getPreset = getPreset; diff --git a/packages/react-native-babel-preset/src/index.js b/packages/react-native-babel-preset/src/index.js new file mode 100644 index 00000000000000..011dfe06405212 --- /dev/null +++ b/packages/react-native-babel-preset/src/index.js @@ -0,0 +1,20 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @oncall react_native + */ + +'use strict'; + +const main = require('./configs/main'); + +module.exports = function (babel, options) { + return main(options); +}; + +module.exports.getPreset = main.getPreset; +module.exports.passthroughSyntaxPlugins = require('./passthrough-syntax-plugins'); diff --git a/packages/react-native-babel-preset/src/passthrough-syntax-plugins.js b/packages/react-native-babel-preset/src/passthrough-syntax-plugins.js new file mode 100644 index 00000000000000..f66f225c64076b --- /dev/null +++ b/packages/react-native-babel-preset/src/passthrough-syntax-plugins.js @@ -0,0 +1,23 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @oncall react_native + */ + +'use strict'; + +// This list of syntax plugins is used for two purposes: +// 1. Enabling experimental syntax features in the INPUT to the Metro Babel +// transformer, regardless of whether we actually transform them. +// 2. Enabling these same features in parser passes that consume the OUTPUT of +// the Metro Babel transformer. +const passthroughSyntaxPlugins = [ + [require('@babel/plugin-syntax-nullish-coalescing-operator')], + [require('@babel/plugin-syntax-optional-chaining')], +]; + +module.exports = passthroughSyntaxPlugins; diff --git a/packages/react-native-babel-transformer/.npmignore b/packages/react-native-babel-transformer/.npmignore new file mode 100644 index 00000000000000..0ec3b99a14c7b7 --- /dev/null +++ b/packages/react-native-babel-transformer/.npmignore @@ -0,0 +1,6 @@ +**/__mocks__/ +**/__tests__/ +/build/ +/src.real/ +/types/ +yarn.lock diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json new file mode 100644 index 00000000000000..58488549c526ce --- /dev/null +++ b/packages/react-native-babel-transformer/package.json @@ -0,0 +1,30 @@ +{ + "name": "@react-native/metro-babel-transformer", + "version": "0.73.11", + "description": "Babel transformer for React Native applications.", + "main": "src/index.js", + "repository": { + "type": "git", + "url": "git@github.com:facebook/react-native.git", + "directory": "packages/react-native-babel-transformer" + }, + "keywords": [ + "transformer", + "react-native", + "metro" + ], + "license": "MIT", + "dependencies": { + "@babel/core": "^7.20.0", + "@react-native/babel-preset": "*", + "babel-preset-fbjs": "^3.4.0", + "hermes-parser": "0.15.0", + "nullthrows": "^1.1.1" + }, + "peerDependencies": { + "@babel/core": "*" + }, + "engines": { + "node": ">=18" + } +} diff --git a/packages/react-native-babel-transformer/src/__tests__/transform-test.js b/packages/react-native-babel-transformer/src/__tests__/transform-test.js new file mode 100644 index 00000000000000..3919cbfa296975 --- /dev/null +++ b/packages/react-native-babel-transformer/src/__tests__/transform-test.js @@ -0,0 +1,53 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +'use strict'; + +const {transform} = require('../index.js'); +const path = require('path'); + +const PROJECT_ROOT = path.sep === '/' ? '/my/project' : 'C:\\my\\project'; + +it('exposes the correct absolute path to a source file to plugins', () => { + let visitorFilename; + let pluginCwd; + transform({ + filename: 'foo.js', + src: 'console.log("foo");', + plugins: [ + (babel, opts, cwd) => { + pluginCwd = cwd; + return { + visitor: { + CallExpression: { + enter: (_, state) => { + visitorFilename = state.filename; + }, + }, + }, + }; + }, + ], + options: { + dev: true, + enableBabelRuntime: false, + enableBabelRCLookup: false, + globalPrefix: '__metro__', + hot: false, + inlineRequires: false, + minify: false, + platform: null, + publicPath: 'test', + projectRoot: PROJECT_ROOT, + }, + }); + expect(pluginCwd).toEqual(PROJECT_ROOT); + expect(visitorFilename).toEqual(path.resolve(PROJECT_ROOT, 'foo.js')); +}); diff --git a/packages/react-native-babel-transformer/src/index.js b/packages/react-native-babel-transformer/src/index.js new file mode 100644 index 00000000000000..4de58090544261 --- /dev/null +++ b/packages/react-native-babel-transformer/src/index.js @@ -0,0 +1,255 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + * @oncall react_native + */ + +// This file uses Flow comment syntax so that it may be used from source as a +// transformer without itself requiring transformation, such as in +// facebook/react-native's own tests. + +'use strict'; + +/*:: +import type {BabelCoreOptions, Plugins, TransformResult} from '@babel/core'; +import type { + BabelTransformer, + MetroBabelFileMetadata, +} from 'metro-babel-transformer'; +*/ + +const {parseSync, transformFromAstSync} = require('@babel/core'); +const inlineRequiresPlugin = require('babel-preset-fbjs/plugins/inline-requires'); +const crypto = require('crypto'); +const fs = require('fs'); +const makeHMRConfig = require('@react-native/babel-preset/src/configs/hmr'); +const nullthrows = require('nullthrows'); +const path = require('path'); + +const cacheKeyParts = [ + fs.readFileSync(__filename), + require('babel-preset-fbjs/package.json').version, +]; + +// TS detection conditions copied from @react-native/babel-preset +function isTypeScriptSource(fileName /*: string */) { + return !!fileName && fileName.endsWith('.ts'); +} + +function isTSXSource(fileName /*: string */) { + return !!fileName && fileName.endsWith('.tsx'); +} + +/** + * Return a memoized function that checks for the existence of a + * project level .babelrc file, and if it doesn't exist, reads the + * default RN babelrc file and uses that. + */ +const getBabelRC = (function () { + let babelRC /*: ?BabelCoreOptions */ = null; + + /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's + * LTI update could not be added via codemod */ + return function _getBabelRC({ + projectRoot, + extendsBabelConfigPath, + ...options + }) { + if (babelRC != null) { + return babelRC; + } + + babelRC = { + plugins: [], + extends: extendsBabelConfigPath, + }; + + if (extendsBabelConfigPath) { + return babelRC; + } + + // Let's look for a babel config file in the project root. + let projectBabelRCPath; + + // .babelrc + if (projectRoot) { + projectBabelRCPath = path.resolve(projectRoot, '.babelrc'); + } + + if (projectBabelRCPath) { + // .babelrc.js + if (!fs.existsSync(projectBabelRCPath)) { + projectBabelRCPath = path.resolve(projectRoot, '.babelrc.js'); + } + + // babel.config.js + if (!fs.existsSync(projectBabelRCPath)) { + projectBabelRCPath = path.resolve(projectRoot, 'babel.config.js'); + } + + // If we found a babel config file, extend our config off of it + // otherwise the default config will be used + if (fs.existsSync(projectBabelRCPath)) { + // $FlowFixMe[incompatible-use] `extends` is missing in null or undefined. + babelRC.extends = projectBabelRCPath; + } + } + + // If a babel config file doesn't exist in the project then + // the default preset for react-native will be used instead. + // $FlowFixMe[incompatible-use] `extends` is missing in null or undefined. + // $FlowFixMe[incompatible-type] `extends` is missing in null or undefined. + if (!babelRC.extends) { + const {experimentalImportSupport, ...presetOptions} = options; + + // $FlowFixMe[incompatible-use] `presets` is missing in null or undefined. + babelRC.presets = [ + [ + require('@react-native/babel-preset'), + { + projectRoot, + ...presetOptions, + disableImportExportTransform: experimentalImportSupport, + enableBabelRuntime: options.enableBabelRuntime, + }, + ], + ]; + } + + return babelRC; + }; +})(); + +/** + * Given a filename and options, build a Babel + * config object with the appropriate plugins. + */ +function buildBabelConfig( + filename /*: string */, + /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's + * LTI update could not be added via codemod */ + options, + plugins /*:: ?: Plugins*/ = [], +) /*: BabelCoreOptions*/ { + const babelRC = getBabelRC(options); + + const extraConfig /*: BabelCoreOptions */ = { + babelrc: + typeof options.enableBabelRCLookup === 'boolean' + ? options.enableBabelRCLookup + : true, + code: false, + cwd: options.projectRoot, + filename, + highlightCode: true, + }; + + let config /*: BabelCoreOptions */ = { + ...babelRC, + ...extraConfig, + }; + + // Add extra plugins + const extraPlugins = []; + + if (options.inlineRequires) { + extraPlugins.push(inlineRequiresPlugin); + } + + const withExtrPlugins = (config.plugins = extraPlugins.concat( + config.plugins, + plugins, + )); + + if (options.dev && options.hot) { + // Note: this intentionally doesn't include the path separator because + // I'm not sure which one it should use on Windows, and false positives + // are unlikely anyway. If you later decide to include the separator, + // don't forget that the string usually *starts* with "node_modules" so + // the first one often won't be there. + const mayContainEditableReactComponents = + filename.indexOf('node_modules') === -1; + + if (mayContainEditableReactComponents) { + const hmrConfig = makeHMRConfig(); + hmrConfig.plugins = withExtrPlugins.concat(hmrConfig.plugins); + config = {...config, ...hmrConfig}; + } + } + + return { + ...babelRC, + ...config, + }; +} + +const transform /*: BabelTransformer['transform'] */ = ({ + filename, + options, + src, + plugins, +}) => { + const OLD_BABEL_ENV = process.env.BABEL_ENV; + process.env.BABEL_ENV = options.dev + ? 'development' + : process.env.BABEL_ENV || 'production'; + + try { + const babelConfig = { + // ES modules require sourceType='module' but OSS may not always want that + sourceType: 'unambiguous', + ...buildBabelConfig(filename, options, plugins), + caller: {name: 'metro', bundler: 'metro', platform: options.platform}, + ast: true, + + // NOTE(EvanBacon): We split the parse/transform steps up to accommodate + // Hermes parsing, but this defaults to cloning the AST which increases + // the transformation time by a fair amount. + // You get this behavior by default when using Babel's `transform` method directly. + cloneInputAst: false, + }; + const sourceAst = + isTypeScriptSource(filename) || + isTSXSource(filename) || + !options.hermesParser + ? parseSync(src, babelConfig) + : require('hermes-parser').parse(src, { + babel: true, + sourceType: babelConfig.sourceType, + }); + + const result /*: TransformResult */ = + transformFromAstSync(sourceAst, src, babelConfig); + + // The result from `transformFromAstSync` can be null (if the file is ignored) + if (!result) { + /* $FlowFixMe BabelTransformer specifies that the `ast` can never be null but + * the function returns here. Discovered when typing `BabelNode`. */ + return {ast: null}; + } + + return {ast: nullthrows(result.ast), metadata: result.metadata}; + } finally { + if (OLD_BABEL_ENV) { + process.env.BABEL_ENV = OLD_BABEL_ENV; + } + } +}; + +function getCacheKey() { + var key = crypto.createHash('md5'); + cacheKeyParts.forEach(part => key.update(part)); + return key.digest('hex'); +} + +const babelTransformer /*: BabelTransformer */ = { + transform, + getCacheKey, +}; + +module.exports = babelTransformer; diff --git a/packages/react-native-gradle-plugin/build.gradle.kts b/packages/react-native-gradle-plugin/build.gradle.kts index b8813324b1ad77..edd2f129be842d 100644 --- a/packages/react-native-gradle-plugin/build.gradle.kts +++ b/packages/react-native-gradle-plugin/build.gradle.kts @@ -37,7 +37,7 @@ dependencies { // The KGP/AGP version is defined by React Native Gradle plugin. // Therefore we specify an implementation dep rather than a compileOnly. implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0") - implementation("com.android.tools.build:gradle:8.0.2") + implementation("com.android.tools.build:gradle:8.1.0") implementation("com.google.code.gson:gson:2.8.9") implementation("com.google.guava:guava:31.0.1-jre") @@ -54,21 +54,18 @@ dependencies { .first())) } -java { - // We intentionally don't build for Java 17 as users will see a cryptic bytecode version - // error first. Instead we produce a Java 11-compatible Gradle Plugin, so that AGP can print their - // nice message showing that JDK 11 (or 17) is required first - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 -} +// We intentionally don't build for Java 17 as users will see a cryptic bytecode version +// error first. Instead we produce a Java 11-compatible Gradle Plugin, so that AGP can print their +// nice message showing that JDK 11 (or 17) is required first +java { targetCompatibility = JavaVersion.VERSION_11 } kotlin { jvmToolchain(17) } -tasks.withType { +tasks.withType().configureEach { kotlinOptions { - jvmTarget = JavaVersion.VERSION_11.majorVersion apiVersion = "1.5" - languageVersion = "1.5" + // See comment above on JDK 11 support + jvmTarget = "11" } } diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h index 52763c21c4b7e9..0c84edf4b93487 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h @@ -5,10 +5,10 @@ * LICENSE file in the root directory of this source tree. */ -#import -#import #import +@class RCTBridge; +@protocol RCTBridgeDelegate; @protocol RCTComponentViewProtocol; @class RCTSurfacePresenterBridgeAdapter; @@ -132,6 +132,14 @@ /// @return: `true` if the Fabric Renderer is enabled. Otherwise, it returns `false`. - (BOOL)fabricEnabled; +/// This method controls whether React Native's new initialization layer is enabled. +/// +/// @return: `true` if the new initialization layer is enabled. Otherwise returns `false`. +- (BOOL)bridgelessEnabled; + +/// Return the bundle URL for the main bundle. +- (NSURL *)getBundleURL; + #endif @end diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm index ecc438ca4a4f7a..b299ac72b15738 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm @@ -8,28 +8,41 @@ #import "RCTAppDelegate.h" #import #import "RCTAppSetupUtils.h" +#import "RCTLegacyInteropComponents.h" #if RCT_NEW_ARCH_ENABLED #import +#import #import #import #import +#import #import #import +#import #import #import +#import +#if USE_HERMES +#import +#else +#import +#endif +#import +#import #import +#import #import #import #import -#import "RCTLegacyInteropComponents.h" static NSString *const kRNConcurrentRoot = @"concurrentRoot"; @interface RCTAppDelegate () < RCTTurboModuleManagerDelegate, RCTCxxBridgeDelegate, - RCTComponentViewFactoryComponentProvider> { + RCTComponentViewFactoryComponentProvider, + RCTContextContainerHandling> { std::shared_ptr _reactNativeConfig; facebook::react::ContextContainer::Shared _contextContainer; std::shared_ptr _runtimeScheduler; @@ -38,7 +51,11 @@ @interface RCTAppDelegate () < #endif -@implementation RCTAppDelegate +@implementation RCTAppDelegate { +#if RCT_NEW_ARCH_ENABLED + RCTHost *_reactHost; +#endif +} #if RCT_NEW_ARCH_ENABLED - (instancetype)init @@ -55,26 +72,44 @@ - (instancetype)init - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { BOOL enableTM = NO; + BOOL enableBridgeless = NO; #if RCT_NEW_ARCH_ENABLED enableTM = self.turboModuleEnabled; + enableBridgeless = self.bridgelessEnabled; #endif + RCTAppSetupPrepareApp(application, enableTM); - if (!self.bridge) { - self.bridge = [self createBridgeWithDelegate:self launchOptions:launchOptions]; - } + UIView *rootView; + + if (enableBridgeless) { #if RCT_NEW_ARCH_ENABLED - self.bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:self.bridge - contextContainer:_contextContainer]; - self.bridge.surfacePresenter = self.bridgeAdapter.surfacePresenter; + [self createReactHost]; + RCTFabricSurface *surface = [_reactHost createSurfaceWithModuleName:self.moduleName + initialProperties:launchOptions]; - [self unstable_registerLegacyComponents]; - [RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self; -#endif + RCTSurfaceHostingProxyRootView *surfaceHostingProxyRootView = [[RCTSurfaceHostingProxyRootView alloc] + initWithSurface:surface + sizeMeasureMode:RCTSurfaceSizeMeasureModeWidthExact | RCTSurfaceSizeMeasureModeHeightExact + moduleRegistry:[_reactHost getModuleRegistry]]; - NSDictionary *initProps = [self prepareInitialProps]; - UIView *rootView = [self createRootViewWithBridge:self.bridge moduleName:self.moduleName initProps:initProps]; + rootView = (RCTRootView *)surfaceHostingProxyRootView; +#endif + } else { + if (!self.bridge) { + self.bridge = [self createBridgeWithDelegate:self launchOptions:launchOptions]; + } +#if RCT_NEW_ARCH_ENABLED + self.bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:self.bridge + contextContainer:_contextContainer]; + self.bridge.surfacePresenter = self.bridgeAdapter.surfacePresenter; + [self unstable_registerLegacyComponents]; + [RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self; +#endif + NSDictionary *initProps = [self prepareInitialProps]; + rootView = [self createRootViewWithBridge:self.bridge moduleName:self.moduleName initProps:initProps]; + } self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [self createRootViewController]; [self setRootView:rootView toRootViewController:rootViewController]; @@ -198,6 +233,11 @@ - (BOOL)fabricEnabled return YES; } +- (BOOL)bridgelessEnabled +{ + return YES; +} + #pragma mark - New Arch Utilities - (void)unstable_registerLegacyComponents @@ -207,6 +247,43 @@ - (void)unstable_registerLegacyComponents } } +- (void)createReactHost +{ + __weak __typeof(self) weakSelf = self; + _reactHost = [[RCTHost alloc] initWithBundleURL:[self getBundleURL] + hostDelegate:nil + turboModuleManagerDelegate:self + jsEngineProvider:^std::shared_ptr() { + return [weakSelf createJSEngineInstance]; + }]; + [_reactHost setBundleURLProvider:^NSURL *() { + return [weakSelf getBundleURL]; + }]; + [_reactHost setContextContainerHandler:self]; + [_reactHost start]; +} + +- (std::shared_ptr)createJSEngineInstance +{ +#if USE_HERMES + return std::make_shared(_reactNativeConfig, nullptr); +#else + return std::make_shared(); +#endif +} + +- (void)didCreateContextContainer:(std::shared_ptr)contextContainer +{ + contextContainer->insert("ReactNativeConfig", _reactNativeConfig); +} + +- (NSURL *)getBundleURL +{ + [NSException raise:@"RCTAppDelegate::getBundleURL not implemented" + format:@"Subclasses must implement a valid getBundleURL method"]; + return nullptr; +} + #endif @end diff --git a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec index ac5042a02a34d4..56b015046553db 100644 --- a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec +++ b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec @@ -20,16 +20,17 @@ folly_flags = ' -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1' folly_compiler_flags = folly_flags + ' ' + '-Wno-comma -Wno-shorten-64-to-32' is_new_arch_enabled = ENV["RCT_NEW_ARCH_ENABLED"] == "1" +use_hermes = ENV['USE_HERMES'] == nil || ENV['USE_HERMES'] == '1' +use_frameworks = ENV['USE_FRAMEWORKS'] != nil + new_arch_enabled_flag = (is_new_arch_enabled ? " -DRCT_NEW_ARCH_ENABLED" : "") is_fabric_enabled = is_new_arch_enabled || ENV["RCT_FABRIC_ENABLED"] fabric_flag = (is_fabric_enabled ? " -DRN_FABRIC_ENABLED" : "") -other_cflags = "$(inherited)" + folly_flags + new_arch_enabled_flag + fabric_flag - -use_hermes = ENV['USE_HERMES'] == '1' -use_frameworks = ENV['USE_FRAMEWORKS'] != nil +hermes_flag = (use_hermes ? " -DUSE_HERMES" : "") +other_cflags = "$(inherited)" + folly_flags + new_arch_enabled_flag + fabric_flag + hermes_flag header_search_paths = [ - "$(PODS_TARGET_SRCROOT)/ReactCommon", + "$(PODS_TARGET_SRCROOT)/../../ReactCommon", "$(PODS_ROOT)/Headers/Private/React-Core", "$(PODS_ROOT)/boost", "$(PODS_ROOT)/DoubleConversion", @@ -47,6 +48,8 @@ header_search_paths = [ "$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", "$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core", "$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers", + "$(PODS_CONFIGURATION_BUILD_DIR)/React-BridgelessApple/React_BridgelessApple.framework/Headers", + "$(PODS_CONFIGURATION_BUILD_DIR)/React-BridgelessCore/React_BridgelessCore.framework/Headers", "$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers/", "$(PODS_CONFIGURATION_BUILD_DIR)/React-utils/React_utils.framework/Headers/", "$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers/", @@ -75,6 +78,8 @@ Pod::Spec.new do |s| } s.user_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/Headers/Private/React-Core\""} + use_hermes = ENV['USE_HERMES'] == nil || ENV['USE_HERMES'] == "1" + s.dependency "React-Core" s.dependency "RCT-Folly" s.dependency "RCTRequired" @@ -84,8 +89,17 @@ Pod::Spec.new do |s| s.dependency "React-RCTImage" s.dependency "React-NativeModulesApple" s.dependency "React-CoreModules" + s.dependency "React-nativeconfig" + + if is_new_arch_enabled + s.dependency "React-BridgelessCore" + s.dependency "React-BridgelessApple" + if use_hermes + s.dependency "React-BridgelessHermes" + end + end - if ENV['USE_HERMES'] == nil || ENV['USE_HERMES'] == "1" + if use_hermes s.dependency "React-hermes" else s.dependency "React-jsc" diff --git a/packages/react-native/Libraries/Blob/FileReader.js b/packages/react-native/Libraries/Blob/FileReader.js index 3e20afe5c6e1a7..f8154bd237368f 100644 --- a/packages/react-native/Libraries/Blob/FileReader.js +++ b/packages/react-native/Libraries/Blob/FileReader.js @@ -12,8 +12,7 @@ import type Blob from './Blob'; import NativeFileReaderModule from './NativeFileReaderModule'; import {toByteArray} from 'base64-js'; - -const EventTarget = require('event-target-shim'); +import EventTarget from 'event-target-shim'; type ReadyState = | 0 // EMPTY diff --git a/packages/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js b/packages/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js similarity index 100% rename from packages/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js rename to packages/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js diff --git a/packages/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js b/packages/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js similarity index 100% rename from packages/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js rename to packages/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js diff --git a/packages/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js b/packages/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js index b53774b38b5b88..3ce101533fe852 100644 --- a/packages/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js +++ b/packages/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js @@ -25,10 +25,9 @@ let exported: React.AbstractComponent>; * limitation of the screen, such as rounded corners or camera notches (aka * sensor housing area on iPhone X). */ -if (Platform.OS === 'android') { - exported = View; -} else { - exported = require('./RCTSafeAreaViewNativeComponent').default; -} +exported = Platform.select({ + ios: require('./RCTSafeAreaViewNativeComponent').default, + default: View, +}); export default exported; diff --git a/packages/react-native/Libraries/Components/ToastAndroid/ToastAndroid.ios.js b/packages/react-native/Libraries/Components/ToastAndroid/ToastAndroid.js similarity index 100% rename from packages/react-native/Libraries/Components/ToastAndroid/ToastAndroid.ios.js rename to packages/react-native/Libraries/Components/ToastAndroid/ToastAndroid.js diff --git a/packages/react-native/Libraries/Image/RCTAnimatedImage.m b/packages/react-native/Libraries/Image/RCTAnimatedImage.mm similarity index 100% rename from packages/react-native/Libraries/Image/RCTAnimatedImage.m rename to packages/react-native/Libraries/Image/RCTAnimatedImage.mm diff --git a/packages/react-native/Libraries/Image/RCTDisplayWeakRefreshable.m b/packages/react-native/Libraries/Image/RCTDisplayWeakRefreshable.mm similarity index 100% rename from packages/react-native/Libraries/Image/RCTDisplayWeakRefreshable.m rename to packages/react-native/Libraries/Image/RCTDisplayWeakRefreshable.mm diff --git a/packages/react-native/Libraries/Image/RCTImageBlurUtils.m b/packages/react-native/Libraries/Image/RCTImageBlurUtils.mm similarity index 100% rename from packages/react-native/Libraries/Image/RCTImageBlurUtils.m rename to packages/react-native/Libraries/Image/RCTImageBlurUtils.mm diff --git a/packages/react-native/Libraries/Image/RCTImageCache.m b/packages/react-native/Libraries/Image/RCTImageCache.mm similarity index 100% rename from packages/react-native/Libraries/Image/RCTImageCache.m rename to packages/react-native/Libraries/Image/RCTImageCache.mm diff --git a/packages/react-native/Libraries/Image/RCTImageShadowView.m b/packages/react-native/Libraries/Image/RCTImageShadowView.mm similarity index 100% rename from packages/react-native/Libraries/Image/RCTImageShadowView.m rename to packages/react-native/Libraries/Image/RCTImageShadowView.mm diff --git a/packages/react-native/Libraries/Image/RCTImageUtils.m b/packages/react-native/Libraries/Image/RCTImageUtils.mm similarity index 97% rename from packages/react-native/Libraries/Image/RCTImageUtils.m rename to packages/react-native/Libraries/Image/RCTImageUtils.mm index a55c81fb41f45c..38fbd6bad434af 100644 --- a/packages/react-native/Libraries/Image/RCTImageUtils.m +++ b/packages/react-native/Libraries/Image/RCTImageUtils.mm @@ -212,7 +212,7 @@ BOOL RCTUpscalingRequired( // Calculate aspect ratios if needed (don't bother if resizeMode == stretch) CGFloat aspect = 0.0, targetAspect = 0.0; - if (resizeMode != UIViewContentModeScaleToFill) { + if (resizeMode != RCTResizeModeStretch) { aspect = sourceSize.width / sourceSize.height; targetAspect = destSize.width / destSize.height; if (aspect == targetAspect) { @@ -267,8 +267,8 @@ BOOL RCTUpscalingRequired( CFRelease(sourceRef); return nil; } - NSNumber *width = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth); - NSNumber *height = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight); + NSNumber *width = (NSNumber *)CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth); + NSNumber *height = (NSNumber *)CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight); CGSize sourceSize = {width.doubleValue, height.doubleValue}; CFRelease(imageProperties); @@ -281,7 +281,7 @@ BOOL RCTUpscalingRequired( destScale = RCTScreenScale(); } - if (resizeMode == UIViewContentModeScaleToFill) { + if (resizeMode == RCTResizeModeStretch) { // Decoder cannot change aspect ratio, so RCTResizeModeStretch is equivalent // to RCTResizeModeCover for our purposes resizeMode = RCTResizeModeCover; diff --git a/packages/react-native/Libraries/Image/RCTResizeMode.m b/packages/react-native/Libraries/Image/RCTResizeMode.mm similarity index 100% rename from packages/react-native/Libraries/Image/RCTResizeMode.m rename to packages/react-native/Libraries/Image/RCTResizeMode.mm diff --git a/packages/react-native/Libraries/Image/RCTUIImageViewAnimated.m b/packages/react-native/Libraries/Image/RCTUIImageViewAnimated.mm similarity index 100% rename from packages/react-native/Libraries/Image/RCTUIImageViewAnimated.m rename to packages/react-native/Libraries/Image/RCTUIImageViewAnimated.mm diff --git a/packages/react-native/Libraries/Image/React-RCTImage.podspec b/packages/react-native/Libraries/Image/React-RCTImage.podspec index f6a91baaf99c27..e53162bee2e5b6 100644 --- a/packages/react-native/Libraries/Image/React-RCTImage.podspec +++ b/packages/react-native/Libraries/Image/React-RCTImage.podspec @@ -51,6 +51,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", "HEADER_SEARCH_PATHS" => header_search_paths.join(' ') } + s.framework = ["Accelerate", "UIKit"] s.dependency "RCT-Folly", folly_version s.dependency "React-Codegen", version diff --git a/packages/react-native/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.m b/packages/react-native/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.m rename to packages/react-native/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Drivers/RCTEventAnimation.m b/packages/react-native/Libraries/NativeAnimation/Drivers/RCTEventAnimation.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Drivers/RCTEventAnimation.m rename to packages/react-native/Libraries/NativeAnimation/Drivers/RCTEventAnimation.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.m b/packages/react-native/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.m rename to packages/react-native/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.m b/packages/react-native/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.m rename to packages/react-native/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTColorAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTColorAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTColorAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTColorAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.h b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.h index d56395d55d7f18..26a78a7856a0ca 100644 --- a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.h +++ b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.h @@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN RCT_EXTERN NSString *RCTInterpolateString( NSString *pattern, CGFloat inputValue, - NSArray *inputRange, + NSArray *inputRange, NSArray *> *outputRange, NSString *extrapolateLeft, NSString *extrapolateRight); diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm similarity index 99% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm index 3c53d537cc77cc..78ee190dee0cd4 100644 --- a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.m +++ b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#import +#import "RCTInterpolationAnimatedNode.h" #import #import diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.m b/packages/react-native/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.m rename to packages/react-native/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.mm diff --git a/packages/react-native/Libraries/NativeAnimation/RCTAnimationUtils.m b/packages/react-native/Libraries/NativeAnimation/RCTAnimationUtils.mm similarity index 98% rename from packages/react-native/Libraries/NativeAnimation/RCTAnimationUtils.m rename to packages/react-native/Libraries/NativeAnimation/RCTAnimationUtils.mm index 8006fb808a9bf6..90cfe304d6f68a 100644 --- a/packages/react-native/Libraries/NativeAnimation/RCTAnimationUtils.m +++ b/packages/react-native/Libraries/NativeAnimation/RCTAnimationUtils.mm @@ -110,7 +110,7 @@ uint32_t RCTColorFromComponents(CGFloat red, CGFloat green, CGFloat blue, CGFloa #if TARGET_IPHONE_SIMULATOR // Based on https://stackoverflow.com/a/13307674 -float UIAnimationDragCoefficient(void); +UIKIT_EXTERN float UIAnimationDragCoefficient(void); #endif CGFloat RCTAnimationDragCoefficient(void) diff --git a/packages/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.m b/packages/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm similarity index 100% rename from packages/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.m rename to packages/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm diff --git a/packages/react-native/Libraries/Network/XMLHttpRequest.js b/packages/react-native/Libraries/Network/XMLHttpRequest.js index f66d194863a457..e6191b10f7b560 100644 --- a/packages/react-native/Libraries/Network/XMLHttpRequest.js +++ b/packages/react-native/Libraries/Network/XMLHttpRequest.js @@ -13,12 +13,12 @@ import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger'; import {type EventSubscription} from '../vendor/emitter/EventEmitter'; +import EventTarget from 'event-target-shim'; const BlobManager = require('../Blob/BlobManager'); const GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger'); const RCTNetworking = require('./RCTNetworking').default; const base64 = require('base64-js'); -const EventTarget = require('event-target-shim'); const invariant = require('invariant'); const DEBUG_NETWORK_SEND_DELAY: false = false; // Set to a number of milliseconds when debugging diff --git a/packages/react-native/Libraries/ReactNative/AppContainer.js b/packages/react-native/Libraries/ReactNative/AppContainer.js index 59c0cb117c36e0..0731d465c7f5a0 100644 --- a/packages/react-native/Libraries/ReactNative/AppContainer.js +++ b/packages/react-native/Libraries/ReactNative/AppContainer.js @@ -34,7 +34,6 @@ type State = {| devtoolsOverlay: ?React.Node, traceUpdateOverlay: ?React.Node, mainKey: number, - hasError: boolean, |}; class AppContainer extends React.Component { @@ -43,7 +42,6 @@ class AppContainer extends React.Component { devtoolsOverlay: null, traceUpdateOverlay: null, mainKey: 1, - hasError: false, }; _mainRef: ?React.ElementRef; _subscription: ?EventSubscription = null; @@ -128,10 +126,11 @@ class AppContainer extends React.Component { ); } + return ( - {!this.state.hasError && innerView} + {innerView} {this.state.traceUpdateOverlay} {this.state.devtoolsOverlay} {this.state.inspector} diff --git a/packages/react-native/Libraries/ReactNative/BridgelessUIManager.js b/packages/react-native/Libraries/ReactNative/BridgelessUIManager.js index bcc3a984b22ffd..38b63e7baa0fc6 100644 --- a/packages/react-native/Libraries/ReactNative/BridgelessUIManager.js +++ b/packages/react-native/Libraries/ReactNative/BridgelessUIManager.js @@ -31,7 +31,7 @@ function getCachedConstants(): Object { module.exports = { getViewManagerConfig: (viewManagerName: string): mixed => { - if (ReactNativeFeatureFlags.enableNativeViewConfigsInBridgelessMode) { + if (ReactNativeFeatureFlags.enableNativeViewConfigsInBridgelessMode()) { return getCachedConstants()[viewManagerName]; } else { console.error( @@ -46,7 +46,7 @@ module.exports = { return unstable_hasComponent(viewManagerName); }, getConstants: (): Object => { - if (ReactNativeFeatureFlags.enableNativeViewConfigsInBridgelessMode) { + if (ReactNativeFeatureFlags.enableNativeViewConfigsInBridgelessMode()) { return getCachedConstants(); } else { console.error(errorMessageForMethod('getConstants')); diff --git a/packages/react-native/Libraries/Settings/Settings.android.js b/packages/react-native/Libraries/Settings/Settings.js similarity index 64% rename from packages/react-native/Libraries/Settings/Settings.android.js rename to packages/react-native/Libraries/Settings/Settings.js index 4a11b74a52910c..9687df6108d236 100644 --- a/packages/react-native/Libraries/Settings/Settings.android.js +++ b/packages/react-native/Libraries/Settings/Settings.js @@ -12,21 +12,21 @@ const Settings = { get(key: string): mixed { - console.warn('Settings is not yet supported on Android'); + console.warn('Settings is not yet supported on this platform.'); return null; }, set(settings: Object) { - console.warn('Settings is not yet supported on Android'); + console.warn('Settings is not yet supported on this platform.'); }, watchKeys(keys: string | Array, callback: Function): number { - console.warn('Settings is not yet supported on Android'); + console.warn('Settings is not yet supported on this platform.'); return -1; }, clearWatch(watchId: number) { - console.warn('Settings is not yet supported on Android'); + console.warn('Settings is not yet supported on this platform.'); }, }; diff --git a/packages/react-native/Libraries/Text/BaseText/RCTBaseTextShadowView.m b/packages/react-native/Libraries/Text/BaseText/RCTBaseTextShadowView.mm similarity index 100% rename from packages/react-native/Libraries/Text/BaseText/RCTBaseTextShadowView.m rename to packages/react-native/Libraries/Text/BaseText/RCTBaseTextShadowView.mm diff --git a/packages/react-native/Libraries/Text/BaseText/RCTBaseTextViewManager.m b/packages/react-native/Libraries/Text/BaseText/RCTBaseTextViewManager.mm similarity index 100% rename from packages/react-native/Libraries/Text/BaseText/RCTBaseTextViewManager.m rename to packages/react-native/Libraries/Text/BaseText/RCTBaseTextViewManager.mm diff --git a/packages/react-native/Libraries/Text/RCTConvert+Text.m b/packages/react-native/Libraries/Text/RCTConvert+Text.mm similarity index 100% rename from packages/react-native/Libraries/Text/RCTConvert+Text.m rename to packages/react-native/Libraries/Text/RCTConvert+Text.mm diff --git a/packages/react-native/Libraries/Text/RCTTextAttributes.m b/packages/react-native/Libraries/Text/RCTTextAttributes.mm similarity index 100% rename from packages/react-native/Libraries/Text/RCTTextAttributes.m rename to packages/react-native/Libraries/Text/RCTTextAttributes.mm diff --git a/packages/react-native/Libraries/Text/RawText/RCTRawTextShadowView.m b/packages/react-native/Libraries/Text/RawText/RCTRawTextShadowView.mm similarity index 100% rename from packages/react-native/Libraries/Text/RawText/RCTRawTextShadowView.m rename to packages/react-native/Libraries/Text/RawText/RCTRawTextShadowView.mm diff --git a/packages/react-native/Libraries/Text/RawText/RCTRawTextViewManager.m b/packages/react-native/Libraries/Text/RawText/RCTRawTextViewManager.mm similarity index 100% rename from packages/react-native/Libraries/Text/RawText/RCTRawTextViewManager.m rename to packages/react-native/Libraries/Text/RawText/RCTRawTextViewManager.mm diff --git a/packages/react-native/Libraries/Text/React-RCTText.podspec b/packages/react-native/Libraries/Text/React-RCTText.podspec index 36d878b3c3ff33..3777e5d9603f28 100644 --- a/packages/react-native/Libraries/Text/React-RCTText.podspec +++ b/packages/react-native/Libraries/Text/React-RCTText.podspec @@ -26,9 +26,11 @@ Pod::Spec.new do |s| s.author = "Meta Platforms, Inc. and its affiliates" s.platforms = { :ios => min_ios_version_supported } s.source = source - s.source_files = "**/*.{h,m}" + s.source_files = "**/*.{h,m,mm}" s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs" s.header_dir = "RCTText" + s.framework = ["MobileCoreServices"] + s.dependency "Yoga" s.dependency "React-Core/RCTTextHeaders", version end diff --git a/packages/react-native/Libraries/Text/Text.js b/packages/react-native/Libraries/Text/Text.js index d473178deb5490..0736e987f266c3 100644 --- a/packages/react-native/Libraries/Text/Text.js +++ b/packages/react-native/Libraries/Text/Text.js @@ -105,7 +105,13 @@ const Text: React.AbstractComponent< onLongPress, onPress, onPressIn(event: PressEvent) { - setHighlighted(!suppressHighlighting); + // Updating isHighlighted causes unnecessary re-renders for platforms that don't use it + // in the best case, and cause issues with text selection in the worst case. Forcing + // the isHighlighted prop to false on all platforms except iOS. + setHighlighted( + (suppressHighlighting == null || !suppressHighlighting) && + Platform.OS === 'ios', + ); onPressIn?.(event); }, onPressOut(event: PressEvent) { diff --git a/packages/react-native/Libraries/Text/Text/RCTDynamicTypeRamp.m b/packages/react-native/Libraries/Text/Text/RCTDynamicTypeRamp.mm similarity index 100% rename from packages/react-native/Libraries/Text/Text/RCTDynamicTypeRamp.m rename to packages/react-native/Libraries/Text/Text/RCTDynamicTypeRamp.mm diff --git a/packages/react-native/Libraries/Text/Text/RCTTextShadowView.m b/packages/react-native/Libraries/Text/Text/RCTTextShadowView.mm similarity index 100% rename from packages/react-native/Libraries/Text/Text/RCTTextShadowView.m rename to packages/react-native/Libraries/Text/Text/RCTTextShadowView.mm diff --git a/packages/react-native/Libraries/Text/Text/RCTTextView.m b/packages/react-native/Libraries/Text/Text/RCTTextView.mm similarity index 100% rename from packages/react-native/Libraries/Text/Text/RCTTextView.m rename to packages/react-native/Libraries/Text/Text/RCTTextView.mm diff --git a/packages/react-native/Libraries/Text/Text/RCTTextViewManager.m b/packages/react-native/Libraries/Text/Text/RCTTextViewManager.mm similarity index 100% rename from packages/react-native/Libraries/Text/Text/RCTTextViewManager.m rename to packages/react-native/Libraries/Text/Text/RCTTextViewManager.mm diff --git a/packages/react-native/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.m b/packages/react-native/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.m rename to packages/react-native/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm diff --git a/packages/react-native/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.m b/packages/react-native/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.m rename to packages/react-native/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm diff --git a/packages/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.m b/packages/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.m rename to packages/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm diff --git a/packages/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m b/packages/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m rename to packages/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm diff --git a/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.m b/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.m rename to packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm diff --git a/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.m b/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm similarity index 99% rename from packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.m rename to packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm index abd071bc8b9ffd..233c76ed84092f 100644 --- a/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.m +++ b/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm @@ -235,7 +235,8 @@ - (void)setTextContentType:(NSString *)type static NSDictionary *contentTypeMap; dispatch_once(&onceToken, ^{ - NSDictionary *mutableContentTypeMap = @{ + NSMutableDictionary *mutableContentTypeMap = [NSMutableDictionary new]; + [mutableContentTypeMap addEntriesFromDictionary:@{ @"none" : @"", @"URL" : UITextContentTypeURL, @"addressCity" : UITextContentTypeAddressCity, @@ -264,11 +265,11 @@ - (void)setTextContentType:(NSString *)type @"password" : UITextContentTypePassword, @"newPassword" : UITextContentTypeNewPassword, @"oneTimeCode" : UITextContentTypeOneTimeCode, - }; + }]; #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 170000 /* __IPHONE_17_0 */ if (@available(iOS 17.0, *)) { - mutableContentTypeMap = [[mutableContentTypeMap mutableCopy] addEntriesFromDictionary:@{ + [mutableContentTypeMap addEntriesFromDictionary:@{ @"creditCardExpiration" : UITextContentTypeCreditCardExpiration, @"creditCardExpirationMonth" : UITextContentTypeCreditCardExpirationMonth, @"creditCardExpirationYear" : UITextContentTypeCreditCardExpirationYear, diff --git a/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.m b/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.m rename to packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm diff --git a/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryShadowView.m b/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm similarity index 84% rename from packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryShadowView.m rename to packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm index 0bb54d3dac8a6a..ebe514e037f486 100644 --- a/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryShadowView.m +++ b/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm @@ -14,7 +14,7 @@ @implementation RCTInputAccessoryShadowView - (void)insertReactSubview:(RCTShadowView *)subview atIndex:(NSInteger)atIndex { [super insertReactSubview:subview atIndex:atIndex]; - subview.width = (YGValue){RCTScreenSize().width, YGUnitPoint}; + subview.width = (YGValue){static_cast(RCTScreenSize().width), YGUnitPoint}; } @end diff --git a/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryView.m b/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryView.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryView.m rename to packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryView.mm diff --git a/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m b/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m rename to packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm diff --git a/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewManager.m b/packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewManager.m rename to packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm diff --git a/packages/react-native/Libraries/Text/TextInput/RCTTextSelection.m b/packages/react-native/Libraries/Text/TextInput/RCTTextSelection.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/RCTTextSelection.m rename to packages/react-native/Libraries/Text/TextInput/RCTTextSelection.mm diff --git a/packages/react-native/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.m b/packages/react-native/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.m rename to packages/react-native/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm diff --git a/packages/react-native/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.m b/packages/react-native/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.m rename to packages/react-native/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm diff --git a/packages/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.m b/packages/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm similarity index 100% rename from packages/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.m rename to packages/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm diff --git a/packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextShadowView.m b/packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm similarity index 100% rename from packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextShadowView.m rename to packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm diff --git a/packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextView.m b/packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextView.mm similarity index 100% rename from packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextView.m rename to packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextView.mm diff --git a/packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextViewManager.m b/packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm similarity index 100% rename from packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextViewManager.m rename to packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm diff --git a/packages/react-native/Libraries/Types/CoreEventTypes.d.ts b/packages/react-native/Libraries/Types/CoreEventTypes.d.ts index 7aff083b07a2bf..9e9f18f84b4496 100644 --- a/packages/react-native/Libraries/Types/CoreEventTypes.d.ts +++ b/packages/react-native/Libraries/Types/CoreEventTypes.d.ts @@ -8,7 +8,6 @@ */ import type * as React from 'react'; -import {NodeHandle} from '../ReactNative/RendererProxy'; import {HostComponent} from '../../types/public/ReactNativeTypes'; export interface LayoutRectangle { @@ -42,7 +41,11 @@ export interface TextLayoutEventData extends TargetedEvent { // Similar to React.SyntheticEvent except for nativeEvent export interface NativeSyntheticEvent - extends React.BaseSyntheticEvent {} + extends React.BaseSyntheticEvent< + T, + React.ElementRef>, + React.ElementRef> + > {} export interface NativeTouchEvent { /** diff --git a/packages/react-native/Libraries/Utilities/SceneTracker.js b/packages/react-native/Libraries/Utilities/SceneTracker.js index 6dc1bbbd47b3b1..1b85f8d7dec74b 100644 --- a/packages/react-native/Libraries/Utilities/SceneTracker.js +++ b/packages/react-native/Libraries/Utilities/SceneTracker.js @@ -10,7 +10,7 @@ 'use strict'; -export type Scene = {name: string, ...}; +export type Scene = {name: string, [string]: mixed, ...}; let _listeners: Array<(scene: Scene) => void> = []; diff --git a/packages/react-native/React-Core.podspec b/packages/react-native/React-Core.podspec index 2fad76d2d9726a..c46b5afc4f15fc 100644 --- a/packages/react-native/React-Core.podspec +++ b/packages/react-native/React-Core.podspec @@ -91,7 +91,7 @@ Pod::Spec.new do |s| "React/Fabric/**/*", "React/FBReactNativeSpec/**/*", "React/Tests/**/*", - "React/Inspector/**/*" + "React/Inspector/**/*", ] # If we are using Hermes (the default is use hermes, so USE_HERMES can be nil), we don't have jsc installed # So we have to exclude the JSCExecutorFactory @@ -99,7 +99,7 @@ Pod::Spec.new do |s| exclude_files = exclude_files.append("React/CxxBridge/JSCExecutorFactory.{h,mm}") end ss.exclude_files = exclude_files - ss.private_header_files = "React/Cxx*/*.h" + ss.private_header_files = "React/CxxLogUtils/*.h" end s.subspec "DevSupport" do |ss| diff --git a/packages/react-native/React/Base/RCTBridge.m b/packages/react-native/React/Base/RCTBridge.mm similarity index 100% rename from packages/react-native/React/Base/RCTBridge.m rename to packages/react-native/React/Base/RCTBridge.mm diff --git a/packages/react-native/React/Base/RCTConstants.h b/packages/react-native/React/Base/RCTConstants.h index e81a7d6bf72eee..5cae2004f67bd9 100644 --- a/packages/react-native/React/Base/RCTConstants.h +++ b/packages/react-native/React/Base/RCTConstants.h @@ -39,25 +39,6 @@ RCT_EXTERN NSString *const RCTJavaScriptDidFailToLoadNotification; */ RCT_EXTERN NSString *const RCTDidInitializeModuleNotification; -/** - * This notification fires each time a module is setup after it is initialized. The - * `RCTDidSetupModuleNotificationModuleNameKey` key will contain a reference to the module name and - * `RCTDidSetupModuleNotificationSetupTimeKey` will contain the setup time in ms. - */ -RCT_EXTERN NSString *const RCTDidSetupModuleNotification; - -/** - * Key for the module name (NSString) in the - * RCTDidSetupModuleNotification userInfo dictionary. - */ -RCT_EXTERN NSString *const RCTDidSetupModuleNotificationModuleNameKey; - -/** - * Key for the setup time (NSNumber) in the - * RCTDidSetupModuleNotification userInfo dictionary. - */ -RCT_EXTERN NSString *const RCTDidSetupModuleNotificationSetupTimeKey; - /* * W3C Pointer Events */ diff --git a/packages/react-native/React/Base/RCTConstants.m b/packages/react-native/React/Base/RCTConstants.m index 51fb43ac2758c7..a06dff9b3b1fa3 100644 --- a/packages/react-native/React/Base/RCTConstants.m +++ b/packages/react-native/React/Base/RCTConstants.m @@ -16,9 +16,6 @@ NSString *const RCTJavaScriptWillStartLoadingNotification = @"RCTJavaScriptWillStartLoadingNotification"; NSString *const RCTDidInitializeModuleNotification = @"RCTDidInitializeModuleNotification"; -NSString *const RCTDidSetupModuleNotification = @"RCTDidSetupModuleNotification"; -NSString *const RCTDidSetupModuleNotificationModuleNameKey = @"moduleName"; -NSString *const RCTDidSetupModuleNotificationSetupTimeKey = @"setupTime"; /* * W3C Pointer Events diff --git a/packages/react-native/React/Base/RCTModuleData.h b/packages/react-native/React/Base/RCTModuleData.h index a1c5b3a62d747d..6e3c0cbf5d7191 100644 --- a/packages/react-native/React/Base/RCTModuleData.h +++ b/packages/react-native/React/Base/RCTModuleData.h @@ -8,7 +8,6 @@ #import #import -#import "RCTDefines.h" @protocol RCTBridgeMethod; @protocol RCTBridgeModule; @@ -112,6 +111,3 @@ typedef id (^RCTBridgeModuleProvider)(void); @property (nonatomic, assign, readonly) BOOL implementsPartialBatchDidFlush; @end - -RCT_EXTERN void RCTSetIsMainQueueExecutionOfConstantsToExportDisabled(BOOL val); -RCT_EXTERN BOOL RCTIsMainQueueExecutionOfConstantsToExportDisabled(void); diff --git a/packages/react-native/React/Base/RCTModuleData.mm b/packages/react-native/React/Base/RCTModuleData.mm index 3e7fd3e7f76bc8..dbbc6daa9aa30c 100644 --- a/packages/react-native/React/Base/RCTModuleData.mm +++ b/packages/react-native/React/Base/RCTModuleData.mm @@ -32,17 +32,6 @@ int32_t getUniqueId() return counter++; } } -static BOOL isMainQueueExecutionOfConstantToExportDisabled = NO; - -void RCTSetIsMainQueueExecutionOfConstantsToExportDisabled(BOOL val) -{ - isMainQueueExecutionOfConstantToExportDisabled = val; -} - -BOOL RCTIsMainQueueExecutionOfConstantsToExportDisabled() -{ - return isMainQueueExecutionOfConstantToExportDisabled; -} @implementation RCTModuleData { NSDictionary *_constantsToExport; @@ -461,7 +450,7 @@ - (void)gatherConstantsAndSignalJSRequireEnding:(BOOL)startMarkers BridgeNativeModulePerfLogger::moduleJSRequireEndingStart([moduleName UTF8String]); } - if (!RCTIsMainQueueExecutionOfConstantsToExportDisabled() && _requiresMainQueueSetup) { + if (_requiresMainQueueSetup) { if (!RCTIsMainQueue()) { RCTLogWarn(@"Required dispatch_sync to load constants for %@. This may lead to deadlocks", _moduleClass); } diff --git a/packages/react-native/React/CoreModules/RCTAlertController.m b/packages/react-native/React/CoreModules/RCTAlertController.mm similarity index 89% rename from packages/react-native/React/CoreModules/RCTAlertController.m rename to packages/react-native/React/CoreModules/RCTAlertController.mm index e3f19959e93427..2b6822108b3152 100644 --- a/packages/react-native/React/CoreModules/RCTAlertController.m +++ b/packages/react-native/React/CoreModules/RCTAlertController.mm @@ -43,8 +43,9 @@ - (UIWindow *)alertWindow - (void)show:(BOOL)animated completion:(void (^)(void))completion { - UIUserInterfaceStyle style = - RCTSharedApplication().delegate.window.overrideUserInterfaceStyle ?: UIUserInterfaceStyleUnspecified; + UIUserInterfaceStyle style = RCTSharedApplication().delegate.window.overrideUserInterfaceStyle + ? RCTSharedApplication().delegate.window.overrideUserInterfaceStyle + : UIUserInterfaceStyleUnspecified; self.overrideUserInterfaceStyle = style; [self.alertWindow makeKeyAndVisible]; diff --git a/packages/react-native/React/CoreModules/RCTFPSGraph.m b/packages/react-native/React/CoreModules/RCTFPSGraph.mm similarity index 98% rename from packages/react-native/React/CoreModules/RCTFPSGraph.m rename to packages/react-native/React/CoreModules/RCTFPSGraph.mm index 6beaf7d16f1d45..1fc4bd24b9c37f 100644 --- a/packages/react-native/React/CoreModules/RCTFPSGraph.m +++ b/packages/react-native/React/CoreModules/RCTFPSGraph.mm @@ -45,7 +45,7 @@ - (instancetype)initWithFrame:(CGRect)frame color:(UIColor *)color _length = (NSUInteger)floor(frame.size.width); _height = (NSUInteger)floor(frame.size.height); _scale = 60.0 / (CGFloat)_height; - _frames = calloc(sizeof(CGFloat), _length); + _frames = (CGFloat *)calloc(sizeof(CGFloat), _length); _color = color; [self.layer addSublayer:self.graph]; diff --git a/packages/react-native/React/CoreModules/React-CoreModules.podspec b/packages/react-native/React/CoreModules/React-CoreModules.podspec index 7941b07c49e013..313947f5c6598f 100644 --- a/packages/react-native/React/CoreModules/React-CoreModules.podspec +++ b/packages/react-native/React/CoreModules/React-CoreModules.podspec @@ -49,7 +49,7 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", "HEADER_SEARCH_PATHS" => header_search_paths.join(" ") } - + s.framework = "UIKit" s.dependency "React-Codegen", version s.dependency "RCT-Folly", folly_version s.dependency "RCTTypeSafety", version diff --git a/packages/react-native/React/CxxBridge/RCTCxxBridge.mm b/packages/react-native/React/CxxBridge/RCTCxxBridge.mm index 55793e9d02eb3c..fc77456265da17 100644 --- a/packages/react-native/React/CxxBridge/RCTCxxBridge.mm +++ b/packages/react-native/React/CxxBridge/RCTCxxBridge.mm @@ -114,20 +114,6 @@ int32_t getUniqueId() } -static void notifyAboutModuleSetup(RCTPerformanceLogger *performanceLogger, const char *tag) -{ - NSString *moduleName = [[NSString alloc] initWithUTF8String:tag]; - if (moduleName) { - int64_t setupTime = [performanceLogger durationForTag:RCTPLNativeModuleSetup]; - [[NSNotificationCenter defaultCenter] postNotificationName:RCTDidSetupModuleNotification - object:nil - userInfo:@{ - RCTDidSetupModuleNotificationModuleNameKey : moduleName, - RCTDidSetupModuleNotificationSetupTimeKey : @(setupTime) - }]; - } -} - static void mapReactMarkerToPerformanceLogger( const ReactMarker::ReactMarkerId markerId, RCTPerformanceLogger *performanceLogger, @@ -158,7 +144,6 @@ static void mapReactMarkerToPerformanceLogger( break; case ReactMarker::NATIVE_MODULE_SETUP_STOP: [performanceLogger markStopForTag:RCTPLNativeModuleSetup]; - notifyAboutModuleSetup(performanceLogger, tag); break; // Not needed in bridge mode. case ReactMarker::REACT_INSTANCE_INIT_START: @@ -1030,9 +1015,7 @@ - (void)_prepareModulesWithDispatchGroup:(dispatch_group_t)dispatchGroup if (self.valid && ![moduleData.moduleClass isSubclassOfClass:[RCTCxxModule class]]) { [self->_performanceLogger appendStartForTag:RCTPLNativeModuleMainThread]; (void)[moduleData instance]; - if (!RCTIsMainQueueExecutionOfConstantsToExportDisabled()) { - [moduleData gatherConstants]; - } + [moduleData gatherConstants]; [self->_performanceLogger appendStopForTag:RCTPLNativeModuleMainThread]; } }; diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm index 6e3d662f15a150..a7526fd562a837 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm @@ -181,7 +181,8 @@ UITextContentType RCTUITextContentTypeFromString(std::string const &contentType) static NSDictionary *contentTypeMap; dispatch_once(&onceToken, ^{ - NSDictionary *mutableContentTypeMap = @{ + NSMutableDictionary *mutableContentTypeMap = [NSMutableDictionary new]; + [mutableContentTypeMap addEntriesFromDictionary:@{ @"" : @"", @"none" : @"", @"URL" : UITextContentTypeURL, @@ -211,11 +212,11 @@ UITextContentType RCTUITextContentTypeFromString(std::string const &contentType) @"password" : UITextContentTypePassword, @"newPassword" : UITextContentTypeNewPassword, @"oneTimeCode" : UITextContentTypeOneTimeCode, - }; + }]; #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 170000 /* __IPHONE_17_0 */ if (@available(iOS 17.0, *)) { - mutableContentTypeMap = [[mutableContentTypeMap mutableCopy] addEntriesFromDictionary:@{ + [mutableContentTypeMap addEntriesFromDictionary:@{ @"creditCardExpiration" : UITextContentTypeCreditCardExpiration, @"creditCardExpirationMonth" : UITextContentTypeCreditCardExpirationMonth, @"creditCardExpirationYear" : UITextContentTypeCreditCardExpirationYear, diff --git a/packages/react-native/React/I18n/strings/zh-Hant-HK.lproj/fbt_language_pack.bin b/packages/react-native/React/I18n/strings/zh-Hant-HK.lproj/fbt_language_pack.bin index 3c20478c76a417..940288b8b28731 100644 Binary files a/packages/react-native/React/I18n/strings/zh-Hant-HK.lproj/fbt_language_pack.bin and b/packages/react-native/React/I18n/strings/zh-Hant-HK.lproj/fbt_language_pack.bin differ diff --git a/packages/react-native/React/React-RCTFabric.podspec b/packages/react-native/React/React-RCTFabric.podspec index d91c8f25018631..af3ed97086bb48 100644 --- a/packages/react-native/React/React-RCTFabric.podspec +++ b/packages/react-native/React/React-RCTFabric.podspec @@ -39,6 +39,7 @@ if ENV['USE_FRAMEWORKS'] header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/textlayoutmanager/platform/ios\"" header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/textinput/iostextinput\"" header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\"" + header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-nativeconfig/React_nativeconfig.framework/Headers\"" header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\"" header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\"" header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-ImageManager/React_ImageManager.framework/Headers\"" @@ -85,6 +86,7 @@ Pod::Spec.new do |s| s.dependency "React-debug" s.dependency "React-utils" s.dependency "React-rendererdebug" + s.dependency "React-nativeconfig" if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1" s.dependency "hermes-engine" diff --git a/packages/react-native/ReactAndroid/build.gradle b/packages/react-native/ReactAndroid/build.gradle index 82b1494a08269e..08313ab7dee145 100644 --- a/packages/react-native/ReactAndroid/build.gradle +++ b/packages/react-native/ReactAndroid/build.gradle @@ -109,7 +109,7 @@ final def preparePrefab = tasks.register("preparePrefab", PreparePrefabHeadersTa "react_render_graphics", [ new Pair("../ReactCommon/react/renderer/graphics/", "react/renderer/graphics/"), - new Pair("../ReactCommon/react/renderer/graphics/platform/cxx/", ""), + new Pair("../ReactCommon/react/renderer/graphics/platform/android/", ""), ] ), new PrefabPreprocessingEntry( @@ -453,8 +453,8 @@ repositories { } android { - buildToolsVersion = "33.0.0" - compileSdkVersion 33 + compileSdk 33 + buildToolsVersion = "33.0.1" namespace "com.facebook.react" // Used to override the NDK path/version on internal CI or by allowing diff --git a/packages/react-native/ReactAndroid/flipper-integration/build.gradle b/packages/react-native/ReactAndroid/flipper-integration/build.gradle index b441e405858033..f7b6bea15efbfd 100644 --- a/packages/react-native/ReactAndroid/flipper-integration/build.gradle +++ b/packages/react-native/ReactAndroid/flipper-integration/build.gradle @@ -25,7 +25,7 @@ repositories { android { compileSdk 33 - buildToolsVersion = "33.0.0" + buildToolsVersion = "33.0.1" namespace "com.facebook.react.flipper" defaultConfig { diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 4b62f038058547..51049fd1f66536 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -7,7 +7,7 @@ ANDROIDX_AUTOFILL_VERSION=1.1.0 ANDROIDX_TEST_VERSION=1.1.0 ANDROIDX_TRACING_VERSION=1.1.0 ASSERTJ_VERSION=3.21.0 -FBJNI_VERSION=0.4.0 +FBJNI_VERSION=0.5.1 FRESCO_VERSION=3.0.0 INFER_ANNOTATIONS_VERSION=0.18.0 JAVAX_INJECT_VERSION=1 diff --git a/packages/react-native/ReactAndroid/hermes-engine/build.gradle b/packages/react-native/ReactAndroid/hermes-engine/build.gradle index 88f47e54b963ff..16e65d634e9735 100644 --- a/packages/react-native/ReactAndroid/hermes-engine/build.gradle +++ b/packages/react-native/ReactAndroid/hermes-engine/build.gradle @@ -159,8 +159,8 @@ repositories { } android { - compileSdkVersion 33 - buildToolsVersion = "33.0.0" + compileSdk 33 + buildToolsVersion = "33.0.1" namespace "com.facebook.hermes" // Used to override the NDK path/version on internal CI or by allowing @@ -232,17 +232,6 @@ android { } } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - - kotlin { - // We intentionally don't build on JDK 17 to keep this version aligned with - // the JVM toolchain of :ReactAndroid - jvmToolchain(11) - } - sourceSets { main { manifest.srcFile "$hermesDir/android/hermes/src/main/AndroidManifest.xml" @@ -258,7 +247,7 @@ android { } dependencies { - implementation("com.facebook.fbjni:fbjni:0.4.0") + implementation("com.facebook.fbjni:fbjni:0.5.1") implementation("com.facebook.soloader:soloader:0.10.5") implementation("com.facebook.yoga:proguard-annotations:1.19.0") implementation("androidx.annotation:annotation:1.3.0") diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/BridgelessReactPackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/BridgelessReactPackage.java index 14d361b0499475..7989ce8aaccd53 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/BridgelessReactPackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/BridgelessReactPackage.java @@ -101,12 +101,7 @@ public ReactModuleInfoProvider getReactModuleInfoProvider() { TurboModule.class.isAssignableFrom(moduleClass))); } } - return new ReactModuleInfoProvider() { - @Override - public Map getReactModuleInfos() { - return reactModuleInfoMap; - } - }; + return () -> reactModuleInfoMap; } catch (InstantiationException e) { throw new RuntimeException( "No ReactModuleInfoProvider for CoreModulesPackage$$ReactModuleInfoProvider", e); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java index d1f2b994f3d8b0..cbf8de9325376d 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java @@ -510,16 +510,19 @@ public void onOptionSelected() { title.setGravity(Gravity.CENTER); title.setTextSize(16); title.setTypeface(title.getTypeface(), Typeface.BOLD); + header.addView(title); - final TextView jsExecutorLabel = new TextView(context); - jsExecutorLabel.setText( - context.getString(R.string.catalyst_dev_menu_sub_header, getJSExecutorDescription())); - jsExecutorLabel.setPadding(0, 20, 0, 0); - jsExecutorLabel.setGravity(Gravity.CENTER); - jsExecutorLabel.setTextSize(14); + String jsExecutorDescription = getJSExecutorDescription(); - header.addView(title); - header.addView(jsExecutorLabel); + if (jsExecutorDescription != null) { + final TextView jsExecutorLabel = new TextView(context); + jsExecutorLabel.setText( + context.getString(R.string.catalyst_dev_menu_sub_header, jsExecutorDescription)); + jsExecutorLabel.setPadding(0, 20, 0, 0); + jsExecutorLabel.setGravity(Gravity.CENTER); + jsExecutorLabel.setTextSize(14); + header.addView(jsExecutorLabel); + } mDevOptionsDialog = new AlertDialog.Builder(context) @@ -539,7 +542,11 @@ public void onOptionSelected() { } private String getJSExecutorDescription() { - return getReactInstanceDevHelper().getJavaScriptExecutorFactory().toString(); + try { + return getReactInstanceDevHelper().getJavaScriptExecutorFactory().toString(); + } catch (IllegalStateException e) { + return null; + } } /** diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java deleted file mode 100644 index 17e7ce7bf16cee..00000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.jscexecutor; - -import com.facebook.jni.HybridData; -import com.facebook.proguard.annotations.DoNotStrip; -import com.facebook.react.bridge.JavaScriptExecutor; -import com.facebook.react.bridge.ReadableNativeMap; -import com.facebook.soloader.SoLoader; - -@DoNotStrip -public class JSCExecutor extends JavaScriptExecutor { - - static { - loadLibrary(); - } - - public static void loadLibrary() throws UnsatisfiedLinkError { - SoLoader.loadLibrary("jscexecutor"); - } - - /* package */ JSCExecutor(ReadableNativeMap jscConfig) { - super(initHybrid(jscConfig)); - } - - @Override - public String getName() { - return "JSCExecutor"; - } - - private static native HybridData initHybrid(ReadableNativeMap jscConfig); -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.kt new file mode 100644 index 00000000000000..8dc018deca0d33 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.kt @@ -0,0 +1,36 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.jscexecutor + +import com.facebook.jni.HybridData +import com.facebook.proguard.annotations.DoNotStrip +import com.facebook.react.bridge.JavaScriptExecutor +import com.facebook.react.bridge.ReadableNativeMap +import com.facebook.soloader.SoLoader + +@DoNotStrip +class JSCExecutor internal constructor(jscConfig: ReadableNativeMap) : + JavaScriptExecutor(initHybrid(jscConfig)) { + override fun getName(): String { + return "JSCExecutor" + } + + companion object { + init { + loadLibrary() + } + + @JvmStatic + @Throws(UnsatisfiedLinkError::class) + fun loadLibrary() { + SoLoader.loadLibrary("jscexecutor") + } + + private external fun initHybrid(jscConfig: ReadableNativeMap): HybridData? + } +} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.java deleted file mode 100644 index ddd913b77a35f4..00000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.jscexecutor; - -import com.facebook.react.bridge.JavaScriptExecutor; -import com.facebook.react.bridge.JavaScriptExecutorFactory; -import com.facebook.react.bridge.WritableNativeMap; - -public class JSCExecutorFactory implements JavaScriptExecutorFactory { - private final String mAppName; - private final String mDeviceName; - - public JSCExecutorFactory(String appName, String deviceName) { - this.mAppName = appName; - this.mDeviceName = deviceName; - } - - @Override - public JavaScriptExecutor create() throws Exception { - WritableNativeMap jscConfig = new WritableNativeMap(); - jscConfig.putString("OwnerIdentity", "ReactNative"); - jscConfig.putString("AppIdentity", mAppName); - jscConfig.putString("DeviceIdentity", mDeviceName); - return new JSCExecutor(jscConfig); - } - - @Override - public void startSamplingProfiler() { - throw new UnsupportedOperationException( - "Starting sampling profiler not supported on " + toString()); - } - - @Override - public void stopSamplingProfiler(String filename) { - throw new UnsupportedOperationException( - "Stopping sampling profiler not supported on " + toString()); - } - - @Override - public String toString() { - return "JSIExecutor+JSCRuntime"; - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.kt new file mode 100644 index 00000000000000..6a464495977af0 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutorFactory.kt @@ -0,0 +1,37 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.jscexecutor + +import com.facebook.react.bridge.JavaScriptExecutor +import com.facebook.react.bridge.JavaScriptExecutorFactory +import com.facebook.react.bridge.WritableNativeMap + +class JSCExecutorFactory(private val appName: String, private val deviceName: String) : + JavaScriptExecutorFactory { + + @Throws(Exception::class) + override fun create(): JavaScriptExecutor { + val jscConfig = + WritableNativeMap().apply { + putString("OwnerIdentity", "ReactNative") + putString("AppIdentity", appName) + putString("DeviceIdentity", deviceName) + } + return JSCExecutor(jscConfig) + } + + override fun startSamplingProfiler() { + throw UnsupportedOperationException("Starting sampling profiler not supported on ${toString()}") + } + + override fun stopSamplingProfiler(filename: String) { + throw UnsupportedOperationException("Stopping sampling profiler not supported on ${toString()}") + } + + override fun toString(): String = "JSIExecutor+JSCRuntime" +} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java index aa3d187e27546f..da406d8bedb713 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java @@ -7,6 +7,7 @@ package com.facebook.react.shell; +import android.annotation.SuppressLint; import androidx.annotation.Nullable; import com.facebook.react.TurboReactPackage; import com.facebook.react.ViewManagerOnDemandReactPackage; @@ -187,153 +188,41 @@ private static void appendMap( } /** @return a map of view managers that should be registered with {@link UIManagerModule} */ + @SuppressLint("VisibleForTests") public Map getViewManagersMap() { if (mViewManagers == null) { Map viewManagers = new HashMap<>(); - appendMap( - viewManagers, - ReactDrawerLayoutManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactDrawerLayoutManager(); - } - }); + appendMap(viewManagers, ReactDrawerLayoutManager.REACT_CLASS, ReactDrawerLayoutManager::new); appendMap( viewManagers, ReactHorizontalScrollViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactHorizontalScrollViewManager(); - } - }); + ReactHorizontalScrollViewManager::new); appendMap( viewManagers, ReactHorizontalScrollContainerViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactHorizontalScrollContainerViewManager(); - } - }); - appendMap( - viewManagers, - ReactProgressBarViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactProgressBarViewManager(); - } - }); + ReactHorizontalScrollContainerViewManager::new); appendMap( - viewManagers, - ReactScrollViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactScrollViewManager(); - } - }); + viewManagers, ReactProgressBarViewManager.REACT_CLASS, ReactProgressBarViewManager::new); + appendMap(viewManagers, ReactScrollViewManager.REACT_CLASS, ReactScrollViewManager::new); + appendMap(viewManagers, ReactSwitchManager.REACT_CLASS, ReactSwitchManager::new); appendMap( - viewManagers, - ReactSwitchManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactSwitchManager(); - } - }); - appendMap( - viewManagers, - SwipeRefreshLayoutManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new SwipeRefreshLayoutManager(); - } - }); + viewManagers, SwipeRefreshLayoutManager.REACT_CLASS, SwipeRefreshLayoutManager::new); appendMap( viewManagers, FrescoBasedReactTextInlineImageViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new FrescoBasedReactTextInlineImageViewManager(); - } - }); + FrescoBasedReactTextInlineImageViewManager::new); + appendMap(viewManagers, ReactImageManager.REACT_CLASS, ReactImageManager::new); + appendMap(viewManagers, ReactModalHostManager.REACT_CLASS, ReactModalHostManager::new); + appendMap(viewManagers, ReactRawTextManager.REACT_CLASS, ReactRawTextManager::new); + appendMap(viewManagers, ReactTextInputManager.REACT_CLASS, ReactTextInputManager::new); + appendMap(viewManagers, ReactTextViewManager.REACT_CLASS, ReactTextViewManager::new); + appendMap(viewManagers, ReactViewManager.REACT_CLASS, ReactViewManager::new); appendMap( - viewManagers, - ReactImageManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactImageManager(); - } - }); - appendMap( - viewManagers, - ReactModalHostManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactModalHostManager(); - } - }); - appendMap( - viewManagers, - ReactRawTextManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactRawTextManager(); - } - }); - appendMap( - viewManagers, - ReactTextInputManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactTextInputManager(); - } - }); - appendMap( - viewManagers, - ReactTextViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactTextViewManager(); - } - }); - appendMap( - viewManagers, - ReactViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactViewManager(); - } - }); - appendMap( - viewManagers, - ReactVirtualTextViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactVirtualTextViewManager(); - } - }); + viewManagers, ReactVirtualTextViewManager.REACT_CLASS, ReactVirtualTextViewManager::new); appendMap( viewManagers, ReactUnimplementedViewManager.REACT_CLASS, - new Provider() { - @Override - public NativeModule get() { - return new ReactUnimplementedViewManager(); - } - }); + ReactUnimplementedViewManager::new); mViewManagers = viewManagers; } return mViewManagers; @@ -407,12 +296,7 @@ public ReactModuleInfoProvider getReactModuleInfoProvider() { TurboModule.class.isAssignableFrom(moduleClass))); } - return new ReactModuleInfoProvider() { - @Override - public Map getReactModuleInfos() { - return reactModuleInfoMap; - } - }; + return () -> reactModuleInfoMap; } catch (InstantiationException e) { throw new RuntimeException( "No ReactModuleInfoProvider for CoreModulesPackage$$ReactModuleInfoProvider", e); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder.kt similarity index 72% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder.java rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder.kt index 42073a555e41f7..12ac4792a01252 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/CallInvokerHolder.kt @@ -5,14 +5,13 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.turbomodule.core.interfaces; - +package com.facebook.react.turbomodule.core.interfaces /** * JS CallInvoker is created by CatalystInstance.cpp, but used by TurboModuleManager.cpp. Both C++ * classes are instantiated at different times/places. Therefore, to pass the JS CallInvoker * instance from CatalystInstance to TurboModuleManager, we make it take a trip through Java. * - *

This interface represents the opaque Java object that contains a pointer to and instance of + * This interface represents the opaque Java object that contains a pointer to and instance of * CallInvoker. */ -public interface CallInvokerHolder {} +interface CallInvokerHolder diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder.kt similarity index 75% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder.java rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder.kt index c3c52f51f57f03..7d1a3cc42838df 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder.kt @@ -5,10 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.turbomodule.core.interfaces; - +package com.facebook.react.turbomodule.core.interfaces /** * This interface represents the opaque Java object that contains a pointer to and instance of * NativeMethodCallInvoker. */ -public interface NativeMethodCallInvokerHolder {} +interface NativeMethodCallInvokerHolder diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt similarity index 74% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.java rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt index 1ce998e33af41b..b113a64dc0b953 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt @@ -5,13 +5,12 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.turbomodule.core.interfaces; - +package com.facebook.react.turbomodule.core.interfaces /** All turbo modules should inherit from this interface */ -public interface TurboModule { +interface TurboModule { /** Initialize the TurboModule. */ - void initialize(); + fun initialize() /** Called before React Native is torn down. Clean up after the TurboModule. */ - void invalidate(); + fun invalidate() } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModuleRegistry.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModuleRegistry.kt similarity index 73% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModuleRegistry.java rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModuleRegistry.kt index a255d1a4140531..981681105ed933 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModuleRegistry.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModuleRegistry.kt @@ -5,12 +5,10 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.turbomodule.core.interfaces; +package com.facebook.react.turbomodule.core.interfaces -import androidx.annotation.Nullable; -import com.facebook.react.bridge.NativeModule; -import java.util.Collection; -import java.util.List; +import com.facebook.react.bridge.NativeModule +import java.util.Collection /** * Interface to allow for creating and retrieving NativeModules. Why is this this class prefixed @@ -18,25 +16,23 @@ * already is a NativeModuleRegistry (a part of the legacy architecture). Once that class is * deleted, we should rename this interface accordingly. */ -public interface TurboModuleRegistry { +interface TurboModuleRegistry { /** * Return the NativeModule instance that has that name `moduleName`. If the `moduleName` * TurboModule hasn't been instantiated, instantiate it. If no TurboModule is registered under * `moduleName`, return null. */ - @Nullable - NativeModule getModule(String moduleName); + fun getModule(moduleName: String): NativeModule? /** Get all instantiated NativeModules. */ - Collection getModules(); + val modules: Collection /** Has the NativeModule with name `moduleName` been instantiated? */ - boolean hasModule(String moduleName); - + fun hasModule(moduleName: String): Boolean /** * Return the names of all the NativeModules that are supposed to be eagerly initialized. By * calling getModule on each name, this allows the application to eagerly initialize its * NativeModules. */ - List getEagerInitModuleNames(); + val eagerInitModuleNames: List } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java index b8b08c9bf74e8c..eed04a1c711f7f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java @@ -295,6 +295,10 @@ public static String getValue(AccessibilityRole role) { } public static AccessibilityRole fromValue(@Nullable String value) { + if (value == null) { + return NONE; + } + for (AccessibilityRole role : AccessibilityRole.values()) { if (role.name().equalsIgnoreCase(value)) { return role; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java index 3ac3d425659bec..fdf992e574dd40 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerView.java @@ -16,7 +16,6 @@ public class ReactHorizontalScrollContainerView extends ReactViewGroup { private int mLayoutDirection; - private int mCurrentWidth; public ReactHorizontalScrollContainerView(Context context) { super(context); @@ -24,7 +23,6 @@ public ReactHorizontalScrollContainerView(Context context) { I18nUtil.getInstance().isRTL(context) ? ViewCompat.LAYOUT_DIRECTION_RTL : ViewCompat.LAYOUT_DIRECTION_LTR; - mCurrentWidth = 0; } @Override @@ -50,24 +48,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto int newLeft = 0; int width = right - left; int newRight = newLeft + width; - setLeft(newLeft); - setRight(newRight); - - /** - * Note: in RTL mode, *when layout width changes*, we adjust the scroll position. Practically, - * this means that on the first (meaningful) layout we will go from position 0 to position - * (right - screenWidth). In theory this means if the width of the view ever changes during - * layout again, scrolling could jump. Which shouldn't happen in theory, but... if you find a - * weird product bug that looks related, keep this in mind. - */ - if (mCurrentWidth != getWidth()) { - // Call with the present values in order to re-layout if necessary - ReactHorizontalScrollView parent = (ReactHorizontalScrollView) getParent(); - // Fix the ScrollX position when using RTL language - int offsetX = parent.getScrollX() + getWidth() - mCurrentWidth - parent.getWidth(); - parent.scrollTo(offsetX, parent.getScrollY()); - } + setLeftTopRightBottom(newLeft, top, newRight, bottom); } - mCurrentWidth = getWidth(); } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java index 57a208c36ab96d..e5a9e12e4bc83e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java @@ -20,6 +20,7 @@ import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; +import android.os.Build; import android.view.FocusFinder; import android.view.KeyEvent; import android.view.MotionEvent; @@ -130,6 +131,8 @@ public ReactHorizontalScrollView(Context context, @Nullable FpsListener fpsListe mScroller = getOverScrollerFromParent(); mReactScrollViewScrollState = new ReactScrollViewScrollState( + // TODO: The ScrollView content may be laid out in a different direction than the + // instance if the `direction` style is set on the ScrollView or above it. I18nUtil.getInstance().isRTL(context) ? ViewCompat.LAYOUT_DIRECTION_RTL : ViewCompat.LAYOUT_DIRECTION_LTR); @@ -606,7 +609,9 @@ public void fling(int velocityX) { // Hence, we can use the absolute value from whatever the OS gives // us and use the sign of what mOnScrollDispatchHelper has tracked. final int correctedVelocityX = - (int) (Math.abs(velocityX) * Math.signum(mOnScrollDispatchHelper.getXFlingVelocity())); + Build.VERSION.SDK_INT == Build.VERSION_CODES.P + ? (int) (Math.abs(velocityX) * Math.signum(mOnScrollDispatchHelper.getXFlingVelocity())) + : velocityX; if (mPagingEnabled) { flingAndSnap(correctedVelocityX); @@ -1294,11 +1299,62 @@ public void onLayoutChange( return; } - if (mMaintainVisibleContentPositionHelper != null) { + // Adjust the scroll position to follow new content. In RTL, this means we keep a constant + // offset from the right edge instead of the left edge, so content added to the end of the flow + // does not shift layout. If `maintainVisibleContentPosition` is enabled, we try to adjust + // position so that the viewport keeps the same insets to previously visible views. TODO: MVCP + // does not work in RTL. + if (mReactScrollViewScrollState.getLayoutDirection() == LAYOUT_DIRECTION_RTL) { + adjustPositionForContentChangeRTL(left, right, oldLeft, oldRight); + } else if (mMaintainVisibleContentPositionHelper != null) { mMaintainVisibleContentPositionHelper.updateScrollPosition(); } } + private void adjustPositionForContentChangeRTL(int left, int right, int oldLeft, int oldRight) { + // If we have any pending custon flings (e.g. from aninmated `scrollTo`, or flinging to a snap + // point), finish them, commiting the final `scrollX`. + // TODO: Can we be more graceful (like OverScroller flings)? + if (getFlingAnimator().isRunning()) { + getFlingAnimator().end(); + } + + int distanceToRightEdge = oldRight - getScrollX(); + int newWidth = right - left; + int scrollX = newWidth - distanceToRightEdge; + scrollTo(scrollX, getScrollY()); + + // If we are in the middle of a fling animation from the user removing their finger + // (OverScroller is in `FLING_MODE`), we must cancel and recreate the existing fling animation + // since it was calculated against outdated scroll offsets. + if (mScroller != null && !mScroller.isFinished()) { + // Calculate the veliocity and position of the fling animation at the time of this layout + // event, which may be later than the last ScrollView tick. These values are not commited to + // the underlying ScrollView, which will recalculate positions on its next tick. + int scrollerXBeforeTick = mScroller.getCurrX(); + boolean hasMoreTicks = mScroller.computeScrollOffset(); + + // Stop the existing animation at the current state of the scroller. We will then recreate + // it starting at the adjusted x offset. + mScroller.forceFinished(true); + + if (hasMoreTicks) { + // OverScroller.getCurrVelocity() returns an absolute value of the velocity a current fling + // animation (only FLING_MODE animations). We derive direction along the X axis from the + // start and end of the, animation assuming HorizontalScrollView never fires vertical fling + // animations. + // TODO: This does not fully handle overscroll. + float direction = Math.signum(mScroller.getFinalX() - mScroller.getStartX()); + float flingVelocityX = mScroller.getCurrVelocity() * direction; + + mScroller.fling( + scrollX, getScrollY(), (int) flingVelocityX, 0, 0, newWidth - getWidth(), 0, 0); + } else { + scrollTo(scrollX + (mScroller.getCurrX() - scrollerXBeforeTick), getScrollY()); + } + } + } + @Override public FabricViewStateManager getFabricViewStateManager() { return mFabricViewStateManager; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java index 55c92a7df207f2..c0f793a8d7d93e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java @@ -10,6 +10,8 @@ import static com.facebook.react.uimanager.UIManagerHelper.getReactContext; import static com.facebook.react.views.text.TextAttributeProps.UNSET; +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.graphics.Color; import android.graphics.Paint; @@ -28,8 +30,11 @@ import android.text.method.KeyListener; import android.text.method.QwertyKeyListener; import android.util.TypedValue; +import android.view.ActionMode; import android.view.Gravity; import android.view.KeyEvent; +import android.view.Menu; +import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.accessibility.AccessibilityNodeInfo; @@ -181,6 +186,35 @@ public boolean performAccessibilityAction(View host, int action, Bundle args) { } }; ViewCompat.setAccessibilityDelegate(this, editTextAccessibilityDelegate); + ActionMode.Callback customActionModeCallback = + new ActionMode.Callback() { + /* + * Editor onCreateActionMode adds the cut, copy, paste, share, autofill, + * and paste as plain text items to the context menu. + */ + @Override + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + menu.removeItem(android.R.id.pasteAsPlainText); + return true; + } + + @Override + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + return true; + } + + @Override + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + return false; + } + + @Override + public void onDestroyActionMode(ActionMode mode) {} + }; + setCustomSelectionActionModeCallback(customActionModeCallback); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + setCustomInsertionActionModeCallback(customActionModeCallback); + } } @Override @@ -269,6 +303,37 @@ public InputConnection onCreateInputConnection(EditorInfo outAttrs) { return inputConnection; } + /* + * Called when a context menu option for the text view is selected. + * React Native replaces copy (as rich text) with copy as plain text. + */ + @Override + public boolean onTextContextMenuItem(int id) { + if (id == android.R.id.paste) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + id = android.R.id.pasteAsPlainText; + } else { + ClipboardManager clipboard = + (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); + ClipData previousClipData = clipboard.getPrimaryClip(); + if (previousClipData != null) { + for (int i = 0; i < previousClipData.getItemCount(); i++) { + final CharSequence text = previousClipData.getItemAt(i).coerceToText(getContext()); + final CharSequence paste = (text instanceof Spanned) ? text.toString() : text; + if (paste != null) { + ClipData clipData = ClipData.newPlainText(null, text); + clipboard.setPrimaryClip(clipData); + } + } + boolean actionPerformed = super.onTextContextMenuItem(id); + clipboard.setPrimaryClip(previousClipData); + return actionPerformed; + } + } + } + return super.onTextContextMenuItem(id); + } + @Override public void clearFocus() { setFocusableInTouchMode(false); @@ -632,13 +697,10 @@ public void maybeSetText(ReactTextUpdate reactTextUpdate) { if (reactTextUpdate.getText().length() == 0) { setText(null); } else { - boolean shouldRestoreComposingSpans = length() == spannableStringBuilder.length(); - + // When we update text, we trigger onChangeText code that will + // try to update state if the wrapper is available. Temporarily disable + // to prevent an infinite loop. getText().replace(0, length(), spannableStringBuilder); - - if (shouldRestoreComposingSpans) { - restoreComposingSpansToTextFrom(spannableStringBuilder); - } } mDisableTextDiffing = false; @@ -653,13 +715,10 @@ public void maybeSetText(ReactTextUpdate reactTextUpdate) { } /** - * Remove and/or add {@link Spanned#SPAN_EXCLUSIVE_EXCLUSIVE} spans, since they should only exist - * as long as the text they cover is the same unless they are {@link Spanned#SPAN_COMPOSING}. All - * other spans will remain the same, since they will adapt to the new text, hence why {@link - * SpannableStringBuilder#replace} never removes them. Keep copy of {@link Spanned#SPAN_COMPOSING} - * Spans in {@param spannableStringBuilder}, because they are important for keyboard suggestions. - * Without keeping these Spans, suggestions default to be put after the current selection - * position, possibly resulting in letter duplication. + * Remove and/or add {@link Spanned.SPAN_EXCLUSIVE_EXCLUSIVE} spans, since they should only exist + * as long as the text they cover is the same. All other spans will remain the same, since they + * will adapt to the new text, hence why {@link SpannableStringBuilder#replace} never removes + * them. */ private void manageSpans(SpannableStringBuilder spannableStringBuilder) { Object[] spans = getText().getSpans(0, length(), Object.class); @@ -668,7 +727,6 @@ private void manageSpans(SpannableStringBuilder spannableStringBuilder) { int spanFlags = getText().getSpanFlags(span); boolean isExclusiveExclusive = (spanFlags & Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) == Spanned.SPAN_EXCLUSIVE_EXCLUSIVE; - boolean isComposing = (spanFlags & Spanned.SPAN_COMPOSING) == Spanned.SPAN_COMPOSING; // Remove all styling spans we might have previously set if (span instanceof ReactSpan) { @@ -683,12 +741,6 @@ private void manageSpans(SpannableStringBuilder spannableStringBuilder) { final int spanStart = getText().getSpanStart(span); final int spanEnd = getText().getSpanEnd(span); - // We keep a copy of Composing spans - if (isComposing) { - spannableStringBuilder.setSpan(span, spanStart, spanEnd, spanFlags); - continue; - } - // Make sure the span is removed from existing text, otherwise the spans we set will be // ignored or it will cover text that has changed. getText().removeSpan(span); @@ -816,34 +868,6 @@ private void addSpansFromStyleAttributes(SpannableStringBuilder workingText) { } } - /** - * Attaches the {@link Spanned#SPAN_COMPOSING} from {@param spannableStringBuilder} to {@link - * ReactEditText#getText} - * - *

See {@link ReactEditText#manageSpans} for more details. Also - * https://github.com/facebook/react-native/issues/11068 - */ - private void restoreComposingSpansToTextFrom(SpannableStringBuilder spannableStringBuilder) { - Editable text = getText(); - if (text == null) { - return; - } - Object[] spans = spannableStringBuilder.getSpans(0, length(), Object.class); - for (Object span : spans) { - int spanFlags = spannableStringBuilder.getSpanFlags(span); - boolean isComposing = (spanFlags & Spanned.SPAN_COMPOSING) == Spanned.SPAN_COMPOSING; - - if (!isComposing) { - continue; - } - - final int spanStart = spannableStringBuilder.getSpanStart(span); - final int spanEnd = spannableStringBuilder.getSpanEnd(span); - - text.setSpan(span, spanStart, spanEnd, spanFlags); - } - } - private static boolean sameTextForSpan( final Editable oldText, final SpannableStringBuilder newText, diff --git a/packages/react-native/ReactAndroid/src/main/res/devsupport/values-lv/strings.xml b/packages/react-native/ReactAndroid/src/main/res/devsupport/values-lv/strings.xml index 336698f59082c1..37c13f27644dd5 100644 --- a/packages/react-native/ReactAndroid/src/main/res/devsupport/values-lv/strings.xml +++ b/packages/react-native/ReactAndroid/src/main/res/devsupport/values-lv/strings.xml @@ -3,5 +3,6 @@ + Reakciju vietējā izstrādātāju izvēlne (%1$s) Darbojas %1$s diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ka/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ka/strings.xml index 9238354850a2b3..76adf0b7ecb8ec 100644 --- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ka/strings.xml +++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ka/strings.xml @@ -9,8 +9,10 @@ სათაური გაფრთხილება მენიუ + მენიუს ზოლი მენიუს ერთეული პროგრესის ზოლი + რადიო ჯგუფი გადაადგილების პანელი დატრიალების ღილაკი ჩანართი diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ky/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ky/strings.xml index 1ec1f36b12b09e..89e50d25678586 100644 --- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ky/strings.xml +++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-ky/strings.xml @@ -6,4 +6,5 @@ Шилтеме Сүрөт Баскыч, сүрөт + күйүк diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lv/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lv/strings.xml index aaa31f7dcedaa0..acfe3289fda2d6 100644 --- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lv/strings.xml +++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-lv/strings.xml @@ -19,6 +19,7 @@ Taimeris Rīkjosla Kopsavilkums + aizņemts izvērsts sakļauts nav atlasīts diff --git a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mn/strings.xml b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mn/strings.xml index 300491952c877f..689578daa94976 100644 --- a/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mn/strings.xml +++ b/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values-mn/strings.xml @@ -6,4 +6,6 @@ Холбоос Зураг Товч, зураг + идэвхтэй + идэвхгүй diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index fe368542e99605..bf0ad1d2f390b7 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -88,11 +88,6 @@ Pod::Spec.new do |s| ss.header_dir = "butter" end - s.subspec "config" do |ss| - ss.source_files = "react/config/*.{m,mm,cpp,h}" - ss.header_dir = "react/config" - end - s.subspec "core" do |ss| header_search_path = [ "\"$(PODS_ROOT)/boost\"", @@ -242,14 +237,6 @@ Pod::Spec.new do |s| ss.header_dir = "react/renderer/imagemanager" end - s.subspec "mapbuffer" do |ss| - ss.dependency folly_dep_name, folly_version - ss.compiler_flags = folly_compiler_flags - ss.source_files = "react/renderer/mapbuffer/**/*.{m,mm,cpp,h}" - ss.exclude_files = "react/renderer/mapbuffer/tests" - ss.header_dir = "react/renderer/mapbuffer" - end - s.subspec "mounting" do |ss| ss.dependency folly_dep_name, folly_version ss.compiler_flags = folly_compiler_flags diff --git a/packages/react-native/ReactCommon/React-Mapbuffer.podspec b/packages/react-native/ReactCommon/React-Mapbuffer.podspec new file mode 100644 index 00000000000000..2fdcd9ff7c3f7c --- /dev/null +++ b/packages/react-native/ReactCommon/React-Mapbuffer.podspec @@ -0,0 +1,43 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1") +else + source[:tag] = "v#{version}" +end + +Pod::Spec.new do |s| + s.name = "React-Mapbuffer" + s.version = version + s.summary = "-" + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Meta Platforms, Inc. and its affiliates" + s.platforms = { :ios => min_ios_version_supported } + s.source = source + s.source_files = "react/renderer/mapbuffer/*.{cpp,h}" + s.exclude_files = "react/renderer/mapbuffer/tests" + s.public_header_files = 'react/renderer/mapbuffer/*.h' + s.header_dir = "react/renderer/mapbuffer" + s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"", "USE_HEADERMAP" => "YES", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" } + + if ENV['USE_FRAMEWORKS'] + s.header_mappings_dir = './' + s.module_name = 'React_Mapbuffer' + end + + s.dependency "glog" + s.dependency "React-debug" + +end diff --git a/packages/react-native/ReactCommon/React-nativeconfig.podspec b/packages/react-native/ReactCommon/React-nativeconfig.podspec new file mode 100644 index 00000000000000..d1dd415727bc28 --- /dev/null +++ b/packages/react-native/ReactCommon/React-nativeconfig.podspec @@ -0,0 +1,35 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1") +else + source[:tag] = "v#{version}" +end + +Pod::Spec.new do |s| + s.name = "React-nativeconfig" + s.version = version + s.summary = "-" + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Meta Platforms, Inc. and its affiliates" + s.platforms = { :ios => min_ios_version_supported } + s.source = source + s.source_files = "react/config/*.{m,mm,cpp,h}" + s.header_dir = "react/config" + + if ENV['USE_FRAMEWORKS'] + s.header_mappings_dir = './' + s.module_name = 'React_nativeconfig' + end +end diff --git a/packages/react-native/ReactCommon/cxxreact/ReactMarker.h b/packages/react-native/ReactCommon/cxxreact/ReactMarker.h index 178cdbc13a19e8..98e51b978916f1 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactMarker.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactMarker.h @@ -65,7 +65,7 @@ struct ReactMarkerEvent { double time; }; -class StartupLogger { +class RN_EXPORT StartupLogger { public: static StartupLogger &getInstance(); diff --git a/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec b/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec new file mode 100644 index 00000000000000..06e6b72d6fee4c --- /dev/null +++ b/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec @@ -0,0 +1,41 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "../../..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1") +else + source[:tag] = "v#{version}" +end + +Pod::Spec.new do |s| + s.name = "React-jsitracing" + s.version = version + s.summary = "Bridgeless for React Native." + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Meta Platforms, Inc. and its affiliates" + s.platforms = { :ios => min_ios_version_supported } + s.source = source + s.source_files = "JSITracing.{cpp,h}" + s.header_dir = "." + s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"${PODS_TARGET_SRCROOT}/../..\"", + "USE_HEADERMAP" => "YES", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", + "GCC_WARN_PEDANTIC" => "YES" } + + if ENV['USE_FRAMEWORKS'] + s.header_mappings_dir = './' + s.module_name = 'React_jsitracing' + end + + s.dependency "React-jsi" +end diff --git a/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec b/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec new file mode 100644 index 00000000000000..3ede4292bd2703 --- /dev/null +++ b/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec @@ -0,0 +1,49 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1") +else + source[:tag] = "v#{version}" +end + +folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-gnu-zero-variadic-macro-arguments' +folly_version = '2021.07.22.00' +folly_dep_name = 'RCT-Folly/Fabric' +boost_compiler_flags = '-Wno-documentation' +react_native_path = ".." + +Pod::Spec.new do |s| + s.name = "React-jserrorhandler" + s.version = version + s.summary = "-" + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Meta Platforms, Inc. and its affiliates" + s.platforms = { :ios => min_ios_version_supported } + s.source = source + s.header_dir = "jserrorhandler" + s.source_files = "JsErrorHandler.{cpp,h}" + s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Mapbuffer/React_Mapbuffer.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"", "USE_HEADERMAP" => "YES", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" } + s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags + + if ENV['USE_FRAMEWORKS'] + s.header_mappings_dir = './' + s.module_name = 'React_jserrorhandler' + end + + s.dependency folly_dep_name, folly_version + s.dependency "React-jsi", version + s.dependency "React-Mapbuffer" + +end diff --git a/packages/react-native/ReactCommon/react/bridgeless/BufferedRuntimeExecutor.h b/packages/react-native/ReactCommon/react/bridgeless/BufferedRuntimeExecutor.h index 0b0be428785a01..e2102a7ed6af22 100644 --- a/packages/react-native/ReactCommon/react/bridgeless/BufferedRuntimeExecutor.h +++ b/packages/react-native/ReactCommon/react/bridgeless/BufferedRuntimeExecutor.h @@ -7,9 +7,9 @@ #include #include -#include #include #include +#include "TimerManager.h" namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/bridgeless/React-BridgelessCore.podspec b/packages/react-native/ReactCommon/react/bridgeless/React-BridgelessCore.podspec new file mode 100644 index 00000000000000..c96710062695d3 --- /dev/null +++ b/packages/react-native/ReactCommon/react/bridgeless/React-BridgelessCore.podspec @@ -0,0 +1,62 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "../../..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1") +else + source[:tag] = "v#{version}" +end + +folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-gnu-zero-variadic-macro-arguments' +folly_version = '2021.07.22.00' +folly_dep_name = 'RCT-Folly/Fabric' +boost_compiler_flags = '-Wno-documentation' + +Pod::Spec.new do |s| + s.name = "React-BridgelessCore" + s.version = version + s.summary = "Bridgeless for React Native." + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Meta Platforms, Inc. and its affiliates" + s.platforms = { :ios => min_ios_version_supported } + s.source = source + s.source_files = "*.{cpp,h}", "nativeviewconfig/*.{cpp,h}" + s.exclude_files = "iostests/*", "tests/**/*.{cpp,h}" + s.header_dir = "react/bridgeless" + s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/React-Core\" \"${PODS_TARGET_SRCROOT}/../..\"", + "USE_HEADERMAP" => "YES", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", + "GCC_WARN_PEDANTIC" => "YES" } + s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags + + if ENV['USE_FRAMEWORKS'] + s.header_mappings_dir = './' + s.module_name = 'React_BridgelessCore' + end + + s.dependency folly_dep_name, folly_version + s.dependency "React-jsiexecutor" + s.dependency "React-cxxreact" + s.dependency "React-runtimeexecutor" + s.dependency "glog" + s.dependency "React-jsi" + s.dependency "React-jserrorhandler" + s.dependency "React-runtimescheduler" + + if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1" + s.dependency "hermes-engine" + else + s.dependency "React-jsc" + end + +end diff --git a/packages/react-native/ReactCommon/react/bridgeless/React-BridgelessHermes.podspec b/packages/react-native/ReactCommon/react/bridgeless/React-BridgelessHermes.podspec new file mode 100644 index 00000000000000..134f5d1a345d07 --- /dev/null +++ b/packages/react-native/ReactCommon/react/bridgeless/React-BridgelessHermes.podspec @@ -0,0 +1,57 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "../../..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1") +else + source[:tag] = "v#{version}" +end + +folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-gnu-zero-variadic-macro-arguments' +folly_version = '2021.07.22.00' +folly_dep_name = 'RCT-Folly/Fabric' +boost_compiler_flags = '-Wno-documentation' + +Pod::Spec.new do |s| + s.name = "React-BridgelessHermes" + s.version = version + s.summary = "Bridgeless for React Native." + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Meta Platforms, Inc. and its affiliates" + s.platforms = { :ios => min_ios_version_supported } + s.source = source + s.source_files = "hermes/*.{cpp,h}" + s.header_dir = "react/bridgeless/hermes" + s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"${PODS_TARGET_SRCROOT}/../..\" \"${PODS_TARGET_SRCROOT}/../../hermes/executor\"", + "USE_HEADERMAP" => "YES", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", + "GCC_WARN_PEDANTIC" => "YES" } + s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags + + if ENV['USE_FRAMEWORKS'] + s.header_mappings_dir = './' + s.module_name = 'React_BridgelessHermes' + end + + s.dependency folly_dep_name, folly_version + s.dependency "React-jsi" + s.dependency "React-nativeconfig" + s.dependency "React-jsitracing" + + if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1" + s.dependency "hermes-engine" + else + s.dependency "React-jsc" + s.exclude_files = "hermes/*.{cpp,h}" + end +end diff --git a/packages/react-native/ReactCommon/react/bridgeless/ReactInstance.cpp b/packages/react-native/ReactCommon/react/bridgeless/ReactInstance.cpp index 4f0b96e4106741..df9caa868e6235 100644 --- a/packages/react-native/ReactCommon/react/bridgeless/ReactInstance.cpp +++ b/packages/react-native/ReactCommon/react/bridgeless/ReactInstance.cpp @@ -11,8 +11,8 @@ #include #include #include +#include #include -#include #include #include diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/React-BridgelessApple.podspec b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/React-BridgelessApple.podspec new file mode 100644 index 00000000000000..acdac0d0a61644 --- /dev/null +++ b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/React-BridgelessApple.podspec @@ -0,0 +1,75 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "../../../../..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1") +else + source[:tag] = "v#{version}" +end + +folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-gnu-zero-variadic-macro-arguments' +folly_version = '2021.07.22.00' +folly_dep_name = 'RCT-Folly/Fabric' +boost_compiler_flags = '-Wno-documentation' + +header_search_paths = [ + "$(PODS_ROOT)/boost", + "$(PODS_TARGET_SRCROOT)/../../../..", + "$(PODS_TARGET_SRCROOT)/../../../../..", +] + +Pod::Spec.new do |s| + s.name = "React-BridgelessApple" + s.version = version + s.summary = "Bridgeless for React Native." + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Meta Platforms, Inc. and its affiliates" + s.platforms = { :ios => min_ios_version_supported } + s.source = source + s.source_files = "ReactCommon/*.{mm,h}" + s.header_dir = "ReactCommon" + s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => header_search_paths, + "USE_HEADERMAP" => "YES", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", + "GCC_WARN_PEDANTIC" => "YES" } + s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags + + if ENV['USE_FRAMEWORKS'] + s.header_mappings_dir = './' + s.module_name = 'React_BridgelessApple' + end + + s.dependency folly_dep_name, folly_version + s.dependency "React-jsiexecutor" + s.dependency "React-cxxreact" + s.dependency "React-callinvoker" + s.dependency "React-runtimeexecutor" + s.dependency "React-utils" + s.dependency "React-jsi" + s.dependency "React-Core/Default" + s.dependency "React-CoreModules" + s.dependency "React-NativeModulesApple" + s.dependency "React-RCTFabric" + s.dependency "React-BridgelessCore" + s.dependency "React-Mapbuffer" + s.dependency "React-jserrorhandler" + + if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1" + s.dependency "hermes-engine" + s.dependency "React-BridgelessHermes" + s.exclude_files = "ReactCommon/RCTJscInstance.{mm,h}" + else + s.dependency "React-jsc" + s.exclude_files = "ReactCommon/RCTHermesInstance.{mm,h}" + end +end diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/ObjCTimerRegistry.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/ObjCTimerRegistry.h similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/ObjCTimerRegistry.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/ObjCTimerRegistry.h diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/ObjCTimerRegistry.mm b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/ObjCTimerRegistry.mm similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/ObjCTimerRegistry.mm rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/ObjCTimerRegistry.mm diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTContextContainerHandling.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTContextContainerHandling.h similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTContextContainerHandling.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTContextContainerHandling.h diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Hermes/RCTHermesInstance.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHermesInstance.h similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Hermes/RCTHermesInstance.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHermesInstance.h diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Hermes/RCTHermesInstance.mm b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHermesInstance.mm similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Hermes/RCTHermesInstance.mm rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHermesInstance.mm diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTHost+Internal.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHost+Internal.h similarity index 91% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTHost+Internal.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHost+Internal.h index 64883331a818b1..4432aa0cce498d 100644 --- a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTHost+Internal.h +++ b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHost+Internal.h @@ -7,7 +7,7 @@ #import "RCTHost.h" -#import +#import "RCTContextContainerHandling.h" typedef NSURL * (^RCTHostBundleURLProvider)(void); diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTHost.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHost.h similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTHost.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHost.h diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTHost.mm b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHost.mm similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTHost.mm rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTHost.mm diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTInstance.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTInstance.h similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTInstance.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTInstance.h diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTInstance.mm b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTInstance.mm similarity index 99% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTInstance.mm rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTInstance.mm index e147d20936254d..0842d70c7eff6c 100644 --- a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTInstance.mm +++ b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTInstance.mm @@ -28,7 +28,6 @@ #import #import #import -#import #import #import #import @@ -39,6 +38,7 @@ #import "ObjCTimerRegistry.h" #import "RCTJSThreadManager.h" +#import "RCTLegacyUIManagerConstantsProvider.h" #import "RCTPerformanceLoggerUtils.h" #if RCT_DEV_MENU && __has_include() diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTJSThreadManager.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJSThreadManager.h similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTJSThreadManager.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJSThreadManager.h diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTJSThreadManager.mm b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJSThreadManager.mm similarity index 98% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTJSThreadManager.mm rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJSThreadManager.mm index 9f16b9bd2d3ac3..66d53609779b47 100644 --- a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTJSThreadManager.mm +++ b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJSThreadManager.mm @@ -7,7 +7,6 @@ #import "RCTJSThreadManager.h" -// #import #import #import diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJscInstance.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJscInstance.h new file mode 100644 index 00000000000000..2a0246320e60dd --- /dev/null +++ b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJscInstance.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import +#import + +namespace facebook { +namespace react { + +class RCTJscInstance : public JSEngineInstance { + public: + RCTJscInstance(); + + std::unique_ptr createJSRuntime() noexcept override; + + ~RCTJscInstance(){}; +}; +} // namespace react +} // namespace facebook diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJscInstance.mm b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJscInstance.mm new file mode 100644 index 00000000000000..b270ba8d27e2cd --- /dev/null +++ b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTJscInstance.mm @@ -0,0 +1,22 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import "RCTJscInstance.h" +#include + +namespace facebook { +namespace react { + +RCTJscInstance::RCTJscInstance() {} + +std::unique_ptr RCTJscInstance::createJSRuntime() noexcept +{ + return jsc::makeJSCRuntime(); +} + +} // namespace react +} // namespace facebook diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/NativeViewConfig/RCTLegacyUIManagerConstantsProvider.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTLegacyUIManagerConstantsProvider.h similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/NativeViewConfig/RCTLegacyUIManagerConstantsProvider.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTLegacyUIManagerConstantsProvider.h diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/NativeViewConfig/RCTLegacyUIManagerConstantsProvider.mm b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTLegacyUIManagerConstantsProvider.mm similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/NativeViewConfig/RCTLegacyUIManagerConstantsProvider.mm rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTLegacyUIManagerConstantsProvider.mm diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTPerformanceLoggerUtils.h b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTPerformanceLoggerUtils.h similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTPerformanceLoggerUtils.h rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTPerformanceLoggerUtils.h diff --git a/packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTPerformanceLoggerUtils.mm b/packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTPerformanceLoggerUtils.mm similarity index 100% rename from packages/react-native/ReactCommon/react/bridgeless/platform/ios/Core/RCTPerformanceLoggerUtils.mm rename to packages/react-native/ReactCommon/react/bridgeless/platform/ios/ReactCommon/RCTPerformanceLoggerUtils.mm diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h index 2130bb136ac953..1ef120d83dced6 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h @@ -65,11 +65,6 @@ - (void)installJSBindings:(facebook::jsi::Runtime &)runtime; -/** - * @deprecated: use installJSBindings instead - */ -- (void)installJSBindingWithRuntimeExecutor:(facebook::react::RuntimeExecutor &)runtimeExecutor; - - (void)invalidate; @end diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm index 283eb4a2be8788..c1659d80fa81f2 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm @@ -278,20 +278,6 @@ - (instancetype)initWithBridgeProxy:(RCTBridgeProxy *)bridgeProxy jsInvoker:jsInvoker]; } -- (void)notifyAboutTurboModuleSetup:(const char *)name -{ - NSString *moduleName = [[NSString alloc] initWithUTF8String:name]; - if (moduleName) { - int64_t setupTime = [self->_bridge.performanceLogger durationForTag:RCTPLTurboModuleSetup]; - [[NSNotificationCenter defaultCenter] postNotificationName:RCTDidSetupModuleNotification - object:nil - userInfo:@{ - RCTDidSetupModuleNotificationModuleNameKey : moduleName, - RCTDidSetupModuleNotificationSetupTimeKey : @(setupTime) - }]; - } -} - /** * Given a name for a TurboModule, return a C++ object which is the instance * of that TurboModule C++ class. This class wraps the TurboModule's ObjC instance. @@ -808,9 +794,25 @@ - (Class)_getModuleClassFromName:(const char *)moduleName moduleClass = [_delegate getModuleClassFromName:moduleName]; } - if (!moduleClass) { - moduleClass = getFallbackClassFromName(moduleName); + if (moduleClass != nil) { + return moduleClass; + } + + moduleClass = getFallbackClassFromName(moduleName); + if (moduleClass != nil) { + return moduleClass; + } + + // fallback on modules registered throught RCT_EXPORT_MODULE with custom names + NSString *objcModuleName = [NSString stringWithUTF8String:moduleName]; + NSArray *modules = RCTGetModuleClasses(); + for (Class current in modules) { + NSString *currentModuleName = [current moduleName]; + if ([objcModuleName isEqualToString:currentModuleName]) { + return current; + } } + return moduleClass; } @@ -919,7 +921,6 @@ - (void)installJSBindings:(facebook::jsi::Runtime &)runtime if (moduleWasNotInitialized && [self moduleIsInitialized:moduleName]) { [self->_bridge.performanceLogger markStopForTag:RCTPLTurboModuleSetup]; - [self notifyAboutTurboModuleSetup:moduleName]; } if (turboModule) { @@ -935,7 +936,6 @@ - (void)installJSBindings:(facebook::jsi::Runtime &)runtime auto moduleName = name.c_str(); TurboModulePerfLogger::moduleJSRequireBeginningStart(moduleName); - auto moduleWasNotInitialized = ![self moduleIsInitialized:moduleName]; /** * By default, all TurboModules are long-lived. @@ -944,10 +944,6 @@ - (void)installJSBindings:(facebook::jsi::Runtime &)runtime */ auto turboModule = [self provideLegacyModule:moduleName]; - if (moduleWasNotInitialized && [self moduleIsInitialized:moduleName]) { - [self notifyAboutTurboModuleSetup:moduleName]; - } - if (turboModule) { TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName); } else { @@ -962,17 +958,6 @@ - (void)installJSBindings:(facebook::jsi::Runtime &)runtime } } -/** - * @deprecated: use installJSBindings instead - */ -- (void)installJSBindingWithRuntimeExecutor:(facebook::react::RuntimeExecutor &)runtimeExecutor -{ - // jsi::Runtime doesn't exist when attached to Chrome debugger. - if (runtimeExecutor) { - runtimeExecutor([self](facebook::jsi::Runtime &runtime) { [self installJSBindings:runtime]; }); - } -} - #pragma mark RCTTurboModuleRegistry - (id)moduleForName:(const char *)moduleName diff --git a/packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp b/packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp index 71df612c864c89..1ae5ae8f37087a 100644 --- a/packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +++ b/packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -1152,8 +1153,13 @@ ShadowView LayoutAnimationKeyFrameManager::createInterpolatedShadowView( // Animate opacity or scale/transform PropsParserContext propsParserContext{ finalView.surfaceId, *contextContainer_}; - mutatedShadowView.props = componentDescriptor.interpolateProps( - propsParserContext, progress, startingView.props, finalView.props); + mutatedShadowView.props = interpolateProps( + componentDescriptor, + propsParserContext, + progress, + startingView.props, + finalView.props); + react_native_assert(mutatedShadowView.props != nullptr); if (mutatedShadowView.props == nullptr) { return finalView; @@ -1656,4 +1662,32 @@ void LayoutAnimationKeyFrameManager::deleteAnimationsForStoppedSurfaces() } } +Props::Shared LayoutAnimationKeyFrameManager::interpolateProps( + const ComponentDescriptor &componentDescriptor, + const PropsParserContext &context, + Float animationProgress, + const Props::Shared &props, + const Props::Shared &newProps) const { +#ifdef ANDROID + // On Android only, the merged props should have the same RawProps as the + // final props struct + Props::Shared interpolatedPropsShared = + (newProps != nullptr + ? componentDescriptor.cloneProps( + context, newProps, newProps->rawProps) + : componentDescriptor.cloneProps(context, newProps, {})); +#else + Props::Shared interpolatedPropsShared = + componentDescriptor.cloneProps(context, newProps, {}); +#endif + + if (componentDescriptor.getTraits().check( + ShadowNodeTraits::Trait::ViewKind)) { + interpolateViewProps( + animationProgress, props, newProps, interpolatedPropsShared); + } + + return interpolatedPropsShared; +}; + } // namespace facebook::react diff --git a/packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h b/packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h index 6d0d541c1cf861..7e5937ce21acb9 100644 --- a/packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +++ b/packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h @@ -173,6 +173,16 @@ class LayoutAnimationKeyFrameManager : public UIManagerAnimationDelegate, void simulateImagePropsMemoryAccess( ShadowViewMutationList const &mutations) const; + + /** + * Interpolates the props values. + */ + Props::Shared interpolateProps( + const ComponentDescriptor &componentDescriptor, + const PropsParserContext &context, + Float animationProgress, + const Props::Shared &props, + const Props::Shared &newProps) const; }; } // namespace facebook::react diff --git a/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h index 8b3fabe9e2e27d..bf0cdd731db182 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h @@ -108,16 +108,6 @@ class ComponentDescriptor { const Props::Shared &props, const RawProps &rawProps) const = 0; - /* - * Creates a new `Props` of a particular type with all values interpolated - * between `props` and `newProps`. - */ - virtual Props::Shared interpolateProps( - const PropsParserContext &context, - Float animationProgress, - const Props::Shared &props, - const Props::Shared &newProps) const = 0; - /* * Create an initial State object that represents (and contains) an initial * State's data which can be constructed based on initial Props. diff --git a/packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h index 01ea9b1603ba87..b5313f4aa2d586 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h @@ -11,7 +11,6 @@ #include #include -#include #include #include #include @@ -125,30 +124,6 @@ class ConcreteComponentDescriptor : public ComponentDescriptor { return shadowNodeProps; }; - Props::Shared interpolateProps( - const PropsParserContext &context, - Float animationProgress, - const Props::Shared &props, - const Props::Shared &newProps) const override { -#ifdef ANDROID - // On Android only, the merged props should have the same RawProps as the - // final props struct - Props::Shared interpolatedPropsShared = - (newProps != nullptr ? cloneProps(context, newProps, newProps->rawProps) - : cloneProps(context, newProps, {})); -#else - Props::Shared interpolatedPropsShared = cloneProps(context, newProps, {}); -#endif - - if (ConcreteShadowNode::BaseTraits().check( - ShadowNodeTraits::Trait::ViewKind)) { - interpolateViewProps( - animationProgress, props, newProps, interpolatedPropsShared); - } - - return interpolatedPropsShared; - }; - virtual State::Shared createInitialState( Props::Shared const &props, ShadowNodeFamily::Shared const &family) const override { diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h index 5e45d6e1a2a42b..4eda42bff75c00 100644 --- a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h @@ -8,8 +8,8 @@ #pragma once #include -#include #include +#include "MapBuffer.h" namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec index 77aafd0d0e07b8..0590fab2e76a6a 100644 --- a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +++ b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec @@ -21,6 +21,7 @@ folly_version = '2021.07.22.00' header_search_paths = [ "\"$(PODS_ROOT)/RCT-Folly\"", + "\"$(PODS_ROOT)/boost\"", ] if ENV['USE_FRAMEWORKS'] diff --git a/packages/react-native/build.gradle.kts b/packages/react-native/build.gradle.kts index 47a482604cda2b..edcb277efc7132 100644 --- a/packages/react-native/build.gradle.kts +++ b/packages/react-native/build.gradle.kts @@ -11,8 +11,8 @@ // their settings.gradle.kts file. // More on this here: https://reactnative.dev/contributing/how-to-build-from-source plugins { - id("com.android.library") version "8.0.2" apply false - id("com.android.application") version "8.0.2" apply false + id("com.android.library") version "8.1.0" apply false + id("com.android.application") version "8.1.0" apply false id("de.undercouch.download") version "5.0.1" apply false kotlin("android") version "1.8.0" apply false } diff --git a/packages/react-native/package.json b/packages/react-native/package.json index c07d30b2d95a88..5af074d98e22db 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -92,9 +92,9 @@ }, "dependencies": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "12.0.0-alpha.6", - "@react-native-community/cli-platform-android": "12.0.0-alpha.6", - "@react-native-community/cli-platform-ios": "12.0.0-alpha.6", + "@react-native-community/cli": "12.0.0-alpha.7", + "@react-native-community/cli-platform-android": "12.0.0-alpha.7", + "@react-native-community/cli-platform-ios": "12.0.0-alpha.7", "@react-native/assets-registry": "^0.73.0", "@react-native/codegen": "^0.73.0", "@react-native/gradle-plugin": "^0.73.0", diff --git a/packages/react-native/scripts/cocoapods/bridgeless.rb b/packages/react-native/scripts/cocoapods/bridgeless.rb new file mode 100644 index 00000000000000..efbc030da6342c --- /dev/null +++ b/packages/react-native/scripts/cocoapods/bridgeless.rb @@ -0,0 +1,18 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + + +# Set up Bridgeless dependencies +# +# @parameter react_native_path: relative path to react-native +def setup_bridgeless!(react_native_path: "../node_modules/react-native", use_hermes: true) + pod "React-jsitracing", :path => "#{react_native_path}/ReactCommon/hermes/executor/" + pod "React-runtimescheduler", :path => "#{react_native_path}/ReactCommon/react/renderer/runtimescheduler" + pod 'React-BridgelessCore', :path => "#{react_native_path}/ReactCommon/react/bridgeless" + pod 'React-BridgelessApple', :path => "#{react_native_path}/ReactCommon/react/bridgeless/platform/ios" + if use_hermes + pod 'React-BridgelessHermes', :path => "#{react_native_path}/ReactCommon/react/bridgeless" + end +end diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index 177b3767d647ca..1bcb13195f2559 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -15,6 +15,7 @@ require_relative './cocoapods/utils.rb' require_relative './cocoapods/new_architecture.rb' require_relative './cocoapods/local_podspec_patch.rb' +require_relative './cocoapods/bridgeless.rb' $CODEGEN_OUTPUT_DIR = 'build/generated/ios' $CODEGEN_COMPONENT_DIR = 'react/renderer/components' @@ -119,6 +120,9 @@ def use_react_native! ( pod 'React-cxxreact', :path => "#{prefix}/ReactCommon/cxxreact" pod 'React-debug', :path => "#{prefix}/ReactCommon/react/debug" pod 'React-utils', :path => "#{prefix}/ReactCommon/react/utils" + pod 'React-Mapbuffer', :path => "#{prefix}/ReactCommon" + pod 'React-jserrorhandler', :path => "#{prefix}/ReactCommon/jserrorhandler" + pod "React-nativeconfig", :path => "#{prefix}/ReactCommon" if hermes_enabled setup_hermes!(:react_native_path => prefix, :fabric_enabled => fabric_enabled) @@ -139,7 +143,7 @@ def use_react_native! ( pod 'Yoga', :path => "#{prefix}/ReactCommon/yoga", :modular_headers => true pod 'DoubleConversion', :podspec => "#{prefix}/third-party-podspecs/DoubleConversion.podspec" - pod 'glog', :podspec => "#{prefix}/third-party-podspecs/glog.podspec", :modular_headers => true + pod 'glog', :podspec => "#{prefix}/third-party-podspecs/glog.podspec" pod 'boost', :podspec => "#{prefix}/third-party-podspecs/boost.podspec" pod 'RCT-Folly', :podspec => "#{prefix}/third-party-podspecs/RCT-Folly.podspec", :modular_headers => true @@ -166,6 +170,10 @@ def use_react_native! ( build_codegen!(prefix, relative_installation_root) end + if new_arch_enabled + setup_bridgeless!(:react_native_path => prefix, :use_hermes => hermes_enabled) + end + # Flipper now build in Release mode but it is not linked to the Release binary (as specified by the Configuration option) if flipper_configuration.flipper_enabled install_flipper_dependencies(prefix) diff --git a/packages/react-native/template/__tests__/App.test.tsx b/packages/react-native/template/__tests__/App.test.tsx index 3413ac1c403683..9eac6fbc87d2c3 100644 --- a/packages/react-native/template/__tests__/App.test.tsx +++ b/packages/react-native/template/__tests__/App.test.tsx @@ -6,7 +6,7 @@ import 'react-native'; import React from 'react'; import App from '../App'; -// Note: import explicitly to use the types shiped with jest. +// Note: import explicitly to use the types shipped with jest. import {it} from '@jest/globals'; // Note: test renderer must be required after react-native. diff --git a/packages/react-native/template/android/app/build.gradle b/packages/react-native/template/android/app/build.gradle index 00e28c6f06595a..94222a1e807ac6 100644 --- a/packages/react-native/template/android/app/build.gradle +++ b/packages/react-native/template/android/app/build.gradle @@ -72,7 +72,7 @@ def jscFlavor = 'org.webkit:android-jsc:+' android { ndkVersion rootProject.ext.ndkVersion - compileSdkVersion rootProject.ext.compileSdkVersion + compileSdk rootProject.ext.compileSdkVersion namespace "com.helloworld" defaultConfig { diff --git a/packages/react-native/template/android/build.gradle b/packages/react-native/template/android/build.gradle index 4b2e41b3b30e1c..a39d79e3cf200b 100644 --- a/packages/react-native/template/android/build.gradle +++ b/packages/react-native/template/android/build.gradle @@ -2,13 +2,11 @@ buildscript { ext { - buildToolsVersion = "33.0.0" + buildToolsVersion = "33.0.1" minSdkVersion = 21 compileSdkVersion = 33 targetSdkVersion = 33 - - // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. - ndkVersion = "23.1.7779620" + ndkVersion = "25.1.8937393" kotlinVersion = "1.8.0" } repositories { diff --git a/packages/react-native/template/babel.config.js b/packages/react-native/template/babel.config.js index f842b77fcfb8b7..f7b3da3b33d156 100644 --- a/packages/react-native/template/babel.config.js +++ b/packages/react-native/template/babel.config.js @@ -1,3 +1,3 @@ module.exports = { - presets: ['module:metro-react-native-babel-preset'], + presets: ['module:@react-native/babel-preset'], }; diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 38d89d30ccfa6a..4cb00f71f9bdb1 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -17,6 +17,7 @@ "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", + "@react-native/babel-preset": "^0.73.15", "@react-native/eslint-config": "^0.73.0", "@react-native/metro-config": "^0.73.0", "@react-native/typescript-config": "^0.73.0", @@ -25,7 +26,6 @@ "babel-jest": "^29.2.1", "eslint": "^8.19.0", "jest": "^29.2.1", - "metro-react-native-babel-preset": "0.76.7", "prettier": "2.8.8", "react-test-renderer": "18.2.0", "typescript": "5.0.4" diff --git a/packages/react-native/types/__typetests__/index.tsx b/packages/react-native/types/__typetests__/index.tsx index 26419aa6c34caf..9770ef1cf81204 100644 --- a/packages/react-native/types/__typetests__/index.tsx +++ b/packages/react-native/types/__typetests__/index.tsx @@ -386,6 +386,7 @@ const testNativeSyntheticEvent = ( e.isTrusted; e.nativeEvent; e.target; + e.target.measure(() => {}); e.timeStamp; e.type; e.nativeEvent; diff --git a/packages/react-native/types/modules/globals.d.ts b/packages/react-native/types/modules/globals.d.ts index 02bc10af8d2139..af112c7698aec5 100644 --- a/packages/react-native/types/modules/globals.d.ts +++ b/packages/react-native/types/modules/globals.d.ts @@ -187,6 +187,7 @@ declare interface Request extends Object, Body { readonly mode: RequestMode_; readonly referrer: string; readonly url: string; + readonly signal: AbortSignal | undefined; clone(): Request; } diff --git a/packages/rn-tester-e2e/README.md b/packages/rn-tester-e2e/README.md new file mode 100644 index 00000000000000..d8c300f96a8190 --- /dev/null +++ b/packages/rn-tester-e2e/README.md @@ -0,0 +1,124 @@ +# RNTester E2E folder + +In this folder we have a the setup for running E2E testing in RNTester via the usage of [Appium](https://appium.io/) and [WebDriverIO](https://webdriver.io/) and [Jest](https://jestjs.io/). + +- [Setting up locally](#setting-up-locally) + - [(one-off) Setting up Appium](#one-off-setting-up-appium) + - [Building RNTester app](#building-rntester-app) + - [Building for iOS](#building-for-ios) + - [Building for Android](#building-for-android) + - [Setting up the RNTester E2E folder](#setting-up-the-rntester-e2e-folder) +- [Testing the RNTester app E2E](#testing-the-rntester-app-e2e) +- [Adding new tests (and project structure)](#adding-new-tests-and-project-structure) + +## Setting up locally + +### (one-off) Setting up Appium + +The first step you need to do is to ensure to install the tooling: + +```bash +npm install appium@2.0.0 -g +appium driver install uiautomator2 +appium driver install xcuitest +``` + +> More details about drivers in Appium [here](https://appium.github.io/appium/docs/en/2.0/guides/managing-exts/) and [here](https://appium.github.io/appium/docs/en/2.0/quickstart/uiauto2-driver/) + +You should not need to run install commands for drivers separately more than once, even if you bump the dep in package.json. + +### Building RNTester app + +Building manually *.app* and *.apk* is required to run automation tests on local environment. + +0. *(optional)* If you previously built RNTester, you may need to clean up build files and Pods: + + ```bash + yarn test-e2e-local-clean && yarn install + ``` + +1. Step 1: install packages for the repository, then navigate in the rn-tester folder + + ```bash + cd react-native + yarn install + cd packages/rn-tester + ``` + +Now, depending on the platform, there are some specific steps + +#### Building for iOS + +0. Make sure you have Bundler `gem install bundler` - we use it ensure installing the right version of CocoaPods locally. +1. Install Bundler and CocoaPods dependencies: `bundle install` then `bundle exec pod install` or `yarn setup-ios-hermes` for RNTester with Hermes. In order to use JSC instead of Hermes engine, run: `USE_HERMES=0 bundle exec pod install` or `setup-ios-jsc` instead. +2. You can build app with React Native CLI or manually with Xcode: + 1. To build with React Native CLI: + 1. Run `npx react-native build-ios --mode Debug --scheme RNTester --buildFolder /path/to/build-folder`, replace `/path/to/build-folder` with the real path. + 2. Copy the built app using `mv` - `mv /path/to/build-folder/Build/Products/Debug-iphonesimulator/RNTester.app ~/react-native/packages/rn-tester-e2e/apps` or manually. + 2. To build with Xcode, open the generated `RNTester.xcworkspace` and build. + 1. Find the **RNTester.app** in `~/Library/Developer/Xcode/DerivedData/RNTesterPods-{id}/Build/Products/Debug-iphonesimulator` + 2. Copy the app to the following directory `~/react-native/packages/rn-tester-e2e/apps`. +3. Change its name to: `rn-tester.app` + +#### Building for Android + +0. You'll need to have all the [prerequisites](https://reactnative.dev/contributing/how-to-build-from-source#prerequisites) (SDK, NDK) for Building React Native installed. +1. Start an Android emulator. +2. Build the app via + + ```bash + # In order to not use Hermes engine, run `yarn install-android-jsc` instead. + yarn install-android-hermes + yarn start + ``` + + *Note: Building for the first time can take a while.* + +3. Find the **app-*-debug.apk** in `~/react-native/packages/rn-tester/android/app/build/outputs/apk/hermes/debug` +4. Copy the app `app-*-debug.apk` to the following directory `~/react-native/packages/rn-tester-e2e/apps` +5. Change its name to: `rn-tester.apk` + +### Setting up the RNTester E2E folder + +In `react-native/packages/rn-tester-e2e` open the following file + +```bash +/react-native/packages/rn-tester-e2e/e2e-config.js +``` + +And modify lines L24->L39 to reflect your local setup configuration (ex. `platformVersion`, `deviceName`). Make sure to **not** commit this change if you send a PR to add tests. + +## Testing the RNTester app E2E + +After you have done all the above correctly, and you have the Android/iOS apps in the `rn-tester-e2e/apps` folder, in a dedicated terminal window, run: + +```bash +appium --base-path /wd/hub +``` + +This will start the Appium server - you will need this to keep running. + +Then open a second terminal window and start the Metro terminal from the `packages/rn-tester` folder, via `yarn start --reset-cache`. This terminal window also needs to keep running. + +Now, make sure that the iOS simulator/the Android emulator is up and running. + +Finally, you can open a third terminal window and run: + +```bash +yarn test-android-e2e # for android +yarn test-ios-e2e # for ios +``` + +Now you should see the RNTester app being open, and the defined test being run. + +## Adding new tests (and project structure) + +This project has 2 main folders: + +- `apps`, where, as you have seen above, the iOS/Android RNTester apps need to be put so that appium will pick them and install in the emulator/simulator consistently. + +- `tests`, where the tests and referencing files all live. The substructure is as follows: + - `screens` -> in this folder, you will find `*.screen.js` files, where each file represents a navigation screen for RNTester. So there are 3 root ones (`apis`, `bookmarks`, `components`) and then for subscreens, there's a folder with the same name - currently, that's only `components` that contains `buttonComponent.screen.js`. The content of these files is what was earlier mentioned as "references": they provide an easy way to define all elements present in said screen, so that they can be used for tests. + - `specs` -> this folder follows a similar 1:1 mapping to the RNTester screens, but for the tests: for each screen (or subscreen) there's a dedicated `*.test.js` file (such as `buttonComponentScreen.test.js`). Ideally, in this file the Jest tests are standard, leveraging the `*.screen.js` counterpart for the details of defining how Appium/WDIO can reach those elements on screen. + +When adding a new test, please ensure that you follow this pattern and add the relevant test in the right screen file / screen test file. Use the files mentioned above as examples. diff --git a/packages/rn-tester-e2e/apps/README.md b/packages/rn-tester-e2e/apps/README.md new file mode 100644 index 00000000000000..ac0d4f7cf98755 --- /dev/null +++ b/packages/rn-tester-e2e/apps/README.md @@ -0,0 +1 @@ +Put the *.app and *.apk files here. diff --git a/packages/rn-tester-e2e/babel.config.js b/packages/rn-tester-e2e/babel.config.js new file mode 100644 index 00000000000000..44aff7e2c7ea33 --- /dev/null +++ b/packages/rn-tester-e2e/babel.config.js @@ -0,0 +1,14 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +module.exports = { + presets: [['@babel/preset-env', {targets: {node: 'current'}}]], + plugins: ['@babel/plugin-transform-flow-strip-types'], +}; diff --git a/packages/rn-tester-e2e/e2e-config.js b/packages/rn-tester-e2e/e2e-config.js new file mode 100644 index 00000000000000..1ea3a6d3a62041 --- /dev/null +++ b/packages/rn-tester-e2e/e2e-config.js @@ -0,0 +1,61 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +const path = require('path'); + +type Capabilities = { + platformName: 'Android' | 'iOS', + 'appium:platformVersion': string, + 'appium:deviceName': string, + 'appium:app': string, + 'appium:automationName': 'UiAutomator2' | 'XCUITest', + 'appium:newCommandTimeout'?: number, +}; + +let capabilities: Capabilities; + +const android = { + platformName: 'Android', + 'appium:platformVersion': '13.0', + 'appium:deviceName': 'Android Emulator', + 'appium:app': path.join(process.cwd(), '/apps/rn-tester.apk'), + 'appium:automationName': 'UiAutomator2', + 'appium:newCommandTimeout': 240, +}; + +const ios = { + platformName: 'iOS', + 'appium:platformVersion': '16.4', + 'appium:deviceName': 'iPhone 14', + 'appium:automationName': 'XCUITest', + 'appium:app': path.join(process.cwd(), '/apps/rn-tester.app'), +}; + +// check that E2E_DEVICE exists, is a string and its either "ios" or "android" +if (!process.env.E2E_DEVICE) { + throw new Error('E2E_DEVICE environment variable is not defined'); +} else if (typeof process.env.E2E_DEVICE !== 'string') { + throw new Error('E2E_DEVICE environment variable is not a string'); +} else if ( + process.env.E2E_DEVICE !== 'ios' && + process.env.E2E_DEVICE !== 'android' +) { + throw new Error('E2E_DEVICE environment variable is not "ios" or "android"'); +} + +if (process.env.E2E_DEVICE === 'android') { + capabilities = android; +} + +if (process.env.E2E_DEVICE === 'ios') { + capabilities = ios; +} + +export default capabilities; diff --git a/packages/rn-tester-e2e/jest.config.js b/packages/rn-tester-e2e/jest.config.js new file mode 100644 index 00000000000000..e7443e47674e67 --- /dev/null +++ b/packages/rn-tester-e2e/jest.config.js @@ -0,0 +1,17 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +module.exports = { + testTimeout: 120000, + bail: 0, + setupFilesAfterEnv: ['./jest.setup.js'], + testMatch: ['**/specs/**/*.js'], + maxWorkers: 1, +}; diff --git a/packages/rn-tester-e2e/jest.setup.js b/packages/rn-tester-e2e/jest.setup.js new file mode 100644 index 00000000000000..abee7e1763c50f --- /dev/null +++ b/packages/rn-tester-e2e/jest.setup.js @@ -0,0 +1,38 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +const wdio = require('webdriverio'); +import capabilities from './e2e-config.js'; +import {beforeEach, afterEach, jest} from '@jest/globals'; +jest.retryTimes(3); + +let driver: any; + +const config = { + path: '/wd/hub', + host: 'localhost', + port: 4723, + waitforTimeout: 60000, + logLevel: 'error', + capabilities: { + ...capabilities, + }, +}; + +beforeEach(async () => { + driver = await wdio.remote(config); +}); + +afterEach(async () => { + console.info('[afterAll] Done with testing!'); + await driver.deleteSession(); +}); + +export {driver}; diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json new file mode 100644 index 00000000000000..ef151436a0efca --- /dev/null +++ b/packages/rn-tester-e2e/package.json @@ -0,0 +1,30 @@ +{ + "name": "@react-native/tester-e2e", + "private": true, + "version": "0.0.1", + "license": "MIT", + "description": "React Native E2E tester app.", + "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", + "repository": { + "type": "git", + "url": "git@github.com:facebook/react-native.git", + "directory": "packages/rn-tester-e2e" + }, + "scripts": { + "test": "jest --runInBand", + "test-android-e2e": "E2E_DEVICE=\"android\" yarn test", + "test-ios-e2e": "E2E_DEVICE=\"ios\" yarn test" + }, + "devDependencies": { + "appium": "^2.0.0", + "appium-uiautomator2-driver": "^2.29.1", + "appium-xcuitest-driver": "^4.32.10", + "eslint": "^8.19.0", + "jest": "^29.2.1", + "webdriverio": "^7.32.0", + "@babel/core": "^7.20.0", + "@babel/preset-env": "^7.20.0", + "@babel/plugin-transform-flow-strip-types": "^7.20.0", + "@types/jest": "^29.2.1" + } +} diff --git a/packages/rn-tester-e2e/tests/helpers/utils.js b/packages/rn-tester-e2e/tests/helpers/utils.js new file mode 100644 index 00000000000000..1ea1342eae13a7 --- /dev/null +++ b/packages/rn-tester-e2e/tests/helpers/utils.js @@ -0,0 +1,52 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +import {driver} from '../../jest.setup'; + +type PlatformsReference = { + ios: string, + android: string, +}; + +class Utils { + async checkElementExistence(locator: string): Promise { + await driver.$(locator).waitForDisplayed(); + return driver.$(locator).isDisplayed(); + } + + async clickElement(locator: string): Promise { + await driver.$(locator).waitForDisplayed(); + await driver.$(locator).click(); + } + + async getElementText(locator: string): Promise { + await driver.$(locator).waitForDisplayed(); + return driver.$(locator).getText(); + } + + platformSelect(platforms: PlatformsReference): string { + // if something goes wrong, we fallback to ios. But it should never happent, the process will fail way earlier. + return platforms[process?.env?.E2E_DEVICE || 'ios']; + } +} + +export const iOSLabel = (label: string): string => { + return `[label="${label}"]`; +}; + +export const androidWidget = ( + type: string, + selector: string, + id: string, +): string => { + return `//android.widget.${type}[@${selector}="${id}"]`; +}; + +export const UtilsSingleton: Utils = new Utils(); diff --git a/packages/rn-tester-e2e/tests/screens/apis.screen.js b/packages/rn-tester-e2e/tests/screens/apis.screen.js new file mode 100644 index 00000000000000..22baaf4e45053d --- /dev/null +++ b/packages/rn-tester-e2e/tests/screens/apis.screen.js @@ -0,0 +1,15 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +// root level screen in RNTester: APIs + +class ApisScreen {} + +export const ApisScreenSingleton: ApisScreen = new ApisScreen(); diff --git a/packages/rn-tester-e2e/tests/screens/bookmarks.screen.js b/packages/rn-tester-e2e/tests/screens/bookmarks.screen.js new file mode 100644 index 00000000000000..b7f60142cc19b0 --- /dev/null +++ b/packages/rn-tester-e2e/tests/screens/bookmarks.screen.js @@ -0,0 +1,15 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +// root level screen in RNTester: Bookmarks + +class BookmarksScreen {} + +export const BookmarksScreenSingleton: BookmarksScreen = new BookmarksScreen(); diff --git a/packages/rn-tester-e2e/tests/screens/components.screen.js b/packages/rn-tester-e2e/tests/screens/components.screen.js new file mode 100644 index 00000000000000..90860a9bbdde7b --- /dev/null +++ b/packages/rn-tester-e2e/tests/screens/components.screen.js @@ -0,0 +1,40 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +import {UtilsSingleton as Utils, iOSLabel} from '../helpers/utils'; + +// root level screen in RNTester: Components + +const buttonComponentLabel = 'Button Simple React Native button component.'; + +type ComponentsScreenType = { + buttonComponentLabelElement: string, + checkButtonComponentIsDisplayed: () => Promise, + clickButtonComponent: () => Promise, +}; + +export const ComponentsScreen: ComponentsScreenType = { + // Reference in the top level Component list + buttonComponentLabelElement: Utils.platformSelect({ + ios: iOSLabel(buttonComponentLabel), + android: `~${buttonComponentLabel}`, + }), + // Methods to interact with top level elements in the list + checkButtonComponentIsDisplayed: async function ( + this: ComponentsScreenType, + ): Promise { + return await Utils.checkElementExistence(this.buttonComponentLabelElement); + }, + clickButtonComponent: async function ( + this: ComponentsScreenType, + ): Promise { + await Utils.clickElement(this.buttonComponentLabelElement); + }, +}; diff --git a/packages/rn-tester-e2e/tests/screens/components/buttonComponent.screen.js b/packages/rn-tester-e2e/tests/screens/components/buttonComponent.screen.js new file mode 100644 index 00000000000000..a5ef65ecbff9b1 --- /dev/null +++ b/packages/rn-tester-e2e/tests/screens/components/buttonComponent.screen.js @@ -0,0 +1,95 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +import { + UtilsSingleton as Utils, + iOSLabel, + androidWidget, +} from '../../helpers/utils'; + +type ButtonComponentScreenType = { + buttonScreenElement: string, + btnSubmitElement: string, + inputSearchElement: string, + btnOKElement: string, + btnCancelElement: string, + submitAlertBoxElement: string, + cancelAlertBoxElement: string, + checkButtonsScreenIsDisplayed: () => Promise, + clickSubmitApplication: () => Promise, + clickCancelApplication: () => Promise, + getCancelAlertText: () => Promise, + getSubmitAlertText: () => Promise, + clickOkButton: () => Promise, +}; + +export const ButtonComponentScreen: ButtonComponentScreenType = { + // reference in the Components list + buttonScreenElement: Utils.platformSelect({ + ios: iOSLabel('Button'), + android: androidWidget('ViewGroup', 'text', 'Button'), + }), + // References to elements within the Button Component screen + btnSubmitElement: Utils.platformSelect({ + ios: iOSLabel('Press to submit your application!'), + android: androidWidget('Button', 'resource-id', 'button_default_styling'), + }), + inputSearchElement: Utils.platformSelect({ + ios: iOSLabel('example_search'), + android: androidWidget('EditText', 'resource-id', 'example_search'), + }), + btnOKElement: Utils.platformSelect({ + ios: iOSLabel('OK'), + android: androidWidget('Button', 'text', 'OK'), + }), + btnCancelElement: Utils.platformSelect({ + ios: iOSLabel('Press to cancel your application!'), + android: androidWidget('Button', 'resource-id', 'cancel_button'), + }), + submitAlertBoxElement: Utils.platformSelect({ + ios: iOSLabel('Your application has been submitted!'), + android: androidWidget('TextView', 'resource-id', 'android:id/alertTitle'), + }), + cancelAlertBoxElement: Utils.platformSelect({ + ios: iOSLabel('Your application has been cancelled!'), + android: androidWidget('TextView', 'resource-id', 'android:id/alertTitle'), + }), + // Methods to interact with the elements + checkButtonsScreenIsDisplayed: async function ( + this: ButtonComponentScreenType, + ): Promise { + return await Utils.getElementText(this.buttonScreenElement); + }, + clickSubmitApplication: async function ( + this: ButtonComponentScreenType, + ): Promise { + await Utils.clickElement(this.btnSubmitElement); + }, + clickCancelApplication: async function ( + this: ButtonComponentScreenType, + ): Promise { + await Utils.clickElement(this.btnCancelElement); + }, + getCancelAlertText: async function ( + this: ButtonComponentScreenType, + ): Promise { + return await Utils.getElementText(this.cancelAlertBoxElement); + }, + getSubmitAlertText: async function ( + this: ButtonComponentScreenType, + ): Promise { + return await Utils.getElementText(this.submitAlertBoxElement); + }, + clickOkButton: async function ( + this: ButtonComponentScreenType, + ): Promise { + await Utils.clickElement(this.btnOKElement); + }, +}; diff --git a/packages/rn-tester-e2e/tests/specs/components/buttonComponentScreen.test.js b/packages/rn-tester-e2e/tests/specs/components/buttonComponentScreen.test.js new file mode 100644 index 00000000000000..ed18b46d33fdee --- /dev/null +++ b/packages/rn-tester-e2e/tests/specs/components/buttonComponentScreen.test.js @@ -0,0 +1,46 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +const {ComponentsScreen} = require('../../screens/components.screen.js'); +const { + ButtonComponentScreen, +} = require('../../screens/components/buttonComponent.screen.js'); + +// fixed variables +const submitText = 'Your application has been submitted!'; +const cancelText = 'Your application has been cancelled!'; + +describe('Test is checking submit button', () => { + test('Should view properly submit alert text', async () => { + expect( + await ComponentsScreen.checkButtonComponentIsDisplayed(), + ).toBeTruthy(); + await ComponentsScreen.clickButtonComponent(); + await ButtonComponentScreen.clickSubmitApplication(); + expect(await ButtonComponentScreen.getSubmitAlertText()).toContain( + submitText, + ); + await ButtonComponentScreen.clickOkButton(); + }); +}); + +describe('Test is checking cancel button', () => { + test('Should view properly submit cancel text', async () => { + expect( + await ComponentsScreen.checkButtonComponentIsDisplayed(), + ).toBeTruthy(); + await ComponentsScreen.clickButtonComponent(); + await ButtonComponentScreen.clickCancelApplication(); + expect(await ButtonComponentScreen.getCancelAlertText()).toContain( + cancelText, + ); + await ButtonComponentScreen.clickOkButton(); + }); +}); diff --git a/packages/rn-tester/.babelrc b/packages/rn-tester/.babelrc index f625e70226abf0..465e69eede3388 100644 --- a/packages/rn-tester/.babelrc +++ b/packages/rn-tester/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - "module:metro-react-native-babel-preset" + "module:@react-native/babel-preset" ], "plugins": [ "babel-plugin-transform-flow-enums" diff --git a/packages/rn-tester/NativeModuleExample/Screenshot.m b/packages/rn-tester/NativeModuleExample/Screenshot.mm similarity index 100% rename from packages/rn-tester/NativeModuleExample/Screenshot.m rename to packages/rn-tester/NativeModuleExample/Screenshot.mm diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index c48b1924b54400..4a927a34d1b59c 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -3,14 +3,7 @@ PODS: - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - FBLazyVector (1000.0.0) - - FBReactNativeSpec (1000.0.0): - - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 1000.0.0) - - RCTTypeSafety (= 1000.0.0) - - React-Core (= 1000.0.0) - - React-jsi (= 1000.0.0) - - ReactCommon/turbomodule/core (= 1000.0.0) - - Flipper (0.201.0): + - Flipper (0.182.0): - Flipper-Folly (~> 2.6) - Flipper-Boost-iOSX (1.76.0.1.11) - Flipper-DoubleConversion (3.2.0.1) @@ -24,58 +17,88 @@ PODS: - OpenSSL-Universal (= 1.1.1100) - Flipper-Glog (0.5.0.5) - Flipper-PeerTalk (0.0.4) - - FlipperKit (0.201.0): - - FlipperKit/Core (= 0.201.0) - - FlipperKit/Core (0.201.0): - - Flipper (~> 0.201.0) + - FlipperKit (0.182.0): + - FlipperKit/Core (= 0.182.0) + - FlipperKit/Core (0.182.0): + - Flipper (~> 0.182.0) - FlipperKit/CppBridge - FlipperKit/FBCxxFollyDynamicConvert - FlipperKit/FBDefines - FlipperKit/FKPortForwarding - SocketRocket (~> 0.6.0) - - FlipperKit/CppBridge (0.201.0): - - Flipper (~> 0.201.0) - - FlipperKit/FBCxxFollyDynamicConvert (0.201.0): + - FlipperKit/CppBridge (0.182.0): + - Flipper (~> 0.182.0) + - FlipperKit/FBCxxFollyDynamicConvert (0.182.0): - Flipper-Folly (~> 2.6) - - FlipperKit/FBDefines (0.201.0) - - FlipperKit/FKPortForwarding (0.201.0): + - FlipperKit/FBDefines (0.182.0) + - FlipperKit/FKPortForwarding (0.182.0): - CocoaAsyncSocket (~> 7.6) - Flipper-PeerTalk (~> 0.0.4) - - FlipperKit/FlipperKitHighlightOverlay (0.201.0) - - FlipperKit/FlipperKitLayoutHelpers (0.201.0): + - FlipperKit/FlipperKitHighlightOverlay (0.182.0) + - FlipperKit/FlipperKitLayoutHelpers (0.182.0): - FlipperKit/Core - FlipperKit/FlipperKitHighlightOverlay - FlipperKit/FlipperKitLayoutTextSearchable - - FlipperKit/FlipperKitLayoutIOSDescriptors (0.201.0): + - FlipperKit/FlipperKitLayoutIOSDescriptors (0.182.0): - FlipperKit/Core - FlipperKit/FlipperKitHighlightOverlay - FlipperKit/FlipperKitLayoutHelpers - - FlipperKit/FlipperKitLayoutPlugin (0.201.0): + - YogaKit (~> 1.18) + - FlipperKit/FlipperKitLayoutPlugin (0.182.0): - FlipperKit/Core - FlipperKit/FlipperKitHighlightOverlay - FlipperKit/FlipperKitLayoutHelpers - FlipperKit/FlipperKitLayoutIOSDescriptors - FlipperKit/FlipperKitLayoutTextSearchable - - FlipperKit/FlipperKitLayoutTextSearchable (0.201.0) - - FlipperKit/FlipperKitNetworkPlugin (0.201.0): + - YogaKit (~> 1.18) + - FlipperKit/FlipperKitLayoutTextSearchable (0.182.0) + - FlipperKit/FlipperKitNetworkPlugin (0.182.0): - FlipperKit/Core - - FlipperKit/FlipperKitReactPlugin (0.201.0): + - FlipperKit/FlipperKitReactPlugin (0.182.0): - FlipperKit/Core - - FlipperKit/FlipperKitUserDefaultsPlugin (0.201.0): + - FlipperKit/FlipperKitUserDefaultsPlugin (0.182.0): - FlipperKit/Core - - FlipperKit/SKIOSNetworkPlugin (0.201.0): + - FlipperKit/SKIOSNetworkPlugin (0.182.0): - FlipperKit/Core - FlipperKit/FlipperKitNetworkPlugin - fmt (6.2.1) - glog (0.3.5) - - hermes-engine (1000.0.0): - - hermes-engine/Hermes (= 1000.0.0) - - hermes-engine/JSI (= 1000.0.0) - - hermes-engine/Public (= 1000.0.0) - - hermes-engine/Hermes (1000.0.0) - - hermes-engine/JSI (1000.0.0) - - hermes-engine/Public (1000.0.0) - - libevent (2.1.12) + - MyNativeView (0.0.1): + - glog + - RCT-Folly (= 2021.07.22.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - NativeCxxModuleExample (0.0.1): + - glog + - RCT-Folly (= 2021.07.22.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - OCMock (3.9.1) - OpenSSL-Universal (1.1.1100) - RCT-Folly (2021.07.22.00): @@ -94,12 +117,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - RCT-Folly/Futures (2021.07.22.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - libevent - RCTRequired (1000.0.0) - RCTTypeSafety (1000.0.0): - FBLazyVector (= 1000.0.0) @@ -118,12 +135,35 @@ PODS: - React-RCTSettings (= 1000.0.0) - React-RCTText (= 1000.0.0) - React-RCTVibration (= 1000.0.0) + - React-BridgelessApple (1000.0.0): + - RCT-Folly/Fabric (= 2021.07.22.00) + - React-BridgelessCore + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-jsc + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-runtimeexecutor + - React-utils + - React-BridgelessCore (1000.0.0): + - glog + - RCT-Folly/Fabric (= 2021.07.22.00) + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-runtimeexecutor + - React-runtimescheduler - React-callinvoker (1000.0.0) - React-Codegen (1000.0.0): - DoubleConversion - - FBReactNativeSpec - glog - - hermes-engine - RCT-Folly - RCTRequired - RCTTypeSafety @@ -131,21 +171,20 @@ PODS: - React-debug - React-Fabric - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-NativeModulesApple - React-rendererdebug - - React-rncore - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - React-Core (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default (= 1000.0.0) - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -154,11 +193,10 @@ PODS: - Yoga - React-Core/CoreModulesHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -167,10 +205,9 @@ PODS: - Yoga - React-Core/Default (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -179,12 +216,11 @@ PODS: - Yoga - React-Core/DevSupport (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default (= 1000.0.0) - React-Core/RCTWebSocket (= 1000.0.0) - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-jsinspector (= 1000.0.0) @@ -194,11 +230,10 @@ PODS: - Yoga - React-Core/RCTActionSheetHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -207,11 +242,10 @@ PODS: - Yoga - React-Core/RCTAnimationHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -220,11 +254,10 @@ PODS: - Yoga - React-Core/RCTBlobHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -233,11 +266,10 @@ PODS: - Yoga - React-Core/RCTImageHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -246,11 +278,10 @@ PODS: - Yoga - React-Core/RCTLinkingHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -259,11 +290,10 @@ PODS: - Yoga - React-Core/RCTNetworkHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -272,11 +302,10 @@ PODS: - Yoga - React-Core/RCTPushNotificationHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -285,11 +314,10 @@ PODS: - Yoga - React-Core/RCTSettingsHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -298,11 +326,10 @@ PODS: - Yoga - React-Core/RCTTextHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -311,11 +338,10 @@ PODS: - Yoga - React-Core/RCTVibrationHeaders (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -324,11 +350,10 @@ PODS: - Yoga - React-Core/RCTWebSocket (1000.0.0): - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default (= 1000.0.0) - React-cxxreact (= 1000.0.0) - - React-hermes + - React-jsc - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) @@ -349,7 +374,6 @@ PODS: - boost (= 1.76.0) - DoubleConversion - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-callinvoker (= 1000.0.0) - React-debug (= 1000.0.0) @@ -362,7 +386,6 @@ PODS: - React-Fabric (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -375,11 +398,9 @@ PODS: - React-Fabric/componentregistry (= 1000.0.0) - React-Fabric/componentregistrynative (= 1000.0.0) - React-Fabric/components (= 1000.0.0) - - React-Fabric/config (= 1000.0.0) - React-Fabric/core (= 1000.0.0) - React-Fabric/imagemanager (= 1000.0.0) - React-Fabric/leakchecker (= 1000.0.0) - - React-Fabric/mapbuffer (= 1000.0.0) - React-Fabric/mounting (= 1000.0.0) - React-Fabric/runtimescheduler (= 1000.0.0) - React-Fabric/scheduler (= 1000.0.0) @@ -388,7 +409,7 @@ PODS: - React-Fabric/textlayoutmanager (= 1000.0.0) - React-Fabric/uimanager (= 1000.0.0) - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -397,7 +418,6 @@ PODS: - React-Fabric/animations (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -405,7 +425,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -414,7 +434,6 @@ PODS: - React-Fabric/attributedstring (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -422,7 +441,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -431,7 +450,6 @@ PODS: - React-Fabric/butter (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -439,7 +457,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -448,7 +466,6 @@ PODS: - React-Fabric/componentregistry (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -456,7 +473,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -465,7 +482,6 @@ PODS: - React-Fabric/componentregistrynative (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -473,7 +489,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -482,7 +498,6 @@ PODS: - React-Fabric/components (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -501,7 +516,7 @@ PODS: - React-Fabric/components/unimplementedview (= 1000.0.0) - React-Fabric/components/view (= 1000.0.0) - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -510,7 +525,6 @@ PODS: - React-Fabric/components/inputaccessory (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -518,7 +532,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -527,7 +541,6 @@ PODS: - React-Fabric/components/legacyviewmanagerinterop (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -535,7 +548,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -544,7 +557,6 @@ PODS: - React-Fabric/components/modal (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -552,7 +564,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -561,7 +573,6 @@ PODS: - React-Fabric/components/rncore (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -569,7 +580,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -578,7 +589,6 @@ PODS: - React-Fabric/components/root (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -586,7 +596,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -595,7 +605,6 @@ PODS: - React-Fabric/components/safeareaview (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -603,7 +612,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -612,7 +621,6 @@ PODS: - React-Fabric/components/scrollview (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -620,7 +628,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -629,7 +637,6 @@ PODS: - React-Fabric/components/text (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -637,7 +644,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -646,7 +653,6 @@ PODS: - React-Fabric/components/textinput (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -654,7 +660,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -663,7 +669,6 @@ PODS: - React-Fabric/components/unimplementedview (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -671,7 +676,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -680,7 +685,6 @@ PODS: - React-Fabric/components/view (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -688,34 +692,16 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - Yoga - - React-Fabric/config (1000.0.0): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 1000.0.0) - - RCTTypeSafety (= 1000.0.0) - - React-Core - - React-cxxreact - - React-debug - - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) - - React-jsiexecutor (= 1000.0.0) - - React-logger - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/core (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -723,7 +709,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -732,7 +718,6 @@ PODS: - React-Fabric/imagemanager (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -740,7 +725,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -749,24 +734,6 @@ PODS: - React-Fabric/leakchecker (1000.0.0): - DoubleConversion - glog - - hermes-engine - - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 1000.0.0) - - RCTTypeSafety (= 1000.0.0) - - React-Core - - React-cxxreact - - React-debug - - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) - - React-jsiexecutor (= 1000.0.0) - - React-logger - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/core (= 1000.0.0) - - React-Fabric/mapbuffer (1000.0.0): - - DoubleConversion - - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -774,7 +741,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -783,7 +750,6 @@ PODS: - React-Fabric/mounting (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -791,7 +757,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -800,7 +766,6 @@ PODS: - React-Fabric/runtimescheduler (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -808,7 +773,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -817,7 +782,6 @@ PODS: - React-Fabric/scheduler (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -825,7 +789,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -834,7 +798,6 @@ PODS: - React-Fabric/telemetry (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -842,7 +805,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -851,7 +814,6 @@ PODS: - React-Fabric/templateprocessor (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -859,7 +821,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -868,7 +830,6 @@ PODS: - React-Fabric/textlayoutmanager (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -877,7 +838,7 @@ PODS: - React-debug - React-Fabric/uimanager - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -886,7 +847,6 @@ PODS: - React-Fabric/uimanager (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) @@ -894,7 +854,7 @@ PODS: - React-cxxreact - React-debug - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -903,14 +863,13 @@ PODS: - React-FabricImage (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - RCTRequired (= 1000.0.0) - RCTTypeSafety (= 1000.0.0) - React-Fabric - React-graphics (= 1000.0.0) - React-ImageManager - - React-jsi (= 1000.0.0) + - React-jsi - React-jsiexecutor (= 1000.0.0) - React-logger - React-rendererdebug @@ -921,17 +880,6 @@ PODS: - glog - RCT-Folly/Fabric (= 2021.07.22.00) - React-Core/Default (= 1000.0.0) - - React-hermes (1000.0.0): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - RCT-Folly/Futures (= 2021.07.22.00) - - React-cxxreact (= 1000.0.0) - - React-jsi - - React-jsiexecutor (= 1000.0.0) - - React-jsinspector (= 1000.0.0) - - React-perflogger (= 1000.0.0) - React-ImageManager (1000.0.0): - glog - RCT-Folly/Fabric @@ -941,26 +889,38 @@ PODS: - React-RCTImage - React-rendererdebug - React-utils + - React-jsc (1000.0.0): + - React-jsc/Fabric (= 1000.0.0) + - React-jsi (= 1000.0.0) + - React-jsc/Fabric (1000.0.0): + - React-jsi (= 1000.0.0) + - React-jserrorhandler (1000.0.0): + - RCT-Folly/Fabric (= 2021.07.22.00) + - React-jsi (= 1000.0.0) + - React-Mapbuffer - React-jsi (1000.0.0): - boost (= 1.76.0) - DoubleConversion - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-jsiexecutor (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-cxxreact (= 1000.0.0) - React-jsi (= 1000.0.0) - React-perflogger (= 1000.0.0) - React-jsinspector (1000.0.0) + - React-jsitracing (1000.0.0): + - React-jsi - React-logger (1000.0.0): - glog + - React-Mapbuffer (1000.0.0): + - glog + - React-debug + - React-nativeconfig (1000.0.0) - React-NativeModulesApple (1000.0.0): - glog - - hermes-engine - React-callinvoker - React-Core - React-cxxreact @@ -982,15 +942,23 @@ PODS: - RCT-Folly - RCTRequired - RCTTypeSafety + - React-BridgelessApple + - React-BridgelessCore - React-Core - React-CoreModules - - React-hermes + - React-debug + - React-Fabric + - React-graphics + - React-jsc + - React-nativeconfig - React-NativeModulesApple + - React-RCTFabric - React-RCTImage - React-RCTNetwork + - React-rendererdebug + - React-utils - ReactCommon/turbomodule/core - React-RCTBlob (1000.0.0): - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Codegen (= 1000.0.0) - React-Core/RCTBlobHeaders (= 1000.0.0) @@ -1000,7 +968,6 @@ PODS: - ReactCommon/turbomodule/core (= 1000.0.0) - React-RCTFabric (1000.0.0): - glog - - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - React-Core (= 1000.0.0) - React-debug @@ -1008,6 +975,8 @@ PODS: - React-FabricImage - React-graphics - React-ImageManager + - React-jsi + - React-nativeconfig - React-RCTImage (= 1000.0.0) - React-RCTText - React-rendererdebug @@ -1054,6 +1023,7 @@ PODS: - ReactCommon/turbomodule/core (= 1000.0.0) - React-RCTText (1000.0.0): - React-Core/RCTTextHeaders (= 1000.0.0) + - Yoga - React-RCTVibration (1000.0.0): - RCT-Folly (= 2021.07.22.00) - React-Codegen (= 1000.0.0) @@ -1067,23 +1037,30 @@ PODS: - React-rncore (1000.0.0) - React-runtimeexecutor (1000.0.0): - React-jsi (= 1000.0.0) + - React-runtimescheduler (1000.0.0): + - glog + - RCT-Folly (= 2021.07.22.00) + - React-callinvoker + - React-debug + - React-jsi + - React-runtimeexecutor + - React-utils - React-utils (1000.0.0): - glog - RCT-Folly (= 2021.07.22.00) - React-debug - ReactCommon-Samples (1000.0.0): - DoubleConversion - - hermes-engine - RCT-Folly - React-Codegen - React-Core - React-cxxreact + - React-jsi - React-NativeModulesApple - ReactCommon/turbomodule/core - ReactCommon/turbomodule/bridging (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-callinvoker (= 1000.0.0) - React-cxxreact (= 1000.0.0) @@ -1093,7 +1070,6 @@ PODS: - ReactCommon/turbomodule/core (1000.0.0): - DoubleConversion - glog - - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-callinvoker (= 1000.0.0) - React-cxxreact (= 1000.0.0) @@ -1103,38 +1079,53 @@ PODS: - ScreenshotManager (0.0.1): - glog - RCT-Folly (= 2021.07.22.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - SocketRocket (0.6.0) - Yoga (1.14.0) + - YogaKit (1.18.1): + - Yoga (~> 1.14) DEPENDENCIES: - boost (from `../react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../react-native/React/FBReactNativeSpec`) - - Flipper (= 0.201.0) + - Flipper (= 0.182.0) - Flipper-Boost-iOSX (= 1.76.0.1.11) - Flipper-DoubleConversion (= 3.2.0.1) - Flipper-Fmt (= 7.1.7) - Flipper-Folly (= 2.6.10) - Flipper-Glog (= 0.5.0.5) - Flipper-PeerTalk (= 0.0.4) - - FlipperKit (= 0.201.0) - - FlipperKit/Core (= 0.201.0) - - FlipperKit/CppBridge (= 0.201.0) - - FlipperKit/FBCxxFollyDynamicConvert (= 0.201.0) - - FlipperKit/FBDefines (= 0.201.0) - - FlipperKit/FKPortForwarding (= 0.201.0) - - FlipperKit/FlipperKitHighlightOverlay (= 0.201.0) - - FlipperKit/FlipperKitLayoutPlugin (= 0.201.0) - - FlipperKit/FlipperKitLayoutTextSearchable (= 0.201.0) - - FlipperKit/FlipperKitNetworkPlugin (= 0.201.0) - - FlipperKit/FlipperKitReactPlugin (= 0.201.0) - - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.201.0) - - FlipperKit/SKIOSNetworkPlugin (= 0.201.0) + - FlipperKit (= 0.182.0) + - FlipperKit/Core (= 0.182.0) + - FlipperKit/CppBridge (= 0.182.0) + - FlipperKit/FBCxxFollyDynamicConvert (= 0.182.0) + - FlipperKit/FBDefines (= 0.182.0) + - FlipperKit/FKPortForwarding (= 0.182.0) + - FlipperKit/FlipperKitHighlightOverlay (= 0.182.0) + - FlipperKit/FlipperKitLayoutPlugin (= 0.182.0) + - FlipperKit/FlipperKitLayoutTextSearchable (= 0.182.0) + - FlipperKit/FlipperKitNetworkPlugin (= 0.182.0) + - FlipperKit/FlipperKitReactPlugin (= 0.182.0) + - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.182.0) + - FlipperKit/SKIOSNetworkPlugin (= 0.182.0) - glog (from `../react-native/third-party-podspecs/glog.podspec`) - - hermes-engine (from `../react-native/sdks/hermes-engine/hermes-engine.podspec`) - - libevent (~> 2.1.12) + - MyNativeView (from `NativeComponentExample`) + - NativeCxxModuleExample (from `NativeCxxModuleExample`) - OCMock (~> 3.9.1) - OpenSSL-Universal (= 1.1.1100) - RCT-Folly (from `../react-native/third-party-podspecs/RCT-Folly.podspec`) @@ -1142,6 +1133,8 @@ DEPENDENCIES: - RCTRequired (from `../react-native/Libraries/RCTRequired`) - RCTTypeSafety (from `../react-native/Libraries/TypeSafety`) - React (from `../react-native/`) + - React-BridgelessApple (from `../react-native/ReactCommon/react/bridgeless`) + - React-BridgelessCore (from `../react-native/ReactCommon/react/bridgeless`) - React-callinvoker (from `../react-native/ReactCommon/callinvoker`) - React-Codegen (from `build/generated/ios`) - React-Core (from `../react-native/`) @@ -1153,12 +1146,17 @@ DEPENDENCIES: - React-Fabric (from `../react-native/ReactCommon`) - React-FabricImage (from `../react-native/ReactCommon`) - React-graphics (from `../react-native/ReactCommon/react/renderer/graphics`) - - React-hermes (from `../react-native/ReactCommon/hermes`) - React-ImageManager (from `../react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jsc (from `../react-native/ReactCommon/jsc`) + - React-jsc/Fabric (from `../react-native/ReactCommon/jsc`) + - React-jserrorhandler (from `../react-native/ReactCommon/jserrorhandler`) - React-jsi (from `../react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../react-native/ReactCommon/jsinspector`) + - React-jsitracing (from `../react-native/ReactCommon/hermes/executor/`) - React-logger (from `../react-native/ReactCommon/logger`) + - React-Mapbuffer (from `../react-native/ReactCommon`) + - React-nativeconfig (from `../react-native/ReactCommon`) - React-NativeModulesApple (from `../react-native/ReactCommon/react/nativemodule/core/platform/ios`) - React-perflogger (from `../react-native/ReactCommon/reactperflogger`) - React-RCTActionSheet (from `../react-native/Libraries/ActionSheetIOS`) @@ -1177,6 +1175,7 @@ DEPENDENCIES: - React-rendererdebug (from `../react-native/ReactCommon/react/renderer/debug`) - React-rncore (from `../react-native/ReactCommon`) - React-runtimeexecutor (from `../react-native/ReactCommon/runtimeexecutor`) + - React-runtimescheduler (from `../react-native/ReactCommon/react/renderer/runtimescheduler`) - React-utils (from `../react-native/ReactCommon/react/utils`) - ReactCommon-Samples (from `../react-native/ReactCommon/react/nativemodule/samples`) - ReactCommon/turbomodule/core (from `../react-native/ReactCommon`) @@ -1195,10 +1194,10 @@ SPEC REPOS: - Flipper-PeerTalk - FlipperKit - fmt - - libevent - OCMock - OpenSSL-Universal - SocketRocket + - YogaKit EXTERNAL SOURCES: boost: @@ -1207,13 +1206,12 @@ EXTERNAL SOURCES: :podspec: "../react-native/third-party-podspecs/DoubleConversion.podspec" FBLazyVector: :path: "../react-native/Libraries/FBLazyVector" - FBReactNativeSpec: - :path: "../react-native/React/FBReactNativeSpec" glog: :podspec: "../react-native/third-party-podspecs/glog.podspec" - hermes-engine: - :podspec: "../react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: '' + MyNativeView: + :path: NativeComponentExample + NativeCxxModuleExample: + :path: NativeCxxModuleExample RCT-Folly: :podspec: "../react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: @@ -1222,6 +1220,10 @@ EXTERNAL SOURCES: :path: "../react-native/Libraries/TypeSafety" React: :path: "../react-native/" + React-BridgelessApple: + :path: "../react-native/ReactCommon/react/bridgeless" + React-BridgelessCore: + :path: "../react-native/ReactCommon/react/bridgeless" React-callinvoker: :path: "../react-native/ReactCommon/callinvoker" React-Codegen: @@ -1240,18 +1242,26 @@ EXTERNAL SOURCES: :path: "../react-native/ReactCommon" React-graphics: :path: "../react-native/ReactCommon/react/renderer/graphics" - React-hermes: - :path: "../react-native/ReactCommon/hermes" React-ImageManager: :path: "../react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jsc: + :path: "../react-native/ReactCommon/jsc" + React-jserrorhandler: + :path: "../react-native/ReactCommon/jserrorhandler" React-jsi: :path: "../react-native/ReactCommon/jsi" React-jsiexecutor: :path: "../react-native/ReactCommon/jsiexecutor" React-jsinspector: :path: "../react-native/ReactCommon/jsinspector" + React-jsitracing: + :path: "../react-native/ReactCommon/hermes/executor/" React-logger: :path: "../react-native/ReactCommon/logger" + React-Mapbuffer: + :path: "../react-native/ReactCommon" + React-nativeconfig: + :path: "../react-native/ReactCommon" React-NativeModulesApple: :path: "../react-native/ReactCommon/react/nativemodule/core/platform/ios" React-perflogger: @@ -1288,6 +1298,8 @@ EXTERNAL SOURCES: :path: "../react-native/ReactCommon" React-runtimeexecutor: :path: "../react-native/ReactCommon/runtimeexecutor" + React-runtimescheduler: + :path: "../react-native/ReactCommon/react/renderer/runtimescheduler" React-utils: :path: "../react-native/ReactCommon/react/utils" ReactCommon: @@ -1303,65 +1315,72 @@ SPEC CHECKSUMS: boost: 57d2868c099736d80fcd648bf211b4431e51a558 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 - FBLazyVector: 4ace5421409f3d0deafe868c7eb4bd40e746f0be - FBReactNativeSpec: e73421f4c0ece0c04afbc11bcc6a57c6bebac4eb - Flipper: c7a0093234c4bdd456e363f2f19b2e4b27652d44 + FBLazyVector: f4492a543c5a8fa1502d3a5867e3f7252497cfe8 + Flipper: 6edb735e6c3e332975d1b17956bcc584eccf5818 Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446 Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 - FlipperKit: 37525a5d056ef9b93d1578e04bc3ea1de940094f + FlipperKit: 2efad7007d6745a3f95e4034d547be637f89d3f6 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 99bd064df01718db56b8f75e6b5ea3051c7dad0a - hermes-engine: ba635b041110d18694a8478afb023d71c3f0b0ef - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 + MyNativeView: 59008ae4e02f2ee035b79a60254713a9d3f61d52 + NativeCxxModuleExample: d4eec7a8e74e2bb5e9b7f0b578079dbeb708029a OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c RCT-Folly: b0d1393cb3763d71efca99db314c65f0072eb0fe - RCTRequired: 0f72d27bffa315bd58dcb43d84aa9223ce660e4d - RCTTypeSafety: 629c915cf2ffb5af66483d30d4e71d2ccafb43a6 - React: 1a43562e4b4d5964cb8a99892a1b2a291e15eba8 - React-callinvoker: f1a75bb2406d438037751fbcbc6e51e3ab515847 - React-Codegen: 4ac0cb84d358edd26db783a441cade433333eb93 - React-Core: 16193929a2b3d725dae4e1c6ed3e3a8d2a539e53 - React-CoreModules: 80250aabc18a66f21488766bc3342138fc420172 - React-cxxreact: f46b4218d377289571e0c8cb58d25c4e69cfe419 - React-debug: 4c46be84291edc4d1e0772e366e387bc62e8fad6 - React-Fabric: 56c6a5014de4817da3567745f74011471d989c25 - React-FabricImage: 2b426cdbf6bd7363abbf76784c7051c54d86c3d6 - React-graphics: e61db2386171b95bb1ffad520d68392be9adb388 - React-hermes: babf4762ad4de8ee596a32e37abce10912f8de50 - React-ImageManager: 112eb60f39ae74bb6c5f24954e18d044a86d00c6 - React-jsi: 2b5ac5891540e049220404b355e912f278fc6a34 - React-jsiexecutor: 656ba4887ec676eabc515b8b28c33812d3a9a2a9 - React-jsinspector: 5fa6622840c9f969844256f9168f46f4ee739d5b - React-logger: 50f6fb35062c9c63c8eea2e666e126ec12427acb - React-NativeModulesApple: 4a32484e1ecb43870d9af1262985e6e5961a0418 - React-perflogger: fa3d795104cf245ff60370de6843a8fa5f526a99 - React-RCTActionSheet: 28c15479efa725e3ce7bf76bf76f297d0116a86d - React-RCTAnimation: b95a6f6604ac4878b82b34ae06581d6244c08121 - React-RCTAppDelegate: 4a79570d63463a925d6d478432d4e1c3573b4bcf - React-RCTBlob: bf2c20df0e89517e0a6517eaa0413a27d1e5e95d - React-RCTFabric: 468e436c6151afec3ebb7e6075b84d4793f60fd5 - React-RCTImage: 82da04ade89bf13268d9e397e5b705d4544a0663 - React-RCTLinking: e4b60682432f98fbdcdfe0d482d6212d5ff60fc0 - React-RCTNetwork: 095952edac0d4a173c60245e2aac2393f4f4b965 - React-RCTPushNotification: 161980862cbd0b22cb9d363a30ec983db1b6e7ec - React-RCTSettings: e915b49b5db378c0170030c8b194964433446bc9 - React-RCTTest: f3110bdb7d1801219feaa72eb4fce4132eb60c89 - React-RCTText: 4888f30ec5fbbcb69fe6a8d09d2ee1228618162d - React-RCTVibration: 66cfce46de86066b31e494920a46edf35f544297 - React-rendererdebug: 3b588d11f71c617006cd7d1b9e5d2f17225699bc - React-rncore: 733d298a323f728ca78ce0bfdd2d74e7de24e3a7 - React-runtimeexecutor: 4c4091dd5f5d770085640e945834911e1fdcdfe2 - React-utils: 7b3719566763c1e57bd5de9ffbda04bd8a6b9ac0 - ReactCommon: e110d3087b30694ab59b64dce0dd13a3a5c5bfdb - ReactCommon-Samples: c53e9ce4aaf39fd1a78e6feb4a9df0c8f9aa70a1 - ScreenshotManager: d39b964a374e5012e2b8c143e29ead86b1da6a3c + RCTRequired: 82c56a03b3efd524bfdb581a906add903f78f978 + RCTTypeSafety: 034ade4e3b36be976b8378f825ccadbe104fa852 + React: cb6dc75e09f32aeddb4d8fb58a394a67219a92fe + React-BridgelessApple: 849f20885c11e1af2adae038b6d342df7859d44c + React-BridgelessCore: c4bc485d1669e3bf0f25b257bb4cac2e72d0419e + React-callinvoker: bae59cbd6affd712bbfc703839dad868ff35069d + React-Codegen: 4986f11d93f42d109e7ba574bd00105955c18221 + React-Core: 300cfd5b0a8b04283079111a68ba580c4d594644 + React-CoreModules: b2a626b7880f5ba5434ddb36797d6c3050645069 + React-cxxreact: 87ced584a35f147307fc91d110db9f3a81c1d99a + React-debug: b8ca04c97389d8deb71159f7fbba395904b2d599 + React-Fabric: 039ddbb4734ece61c0b0870566c6636019923688 + React-FabricImage: 0b3ea28c3cfe3c44b0d9da7f8c089d36f1684808 + React-graphics: cb2b0d040a7f798ed14d7ce3caf07a89cb78e306 + React-ImageManager: 85e3d6600b740cfa25e079bd7d0c460a6ba6665b + React-jsc: e49efa048247735aa67be1440eba9d977f03879d + React-jserrorhandler: 13d74cf05cdcb78355b8ffb18b5d6c3bf7b4e465 + React-jsi: ecc314bc5f0625120ddfc9517edfa2f60b9c4252 + React-jsiexecutor: 6a0b5825828c4d3b452bf1485b3b841c36713c95 + React-jsinspector: bede0a6ac88f2463eafc1301239fe943adf06fa7 + React-jsitracing: 9c31143708c500579047b26ef7a82e91189329b2 + React-logger: c20eb15d006d5c303cf6bfbb11243c8d579d9f56 + React-Mapbuffer: f6997dcdedb2f6816a36b972d1a39ea278c17485 + React-nativeconfig: 614a27e2704609dd6501137b77d1278266beafa2 + React-NativeModulesApple: d8a757252dbcd08ac54cf1606e096c7ba4884669 + React-perflogger: c294d51cfc18b90caa1604ef3a0fe2dd76b9e15e + React-RCTActionSheet: 943bd5f540f3af1e5a149c13c4de81858edf718a + React-RCTAnimation: 2c4bb7f0f5734cffc722d08f0db0082b56f74f19 + React-RCTAppDelegate: 64e535f0d0b11a095e5839fa907ce7751d882267 + React-RCTBlob: 0d3a2bbd6e9d415cf9775083e71b5539a33eda56 + React-RCTFabric: 3c4c7f5ce155eb6a2697223d193e47bab4592c63 + React-RCTImage: bb95cc1d6ac1370dcebcc88b13938b31d93d5eff + React-RCTLinking: 1d65dcc1acf31b0824a07498b2a62fe0faa8c996 + React-RCTNetwork: 584d43bdefb0d73d90eec6146b79cafcc9242d00 + React-RCTPushNotification: 6e39862fcc7d8de4f243d1fa66836671d050d8d0 + React-RCTSettings: d98d83e8e9737f0a2c5fb2b05956ef31c102ae0b + React-RCTTest: d4004e03f9e5ca2607eb05bee5a0618b189a127a + React-RCTText: e9b0e8ecf0ab4f9fac58916433dcf8e8d5e5c2c1 + React-RCTVibration: ae65884c71d67f356396d6fcc44eec48b5afef70 + React-rendererdebug: e9e35b8c9c6fb17a38ab3bacc9f52c3c35a1fefa + React-rncore: 1eb30c961c5061f3ac07850e77f0038f0c29ac46 + React-runtimeexecutor: e1c32bc249dd3cf3919cb4664fd8dc84ef70cff7 + React-runtimescheduler: adc24d7aa23f30e8f4cd711b50a5b4180e8b33b0 + React-utils: 6d6dcf42bdbf8f4972e252bd031f34ccf105f0aa + ReactCommon: 39f00514ceeff66073c919ec2d97b299afa551ad + ReactCommon-Samples: b5f49b2e62f1a7e865197bb7daa2a66104bfed02 + ScreenshotManager: 870b88afa7fb6fce0f65587d5eaa8ddfa64a3748 SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 - Yoga: ce82a19f4baa38f649816c2ca67d76fac1830b49 + Yoga: 239f77be94241af2a02e7018fe6165a715bc25f1 + YogaKit: f782866e155069a2cca2517aafea43200b01fd5a PODFILE CHECKSUM: e220946495183a79874329aff76ec197027be224 diff --git a/packages/rn-tester/RNTester/AppDelegate.mm b/packages/rn-tester/RNTester/AppDelegate.mm index 1e8616f9ad0881..35274d73bc24ad 100644 --- a/packages/rn-tester/RNTester/AppDelegate.mm +++ b/packages/rn-tester/RNTester/AppDelegate.mm @@ -123,6 +123,11 @@ - (void)application:(__unused UIApplication *)application { return @{@"RNTMyNativeView" : RNTMyNativeViewComponentView.class}; } + +- (NSURL *)getBundleURL +{ + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"js/RNTesterApp.ios"]; +} #endif @end diff --git a/packages/rn-tester/RNTester/NativeExampleViews/FlexibleSizeExampleView.m b/packages/rn-tester/RNTester/NativeExampleViews/FlexibleSizeExampleView.mm similarity index 100% rename from packages/rn-tester/RNTester/NativeExampleViews/FlexibleSizeExampleView.m rename to packages/rn-tester/RNTester/NativeExampleViews/FlexibleSizeExampleView.mm diff --git a/packages/rn-tester/RNTester/NativeExampleViews/UpdatePropertiesExampleView.m b/packages/rn-tester/RNTester/NativeExampleViews/UpdatePropertiesExampleView.mm similarity index 100% rename from packages/rn-tester/RNTester/NativeExampleViews/UpdatePropertiesExampleView.m rename to packages/rn-tester/RNTester/NativeExampleViews/UpdatePropertiesExampleView.mm diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj index 3db35a22d66846..21f894ab822e40 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj +++ b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj @@ -9,8 +9,6 @@ /* Begin PBXBuildFile section */ 04157F50C11E9F16DDD69B17 /* libPods-RNTester.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F98312BF816A7F2688C036D /* libPods-RNTester.a */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 272E6B3F1BEA849E001FCF37 /* UpdatePropertiesExampleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.m */; }; - 27F441EC1BEBE5030039B79C /* FlexibleSizeExampleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.m */; }; 2DDEF0101F84BF7B00DBDF73 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2DDEF00F1F84BF7B00DBDF73 /* Images.xcassets */; }; 383889DA23A7398900D06C3E /* RCTConvert_UIColorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 383889D923A7398900D06C3E /* RCTConvert_UIColorTests.m */; }; 3D2AFAF51D646CF80089D1A3 /* legacy_image@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3D2AFAF41D646CF80089D1A3 /* legacy_image@2x.png */; }; @@ -19,6 +17,8 @@ 953D44E0A849F5064163EA24 /* libPods-RNTesterIntegrationTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F4A7C4C85AB0198A25D51E4 /* libPods-RNTesterIntegrationTests.a */; }; BE3BEE3556275C62F33864C8 /* libPods-RNTesterUnitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6144DEEE56C6C17B301A90E4 /* libPods-RNTesterUnitTests.a */; }; CD10C7A5290BD4EB0033E1ED /* RCTEventEmitterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CD10C7A4290BD4EB0033E1ED /* RCTEventEmitterTests.m */; }; + E62F11832A5C6580000BF1C8 /* FlexibleSizeExampleView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.mm */; }; + E62F11842A5C6584000BF1C8 /* UpdatePropertiesExampleView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.mm */; }; E7C1241A22BEC44B00DA25C0 /* RNTesterIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7C1241922BEC44B00DA25C0 /* RNTesterIntegrationTests.m */; }; E7DB20D122B2BAA6005AC45F /* RCTBundleURLProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7DB20A922B2BAA3005AC45F /* RCTBundleURLProviderTests.m */; }; E7DB20D222B2BAA6005AC45F /* RCTModuleInitNotificationRaceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7DB20AA22B2BAA3005AC45F /* RCTModuleInitNotificationRaceTests.m */; }; @@ -84,8 +84,8 @@ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = RNTester/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = RNTester/main.m; sourceTree = ""; }; 272E6B3B1BEA849E001FCF37 /* UpdatePropertiesExampleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UpdatePropertiesExampleView.h; path = RNTester/NativeExampleViews/UpdatePropertiesExampleView.h; sourceTree = ""; }; - 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UpdatePropertiesExampleView.m; path = RNTester/NativeExampleViews/UpdatePropertiesExampleView.m; sourceTree = ""; }; - 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FlexibleSizeExampleView.m; path = RNTester/NativeExampleViews/FlexibleSizeExampleView.m; sourceTree = ""; }; + 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = UpdatePropertiesExampleView.mm; path = RNTester/NativeExampleViews/UpdatePropertiesExampleView.mm; sourceTree = ""; }; + 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = FlexibleSizeExampleView.mm; path = RNTester/NativeExampleViews/FlexibleSizeExampleView.mm; sourceTree = ""; }; 27F441EA1BEBE5030039B79C /* FlexibleSizeExampleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FlexibleSizeExampleView.h; path = RNTester/NativeExampleViews/FlexibleSizeExampleView.h; sourceTree = ""; }; 2DDEF00F1F84BF7B00DBDF73 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RNTester/Images.xcassets; sourceTree = ""; }; 2F98312BF816A7F2688C036D /* libPods-RNTester.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -240,10 +240,10 @@ 272E6B3A1BEA846C001FCF37 /* NativeExampleViews */ = { isa = PBXGroup; children = ( - 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.m */, + 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.mm */, 27F441EA1BEBE5030039B79C /* FlexibleSizeExampleView.h */, 272E6B3B1BEA849E001FCF37 /* UpdatePropertiesExampleView.h */, - 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.m */, + 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.mm */, ); name = NativeExampleViews; sourceTree = ""; @@ -740,8 +740,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 272E6B3F1BEA849E001FCF37 /* UpdatePropertiesExampleView.m in Sources */, - 27F441EC1BEBE5030039B79C /* FlexibleSizeExampleView.m in Sources */, + E62F11842A5C6584000BF1C8 /* UpdatePropertiesExampleView.mm in Sources */, + E62F11832A5C6580000BF1C8 /* FlexibleSizeExampleView.mm in Sources */, 5C60EB1C226440DB0018C04F /* AppDelegate.mm in Sources */, 13B07FC11A68108700A75B9A /* main.m in Sources */, ); diff --git a/packages/rn-tester/android/app/build.gradle b/packages/rn-tester/android/app/build.gradle index a4d46e130a4c43..ae8f6204cd219e 100644 --- a/packages/rn-tester/android/app/build.gradle +++ b/packages/rn-tester/android/app/build.gradle @@ -89,8 +89,8 @@ repositories { } android { - buildToolsVersion = "33.0.0" - compileSdkVersion 33 + compileSdk 33 + buildToolsVersion = "33.0.1" namespace "com.facebook.react.uiapp" // Used to override the NDK path/version on internal CI or by allowing diff --git a/packages/virtualized-lists/Lists/ListMetricsAggregator.js b/packages/virtualized-lists/Lists/ListMetricsAggregator.js index 3fcb051525114b..46c58af2cc1735 100644 --- a/packages/virtualized-lists/Lists/ListMetricsAggregator.js +++ b/packages/virtualized-lists/Lists/ListMetricsAggregator.js @@ -8,6 +8,7 @@ * @format */ +import type {Layout} from 'react-native/Libraries/Types/CoreEventTypes'; import type {Props as VirtualizedListProps} from './VirtualizedListProps'; import {keyExtractor as defaultKeyExtractor} from './VirtualizeUtils'; @@ -23,7 +24,8 @@ export type CellMetrics = { */ length: number, /** - * Offset to the cell along the scrolling axis + * Distance between this cell and the start of the list along the scrolling + * axis */ offset: number, /** @@ -32,6 +34,13 @@ export type CellMetrics = { isMounted: boolean, }; +// TODO: `inverted` can be incorporated here if it is moved to an order +// based implementation instead of transform. +export type ListOrientation = { + horizontal: boolean, + rtl: boolean, +}; + /** * Subset of VirtualizedList props needed to calculate cell metrics */ @@ -44,52 +53,85 @@ export type CellMetricProps = { ... }; +type UnresolvedCellMetrics = { + index: number, + layout: Layout, + isMounted: boolean, + + // The length of list content at the time of layout is needed to correctly + // resolve flow relative offset in RTL. We are lazily notified of this after + // the layout of the cell, unless the cell relayout does not cause a length + // change. To keep stability, we use content length at time of query, or + // unmount if never queried. + listContentLength?: ?number, +}; + /** * Provides an interface to query information about the metrics of a list and its cells. */ export default class ListMetricsAggregator { _averageCellLength = 0; - _frames: {[string]: CellMetrics} = {}; + _cellMetrics: {[string]: UnresolvedCellMetrics} = {}; + _contentLength: ?number; _highestMeasuredCellIndex = 0; - _totalCellLength = 0; - _totalCellsMeasured = 0; + _measuredCellsLength = 0; + _measuredCellsCount = 0; + _orientation: ListOrientation = { + horizontal: false, + rtl: false, + }; /** * Notify the ListMetricsAggregator that a cell has been laid out. * * @returns whether the cell layout has changed since last notification */ - notifyCellLayout( + notifyCellLayout({ + cellIndex, + cellKey, + orientation, + layout, + }: { + cellIndex: number, cellKey: string, - index: number, - length: number, - offset: number, - ): boolean { - const next: CellMetrics = { - offset, - length, - index, + orientation: ListOrientation, + layout: Layout, + }): boolean { + this._invalidateIfOrientationChanged(orientation); + + const next: UnresolvedCellMetrics = { + index: cellIndex, + layout: layout, isMounted: true, }; - const curr = this._frames[cellKey]; + const curr = this._cellMetrics[cellKey]; + if ( !curr || - next.offset !== curr.offset || - next.length !== curr.length || - index !== curr.index + this._selectOffset(next.layout) !== this._selectOffset(curr.layout) || + this._selectLength(next.layout) !== this._selectLength(curr.layout) || + (curr.listContentLength != null && + curr.listContentLength !== this._contentLength) ) { - this._totalCellLength += next.length - (curr ? curr.length : 0); - this._totalCellsMeasured += curr ? 0 : 1; + if (curr) { + const dLength = + this._selectLength(next.layout) - this._selectLength(curr.layout); + this._measuredCellsLength += dLength; + } else { + this._measuredCellsLength += this._selectLength(next.layout); + this._measuredCellsCount += 1; + } + this._averageCellLength = - this._totalCellLength / this._totalCellsMeasured; - this._frames[cellKey] = next; + this._measuredCellsLength / this._measuredCellsCount; + this._cellMetrics[cellKey] = next; this._highestMeasuredCellIndex = Math.max( this._highestMeasuredCellIndex, - index, + cellIndex, ); return true; } else { - this._frames[cellKey].isMounted = true; + this._cellMetrics[cellKey].isMounted = true; return false; } } @@ -98,12 +140,31 @@ export default class ListMetricsAggregator { * Notify ListMetricsAggregator that a cell has been unmounted. */ notifyCellUnmounted(cellKey: string): void { - const curr = this._frames[cellKey]; + const curr = this._cellMetrics[cellKey]; if (curr) { - this._frames[cellKey] = {...curr, isMounted: false}; + this._cellMetrics[cellKey] = { + ...curr, + isMounted: false, + listContentLength: curr.listContentLength ?? this._contentLength, + }; } } + /** + * Notify ListMetricsAggregator that the lists content container has been laid out. + */ + notifyListContentLayout({ + orientation, + layout, + }: { + orientation: ListOrientation, + layout: $ReadOnly<{width: number, height: number}>, + }): void { + this._invalidateIfOrientationChanged(orientation); + const newLength = this._selectLength(layout); + this._contentLength = newLength; + } + /** * Return the average length of the cells which have been measured */ @@ -150,17 +211,20 @@ export default class ListMetricsAggregator { const {data, getItem, getItemCount, getItemLayout} = props; invariant( index >= 0 && index < getItemCount(data), - 'Tried to get frame for out of range index ' + index, + 'Tried to get metrics for out of range cell index ' + index, ); const keyExtractor = props.keyExtractor ?? defaultKeyExtractor; - const frame = this._frames[keyExtractor(getItem(data, index), index)]; - if (!frame || frame.index !== index) { - if (getItemLayout) { - const {length, offset} = getItemLayout(data, index); - return {index, length, offset, isMounted: true}; - } + const frame = this._cellMetrics[keyExtractor(getItem(data, index), index)]; + if (frame && frame.index === index) { + return this._resolveCellMetrics(frame); } - return frame; + + if (getItemLayout) { + const {length, offset} = getItemLayout(data, index); + return {index, length, offset, isMounted: true}; + } + + return null; } /** @@ -176,4 +240,93 @@ export default class ListMetricsAggregator { return frameMetrics.offset + remainder * frameMetrics.length; } } + + /** + * Returns the length of all ScrollView content along the scrolling axis. + */ + getContentLength(): number { + return this._contentLength ?? 0; + } + + /** + * Whether a content length has been observed + */ + hasContentLength(): boolean { + return this._contentLength != null; + } + + /** + * Converts a cartesian offset along the x or y axis to a flow-relative + * offset, (e.g. starting from the left in LTR, but right in RTL). + */ + flowRelativeOffset(layout: Layout, referenceContentLength?: ?number): number { + const {horizontal, rtl} = this._orientation; + + if (horizontal && rtl) { + const contentLength = referenceContentLength ?? this._contentLength; + invariant( + contentLength != null, + 'ListMetricsAggregator must be notified of list content layout before resolving offsets', + ); + return contentLength - this._selectOffset(layout); + } else { + return this._selectOffset(layout); + } + } + + /** + * Converts a flow-relative offset to a cartesian offset + */ + cartesianOffset(flowRelativeOffset: number): number { + const {horizontal, rtl} = this._orientation; + + if (horizontal && rtl) { + invariant( + this._contentLength != null, + 'ListMetricsAggregator must be notified of list content layout before resolving offsets', + ); + return this._contentLength - flowRelativeOffset; + } else { + return flowRelativeOffset; + } + } + + _invalidateIfOrientationChanged(orientation: ListOrientation): void { + if (orientation.rtl !== this._orientation.rtl) { + this._cellMetrics = {}; + } + + if (orientation.horizontal !== this._orientation.horizontal) { + this._averageCellLength = 0; + this._contentLength = 0; + this._highestMeasuredCellIndex = 0; + this._measuredCellsLength = 0; + this._measuredCellsCount = 0; + } + + this._orientation = orientation; + } + + _selectLength({ + width, + height, + }: $ReadOnly<{width: number, height: number, ...}>): number { + return this._orientation.horizontal ? width : height; + } + + _selectOffset({x, y}: $ReadOnly<{x: number, y: number, ...}>): number { + return this._orientation.horizontal ? x : y; + } + + _resolveCellMetrics(metrics: UnresolvedCellMetrics): CellMetrics { + metrics.listContentLength ??= this._contentLength; + const {index, layout, isMounted, listContentLength} = metrics; + + return { + index, + length: this._selectLength(layout), + isMounted, + offset: this.flowRelativeOffset(layout, listContentLength), + }; + } } diff --git a/packages/virtualized-lists/Lists/VirtualizedList.js b/packages/virtualized-lists/Lists/VirtualizedList.js index 50dad2f2dab389..e5c6abae613688 100644 --- a/packages/virtualized-lists/Lists/VirtualizedList.js +++ b/packages/virtualized-lists/Lists/VirtualizedList.js @@ -22,9 +22,11 @@ import type { RenderItemType, Separators, } from './VirtualizedListProps'; -import type {CellMetricProps} from './ListMetricsAggregator'; +import type {CellMetricProps, ListOrientation} from './ListMetricsAggregator'; import { + I18nManager, + Platform, RefreshControl, ScrollView, View, @@ -155,24 +157,8 @@ class VirtualizedList extends StateSafePureComponent { this._scrollMetrics.visibleLength, ); - if (this._scrollRef == null) { - return; - } - - if (this._scrollRef.scrollTo == null) { - console.warn( - 'No scrollTo method provided. This may be because you have two nested ' + - 'VirtualizedLists with the same orientation, or because you are ' + - 'using a custom component that does not implement scrollTo.', - ); - return; - } - - this._scrollRef.scrollTo( - horizontalOrDefault(this.props.horizontal) - ? {x: offset, animated} - : {y: offset, animated}, - ); + // TODO: consider using `ref.scrollToEnd` directly + this.scrollToOffset({animated, offset}); } // scrollToIndex may be janky without getItemLayout prop @@ -183,13 +169,8 @@ class VirtualizedList extends StateSafePureComponent { viewPosition?: number, ... }): $FlowFixMe { - const { - data, - horizontal, - getItemCount, - getItemLayout, - onScrollToIndexFailed, - } = this.props; + const {data, getItemCount, getItemLayout, onScrollToIndexFailed} = + this.props; const {animated, index, viewOffset, viewPosition} = params; invariant( index >= 0, @@ -236,22 +217,7 @@ class VirtualizedList extends StateSafePureComponent { (this._scrollMetrics.visibleLength - frame.length), ) - (viewOffset || 0); - if (this._scrollRef == null) { - return; - } - - if (this._scrollRef.scrollTo == null) { - console.warn( - 'No scrollTo method provided. This may be because you have two nested ' + - 'VirtualizedLists with the same orientation, or because you are ' + - 'using a custom component that does not implement scrollTo.', - ); - return; - } - - this._scrollRef.scrollTo( - horizontal ? {x: offset, animated} : {y: offset, animated}, - ); + this.scrollToOffset({offset, animated}); } // scrollToItem may be janky without getItemLayout prop. Required linear scan through items - @@ -286,12 +252,13 @@ class VirtualizedList extends StateSafePureComponent { */ scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) { const {animated, offset} = params; + const scrollRef = this._scrollRef; - if (this._scrollRef == null) { + if (scrollRef == null) { return; } - if (this._scrollRef.scrollTo == null) { + if (scrollRef.scrollTo == null) { console.warn( 'No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + @@ -300,11 +267,18 @@ class VirtualizedList extends StateSafePureComponent { return; } - this._scrollRef.scrollTo( - horizontalOrDefault(this.props.horizontal) - ? {x: offset, animated} - : {y: offset, animated}, - ); + const {horizontal, rtl} = this._orientation(); + if (horizontal && rtl && !this._listMetrics.hasContentLength()) { + console.warn( + 'scrollToOffset may not be called in RTL before content is laid out', + ); + return; + } + + scrollRef.scrollTo({ + animated, + ...this._cartesianScrollOffset(offset), + }); } recordInteraction() { @@ -621,7 +595,8 @@ class VirtualizedList extends StateSafePureComponent { const onEndReachedThreshold = onEndReachedThresholdOrDefault( props.onEndReachedThreshold, ); - const {contentLength, offset, visibleLength} = this._scrollMetrics; + const {offset, visibleLength} = this._scrollMetrics; + const contentLength = this._listMetrics.getContentLength(); const distanceFromEnd = contentLength - visibleLength - offset; // Wait until the scroll view metrics have been set up. And until then, @@ -858,15 +833,19 @@ class VirtualizedList extends StateSafePureComponent { props: Props, ): {first: number, last: number} { const itemCount = props.getItemCount(props.data); - const last = Math.min(itemCount - 1, cells.last); + const lastPossibleCellIndex = itemCount - 1; + // Constraining `last` may significantly shrink the window. Adjust `first` + // to expand the window if the new `last` results in a new window smaller + // than the number of cells rendered per batch. const maxToRenderPerBatch = maxToRenderPerBatchOrDefault( props.maxToRenderPerBatch, ); + const maxFirst = Math.max(0, lastPossibleCellIndex - maxToRenderPerBatch); return { - first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first), - last, + first: clamp(0, cells.first, maxFirst), + last: Math.min(lastPossibleCellIndex, cells.last), }; } @@ -1105,6 +1084,7 @@ class VirtualizedList extends StateSafePureComponent { style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style, + isInvertedVirtualizedList: this.props.inverted, maintainVisibleContentPosition: this.props.maintainVisibleContentPosition != null ? { @@ -1220,9 +1200,15 @@ class VirtualizedList extends StateSafePureComponent { new ChildListCollection(); _offsetFromParentVirtualizedList: number = 0; _prevParentOffset: number = 0; - // $FlowFixMe[missing-local-annot] - _scrollMetrics = { - contentLength: 0, + _scrollMetrics: { + dOffset: number, + dt: number, + offset: number, + timestamp: number, + velocity: number, + visibleLength: number, + zoomScale: number, + } = { dOffset: 0, dt: 10, offset: 0, @@ -1291,19 +1277,27 @@ class VirtualizedList extends StateSafePureComponent { } }; - _onCellLayout = (e: LayoutEvent, cellKey: string, index: number): void => { - const layout = e.nativeEvent.layout; - const offset = this._selectOffset(layout); - const length = this._selectLength(layout); - - const layoutHasChanged = this._listMetrics.notifyCellLayout( + _onCellLayout = ( + e: LayoutEvent, + cellKey: string, + cellIndex: number, + ): void => { + const layoutHasChanged = this._listMetrics.notifyCellLayout({ + cellIndex, cellKey, - index, - length, - offset, - ); + layout: e.nativeEvent.layout, + orientation: this._orientation(), + }); + if (layoutHasChanged) { - this._scheduleCellsToRenderUpdate(); + // TODO: We have not yet received parent content length, meaning we do not + // yet have up to date offsets in RTL. This means layout queries done + // when scheduling a new batch may not yet be correct. This is corrected + // when we schedule again in response to `onContentSizeChange`. + const {horizontal, rtl} = this._orientation(); + this._scheduleCellsToRenderUpdate({ + allowImmediateExecution: !(horizontal && rtl), + }); } this._triggerRemeasureForChildListsInCell(cellKey); @@ -1341,9 +1335,9 @@ class VirtualizedList extends StateSafePureComponent { this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => { this._offsetFromParentVirtualizedList = this._selectOffset({x, y}); - this._scrollMetrics.contentLength = this._selectLength({ - width, - height, + this._listMetrics.notifyListContentLayout({ + layout: {width, height}, + orientation: this._orientation(), }); const scrollMetrics = this._convertParentScrollMetrics( this.context.getScrollMetrics(), @@ -1415,7 +1409,7 @@ class VirtualizedList extends StateSafePureComponent { _renderDebugOverlay() { const normalize = this._scrollMetrics.visibleLength / - (this._scrollMetrics.contentLength || 1); + (this._listMetrics.getContentLength() || 1); const framesInLayout = []; const itemCount = this.props.getItemCount(this.props.data); for (let ii = 0; ii < itemCount; ii++) { @@ -1487,14 +1481,48 @@ class VirtualizedList extends StateSafePureComponent { : metrics.width; } - _selectOffset( + _flowRelativeScrollOffset( metrics: $ReadOnly<{ x: number, y: number, ... }>, + contentSize: $ReadOnly<{ + width: number, + height: number, + ... + }>, ): number { - return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x; + let offset = this._selectOffset(metrics); + + const {horizontal, rtl} = this._orientation(); + if (horizontal && rtl && Platform.OS !== 'ios') { + offset = this._selectLength(contentSize) - offset; + } + + return offset; + } + + _cartesianScrollOffset(offset: number): {x?: number, y?: number} { + const {horizontal, rtl} = this._orientation(); + const normalizedOffset = + horizontal && rtl && Platform.OS !== 'ios' + ? this._listMetrics.getContentLength() - offset + : offset; + + const cartOffset = this._listMetrics.cartesianOffset(normalizedOffset); + return horizontal ? {x: cartOffset} : {y: cartOffset}; + } + + _selectOffset({x, y}: $ReadOnly<{x: number, y: number, ...}>): number { + return this._orientation().horizontal ? x : y; + } + + _orientation(): ListOrientation { + return { + horizontal: horizontalOrDefault(this.props.horizontal), + rtl: I18nManager.isRTL, + }; } _maybeCallOnEdgeReached() { @@ -1512,9 +1540,10 @@ class VirtualizedList extends StateSafePureComponent { return; } - const {contentLength, visibleLength, offset} = this._scrollMetrics; + const {visibleLength, offset} = this._scrollMetrics; let distanceFromStart = offset; - let distanceFromEnd = contentLength - visibleLength - offset; + let distanceFromEnd = + this._listMetrics.getContentLength() - visibleLength - offset; // Especially when oERT is zero it's necessary to 'floor' very small distance values to be 0 // since debouncing causes us to not fire this event for every single "pixel" we scroll and can thus @@ -1548,9 +1577,9 @@ class VirtualizedList extends StateSafePureComponent { onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && isWithinEndThreshold && - this._scrollMetrics.contentLength !== this._sentEndForContentLength + this._listMetrics.getContentLength() !== this._sentEndForContentLength ) { - this._sentEndForContentLength = this._scrollMetrics.contentLength; + this._sentEndForContentLength = this._listMetrics.getContentLength(); onEndReached({distanceFromEnd}); } @@ -1561,9 +1590,9 @@ class VirtualizedList extends StateSafePureComponent { onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && - this._scrollMetrics.contentLength !== this._sentStartForContentLength + this._listMetrics.getContentLength() !== this._sentStartForContentLength ) { - this._sentStartForContentLength = this._scrollMetrics.contentLength; + this._sentStartForContentLength = this._listMetrics.getContentLength(); onStartReached({distanceFromStart}); } @@ -1605,7 +1634,10 @@ class VirtualizedList extends StateSafePureComponent { if (this.props.onContentSizeChange) { this.props.onContentSizeChange(width, height); } - this._scrollMetrics.contentLength = this._selectLength({height, width}); + this._listMetrics.notifyListContentLayout({ + layout: {width, height}, + orientation: this._orientation(), + }); this._scheduleCellsToRenderUpdate(); this._maybeCallOnEdgeReached(); }; @@ -1623,7 +1655,7 @@ class VirtualizedList extends StateSafePureComponent { // Child's visible length is the same as its parent's const visibleLength = metrics.visibleLength; const dOffset = offset - this._scrollMetrics.offset; - const contentLength = this._scrollMetrics.contentLength; + const contentLength = this._listMetrics.getContentLength(); return { visibleLength, @@ -1643,11 +1675,14 @@ class VirtualizedList extends StateSafePureComponent { const timestamp = e.timeStamp; let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement); let contentLength = this._selectLength(e.nativeEvent.contentSize); - let offset = this._selectOffset(e.nativeEvent.contentOffset); + let offset = this._flowRelativeScrollOffset( + e.nativeEvent.contentOffset, + e.nativeEvent.contentSize, + ); let dOffset = offset - this._scrollMetrics.offset; if (this._isNestedWithSameOrientation()) { - if (this._scrollMetrics.contentLength === 0) { + if (this._listMetrics.getContentLength() === 0) { // Ignore scroll events until onLayout has been called and we // know our offset from our offset from our parent return; @@ -1682,7 +1717,6 @@ class VirtualizedList extends StateSafePureComponent { // For invalid negative values (w/ RTL), set this to 1. const zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale; this._scrollMetrics = { - contentLength, dt, dOffset, offset, @@ -1708,7 +1742,34 @@ class VirtualizedList extends StateSafePureComponent { this._scheduleCellsToRenderUpdate(); }; - _scheduleCellsToRenderUpdate() { + _scheduleCellsToRenderUpdate(opts?: {allowImmediateExecution?: boolean}) { + const allowImmediateExecution = opts?.allowImmediateExecution ?? true; + + // Only trigger high-priority updates if we've actually rendered cells, + // and with that size estimate, accurately compute how many cells we should render. + // Otherwise, it would just render as many cells as it can (of zero dimension), + // each time through attempting to render more (limited by maxToRenderPerBatch), + // starving the renderer from actually laying out the objects and computing _averageCellLength. + // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate + // We shouldn't do another hipri cellToRenderUpdate + if ( + allowImmediateExecution && + this._shouldRenderWithPriority() && + (this._listMetrics.getAverageCellLength() || this.props.getItemLayout) && + !this._hiPriInProgress + ) { + this._hiPriInProgress = true; + // Don't worry about interactions when scrolling quickly; focus on filling content as fast + // as possible. + this._updateCellsToRenderBatcher.dispose({abort: true}); + this._updateCellsToRender(); + return; + } else { + this._updateCellsToRenderBatcher.schedule(); + } + } + + _shouldRenderWithPriority(): boolean { const {first, last} = this.state.cellsAroundViewport; const {offset, visibleLength, velocity} = this._scrollMetrics; const itemCount = this.props.getItemCount(this.props.data); @@ -1743,27 +1804,8 @@ class VirtualizedList extends StateSafePureComponent { distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength)); } - // Only trigger high-priority updates if we've actually rendered cells, - // and with that size estimate, accurately compute how many cells we should render. - // Otherwise, it would just render as many cells as it can (of zero dimension), - // each time through attempting to render more (limited by maxToRenderPerBatch), - // starving the renderer from actually laying out the objects and computing _averageCellLength. - // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate - // We shouldn't do another hipri cellToRenderUpdate - if ( - hiPri && - (this._listMetrics.getAverageCellLength() || this.props.getItemLayout) && - !this._hiPriInProgress - ) { - this._hiPriInProgress = true; - // Don't worry about interactions when scrolling quickly; focus on filling content as fast - // as possible. - this._updateCellsToRenderBatcher.dispose({abort: true}); - this._updateCellsToRender(); - return; - } else { - this._updateCellsToRenderBatcher.schedule(); - } + + return hiPri; } _onScrollBeginDrag = (e: ScrollEvent): void => { @@ -1937,9 +1979,10 @@ class VirtualizedList extends StateSafePureComponent { } const styles = StyleSheet.create({ - verticallyInverted: { - transform: [{scaleY: -1}], - }, + verticallyInverted: + Platform.OS === 'android' + ? {transform: [{scale: -1}]} + : {transform: [{scaleY: -1}]}, horizontallyInverted: { transform: [{scaleX: -1}], }, diff --git a/packages/virtualized-lists/Lists/__tests__/VirtualizedList-test.js b/packages/virtualized-lists/Lists/__tests__/VirtualizedList-test.js index c030e8a2d7e690..774a2473556bc1 100644 --- a/packages/virtualized-lists/Lists/__tests__/VirtualizedList-test.js +++ b/packages/virtualized-lists/Lists/__tests__/VirtualizedList-test.js @@ -2224,6 +2224,53 @@ it('handles maintainVisibleContentPosition', () => { expect(component).toMatchSnapshot(); }); +it('handles maintainVisibleContentPosition when anchor moves before minIndexForVisible', () => { + const items = generateItems(20); + const ITEM_HEIGHT = 10; + + // Render a list with `minIndexForVisible: 1` + let component; + ReactTestRenderer.act(() => { + component = ReactTestRenderer.create( + , + ); + }); + + ReactTestRenderer.act(() => { + simulateLayout(component, { + viewport: {width: 10, height: 50}, + content: {width: 10, height: items.length * ITEM_HEIGHT}, + }); + + performAllBatches(); + }); + + expect(component).toMatchSnapshot(); + + // Remove the first item to shift the previous anchor to be before + // `minIndexForVisible`. + const [, ...restItems] = items; + ReactTestRenderer.act(() => { + component.update( + , + ); + }); + + expect(component).toMatchSnapshot(); +}); + function generateItems(count, startKey = 0) { return Array(count) .fill() diff --git a/packages/virtualized-lists/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap b/packages/virtualized-lists/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap index b877e3da84d999..d4ef29177dfa9d 100644 --- a/packages/virtualized-lists/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +++ b/packages/virtualized-lists/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap @@ -1014,6 +1014,7 @@ exports[`VirtualizedList renders all the bells and whistles 1`] = ` getItemLayout={[Function]} invertStickyHeaders={true} inverted={true} + isInvertedVirtualizedList={true} keyExtractor={[Function]} onContentSizeChange={[Function]} onLayout={[Function]} @@ -3658,6 +3659,273 @@ exports[`handles maintainVisibleContentPosition 3`] = ` `; +exports[`handles maintainVisibleContentPosition when anchor moves before minIndexForVisible 1`] = ` + + + + + + + + + + + + + + + + + + + + +`; + +exports[`handles maintainVisibleContentPosition when anchor moves before minIndexForVisible 2`] = ` + + + + + + + + + + + + + + + + + +`; + exports[`initially renders nothing when initialNumToRender is 0 1`] = ` =12.12.47", "@types/node@>=13.7.0": - version "18.7.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.17.tgz#52438111ea98f77475470fc62d79b9eb96bb2c92" - integrity sha512-0UyfUnt02zIuqp7yC8RYtDkp/vo8bFaQ13KkSEvUAohPOAlnVNbj5Fi3fgPSuwzakS+EvvnnZ4x9y7i6ASaSPQ== +"@types/method-override@0.0.32": + version "0.0.32" + resolved "https://registry.yarnpkg.com/@types/method-override/-/method-override-0.0.32.tgz#9593e3d101f9d46f6222e5a83c59d203b1dcf172" + integrity sha512-Vf9AohOlANmhNswCbkdRG3p+tYcq1+63O+ex1UoNIVYWW3tO8Mx6Z+5G1R8DENeC6/t1SiDJS+ph6ACKpryokg== + dependencies: + "@types/express" "*" -"@types/node@^14.14.35": - version "14.18.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.28.tgz#ddb82da2fff476a8e827e8773c84c19d9c235278" - integrity sha512-CK2fnrQlIgKlCV3N2kM+Gznb5USlwA1KFX3rJVHmgVk6NJxFPuQ86pAcvKnu37IA4BGlSRz7sEE1lHL1aLZ/eQ== +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/mv@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@types/mv/-/mv-2.1.2.tgz#923dfbaf8971eade8c19ac53a65a81ab3151b467" + integrity sha512-IvAjPuiQ2exDicnTrMidt1m+tj3gZ60BM0PaoRsU0m9Cn+lrOyemuO9Tf8CvHFmXlxMjr1TVCfadi9sfwbSuKg== + +"@types/ncp@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/ncp/-/ncp-2.0.5.tgz#5c53b229a321946102a188b603306162137f4fb9" + integrity sha512-ocK0p8JuFmX7UkMabFPjY0F7apPvQyLWt5qtdvuvQEBz9i4m2dbzV+6L1zNaUp042RfnL6pHnxDE53OH6XQ9VQ== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.0.0": + version "18.16.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.14.tgz#ab67bb907f1146afc6fedb9ce60ae8a99c989631" + integrity sha512-+ImzUB3mw2c5ISJUq0punjDilUQ5GnUim0ZRvchHIWJmOC0G+p0kzhXBqj6cDjK0QdPFwzrHWgrJp3RPvCG5qg== + +"@types/node@^14.14.35": + version "14.18.28" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.28.tgz#ddb82da2fff476a8e827e8773c84c19d9c235278" + integrity sha512-CK2fnrQlIgKlCV3N2kM+Gznb5USlwA1KFX3rJVHmgVk6NJxFPuQ86pAcvKnu37IA4BGlSRz7sEE1lHL1aLZ/eQ== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/npmlog@4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.4.tgz#30eb872153c7ead3e8688c476054ddca004115f6" + integrity sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ== "@types/parsimmon@^1.10.1": version "1.10.6" resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.6.tgz#8fcf95990514d2a7624aa5f630c13bf2427f9cdd" integrity sha512-FwAQwMRbkhx0J6YELkwIpciVzCcgEqXEbIrIn3a2P5d3kGEHQ3wVhlN3YdVepYP+bZzCYO6OjmD4o9TGOZ40rA== +"@types/pluralize@0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/pluralize/-/pluralize-0.0.29.tgz#6ffa33ed1fc8813c469b859681d09707eb40d03c" + integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA== + "@types/prettier@^2.1.5": version "2.7.0" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc" @@ -2774,6 +3114,16 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + "@types/react@^18.0.18": version "18.0.20" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.20.tgz#e4c36be3a55eb5b456ecf501bd4a00fd4fd0c9ab" @@ -2783,6 +3133,13 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/readdir-glob@*": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/readdir-glob/-/readdir-glob-1.1.1.tgz#27ac2db283e6aa3d110b14ff9da44fcd1a5c38b1" + integrity sha512-ImM6TmoF8bgOwvehGviEj3tRdRBbQujr1N+0ypaln/GWjaerOB26jb93vsRHmdMtvVQZQebOlqt2HROark87mQ== + dependencies: + "@types/node" "*" + "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -2795,16 +3152,93 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== -"@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== +"@types/semver@7.5.0", "@types/semver@^7.3.12": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-favicon@2.5.4": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@types/serve-favicon/-/serve-favicon-2.5.4.tgz#8df8a13633df56e2579f8597f5741a370ed5c1df" + integrity sha512-ly+yd6J/1myO40DKhZGx835/e+DXuLzA2J6dsRyBOzNnQoCsnGcuqkUkMmJD6Q8K9CSZOf+CyxL707WHa1PZGA== + dependencies: + "@types/express" "*" + +"@types/serve-static@*": + version "1.15.1" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" + integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/shell-quote@1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@types/shell-quote/-/shell-quote-1.7.1.tgz#2d059091214a02c29f003f591032172b2aff77e8" + integrity sha512-SWZ2Nom1pkyXCDohRSrkSKvDh8QOG9RfAsrt5/NsPQC4UQJ55eG0qClA40I+Gkez4KTQ0uDUT8ELRXThf3J5jw== "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/supports-color@8.1.1": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.1.tgz#1b44b1b096479273adf7f93c75fc4ecc40a61ee4" + integrity sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw== + +"@types/teen_process@2.0.0", "@types/teen_process@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/teen_process/-/teen_process-2.0.0.tgz#b8ee411ee47d1a08bf3222056d7b10ad35ee3330" + integrity sha512-Kb0NjBT9cJXg0mjkmYJbA1WM+4EcEpbUfLXxzKhyAihNU0ipuqRyOolTEB2nDU8D8aCI6EcBLaHbSVefED8lGQ== + dependencies: + "@types/node" "*" + +"@types/triple-beam@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8" + integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== + +"@types/ua-parser-js@^0.7.33": + version "0.7.36" + resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz#9bd0b47f26b5a3151be21ba4ce9f5fa457c5f190" + integrity sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ== + +"@types/uuid@9.0.2": + version "9.0.2" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.2.tgz#ede1d1b1e451548d44919dc226253e32a6952c4b" + integrity sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ== + +"@types/which@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/which/-/which-3.0.0.tgz#849afdd9fdcb0b67339b9cfc80fa6ea4e0253fc5" + integrity sha512-ASCxdbsrwNfSMXALlC3Decif9rwDMu+80KGp5zI2RLRotfMsTv7fHL8W8VDp24wymzDyIFudhUeSCugrgRFfHQ== + +"@types/which@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/which/-/which-1.3.2.tgz#9c246fc0c93ded311c8512df2891fb41f6227fdf" + integrity sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA== + +"@types/wrap-ansi@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd" + integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== + +"@types/ws@8.5.5": + version "8.5.5" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" + integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "15.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" @@ -2838,22 +3272,14 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.30.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.37.0.tgz#5ccdd5d9004120f28fc6e717fb4b5c9bddcfbc04" - integrity sha512-Fde6W0IafXktz1UlnhGkrrmnnGpAo1kyX7dnyHHVrmwJOn72Oqm3eYtddrpOwwel2W8PAK9F3pIL5S+lfoM0og== +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== dependencies: - "@typescript-eslint/scope-manager" "5.37.0" - "@typescript-eslint/type-utils" "5.37.0" - "@typescript-eslint/utils" "5.37.0" - debug "^4.3.4" - functional-red-black-tree "^1.0.1" - ignore "^5.2.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" + "@types/node" "*" -"@typescript-eslint/eslint-plugin@^5.57.1": +"@typescript-eslint/eslint-plugin@^5.30.0", "@typescript-eslint/eslint-plugin@^5.57.1": version "5.59.5" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.5.tgz#f156827610a3f8cefc56baeaa93cd4a5f32966b4" integrity sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg== @@ -2869,17 +3295,7 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.30.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.37.0.tgz#c382077973f3a4ede7453fb14cadcad3970cbf3b" - integrity sha512-01VzI/ipYKuaG5PkE5+qyJ6m02fVALmMPY3Qq5BHflDx3y4VobbLdHQkSMg9VPRS4KdNt4oYTMaomFoHonBGAw== - dependencies: - "@typescript-eslint/scope-manager" "5.37.0" - "@typescript-eslint/types" "5.37.0" - "@typescript-eslint/typescript-estree" "5.37.0" - debug "^4.3.4" - -"@typescript-eslint/parser@^5.57.1": +"@typescript-eslint/parser@^5.30.0", "@typescript-eslint/parser@^5.57.1": version "5.59.5" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.5.tgz#63064f5eafbdbfb5f9dfbf5c4503cdf949852981" integrity sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw== @@ -2889,22 +3305,6 @@ "@typescript-eslint/typescript-estree" "5.59.5" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.37.0.tgz#044980e4f1516a774a418dafe701a483a6c9f9ca" - integrity sha512-F67MqrmSXGd/eZnujjtkPgBQzgespu/iCZ+54Ok9X5tALb9L2v3G+QBSoWkXG0p3lcTJsL+iXz5eLUEdSiJU9Q== - dependencies: - "@typescript-eslint/types" "5.37.0" - "@typescript-eslint/visitor-keys" "5.37.0" - -"@typescript-eslint/scope-manager@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz#74b28ac9a3fc8166f04e806c957adb8c1fd00536" - integrity sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg== - dependencies: - "@typescript-eslint/types" "5.54.0" - "@typescript-eslint/visitor-keys" "5.54.0" - "@typescript-eslint/scope-manager@5.59.5": version "5.59.5" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz#33ffc7e8663f42cfaac873de65ebf65d2bce674d" @@ -2913,16 +3313,6 @@ "@typescript-eslint/types" "5.59.5" "@typescript-eslint/visitor-keys" "5.59.5" -"@typescript-eslint/type-utils@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.37.0.tgz#43ed2f567ada49d7e33a6e4b6f9babd060445fe5" - integrity sha512-BSx/O0Z0SXOF5tY0bNTBcDEKz2Ec20GVYvq/H/XNKiUorUFilH7NPbFUuiiyzWaSdN3PA8JV0OvYx0gH/5aFAQ== - dependencies: - "@typescript-eslint/typescript-estree" "5.37.0" - "@typescript-eslint/utils" "5.37.0" - debug "^4.3.4" - tsutils "^3.21.0" - "@typescript-eslint/type-utils@5.59.5": version "5.59.5" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.5.tgz#485b0e2c5b923460bc2ea6b338c595343f06fc9b" @@ -2933,47 +3323,11 @@ debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.37.0.tgz#09e4870a5f3af7af3f84e08d792644a87d232261" - integrity sha512-3frIJiTa5+tCb2iqR/bf7XwU20lnU05r/sgPJnRpwvfZaqCJBrl8Q/mw9vr3NrNdB/XtVyMA0eppRMMBqdJ1bA== - -"@typescript-eslint/types@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.0.tgz#7d519df01f50739254d89378e0dcac504cab2740" - integrity sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ== - "@typescript-eslint/types@5.59.5": version "5.59.5" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.5.tgz#e63c5952532306d97c6ea432cee0981f6d2258c7" integrity sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w== -"@typescript-eslint/typescript-estree@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.37.0.tgz#956dcf5c98363bcb97bdd5463a0a86072ff79355" - integrity sha512-JkFoFIt/cx59iqEDSgIGnQpCTRv96MQnXCYvJi7QhBC24uyuzbD8wVbajMB1b9x4I0octYFJ3OwjAwNqk1AjDA== - dependencies: - "@typescript-eslint/types" "5.37.0" - "@typescript-eslint/visitor-keys" "5.37.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz#f6f3440cabee8a43a0b25fa498213ebb61fdfe99" - integrity sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ== - dependencies: - "@typescript-eslint/types" "5.54.0" - "@typescript-eslint/visitor-keys" "5.54.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.59.5": version "5.59.5" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz#9b252ce55dd765e972a7a2f99233c439c5101e42" @@ -2987,19 +3341,7 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.37.0", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.30.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.37.0.tgz#7784cb8e91390c4f90ccaffd24a0cf9874df81b2" - integrity sha512-jUEJoQrWbZhmikbcWSMDuUSxEE7ID2W/QCV/uz10WtQqfOuKZUqFGjqLJ+qhDd17rjgp+QJPqTdPIBWwoob2NQ== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.37.0" - "@typescript-eslint/types" "5.37.0" - "@typescript-eslint/typescript-estree" "5.37.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/utils@5.59.5": +"@typescript-eslint/utils@5.59.5", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.30.0", "@typescript-eslint/utils@^5.47.1": version "5.59.5" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.5.tgz#15b3eb619bb223302e60413adb0accd29c32bcae" integrity sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA== @@ -3013,36 +3355,6 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@^5.47.1": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.0.tgz#3db758aae078be7b54b8ea8ea4537ff6cd3fbc21" - integrity sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.54.0" - "@typescript-eslint/types" "5.54.0" - "@typescript-eslint/typescript-estree" "5.54.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.37.0.tgz#7b72dd343295ea11e89b624995abc7103c554eee" - integrity sha512-Hp7rT4cENBPIzMwrlehLW/28EVCOcE9U1Z1BQTc8EA8v5qpr7GRGuG+U58V5tTY48zvUOA3KHvw3rA8tY9fbdA== - dependencies: - "@typescript-eslint/types" "5.37.0" - eslint-visitor-keys "^3.3.0" - -"@typescript-eslint/visitor-keys@5.54.0": - version "5.54.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz#846878afbf0cd67c19cfa8d75947383d4490db8f" - integrity sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA== - dependencies: - "@typescript-eslint/types" "5.54.0" - eslint-visitor-keys "^3.3.0" - "@typescript-eslint/visitor-keys@5.59.5": version "5.59.5" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz#ba5b8d6791a13cf9fea6716af1e7626434b29b9b" @@ -3051,6 +3363,62 @@ "@typescript-eslint/types" "5.59.5" eslint-visitor-keys "^3.3.0" +"@wdio/config@7.31.1": + version "7.31.1" + resolved "https://registry.yarnpkg.com/@wdio/config/-/config-7.31.1.tgz#53550a164c970403628525ecdc5e0c3f96a0ff30" + integrity sha512-WAfswbCatwiaDVqy6kfF/5T8/WS/US/SRhBGUFrfBuGMIe+RRoHgy7jURFWSvUIE7CNHj8yvs46fLUcxhXjzcQ== + dependencies: + "@types/glob" "^8.1.0" + "@wdio/logger" "7.26.0" + "@wdio/types" "7.30.2" + "@wdio/utils" "7.30.2" + deepmerge "^4.0.0" + glob "^8.0.3" + +"@wdio/logger@7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-7.26.0.tgz#2c105a00f63a81d52de969fef5a54a9035146b2d" + integrity sha512-kQj9s5JudAG9qB+zAAcYGPHVfATl2oqKgqj47yjehOQ1zzG33xmtL1ArFbQKWhDG32y1A8sN6b0pIqBEIwgg8Q== + dependencies: + chalk "^4.0.0" + loglevel "^1.6.0" + loglevel-plugin-prefix "^0.8.4" + strip-ansi "^6.0.0" + +"@wdio/protocols@7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@wdio/protocols/-/protocols-7.27.0.tgz#8e2663ec877dce7a5f76b021209c18dd0132e853" + integrity sha512-hT/U22R5i3HhwPjkaKAG0yd59eaOaZB0eibRj2+esCImkb5Y6rg8FirrlYRxIGFVBl0+xZV0jKHzR5+o097nvg== + +"@wdio/repl@7.30.2": + version "7.30.2" + resolved "https://registry.yarnpkg.com/@wdio/repl/-/repl-7.30.2.tgz#a92592078cb892d5bd14c2b300ef01ae6c8baf90" + integrity sha512-aW4nuMI+gbRmxmL4jMarBjuiQ+cFscr/8jHDt5hGx/gc/f7ifrZa4t6M5H8vFIKsvjUwl9lZRiVO4NVvvp6+cg== + dependencies: + "@wdio/utils" "7.30.2" + +"@wdio/types@7.30.2": + version "7.30.2" + resolved "https://registry.yarnpkg.com/@wdio/types/-/types-7.30.2.tgz#0baa4b8249aa1d98a545144e6fb494f1b186b24f" + integrity sha512-uZ8o7FX8RyBsaXiOWa59UKTCHTtADNvOArYTcHNEIzt+rh4JdB/uwqfc8y4TCNA2kYm7PWaQpUFwpStLeg0H1Q== + dependencies: + "@types/node" "^18.0.0" + got "^11.8.1" + +"@wdio/utils@7.30.2": + version "7.30.2" + resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-7.30.2.tgz#d4642c3b8333f3f2ae9d46229098c0a77c3f887b" + integrity sha512-np7I+smszFUennbQKdzbMN/zUL3s3EZq9pCCUcTRjjs9TE4tnn0wfmGdoz2o7REYu6kn9NfFFJyVIM2VtBbKEA== + dependencies: + "@wdio/logger" "7.26.0" + "@wdio/types" "7.30.2" + p-iteration "^1.1.8" + +"@xmldom/xmldom@0.8.8", "@xmldom/xmldom@^0.x": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.8.tgz#d0d11511cbc1de77e53342ad1546a4d487d6ea72" + integrity sha512-0LNz4EY8B/8xXY86wMrQ4tz6zEHZv9ehFMJPm8u2gq5lQ71cfRKdaKyxfJAx5aUoyzx0qzgURblTisPGgz3d+Q== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -3058,15 +3426,7 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@^1.3.7, accepts@~1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -accepts@~1.3.7: +accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -3084,6 +3444,15 @@ acorn@^8.5.0, acorn@^8.8.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +adbkit-apkreader@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/adbkit-apkreader/-/adbkit-apkreader-3.2.0.tgz#8d0bb1f733969e959992095ed7f2a8d658ec97a5" + integrity sha512-QwsxPYCqWSmCAiW/A4gq0eytb4jtZc7WNbECIhLCRfGEB38oXzIV/YkTpkOTQFKSg3S4Svb6y///qOUH7UrWWw== + dependencies: + bluebird "^3.4.7" + debug "~4.1.1" + yauzl "^2.7.0" + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -3091,6 +3460,23 @@ agent-base@6: dependencies: debug "4" +ajv-formats@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv@8.12.0, ajv@^8.0.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -3137,6 +3523,16 @@ ansi-regex@^5.0.0, ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-sequence-parser@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz#4d790f31236ac20366b23b3916b789e1bde39aed" + integrity sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -3162,6 +3558,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -3175,11 +3576,310 @@ appdirsjs@^1.2.4: resolved "https://registry.yarnpkg.com/appdirsjs/-/appdirsjs-1.2.4.tgz#3ab582acc9fdfaaa0c1f81b3a25422ad4d95f9d4" integrity sha512-WO5StDORR6JF/xYnXk/Fm0yu+iULaV5ULKuUw0Tu+jbgiTlSquaWBCgbpnsHLMXldf+fM3Gxn5p7vjond7He6w== +appium-adb@^9.11.2, appium-adb@^9.13.1: + version "9.14.1" + resolved "https://registry.yarnpkg.com/appium-adb/-/appium-adb-9.14.1.tgz#e2cedc9966e014fffd39f874bd2fbb6dba2075f4" + integrity sha512-FNI641kzCLTm/KC1mMeASYeaphmp+H4kbjH07dei1+jyu1zlcEhRncv8xzJU8td4ZUQMwq0pP1ScKkzDzK2QvQ== + dependencies: + "@appium/support" "^4.0.0" + adbkit-apkreader "^3.1.2" + async-lock "^1.0.0" + asyncbox "^2.6.0" + bluebird "^3.4.7" + ini "^3.0.0" + lodash "^4.0.0" + lru-cache "^7.3.0" + semver "^7.0.0" + source-map-support "^0.x" + teen_process "^2.0.1" + utf7 "^1.0.2" + +appium-android-driver@^5.14.0: + version "5.14.0" + resolved "https://registry.yarnpkg.com/appium-android-driver/-/appium-android-driver-5.14.0.tgz#bd316a6daacf5e32de3f94cced18f47f5f69d828" + integrity sha512-YNWAB7UH4bhXdImTSqQeLDJafL81WFX4WcA8sLuRSf3KmwilbqGzQK+xJ2PJ09L/zCBJNQ2NRHiQ1lUpWXupJA== + dependencies: + appium-adb "^9.11.2" + appium-chromedriver "^5.2.0" + asyncbox "^2.8.0" + axios "^1.x" + bluebird "^3.4.7" + io.appium.settings "^5.0.0" + lodash "^4.17.4" + lru-cache "^7.3.0" + moment "^2.24.0" + moment-timezone "^0.5.26" + portfinder "^1.0.6" + portscanner "2.2.0" + semver "^7.0.0" + shared-preferences-builder "^0.x" + source-map-support "^0.x" + teen_process "^2.0.0" + ws "^8.0.0" + +appium-chromedriver@^5.2.0, appium-chromedriver@^5.3.1: + version "5.4.2" + resolved "https://registry.yarnpkg.com/appium-chromedriver/-/appium-chromedriver-5.4.2.tgz#e9f89abd410afae2dfa9900b89dc9edb52707012" + integrity sha512-CP83gd4hJd7kmM5VtAT4BBwnPmBLwayF6ZFk64CXLJ9pNrBeHKzrF5Qhwe/bus884zWjkPCMtiqrdfuABmGEZg== + dependencies: + "@appium/base-driver" "^9.1.0" + "@appium/support" "^4.0.0" + "@babel/runtime" "^7.0.0" + "@xmldom/xmldom" "^0.x" + asyncbox "^2.0.2" + axios "^1.x" + bluebird "^3.5.1" + compare-versions "^5.0.0" + fancy-log "^2.0.0" + lodash "^4.17.4" + semver "^7.0.0" + source-map-support "^0.x" + teen_process "^2.0.0" + xpath "^0.x" + +appium-idb@1.6.12: + version "1.6.12" + resolved "https://registry.yarnpkg.com/appium-idb/-/appium-idb-1.6.12.tgz#057da16d4f3a5b9a043f1497614cc1cdf742a6a3" + integrity sha512-61FdUobouOlOyP9VBSAw9es/0ut7g5IpP8ZKuglDg/oPanyZ9pEG7S788d5oQeL7UM65Naek9cONAbFdO9iyDA== + dependencies: + "@appium/support" "^4.0.0" + "@babel/runtime" "^7.0.0" + asyncbox "^2.5.2" + bluebird "^3.1.1" + lodash "^4.0.0" + source-map-support "^0.x" + teen_process "^2.0.1" + +appium-ios-device@2.5.3, appium-ios-device@^2.0.0, appium-ios-device@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/appium-ios-device/-/appium-ios-device-2.5.3.tgz#67223a1c6ff0e93c6e17373672a8360749c8098f" + integrity sha512-0SGu88wVgvAT4p6Z5I/mPj+CgpRomNYZJZ0GZ5pXmD8SiSxlE6CRBCzW+aMHmaCl/mzbX7WfEc5plAvWkIouxA== + dependencies: + "@appium/support" "^4.0.0" + "@babel/runtime" "^7.0.0" + asyncbox "^2.9.2" + bluebird "^3.1.1" + bplist-creator "^0.x" + bplist-parser "^0.x" + lodash "^4.17.15" + semver "^7.0.0" + source-map-support "^0.x" + uuid "^9.0.0" + +appium-ios-simulator@5.1.0, appium-ios-simulator@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/appium-ios-simulator/-/appium-ios-simulator-5.1.0.tgz#3f3b56fa1d21871bb5e310482eae72931596f04a" + integrity sha512-qrplEwVcWh5Z9hCHMiv2HYqQB0wdOcb40BxQNu73dTWxefMcd4raNgWYzxHveR4d2VTLtx8mMIV82dfT8xnGdg== + dependencies: + "@appium/support" "^4.0.0" + "@babel/runtime" "^7.0.0" + "@xmldom/xmldom" "^0.x" + appium-xcode "^5.0.0" + async-lock "^1.0.0" + asyncbox "^2.3.1" + bluebird "^3.5.1" + lodash "^4.2.1" + node-simctl "^7.1.0" + semver "^7.0.0" + source-map-support "^0.x" + teen_process "^2.0.0" + +appium-remote-debugger@9.1.16: + version "9.1.16" + resolved "https://registry.yarnpkg.com/appium-remote-debugger/-/appium-remote-debugger-9.1.16.tgz#30e1d21c3e7791496dee5d103a03f1df24757700" + integrity sha512-jhDjkmdV7Biq8J81JTPM3qVKMxwYrhLcULKTGL8/BWNujy7HOuS0a3nJLD9thOs2aUvOjKmUQWvXOGmqtLpl/w== + dependencies: + "@appium/base-driver" "^9.0.0" + "@appium/support" "^4.0.0" + "@babel/runtime" "^7.0.0" + appium-ios-device "^2.0.0" + async-lock "^1.2.2" + asyncbox "^2.6.0" + bluebird "^3.4.7" + fancy-log "^2.0.0" + glob "^8.0.3" + lodash "^4.17.11" + source-map-support "^0.x" + teen_process "^2.0.0" + +appium-uiautomator2-driver@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/appium-uiautomator2-driver/-/appium-uiautomator2-driver-2.29.1.tgz#6e446fc7617b82ac362751af7b1800aaea9ebe11" + integrity sha512-dHUqLAuUEp+7RffQWzIa/Qr3sAjTzUAcuUrkNsR7DScQckCq09J2dV8ofvrmzeApSkHGE7O29I1VKSsksLXVUA== + dependencies: + "@babel/runtime" "^7.0.0" + appium-adb "^9.13.1" + appium-android-driver "^5.14.0" + appium-chromedriver "^5.3.1" + appium-uiautomator2-server "^5.12.1" + asyncbox "^2.3.1" + axios "^1.x" + bluebird "^3.5.1" + css-selector-parser "^2.2.3" + lodash "^4.17.4" + portscanner "^2.2.0" + source-map-support "^0.x" + teen_process "^2.0.0" + +appium-uiautomator2-server@^5.12.1: + version "5.12.1" + resolved "https://registry.yarnpkg.com/appium-uiautomator2-server/-/appium-uiautomator2-server-5.12.1.tgz#c4e80617e723b96b23a72e379ce5702013bd026d" + integrity sha512-l85PbwGTFVwy6rQ+vc2Nvz0411jYp/VlLBkQzRtNszmnqKWnucBAdeBr2WQtzqgBQnWCTCSLHC5Sa1JV+1ceTg== + +appium-webdriveragent@5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/appium-webdriveragent/-/appium-webdriveragent-5.5.1.tgz#80da8fa7e9cd75ac0fdea9dcb5358303ba5f00c5" + integrity sha512-x3OUst4MaDz64fUA+eQPUHddbA014Kw2cd+Tx3X8a3t179NcGDkOGTF3EMD+uH3QNNazxahmnkekuJmsISc5EQ== + dependencies: + "@appium/base-driver" "^9.0.0" + "@appium/strongbox" "^0.x" + "@appium/support" "^4.0.0" + "@babel/runtime" "^7.0.0" + appium-ios-device "^2.5.0" + appium-ios-simulator "^5.0.1" + async-lock "^1.0.0" + asyncbox "^2.5.3" + axios "^1.x" + bluebird "^3.5.5" + lodash "^4.17.11" + node-simctl "^7.0.1" + source-map-support "^0.x" + teen_process "^2.0.0" + +appium-xcode@5.1.2, appium-xcode@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/appium-xcode/-/appium-xcode-5.1.2.tgz#94f9b229fbc016c3a01d48cf298243b9fecc5aac" + integrity sha512-yO3bWhen/J7zwW8zGbZZXnZkFiuxC1nSzvQoSzl8ljS+l4G7riWaeq9zSQd1pLZUjTQK7Zx7ZeMa36Pwj8ZnuQ== + dependencies: + "@appium/support" "^4.0.0" + "@babel/runtime" "^7.0.0" + "@types/lodash" "^4.14.192" + "@types/teen_process" "^2.0.0" + asyncbox "^2.3.0" + lodash "^4.17.4" + plist "^3.0.1" + semver "^7.0.0" + source-map-support "^0.x" + teen_process "^2.0.0" + +appium-xcuitest-driver@^4.32.10: + version "4.32.10" + resolved "https://registry.yarnpkg.com/appium-xcuitest-driver/-/appium-xcuitest-driver-4.32.10.tgz#c329b7beab4a015f1670925bfade5c0190f19131" + integrity sha512-amYLOhh+nMIHq8QRtrj2T2Wwv6GxiO0fZRHFmYt0AXnxpiyWiBmXaiA1o6xYPOkcID+wW/3ntFmTTIiiXxDdPg== + dependencies: + "@xmldom/xmldom" "0.8.8" + appium-idb "1.6.12" + appium-ios-device "2.5.3" + appium-ios-simulator "5.1.0" + appium-remote-debugger "9.1.16" + appium-webdriveragent "5.5.1" + appium-xcode "5.1.2" + async-lock "1.4.0" + asyncbox "2.9.4" + bluebird "3.7.2" + css-selector-parser "2.3.2" + fancy-log "2.0.0" + js2xmlparser2 "0.2.0" + lodash "4.17.21" + lru-cache "7.18.3" + moment "2.29.4" + moment-timezone "0.5.43" + node-simctl "7.1.16" + portscanner "2.2.0" + semver "7.5.3" + source-map-support "0.5.21" + teen_process "2.0.4" + ws "8.13.0" + +appium@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/appium/-/appium-2.0.0.tgz#15b00b14bec752ac6b69955ca76ed87ea82393a6" + integrity sha512-SfpaYI35aM2KcShL0gOMDcni9CIev4X+WfEFfncsoM+S3dyPd++FjwoH2pmRDk4yHTDNz8gCTbUizQN8fJgYpw== + dependencies: + "@appium/base-driver" "^9.3.15" + "@appium/base-plugin" "^2.2.15" + "@appium/docutils" "^0.4.4" + "@appium/schema" "^0.3.1" + "@appium/support" "^4.1.2" + "@appium/types" "^0.13.2" + "@sidvind/better-ajv-errors" "2.1.0" + "@types/argparse" "2.0.10" + "@types/bluebird" "3.5.38" + "@types/fancy-log" "2.0.0" + "@types/semver" "7.5.0" + "@types/teen_process" "2.0.0" + "@types/wrap-ansi" "3.0.0" + ajv "8.12.0" + ajv-formats "2.1.1" + argparse "2.0.1" + async-lock "1.4.0" + asyncbox "2.9.4" + axios "1.4.0" + bluebird "3.7.2" + cross-env "7.0.3" + find-up "5.0.0" + glob "8.1.0" + lilconfig "2.1.0" + lodash "4.17.21" + npmlog "7.0.1" + ora "5.4.1" + package-changed "3.0.0" + resolve-from "5.0.0" + semver "7.5.3" + source-map-support "0.5.21" + teen_process "2.0.2" + type-fest "3.11.1" + winston "3.9.0" + wrap-ansi "7.0.0" + yaml "2.3.1" + aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@5.3.1, archiver@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" + integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.3" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +are-we-there-yet@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.0.tgz#3ff397dc14f08b52dd8b2a64d3cee154ab8760d2" + integrity sha512-nSXlV+u3vtVjRgihdTzbfWYzxPWGo424zPgQbHD0ZqIla3jqYAewDcvee0Ua2hjS5IfTAmjGlx1Jf0PKwjZDEw== + dependencies: + delegates "^1.0.0" + readable-stream "^4.1.0" + are-we-there-yet@~1.1.2: version "1.1.7" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" @@ -3188,6 +3888,16 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@2.0.1, argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -3195,11 +3905,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - aria-query@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" @@ -3208,6 +3913,18 @@ aria-query@^4.2.2: "@babel/runtime" "^7.10.2" "@babel/runtime-corejs3" "^7.10.2" +aria-query@^5.2.1: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + array-includes@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" @@ -3273,6 +3990,11 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== +async-lock@1.4.0, async-lock@^1.0.0, async-lock@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/async-lock/-/async-lock-1.4.0.tgz#c8b6630eff68fbbdd8a5b6eb763dac3bfbb8bf02" + integrity sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ== + async-retry@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0" @@ -3280,11 +4002,29 @@ async-retry@1.2.3: dependencies: retry "0.12.0" +async@^2.6.0, async@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + async@^3.2.2, async@^3.2.3: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== +asyncbox@2.9.4, asyncbox@^2.0.2, asyncbox@^2.3.0, asyncbox@^2.3.1, asyncbox@^2.5.2, asyncbox@^2.5.3, asyncbox@^2.6.0, asyncbox@^2.8.0, asyncbox@^2.9.2: + version "2.9.4" + resolved "https://registry.yarnpkg.com/asyncbox/-/asyncbox-2.9.4.tgz#22a7cb9b7203a0183129243c0b1ead395d61f4d9" + integrity sha512-TCuA73K6Gvn+5tFGsWf4jc+PsR9RmYXw/AF0mv+CRB3VhHLjqHh/w9gPvYILnV0RcRFfjADHtzZexpxWlsP3Tg== + dependencies: + "@babel/runtime" "^7.0.0" + "@types/bluebird" "^3.5.37" + bluebird "^3.5.1" + lodash "^4.17.4" + source-map-support "^0.5.5" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -3305,6 +4045,15 @@ axe-core@^4.4.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.2.tgz#dcf7fb6dea866166c3eab33d68208afe4d5f670c" integrity sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA== +axios@1.4.0, axios@^1.x: + version "1.4.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" + integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -3468,6 +4217,18 @@ base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base64-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64-stream/-/base64-stream-1.0.0.tgz#157ae00bc7888695e884e1fcc51c551fdfa8a1fa" + integrity sha512-BQQZftaO48FcE1Kof9CmXMFaAdqkcNorgc8CxesZv9nMbbTF1EFyQe89UOuh//QMmdtfUDXyO8rgUalemL5ODA== + +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -3480,6 +4241,11 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== +big-integer@1.6.x: + version "1.6.51" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -3494,6 +4260,61 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" +bluebird@3.7.2, bluebird@^3.1.1, bluebird@^3.4.7, bluebird@^3.5.1, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bplist-creator@0.1.1, bplist-creator@^0.x: + version "0.1.1" + resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.1.tgz#ef638af058a7021e10ebfd557ffd73d95e6799fc" + integrity sha512-Ese7052fdWrxp/vqSJkydgx/1MdBnNOCV2XVfbmdGWD2H6EYza+Q4pyYSuVSnCUD22hfI/BFI4jHaC3NLXLlJQ== + dependencies: + stream-buffers "2.2.x" + +bplist-parser@0.3.2, bplist-parser@^0.x: + version "0.3.2" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.2.tgz#3ac79d67ec52c4c107893e0237eb787cbacbced7" + integrity sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ== + dependencies: + big-integer "1.6.x" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3502,6 +4323,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -3526,6 +4354,11 @@ bser@^2.0.0: dependencies: node-int64 "^0.4.0" +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" @@ -3536,7 +4369,7 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer@^5.5.0: +buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -3544,6 +4377,14 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -3559,6 +4400,11 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -3629,6 +4475,14 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3649,14 +4503,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -3689,12 +4535,17 @@ chokidar@^3.4.0: optionalDependencies: fsevents "~2.3.2" +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -chrome-launcher@^0.15.2: +chrome-launcher@^0.15.0, chrome-launcher@^0.15.2: version "0.15.2" resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.15.2.tgz#4e6404e32200095fdce7f6a1e1004f9bd36fa5da" integrity sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ== @@ -3808,7 +4659,7 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== -color-convert@^1.9.0: +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -3827,11 +4678,40 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.6.0, color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colorette@^1.0.7: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" @@ -3842,6 +4722,14 @@ colors@1.4.0: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3864,21 +4752,36 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + commander@^9.4.1: version "9.4.1" resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" - integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compare-versions@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.3.tgz#a9b34fea217472650ef4a2651d905f42c28ebfd7" + integrity sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A== + +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + compressible@~2.0.14: version "2.0.15" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.15.tgz#857a9ab0a7e5a07d8d837ed43fe2defff64fe212" @@ -3924,11 +4827,28 @@ connect@^3.6.5: parseurl "~1.3.2" utils-merge "1.0.1" -console-control-strings@^1.0.0, console-control-strings@~1.1.0: +consola@2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" @@ -3936,6 +4856,16 @@ convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, dependencies: safe-buffer "~5.1.1" +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + core-js-compat@^3.25.1: version "3.25.5" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.5.tgz#0016e8158c904f7b059486639e6e82116eafa7d9" @@ -3968,7 +4898,39 @@ cosmiconfig@^5.0.5, cosmiconfig@^5.1.0: js-yaml "^3.13.0" parse-json "^4.0.0" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-env@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-fetch@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3977,6 +4939,21 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +css-selector-parser@2.3.2, css-selector-parser@^2.2.3: + version "2.3.2" + resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-2.3.2.tgz#99215b06573073f202521422bdb4f881338a33b2" + integrity sha512-JjnG6/pdLJh3iqipq7kteNVtbIczsU2A1cNxb+VAiniSuNmrB/NI3us4rSCfArvlwRXYly+jZhUUfEoInSH9Qg== + +css-shorthand-properties@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz#1c808e63553c283f289f2dd56fcee8f3337bd935" + integrity sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A== + +css-value@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea" + integrity sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q== + csstype@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" @@ -4049,13 +5026,41 @@ debug@2.6.9, debug@^2.2.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@~4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -4078,17 +5083,17 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -deepmerge@^4.3.0: +deepmerge@^4.0.0, deepmerge@^4.2.2, deepmerge@^4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== @@ -4128,10 +5133,10 @@ denodeify@^1.2.1: resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" integrity sha1-OjYof1A05pnnV3kBBSwubJQlFjE= -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== deprecated-react-native-prop-types@4.2.0: version "4.2.0" @@ -4147,10 +5152,20 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0, detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== detect-newline@^3.0.0: version "3.1.0" @@ -4162,21 +5177,60 @@ devtools-protocol@0.0.1107588: resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz#f8cac707840b97cc30b029359341bcbbb0ad8ffa" integrity sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg== -diff-sequences@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" - integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== +devtools-protocol@0.0.948846: + version "0.0.948846" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.948846.tgz#bff47e2d1dba060130fa40ed2e5f78b916ba285f" + integrity sha512-5fGyt9xmMqUl2VI7+rnUkKCiAQIpLns8sfQtTENy5L70ktbNw0Z3TFJ1JoFNYdx/jffz4YXU45VF75wKZD7sZQ== + +devtools-protocol@0.0.981744: + version "0.0.981744" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.981744.tgz#9960da0370284577d46c28979a0b32651022bacf" + integrity sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg== + +devtools-protocol@^0.0.1161029: + version "0.0.1161029" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1161029.tgz#ec118810acf81100101f5fdabde042121c362940" + integrity sha512-kEUDtYEhgfepFC1T5a4F7XD6FzALn6bQa8Lkp7tM2vWXQG0LwXQ/MPS7BwmgW4bW3QGNci+G/mW4grFltFFtZA== + +devtools@7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/devtools/-/devtools-7.32.0.tgz#681ec21298eb6020e367bcaac0003a4294ec8c93" + integrity sha512-rf1OYJXCCSfhuQ+nosDb9o86/R4OJWBuBNd44PPGSBV0TCmLSrmf3PlqLEJ7/EbawkuOLWSQcX7EwIB/ABHFXg== + dependencies: + "@types/node" "^18.0.0" + "@types/ua-parser-js" "^0.7.33" + "@wdio/config" "7.31.1" + "@wdio/logger" "7.26.0" + "@wdio/protocols" "7.27.0" + "@wdio/types" "7.30.2" + "@wdio/utils" "7.30.2" + chrome-launcher "^0.15.0" + edge-paths "^2.1.0" + puppeteer-core "13.1.3" + query-selector-shadow-dom "^1.0.0" + ua-parser-js "^1.0.1" + uuid "^9.0.0" diff-sequences@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -4198,6 +5252,16 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -4213,6 +5277,14 @@ ecdsa-sig-formatter@1.0.11: dependencies: safe-buffer "^5.0.1" +edge-paths@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/edge-paths/-/edge-paths-2.2.1.tgz#d2d91513225c06514aeac9843bfce546abbf4391" + integrity sha512-AI5fC7dfDmCdKo3m5y7PkYE8m6bMqR6pvVpgtrZkkhcJXFLelUgkjrhk3kXXx8Kbw2cRaTT4LkOR7hqf39KJdw== + dependencies: + "@types/which" "^1.3.2" + which "^2.0.2" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -4238,6 +5310,11 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + encodeurl@~1.0.1, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -4250,6 +5327,11 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +env-paths@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + envinfo@^7.7.2: version "7.7.3" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" @@ -4322,6 +5404,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-error@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -4476,92 +5563,27 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== - -eslint@^8.17.0: - version "8.23.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" - integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== - dependencies: - "@eslint/eslintrc" "^1.3.2" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" - "@humanwhocodes/module-importer" "^1.0.1" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.1" - globals "^13.15.0" - globby "^11.1.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-sdsl "^4.1.4" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint@^8.19.0: +eslint@^8.17.0, eslint@^8.19.0: version "8.40.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.40.0.tgz#a564cd0099f38542c4e9a2f630fa45bf33bc42a4" integrity sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ== @@ -4607,15 +5629,6 @@ eslint@^8.19.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - espree@^9.5.2: version "9.5.2" resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" @@ -4630,13 +5643,6 @@ esprima@^4.0.0, esprima@~4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" @@ -4676,6 +5682,11 @@ event-target-shim@^5.0.0, event-target-shim@^5.0.1: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -4696,6 +5707,11 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -4703,7 +5719,7 @@ expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.0.0: +expect@^29.0.0, expect@^29.2.1: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== @@ -4714,16 +5730,42 @@ expect@^29.0.0: jest-message-util "^29.5.0" jest-util "^29.5.0" -expect@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.1.tgz#25752d0df92d3daa5188dc8804de1f30759658cf" - integrity sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ== - dependencies: - "@jest/expect-utils" "^29.2.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.1" - jest-message-util "^29.2.1" - jest-util "^29.2.1" +express@4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" extend-shallow@^2.0.1: version "2.0.1" @@ -4746,6 +5788,17 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +extract-zip@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -4756,6 +5809,18 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== +fancy-log@2.0.0, fancy-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-2.0.0.tgz#cad207b8396d69ae4796d74d17dff5f68b2f7343" + integrity sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA== + dependencies: + color-support "^1.1.3" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -4820,7 +5885,19 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -figures@^3.0.0: +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +figures@3.2.0, figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -4859,6 +5936,19 @@ finalhandler@1.1.0: statuses "~1.3.1" unpipe "~1.0.0" +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + find-cache-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" @@ -4868,6 +5958,14 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -4883,14 +5981,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - firebase@^9.6.5: version "9.9.4" resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.9.4.tgz#bf13706eff90f40a8dc9de803223a728447a6279" @@ -4936,31 +6026,53 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== -flow-bin@^0.212.0: - version "0.212.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.212.0.tgz#6ec26d4a26cbfe1e4e02a85cce87a1b08903b804" - integrity sha512-RbKhEsMoorfWbKca/Zdd8j5mQFTbnP5I3Q5vzR2ReVfMQUb5RaV8R9ejKeZzoq/nDf6UreXRTNjnffYJVmn4Fw== +flow-bin@^0.213.1: + version "0.213.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.213.1.tgz#194a3b17aa19d6fb8319bc5e067b8fdd93cc0449" + integrity sha512-ptyG+RmHbWx9KEElAdxdLOrZ/qKc3m/aIB6VG0ExH7BEuJ2ruK5rdUfzuC329b9QFtbawjpW2jLGeiFHBdmBvQ== flow-enums-runtime@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz#5bb0cd1b0a3e471330f4d109039b7eba5cb3e787" integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== -flow-parser@0.*: - version "0.185.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.185.0.tgz#56bde60805bad19b2934ebfc50c9485e5c5424f9" - integrity sha512-VWpXjEbQbIGQvB6CyWwx56wMioGZ6w2s8qJlFiuE3S7D8O+xE5t988i1u2TGFO5TLSzQPUhfIOzPpLYA93H9Jg== - -flow-parser@^0.206.0: +flow-parser@0.*, flow-parser@^0.206.0: version "0.206.0" resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.206.0.tgz#f4f794f8026535278393308e01ea72f31000bfef" integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w== +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@4.0.0, form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -4979,6 +6091,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -4994,6 +6111,15 @@ fs-exists-sync@^0.1.0: resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" integrity sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg== +fs-extra@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" @@ -5044,6 +6170,13 @@ fstream@^1.0.12: mkdirp ">=0.5 0" rimraf "2" +ftp-response-parser@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ftp-response-parser/-/ftp-response-parser-1.0.1.tgz#3b9d33f8edd5fb8e4700b8f778c462e5b1581f89" + integrity sha512-++Ahlo2hs/IC7UVQzjcSAfeUpCwTTzs4uvG5XfGnsinIFkWUYF4xWwPd5qZuK8MJrmUIxFMuHcfqaosCDjvIWw== + dependencies: + readable-stream "^1.0.31" + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -5059,16 +6192,25 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - functions-have-names@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +gauge@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" + integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^4.0.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -5112,6 +6254,11 @@ get-stdin@^6.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== +get-stream@6.0.1, get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -5119,11 +6266,6 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -5148,6 +6290,11 @@ git-config-path@^1.0.1: fs-exists-sync "^0.1.0" homedir-polyfill "^1.0.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -5155,13 +6302,46 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1, glob-parent@^6.0.2: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" +glob@8.1.0, glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +glob@^10.2.5: + version "10.2.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.6.tgz#1e27edbb3bbac055cb97113e27a066c100a4e5e1" + integrity sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.0.3" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2" + path-scurry "^1.7.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A== + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -5179,13 +6359,6 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d" integrity sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA== -globals@^13.15.0: - version "13.16.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.16.0.tgz#9be4aca28f311aaeb974ea54978ebbb5e35ce46a" - integrity sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q== - dependencies: - type-fest "^0.20.2" - globals@^13.19.0: version "13.20.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" @@ -5205,7 +6378,7 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -got@^11.1.4: +got@^11.0.2, got@^11.1.4, got@^11.8.1: version "11.8.6" resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== @@ -5227,7 +6400,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -grapheme-splitter@^1.0.4: +grapheme-splitter@^1.0.2, grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== @@ -5237,6 +6410,18 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.7.2.tgz#85ab0eeb83722977151b3feb4d631b5f2ab287ef" integrity sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A== +handlebars@4.7.7, handlebars@^4.7.7: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -5296,7 +6481,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0: +has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== @@ -5308,48 +6493,24 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hermes-eslint@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.14.0.tgz#d56426b0931a7ced99d08b4b6a06f798064b13ba" - integrity sha512-ORk7znDabvALzTbI3QRIQefCkxF1ukDm3dVut3e+cVmwdtsTC71BJetSvdh1jtgK10czwck1QiPZOVOVolhiqQ== +hermes-eslint@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.15.0.tgz#4d7495cb5e0e9275a1fb0b465b88fccf0b6d8840" + integrity sha512-Rd12uW9FZdOTDDwpVdYUxZGEApskUzBfKYy9RMtczm2uprX8yviPb9QVSVn2hl+xuRTA7Z0FnqDwOwXGiinsRQ== dependencies: esrecurse "^4.3.0" - hermes-estree "0.14.0" - hermes-parser "0.14.0" - -hermes-estree@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.12.0.tgz#8a289f9aee854854422345e6995a48613bac2ca8" - integrity sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw== - -hermes-estree@0.12.1: - version "0.12.1" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.12.1.tgz#74901ee351387fecbf3c683c90b1fa7d22f1c6f0" - integrity sha512-IWnP3rEZnuEq64IGM/sNsp+QCQcCAAu5TMallJ7bpUw0YUfk5q6cA7tvBGo/D0kGyo5jASc4Yp/CQCsLSSMfGQ== + hermes-estree "0.15.0" + hermes-parser "0.15.0" hermes-estree@0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.14.0.tgz#c663eea1400980802283338a09d0087c448729e7" integrity sha512-L6M67+0/eSEbt6Ha2XOBFXL++7MR34EOJMgm+j7YCaI4L/jZqrVAg6zYQKzbs1ZCFDLvEQpOgLlapTX4gpFriA== -hermes-estree@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.8.0.tgz#530be27243ca49f008381c1f3e8b18fb26bf9ec0" - integrity sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q== - -hermes-parser@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.12.0.tgz#114dc26697cfb41a6302c215b859b74224383773" - integrity sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw== - dependencies: - hermes-estree "0.12.0" - -hermes-parser@0.12.1: - version "0.12.1" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.12.1.tgz#e60595f05ecd13026c614ca5d9db2eaefe971301" - integrity sha512-53aep6osCq1GiSIlbe7ltPD9v0GeAUtGlaMhgKexGjePoI66GnalLR5aPeuIZbExBQAb+af/kiXT3yxBweuXUA== - dependencies: - hermes-estree "0.12.1" +hermes-estree@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.15.0.tgz#e32f6210ab18c7b705bdcb375f7700f2db15d6ba" + integrity sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ== hermes-parser@0.14.0: version "0.14.0" @@ -5358,12 +6519,12 @@ hermes-parser@0.14.0: dependencies: hermes-estree "0.14.0" -hermes-parser@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.8.0.tgz#116dceaba32e45b16d6aefb5c4c830eaeba2d257" - integrity sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA== +hermes-parser@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.15.0.tgz#f611a297c2a2dbbfbce8af8543242254f604c382" + integrity sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q== dependencies: - hermes-estree "0.8.0" + hermes-estree "0.15.0" hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -5379,6 +6540,11 @@ homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + hosted-git-info@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" @@ -5396,15 +6562,16 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" http-parser-js@>=0.5.1: version "0.5.8" @@ -5429,6 +6596,11 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +http-status-codes@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.2.0.tgz#bb2efe63d941dfc2be18e15f703da525169622be" + integrity sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng== + http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" @@ -5437,7 +6609,15 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -https-proxy-agent@^5.0.1: +https-proxy-agent@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@5.0.1, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -5455,7 +6635,7 @@ hyperlinker@^1.0.0: resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== -iconv-lite@^0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5467,7 +6647,7 @@ idb@7.0.1: resolved "https://registry.yarnpkg.com/idb/-/idb-7.0.1.tgz#d2875b3a2f205d854ee307f6d196f246fea590a7" integrity sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg== -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -5526,21 +6706,21 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.5: +ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +ini@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" + integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== + inquirer@^7.1.0: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" @@ -5581,16 +6761,31 @@ invariant@*, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +io.appium.settings@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/io.appium.settings/-/io.appium.settings-5.0.3.tgz#1d0e655db048609407c05c57a71d05a7f1dd6d1b" + integrity sha512-gJ31uMyzhPmy7a+YW3u+18oLvcPqGJLFFkbUkA9xcNmUb9sbnb2BNZlpZNKSHW0SyrGHanuNoG/5FtHvmYhcWw== + ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -5618,10 +6813,10 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== +is-core-module@^2.11.0, is-core-module@^2.2.0, is-core-module@^2.5.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" @@ -5689,6 +6884,13 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-number-like@^1.0.3: + version "1.0.8" + resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" + integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== + dependencies: + lodash.isfinite "^3.3.2" + is-number-object@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" @@ -5781,6 +6983,11 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -5843,6 +7050,15 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jackspeak@^2.0.3: + version "2.2.1" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6" + integrity sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jest-changed-files@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" @@ -5922,17 +7138,7 @@ jest-config@^29.2.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" - integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.2.0" - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - -jest-diff@^29.5.0: +jest-diff@^29.2.1, jest-diff@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== @@ -5977,12 +7183,7 @@ jest-get-type@^24.9.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - -jest-get-type@^29.4.3: +jest-get-type@^29.2.0, jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== @@ -6025,17 +7226,7 @@ jest-leak-detector@^29.2.1: jest-get-type "^29.2.0" pretty-format "^29.2.1" -jest-matcher-utils@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.1.tgz#2bf876c5f891b33786aadf5d65d5da5970744122" - integrity sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww== - dependencies: - chalk "^4.0.0" - jest-diff "^29.2.1" - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - -jest-matcher-utils@^29.5.0: +jest-matcher-utils@^29.2.1, jest-matcher-utils@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== @@ -6045,22 +7236,7 @@ jest-matcher-utils@^29.5.0: jest-get-type "^29.4.3" pretty-format "^29.5.0" -jest-message-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" - integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.2.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-message-util@^29.5.0: +jest-message-util@^29.2.1, jest-message-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== @@ -6219,19 +7395,7 @@ jest-util@^27.2.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" - integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== - dependencies: - "@jest/types" "^29.2.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.5.0: +jest-util@^29.2.1, jest-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== @@ -6351,6 +7515,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +js2xmlparser2@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/js2xmlparser2/-/js2xmlparser2-0.2.0.tgz#a7ca2089b83d02331d631892dd6743864125033f" + integrity sha512-SzFGc1hQqzpDcalKmrM5gobSMGRSRg2lgaZrHGIfowrmd8+uaI+PWW62jcCGIqI+b4wdyYK0VKMhvVtJfkD0cg== + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -6401,6 +7570,18 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= +jsftp@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/jsftp/-/jsftp-2.1.3.tgz#3a0936b58d170441a0e74f27d34b53dda8dea9c1" + integrity sha512-r79EVB8jaNAZbq8hvanL8e8JGu2ZNr2bXdHC4ZdQhRImpSPpnWwm5DYVzQ5QxJmtGtKhNNuvqGgbNaFl604fEQ== + dependencies: + debug "^3.1.0" + ftp-response-parser "^1.0.1" + once "^1.4.0" + parse-listing "^1.1.3" + stream-combiner "^0.2.2" + unorm "^1.4.1" + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -6421,6 +7602,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" @@ -6443,11 +7629,16 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.0, json5@^2.2.1: +json5@2.2.3, json5@^2.1.0, json5@^2.2.1: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -6455,6 +7646,15 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" @@ -6532,11 +7732,26 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-4.1.0.tgz#5df608067d8cb62bbfb24374f8e5d956323338f3" + integrity sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw== + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +ky@0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/ky/-/ky-0.30.0.tgz#a3d293e4f6c4604a9a4694eceb6ce30e73d27d64" + integrity sha512-X/u76z4JtDVq10u1JA5UQfatPxgPaVDMYTrgHyiTpGN2z4TMEJkIHsoSBBSg9SWZEIXTKsi9kHgiQ9o3Y/4yog== + language-subtag-registry@~0.3.2: version "0.3.21" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" @@ -6549,6 +7764,13 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -6582,6 +7804,11 @@ lighthouse-logger@^1.0.0: debug "^2.6.9" marky "^1.2.2" +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -6609,31 +7836,73 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lockfile@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== + dependencies: + signal-exit "^3.0.2" + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== + lodash.find@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" integrity sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg== +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + +lodash.get@^4: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== +lodash.isfinite@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" + integrity sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA== + lodash.isobject@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" integrity sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA== +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + lodash.keys@^4.0.8: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" @@ -6649,7 +7918,7 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.merge@^4.6.2: +lodash.merge@^4.6.1, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== @@ -6659,12 +7928,22 @@ lodash.throttle@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= -lodash@^4.17.19, lodash@^4.17.21: +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== + +lodash.zip@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" + integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== + +lodash@4.17.21, lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.2.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.1.0: +log-symbols@4.1.0, log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -6672,6 +7951,18 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +logform@^2.3.2, logform@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" + integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== + dependencies: + "@colors/colors" "1.5.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + logkitty@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7" @@ -6681,6 +7972,16 @@ logkitty@^0.7.1: dayjs "^1.8.15" yargs "^15.1.0" +loglevel-plugin-prefix@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz#2fe0e05f1a820317d98d8c123e634c1bd84ff644" + integrity sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g== + +loglevel@^1.6.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" + integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -6703,6 +8004,11 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lru-cache@7.18.3, lru-cache@^7.3.0: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -6717,6 +8023,16 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" + integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -6732,6 +8048,11 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" +make-error@^1, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -6739,11 +8060,21 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" +marked@^4.2.12: + version "4.3.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== + marky@^1.2.2: version "1.2.5" resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.5.tgz#55796b688cbd72390d2d399eaaf1832c9413e3c0" integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + memfs-or-file-map-to-github-branch@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/memfs-or-file-map-to-github-branch/-/memfs-or-file-map-to-github-branch-1.2.1.tgz#fdb9a85408262316a9bd5567409bf89be7d72f96" @@ -6756,6 +8087,11 @@ memoize-one@^5.0.0: resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -6766,76 +8102,81 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -metro-babel-register@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.76.2.tgz#8a8c5ad17e412a3ae0ed23620f026811f054ed9c" - integrity sha512-EtjzAIfOAkBvynRkuBAA8WsXN70simjLk1gyoBx3eIbXDxelcFlPhgf8VKdz2dpD69Xh7M22thPfsSYjYeHCZQ== +method-override@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/method-override/-/method-override-3.0.0.tgz#6ab0d5d574e3208f15b0c9cf45ab52000468d7a2" + integrity sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA== + dependencies: + debug "3.1.0" + methods "~1.1.2" + parseurl "~1.3.2" + vary "~1.1.2" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +metro-babel-register@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.77.0.tgz#c0bb14cb168fc7829f01d922be9332e1a3ffc816" + integrity sha512-VxSWJBJWp5yPQJjhBljl9lEygmDmN4vWReY/vXjN6A5MxJDwPAQ9gwR9diuNLAzvRRLhvI0jm5aAxS6vNpuWow== dependencies: "@babel/core" "^7.20.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.20.0" "@babel/plugin-transform-modules-commonjs" "^7.0.0" "@babel/preset-typescript" "^7.18.0" "@babel/register" "^7.0.0" babel-plugin-replace-ts-export-assignment "^0.0.2" escape-string-regexp "^1.0.5" -metro-babel-transformer@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.2.tgz#51a6136f554131fb52ac04ec93774267f50fa578" - integrity sha512-NRNjVYDs5174K3oS54W67XQ9oUJDDVNJsqz45cJycbxfAx0GKVpvhjvoRQ2LmU0I0IbLL8HQtO/6aQ9No4Udwg== - dependencies: - "@babel/core" "^7.20.0" - hermes-parser "0.8.0" - metro-source-map "0.76.2" - nullthrows "^1.1.1" - -metro-babel-transformer@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz#ba620d64cbaf97d1aa14146d654a3e5d7477fc62" - integrity sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw== +metro-babel-transformer@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.77.0.tgz#5deefff8ae8f1e37cf3a38ba1198a9811c7713bb" + integrity sha512-DO41MiCIDXY7yGeUlQ/4DE/LAvjgmBQYRYzqgqs863CGOkMLA2NxsX4imW2sjrsG7+QJYXn1q5svC+qbnX0IYg== dependencies: "@babel/core" "^7.20.0" - hermes-parser "0.12.0" + hermes-parser "0.14.0" nullthrows "^1.1.1" -metro-cache-key@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.7.tgz#70913f43b92b313096673c37532edd07438cb325" - integrity sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ== +metro-cache-key@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.77.0.tgz#ce82ab46a4df012505e9fbf84075bb817ff9070e" + integrity sha512-bnTn5oLlBtiMjWRANuljwU+N4+HSxvYZ+3o1ZG2eWmTrqgdF+jEpgp4Rswq3XdajMjp5mR1wyoFNVhNuGtco5A== -metro-cache@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.7.tgz#e49e51423fa960df4eeff9760d131f03e003a9eb" - integrity sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg== +metro-cache@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.77.0.tgz#e126e1708098c704f07e932cc47ae30028a75ec3" + integrity sha512-IZfi9g1/lkyFx5Y7DdDjb5kU+4w2u5rO5qUpcCioVdtZBMfON5D4O1fecHNsGKIHcAr7sWo6hWfahbvZhRM+Wg== dependencies: - metro-core "0.76.7" + metro-core "0.77.0" rimraf "^3.0.2" -metro-config@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.7.tgz#f0fc171707523aa7d3a9311550872136880558c0" - integrity sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg== +metro-config@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.77.0.tgz#dadcafd6a95b1dc0de2e6029e100e59c53af777d" + integrity sha512-Ac5TjRC2ULLGObuWJYAzpgJFjAx1ytCcV0GyA56BWo0MEaugW/90Rj6DX/eWywIO8NySnEhB0XalPCTcqOEPvw== dependencies: connect "^3.6.5" cosmiconfig "^5.0.5" jest-validate "^29.2.1" - metro "0.76.7" - metro-cache "0.76.7" - metro-core "0.76.7" - metro-runtime "0.76.7" + metro "0.77.0" + metro-cache "0.77.0" + metro-core "0.77.0" + metro-runtime "0.77.0" -metro-core@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.7.tgz#5d2b8bac2cde801dc22666ad7be1336d1f021b61" - integrity sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw== +metro-core@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.77.0.tgz#ad496d3ac50332f1c8be16b8c78847bbc61c896c" + integrity sha512-352kpZvPAQUEiUn6nh/bq/eO1jRkZyVoRAy3UtIN+K5B3UQoAFHjZgxvJxXtYRDIgOpC1Nx/oTPI0I/LREq3mQ== dependencies: lodash.throttle "^4.1.1" - metro-resolver "0.76.7" + metro-resolver "0.77.0" -metro-file-map@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.7.tgz#0f041a4f186ac672f0188180310609c8483ffe89" - integrity sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw== +metro-file-map@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.77.0.tgz#f866292a70e9c463d2274cbfc415ef46aad65ef2" + integrity sha512-piBtfx1WBtCjNKAnXsHNlwvn8tKC+lcM+zC0A/x/YHuarA/MTS5fCtmgwLjmZZiCe60KOVYN4+5lkpRToH4drQ== dependencies: anymatch "^3.0.3" debug "^2.2.0" @@ -6852,10 +8193,10 @@ metro-file-map@0.76.7: optionalDependencies: fsevents "^2.3.2" -metro-inspector-proxy@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz#c067df25056e932002a72a4b45cf7b4b749f808e" - integrity sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg== +metro-inspector-proxy@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.77.0.tgz#ff8f8acf690ff6f55acaa0422bae0abfd886f3e0" + integrity sha512-SQ9YzdFewAQODTwdPWgDtXKufCSyHBeHipFHy/ashuXuIvT8wdVF8UiDd4VcFzf7vTk+Xv99G39DydZvTtNv2w== dependencies: connect "^3.6.5" debug "^2.2.0" @@ -6863,74 +8204,22 @@ metro-inspector-proxy@0.76.7: ws "^7.5.1" yargs "^17.6.2" -metro-memory-fs@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/metro-memory-fs/-/metro-memory-fs-0.76.2.tgz#1dcc14e0b66e382d9150579c1cd4ca7778415054" - integrity sha512-vA1ua7QrsIBqkb9hI4z+v24dRTEO7ykIuG8rrwZJ54k1nMbB+01epGMooaVgAYPGjwqDdhg+uV5UpKW4ueTLzA== +metro-memory-fs@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-memory-fs/-/metro-memory-fs-0.77.0.tgz#ca96e43d8d9dbfe5f8db4998b65baa67956e52f8" + integrity sha512-WU5MGDdCzMru2AbtrWq0T0dShzDyExmQ+RH27/NcQeyTXgfMCkeoKILGtff/7ZQP+5q3jEQAwzgM1HX+I9XXBQ== -metro-minify-terser@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz#aefac8bb8b6b3a0fcb5ea0238623cf3e100893ff" - integrity sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA== +metro-minify-terser@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.77.0.tgz#2e6e7f5540f1d83978da36ba124c803c3cd9547b" + integrity sha512-StiZjb57WYjhLyaW7PJ0xnNAWj9RZFYZWyL3MPUChpXKZXVkjurDDgiAXN9zanM/n5eachKlmAdsSpm5dVqC8w== dependencies: terser "^5.15.0" -metro-minify-uglify@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz#3e0143786718dcaea4e28a724698d4f8ac199a43" - integrity sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw== - dependencies: - uglify-es "^3.1.9" - -metro-react-native-babel-preset@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.2.tgz#dab4ca4b594bb47780adf5987c6b3b9cb41e767b" - integrity sha512-Kzi4JhEzwrPOuv3OHjDZvvlPTjInNoIV8QKBRyLTzx7TJuA5a2xReo0lz4sG4x9Bcv1XjKkKRmYUgS9V1I820w== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.4.0" - -metro-react-native-babel-preset@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz#dfe15c040d0918147a8b0e9f530d558287acbb54" - integrity sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw== +metro-react-native-babel-preset@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.77.0.tgz#47457eca8e36b77156afbe790247a70dbb40faaa" + integrity sha512-HPPD+bTxADtoE4y/4t1txgTQ1LVR6imOBy7RMHUsqMVTbekoi8Ph5YI9vKX2VMPtVWeFt0w9YnCSLPa76GcXsA== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" @@ -6972,34 +8261,21 @@ metro-react-native-babel-preset@0.76.7: babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.4.0" -metro-react-native-babel-transformer@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.2.tgz#84865806bcbd9376db8190c33f2b7cd178fa342b" - integrity sha512-49Jv8fqM+hN1Ocl1hcpRaZbVpUmT98x1+ISPToKMNn2ZnXzwsDHQ00mK+AETLrKBWOWn/Aol/zhmWDb2CwUqlw== - dependencies: - "@babel/core" "^7.20.0" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.8.0" - metro-babel-transformer "0.76.2" - metro-react-native-babel-preset "0.76.2" - metro-source-map "0.76.2" - nullthrows "^1.1.1" - -metro-react-native-babel-transformer@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz#ccc7c25b49ee8a1860aafdbf48bfa5441d206f8f" - integrity sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA== +metro-react-native-babel-transformer@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.77.0.tgz#34c6f6670a396074e24f9ad152d185551a88a3e6" + integrity sha512-uCV1Kt4ebY9/hT7ayDGMDgIsrbyxiBHNP+q0LGxscOx3D/QODv1z+WhfC4Hy0/1wDCGV3l0EQrfLqM+7qpjsWA== dependencies: "@babel/core" "^7.20.0" babel-preset-fbjs "^3.4.0" - hermes-parser "0.12.0" - metro-react-native-babel-preset "0.76.7" + hermes-parser "0.14.0" + metro-react-native-babel-preset "0.77.0" nullthrows "^1.1.1" -metro-resolver@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.7.tgz#f00ebead64e451c060f30926ecbf4f797588df52" - integrity sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA== +metro-resolver@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.77.0.tgz#765cd6cbffa6fb9589807b30c7922720d0cf7291" + integrity sha512-h3rvDWD25cZ/5Iin6mPjSQQe8KtWPAHZnA6AnAj2yadzltkyytPjmHal6JhTPsVHWMKorkC03MUpEgGusuvTww== metro-runtime@0.76.7: version "0.76.7" @@ -7009,19 +8285,13 @@ metro-runtime@0.76.7: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" -metro-source-map@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.2.tgz#e66cb8f7109c8c4bfd8732e6a32a2082378e0847" - integrity sha512-fr8mSpn7Z0oYhTdcFCJsrtOX0qgOoDBw9I5mOTZBacMyItiiFYrb+2zyVacBQwrxyo/DqAJaFd3NbdbIInIyvw== +metro-runtime@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.77.0.tgz#ccb3bfbce06acd5b8d0b611d0f55972a0ca28039" + integrity sha512-A4MCtMbrB7RoWDaIJSm32d7TcKLBHrjG/3mXx4pDnFgfmIQcKb/GNXcFJtE2tEjQxWJvZHhQYZh1l/49wQMDcA== dependencies: - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - invariant "^2.2.4" - metro-symbolicate "0.76.2" - nullthrows "^1.1.1" - ob1 "0.76.2" - source-map "^0.5.6" - vlq "^1.0.0" + "@babel/runtime" "^7.0.0" + react-refresh "^0.4.0" metro-source-map@0.76.7: version "0.76.7" @@ -7037,16 +8307,18 @@ metro-source-map@0.76.7: source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.2.tgz#4a270f48a1c22dc5e1f185f38c4384cb65f87c75" - integrity sha512-yI0eBJK+FeAwNYnyoZve5hq8RplpLTUDqShnmtHmflMw1WWRyjqrxtGg6ctjgV6qQqytnodFAWd31uQQ4ag0Pw== +metro-source-map@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.77.0.tgz#907df460e914cf3577151797eed998d275f462ec" + integrity sha512-gNrWkgV1zma2/NZVCxCvN/y9+fGwwwdiOzwn3aRrjxR88njJ2KQM0wnY86Q7i+1XEpf0BRzutMGYLLZCX9vTPQ== dependencies: + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" invariant "^2.2.4" - metro-source-map "0.76.2" + metro-symbolicate "0.77.0" nullthrows "^1.1.1" + ob1 "0.77.0" source-map "^0.5.6" - through2 "^2.0.1" vlq "^1.0.0" metro-symbolicate@0.76.7: @@ -7061,10 +8333,22 @@ metro-symbolicate@0.76.7: through2 "^2.0.1" vlq "^1.0.0" -metro-transform-plugins@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz#5d5f75371706fbf5166288e43ffd36b5e5bd05bc" - integrity sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg== +metro-symbolicate@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.77.0.tgz#aee584fcd584fbaf301541d257734c08455f3d40" + integrity sha512-L7KmrqADzhSS9PcUwF7KmbXemBb1rBW0ulw8eG2D+dLP5HtHRVf8WMHZswB2V0Xi0GnWCg4HMp8gSyIMs2wMGg== + dependencies: + invariant "^2.2.4" + metro-source-map "0.77.0" + nullthrows "^1.1.1" + source-map "^0.5.6" + through2 "^2.0.1" + vlq "^1.0.0" + +metro-transform-plugins@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.77.0.tgz#3608de5cb18ae72f66926e4ee092ded0f3e5f5fb" + integrity sha512-QcVpA+YUAqT1vNyMAMDehhTBcPTSvETRfrlhvfefVXpA2Pp90huzKmLxq2uNncm7o0Oy+CeKUq3awtv8ds1KTQ== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" @@ -7072,28 +8356,28 @@ metro-transform-plugins@0.76.7: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-worker@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz#b842d5a542f1806cca401633fc002559b3e3d668" - integrity sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw== +metro-transform-worker@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.77.0.tgz#0c71429661f389985bff29a821be76ce3a15aa5f" + integrity sha512-Ub2FawmG1eyq+MPLYp8sD7/PuWPs7MJxa3/qbI1VWTFR6M3NomGL4Ogin7ffJPb0DAi+GTfevp8azuyZcsYr9A== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" babel-preset-fbjs "^3.4.0" - metro "0.76.7" - metro-babel-transformer "0.76.7" - metro-cache "0.76.7" - metro-cache-key "0.76.7" - metro-source-map "0.76.7" - metro-transform-plugins "0.76.7" + metro "0.77.0" + metro-babel-transformer "0.77.0" + metro-cache "0.77.0" + metro-cache-key "0.77.0" + metro-source-map "0.77.0" + metro-transform-plugins "0.77.0" nullthrows "^1.1.1" -metro@0.76.7: - version "0.76.7" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.7.tgz#4885917ad28738c7d1e556630e0155f687336230" - integrity sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ== +metro@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.77.0.tgz#35be9364d5da7a244d430eb12304bdbb6dae7656" + integrity sha512-a/OMhKvVN4cH32mt9pCJw7LRP54bzT/QgqVGJxHX04m8JUnNR+DWLw4scN8p2Q5v0Z7DZIpkExGPlha7TBNcHw== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -7111,28 +8395,26 @@ metro@0.76.7: denodeify "^1.2.1" error-stack-parser "^2.0.6" graceful-fs "^4.2.4" - hermes-parser "0.12.0" + hermes-parser "0.14.0" image-size "^1.0.2" invariant "^2.2.4" jest-worker "^27.2.0" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.76.7" - metro-cache "0.76.7" - metro-cache-key "0.76.7" - metro-config "0.76.7" - metro-core "0.76.7" - metro-file-map "0.76.7" - metro-inspector-proxy "0.76.7" - metro-minify-terser "0.76.7" - metro-minify-uglify "0.76.7" - metro-react-native-babel-preset "0.76.7" - metro-resolver "0.76.7" - metro-runtime "0.76.7" - metro-source-map "0.76.7" - metro-symbolicate "0.76.7" - metro-transform-plugins "0.76.7" - metro-transform-worker "0.76.7" + metro-babel-transformer "0.77.0" + metro-cache "0.77.0" + metro-cache-key "0.77.0" + metro-config "0.77.0" + metro-core "0.77.0" + metro-file-map "0.77.0" + metro-inspector-proxy "0.77.0" + metro-minify-terser "0.77.0" + metro-resolver "0.77.0" + metro-runtime "0.77.0" + metro-source-map "0.77.0" + metro-symbolicate "0.77.0" + metro-transform-plugins "0.77.0" + metro-transform-worker "0.77.0" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" @@ -7152,34 +8434,22 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.51.0, "mime-db@>= 1.36.0 < 2": - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-db@1.52.0: +mime-db@1.52.0, "mime-db@>= 1.36.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.0" - -mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.1: version "2.4.4" @@ -7201,17 +8471,45 @@ mimic-response@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^6.0.4: + version "6.2.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-6.2.0.tgz#2b70fd13294178c69c04dfc05aebdb97a4e79e42" + integrity sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^7.1.3: + version "7.4.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^3.0.0, minipass@^3.1.1: version "3.3.4" @@ -7220,6 +8518,11 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" +"minipass@^5.0.0 || ^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" + integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== + minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -7228,7 +8531,12 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -"mkdirp@>=0.5 0", mkdirp@^0.5.1: +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.6, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -7245,17 +8553,45 @@ mock-fs@^5.1.4: resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-5.2.0.tgz#3502a9499c84c0a1218ee4bf92ae5bf2ea9b2b5e" integrity sha512-2dF2R6YMSZbpip1V1WHKGLNjr/k48uQClqMVb5H3MOvwc9qhYis3/IWbj02qIg/Y8MDXKFF4c5v0rxx2o6xTZw== +moment-timezone@0.5.43, moment-timezone@^0.5.26: + version "0.5.43" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.43.tgz#3dd7f3d0c67f78c23cd1906b9b2137a09b3c4790" + integrity sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ== + dependencies: + moment "^2.29.4" + +moment@2.29.4, moment@^2.24.0, moment@^2.29.4: + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +morgan@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@2.1.3, ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -7265,6 +8601,20 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mv@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg== + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -7275,31 +8625,43 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +ncp@2.0.0, ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" - integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== +neo-async@^2.5.0, neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nocache@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/nocache/-/nocache-3.0.3.tgz#07a3f4094746d5211c298d1938dcb5c1e1e352ca" integrity sha512-bd+lPsDTjbfAuKez+xp8xvp15SrQuOjzajRGqRpCAE06FPB1pJzV/QkyBgFD5KOktv/M/A8M0vY7yatnOUaM5Q== +node-abi@^3.3.0: + version "3.40.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.40.0.tgz#51d8ed44534f70ff1357dfbc3a89717b1ceac1b4" + integrity sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA== + dependencies: + semver "^7.3.5" + node-abort-controller@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + node-cleanup@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c" @@ -7329,11 +8691,38 @@ node-releases@^2.0.6: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== +node-simctl@7.1.16, node-simctl@^7.0.1, node-simctl@^7.1.0: + version "7.1.16" + resolved "https://registry.yarnpkg.com/node-simctl/-/node-simctl-7.1.16.tgz#444e9a4176188fa4a01c9724c79e409fe5515892" + integrity sha512-zEtpmydUgRSQxolfS1mn1DYgFTv3ujID6I0V4rDytuaO5ssRf29J+7eQpvTsH1py4C8IkG6RP3dFQxFeodU4qw== + dependencies: + "@babel/runtime" "^7.0.0" + asyncbox "^2.3.1" + bluebird "^3.5.1" + lodash "^4.2.1" + npmlog "^7.0.1" + rimraf "^5.0.0" + semver "^7.0.0" + source-map-support "^0.x" + teen_process "^2.0.0" + uuid "^9.0.0" + which "^3.0.1" + node-stream-zip@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.9.1.tgz#66d210204da7c60e2d6d685eb21a11d016981fd0" integrity sha512-7/Xs9gkuYF0WBimz5OrSc6UVKLDTxvBG2yLGtEK8PSx94d86o/6iQLvIe/140ATz35JDqHKWIxh3GcA3u5hB0w== +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + "normalize-package-data@~1.0.1 || ^2.0.0 || ^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" @@ -7380,6 +8769,16 @@ npm-run-path@^4.0.1: gauge "~2.7.3" set-blocking "~2.0.0" +npmlog@7.0.1, npmlog@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" + integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== + dependencies: + are-we-there-yet "^4.0.0" + console-control-strings "^1.1.0" + gauge "^5.0.0" + set-blocking "^2.0.0" + nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" @@ -7395,16 +8794,16 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -ob1@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.2.tgz#c1566cbb1b6da12c9e11bc47145e8a74180b372c" - integrity sha512-4Nazxd75vdXgFwq1braZ+u3QerxT1WVgltU43eByw4MaAdvSeuJt6wKwey7Ts5hfVOZrpfVAkHmmw0nDEg4KMg== - ob1@0.76.7: version "0.76.7" resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.7.tgz#95b68fadafd47e7a6a0ad64cf80f3140dd6d1124" integrity sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ== +ob1@0.77.0: + version "0.77.0" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.77.0.tgz#42883c87af8c3aad499238c6c0c8fb979178107d" + integrity sha512-yWpX6DzWmcZ7DO7SP+uoDkdKXVhSY5wPCkZXln751gOZQCit+BJpMa4Rj1AL5jjByXLqNzieK3jX+mWOzbS23g== + object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -7465,6 +8864,13 @@ object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -7472,10 +8878,10 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c= +on-headers@~1.0.1, on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -7484,6 +8890,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -7498,6 +8911,11 @@ open@^6.2.0: dependencies: is-wsl "^1.1.0" +opencv-bindings@4.5.5: + version "4.5.5" + resolved "https://registry.yarnpkg.com/opencv-bindings/-/opencv-bindings-4.5.5.tgz#0c1457238ff97ac9afd59ab04c5009d79b48a3af" + integrity sha512-FdYE9uqnoPKbAkZFEOpIh6RTtJIz1lz+W27xPCo1Ov6+d0OOgg+Hm9OT2MIGIG8V1Dp3fWlLvi7SIjDOpqO2XA== + optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -7510,7 +8928,7 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@^5.4.1: +ora@5.4.1, ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== @@ -7540,6 +8958,11 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== +p-iteration@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/p-iteration/-/p-iteration-1.1.8.tgz#14df726d55af368beba81bcc92a26bb1b48e714a" + integrity sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ== + p-limit@^2.0.0, p-limit@^2.1.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -7580,6 +9003,13 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== +package-changed@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/package-changed/-/package-changed-3.0.0.tgz#724f9bf6353ffaddd36be413755459e2b0688dee" + integrity sha512-HSRbrO+Ab5AuqqYGSevtKJ1Yt96jW1VKV7wrp8K4SKj5tyDp/7D96uPCQyCPiNtWTEH/7nA3hZ4z2slbc9yFxg== + dependencies: + commander "^6.2.0" + pako@~1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" @@ -7619,7 +9049,7 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.2.0: +parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -7636,15 +9066,20 @@ parse-link-header@^2.0.0: dependencies: xtend "~4.0.1" +parse-listing@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/parse-listing/-/parse-listing-1.1.3.tgz#aa546f57fdc129cfbf9945cd4b757b14b06182dd" + integrity sha512-a1p1i+9Qyc8pJNwdrSvW1g5TPxRH0sywVi6OzVvYHRo6xwF9bDWBxtH0KkxeOOvhUE8vAMtiSfsYQFOuK901eA== + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== parsimmon@^1.13.0: version "1.18.1" @@ -7676,11 +9111,29 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.7.0: + version "1.9.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" + integrity sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg== + dependencies: + lru-cache "^9.1.1" + minipass "^5.0.0 || ^6.0.2" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -7711,6 +9164,20 @@ pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.5: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== +pkg-dir@4.2.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -7718,12 +9185,53 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== +plist@3.0.6, plist@^3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" + integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== dependencies: - find-up "^4.0.0" + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + +pluralize@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +portfinder@^1.0.6: + version "1.0.32" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== + dependencies: + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" + +portscanner@2.2.0, portscanner@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.2.0.tgz#6059189b3efa0965c9d96a56b958eb9508411cf1" + integrity sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw== + dependencies: + async "^2.6.0" + is-number-like "^1.0.3" + +prebuild-install@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" prelude-ls@^1.2.1: version "1.2.1" @@ -7737,13 +9245,14 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier-plugin-hermes-parser@0.12.1: - version "0.12.1" - resolved "https://registry.yarnpkg.com/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.12.1.tgz#5c1ec4c18cea9c4b88478fa27f172e3f849b40b6" - integrity sha512-Letp5jjP/lpw/zpqKmtuDytQ2fP5M5dExcdUqIZknOwf+cXLirHaDddxz3gqzUJrpU4WzuaC0x3nfcH1Hi0Tng== +prettier-plugin-hermes-parser@0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.14.0.tgz#1b5122c14b949bfae96541bbeb39cdd15962a072" + integrity sha512-L3QtrNCVYUhN56oAvlkSYnwdOPgYxjBo1Fg+ApXTFUSk+b3uKcMlUqo6j0WZk4QKYtTtDwZcTT1Zl9VIF/7nDg== dependencies: - hermes-estree "0.12.1" - hermes-parser "0.12.1" + hermes-estree "0.14.0" + hermes-parser "0.14.0" + prettier-plugin-hermes-parser "0.14.0" prettier@2.8.8: version "2.8.8" @@ -7770,7 +9279,7 @@ pretty-format@^26.5.2, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^29.0.0, pretty-format@^29.5.0: +pretty-format@^29.0.0, pretty-format@^29.2.1, pretty-format@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== @@ -7779,15 +9288,6 @@ pretty-format@^29.0.0, pretty-format@^29.5.0: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" - integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - prettyjson@^1.2.1: version "1.2.5" resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.5.tgz#ef3cfffcc70505c032abc59785884b4027031835" @@ -7801,6 +9301,16 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +progress@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + promise@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" @@ -7862,6 +9372,19 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.0.0" +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@1.1.0, proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + psl@^1.1.28: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -7880,11 +9403,59 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +puppeteer-core@13.1.3: + version "13.1.3" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-13.1.3.tgz#cecb9e2ffff77410e4aa6428a1a2185ef4c6c01c" + integrity sha512-96pzvVBzq5lUGt3L/QrIH3mxn3NfZylHeusNhq06xBAHPI0Upc0SC/9u7tXjL0oRnmcExeVRJivr1lj7Ah/yDQ== + dependencies: + debug "4.3.2" + devtools-protocol "0.0.948846" + extract-zip "2.0.1" + https-proxy-agent "5.0.0" + node-fetch "2.6.7" + pkg-dir "4.2.0" + progress "2.0.3" + proxy-from-env "1.1.0" + rimraf "3.0.2" + tar-fs "2.1.1" + unbzip2-stream "1.4.3" + ws "8.2.3" + +puppeteer-core@^13.1.3: + version "13.7.0" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-13.7.0.tgz#3344bee3994163f49120a55ddcd144a40575ba5b" + integrity sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q== + dependencies: + cross-fetch "3.1.5" + debug "4.3.4" + devtools-protocol "0.0.981744" + extract-zip "2.0.1" + https-proxy-agent "5.0.1" + pkg-dir "4.2.0" + progress "2.0.3" + proxy-from-env "1.1.0" + rimraf "3.0.2" + tar-fs "2.1.1" + unbzip2-stream "1.4.3" + ws "8.5.0" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== +query-selector-shadow-dom@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.1.tgz#1c7b0058eff4881ac44f45d8f84ede32e9a2f349" + integrity sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw== + query-string@^6.12.1: version "6.14.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" @@ -7912,10 +9483,40 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" react-devtools-core@^4.27.7: version "4.27.7" @@ -7969,10 +9570,30 @@ react@18.2.0: dependencies: loose-envify "^1.1.0" -readable-stream@^2.0.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +read-pkg@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^1.0.31: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -7982,15 +9603,32 @@ readable-stream@^2.0.6, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== +readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.1.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468" + integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + +readdir-glob@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== + dependencies: + minimatch "^5.1.0" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -8037,16 +9675,11 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.11: +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.9: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" @@ -8063,11 +9696,6 @@ regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - regexpu-core@^5.2.1: version "5.2.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" @@ -8145,6 +9773,11 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -8155,22 +9788,17 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve.exports@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.1.6, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.11.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -8189,6 +9817,13 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" +resq@^1.9.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/resq/-/resq-1.11.0.tgz#edec8c58be9af800fd628118c0ca8815283de196" + integrity sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw== + dependencies: + fast-deep-equal "^2.0.1" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -8207,6 +9842,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rgb2hex@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.2.5.tgz#f82230cd3ab1364fa73c99be3a691ed688f8dbdc" + integrity sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw== + rimraf@2: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -8214,13 +9854,27 @@ rimraf@2: dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +rimraf@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.1.tgz#0881323ab94ad45fec7c0221f27ea1a142f3f0d0" + integrity sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg== + dependencies: + glob "^10.2.5" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ== + dependencies: + glob "^6.0.1" + rimraf@~2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -8247,21 +9901,38 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-stable-stringify@^2.3.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sanitize-filename@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + scheduler@0.24.0-canary-efb381bbf-20230505: version "0.24.0-canary-efb381bbf-20230505" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz#5dddc60e29f91cd7f8b983d7ce4a99c2202d178f" @@ -8285,63 +9956,93 @@ selenium-webdriver@4.1.2: tmp "^0.2.1" ws ">=7.4.6" -"semver@2 >=2.2.1 || 3.x || 4 || 5 || 7", semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== +"semver@2 >=2.2.1 || 3.x || 4 || 5 || 7", semver@7.5.3, semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.0: + version "7.5.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== dependencies: lru-cache "^6.0.0" -semver@^5.3.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@7.5.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== +semver@^7.5.2: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" serialize-error@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go= -serve-static@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== +serialize-error@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-8.1.0.tgz#3a069970c712f78634942ddd50fbbc0eaebe2f67" + integrity sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ== + dependencies: + type-fest "^0.20.2" + +serve-favicon@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" + integrity sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA== + dependencies: + etag "~1.8.1" + fresh "0.5.2" + ms "2.1.1" + parseurl "~1.3.2" + safe-buffer "5.1.1" + +serve-static@1.15.0, serve-static@^1.13.1: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" + parseurl "~1.3.3" + send "0.18.0" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -8353,10 +10054,10 @@ setimmediate@^1.0.5: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shallow-clone@^3.0.0: version "3.0.1" @@ -8365,6 +10066,28 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +shared-preferences-builder@^0.x: + version "0.0.4" + resolved "https://registry.yarnpkg.com/shared-preferences-builder/-/shared-preferences-builder-0.0.4.tgz#842316ed07704f921dc19dad0aaf0c9f5c37eb9c" + integrity sha512-6yy1O1zVAY8HWVjsaJzFzkmvmktlSvqnjsYZpWJ0dUrFS5Rfn1a8P7h+7zyl9MTqUfSXeaE7De6Yymx3OszxlQ== + dependencies: + lodash "^4.17.4" + xmlbuilder "^9.0.1" + +sharp@0.32.1: + version "0.32.1" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.1.tgz#41aa0d0b2048b2e0ee453d9fcb14ec1f408390fe" + integrity sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg== + dependencies: + color "^4.2.3" + detect-libc "^2.0.1" + node-addon-api "^6.1.0" + prebuild-install "^7.1.1" + semver "^7.5.0" + simple-get "^4.0.1" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -8377,11 +10100,16 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.6.1, shell-quote@^1.7.3: +shell-quote@1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== +shell-quote@1.8.1, shell-quote@^1.6.1, shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + shelljs@^0.8.5: version "0.8.5" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" @@ -8391,6 +10119,16 @@ shelljs@^0.8.5: interpret "^1.0.0" rechoir "^0.6.2" +shiki@^0.14.1: + version "0.14.2" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.2.tgz#d51440800b701392b31ce2336036058e338247a1" + integrity sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A== + dependencies: + ansi-sequence-parser "^1.1.0" + jsonc-parser "^3.2.0" + vscode-oniguruma "^1.7.0" + vscode-textmate "^8.0.0" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -8405,11 +10143,37 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" + integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + signedsource@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" integrity sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo= +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -8439,6 +10203,11 @@ slide@^1.1.6: resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== +slugify@1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b" + integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw== + source-map-support@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.0.tgz#2018a7ad2bdf8faf2691e5fddab26bed5a2bacab" @@ -8454,7 +10223,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.16, source-map-support@~0.5.20: +source-map-support@0.5.21, source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.5, source-map-support@^0.x, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -8535,6 +10304,11 @@ ssri@^8.0.0: dependencies: minipass "^3.1.1" +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + stack-utils@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" @@ -8554,20 +10328,28 @@ stacktrace-parser@^0.1.10: dependencies: type-fest "^0.7.1" -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== statuses@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== +stream-buffers@2.2.x: + version "2.2.0" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" + integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg== + +stream-combiner@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" + integrity sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ== + dependencies: + duplexer "~0.1.1" + through "~2.3.4" strict-uri-encode@^2.0.0: version "2.0.0" @@ -8587,6 +10369,15 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -8596,14 +10387,14 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" string.prototype.matchall@^4.0.7: version "4.0.7" @@ -8644,6 +10435,11 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -8651,6 +10447,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -8665,12 +10468,12 @@ strip-ansi@^5.0.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== dependencies: - ansi-regex "^5.0.1" + ansi-regex "^6.0.1" strip-bom@^4.0.0: version "4.0.0" @@ -8682,7 +10485,7 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== @@ -8702,6 +10505,13 @@ sudo-prompt@^9.0.0: resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.1.1.tgz#73853d729770392caec029e2470db9c221754db0" integrity sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA== +supports-color@8.1.1, supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -8721,13 +10531,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-hyperlinks@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" @@ -8741,7 +10544,17 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -tar-stream@^2.1.4: +tar-fs@2.1.1, tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4, tar-stream@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -8764,6 +10577,28 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" +teen_process@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/teen_process/-/teen_process-2.0.2.tgz#c82f3ab5bb45b489b059f7f2e5efb115b7f206ea" + integrity sha512-8Be+s0d3XIs6rosilYTYR8/TY4JfAl8Der8ItWhI/o/MTYGLTcjvNUNk5AU8c1eTpJ98MF0xextE8VJtqhtUcg== + dependencies: + "@babel/runtime" "7.19.0" + bluebird "3.7.2" + lodash "4.17.21" + shell-quote "1.7.3" + source-map-support "0.5.21" + which "2.0.2" + +teen_process@2.0.4, teen_process@^2.0.0, teen_process@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/teen_process/-/teen_process-2.0.4.tgz#4946d2226cddff310ec791c17c35736bfe4fa10b" + integrity sha512-34Jw6kbHF0alXf9Rqt7B4kL1mrO30siG4JgdFuzYOeahoF9fbzDxSovC4pEfQ8L614cy2BPnAQPBp+dWZGuZNw== + dependencies: + bluebird "3.7.2" + lodash "4.17.21" + shell-quote "1.8.1" + source-map-support "0.5.21" + temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" @@ -8795,6 +10630,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -8813,7 +10653,7 @@ through2@^2.0.1: readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.6: +through@^2.3.6, through@^2.3.8, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -8849,6 +10689,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -8862,15 +10707,39 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +ts-node@^9: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@^2, tslib@^2.0.1, tslib@^2.1.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.2.tgz#1b6f07185c881557b0ffa84b111a0106989e8338" + integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== tslint@5.14.0: version "5.14.0" @@ -8929,6 +10798,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.11.1.tgz#d8e62c7f42e14537d5b8796de5450d541f3a33a7" + integrity sha512-aCuRNRERRVh33lgQaJRlUxZqzfhzwTrsE98Mc3o3VXqmiaQdHacgUtJ0esp+7MvZ92qhtzKPeusaX6vIEcoreA== + type-fest@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" @@ -8939,28 +10813,70 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + type-fest@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== +typedoc-plugin-markdown@3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.14.0.tgz#17b99ee3ab0d21046d253f185f7669e80d0d7891" + integrity sha512-UyQLkLRkfTFhLdhSf3RRpA3nNInGn+k6sll2vRXjflaMNwQAAiB61SYbisNZTg16t4K1dt1bPQMMGLrxS0GZ0Q== + dependencies: + handlebars "^4.7.7" + +typedoc-plugin-resolve-crossmodule-references@0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/typedoc-plugin-resolve-crossmodule-references/-/typedoc-plugin-resolve-crossmodule-references-0.3.3.tgz#812a6e7083f46031c69fe0021bb3913b10bd68cb" + integrity sha512-ZWWBy2WR8z9a6iXYGlyB3KrpV+JDdZv1mndYU6Eh6mInrfMCrQJi3Y5K9ihMBfuaBGB//le1nEmQLgzU3IO+dw== + +typedoc@0.23.28: + version "0.23.28" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.28.tgz#3ce9c36ef1c273fa849d2dea18651855100d3ccd" + integrity sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w== + dependencies: + lunr "^2.3.9" + marked "^4.2.12" + minimatch "^7.1.3" + shiki "^0.14.1" + +typescript@4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + typescript@5.0.4: version "5.0.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== -uglify-es@^3.1.9: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" - integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ== - dependencies: - commander "~2.13.0" - source-map "~0.6.1" +ua-parser-js@^1.0.1: + version "1.0.35" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" + integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== unbox-primitive@^1.0.2: version "1.0.2" @@ -8972,6 +10888,14 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unbzip2-stream@1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -9005,7 +10929,17 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unpipe@~1.0.0: +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unorm@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" + integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== + +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= @@ -9025,6 +10959,18 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +utf7@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/utf7/-/utf7-1.0.2.tgz#955f490aae653ba220b9456a0a8776c199360991" + integrity sha512-qQrPtYLLLl12NF4DrM9CvfkxkYI97xOb5dsnGZHE3teFr0tWiEZ9UdgMPczv24vl708cYMpe6mGXGHrotIp3Bw== + dependencies: + semver "~5.3.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -9035,6 +10981,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= +uuid@9.0.0, uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -9064,6 +11015,11 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" +validate.js@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/validate.js/-/validate.js-0.13.1.tgz#b58bfac04a0f600a340f62e5227e70d95971e92a" + integrity sha512-PnFM3xiZ+kYmLyTiMgTYmU7ZHkjBZz2/+F0DaALc/uUtVzdCt1wAosvYJ5hFQi/hz8O4zb52FQhHZRC+uVkJ+g== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -9083,6 +11039,16 @@ vlq@^1.0.0: resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468" integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== +vscode-oniguruma@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" + integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== + +vscode-textmate@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" + integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== + walker@^1.0.7, walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -9097,6 +11063,54 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +webdriver@7.31.1: + version "7.31.1" + resolved "https://registry.yarnpkg.com/webdriver/-/webdriver-7.31.1.tgz#2dafdef92b59dc6456023ac92a9707d7331ecdb6" + integrity sha512-nCdJLxRnYvOMFqTEX7sqQtF/hV/Jgov0Y6ICeOm1DMTlZSRRDaUsBMlEAPkEwif9uBJYdM0znv8qzfX358AGqQ== + dependencies: + "@types/node" "^18.0.0" + "@wdio/config" "7.31.1" + "@wdio/logger" "7.26.0" + "@wdio/protocols" "7.27.0" + "@wdio/types" "7.30.2" + "@wdio/utils" "7.30.2" + got "^11.0.2" + ky "0.30.0" + lodash.merge "^4.6.1" + +webdriverio@^7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-7.32.0.tgz#e40e9c1596c36ad0d7e06e50c5d5a9efa7782798" + integrity sha512-bW0JLNx+WbZO/6K52AfJwE9vh+2JAfdgov9JIt2ySrXkRdvFb7TO7dvEE44GP8GP2ppVfzOcr4XzXAxlGyX6ig== + dependencies: + "@types/aria-query" "^5.0.0" + "@types/node" "^18.0.0" + "@wdio/config" "7.31.1" + "@wdio/logger" "7.26.0" + "@wdio/protocols" "7.27.0" + "@wdio/repl" "7.30.2" + "@wdio/types" "7.30.2" + "@wdio/utils" "7.30.2" + archiver "^5.0.0" + aria-query "^5.2.1" + css-shorthand-properties "^1.1.1" + css-value "^0.0.1" + devtools "7.32.0" + devtools-protocol "^0.0.1161029" + fs-extra "^11.1.1" + grapheme-splitter "^1.0.2" + lodash.clonedeep "^4.5.0" + lodash.isobject "^3.0.2" + lodash.isplainobject "^4.0.6" + lodash.zip "^4.2.0" + minimatch "^6.0.4" + puppeteer-core "^13.1.3" + query-selector-shadow-dom "^1.0.0" + resq "^1.9.1" + rgb2hex "0.2.5" + serialize-error "^8.0.0" + webdriver "7.31.1" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -9145,25 +11159,72 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^2.0.1: +which@2.0.2, which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.0: +which@3.0.1, which@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" + integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0, wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.9.0.tgz#2bbdeb8167a75fac6d9a0c6d002890cd908016c2" + integrity sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ== + dependencies: + "@colors/colors" "1.5.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@7.0.0, wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -9173,14 +11234,14 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" wrappy@1: version "1.0.2" @@ -9204,10 +11265,20 @@ write-file-atomic@^4.0.1: imurmurhash "^0.1.4" signal-exit "^3.0.7" -ws@>=7.4.6: - version "8.9.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" - integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg== +ws@8.13.0, ws@>=7.4.6, ws@^8.0.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +ws@8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +ws@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== ws@^6.2.2: version "6.2.2" @@ -9231,6 +11302,21 @@ xml@^1.0.1: resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= +xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + +xmlbuilder@^9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ== + +xpath@^0.x: + version "0.0.32" + resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.32.tgz#1b73d3351af736e17ec078d6da4b8175405c48af" + integrity sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw== + xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -9256,10 +11342,15 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" - integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== +yaml@2.3.1, yaml@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + +yargs-parser@21.1.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-parser@^18.1.2: version "18.1.3" @@ -9274,10 +11365,18 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.0, yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== +yargs@17.7.2, yargs@^17.3.1, yargs@^17.6.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" yargs@^15.1.0, yargs@^15.3.1: version "15.4.1" @@ -9309,33 +11408,29 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== +yauzl@2.10.0, yauzl@^2.10.0, yauzl@^2.7.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" -yargs@^17.6.2: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0"