From fa35608b370412791df70bcd03eb74dd88edb843 Mon Sep 17 00:00:00 2001 From: Innokentiy Sokolov Date: Fri, 15 Nov 2024 17:03:47 +0300 Subject: [PATCH] first push --- .bundle/config | 2 + .eslintrc.js | 15 + .gitignore | 78 + .node-version | 1 + .ruby-version | 1 + App.tsx | 635 + Gemfile | 6 + README.md | 8 + __tests__/App-test.tsx | 14 + android/app/build.gradle | 171 + android/app/debug.keystore | Bin 0 -> 2257 bytes android/app/proguard-rules.pro | 10 + android/app/src/debug/AndroidManifest.xml | 13 + .../awesomeproject/ReactNativeFlipper.java | 75 + android/app/src/main/AndroidManifest.xml | 25 + .../java/com/awesomeproject/MainActivity.java | 35 + .../com/awesomeproject/MainApplication.java | 62 + .../res/drawable/rn_edit_text_material.xml | 36 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5261 bytes .../mipmap-hdpi/ic_launcher_background.png | Bin 0 -> 857 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 4564 bytes .../mipmap-hdpi/ic_launcher_monochrome.png | Bin 0 -> 3707 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5024 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3054 bytes .../mipmap-mdpi/ic_launcher_background.png | Bin 0 -> 463 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2589 bytes .../mipmap-mdpi/ic_launcher_monochrome.png | Bin 0 -> 2048 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2858 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7378 bytes .../mipmap-xhdpi/ic_launcher_background.png | Bin 0 -> 1320 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 6037 bytes .../mipmap-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 4951 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7098 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 12701 bytes .../mipmap-xxhdpi/ic_launcher_background.png | Bin 0 -> 2952 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 11667 bytes .../mipmap-xxhdpi/ic_launcher_monochrome.png | Bin 0 -> 9350 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10676 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 17809 bytes .../mipmap-xxxhdpi/ic_launcher_background.png | Bin 0 -> 4236 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 14928 bytes .../mipmap-xxxhdpi/ic_launcher_monochrome.png | Bin 0 -> 11932 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15523 bytes android/app/src/main/res/play_store_512.png | Bin 0 -> 27395 bytes android/app/src/main/res/values/strings.xml | 3 + android/app/src/main/res/values/styles.xml | 9 + android/app/src/main/res_20230413.7z | Bin 0 -> 67705 bytes .../awesomeproject/ReactNativeFlipper.java | 20 + android/build.gradle | 21 + android/gradle.properties | 49 + android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59821 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + android/gradlew | 234 + android/gradlew.bat | 89 + android/settings.gradle | 4 + app.json | 4 + assets/logo_bg_dark.jpg | Bin 0 -> 126736 bytes assets/logo_bg_light.jpg | Bin 0 -> 150139 bytes babel.config.js | 4 + index.js | 9 + ios/.xcode.env | 11 + ios/AwesomeProject.xcodeproj/project.pbxproj | 702 + .../xcschemes/AwesomeProject.xcscheme | 88 + ios/AwesomeProject/AppDelegate.h | 6 + ios/AwesomeProject/AppDelegate.mm | 36 + .../AppIcon.appiconset/Contents.json | 53 + .../Images.xcassets/Contents.json | 6 + ios/AwesomeProject/Info.plist | 55 + ios/AwesomeProject/LaunchScreen.storyboard | 47 + ios/AwesomeProject/main.m | 10 + ios/AwesomeProjectTests/AwesomeProjectTests.m | 66 + ios/AwesomeProjectTests/Info.plist | 24 + ios/Podfile | 60 + metro.config.js | 17 + package-lock.json | 12998 ++++++++++++++++ package.json | 60 + run-build-release.bat | 11 + run-debug.bat | 2 + src/calcs/ascvd/api.ts | 107 + src/calcs/ascvd/domain.ts | 32 + src/calcs/ascvd/i18n/en.json | 21 + src/calcs/ascvd/i18n/ru.json | 21 + src/calcs/ascvd/ui.tsx | 201 + src/calcs/ascvd/variants.ts | 46 + src/calcs/audit/README.md | 5 + src/calcs/audit/api.ts | 90 + src/calcs/audit/domain.ts | 48 + src/calcs/audit/i18n/en.json | 5 + src/calcs/audit/i18n/ru.json | 5 + src/calcs/audit/questions.ts | 222 + src/calcs/audit/ui.tsx | 83 + src/calcs/audit/variants.ts | 48 + src/calcs/bmi/api.ts | 84 + src/calcs/bmi/domain.ts | 29 + src/calcs/bmi/i18n/en.json | 9 + src/calcs/bmi/i18n/ru.json | 9 + src/calcs/bmi/ui.tsx | 86 + src/calcs/bmi/variants.ts | 40 + src/calcs/bsa/api.ts | 66 + src/calcs/bsa/domain.ts | 29 + src/calcs/bsa/i18n/en.json | 8 + src/calcs/bsa/i18n/ru.json | 8 + src/calcs/bsa/ui.tsx | 16 + src/calcs/bsa/variants.ts | 48 + src/calcs/calcs.ts | 553 + src/calcs/calcs_list.txt | 75 + src/calcs/cc/README.md | 2 + src/calcs/cc/api.ts | 83 + src/calcs/cc/domain.ts | 29 + src/calcs/cc/i18n/en.json | 14 + src/calcs/cc/i18n/ru.json | 14 + src/calcs/cc/ui.tsx | 140 + src/calcs/cc/variants.ts | 40 + src/calcs/cow/README.md | 3 + src/calcs/cow/api.ts | 62 + src/calcs/cow/domain.ts | 48 + src/calcs/cow/questions.ts | 333 + src/calcs/cow/ui.tsx | 87 + src/calcs/cow/variants.ts | 39 + src/calcs/curb-65/api.ts | 99 + src/calcs/curb-65/domain.ts | 51 + src/calcs/curb-65/i18n/en.json | 5 + src/calcs/curb-65/i18n/ru.json | 5 + src/calcs/curb-65/questions.ts | 88 + src/calcs/curb-65/ui.tsx | 77 + src/calcs/curb-65/variants.ts | 40 + src/calcs/findrisk/README.md | 9 + src/calcs/findrisk/api.ts | 104 + src/calcs/findrisk/domain.ts | 49 + src/calcs/findrisk/i18n/en.json | 5 + src/calcs/findrisk/i18n/ru.json | 5 + src/calcs/findrisk/questions.ts | 180 + src/calcs/findrisk/ui.tsx | 121 + src/calcs/findrisk/variants.ts | 48 + src/calcs/gad7/api.ts | 87 + src/calcs/gad7/domain.ts | 44 + src/calcs/gad7/i18n/en.json | 5 + src/calcs/gad7/i18n/ru.json | 5 + src/calcs/gad7/questions.ts | 150 + src/calcs/gad7/ui.tsx | 86 + src/calcs/gad7/variants.ts | 40 + src/calcs/gds/README.md | 2 + src/calcs/gds/api.ts | 92 + src/calcs/gds/domain.ts | 52 + src/calcs/gds/i18n/en.json | 5 + src/calcs/gds/i18n/ru.json | 5 + src/calcs/gds/questions.ts | 250 + src/calcs/gds/ui.tsx | 92 + src/calcs/gds/variants.ts | 23 + src/calcs/gfr/README.md | 73 + src/calcs/gfr/api.ts | 102 + src/calcs/gfr/domain.ts | 29 + src/calcs/gfr/i18n/en.json | 14 + src/calcs/gfr/i18n/ru.json | 14 + src/calcs/gfr/ui.tsx | 140 + src/calcs/gfr/variants.ts | 48 + src/calcs/gs-pe/README.md | 0 src/calcs/gs-pe/api.ts | 86 + src/calcs/gs-pe/domain.ts | 46 + src/calcs/gs-pe/i18n/en.json | 5 + src/calcs/gs-pe/i18n/ru.json | 5 + src/calcs/gs-pe/questions.ts | 138 + src/calcs/gs-pe/ui.tsx | 85 + src/calcs/gs-pe/variants.ts | 34 + src/calcs/hba1c/api.ts | 70 + src/calcs/hba1c/i18n/en.json | 17 + src/calcs/hba1c/i18n/ru.json | 17 + src/calcs/hba1c/ui.tsx | 16 + src/calcs/heart/api.ts | 83 + src/calcs/heart/domain.ts | 44 + src/calcs/heart/i18n/en.json | 5 + src/calcs/heart/i18n/ru.json | 5 + src/calcs/heart/questions.ts | 122 + src/calcs/heart/ui.tsx | 82 + src/calcs/heart/variants.ts | 35 + src/calcs/phq-9/api.ts | 91 + src/calcs/phq-9/domain.ts | 46 + src/calcs/phq-9/i18n/en.json | 5 + src/calcs/phq-9/i18n/ru.json | 5 + src/calcs/phq-9/questions.ts | 188 + src/calcs/phq-9/ui.tsx | 86 + src/calcs/phq-9/variants.ts | 52 + src/calcs/rcri/api.ts | 86 + src/calcs/rcri/domain.ts | 44 + src/calcs/rcri/i18n/en.json | 5 + src/calcs/rcri/i18n/ru.json | 5 + src/calcs/rcri/questions.ts | 121 + src/calcs/rcri/ui.tsx | 83 + src/calcs/rcri/variants.ts | 48 + src/calcs/wc-pe/api.ts | 87 + src/calcs/wc-pe/domain.ts | 44 + src/calcs/wc-pe/i18n/en.json | 5 + src/calcs/wc-pe/i18n/ru.json | 5 + src/calcs/wc-pe/questions.ts | 120 + src/calcs/wc-pe/ui.tsx | 83 + src/calcs/wc-pe/variants.ts | 35 + src/components/confirmationDialog.tsx | 64 + src/components/dropdown.tsx | 147 + src/components/dropdownMini.tsx | 133 + src/components/numericContainer.tsx | 51 + src/components/numericInput.tsx | 139 + src/components/segmentContainer.tsx | 63 + src/components/segmentGroup.tsx | 100 + src/i18n/en.json | 81 + src/i18n/i18n.ts | 62 + src/i18n/ru.json | 81 + src/screens/about/AboutScreen.tsx | 373 + src/screens/catalog/CatalogScreen.tsx | 419 + src/screens/debug/DebugScreen.tsx | 176 + src/screens/legal/LegalScreen.tsx | 53 + src/screens/legal/en.ts | 13 + src/screens/legal/ru.ts | 13 + src/screens/opened/OpenedScreen.tsx | 390 + src/screens/settings/SettingsScreen.tsx | 208 + src/screens/settings/styles.ts | 82 + src/themes.ts | 20 + src/utils.js | 36 + tsconfig.json | 8 + yarn.lock | 7510 +++++++++ 220 files changed, 33389 insertions(+) create mode 100644 .bundle/config create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .node-version create mode 100644 .ruby-version create mode 100644 App.tsx create mode 100644 Gemfile create mode 100644 README.md create mode 100644 __tests__/App-test.tsx create mode 100644 android/app/build.gradle create mode 100644 android/app/debug.keystore create mode 100644 android/app/proguard-rules.pro create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/java/com/awesomeproject/MainActivity.java create mode 100644 android/app/src/main/java/com/awesomeproject/MainApplication.java create mode 100644 android/app/src/main/res/drawable/rn_edit_text_material.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/play_store_512.png create mode 100644 android/app/src/main/res/values/strings.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/main/res_20230413.7z create mode 100644 android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.jar create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/gradlew create mode 100644 android/gradlew.bat create mode 100644 android/settings.gradle create mode 100644 app.json create mode 100644 assets/logo_bg_dark.jpg create mode 100644 assets/logo_bg_light.jpg create mode 100644 babel.config.js create mode 100644 index.js create mode 100644 ios/.xcode.env create mode 100644 ios/AwesomeProject.xcodeproj/project.pbxproj create mode 100644 ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme create mode 100644 ios/AwesomeProject/AppDelegate.h create mode 100644 ios/AwesomeProject/AppDelegate.mm create mode 100644 ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/AwesomeProject/Images.xcassets/Contents.json create mode 100644 ios/AwesomeProject/Info.plist create mode 100644 ios/AwesomeProject/LaunchScreen.storyboard create mode 100644 ios/AwesomeProject/main.m create mode 100644 ios/AwesomeProjectTests/AwesomeProjectTests.m create mode 100644 ios/AwesomeProjectTests/Info.plist create mode 100644 ios/Podfile create mode 100644 metro.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 run-build-release.bat create mode 100644 run-debug.bat create mode 100644 src/calcs/ascvd/api.ts create mode 100644 src/calcs/ascvd/domain.ts create mode 100644 src/calcs/ascvd/i18n/en.json create mode 100644 src/calcs/ascvd/i18n/ru.json create mode 100644 src/calcs/ascvd/ui.tsx create mode 100644 src/calcs/ascvd/variants.ts create mode 100644 src/calcs/audit/README.md create mode 100644 src/calcs/audit/api.ts create mode 100644 src/calcs/audit/domain.ts create mode 100644 src/calcs/audit/i18n/en.json create mode 100644 src/calcs/audit/i18n/ru.json create mode 100644 src/calcs/audit/questions.ts create mode 100644 src/calcs/audit/ui.tsx create mode 100644 src/calcs/audit/variants.ts create mode 100644 src/calcs/bmi/api.ts create mode 100644 src/calcs/bmi/domain.ts create mode 100644 src/calcs/bmi/i18n/en.json create mode 100644 src/calcs/bmi/i18n/ru.json create mode 100644 src/calcs/bmi/ui.tsx create mode 100644 src/calcs/bmi/variants.ts create mode 100644 src/calcs/bsa/api.ts create mode 100644 src/calcs/bsa/domain.ts create mode 100644 src/calcs/bsa/i18n/en.json create mode 100644 src/calcs/bsa/i18n/ru.json create mode 100644 src/calcs/bsa/ui.tsx create mode 100644 src/calcs/bsa/variants.ts create mode 100644 src/calcs/calcs.ts create mode 100644 src/calcs/calcs_list.txt create mode 100644 src/calcs/cc/README.md create mode 100644 src/calcs/cc/api.ts create mode 100644 src/calcs/cc/domain.ts create mode 100644 src/calcs/cc/i18n/en.json create mode 100644 src/calcs/cc/i18n/ru.json create mode 100644 src/calcs/cc/ui.tsx create mode 100644 src/calcs/cc/variants.ts create mode 100644 src/calcs/cow/README.md create mode 100644 src/calcs/cow/api.ts create mode 100644 src/calcs/cow/domain.ts create mode 100644 src/calcs/cow/questions.ts create mode 100644 src/calcs/cow/ui.tsx create mode 100644 src/calcs/cow/variants.ts create mode 100644 src/calcs/curb-65/api.ts create mode 100644 src/calcs/curb-65/domain.ts create mode 100644 src/calcs/curb-65/i18n/en.json create mode 100644 src/calcs/curb-65/i18n/ru.json create mode 100644 src/calcs/curb-65/questions.ts create mode 100644 src/calcs/curb-65/ui.tsx create mode 100644 src/calcs/curb-65/variants.ts create mode 100644 src/calcs/findrisk/README.md create mode 100644 src/calcs/findrisk/api.ts create mode 100644 src/calcs/findrisk/domain.ts create mode 100644 src/calcs/findrisk/i18n/en.json create mode 100644 src/calcs/findrisk/i18n/ru.json create mode 100644 src/calcs/findrisk/questions.ts create mode 100644 src/calcs/findrisk/ui.tsx create mode 100644 src/calcs/findrisk/variants.ts create mode 100644 src/calcs/gad7/api.ts create mode 100644 src/calcs/gad7/domain.ts create mode 100644 src/calcs/gad7/i18n/en.json create mode 100644 src/calcs/gad7/i18n/ru.json create mode 100644 src/calcs/gad7/questions.ts create mode 100644 src/calcs/gad7/ui.tsx create mode 100644 src/calcs/gad7/variants.ts create mode 100644 src/calcs/gds/README.md create mode 100644 src/calcs/gds/api.ts create mode 100644 src/calcs/gds/domain.ts create mode 100644 src/calcs/gds/i18n/en.json create mode 100644 src/calcs/gds/i18n/ru.json create mode 100644 src/calcs/gds/questions.ts create mode 100644 src/calcs/gds/ui.tsx create mode 100644 src/calcs/gds/variants.ts create mode 100644 src/calcs/gfr/README.md create mode 100644 src/calcs/gfr/api.ts create mode 100644 src/calcs/gfr/domain.ts create mode 100644 src/calcs/gfr/i18n/en.json create mode 100644 src/calcs/gfr/i18n/ru.json create mode 100644 src/calcs/gfr/ui.tsx create mode 100644 src/calcs/gfr/variants.ts create mode 100644 src/calcs/gs-pe/README.md create mode 100644 src/calcs/gs-pe/api.ts create mode 100644 src/calcs/gs-pe/domain.ts create mode 100644 src/calcs/gs-pe/i18n/en.json create mode 100644 src/calcs/gs-pe/i18n/ru.json create mode 100644 src/calcs/gs-pe/questions.ts create mode 100644 src/calcs/gs-pe/ui.tsx create mode 100644 src/calcs/gs-pe/variants.ts create mode 100644 src/calcs/hba1c/api.ts create mode 100644 src/calcs/hba1c/i18n/en.json create mode 100644 src/calcs/hba1c/i18n/ru.json create mode 100644 src/calcs/hba1c/ui.tsx create mode 100644 src/calcs/heart/api.ts create mode 100644 src/calcs/heart/domain.ts create mode 100644 src/calcs/heart/i18n/en.json create mode 100644 src/calcs/heart/i18n/ru.json create mode 100644 src/calcs/heart/questions.ts create mode 100644 src/calcs/heart/ui.tsx create mode 100644 src/calcs/heart/variants.ts create mode 100644 src/calcs/phq-9/api.ts create mode 100644 src/calcs/phq-9/domain.ts create mode 100644 src/calcs/phq-9/i18n/en.json create mode 100644 src/calcs/phq-9/i18n/ru.json create mode 100644 src/calcs/phq-9/questions.ts create mode 100644 src/calcs/phq-9/ui.tsx create mode 100644 src/calcs/phq-9/variants.ts create mode 100644 src/calcs/rcri/api.ts create mode 100644 src/calcs/rcri/domain.ts create mode 100644 src/calcs/rcri/i18n/en.json create mode 100644 src/calcs/rcri/i18n/ru.json create mode 100644 src/calcs/rcri/questions.ts create mode 100644 src/calcs/rcri/ui.tsx create mode 100644 src/calcs/rcri/variants.ts create mode 100644 src/calcs/wc-pe/api.ts create mode 100644 src/calcs/wc-pe/domain.ts create mode 100644 src/calcs/wc-pe/i18n/en.json create mode 100644 src/calcs/wc-pe/i18n/ru.json create mode 100644 src/calcs/wc-pe/questions.ts create mode 100644 src/calcs/wc-pe/ui.tsx create mode 100644 src/calcs/wc-pe/variants.ts create mode 100644 src/components/confirmationDialog.tsx create mode 100644 src/components/dropdown.tsx create mode 100644 src/components/dropdownMini.tsx create mode 100644 src/components/numericContainer.tsx create mode 100644 src/components/numericInput.tsx create mode 100644 src/components/segmentContainer.tsx create mode 100644 src/components/segmentGroup.tsx create mode 100644 src/i18n/en.json create mode 100644 src/i18n/i18n.ts create mode 100644 src/i18n/ru.json create mode 100644 src/screens/about/AboutScreen.tsx create mode 100644 src/screens/catalog/CatalogScreen.tsx create mode 100644 src/screens/debug/DebugScreen.tsx create mode 100644 src/screens/legal/LegalScreen.tsx create mode 100644 src/screens/legal/en.ts create mode 100644 src/screens/legal/ru.ts create mode 100644 src/screens/opened/OpenedScreen.tsx create mode 100644 src/screens/settings/SettingsScreen.tsx create mode 100644 src/screens/settings/styles.ts create mode 100644 src/themes.ts create mode 100644 src/utils.js create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.bundle/config b/.bundle/config new file mode 100644 index 0000000..848943b --- /dev/null +++ b/.bundle/config @@ -0,0 +1,2 @@ +BUNDLE_PATH: "vendor/bundle" +BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..b52ce82 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,15 @@ +module.exports = { + root: true, + extends: "@react-native-community", + "prettier/prettier": [ + "error", + { + arrowParens: "avoid", + bracketSameLine: true, + bracketSpacing: false, + singleQuote: true, + trailingComma: "all", + tabWidth: 4, + }, + ], +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c8b5375 --- /dev/null +++ b/.gitignore @@ -0,0 +1,78 @@ +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +ios/.xcode.env.local + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml +*.hprof +.cxx/ +*.keystore +!debug.keystore + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ + +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output + +# Bundle artifact +*.jsbundle + +# Ruby / CocoaPods +/ios/Pods/ +/vendor/bundle/ + +# Temporary files created by Metro to check the health of the file watcher +.metro-health-check* +.vscode/settings.json + +.expo/ +.expo-shared/ +.watchmanconfig + +coverage/ + +npm-debug.log* +yarn-debug.log* + +.env +.env.* # For environment-specific variants + +*.swp # Swap files \ No newline at end of file diff --git a/.node-version b/.node-version new file mode 100644 index 0000000..3c03207 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +18 diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..49cdd66 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.7.6 diff --git a/App.tsx b/App.tsx new file mode 100644 index 0000000..8d20b32 --- /dev/null +++ b/App.tsx @@ -0,0 +1,635 @@ +import AsyncStorage from '@react-native-async-storage/async-storage'; +import Icon from 'react-native-vector-icons/MaterialIcons'; +import React, { FC, useEffect, useRef, useState } from 'react'; +import { CombinedDefaultTheme, CombinedDarkTheme } from './src/themes'; +import { DrawerActions, NavigationContainer, useNavigation } from '@react-navigation/native'; +import { Provider as PaperProvider, BottomNavigation, useTheme, Searchbar } from 'react-native-paper'; +import { View, Appearance, ActivityIndicator, Image } from 'react-native'; +import { changeLanguage } from './src/i18n/i18n'; +import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; +import { createContext } from 'react'; +import { createDrawerNavigator } from '@react-navigation/drawer'; +import { createNativeStackNavigator } from '@react-navigation/native-stack'; +import { useTranslation } from 'react-i18next'; + +const colorScheme = Appearance.getColorScheme(); + +import { CatalogScreen as InnerCatalogScreen } from './src/screens/catalog/CatalogScreen'; + +/** + *A screen component that renders the user's favorite calculators. + * + * @param {Object} navigation - The navigation object used to navigate to other screens. + * @returns {JSX.Element} The rendered screen. + */ +function FavoritesScreen({ navigation }: any): JSX.Element { + const theme = useTheme(); + const { t } = useTranslation(); + return ( + + + + ); +} + +/** + * A screen component that renders the user's recent use of calculators. + * + * @param {Object} navigation - The navigation object used to navigate to other screens. + * @returns {JSX.Element} The rendered screen. + */ +function RecentScreen({ navigation }: any): JSX.Element { + const theme = useTheme(); + const { t } = useTranslation(); + return ( + + + + ); +} + +/** + * A screen component that renders all available calculations. + * @returns {JSX.Element} The rendered screen. + */ +function HomeScreen(): JSX.Element { + const theme = useTheme(); + const { t } = useTranslation(); + return ( + + + + ); +} + +import InnerLegalScreen from './src/screens/legal/LegalScreen'; + +/** + * A screen component that renders legal information. + * @returns {JSX.Element} The rendered screen. + */ +function LegalScreen(): JSX.Element { + const theme = useTheme(); + + return ( + + + + ); +} + +import InnerAboutScreen from './src/screens/about/AboutScreen'; + +/** +A screen component that renders information about the app. +* @param {Object} navigation - The navigation object used to navigate to other screens. +* @returns {JSX.Element} The rendered screen. +*/ +function AboutScreen(): JSX.Element { + // Get the current theme + const theme = useTheme(); + + return ( + + + + ); +} + +import InnerSettingsScreen from './src/screens/settings/SettingsScreen'; + +/** + * Renders a settings screen component. + * @returns {JSX.Element} The rendered settings screen component. + */ +function SettingsScreen(): JSX.Element { + // Get the current theme + const theme = useTheme(); + + return ( + + + + ); +} + +const Tab = createBottomTabNavigator(); + +/** + * Renders a tab navigation component for the home screen. + * @returns {JSX.Element} The rendered tab navigation component. + */ +function HomeTabs(): JSX.Element { + // Use the translation hook to get the translation function + const { t } = useTranslation(); + + const navigation = useNavigation(); // Get the navigation object using useNavigation + + const initialRouteRef = useRef(''); + + useEffect(() => { + const fetchInitialRoute = async () => { + try { + const value = await AsyncStorage.getItem('favoriteIds'); + const valueObj = JSON.parse(String(value)); + console.log(valueObj.length); + if (valueObj.length > 0) { + initialRouteRef.current = t('favorites:title'); + } else { + initialRouteRef.current = t('all:title'); + } + // Now that we have set the initialRouteRef, navigate to it + navigation.navigate(initialRouteRef.current); + } catch (error) { + console.error('Error reading value from AsyncStorage:', error); + } + }; + + fetchInitialRoute(); + }, []); + + return ( + ( + { + const event = navigation.emit({ + type: 'tabPress', + target: route.key, + canPreventDefault: true, + }); + + if (event.defaultPrevented) { + preventDefault(); + } else { + // Navigate to the selected screen + navigation.navigate(route.name); + } + }} + // Render the icon for each tab + renderIcon={({ route, focused, color }) => { + const { options } = descriptors[route.key]; + if (options.tabBarIcon) { + return options.tabBarIcon({ + focused, + color, + size: 24, + }); + } + return null; + }} + // Get the label for each tab + getLabelText={({ route }: any) => { + const { options } = descriptors[route.key]; + const label = options.tabBarLabel !== undefined ? options.tabBarLabel : options.title !== undefined ? options.title : route.title; + return label; + }} + /> + )} + > + {/* Define each screen */} + ( + + ), + }} + /> + + ( + + ), + }} + /> + ( + + ), + }} + /> + + ); +} + +import { Appbar } from 'react-native-paper'; +import { Drawer as PaperDrawer } from 'react-native-paper'; +import { DebugScreen } from './src/screens/debug/DebugScreen'; + +export const SearchContext = createContext(''); +const Drawer = createDrawerNavigator(); + +/** + * The MainDrawer component is responsible for rendering the custom drawer for the application. It is used in conjunction with the React Navigation Drawer component and the React Native Paper library. It displays a logo, search bar, and menu items for navigating through the app. + * @param {object} navigation - An object containing navigation functions for the component. + * @returns {JSX.Element} The rendered custom drawer. + */ +function MainDrawer({ navigation }: any): JSX.Element { + // Get the current theme using the useTheme hook from React Native Paper + const theme = useTheme(); + + // Get the translation function using the useTranslation hook from i18next + const { t } = useTranslation(); + + // Initialize the search query state with an empty string + const [searchQuery, setSearchQuery] = useState(''); + + // Initialize the background color state with the theme's elevation level 5 color + const [backgroundColor, setBackgroundColor] = useState(theme.colors.elevation.level5); + + // Initialize the active state with the "main" value + const [active, setActive] = React.useState('main'); + + // Set the width of the drawer + const width = 300; + + // Calculate the height of the drawer image based on the aspect ratio and width + const imageAspectRatio = 1.58; // assuming a 4:3 aspect ratio for the image + const imageWidth = width; + const imageHeight = imageWidth / imageAspectRatio; + + // Load the logo image based on the current theme + const logo = theme.dark ? require('./assets/logo_bg_dark.jpg') : require('./assets/logo_bg_light.jpg'); + + // Use a custom drawer content component to override the default drawer content + const CustomDrawerContent = (props: any) => { + //console.log(props.descriptors.name); + return ( + + + + { + setActive('main'); + navigation.navigate(t('main:title')); + }} + /> + { + setActive('settings'); + navigation.navigate(t('settings:title')); + }} + /> + { + setActive('legal'); + navigation.navigate(t('legal:title')); + }} + /> + { + setActive('about'); + navigation.navigate(t('about:title')); + }} + /> + {/* { + navigation.navigate("DEBUG"); + }} + /> */} + + + ); + }; + + return ( + + } + screenOptions={{ + drawerStyle: { + width: 300, + }, + }} + > + ( + + navigation.dispatch(DrawerActions.toggleDrawer())} + /> + setSearchQuery(text)} + value={searchQuery} + onFocus={() => { + setBackgroundColor(theme.colors.background); + navigation.navigate(t('main:title')); + }} + onBlur={() => { + setBackgroundColor(theme.colors.elevation.level5); + }} + style={{ + flex: 1, + marginLeft: 10, + backgroundColor: backgroundColor, + }} + mode="bar" + inputMode="text" + /> + + ), + }} + /> + + ( + + navigation.dispatch(DrawerActions.toggleDrawer())} + /> + + + ), + }} + /> + ( + + navigation.dispatch(DrawerActions.toggleDrawer())} + /> + + + ), + }} + /> + ( + + navigation.dispatch(DrawerActions.toggleDrawer())} + /> + + + ), + }} + /> + ( + + navigation.dispatch(DrawerActions.toggleDrawer())} + /> + + + ), + }} + /> + + + ); +} + +import { OpenedScreen } from './src/screens/opened/OpenedScreen'; +const Stack = createNativeStackNavigator(); + +// Define the types for the navigation props +interface StackHeaderProps { + navigation: any; // Adjust the type according to your navigation library + title?: string; +} + +/** + * The root component of the application. + * @returns {JSX.Element} The rendered application. + */ +function App(): JSX.Element { + // State for active theme + const [activeTheme, setActiveTheme] = useState(colorScheme === 'dark' ? CombinedDarkTheme : CombinedDefaultTheme); + + useEffect(() => { + // Set theme based on device appearance setting + setActiveTheme(colorScheme === 'dark' ? CombinedDarkTheme : CombinedDefaultTheme); + + // Set language preference + const setLanguage = async () => { + await AsyncStorage.getItem('language').then((result) => { + // console.log("lang from asyncstorage"); + // console.log(result); + if (result) { + changeLanguage(result); + } else { + // based on system language + changeLanguage('system'); + } + }); + }; + setLanguage(); + + // Set formatting preset + const setFormat = async () => { + await AsyncStorage.getItem('format').then((result) => { + if (!result) { + AsyncStorage.setItem('format', 'longAndCategory'); + } + }); + }; + setFormat(); + + // Init Favorites + const initFavorites = async () => { + AsyncStorage.getItem('favoriteIds').then((result) => { + // console.log("On app init favorites:"); + // console.log(result); + if (!result) { + // Ceate empty list + AsyncStorage.setItem('favoriteIds', JSON.stringify([])); + } + }); + }; + initFavorites(); + + // Init Recent + const initRecent = async () => { + AsyncStorage.getItem('recentIds').then((result) => { + // console.log("On app init recent:"); + // console.log(result); + if (!result) { + // Ceate empty list + AsyncStorage.setItem('recentIds', JSON.stringify([])); + } + }); + }; + initRecent(); + }, []); + + // Component for Stack Navigator header + const StackHeader: FC = ({ navigation, title = "Calc's name" }) => { + return ( + + navigation.goBack()} /> + + + ); + }; + + return ( + + + , + }} + > + + ({ + title: '', + headerTitle: '', + headerShown: false, + })} + /> + + + + ); +} + +export default App; diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..567e598 --- /dev/null +++ b/Gemfile @@ -0,0 +1,6 @@ +source 'https://rubygems.org' + +# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version +ruby File.read(File.join(__dir__, '.ruby-version')).strip + +gem 'cocoapods', '~> 1.11', '>= 1.11.3' diff --git a/README.md b/README.md new file mode 100644 index 0000000..fd21a6b --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# AnyCheck - набор калькуляторов, опросников и шкал. + +AnyCheck — это актуальный набор калькуляторов, опросников и шкал, как для медицинских работников — в случае принятия клинических решений, так и для пациентов с целью самотестирования. +Не является медицинским инструментом. Проконсультируйтесь с врачом. + +[Скачать в RuStore](https://www.rustore.ru/catalog/app/com.awesomeproject) + +- ключи: /android/gradle.properties diff --git a/__tests__/App-test.tsx b/__tests__/App-test.tsx new file mode 100644 index 0000000..1784766 --- /dev/null +++ b/__tests__/App-test.tsx @@ -0,0 +1,14 @@ +/** + * @format + */ + +import 'react-native'; +import React from 'react'; +import App from '../App'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +it('renders correctly', () => { + renderer.create(); +}); diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..640468e --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,171 @@ +apply plugin: "com.android.application" +apply plugin: "com.facebook.react" + +import com.android.build.OutputFile + +/** + * This is the configuration block to customize your React Native Android app. + * By default you don't need to apply any configuration, just uncomment the lines you need. + */ +react { + /* Folders */ + // The root of your project, i.e. where "package.json" lives. Default is '..' + // root = file("../") + // The folder where the react-native NPM package is. Default is ../node_modules/react-native + // reactNativeDir = file("../node_modules/react-native") + // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen + // codegenDir = file("../node_modules/react-native-codegen") + // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js + // cliFile = file("../node_modules/react-native/cli.js") + + /* Variants */ + // The list of variants to that are debuggable. For those we're going to + // skip the bundling of the JS bundle and the assets. By default is just 'debug'. + // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. + // debuggableVariants = ["liteDebug", "prodDebug"] + + /* Bundling */ + // A list containing the node command and its flags. Default is just 'node'. + // nodeExecutableAndArgs = ["node"] + // + // The command to run when bundling. By default is 'bundle' + // bundleCommand = "ram-bundle" + // + // The path to the CLI configuration file. Default is empty. + // bundleConfig = file(../rn-cli.config.js) + // + // The name of the generated asset file containing your JS bundle + // bundleAssetName = "MyApplication.android.bundle" + // + // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' + // entryFile = file("../js/MyApplication.android.js") + // + // A list of extra flags to pass to the 'bundle' commands. + // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle + // extraPackagerArgs = [] + + /* Hermes Commands */ + // The hermes compiler command to run. By default it is 'hermesc' + // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" + // + // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" + // hermesFlags = ["-O", "-output-source-map"] +} + +/** + * Set this to true to create four separate APKs instead of one, + * one for each native architecture. This is useful if you don't + * use App Bundles (https://developer.android.com/guide/app-bundle/) + * and want to have separate APKs to upload to the Play Store. + */ +def enableSeparateBuildPerCPUArchitecture = false + +/** + * Set this to true to Run Proguard on Release builds to minify the Java bytecode. + */ +def enableProguardInReleaseBuilds = false + +/** + * The preferred build flavor of JavaScriptCore (JSC) + * + * For example, to use the international variant, you can use: + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * + * The international variant includes ICU i18n library and necessary data + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that + * give correct results when using with locales other than en-US. Note that + * this variant is about 6MiB larger per architecture than default. + */ +def jscFlavor = 'org.webkit:android-jsc:+' + +/** + * Private function to get the list of Native Architectures you want to build. + * This reads the value from reactNativeArchitectures in your gradle.properties + * file and works together with the --active-arch-only flag of react-native run-android. + */ +def reactNativeArchitectures() { + def value = project.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +android { + ndkVersion rootProject.ext.ndkVersion + + compileSdkVersion rootProject.ext.compileSdkVersion + + namespace "com.awesomeproject" + defaultConfig { + applicationId "com.awesomeproject" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + } + + splits { + abi { + reset() + enable enableSeparateBuildPerCPUArchitecture + universalApk false // If true, also generate a universal APK + include (*reactNativeArchitectures()) + } + } + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + buildTypes { + debug { + signingConfig signingConfigs.debug + } + release { + // Caution! In production, you need to generate your own keystore file. + // see https://reactnative.dev/docs/signed-apk-android. + signingConfig signingConfigs.debug + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + } + } + + // applicationVariants are e.g. debug, release + applicationVariants.all { variant -> + variant.outputs.each { output -> + // For each separate APK per architecture, set a unique version code as described here: + // https://developer.android.com/studio/build/configure-apk-splits.html + // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. + def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] + def abi = output.getFilter(OutputFile.ABI) + if (abi != null) { // null for the universal-debug, universal-release variants + output.versionCodeOverride = + defaultConfig.versionCode * 1000 + versionCodes.get(abi) + } + + } + } +} + +dependencies { + // The version of react-native is set by the React Native Gradle Plugin + implementation("com.facebook.react:react-android") + + implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") + + debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") + debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { + exclude group:'com.squareup.okhttp3', module:'okhttp' + } + + debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") + } else { + implementation jscFlavor + } +} + +apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) +apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" \ No newline at end of file diff --git a/android/app/debug.keystore b/android/app/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..364e105ed39fbfd62001429a68140672b06ec0de GIT binary patch literal 2257 zcmchYXEfYt8;7T1^dLH$VOTZ%2NOdOH5j5LYLtZ0q7x-V8_6gU5)#7dkq{HTmsfNq zB3ZqcAxeY^G10@?efK?Q&)M(qInVv!xjx+IKEL}p*K@LYvIzo#AZG>st5|P)KF1_Z;y){W{<7K{nl!CPuE z_^(!C(Ol0n8 zK13*rzAtW>(wULKPRYLd7G18F8#1P`V*9`(Poj26eOXYyBVZPno~Cvvhx7vPjAuZo zF?VD!zB~QG(!zbw#qsxT8%BSpqMZ4f70ZPn-3y$L8{EVbbN9$H`B&Z1quk9tgp5FM zuxp3pJ0b8u|3+#5bkJ4SRnCF2l7#DyLYXYY8*?OuAwK4E6J{0N=O3QNVzQ$L#FKkR zi-c@&!nDvezOV$i$Lr}iF$XEcwnybQ6WZrMKuw8gCL^U#D;q3t&HpTbqyD%vG=TeDlzCT~MXUPC|Leb-Uk+ z=vnMd(|>ld?Fh>V8poP;q;;nc@en$|rnP0ytzD&fFkCeUE^kG9Kx4wUh!!rpjwKDP zyw_e|a^x_w3E zP}}@$g>*LLJ4i0`Gx)qltL}@;mDv}D*xR^oeWcWdPkW@Uu)B^X&4W1$p6}ze!zudJ zyiLg@uggoMIArBr*27EZV7djDg@W1MaL+rcZ-lrANJQ%%>u8)ZMWU@R2qtnmG(acP z0d_^!t>}5W zpT`*2NR+0+SpTHb+6Js4b;%LJB;B_-ChhnU5py}iJtku*hm5F0!iql8Hrpcy1aYbT z1*dKC5ua6pMX@@iONI?Hpr%h;&YaXp9n!ND7-=a%BD7v&g zOO41M6EbE24mJ#S$Ui0-brR5ML%@|ndz^)YLMMV1atna{Fw<;TF@>d&F|!Z>8eg>>hkFrV)W+uv=`^F9^e zzzM2*oOjT9%gLoub%(R57p-`TXFe#oh1_{&N-YN z<}artH|m=d8TQuKSWE)Z%puU|g|^^NFwC#N=@dPhasyYjoy(fdEVfKR@cXKHZV-`06HsP`|Ftx;8(YD$fFXumLWbGnu$GMqRncXYY9mwz9$ap zQtfZB^_BeNYITh^hA7+(XNFox5WMeG_LtJ%*Q}$8VKDI_p8^pqX)}NMb`0e|wgF7D zuQACY_Ua<1ri{;Jwt@_1sW9zzdgnyh_O#8y+C;LcZq6=4e^cs6KvmK@$vVpKFGbQ= z$)Eux5C|Fx;Gtmv9^#Y-g@7Rt7*eLp5n!gJmn7&B_L$G?NCN`AP>cXQEz}%F%K;vUs{+l4Q{}eWW;ATe2 zqvXzxoIDy(u;F2q1JH7Sf;{jy_j})F+cKlIOmNfjBGHoG^CN zM|Ho&&X|L-36f}Q-obEACz`sI%2f&k>z5c$2TyTSj~vmO)BW~+N^kt`Jt@R|s!){H ze1_eCrlNaPkJQhL$WG&iRvF*YG=gXd1IyYQ9ew|iYn7r~g!wOnw;@n42>enAxBv*A zEmV*N#sxdicyNM=A4|yaOC5MByts}s_Hpfj|y<6G=o=!3S@eIFKDdpR7|FY>L&Wat&oW&cm&X~ z5Bt>Fcq(fgnvlvLSYg&o6>&fY`ODg4`V^lWWD=%oJ#Kbad2u~! zLECFS*??>|vDsNR&pH=Ze0Eo`sC_G`OjoEKVHY|wmwlX&(XBE<@sx3Hd^gtd-fNwUHsylg06p`U2y_={u}Bc + + + + + + + + diff --git a/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java b/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java new file mode 100644 index 0000000..7b91910 --- /dev/null +++ b/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java @@ -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. + */ +package com.awesomeproject; + +import android.content.Context; +import com.facebook.flipper.android.AndroidFlipperClient; +import com.facebook.flipper.android.utils.FlipperUtils; +import com.facebook.flipper.core.FlipperClient; +import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; +import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; +import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; +import com.facebook.flipper.plugins.inspector.DescriptorMapping; +import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; +import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; +import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; +import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; +import com.facebook.react.ReactInstanceEventListener; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.bridge.ReactContext; +import com.facebook.react.modules.network.NetworkingModule; +import okhttp3.OkHttpClient; + +/** + * Class responsible of loading Flipper inside your React Native application. This is the debug + * flavor of it. Here you can add your own plugins and customize the Flipper setup. + */ +public class ReactNativeFlipper { + public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { + if (FlipperUtils.shouldEnableFlipper(context)) { + final FlipperClient client = AndroidFlipperClient.getInstance(context); + + client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); + client.addPlugin(new DatabasesFlipperPlugin(context)); + client.addPlugin(new SharedPreferencesFlipperPlugin(context)); + client.addPlugin(CrashReporterPlugin.getInstance()); + + NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); + NetworkingModule.setCustomClientBuilder( + new NetworkingModule.CustomClientBuilder() { + @Override + public void apply(OkHttpClient.Builder builder) { + builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); + } + }); + client.addPlugin(networkFlipperPlugin); + client.start(); + + // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized + // Hence we run if after all native modules have been initialized + ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); + if (reactContext == null) { + reactInstanceManager.addReactInstanceEventListener( + new ReactInstanceEventListener() { + @Override + public void onReactContextInitialized(ReactContext reactContext) { + reactInstanceManager.removeReactInstanceEventListener(this); + reactContext.runOnNativeModulesQueueThread( + new Runnable() { + @Override + public void run() { + client.addPlugin(new FrescoFlipperPlugin()); + } + }); + } + }); + } else { + client.addPlugin(new FrescoFlipperPlugin()); + } + } + } +} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..4122f36 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + diff --git a/android/app/src/main/java/com/awesomeproject/MainActivity.java b/android/app/src/main/java/com/awesomeproject/MainActivity.java new file mode 100644 index 0000000..28113b2 --- /dev/null +++ b/android/app/src/main/java/com/awesomeproject/MainActivity.java @@ -0,0 +1,35 @@ +package com.awesomeproject; + +import com.facebook.react.ReactActivity; +import com.facebook.react.ReactActivityDelegate; +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; +import com.facebook.react.defaults.DefaultReactActivityDelegate; + +public class MainActivity extends ReactActivity { + + /** + * Returns the name of the main component registered from JavaScript. This is used to schedule + * rendering of the component. + */ + @Override + protected String getMainComponentName() { + return "AwesomeProject"; + } + + /** + * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link + * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React + * (aka React 18) with two boolean flags. + */ + @Override + protected ReactActivityDelegate createReactActivityDelegate() { + return new DefaultReactActivityDelegate( + this, + getMainComponentName(), + // If you opted-in for the New Architecture, we enable the Fabric Renderer. + DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled + // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18). + DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled + ); + } +} diff --git a/android/app/src/main/java/com/awesomeproject/MainApplication.java b/android/app/src/main/java/com/awesomeproject/MainApplication.java new file mode 100644 index 0000000..105e48c --- /dev/null +++ b/android/app/src/main/java/com/awesomeproject/MainApplication.java @@ -0,0 +1,62 @@ +package com.awesomeproject; + +import android.app.Application; +import com.facebook.react.PackageList; +import com.facebook.react.ReactApplication; +import com.facebook.react.ReactNativeHost; +import com.facebook.react.ReactPackage; +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; +import com.facebook.react.defaults.DefaultReactNativeHost; +import com.facebook.soloader.SoLoader; +import java.util.List; + +public class MainApplication extends Application implements ReactApplication { + + private final ReactNativeHost mReactNativeHost = + new DefaultReactNativeHost(this) { + @Override + public boolean getUseDeveloperSupport() { + return BuildConfig.DEBUG; + } + + @Override + protected List getPackages() { + @SuppressWarnings("UnnecessaryLocalVariable") + List packages = new PackageList(this).getPackages(); + // Packages that cannot be autolinked yet can be added manually here, for example: + // packages.add(new MyReactNativePackage()); + return packages; + } + + @Override + protected String getJSMainModuleName() { + return "index"; + } + + @Override + protected boolean isNewArchEnabled() { + return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; + } + + @Override + protected Boolean isHermesEnabled() { + return BuildConfig.IS_HERMES_ENABLED; + } + }; + + @Override + public ReactNativeHost getReactNativeHost() { + return mReactNativeHost; + } + + @Override + public void onCreate() { + super.onCreate(); + SoLoader.init(this, /* native exopackage */ false); + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + // If you opted-in for the New Architecture, we load the native entry point for this app. + DefaultNewArchitectureEntryPoint.load(); + } + ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); + } +} diff --git a/android/app/src/main/res/drawable/rn_edit_text_material.xml b/android/app/src/main/res/drawable/rn_edit_text_material.xml new file mode 100644 index 0000000..f35d996 --- /dev/null +++ b/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..345888d --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bd30c794d41f5d704091902a299032405615b6ed GIT binary patch literal 5261 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 T2X2_U00000NkvXXu0mjfC~P%T literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb95b4d50916f6d87ce665ad02f6af85b2ed140 GIT binary patch literal 857 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 ZQ)uPcC~-vi@ZbLiprHzfl`2~W{14%Hb=&{| literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab39d1b9e1555ad1ad9347d94240024e3ae80a8 GIT binary patch literal 3707 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..1eafec45db3bd351685173aa7cd9b7418fed5bf3 GIT binary patch literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p{OJ#^NA%Cx&(BWL^Tv_)eocH^APNs{KjR3C%F8}}ncD9$?jy2+U zadRH`{1C5^V*%ZCv#|hPj!LZo01wUXlDYeB*uNEg(e9JtZ+eIZjgGx%?%4#%sw_Vd zlZC!wS9LebeEQhJP&K3YDR-(kAHdHOZOI{4$#pa#lh}A}sLx*}mppTEHg@G8 zgee7t{R)s-EHySg?fvm);_}S(F19N)jr?4=kP&m@1>IB*yP-@;B7BOE8jt~@ z1s7<#3(0|Rqlu<_i(`@}b#s7E=HO>4mqWLTmCvAJ3^8?Ir!wU34ZYHZO#1KLJ=(F@ znkH}F8s#qZlrYdtNOB8z1{TlhZ}B<^Nc^B^BnAf^bm@O21eF}xv@aY^RsPw-g?56m zaZ||GfXxeCxX)xrR8Qwi03Lo$I@dpDNDEY*NdtNnAimV;2h3Lu`hy?-s| zK5XWI$#V?nlN;u9$YkoG45^Y{Q}R5%!x&Pd++lwY2j2)&Lq*KLe^gX7K!Ew5kXR`j z{UT8MO_L(sD0Njz9I>HUkWiu(FI)~uMkR2R#1=OmEKz<1>fXbbQY0bpoVzL^G0|J! z{5cAozD5c)bW2xvbVyD|;_W`It!213dqdsu8u>;Q-HjE;fN)c}cG4BtyXopC#c^y? zQ&W_Jg1iNI9NXOb*=^=&+ruljvv<1yTtD-l=LXJMGFF;?R?JQ2)~5uH|ml!G+=NNVrk1dD9Me2GfG1ydLx2EMJ`Idjrb2{V%4ZwOcn)wGK+UJYz+ z=xIL_Ls3A&2UQv(P>Pl8VYJPKT14fd9xiLHhXsVD>Ww~LMf@qaF1Mhcy{^N5TFlJ0 z?{?cKy!~C%ok&sQZUYEM`VK}fDj$tSyB5#ipXGyI6>@PkM|jytn!Q>hDJo#DZ*I!> z3Gfz>DU_e3ALe`vzSGh#0_e{85OvV8>zv!KE|`q7ij{4(Nwv1k7it+Xag)0b4d!c3 zTb5Xj6lO{%8l`J0+@ixBXdhWtz4zFsf=txN5!y+Mb2a!g#zmFNb_JFSYXbu4GKm&q z-H?cihWrLhQutZwSn%8DhOz&!D_EZ=IJg$(wZ?lnnv}LN&f05NDgCzbZeB}1KM6!% zSBjg`T3-j=vItdH*ss}V97|q3?tnM%kF*kr3a#nSW)y@PrRZwKgkAODNhzEpVq{85 zD)t46_hFZO9)TS@Xqk|#(ML~seDO}{jWT9T|79S>G4LcL+p1ZLav1j4-W%u25Tz9y zcvxZyhoDt#Z*6C`(&l}7n%aDlvpZi#E_W}TmR`NH=G2MBbjmKax$634?#4}C?8&(M z*3~!X?#9mCm%t@?`~%YRI}r}UXs@n$a`jLDJaLFLK?kC-fYiExKEIE$vs%Duv5X}Q z4#G$`Y~TUmISf-0oyA#$ z5E{4f0w856XV*NRnRB7aR2P`5vtNvv-7mj7L z)>%)HN;xZ9Q~!m2P~0O{<-zWRgvelcR{+VUb&*=h{5Rny#^&$;f=&MuuG_g-mjYDVLGZVaY@u$ zEk&{O+dEnLl#zXx`q#CpO{#bb_lI^9x}=ZtECTvT<3v>2VLvmwGbHT$8>H#DF|y-}ptsGQZ_cuJ!lD;9`l-qD#t!#aAqV2La~k2X2p(BI z_SF0z9hPE;xu(JNSgJu~xKbV=PfjmRB3)3V*i(Op%P}p58qH8R>cobyh5!AWR% z9n*d);IJ;lUW2pl53(5A>`Dq?jS*$L$pPV%r54Jf$7=h@exMu>x1JJrfL^#Z#0v-p nz>Yj%v0Nzsu*m-(!eV=?BUGld*WY;j?*VpJPM2O<1f={2ySC6K literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..b13b87d7fc705487bf5c6be9420dae1452fb01a5 GIT binary patch literal 2048 zcmb`IYdq5n1IPbjE?Z1!9CC|8?)PTpGNZIC7Gf@w%b{YCNkXxdOKFsl5?Yx{VAZN}KcCO@y!ico@4jz-FTOXip6>Esbua(`^5|o3-anS` zZ)Bx^bbge7-;a?<@ODQ5^!|Nw03gFcySeyY4p}G-BB(^FWqn9bI>#PI$;p}(>&#w8 zVI`W)jw)M#ENsd6J&JLn;}H(OxnUgiqd7>6Q`pgmN69W0b~-|Hm(mL`6oQL__yr0U zg|SI9He7Eiw~gIYA300=5Ns!gu6M7&4VQlhh0B8vEP z*sj|TBzvcicSxz($dq&y-H@}4Qn0*dBBvbMyD!whU&)}o1ksM6>tje(38V+X=n^1e z2C!ik{Fi_vlmUV7|Eh_g0Cf&ZyZciJz? z$vc|K?YXFKpAZEI{$zrwTPWv~cg<)aEKgBNPNs>G>9ybWI%!gzYPO1&v(rV_h?Q`V zn7XHdmvw!KP3&?l6G)6t5PDZ4C^qK@I(l(+RjY!FY;VOCcwnaYra zk=24!81I?ZTq(~-gK?_n!8MZ`(2WdIy=ZDOi({T#BWV(vT58?X^viepT0@ia=fx38 zTAgnVeT1!r{k|7!Tm0g34%*X*KoZ?w86EZnME!e3B8lroQ^#m!a4$-w+qn99XrW^V zwfBsq=~nX|KPLh=AZ=A&x3sV9E)u{okZr-wmoeh8&>ODZIADC`_qpc<1p%s*v$)N{ zamb5iW-8Av^(88qDGjMz#LWCv=U!2IfAx?ptUdfh=V2YrV%6<|GvA&Z0XtPx-S1#0 zl3&AD$rhK`v)9D?(7vE4e(PWSqLt0veWzwLENR*h|BExFPfHfcWnlT0EsAv+-QTWc zjcr(Om(Mt;TnUPKLoGL7bCfq#M}MG(YK};J{tTp~eBGcwH8T*(PagI^tJMlj8?VW= zvghAW-B(>K{Mgn1zM-&7EB;}GT01i#1s4UgSJM#Wv{m;*+YHc`#vdWTuOFL73Ia3~ zoB~aCHv8uTLWdg2qV8-n7D#YdeZ44MRLvE)fHR<|?En1hFle0&yHmdR$m&hX2H0640&{&RtqV4;hNc6xFq# zE;o%k%G6Oe8@hcD3TjDVanD&SlJm}R_53Ob6-1+o8losro0zX2uRg&t=eXHWJsmvE z@>ww)GtV5w63Ye>+QaWow~$ia86D!Mg`JkR=NN8i?69?0BMQR-(r|J|-nj z4f^aNNXe{Ux!3yUMV%{H&ClpXi?WiOxP3%ypp;C+o|H2Utg=7~PlRb&?k{<8JH3kq z_sCBHJ*-xOkbgQq@t74d^W)nGZ%EU&~PQw zg}lu0vW8Hm2Y-?SDgI^|8A$1=f@r{t__sf<;=S-SM82}>J1ZFas_dXg zzg4l_a=7=#9m0cl%CB;4FWu}_36E&;n3puM|LO8jXA80{@QFA^#lu&(?Df2O@0fWEt6(1ehkyq2NzX zEUheKA+=b1b!ze;m%MQ9`tsX2(9xcHJ!V{#bL@LWWM8^9?|`9^G2^VyQvIzfXMo+Q z;6v%}n; zljic=;1m(k>RlpUe&}Ieo99s4ey5b(i|(+!IL?EN!iAmblj~{z@AQ}a4V5KlL@v1Z<@u!zTgOs#L-rAITy?=KcV~~ O9Y7!Pbfcp}GyVbO$k1Q_ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..115a4c768a20c9e13185c17043f4c4d12dd4632a GIT binary patch literal 2858 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 ZE~nHk@72d&g21AW!PC{xWt~$(696xjk{18~ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..be5efa7f28a88d09a4e60b054cc016e5b65c2863 GIT binary patch literal 6037 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 IqHWlJ0Qm-2^#A|> literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..459ca609d3ae0d3943ab44cdc27feef9256dc6d7 GIT binary patch literal 7098 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ace9dbe878b64758824b252960f0f459f50b75e4 GIT binary patch literal 12701 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..e29137d0372674fe9745f5648c5774fbd659983b GIT binary patch literal 11667 zcmeHt#3ASvApDIndgq#`kNkL1vZGzdJ$ z`~3sn56`D(t$Ws)HD{eU`-;7$H(+A7teRWHCK}uj6rY z=T}$4Sn7GA;7qU`H)`}Ptxc_X2x!3H9HI$6>DPS;(v;(44-bE~Ni1$t+Jnlqyowaq z-OUT~f3bT%cY1|Z*WSL0H2UjXx&MV*rQib^E^ztaD*r;mU;?f;uh2qaN&mU`#A1R` zCgZ7b^#a-2@;S7UYGrMgZ=-xk$r^DQ&IjQoEzXY3y9GenQzXH`{4sV z1_(@%_~sFoY%dKUgrQ*Lr|97VUcjn

e}`rpQ6FKo(qc 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 BFA4wv literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..889d3e75e140627cc132da99d5e1c0b19a809251 GIT binary patch literal 9350 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 oGmyI(7-xXo&E)E`9^_m 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 BIP(Ai literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/play_store_512.png b/android/app/src/main/res/play_store_512.png new file mode 100644 index 0000000000000000000000000000000000000000..3797daf95dc2428360ac68240dd98eb91a32679b GIT binary patch literal 27395 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 Kvl3J1@c#jb8nLqg literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..d66c9ff --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + AnyCheck + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..7ba83a2 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/android/app/src/main/res_20230413.7z b/android/app/src/main/res_20230413.7z new file mode 100644 index 0000000000000000000000000000000000000000..7120efc79df368162b114a79b8b9ab19a4c3c94f GIT binary patch literal 67705 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 literal 0 HcmV?d00001 diff --git a/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java b/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java new file mode 100644 index 0000000..72b9eef --- /dev/null +++ b/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java @@ -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. + */ +package com.awesomeproject; + +import android.content.Context; +import com.facebook.react.ReactInstanceManager; + +/** + * Class responsible of loading Flipper inside your React Native application. This is the release + * flavor of it so it's empty as we don't want to load Flipper. + */ +public class ReactNativeFlipper { + public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { + // Do nothing as we don't want to initialize Flipper on Release. + } +} diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..67d887b --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,21 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext { + buildToolsVersion = "33.0.0" + 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" + } + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:7.3.1") + classpath("com.facebook.react:react-native-gradle-plugin") + } +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..4fde9ea --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,49 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true + +# Version of flipper SDK to use with React Native +FLIPPER_VERSION=0.125.0 + +# Use this property to specify which architecture you want to build. +# You can also override it from the CLI using +# ./gradlew -PreactNativeArchitectures=x86_64 +reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 + +# Use this property to enable support to the new architecture. +# This will allow you to use TurboModules and the Fabric render in +# your application. You should enable this flag either if you want +# to write custom TurboModules/Fabric components OR use libraries that +# are providing them. +newArchEnabled=false + +# Use this property to enable or disable the Hermes JS engine. +# If set to false, you will be using JSC instead. +hermesEnabled=true + +MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore +MYAPP_UPLOAD_KEY_ALIAS=my-key-alias +MYAPP_UPLOAD_STORE_PASSWORD=xxx +MYAPP_UPLOAD_KEY_PASSWORD=xxx \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..41d9927a4d4fb3f96a785543079b8df6723c946b GIT binary patch literal 59821 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 literal 0 HcmV?d00001 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..8fad3f5 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew new file mode 100644 index 0000000..1b6c787 --- /dev/null +++ b/android/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..c587703 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,4 @@ +rootProject.name = 'AwesomeProject' +apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) +include ':app' +includeBuild('../node_modules/react-native-gradle-plugin') diff --git a/app.json b/app.json new file mode 100644 index 0000000..d181213 --- /dev/null +++ b/app.json @@ -0,0 +1,4 @@ +{ + "name": "AwesomeProject", + "displayName": "AnyCheck" +} \ No newline at end of file diff --git a/assets/logo_bg_dark.jpg b/assets/logo_bg_dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6fdbf644f0ef036884e086d4095e70ea6fb9414e GIT binary patch literal 126736 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 Qva#a+==Lnb|F`h}0lRgC*8l(j literal 0 HcmV?d00001 diff --git a/assets/logo_bg_light.jpg b/assets/logo_bg_light.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6421b422ce9b64f0c911eb205187563604cc4fab GIT binary patch literal 150139 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 literal 0 HcmV?d00001 diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..48d2ed8 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,4 @@ +module.exports = { + presets: ["module:metro-react-native-babel-preset"], + plugins: ["react-native-reanimated/plugin"], +}; diff --git a/index.js b/index.js new file mode 100644 index 0000000..a850d03 --- /dev/null +++ b/index.js @@ -0,0 +1,9 @@ +/** + * @format + */ + +import {AppRegistry} from 'react-native'; +import App from './App'; +import {name as appName} from './app.json'; + +AppRegistry.registerComponent(appName, () => App); diff --git a/ios/.xcode.env b/ios/.xcode.env new file mode 100644 index 0000000..3d5782c --- /dev/null +++ b/ios/.xcode.env @@ -0,0 +1,11 @@ +# This `.xcode.env` file is versioned and is used to source the environment +# used when running script phases inside Xcode. +# To customize your local environment, you can create an `.xcode.env.local` +# file that is not versioned. + +# NODE_BINARY variable contains the PATH to the node executable. +# +# Customize the NODE_BINARY variable here. +# For example, to use nvm with brew, add the following line +# . "$(brew --prefix nvm)/nvm.sh" --no-use +export NODE_BINARY=$(command -v node) diff --git a/ios/AwesomeProject.xcodeproj/project.pbxproj b/ios/AwesomeProject.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b1d77e0 --- /dev/null +++ b/ios/AwesomeProject.xcodeproj/project.pbxproj @@ -0,0 +1,702 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */; }; + 0C80B921A6F3F58F76C31292 /* libPods-AwesomeProject.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 7699B88040F8A987B510C191 /* libPods-AwesomeProject-AwesomeProjectTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */; }; + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; + remoteInfo = AwesomeProject; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AwesomeProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AwesomeProjectTests.m; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* AwesomeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AwesomeProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = AwesomeProject/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = AwesomeProject/AppDelegate.mm; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AwesomeProject/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AwesomeProject/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = AwesomeProject/main.m; sourceTree = ""; }; + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AwesomeProject-AwesomeProjectTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.debug.xcconfig"; sourceTree = ""; }; + 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.release.xcconfig"; sourceTree = ""; }; + 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; sourceTree = ""; }; + 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AwesomeProject.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AwesomeProject/LaunchScreen.storyboard; sourceTree = ""; }; + 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00E356EB1AD99517003FC87E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7699B88040F8A987B510C191 /* libPods-AwesomeProject-AwesomeProjectTests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0C80B921A6F3F58F76C31292 /* libPods-AwesomeProject.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00E356EF1AD99517003FC87E /* AwesomeProjectTests */ = { + isa = PBXGroup; + children = ( + 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */, + 00E356F01AD99517003FC87E /* Supporting Files */, + ); + path = AwesomeProjectTests; + sourceTree = ""; + }; + 00E356F01AD99517003FC87E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 00E356F11AD99517003FC87E /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* AwesomeProject */ = { + isa = PBXGroup; + children = ( + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, + 13B07FB71A68108700A75B9A /* main.m */, + ); + name = AwesomeProject; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */, + 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* AwesomeProject */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 00E356EF1AD99517003FC87E /* AwesomeProjectTests */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + BBD78D7AC51CEA395F1C20DB /* Pods */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* AwesomeProject.app */, + 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + BBD78D7AC51CEA395F1C20DB /* Pods */ = { + isa = PBXGroup; + children = ( + 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */, + 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */, + 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */, + 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 00E356ED1AD99517003FC87E /* AwesomeProjectTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */; + buildPhases = ( + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, + 00E356EA1AD99517003FC87E /* Sources */, + 00E356EB1AD99517003FC87E /* Frameworks */, + 00E356EC1AD99517003FC87E /* Resources */, + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 00E356F51AD99517003FC87E /* PBXTargetDependency */, + ); + name = AwesomeProjectTests; + productName = AwesomeProjectTests; + productReference = 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 13B07F861A680F5B00A75B9A /* AwesomeProject */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */; + buildPhases = ( + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, + FD10A7F022414F080027D42C /* Start Packager */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = AwesomeProject; + productName = AwesomeProject; + productReference = 13B07F961A680F5B00A75B9A /* AwesomeProject.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1210; + TargetAttributes = { + 00E356ED1AD99517003FC87E = { + CreatedOnToolsVersion = 6.2; + TestTargetID = 13B07F861A680F5B00A75B9A; + }; + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1120; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* AwesomeProject */, + 00E356ED1AD99517003FC87E /* AwesomeProjectTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 00E356EC1AD99517003FC87E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + }; + 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-AwesomeProject-AwesomeProjectTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-AwesomeProject-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + FD10A7F022414F080027D42C /* Start Packager */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Start Packager"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 00E356EA1AD99517003FC87E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 13B07F861A680F5B00A75B9A /* AwesomeProject */; + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 00E356F61AD99517003FC87E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AwesomeProjectTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject"; + }; + name = Debug; + }; + 00E356F71AD99517003FC87E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = AwesomeProjectTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + "$(inherited)", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject"; + }; + name = Release; + }; + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = AwesomeProject/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = AwesomeProject; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = AwesomeProject/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = AwesomeProject; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + ); + SDKROOT = iphoneos; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFOLLY_NO_CONFIG", + "-DFOLLY_MOBILE=1", + "-DFOLLY_USE_LIBCPP=1", + ); + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00E356F61AD99517003FC87E /* Debug */, + 00E356F71AD99517003FC87E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme b/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme new file mode 100644 index 0000000..20f13d1 --- /dev/null +++ b/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/AwesomeProject/AppDelegate.h b/ios/AwesomeProject/AppDelegate.h new file mode 100644 index 0000000..5d28082 --- /dev/null +++ b/ios/AwesomeProject/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : RCTAppDelegate + +@end diff --git a/ios/AwesomeProject/AppDelegate.mm b/ios/AwesomeProject/AppDelegate.mm new file mode 100644 index 0000000..029aa44 --- /dev/null +++ b/ios/AwesomeProject/AppDelegate.mm @@ -0,0 +1,36 @@ +#import "AppDelegate.h" + +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + self.moduleName = @"AwesomeProject"; + // You can add your custom initial props in the dictionary below. + // They will be passed down to the ViewController used by React Native. + self.initialProps = @{}; + + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. +/// +/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html +/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). +/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`. +- (BOOL)concurrentRootEnabled +{ + return true; +} + +@end diff --git a/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..8121323 --- /dev/null +++ b/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,53 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/AwesomeProject/Images.xcassets/Contents.json b/ios/AwesomeProject/Images.xcassets/Contents.json new file mode 100644 index 0000000..2d92bd5 --- /dev/null +++ b/ios/AwesomeProject/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/AwesomeProject/Info.plist b/ios/AwesomeProject/Info.plist new file mode 100644 index 0000000..c6aa299 --- /dev/null +++ b/ios/AwesomeProject/Info.plist @@ -0,0 +1,55 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + AwesomeProject + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSLocationWhenInUseUsageDescription + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/AwesomeProject/LaunchScreen.storyboard b/ios/AwesomeProject/LaunchScreen.storyboard new file mode 100644 index 0000000..1ba1a64 --- /dev/null +++ b/ios/AwesomeProject/LaunchScreen.storyboard @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/AwesomeProject/main.m b/ios/AwesomeProject/main.m new file mode 100644 index 0000000..d645c72 --- /dev/null +++ b/ios/AwesomeProject/main.m @@ -0,0 +1,10 @@ +#import + +#import "AppDelegate.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/ios/AwesomeProjectTests/AwesomeProjectTests.m b/ios/AwesomeProjectTests/AwesomeProjectTests.m new file mode 100644 index 0000000..adc7bf1 --- /dev/null +++ b/ios/AwesomeProjectTests/AwesomeProjectTests.m @@ -0,0 +1,66 @@ +#import +#import + +#import +#import + +#define TIMEOUT_SECONDS 600 +#define TEXT_TO_LOOK_FOR @"Welcome to React" + +@interface AwesomeProjectTests : XCTestCase + +@end + +@implementation AwesomeProjectTests + +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test +{ + if (test(view)) { + return YES; + } + for (UIView *subview in [view subviews]) { + if ([self findSubviewInView:subview matching:test]) { + return YES; + } + } + return NO; +} + +- (void)testRendersWelcomeScreen +{ + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; + BOOL foundElement = NO; + + __block NSString *redboxError = nil; +#ifdef DEBUG + RCTSetLogFunction( + ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { + if (level >= RCTLogLevelError) { + redboxError = message; + } + }); +#endif + + while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + + foundElement = [self findSubviewInView:vc.view + matching:^BOOL(UIView *view) { + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { + return YES; + } + return NO; + }]; + } + +#ifdef DEBUG + RCTSetLogFunction(RCTDefaultLogFunction); +#endif + + XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); + XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); +} + +@end diff --git a/ios/AwesomeProjectTests/Info.plist b/ios/AwesomeProjectTests/Info.plist new file mode 100644 index 0000000..ba72822 --- /dev/null +++ b/ios/AwesomeProjectTests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..c253829 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,60 @@ +require_relative '../node_modules/react-native/scripts/react_native_pods' +require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' + +platform :ios, min_ios_version_supported +prepare_react_native_project! + +# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. +# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded +# +# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js` +# ```js +# module.exports = { +# dependencies: { +# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), +# ``` +flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled + +linkage = ENV['USE_FRAMEWORKS'] +if linkage != nil + Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green + use_frameworks! :linkage => linkage.to_sym +end + +target 'AwesomeProject' do + config = use_native_modules! + + # Flags change depending on the env values. + flags = get_default_flags() + + use_react_native!( + :path => config[:reactNativePath], + # Hermes is now enabled by default. Disable by setting this flag to false. + # Upcoming versions of React Native may rely on get_default_flags(), but + # we make it explicit here to aid in the React Native upgrade process. + :hermes_enabled => flags[:hermes_enabled], + :fabric_enabled => flags[:fabric_enabled], + # Enables Flipper. + # + # Note that if you have use_frameworks! enabled, Flipper will not work and + # you should disable the next line. + :flipper_configuration => flipper_config, + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." + ) + + target 'AwesomeProjectTests' do + inherit! :complete + # Pods for testing + end + + post_install do |installer| + react_native_post_install( + installer, + # Set `mac_catalyst_enabled` to `true` in order to apply patches + # necessary for Mac Catalyst builds + :mac_catalyst_enabled => false + ) + __apply_Xcode_12_5_M1_post_install_workaround(installer) + end +end diff --git a/metro.config.js b/metro.config.js new file mode 100644 index 0000000..e91aba9 --- /dev/null +++ b/metro.config.js @@ -0,0 +1,17 @@ +/** + * Metro configuration for React Native + * https://github.com/facebook/react-native + * + * @format + */ + +module.exports = { + transformer: { + getTransformOptions: async () => ({ + transform: { + experimentalImportSupport: false, + inlineRequires: true, + }, + }), + }, +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..42801d2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12998 @@ +{ + "name": "AwesomeProject", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "AwesomeProject", + "version": "0.0.1", + "dependencies": { + "@react-native-async-storage/async-storage": "^1.18.1", + "@react-navigation/bottom-tabs": "^6.5.7", + "@react-navigation/drawer": "^6.6.2", + "@react-navigation/native": "^6.1.6", + "@react-navigation/native-stack": "^6.9.12", + "@react-navigation/stack": "^6.3.16", + "deepmerge": "^4.3.1", + "i18next": "^22.4.15", + "react": "18.2.0", + "react-hook-form": "^7.43.9", + "react-i18next": "^12.2.2", + "react-native": "^0.71.8", + "react-native-config": "^1.5.1", + "react-native-device-info": "^10.6.0", + "react-native-dropdown-picker": "^5.4.6", + "react-native-gesture-handler": "^2.10.0", + "react-native-localize": "^3.0.0", + "react-native-modalize": "^2.1.1", + "react-native-paper": "^5.7.2", + "react-native-reanimated": "^3.1.0", + "react-native-safe-area-context": "^4.5.2", + "react-native-screens": "*", + "react-native-vector-icons": "^9.2.0" + }, + "devDependencies": { + "@babel/core": "^7.21.8", + "@babel/preset-env": "^7.21.5", + "@babel/runtime": "^7.21.5", + "@react-native-community/eslint-config": "^3.2.0", + "@tsconfig/react-native": "^3.0.1", + "@types/jest": "^29.5.1", + "@types/react": "^18.2.6", + "@types/react-native": "^0.72.0", + "@types/react-native-vector-icons": "^6.4.13", + "@types/react-test-renderer": "^18.0.0", + "babel-jest": "^29.2.1", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "jest": "^29.2.1", + "metro-react-native-babel-preset": "^0.76.4", + "prettier": "^2.8.8", + "react-test-renderer": "18.2.0", + "typescript": "^5.0.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", + "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "dependencies": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", + "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", + "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dependencies": { + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-default-from": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", + "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-default-from": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-default-from": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz", + "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz", + "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-flow": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "license": "MIT", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-assign": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz", + "integrity": "sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", + "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", + "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz", + "integrity": "sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", + "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", + "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", + "dependencies": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.21.5", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.5", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.21.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.5", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz", + "integrity": "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-flow-strip-types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz", + "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-transform-typescript": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz", + "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@callstack/react-theme-provider": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.8.tgz", + "integrity": "sha512-5U231sYY2sqQOaELX0WBCn+iluV8bFaXIS7em03k4W5Xz0AhGvKlnpLIhDGFP8im/SvNW7/2XoR0BsClhn9t6Q==", + "dependencies": { + "deepmerge": "^3.2.0", + "hoist-non-react-statics": "^3.3.0" + }, + "peerDependencies": { + "react": ">=16.3.0" + } + }, + "node_modules/@callstack/react-theme-provider/node_modules/deepmerge": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", + "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "dependencies": { + "@types/hammerjs": "^2.0.36" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz", + "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", + "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/js": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/create-cache-key-function": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.5.0.tgz", + "integrity": "sha512-LIDZyZgnZss7uikvBKBB/USWwG+GO8+GnwRWT+YkCGDGsqLQlhm9BC3z6+7+eMs1kUlvXQIWEzBR8Q2Pnvx6lg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@react-native-async-storage/async-storage": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.18.1.tgz", + "integrity": "sha512-70aFW8fVCKl+oA1AKPFDpE6s4t9pulj2QeLX+MabEmzfT3urd/3cckv45WJvtocdoIH/oXA3Y+YcCRJCcNa8mA==", + "dependencies": { + "merge-options": "^3.0.4" + }, + "peerDependencies": { + "react-native": "^0.0.0-0 || 0.60 - 0.72 || 1000.0.0" + } + }, + "node_modules/@react-native-community/cli": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.2.2.tgz", + "integrity": "sha512-aZVcVIqj+OG6CrliR/Yn8wHxrvyzbFBY9cj7n0MvRw/P54QUru2nNqUTSSbqv0Qaa297yHJbe6kFDojDMSTM8Q==", + "dependencies": { + "@react-native-community/cli-clean": "^10.1.1", + "@react-native-community/cli-config": "^10.1.1", + "@react-native-community/cli-debugger-ui": "^10.0.0", + "@react-native-community/cli-doctor": "^10.2.2", + "@react-native-community/cli-hermes": "^10.2.0", + "@react-native-community/cli-plugin-metro": "^10.2.2", + "@react-native-community/cli-server-api": "^10.1.1", + "@react-native-community/cli-tools": "^10.1.1", + "@react-native-community/cli-types": "^10.0.0", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "execa": "^1.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "graceful-fs": "^4.1.3", + "prompts": "^2.4.0", + "semver": "^6.3.0" + }, + "bin": { + "react-native": "build/bin.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@react-native-community/cli-clean": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz", + "integrity": "sha512-iNsrjzjIRv9yb5y309SWJ8NDHdwYtnCpmxZouQDyOljUdC9MwdZ4ChbtA4rwQyAwgOVfS9F/j56ML3Cslmvrxg==", + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "prompts": "^2.4.0" + } + }, + "node_modules/@react-native-community/cli-config": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-10.1.1.tgz", + "integrity": "sha512-p4mHrjC+s/ayiNVG6T35GdEGdP6TuyBUg5plVGRJfTl8WT6LBfLYLk+fz/iETrEZ/YkhQIsQcEUQC47MqLNHog==", + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "glob": "^7.1.3", + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/deepmerge": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", + "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@react-native-community/cli-debugger-ui": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz", + "integrity": "sha512-8UKLcvpSNxnUTRy8CkCl27GGLqZunQ9ncGYhSrWyKrU9SWBJJGeZwi2k2KaoJi5FvF2+cD0t8z8cU6lsq2ZZmA==", + "dependencies": { + "serve-static": "^1.13.1" + } + }, + "node_modules/@react-native-community/cli-doctor": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-10.2.2.tgz", + "integrity": "sha512-49Ep2aQOF0PkbAR/TcyMjOm9XwBa8VQr+/Zzf4SJeYwiYLCT1NZRAVAVjYRXl0xqvq5S5mAGZZShS4AQl4WsZw==", + "dependencies": { + "@react-native-community/cli-config": "^10.1.1", + "@react-native-community/cli-platform-ios": "^10.2.1", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "command-exists": "^1.2.8", + "envinfo": "^7.7.2", + "execa": "^1.0.0", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5", + "node-stream-zip": "^1.9.1", + "ora": "^5.4.1", + "prompts": "^2.4.0", + "semver": "^6.3.0", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-hermes": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz", + "integrity": "sha512-urfmvNeR8IiO/Sd92UU3xPO+/qI2lwCWQnxOkWaU/i2EITFekE47MD6MZrfVulRVYRi5cuaFqKZO/ccOdOB/vQ==", + "dependencies": { + "@react-native-community/cli-platform-android": "^10.2.0", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5" + } + }, + "node_modules/@react-native-community/cli-platform-android": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.2.0.tgz", + "integrity": "sha512-CBenYwGxwFdObZTn1lgxWtMGA5ms2G/ALQhkS+XTAD7KHDrCxFF9yT/fnAjFZKM6vX/1TqGI1RflruXih3kAhw==", + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "glob": "^7.1.3", + "logkitty": "^0.7.1" + } + }, + "node_modules/@react-native-community/cli-platform-ios": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz", + "integrity": "sha512-hz4zu4Y6eyj7D0lnZx8Mf2c2si8y+zh/zUTgCTaPPLzQD8jSZNNBtUUiA1cARm2razpe8marCZ1QbTMAGbf3mg==", + "dependencies": { + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "fast-xml-parser": "^4.0.12", + "glob": "^7.1.3", + "ora": "^5.4.1" + } + }, + "node_modules/@react-native-community/cli-plugin-metro": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.2.tgz", + "integrity": "sha512-sTGjZlD3OGqbF9v1ajwUIXhGmjw9NyJ/14Lo0sg7xH8Pv4qUd5ZvQ6+DWYrQn3IKFUMfGFWYyL81ovLuPylrpw==", + "dependencies": { + "@react-native-community/cli-server-api": "^10.1.1", + "@react-native-community/cli-tools": "^10.1.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "metro": "0.73.9", + "metro-config": "0.73.9", + "metro-core": "0.73.9", + "metro-react-native-babel-transformer": "0.73.9", + "metro-resolver": "0.73.9", + "metro-runtime": "0.73.9", + "readline": "^1.3.0" + } + }, + "node_modules/@react-native-community/cli-server-api": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz", + "integrity": "sha512-NZDo/wh4zlm8as31UEBno2bui8+ufzsZV+KN7QjEJWEM0levzBtxaD+4je0OpfhRIIkhaRm2gl/vVf7OYAzg4g==", + "dependencies": { + "@react-native-community/cli-debugger-ui": "^10.0.0", + "@react-native-community/cli-tools": "^10.1.1", + "compression": "^1.7.1", + "connect": "^3.6.5", + "errorhandler": "^1.5.0", + "nocache": "^3.0.1", + "pretty-format": "^26.6.2", + "serve-static": "^1.13.1", + "ws": "^7.5.1" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/@react-native-community/cli-tools": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz", + "integrity": "sha512-+FlwOnZBV+ailEzXjcD8afY2ogFEBeHOw/8+XXzMgPaquU2Zly9B+8W089tnnohO3yfiQiZqkQlElP423MY74g==", + "dependencies": { + "appdirsjs": "^1.2.4", + "chalk": "^4.1.2", + "find-up": "^5.0.0", + "mime": "^2.4.1", + "node-fetch": "^2.6.0", + "open": "^6.2.0", + "ora": "^5.4.1", + "semver": "^6.3.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-10.0.0.tgz", + "integrity": "sha512-31oUM6/rFBZQfSmDQsT1DX/5fjqfxg7sf2u8kTPJK7rXVya5SRpAMaCXsPAG0omsmJxXt+J9HxUi3Ic+5Ux5Iw==", + "dependencies": { + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/eslint-config": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz", + "integrity": "sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/eslint-parser": "^7.18.2", + "@react-native-community/eslint-plugin": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.30.5", + "@typescript-eslint/parser": "^5.30.5", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-ft-flow": "^2.0.1", + "eslint-plugin-jest": "^26.5.3", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-native": "^4.0.0" + }, + "peerDependencies": { + "eslint": ">=8", + "prettier": ">=2" + } + }, + "node_modules/@react-native-community/eslint-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@react-native-community/eslint-plugin/-/eslint-plugin-1.3.0.tgz", + "integrity": "sha512-+zDZ20NUnSWghj7Ku5aFphMzuM9JulqCW+aPXT6IfIXFbb8tzYTTOSeRFOtuekJ99ibW2fUCSsjuKNlwDIbHFg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@react-native/assets": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz", + "integrity": "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==", + "license": "MIT" + }, + "node_modules/@react-native/normalize-color": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", + "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==", + "license": "MIT" + }, + "node_modules/@react-native/polyfills": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz", + "integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==", + "license": "MIT" + }, + "node_modules/@react-native/virtualized-lists": { + "version": "0.72.4", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.72.4.tgz", + "integrity": "sha512-2t8WBVACkKEadtsiGYJaYTix575J/5VQJyqnyL7iDIsd3iG7ODjfMDsTGsVyAA2Av/xeVIuVQRUX0ZzV3cucug==", + "dev": true, + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "peerDependencies": { + "react-native": "*", + "react-test-renderer": "18.2.0" + } + }, + "node_modules/@react-navigation/bottom-tabs": { + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.7.tgz", + "integrity": "sha512-9oZYyRu2z7+1pr2dX5V54rHFPmlj4ztwQxFe85zwpnGcPtGIsXj7VCIdlHnjRHJBBFCszvJGQpYY6/G2+DfD+A==", + "dependencies": { + "@react-navigation/elements": "^1.3.17", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/bottom-tabs/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/@react-navigation/core": { + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz", + "integrity": "sha512-klZ9Mcf/P2j+5cHMoGyIeurEzyBM2Uq9+NoSFrF6sdV5iCWHLFhrCXuhbBiQ5wVLCKf4lavlkd/DDs47PXs9RQ==", + "dependencies": { + "@react-navigation/routers": "^6.1.8", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.23", + "query-string": "^7.1.3", + "react-is": "^16.13.0", + "use-latest-callback": "^0.1.5" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@react-navigation/core/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-navigation/core/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/@react-navigation/drawer": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.2.tgz", + "integrity": "sha512-6qt4guBdz7bkdo/8BLSCcFNdQdSPYyNn05D9cD+VCY3mGThSiD8bRiP9ju+64im7LsSU+bNWXaP8RxA/FtTVQg==", + "dependencies": { + "@react-navigation/elements": "^1.3.17", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-gesture-handler": ">= 1.0.0", + "react-native-reanimated": ">= 1.0.0", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/drawer/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/@react-navigation/elements": { + "version": "1.3.17", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.17.tgz", + "integrity": "sha512-sui8AzHm6TxeEvWT/NEXlz3egYvCUog4tlXA4Xlb2Vxvy3purVXDq/XsM56lJl344U5Aj/jDzkVanOTMWyk4UA==", + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/native": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.6.tgz", + "integrity": "sha512-14PmSy4JR8HHEk04QkxQ0ZLuqtiQfb4BV9kkMXD2/jI4TZ+yc43OnO6fQ2o9wm+Bq8pY3DxyerC2AjNUz+oH7Q==", + "dependencies": { + "@react-navigation/core": "^6.4.8", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.1.23" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/@react-navigation/native-stack": { + "version": "6.9.12", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.12.tgz", + "integrity": "sha512-kS2zXCWP0Rgt7uWaCUKrRl7U2U1Gp19rM1kyRY2YzBPXhWGVPjQ2ygBp88CTQzjgy8M07H/79jvGiZ0mlEJI+g==", + "dependencies": { + "@react-navigation/elements": "^1.3.17", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/native/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-navigation/routers": { + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.8.tgz", + "integrity": "sha512-CEge+ZLhb1HBrSvv4RwOol7EKLW1QoqVIQlE9TN5MpxS/+VoQvP+cLbuz0Op53/iJfYhtXRFd1ZAd3RTRqto9w==", + "dependencies": { + "nanoid": "^3.1.23" + } + }, + "node_modules/@react-navigation/stack": { + "version": "6.3.16", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.16.tgz", + "integrity": "sha512-KTOn9cNuZ6p154Htbl2DiR95Wl+c7niLPRiGs7gjOkyVDGiaGQF9ODNQTYBDE1OxZGHe/EyYc6T2CbmiItLWDg==", + "dependencies": { + "@react-navigation/elements": "^1.3.17", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-gesture-handler": ">= 1.0.0", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/stack/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^2.0.0" + } + }, + "node_modules/@tsconfig/react-native": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/react-native/-/react-native-3.0.1.tgz", + "integrity": "sha512-7C4WVvuKjATN8DU4+l9nuauakWFwNks4ZDNzM00asa3SBdywzqpVrXbN5nwlneivs3Y+98Nk//HNRlIzSMWEBw==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hammerjs": { + "version": "2.0.41", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz", + "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", + "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "18.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", + "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==", + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", + "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-native": { + "version": "0.72.0", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.72.0.tgz", + "integrity": "sha512-g1PJXUQ0SnYTimfTeN9dRqj8VfzvgJjt/eakEH7+tlm/ZiEPiL9xCool4iKmqalthwtM0/BkGhjwrKnJyg1JDA==", + "dev": true, + "dependencies": { + "@react-native/virtualized-lists": "^0.72.4", + "@types/react": "*" + } + }, + "node_modules/@types/react-native-vector-icons": { + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz", + "integrity": "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==", + "dev": true, + "dependencies": { + "@types/react": "*", + "@types/react-native": "^0.70" + } + }, + "node_modules/@types/react-native-vector-icons/node_modules/@types/react-native": { + "version": "0.70.13", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.13.tgz", + "integrity": "sha512-VnC/ny8Eynk3fvY4cnNKXpo/0zUhA2gO64RX51yzVofblOP6TR6jciga0kIjI4c+2eUyWNGrahmiolNm+QU6Cw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-test-renderer": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz", + "integrity": "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.22", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", + "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz", + "integrity": "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/type-utils": "5.55.0", + "@typescript-eslint/utils": "5.55.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz", + "integrity": "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/typescript-estree": "5.55.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz", + "integrity": "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/visitor-keys": "5.55.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz", + "integrity": "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.55.0", + "@typescript-eslint/utils": "5.55.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz", + "integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz", + "integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/visitor-keys": "5.55.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz", + "integrity": "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.55.0", + "@typescript-eslint/types": "5.55.0", + "@typescript-eslint/typescript-estree": "5.55.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz", + "integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.55.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/absolute-path": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", + "integrity": "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", + "license": "MIT" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-fragments": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", + "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", + "dependencies": { + "colorette": "^1.0.7", + "slice-ansi": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "node_modules/ansi-fragments/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-fragments/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/appdirsjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", + "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "license": "MIT" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" + }, + "node_modules/babel-plugin-transform-flow-enums": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", + "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-flow": "^7.12.1" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^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-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001466", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz", + "integrity": "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true, + "license": "MIT" + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.29.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", + "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true, + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/deprecated-react-native-prop-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.1.tgz", + "integrity": "sha512-J0jCJcsk4hMlIb7xwOZKLfMpuJn6l8UtrPEzzQV5ewz5gvKNYakhBuq9h2rWX7YwHHJZFhU5W8ye7dB9oN8VcQ==", + "license": "MIT", + "dependencies": { + "@react-native/normalize-color": "*", + "invariant": "*", + "prop-types": "*" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.330", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz", + "integrity": "sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q==", + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "dependencies": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.40.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "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.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", + "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.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-ft-flow": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-ft-flow/-/eslint-plugin-ft-flow-2.0.3.tgz", + "integrity": "sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "@babel/eslint-parser": "^7.12.0", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "26.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz", + "integrity": "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-native": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-4.0.0.tgz", + "integrity": "sha512-kMmdxrSY7A1WgdqaGC+rY/28rh7kBGNBRsk48ovqkQmdg5j4K+DaFmegENDzMrdLkoufKGRNkKX6bgSwQTCAxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.7.4", + "eslint-plugin-react-native-globals": "^0.1.1" + }, + "peerDependencies": { + "eslint": "^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-native-globals": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz", + "integrity": "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-xml-parser": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.2.tgz", + "integrity": "sha512-DLzIPtQqmvmdq3VUKR7T6omPK/VCRNqgFlGtbESfyhcH2R4I8EzK1/K6E8PkRCK2EabWrUHK32NjYRbEFnnz0Q==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/flow-parser": { + "version": "0.185.2", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.185.2.tgz", + "integrity": "sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hermes-estree": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz", + "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q==" + }, + "node_modules/hermes-parser": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz", + "integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==", + "dependencies": { + "hermes-estree": "0.8.0" + } + }, + "node_modules/hermes-profile-transformer": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", + "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "dependencies": { + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/hermes-profile-transformer/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "dependencies": { + "void-elements": "3.1.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/i18next": { + "version": "22.4.15", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.15.tgz", + "integrity": "sha512-yYudtbFrrmWKLEhl6jvKUYyYunj4bTBCe2qIUYAxbXoPusY7YmdwPvOE6fx6UIfWvmlbCWDItr7wIs8KEBZ5Zg==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.20.6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", + "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", + "import-local": "^3.0.2", + "jest-cli": "^29.5.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/joi": { + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsc-android": { + "version": "250231.0.0", + "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz", + "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==", + "license": "BSD-2-Clause" + }, + "node_modules/jscodeshift": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz", + "integrity": "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.13.16", + "@babel/parser": "^7.13.16", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/preset-flow": "^7.13.13", + "@babel/preset-typescript": "^7.13.0", + "@babel/register": "^7.13.16", + "babel-core": "^7.0.0-bridge.0", + "chalk": "^4.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^3.1.10", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.20.4", + "temp": "^0.8.4", + "write-file-atomic": "^2.3.0" + }, + "bin": { + "jscodeshift": "bin/jscodeshift.js" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/jscodeshift/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/braces/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/fill-range/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/flow-parser": { + "version": "0.201.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.201.0.tgz", + "integrity": "sha512-G4oeDNpNGyIrweF9EnoHatncAihMT0tQgV6NMdyM5I7fhrz9Pr13PJ2KLQ673O4wj9KooTdBpeeYHdDNAQoyyw==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jscodeshift/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscodeshift/node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/logkitty": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", + "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", + "dependencies": { + "ansi-fragments": "^0.2.1", + "dayjs": "^1.8.15", + "yargs": "^15.1.0" + }, + "bin": { + "logkitty": "bin/logkitty.js" + } + }, + "node_modules/logkitty/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/logkitty/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/logkitty/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logkitty/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, + "node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/metro": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.73.9.tgz", + "integrity": "sha512-BlYbPmTF60hpetyNdKhdvi57dSqutb+/oK0u3ni4emIh78PiI0axGo7RfdsZ/mn3saASXc94tDbpC5yn7+NpEg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/parser": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "absolute-path": "^0.0.0", + "accepts": "^1.3.7", + "async": "^3.2.2", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "denodeify": "^1.2.1", + "error-stack-parser": "^2.0.6", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.8.0", + "image-size": "^0.6.0", + "invariant": "^2.2.4", + "jest-worker": "^27.2.0", + "lodash.throttle": "^4.1.1", + "metro-babel-transformer": "0.73.9", + "metro-cache": "0.73.9", + "metro-cache-key": "0.73.9", + "metro-config": "0.73.9", + "metro-core": "0.73.9", + "metro-file-map": "0.73.9", + "metro-hermes-compiler": "0.73.9", + "metro-inspector-proxy": "0.73.9", + "metro-minify-terser": "0.73.9", + "metro-minify-uglify": "0.73.9", + "metro-react-native-babel-preset": "0.73.9", + "metro-resolver": "0.73.9", + "metro-runtime": "0.73.9", + "metro-source-map": "0.73.9", + "metro-symbolicate": "0.73.9", + "metro-transform-plugins": "0.73.9", + "metro-transform-worker": "0.73.9", + "mime-types": "^2.1.27", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "rimraf": "^3.0.2", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "strip-ansi": "^6.0.0", + "temp": "0.8.3", + "throat": "^5.0.0", + "ws": "^7.5.1", + "yargs": "^17.5.1" + }, + "bin": { + "metro": "src/cli.js" + } + }, + "node_modules/metro-babel-transformer": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.9.tgz", + "integrity": "sha512-DlYwg9wwYIZTHtic7dyD4BP0SDftoltZ3clma76nHu43blMWsCnrImHeHsAVne3XsQ+RJaSRxhN5nkG2VyVHwA==", + "dependencies": { + "@babel/core": "^7.20.0", + "hermes-parser": "0.8.0", + "metro-source-map": "0.73.9", + "nullthrows": "^1.1.1" + } + }, + "node_modules/metro-cache": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.73.9.tgz", + "integrity": "sha512-upiRxY8rrQkUWj7ieACD6tna7xXuXdu2ZqrheksT79ePI0aN/t0memf6WcyUtJUMHZetke3j+ppELNvlmp3tOw==", + "dependencies": { + "metro-core": "0.73.9", + "rimraf": "^3.0.2" + } + }, + "node_modules/metro-cache-key": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.73.9.tgz", + "integrity": "sha512-uJg+6Al7UoGIuGfoxqPBy6y1Ewq7Y8/YapGYIDh6sohInwt/kYKnPZgLDYHIPvY2deORnQ/2CYo4tOeBTnhCXQ==" + }, + "node_modules/metro-config": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.73.9.tgz", + "integrity": "sha512-NiWl1nkYtjqecDmw77tbRbXnzIAwdO6DXGZTuKSkH+H/c1NKq1eizO8Fe+NQyFtwR9YLqn8Q0WN1nmkwM1j8CA==", + "dependencies": { + "cosmiconfig": "^5.0.5", + "jest-validate": "^26.5.2", + "metro": "0.73.9", + "metro-cache": "0.73.9", + "metro-core": "0.73.9", + "metro-runtime": "0.73.9" + } + }, + "node_modules/metro-config/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/metro-config/node_modules/@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/metro-config/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/metro-config/node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/metro-config/node_modules/jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dependencies": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/metro-config/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/metro-config/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/metro-core": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.73.9.tgz", + "integrity": "sha512-1NTs0IErlKcFTfYyRT3ljdgrISWpl1nys+gaHkXapzTSpvtX9F1NQNn5cgAuE+XIuTJhbsCdfIJiM2JXbrJQaQ==", + "dependencies": { + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.73.9" + } + }, + "node_modules/metro-file-map": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.73.9.tgz", + "integrity": "sha512-R/Wg3HYeQhYY3ehWtfedw8V0ne4lpufG7a21L3GWer8tafnC9pmjoCKEbJz9XZkVj9i1FtxE7UTbrtZNeIILxQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "anymatch": "^3.0.3", + "debug": "^2.2.0", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "nullthrows": "^1.1.1", + "walker": "^1.0.7" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/metro-file-map/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/metro-file-map/node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/metro-file-map/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/metro-file-map/node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/metro-file-map/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/metro-file-map/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/metro-file-map/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/metro-file-map/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/metro-hermes-compiler": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.73.9.tgz", + "integrity": "sha512-5B3vXIwQkZMSh3DQQY23XpTCpX9kPLqZbA3rDuAcbGW0tzC3f8dCenkyBb0GcCzyTDncJeot/A7oVCVK6zapwg==" + }, + "node_modules/metro-inspector-proxy": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.73.9.tgz", + "integrity": "sha512-B3WrWZnlYhtTrv0IaX3aUAhi2qVILPAZQzb5paO1e+xrz4YZHk9c7dXv7qe7B/IQ132e3w46y3AL7rFo90qVjA==", + "dependencies": { + "connect": "^3.6.5", + "debug": "^2.2.0", + "ws": "^7.5.1", + "yargs": "^17.5.1" + }, + "bin": { + "metro-inspector-proxy": "src/cli.js" + } + }, + "node_modules/metro-inspector-proxy/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/metro-inspector-proxy/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/metro-minify-terser": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.73.9.tgz", + "integrity": "sha512-MTGPu2qV5qtzPJ2SqH6s58awHDtZ4jd7lmmLR+7TXDwtZDjIBA0YVfI0Zak2Haby2SqoNKrhhUns/b4dPAQAVg==", + "dependencies": { + "terser": "^5.15.0" + } + }, + "node_modules/metro-minify-uglify": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.73.9.tgz", + "integrity": "sha512-gzxD/7WjYcnCNGiFJaA26z34rjOp+c/Ft++194Wg91lYep3TeWQ0CnH8t2HRS7AYDHU81SGWgvD3U7WV0g4LGA==", + "dependencies": { + "uglify-es": "^3.1.9" + } + }, + "node_modules/metro-react-native-babel-preset": { + "version": "0.76.4", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.4.tgz", + "integrity": "sha512-BKyfPz7mn3ncgRjqi8Z9nYLbzuuiBWns2AAEIGctQdz9OMMAisPlZmWscv09UjhPXkQc/XtToFETVN7fmHMfug==", + "dev": true, + "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" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/metro-react-native-babel-transformer": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.9.tgz", + "integrity": "sha512-DSdrEHuQ22ixY7DyipyKkIcqhOJrt5s6h6X7BYJCP9AMUfXOwLe2biY3BcgJz5GOXv8/Akry4vTCvQscVS1otQ==", + "dependencies": { + "@babel/core": "^7.20.0", + "babel-preset-fbjs": "^3.4.0", + "hermes-parser": "0.8.0", + "metro-babel-transformer": "0.73.9", + "metro-react-native-babel-preset": "0.73.9", + "metro-source-map": "0.73.9", + "nullthrows": "^1.1.1" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/metro-react-native-babel-transformer/node_modules/metro-react-native-babel-preset": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz", + "integrity": "sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw==", + "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-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-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/metro-resolver": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.73.9.tgz", + "integrity": "sha512-Ej3wAPOeNRPDnJmkK0zk7vJ33iU07n+oPhpcf5L0NFkWneMmSM2bflMPibI86UjzZGmRfn0AhGhs8yGeBwQ/Xg==", + "dependencies": { + "absolute-path": "^0.0.0" + } + }, + "node_modules/metro-runtime": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.9.tgz", + "integrity": "sha512-d5Hs83FpKB9r8q8Vb95+fa6ESpwysmPr4lL1I2rM2qXAFiO7OAPT9Bc23WmXgidkBtD0uUFdB2lG+H1ATz8rZg==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "node_modules/metro-source-map": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.9.tgz", + "integrity": "sha512-l4VZKzdqafipriETYR6lsrwtavCF1+CMhCOY9XbyWeTrpGSNgJQgdeJpttzEZTHQQTLR0csQo0nD1ef3zEP6IQ==", + "dependencies": { + "@babel/traverse": "^7.20.0", + "@babel/types": "^7.20.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.73.9", + "nullthrows": "^1.1.1", + "ob1": "0.73.9", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "node_modules/metro-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-symbolicate": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.9.tgz", + "integrity": "sha512-4TUOwxRHHqbEHxRqRJ3wZY5TA8xq7AHMtXrXcjegMH9FscgYztsrIG9aNBUBS+VLB6g1qc6BYbfIgoAnLjCDyw==", + "dependencies": { + "invariant": "^2.2.4", + "metro-source-map": "0.73.9", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + }, + "bin": { + "metro-symbolicate": "src/index.js" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/metro-symbolicate/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-transform-plugins": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.73.9.tgz", + "integrity": "sha512-r9NeiqMngmooX2VOKLJVQrMuV7PAydbqst5bFhdVBPcFpZkxxqyzjzo+kzrszGy2UpSQBZr2P1L6OMjLHwQwfQ==", + "dependencies": { + "@babel/core": "^7.20.0", + "@babel/generator": "^7.20.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.20.0", + "nullthrows": "^1.1.1" + } + }, + "node_modules/metro-transform-worker": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.73.9.tgz", + "integrity": "sha512-Rq4b489sIaTUENA+WCvtu9yvlT/C6zFMWhU4sq+97W29Zj0mPBjdk+qGT5n1ZBgtBIJzZWt1KxeYuc17f4aYtQ==", + "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.73.9", + "metro-babel-transformer": "0.73.9", + "metro-cache": "0.73.9", + "metro-cache-key": "0.73.9", + "metro-hermes-compiler": "0.73.9", + "metro-source-map": "0.73.9", + "metro-transform-plugins": "0.73.9", + "nullthrows": "^1.1.1" + } + }, + "node_modules/metro/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/metro/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/metro/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/metro/node_modules/metro-react-native-babel-preset": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz", + "integrity": "sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw==", + "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-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-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/metro/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/metro/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/metro/node_modules/temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==", + "engines": [ + "node >=0.8.0" + ], + "dependencies": { + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" + } + }, + "node_modules/metro/node_modules/temp/node_modules/rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node_modules/nocache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", + "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.10.5" + } + }, + "node_modules/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "license": "MIT" + }, + "node_modules/node-notifier": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", + "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.5", + "shellwords": "^0.1.1", + "uuid": "^8.3.2", + "which": "^2.0.2" + } + }, + "node_modules/node-notifier/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-notifier/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-notifier/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-notifier/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "license": "MIT" + }, + "node_modules/node-stream-zip": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "engines": { + "node": ">=0.12.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/antelle" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "license": "MIT" + }, + "node_modules/ob1": { + "version": "0.73.9", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.9.tgz", + "integrity": "sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", + "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-devtools-core": { + "version": "4.27.2", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.2.tgz", + "integrity": "sha512-8SzmIkpO87alD7Xr6gWIEa1jHkMjawOZ+6egjazlnjB4UUcbnzGDf/vBJ4BzGuWWEM+pzrxuzsPpcMqlQkYK2g==", + "license": "MIT", + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, + "node_modules/react-freeze": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz", + "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=17.0.0" + } + }, + "node_modules/react-hook-form": { + "version": "7.43.9", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.43.9.tgz", + "integrity": "sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-i18next": { + "version": "12.2.2", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-12.2.2.tgz", + "integrity": "sha512-KBB6buBmVKXUWNxXHdnthp+38gPyBT46hJCAIQ8rX19NFL/m2ahte2KARfIDf2tMnSAL7wwck6eDOd/9zn6aFg==", + "dependencies": { + "@babel/runtime": "^7.20.6", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 19.0.0", + "react": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "license": "MIT" + }, + "node_modules/react-native": { + "version": "0.71.8", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.8.tgz", + "integrity": "sha512-ftMAuhpgTkbHU9brrqsEyxcNrpYvXKeATY+if22Nfhhg1zW+6wn95w9otwTnA3xHkljPCbng8mUhmmERjGEl7g==", + "dependencies": { + "@jest/create-cache-key-function": "^29.2.1", + "@react-native-community/cli": "10.2.2", + "@react-native-community/cli-platform-android": "10.2.0", + "@react-native-community/cli-platform-ios": "10.2.1", + "@react-native/assets": "1.0.0", + "@react-native/normalize-color": "2.1.0", + "@react-native/polyfills": "2.0.0", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "base64-js": "^1.1.2", + "deprecated-react-native-prop-types": "^3.0.1", + "event-target-shim": "^5.0.1", + "invariant": "^2.2.4", + "jest-environment-node": "^29.2.1", + "jsc-android": "^250231.0.0", + "memoize-one": "^5.0.0", + "metro-react-native-babel-transformer": "0.73.9", + "metro-runtime": "0.73.9", + "metro-source-map": "0.73.9", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1", + "pretty-format": "^26.5.2", + "promise": "^8.3.0", + "react-devtools-core": "^4.26.1", + "react-native-codegen": "^0.71.5", + "react-native-gradle-plugin": "^0.71.18", + "react-refresh": "^0.4.0", + "react-shallow-renderer": "^16.15.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "^0.23.0", + "stacktrace-parser": "^0.1.3", + "use-sync-external-store": "^1.0.0", + "whatwg-fetch": "^3.0.0", + "ws": "^6.2.2" + }, + "bin": { + "react-native": "cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "18.2.0" + } + }, + "node_modules/react-native-codegen": { + "version": "0.71.5", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.71.5.tgz", + "integrity": "sha512-rfsuc0zkuUuMjFnrT55I1mDZ+pBRp2zAiRwxck3m6qeGJBGK5OV5JH66eDQ4aa+3m0of316CqrJDRzVlYufzIg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.14.0", + "flow-parser": "^0.185.0", + "jscodeshift": "^0.13.1", + "nullthrows": "^1.1.1" + } + }, + "node_modules/react-native-config": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/react-native-config/-/react-native-config-1.5.1.tgz", + "integrity": "sha512-g1xNgt1tV95FCX+iWz6YJonxXkQX0GdD3fB8xQtR1GUBEqweB9zMROW77gi2TygmYmUkBI7LU4pES+zcTyK4HA==", + "peerDependencies": { + "react-native-windows": ">=0.61" + }, + "peerDependenciesMeta": { + "react-native-windows": { + "optional": true + } + } + }, + "node_modules/react-native-device-info": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.6.0.tgz", + "integrity": "sha512-/MmINdojWdw2/9rwYpH/dX+1gFP0o78p8yYPjwxiPhoySSL2rZaNi+Mq9VwC+zFi/yQmJUvHntkKSw2KUc7rFw==", + "peerDependencies": { + "react-native": "*" + } + }, + "node_modules/react-native-dropdown-picker": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/react-native-dropdown-picker/-/react-native-dropdown-picker-5.4.6.tgz", + "integrity": "sha512-T1XBHbE++M6aRU3wFYw3MvcOuabhWZ29RK/Ivdls2r1ZkZ62iEBZknLUPeVLMX3x6iUxj4Zgr3X2DGlEGXeHsA==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-gesture-handler": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.10.0.tgz", + "integrity": "sha512-vuNupfa8+6MAUMgbZMk5jSxrmqWyNnR/gR77/iuhdx6cPg1z2MJeeJNmqEtKQcF0InvHp45dOoyRK62peqTJ3Q==", + "dependencies": { + "@egjs/hammerjs": "^2.0.17", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-gradle-plugin": { + "version": "0.71.18", + "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.18.tgz", + "integrity": "sha512-7F6bD7B8Xsn3JllxcwHhFcsl9aHIig47+3eN4IHFNqfLhZr++3ElDrcqfMzugM+niWbaMi7bJ0kAkAL8eCpdWg==" + }, + "node_modules/react-native-localize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-3.0.0.tgz", + "integrity": "sha512-B8taYRLuLIYDzBTKIglA3K6ntjaEwbk6mwQ72ogZYl5ovM00NnpbiZ3sRq8KRVe/V1NGczxT33uVqG6BUWGWhg==", + "peerDependencies": { + "react": ">=18.1.0", + "react-native": ">=0.70.0", + "react-native-macos": ">=0.70.0" + }, + "peerDependenciesMeta": { + "react-native-macos": { + "optional": true + } + } + }, + "node_modules/react-native-modalize": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-native-modalize/-/react-native-modalize-2.1.1.tgz", + "integrity": "sha512-4/7EZWsrUqAAkkAVEnOsSdpAPQaEBewX7TvwFuzgvGDzxKpq3O58I9SnSeU8QtG/r91XYHJNaU5dAuDrcLjUaQ==", + "peerDependencies": { + "react": "> 15.0.0", + "react-native": "> 0.50.0", + "react-native-gesture-handler": "> 1.0.0" + } + }, + "node_modules/react-native-paper": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.7.2.tgz", + "integrity": "sha512-v4py1Zx2OuZ85Pk4K0+0vOIi/VcfkufbXofiXsxVN/HMGd+YeShTITq8aK3p/zuq9qm5OlzxoHga7xA7D51CIQ==", + "dependencies": { + "@callstack/react-theme-provider": "^3.0.8", + "color": "^3.1.2", + "use-latest-callback": "^0.1.5" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-safe-area-context": "*", + "react-native-vector-icons": "*" + } + }, + "node_modules/react-native-reanimated": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.1.0.tgz", + "integrity": "sha512-8YJR7yHnrqK6yKWzkGLVEawi1WZqJ9bGIehKEnE8zG58yLrSwUZe1T220XTbftpkA3r37Sy0kJJ/HOOiaIU+HQ==", + "dependencies": { + "@babel/plugin-transform-object-assign": "^7.16.7", + "@babel/preset-typescript": "^7.16.7", + "convert-source-map": "^2.0.0", + "invariant": "^2.2.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0-0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0-0", + "@babel/plugin-transform-arrow-functions": "^7.0.0-0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", + "@babel/plugin-transform-template-literals": "^7.0.0-0", + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-reanimated/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/react-native-safe-area-context": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.2.tgz", + "integrity": "sha512-oH4/Dm7/PWOOZtFRiA4HE08lsfA948BRq8Fn7TEndYjoDXFoNdbjQRahXzCV8JGP/tv3qrVNeaDE8rmdRRUOlA==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-screens": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.20.0.tgz", + "integrity": "sha512-joWUKWAVHxymP3mL9gYApFHAsbd9L6ZcmpoZa6Sl3W/82bvvNVMqcfP7MeNqVCg73qZ8yL4fW+J/syusHleUgg==", + "dependencies": { + "react-freeze": "^1.0.0", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-vector-icons": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz", + "integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==", + "dependencies": { + "prop-types": "^15.7.2", + "yargs": "^16.1.1" + }, + "bin": { + "fa5-upgrade": "bin/fa5-upgrade.sh", + "generate-icon": "bin/generate-icon.js" + } + }, + "node_modules/react-native-vector-icons/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/react-native-vector-icons/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-native-vector-icons/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/react-native/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/react-native/node_modules/@types/yargs": { + "version": "15.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", + "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/react-native/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/react-native/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, + "node_modules/react-native/node_modules/ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", + "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-test-renderer": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz", + "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-is": "^18.2.0", + "react-shallow-renderer": "^16.15.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readline": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", + "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==" + }, + "node_modules/recast": { + "version": "0.20.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", + "license": "MIT", + "dependencies": { + "ast-types": "0.14.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "license": "MIT", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "license": "MIT" + }, + "node_modules/resolve.exports": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz", + "integrity": "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "license": "MIT" + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/temp": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "license": "MIT", + "dependencies": { + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/terser": { + "version": "5.17.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.3.tgz", + "integrity": "sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg==", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex-range/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/to-regex/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", + "dependencies": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-es/node_modules/commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use-latest-callback": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz", + "integrity": "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ==" + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warn-once": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", + "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..f8b2ab8 --- /dev/null +++ b/package.json @@ -0,0 +1,60 @@ +{ + "name": "AnyCheck", + "version": "0.0.1", + "private": true, + "scripts": { + "android": "react-native run-android", + "ios": "react-native run-ios", + "lint": "eslint .", + "start": "react-native start", + "test": "jest" + }, + "dependencies": { + "@react-native-async-storage/async-storage": "^1.18.1", + "@react-navigation/bottom-tabs": "^6.5.7", + "@react-navigation/drawer": "^6.6.2", + "@react-navigation/native": "^6.1.6", + "@react-navigation/native-stack": "^6.9.12", + "@react-navigation/stack": "^6.3.16", + "deepmerge": "^4.3.1", + "i18next": "^22.4.15", + "react": "18.2.0", + "react-hook-form": "^7.43.9", + "react-i18next": "^12.2.2", + "react-native": "^0.71.8", + "react-native-config": "^1.5.1", + "react-native-device-info": "^10.6.0", + "react-native-dropdown-picker": "^5.4.6", + "react-native-gesture-handler": "^2.10.0", + "react-native-localize": "^3.0.0", + "react-native-modalize": "^2.1.1", + "react-native-paper": "^5.7.2", + "react-native-reanimated": "^3.1.0", + "react-native-safe-area-context": "^4.5.2", + "react-native-screens": "*", + "react-native-vector-icons": "^9.2.0" + }, + "devDependencies": { + "@babel/core": "^7.21.8", + "@babel/preset-env": "^7.21.5", + "@babel/runtime": "^7.21.5", + "@react-native-community/eslint-config": "^3.2.0", + "@tsconfig/react-native": "^3.0.1", + "@types/jest": "^29.5.1", + "@types/react": "^18.2.6", + "@types/react-native": "^0.72.0", + "@types/react-native-vector-icons": "^6.4.13", + "@types/react-test-renderer": "^18.0.0", + "babel-jest": "^29.2.1", + "eslint": "^8.40.0", + "eslint-config-prettier": "^8.8.0", + "jest": "^29.2.1", + "metro-react-native-babel-preset": "^0.76.4", + "prettier": "^2.8.8", + "react-test-renderer": "18.2.0", + "typescript": "^5.0.4" + }, + "jest": { + "preset": "react-native" + } +} diff --git a/run-build-release.bat b/run-build-release.bat new file mode 100644 index 0000000..b6d10b5 --- /dev/null +++ b/run-build-release.bat @@ -0,0 +1,11 @@ +@echo off + +echo Deleting previous release APK... +del /f /q android\app\build\outputs\apk\release\*.apk +del /f /q android\app\build\outputs\apk\release\*.json + +echo Building release APK... +npx react-native run-android --variant=release + +echo Opening Release folder +explorer android\app\build\outputs\apk\release \ No newline at end of file diff --git a/run-debug.bat b/run-debug.bat new file mode 100644 index 0000000..b71e8a8 --- /dev/null +++ b/run-debug.bat @@ -0,0 +1,2 @@ +@echo off +npx react-native run-android \ No newline at end of file diff --git a/src/calcs/ascvd/api.ts b/src/calcs/ascvd/api.ts new file mode 100644 index 0000000..45f754b --- /dev/null +++ b/src/calcs/ascvd/api.ts @@ -0,0 +1,107 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +function calculateASCVDRisk(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: 0, + title: "", + description: "", + }; + } + + const age = Number(input.age); + const gender = input.gender; + const sbp = input.sbp; + const tchol = input.tchol; + const hdlc = input.hdlc; + const race = input.race; + const diabetes = input.diabetes; + const smoker = input.smoker; + const hypertension = input.hypertension; + + let riskScore = 0; + + if (gender === "male") { + riskScore += 0.957; + } else if (gender === "female") { + riskScore += 1.354; + } + + if (race === "black") { + riskScore += 0.188; + } + + if (age >= 20 && age <= 39) { + riskScore += 0.165; + } else if (age >= 40 && age <= 49) { + riskScore += 0.405; + } else if (age >= 50 && age <= 59) { + riskScore += 0.652; + } else if (age >= 60 && age <= 69) { + riskScore += 0.872; + } else if (age >= 70 && age <= 79) { + riskScore += 0.95; + } + + if (tchol !== null) { + riskScore += Math.log(tchol); + } + + if (hdlc !== null) { + riskScore -= Math.log(hdlc); + } + + if (sbp !== null) { + riskScore += Math.log(sbp); + } + + if (diabetes) { + riskScore += 0.573; + } + + if (smoker) { + riskScore += 0.528; + } + + if (hypertension) { + riskScore += 0.691; + } + + let resultVariant: string; + + if (riskScore < -7.5) { + resultVariant = "lowRisk"; + } else if (riskScore >= -7.5 && riskScore < 7.5) { + resultVariant = "borderlineRisk"; + } else if (riskScore >= 7.5 && riskScore < 20) { + resultVariant = "intermediateRisk"; + } else { + resultVariant = "highRisk"; + } + + const selectedVariant = variants[prefs.language][resultVariant]; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score: riskScore, + title: selectedVariant.title, + description: selectedVariant.description, + }; + + return output; +} + +export { calculateASCVDRisk }; diff --git a/src/calcs/ascvd/domain.ts b/src/calcs/ascvd/domain.ts new file mode 100644 index 0000000..603ec22 --- /dev/null +++ b/src/calcs/ascvd/domain.ts @@ -0,0 +1,32 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + age: number | null; + gender: "male" | "female" | undefined; + sbp: number | null; + tchol: number | null; + hdlc: number | null; + race: "white" | "black" | "other" | undefined; + diabetes: boolean | undefined; + smoker: boolean | undefined; + hypertension: boolean | undefined; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number; + title: string; + description: string; +} diff --git a/src/calcs/ascvd/i18n/en.json b/src/calcs/ascvd/i18n/en.json new file mode 100644 index 0000000..985d61a --- /dev/null +++ b/src/calcs/ascvd/i18n/en.json @@ -0,0 +1,21 @@ +{ + "age": "Age", + "ageUnit": "years", + "gender": "Gender", + "male": "Male", + "female": "Female", + "sbp": "Systolic Blood Pressure", + "sbpUnit": "mmHg", + "tchol": "Total Cholesterol", + "hdlc": "HDL Cholesterol", + "cholUnit": "mg/dL", + "race": "Race", + "white": "White", + "black": "Black", + "other": "Other", + "diabetes": "Diabetes", + "smoker": "Smoker", + "yes": "Yes", + "no": "No", + "hypertension": "Treatment for hypertension" +} diff --git a/src/calcs/ascvd/i18n/ru.json b/src/calcs/ascvd/i18n/ru.json new file mode 100644 index 0000000..a114b4b --- /dev/null +++ b/src/calcs/ascvd/i18n/ru.json @@ -0,0 +1,21 @@ +{ + "age": "Возраст", + "ageUnit": "лет", + "gender": "Пол", + "male": "Мужской", + "female": "Женский", + "sbp": "Систолическое артериальное давление", + "sbpUnit": "мм рт.ст.", + "tchol": "Общий холестерин", + "hdlc": "Холестерин ЛПВП", + "cholUnit": "мг/дл", + "race": "Этническая принадлежность", + "white": "белокожий", + "black": "темнокожий", + "other": "Другая", + "diabetes": "Диабет", + "smoker": "Курящий", + "yes": "Да", + "no": "Нет", + "hypertension": "Лечение гипертонии" +} diff --git a/src/calcs/ascvd/ui.tsx b/src/calcs/ascvd/ui.tsx new file mode 100644 index 0000000..e476f36 --- /dev/null +++ b/src/calcs/ascvd/ui.tsx @@ -0,0 +1,201 @@ +import React, { useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { View, ScrollView } from 'react-native'; + +import { SegmentContainer } from '../../components/segmentContainer'; +import { NumericContainer } from '../../components/numericContainer'; +import i18n from '../../i18n/i18n'; + +import en from './i18n/en.json'; +import ru from './i18n/ru.json'; +import { Input, Result, Variants } from './domain'; +import { calculateASCVDRisk } from './api'; + +i18n.addResourceBundle('en', 'Ascvd', en); +i18n.addResourceBundle('ru', 'Ascvd', ru); + +const AscvdScreen: React.FC = ({ handleResult, handleResetClick, lang }: any) => { + // Use translation for specific calculator + const { t } = useTranslation('Ascvd'); + + // Initialize empty input state + const emptyInput = () => { + return { + age: null, + gender: undefined, + sbp: null, + tchol: null, + hdlc: null, + race: undefined, + diabetes: undefined, + smoker: undefined, + hypertension: undefined, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: keyof Input, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateASCVDRisk( + { + age: input.age, + gender: input.gender, + race: input.race, + sbp: input.sbp, + tchol: input.tchol, + hdlc: input.hdlc, + diabetes: input.diabetes, + smoker: input.smoker, + hypertension: input.hypertension, + }, + { + language: lang, + } + ) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange('age', value); + }} + type={'absint'} + suffix={t('ageUnit')} + /> + { + handleInputChange('gender', value); + }} + resetBy={'number'} + /> + { + handleInputChange('race', value); + }} + resetBy={'number'} + /> + { + handleInputChange('hypertension', value); + }} + resetBy={'number'} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange('sbp', value); + }} + type={'float'} + suffix={t('sbpUnit')} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange('tchol', value); + }} + type={'float'} + suffix={t('cholUnit')} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange('hdlc', value); + }} + type={'float'} + suffix={t('sbpUnit')} + /> + { + handleInputChange('diabetes', value); + }} + resetBy={'number'} + /> + { + handleInputChange('smoker', value); + }} + resetBy={'number'} + /> + + + ); +}; + +export default AscvdScreen; diff --git a/src/calcs/ascvd/variants.ts b/src/calcs/ascvd/variants.ts new file mode 100644 index 0000000..7da7138 --- /dev/null +++ b/src/calcs/ascvd/variants.ts @@ -0,0 +1,46 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + lowRisk: { + title: "Low Risk", + description: "Low risk of developing ASCVD in the next 10 years.", + }, + borderlineRisk: { + title: "Borderline Risk", + description: + "Borderline risk of developing ASCVD in the next 10 years.", + }, + intermediateRisk: { + title: "Intermediate Risk", + description: + "Intermediate risk of developing ASCVD in the next 10 years.", + }, + highRisk: { + title: "High Risk", + description: "High risk of developing ASCVD in the next 10 years.", + }, + }, + ru: { + lowRisk: { + title: "Низкий риск", + description: + "Низкий риск развития атеросклеротического сердечно-сосудистого заболевания в следующие 10 лет.", + }, + borderlineRisk: { + title: "Граничный риск", + description: + "Граничный риск развития атеросклеротического сердечно-сосудистого заболевания в следующие 10 лет.", + }, + intermediateRisk: { + title: "Промежуточный риск", + description: + "Промежуточный риск возникновения сердечно-сосудистых событий, таких как коронарная смерть, инсульт, инфаркт миокарда в следующие 10 лет.", + }, + highRisk: { + title: "Высокий риск", + description: + "Высокий риск развития атеросклеротического сердечно-сосудистого заболевания в следующие 10 лет.", + }, + }, +}; diff --git a/src/calcs/audit/README.md b/src/calcs/audit/README.md new file mode 100644 index 0000000..5d438ed --- /dev/null +++ b/src/calcs/audit/README.md @@ -0,0 +1,5 @@ +**Образец русскоязычной версии** +https://psychiatry-test.ru/test/test-audit-ocenka-potrebleniya-alkogolya/fr4dbf8bf4b7113b5f5d0daa059ecda1c6af/ + +**Референс** +https://apps.who.int/iris/bitstream/handle/10665/67205/WHO_MSD_MSB_01.6a.pdf;jsessionid=1FAFA3CC325018FC69178F3AF9944665?sequence=1#page=32 diff --git a/src/calcs/audit/api.ts b/src/calcs/audit/api.ts new file mode 100644 index 0000000..63a591c --- /dev/null +++ b/src/calcs/audit/api.ts @@ -0,0 +1,90 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calc(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5) + + Number(input.q6) + + Number(input.q7) + + Number(input.q8) + + Number(input.q9) + + Number(input.q10); + + let result; + if (score <= 7) { + result = "0-7"; + } else if (score <= 15) { + result = "8-15"; + } else if (score <= 19) { + result = "16-19"; + } else { + result = "20+"; + } + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + let variant = variants[prefs.language][result]; + let title = variant.title; + let description = variant.description; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calc as calculateAuditScore }; diff --git a/src/calcs/audit/domain.ts b/src/calcs/audit/domain.ts new file mode 100644 index 0000000..fae4b4c --- /dev/null +++ b/src/calcs/audit/domain.ts @@ -0,0 +1,48 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; + q6: number | null; + q7: number | null; + q8: number | null; + q9: number | null; + q10: number | null; +} + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + score?: string; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/audit/i18n/en.json b/src/calcs/audit/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/audit/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/audit/i18n/ru.json b/src/calcs/audit/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/audit/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/audit/questions.ts b/src/calcs/audit/questions.ts new file mode 100644 index 0000000..9a9c5af --- /dev/null +++ b/src/calcs/audit/questions.ts @@ -0,0 +1,222 @@ +import { Questions } from "./domain"; + +const questions: Questions = { + en: [ + { + name: "q1", + text: "How often do you have a drink containing alcohol?", + options: [ + { label: "Never", value: 0 }, + { label: "Monthly or less", value: 1 }, + { label: "2-4 times a month", value: 2 }, + { label: "2-3 times a week", value: 3 }, + { label: "4 or more times a week", value: 4 }, + ], + }, + { + name: "q2", + text: "How many standard drinks containing alcohol do you have on a typical day when you are drinking?", + options: [ + { label: "1 or 2", value: 0 }, + { label: "3 or 4", value: 1 }, + { label: "5 or 6", value: 2 }, + { label: "7, 8, or 9", value: 3 }, + { label: "10 or more", value: 4 }, + ], + }, + { + name: "q3", + text: "How often do you have six or more alcoholic drinks on one occasion?", + options: [ + { label: "Never", value: 0 }, + { label: "Less than monthly", value: 1 }, + { label: "Monthly", value: 2 }, + { label: "Weekly", value: 3 }, + { label: "Daily or almost daily", value: 4 }, + ], + }, + { + name: "q4", + text: "How often during the last year have you found that you were not able to stop drinking once you had started?", + options: [ + { label: "Never", value: 0 }, + { label: "Less than monthly", value: 1 }, + { label: "Monthly", value: 2 }, + { label: "Weekly", value: 3 }, + { label: "Daily or almost daily", value: 4 }, + ], + }, + { + name: "q5", + text: "How often during the last year have you failed to do what was normally expected of you because of drinking?", + options: [ + { label: "Never", value: 0 }, + { label: "Less than monthly", value: 1 }, + { label: "Monthly", value: 2 }, + { label: "Weekly", value: 3 }, + { label: "Daily or almost daily", value: 4 }, + ], + }, + { + name: "q6", + text: "How often during the last year have you needed a first drink in the morning to get yourself going after a heavy drinking session?", + options: [ + { label: "Never", value: 0 }, + { label: "Less than monthly", value: 1 }, + { label: "Monthly", value: 2 }, + { label: "Weekly", value: 3 }, + { label: "Daily or almost daily", value: 4 }, + ], + }, + { + name: "q7", + text: "How often during the last year have you had a feeling of guilt or remorse after drinking?", + options: [ + { label: "Never", value: 0 }, + { label: "Less than monthly", value: 1 }, + { label: "Monthly", value: 2 }, + { label: "Weekly", value: 3 }, + { label: "Daily or almost daily", value: 4 }, + ], + }, + { + name: "q8", + text: "Has a relative, friend, doctor, or other healthcare worker been concerned about your drinking or suggested you cut down?", + options: [ + { label: "No", value: 0 }, + { label: "Yes, but not in the last year", value: 2 }, + { label: "Yes, in the last year", value: 4 }, + ], + }, + { + name: "q9", + text: "Have you or someone else been injured as a result of your drinking?", + options: [ + { label: "No", value: 0 }, + { label: "Yes, but not in the last year", value: 2 }, + { label: "Yes, in the last year", value: 4 }, + ], + }, + { + name: "q10", + text: "How often during the last year have you failed to do what was normally expected of you because of drinking?", + options: [ + { label: "Never", value: 0 }, + { label: "Less than monthly", value: 1 }, + { label: "Monthly", value: 2 }, + { label: "Weekly", value: 3 }, + { label: "Daily or almost daily", value: 4 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Как часто вы выпиваете порцию напитка, содержащего алкоголь?", + options: [ + { label: "Никогда", value: 0 }, + { label: "Раз в месяц или реже", value: 1 }, + { label: "2-4 раза в месяц", value: 2 }, + { label: "2-3 раза в неделю", value: 3 }, + { label: "4 или более раз в неделю", value: 4 }, + ], + }, + { + name: "q2", + text: "Сколько стандартных порций напитков, содержащих алкоголь, вы выпиваете в типичный день, когда пьёте?", + options: [ + { label: "1 или 2", value: 0 }, + { label: "3 или 4", value: 1 }, + { label: "5 или 6", value: 2 }, + { label: "7, 8 или 9", value: 3 }, + { label: "10 или более", value: 4 }, + ], + }, + { + name: "q3", + text: "Как часто вы употребляете шесть и более алкогольных напитков за один раз?", + options: [ + { label: "Никогда", value: 0 }, + { label: "Реже одного раза в месяц", value: 1 }, + { label: "Ежемесячно", value: 2 }, + { label: "Еженедельно", value: 3 }, + { label: "Почти ежедневно или ежедневно", value: 4 }, + ], + }, + { + name: "q4", + text: "Как часто за последний год вы не могли прекратить употребление алкоголя после того, как начали?", + options: [ + { label: "Никогда", value: 0 }, + { label: "Реже одного раза в месяц", value: 1 }, + { label: "Ежемесячно", value: 2 }, + { label: "Еженедельно", value: 3 }, + { label: "Почти ежедневно или ежедневно", value: 4 }, + ], + }, + { + name: "q5", + text: "Как часто за последний год из-за употребления алкоголя вы не делали чего-то, чего от вас ожидали?", + options: [ + { label: "Никогда", value: 0 }, + { label: "Реже одного раза в месяц", value: 1 }, + { label: "Ежемесячно", value: 2 }, + { label: "Еженедельно", value: 3 }, + { label: "Ежедневно или почти ежедневно", value: 4 }, + ], + }, + { + name: "q6", + text: "Как часто за последний год вы нуждались в алкогольном напитке утром, чтобы преодолеть похмелье?", + options: [ + { label: "Никогда", value: 0 }, + { label: "Реже одного раза в месяц", value: 1 }, + { label: "Ежемесячно", value: 2 }, + { label: "Еженедельно", value: 3 }, + { label: "Ежедневно или почти ежедневно", value: 4 }, + ], + }, + { + name: "q7", + text: "Как часто за последний год у вас было чувство вины или сожаления после употребления алкоголя?", + options: [ + { label: "Никогда", value: 0 }, + { label: "Реже одного раза в месяц", value: 1 }, + { label: "Ежемесячно", value: 2 }, + { label: "Еженедельно", value: 3 }, + { label: "Ежедневно или почти ежедневно", value: 4 }, + ], + }, + { + name: "q8", + text: "Было ли так, что близкий человек, друг, врач или кто-то другой беспокоился об употреблении вами алкоголя либо советовал его сократить?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да, но не в последний год", value: 2 }, + { label: "Да, в последний год", value: 4 }, + ], + }, + { + name: "q9", + text: "Вы сами или кто-кто другой получил травмы в результате употребления вами алкоголя?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да, но не в последний год", value: 2 }, + { label: "Да, в последний год", value: 4 }, + ], + }, + { + name: "q10", + text: "Как часто за последний год вы не могли вспомнить, что было накануне вечером, из-за того, что выпивали?", + options: [ + { label: "Никогда", value: 0 }, + { label: "Реже одного раза в месяц", value: 1 }, + { label: "Ежемесячно", value: 2 }, + { label: "Еженедельно", value: 3 }, + { label: "Ежедневно или практически каждый день", value: 4 }, + ], + }, + ], +}; + +export default questions; diff --git a/src/calcs/audit/ui.tsx b/src/calcs/audit/ui.tsx new file mode 100644 index 0000000..b83ff3e --- /dev/null +++ b/src/calcs/audit/ui.tsx @@ -0,0 +1,83 @@ +import React, { useEffect, useState } from 'react'; +import { View, ScrollView } from 'react-native'; + +import { SegmentContainer } from '../../components/segmentContainer'; +import questions from './questions'; +import { calculateAuditScore } from './api'; +import { Input, Question } from './domain'; + +const CalcScreen: React.FC = ({ handleResult, handleResetClick, lang }: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + q6: null, + q7: null, + q8: null, + q9: null, + q10: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateAuditScore(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/audit/variants.ts b/src/calcs/audit/variants.ts new file mode 100644 index 0000000..c093d15 --- /dev/null +++ b/src/calcs/audit/variants.ts @@ -0,0 +1,48 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + "0-7": { + title: "Low risk", + description: + "A score of 7 or lower for men (6 for women) indicates that you have a low risk of alcohol-related problems. The likelihood of harming your health at this level of consumption is minimal, and the WHO recommends not increasing it.", + }, + "8-15": { + title: "Hazardous and harmful alcohol use", + description: + "A score of 8 or higher for men (7 for women) indicates that you consume alcohol in a hazardous and/or harmful manner. At this level of alcohol consumption, there is an increased risk of health problems. It is recommended to reduce alcohol consumption.", + }, + "16-19": { + title: "High risk", + description: + "This level of alcohol consumption is harmful to both mental and physical health. It is necessary to reduce alcohol consumption.", + }, + "20+": { + title: "Possible dependence", + description: + "If you score a total of 20 points or more or if you have more than 0 points in responses to questions 4-6, you may have alcohol dependence or a risk of developing alcohol dependence. Such a level of alcohol consumption is harmful to both mental and physical health. It is necessary to reduce or abstain from alcohol consumption.", + }, + }, + ru: { + "0-7": { + title: "Низкий уровень риска", + description: + "Число баллов 7 или меньше у мужчин (6 баллов у женщин) показывает, что у вас пониженный риск возникновения проблем, обусловленных алкоголем.\n\nВероятность нанесения вреда здоровью при таком уровне употребления невелика.\n\nИ ВОЗ рекомендует его не увеличивать.", + }, + "8-15": { + title: "Угрожающее здоровью потребление", + description: + "Число баллов 8 или больше у мужчин (7 баллов у женщин) показывает, что вы потребляете алкоголь опасным и/или вредным образом. При таком уровне употребления алкоголя повышен риск возникновения нарушений здоровья. Рекомендуется сократить его употребление.", + }, + "16-19": { + title: "Злоупотребление", + description: + "Такой уровень потребления алкоголя наносит вред психическому и физическому здоровью. Необходимо сократить употребление алкоголя.", + }, + "20+": { + title: "Возможная зависимость", + description: + "Если вы набрали в общей сложности 20 баллов и больше или если у вас больше 0 баллов в ответах на вопросы 4-6, у вас может быть алкогольная зависимость или риск развития алкогольной зависимости. Такой уровень потребления наносит вред психическому и физическому здоровью. Употребление алкоголя необходимо сократить или отказаться от него.", + }, + }, +}; diff --git a/src/calcs/bmi/api.ts b/src/calcs/bmi/api.ts new file mode 100644 index 0000000..5236a13 --- /dev/null +++ b/src/calcs/bmi/api.ts @@ -0,0 +1,84 @@ +import { Input, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calc(input: Input): Result { + if ( + Number(input.weight) === 0 || + Number(input.height) === 0 || + input.weight === "" || + input.height === "" || + input.height === null || + input.weight === null + ) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let weight = Number(input.weight); + let height = Number(input.height); + + input.prefs.heightMeasure === "in" ? (height = height * 2.54) : height; + input.prefs.weightMeasure === "lb" ? (weight = weight / 2.20462) : weight; + + const score = weight / Math.pow(height / 100, 2); + + let lang = variants[input.prefs.language]; + if (!lang) { + lang = variants["en"]; + } + + let title: string; + let description: string; + if (score < 18.5) { + description = lang.underweight.description; + title = lang.underweight.title; + } else if (score < 25) { + description = lang.normal.description; + title = lang.normal.title; + } else if (score < 30) { + description = lang.overweight.description; + title = lang.overweight.title; + } else { + description = lang.obese.description; + title = lang.obese.title; + } + + let scoreUnit = ""; + switch (input.prefs.language) { + case "en": + scoreUnit = en.scoreUnit; + break; + case "ru": + scoreUnit = ru.scoreUnit; + break; + default: + scoreUnit = en.scoreUnit; + } + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + // Return Out object + const output: Result = { + id, + date, + score: Number(score.toFixed(2)), + scoreUnit, + title, + description, + }; + return output; +} + +export { calc as calculateBMI }; diff --git a/src/calcs/bmi/domain.ts b/src/calcs/bmi/domain.ts new file mode 100644 index 0000000..91cff89 --- /dev/null +++ b/src/calcs/bmi/domain.ts @@ -0,0 +1,29 @@ +export interface Prefs { + language: "en" | "ru"; + heightMeasure: "in" | "cm"; + weightMeasure: "lb" | "kg"; +} + +export interface Input { + prefs: Prefs; + weight: string | number | null; + height: string | number | null; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/bmi/i18n/en.json b/src/calcs/bmi/i18n/en.json new file mode 100644 index 0000000..f5fee7e --- /dev/null +++ b/src/calcs/bmi/i18n/en.json @@ -0,0 +1,9 @@ +{ + "kg": "kg ", + "cm": "cm", + "lb": "lb", + "in": "in", + "height": "Height", + "weight": "Weight", + "scoreUnit": "kg/m²" +} diff --git a/src/calcs/bmi/i18n/ru.json b/src/calcs/bmi/i18n/ru.json new file mode 100644 index 0000000..59bd6e6 --- /dev/null +++ b/src/calcs/bmi/i18n/ru.json @@ -0,0 +1,9 @@ +{ + "kg": "кг", + "cm": "см", + "lb": "фунт", + "in": "дюйм", + "height": "Рост", + "weight": "Вес", + "scoreUnit": "кг/м²" +} diff --git a/src/calcs/bmi/ui.tsx b/src/calcs/bmi/ui.tsx new file mode 100644 index 0000000..5eb4b73 --- /dev/null +++ b/src/calcs/bmi/ui.tsx @@ -0,0 +1,86 @@ +import React, { useEffect, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { View, ScrollView, Alert } from "react-native"; + +import { NumericContainer } from "../../components/numericContainer"; +import i18n from "../../i18n/i18n"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; +import { calculateBMI } from "./api"; + +i18n.addResourceBundle("en", "BmiCalculator", en); +i18n.addResourceBundle("ru", "BmiCalculator", ru); + +const BmiCalculator = ({ handleResult, handleResetClick, lang }: any) => { + // Use translation for specific calculator + const { t } = useTranslation("BmiCalculator"); + + const [height, setHeight] = useState(null); + const [weight, setWeight] = useState(null); + + const handleHeightChange = (value: number) => { + setHeight(value); + }; + + const handleWeightChange = (value: number) => { + setWeight(value); + }; + + // Result + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateBMI({ + height, + weight, + prefs: { + language: lang, + heightMeasure: "cm", + weightMeasure: "kg", + }, + }) + ); + }, [height, weight]); + + useEffect(() => { + handleResult(result); + }, [result]); + + // Reset + useEffect(() => { + if (handleResetClick) { + setHeight(null); + setWeight(null); + } + }, [handleResetClick]); + + return ( + + + + + + + ); +}; + +export default BmiCalculator; diff --git a/src/calcs/bmi/variants.ts b/src/calcs/bmi/variants.ts new file mode 100644 index 0000000..c2c395a --- /dev/null +++ b/src/calcs/bmi/variants.ts @@ -0,0 +1,40 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + underweight: { + title: "Underweight", + description: "", + }, + normal: { + title: "Normal", + description: "", + }, + overweight: { + title: "Overweight", + description: "", + }, + obese: { + title: "Obese", + description: "", + }, + }, + ru: { + underweight: { + title: "Дефицит веса", + description: "", + }, + normal: { + title: "Норма", + description: "", + }, + overweight: { + title: "Избыточный вес", + description: "", + }, + obese: { + title: "Ожирение", + description: "", + }, + }, +}; diff --git a/src/calcs/bsa/api.ts b/src/calcs/bsa/api.ts new file mode 100644 index 0000000..d500c1d --- /dev/null +++ b/src/calcs/bsa/api.ts @@ -0,0 +1,66 @@ +import { Input, Result } from "./domain"; +import { variants } from "./variants"; + +function calculateBSA(input: Input): Result { + let weight = input.weight; + let height = input.height; + + input.prefs.heightMeasure === "in" ? (height = height * 2.54) : height; + input.prefs.weightMeasure === "lb" ? (weight = weight / 2.20462) : weight; + + const bsa = Math.sqrt((height * weight) / 3600); + + let title: string; + let description: string; + + let lang = variants[input.prefs.language]; + if (!lang) { + // Set a default language if the selected language is not found + lang = variants["en"]; + } + + if (bsa < 1.6) { + description = lang.underweight.description; + title = lang.underweight.title; + } else if (bsa < 2.0) { + description = lang.normal.description; + title = lang.normal.title; + } else if (bsa < 2.5) { + description = lang.overweight.description; + title = lang.overweight.title; + } else { + description = lang.obese.description; + title = lang.obese.title; + } + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score: bsa, + title, + description, + input: input, + }; + return output; +} + +// Example usage +// const input: Input = { +// prefs: { +// language: "english", +// heightMeasure: "in", +// weightMeasure: "lb", +// }, +// weight: 212, +// height: 75, +// }; + +// const result = calculateBSA(input); +// console.log(result); + +export default calculateBSA; diff --git a/src/calcs/bsa/domain.ts b/src/calcs/bsa/domain.ts new file mode 100644 index 0000000..17d7e98 --- /dev/null +++ b/src/calcs/bsa/domain.ts @@ -0,0 +1,29 @@ +export interface Prefs { + language: "en" | "ru"; + heightMeasure: "in"| "cm"; + weightMeasure: "lb" | "kg"; +} + +export interface Input { + prefs: Prefs; + weight: number; + height: number; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number; + title: string; + description: string; + input: Input; +} diff --git a/src/calcs/bsa/i18n/en.json b/src/calcs/bsa/i18n/en.json new file mode 100644 index 0000000..55e6b08 --- /dev/null +++ b/src/calcs/bsa/i18n/en.json @@ -0,0 +1,8 @@ +{ + "kg": "kg", + "cm": "cm", + "lb": "lb", + "in": "in", + "height": "Height", + "weight": "Weight" +} diff --git a/src/calcs/bsa/i18n/ru.json b/src/calcs/bsa/i18n/ru.json new file mode 100644 index 0000000..e5f85a0 --- /dev/null +++ b/src/calcs/bsa/i18n/ru.json @@ -0,0 +1,8 @@ +{ + "kg": "кг", + "cm": "см", + "lb": "фунт", + "in": "дюйм", + "height": "Рост", + "weight": "Вес" +} diff --git a/src/calcs/bsa/ui.tsx b/src/calcs/bsa/ui.tsx new file mode 100644 index 0000000..12446c8 --- /dev/null +++ b/src/calcs/bsa/ui.tsx @@ -0,0 +1,16 @@ +import React from "react"; +import { ScrollView, View } from "react-native"; + +import { Text } from "react-native-paper"; + +const CalcScreen: React.FC = () => { + return ( + + + Not implemented + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/bsa/variants.ts b/src/calcs/bsa/variants.ts new file mode 100644 index 0000000..d80ef02 --- /dev/null +++ b/src/calcs/bsa/variants.ts @@ -0,0 +1,48 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + underweight: { + title: "Underweight", + description: + "Your BSA is below normal, which indicates you may be underweight.", + }, + normal: { + title: "Normal", + description: + "Your BSA is within the normal range, which indicates a healthy body surface area.", + }, + overweight: { + title: "Overweight", + description: + "Your BSA is above normal, which indicates you may be overweight.", + }, + obese: { + title: "Obese", + description: + "Your BSA is significantly above normal, which indicates you may be obese.", + }, + }, + ru: { + underweight: { + title: "Недовес", + description: + "Ваша площадь поверхности тела (ППТ) ниже нормы, что может указывать на недостаточный вес.", + }, + normal: { + title: "Норма", + description: + "Ваша ППТ находится в норме, что указывает на здоровую площадь поверхности тела.", + }, + overweight: { + title: "Избыточный вес", + description: + "Ваша ППТ выше нормы, что может указывать на избыточный вес.", + }, + obese: { + title: "Ожирение", + description: + "Ваша ППТ значительно превышает норму, что может указывать на ожирение.", + }, + }, +}; diff --git a/src/calcs/calcs.ts b/src/calcs/calcs.ts new file mode 100644 index 0000000..e797c64 --- /dev/null +++ b/src/calcs/calcs.ts @@ -0,0 +1,553 @@ +import Ascvd from "./ascvd/ui"; +import Audit from "./audit/ui"; +import Bmi from "./bmi/ui"; +import Bsa from "./bsa/ui"; +import Cow from "./cow/ui"; +import Gad7 from "./gad7/ui"; +import Gds from "./gds/ui"; +import GsPe from "./gs-pe/ui"; +import Hba1c from "./hba1c/ui"; +import WcPe from "./wc-pe/ui"; +import Phq9 from "./phq-9/ui"; +import Findrisk from "./findrisk/ui"; +import { HEARTScore } from "./heart/ui"; +import { CreatinineClearance } from "./cc/ui"; +import { CURB65 } from "./curb-65/ui"; +import { CardiacRisk } from "./rcri/ui"; + +import i18n from "../i18n/i18n"; +import { GlomerularFiltrationRate } from "./gfr/ui"; + +export type LocalizedContent = { + name: string; + shortname: string; + category: string; + introtext: string; + description: string; +}; + +export type Content = { + [key: string]: LocalizedContent; +}; + +export type CatalogItem = { + id: number; // unique ID + status: "" | "readonly" | "hidden"; + screen: React.FC; // React Screen + favorite: boolean; // Is marked as favorite (default is false) + content: Content; +}; + +export function getCatalogItems( + categoryName: string | null = null +): CatalogItem[] { + const language = i18n.resolvedLanguage; + let newCatalog = catalog.filter((item) => item.status.trim() !== "hidden"); + + if (categoryName !== null && categoryName !== "All") { + newCatalog = newCatalog.filter( + (item) => item.content[language].category === categoryName + ); + } + + newCatalog.sort((a, b) => { + if ( + a.content[language as keyof Content].shortname < + b.content[language as keyof Content].shortname + ) { + return -1; + } + if ( + a.content[language as keyof Content].shortname > + b.content[language as keyof Content].shortname + ) { + return 1; + } + return 0; + }); + // console.log(newCatalog); + return newCatalog; +} + +export function getCatalogItemByID(id: number): CatalogItem | null { + let item = getCatalogItems().filter((item) => { + return item.id == id; + }); + + if (!item.length) { + return null; + } + return item[0]; +} + +export interface Category { + label: string; + value: string | null; +} + +export function getCatalogCategories(): Category[] { + const categories: string[] = []; + + const language = i18n.resolvedLanguage; + + // iterate through each item in the array + const catalog = getCatalogItems(); + + catalog.forEach((item) => { + // get the category label for the selected language + const label = item.content[language].category; + + // add the label to the categories array if it doesn't already exist + if (!categories.includes(label)) { + categories.push(label); + } + }); + + // create an array of objects with label and value properties + const itemsCategory: Category[] = categories.map((label: string) => ({ + label, + value: label, + })); + + // add the "All" category as the first element + itemsCategory.unshift({ label: "All", value: "All" }); + + return itemsCategory; +} + +const catalog: CatalogItem[] = [ + { + id: 1, + status: "", + screen: WcPe, + favorite: false, + content: { + en: { + name: "Wells' Criteria for Pulmonary Embolism", + shortname: "Wells for PE", + category: "Cardiology", + introtext: "Objectifies risk of pulmonary embolism", + description: + "Wells Criteria is a clinical prediction rule that uses a scoring system to predict the likelihood of pulmonary embolism (PE).", + }, + ru: { + name: "Шкала Уэллса для оценки вероятности ТЭЛА", + shortname: "Шкала Уэллса", + category: "Кардиология", + introtext: "Определение вероятности развития у пациента ТЭЛА", + description: + "Критерии Уэллса - это клиническое правило прогнозирования, которое использует систему баллов для предсказания вероятности развития глубокой венозной тромбоза (ВТЭО) и легочной эмболии (ЛЭТ). Критерии учитывают несколько факторов, таких как клинические признаки и симптомы, факторы риска и результаты лабораторных тестов для определения вероятности ВТЭО или ЛЭТ. Чем выше балл, тем выше вероятность наличия ВТЭО или ЛЭТ.", + }, + }, + }, + { + id: 2, + status: "", + screen: Hba1c, + favorite: false, + content: { + en: { + name: "HbA1c Calculator", + shortname: "HbA1c", + category: "Endocrinology", + introtext: + "Estimates the average blood glucose level over the past 2-3 months.", + description: + "The HbA1c test is used to measure the average blood glucose level over the past 2-3 months in people with diabetes. The test measures the amount of glycated hemoglobin (HbA1c) in the blood. The HbA1c calculator estimates the average blood glucose level based on the HbA1c result.", + }, + ru: { + name: "Калькулятор HbA1c", + shortname: "HbA1c", + category: "Эндокринология", + introtext: + "Оценивает средний уровень глюкозы в крови за последние 2-3 месяца.", + description: + "Тест на HbA1c используется для измерения среднего уровня глюкозы в крови за последние 2-3 месяца у людей с диабетом. Тест измеряет количество гликированного гемоглобина (HbA1c) в крови. Калькулятор HbA1c оценивает средний уровень глюкозы в крови на основе результата HbA1c.", + }, + }, + }, + { + id: 3, + status: "", + screen: GsPe, + favorite: false, + content: { + en: { + name: "Revised Geneva Score for Pulmonary Embolism", + shortname: "Geneva Score for PE (revised)", + category: "Cardiology", + introtext: + "Predicts the probability of pulmonary embolism (PE).", + description: + "The Geneva Score is a clinical prediction rule that uses a scoring system to predict the probability of pulmonary embolism (PE).\n\nThe criteria take into account several factors such as clinical signs and symptoms, risk factors, and laboratory test results to determine the probability of PE. The higher the score, the more likely the presence of PE.", + }, + ru: { + name: "Оценка Женева для ЛВТ", + shortname: "Оценка Женева", + category: "Кардиология", + introtext: + "Предсказывает вероятность тромбоэмболии легочной артерии (ЛВТ).", + description: + "Шкалы для оценки клинической вероятности ТЭЛА используются у стабильных пациентов (без шока, гипотензии) с подозрением на ТЭЛА.\n\nОни позволяют определить очередность диагностических процедур для подтверждения или исключения диагноза тромбоэмболии легочной артерии.", + }, + }, + }, + { + id: 4, + status: "", + screen: Gds, + favorite: false, + content: { + en: { + name: "Geriatric Depression Scale (GDS)", + shortname: "GDS", + category: "Psychiatry", + introtext: "Assesses depression in elderly people.", + description: + "The Geriatric Depression Scale (GDS) is a screening tool used to assess depression in elderly people. The GDS consists of a series of questions that ask about the subject's mood, feelings, and activities. The score can be used to determine the severity of depression and the need for treatment.", + }, + ru: { + name: "Гериатрическая шкала депрессии", + shortname: "ГШД (GDS)", + category: "Психиатрия", + introtext: "Оценивает депрессию у пожилых людей.", + description: + "Шкала самооценки для выявления депрессии у пожилых людей, используемая как часть комплексной гериатрической оценки.", + }, + }, + }, + { + id: 5, + status: "", + screen: Gad7, + favorite: false, + content: { + en: { + name: "Generalized Anxiety Disorder 7", + shortname: "GAD-7", + category: "Psychiatry", + introtext: + "Assesses the severity of generalized anxiety disorder (GAD).", + description: + "The Generalized Anxiety Disorder 7-Item Scale (GAD-7) is a self-report questionnaire used to assess the severity of generalized anxiety disorder (GAD).", + }, + ru: { + name: "Опросник генерализованного тревожного расстройства", + shortname: "ГТР-7 (GAD-7)", + category: "Психиатрия", + introtext: + "Оценивает степень тяжести общего тревожного расстройства (ГТР).", + description: + "Применяется для оценки уровня тревожности и скрининга генерализированного тревожного расстройства (ГТР)", + }, + }, + }, + { + id: 6, + status: "", + screen: Cow, + favorite: false, + content: { + en: { + name: "COWS Score for Opiate Withdrawal", + shortname: "COWS", + category: "Psychiatry", + introtext: "Assesses severity of opioid withdrawal symptoms.", + description: + "The Clinical Opiate Withdrawal Scale (COWS) is an 11-item scale designed to be administered by a clinician to assess opioid withdrawal symptoms. The scale includes items such as pulse rate, pupil size, and sweating, and is used to monitor the progression of withdrawal and the effectiveness of treatment.", + }, + ru: { + name: "Шкала оценки опийного абстинентного синдрома (ОАС)", + shortname: "COWS", + category: "Психиатрия", + introtext: "Оценивает тяжесть симптомов отмены опиоидов.", + description: + "Используется для отслеживания прогресса синдрома отмены и эффективности лечения.", + }, + }, + }, + { + id: 7, + status: "", + screen: Bsa, + favorite: false, + content: { + en: { + name: "Body Surface Area Calculator", + shortname: "BSA", + category: "Dermatology", + introtext: + "Calculates body surface area based on height and weight.", + description: + "The Body Surface Area (BSA) Calculator is a tool used to estimate the total surface area of a person's body based on their height and weight. The calculation is important in determining medication dosages, radiation therapy, and other medical treatments.", + }, + ru: { + name: "Калькулятор площади поверхности тела", + shortname: "ППТ", + category: "Дерматология", + introtext: + "Вычисляет площадь поверхности тела на основе роста и веса.", + description: + "Калькулятор площади поверхности тела (BSA) - это инструмент, используемый для оценки общей площади поверхности тела человека на основе его роста и веса. Расчет важен при определении дозировки лекарств, радиотерапии и других медицинских методов лечения.", + }, + }, + }, + { + id: 8, + status: "", + screen: Bmi, + favorite: false, + content: { + en: { + name: "Body Mass Index", + shortname: "BMI", + category: "Endocrinology", + introtext: + "Calculates body mass index (BMI) based on height and weight.", + description: + "The Body Mass Index (BMI) Calculator is a tool used to estimate a person's body fat based on their height and weight. The calculation is commonly used to assess whether a person is underweight, normal weight, overweight, or obese, and is an important factor in assessing overall health risk.", + }, + ru: { + name: "Калькулятор индекса массы тела", + shortname: "ИМТ", + category: "Эндокринология", + introtext: + "Вычисляет индекс массы тела (ИМТ) на основе роста и веса.", + description: + "Калькулятор индекса массы тела (ИМТ) - это инструмент, используемый для оценки процента жировой ткани в теле человека на основе его роста и веса. Расчет обычно используется для определения, находится ли человек в состоянии недостаточного веса, нормального веса, избыточного веса или ожирения, и является важным фактором при определении общего риска для здоровья.", + }, + }, + }, + { + id: 9, + status: "", + screen: Audit, + favorite: false, + content: { + en: { + name: "Alcohol Use Disorders Identification Test (AUDIT)", + shortname: "AUDIT", + category: "Psychiatry", + introtext: "Screens for alcohol abuse and dependence.", + description: + "The Alcohol Use Disorder Identification Test (AUDIT) is a ten-item questionnaire approved by the World Health Organization to screen patients for hazardous (risky) and harmful alcohol use.\n\nIt was developed on the basis of a WHO multi-country collaborative study, with the items selected for AUDIT being the best of the approximately 150 items included in the original study.", + }, + ru: { + name: "AUDIT — оценка потребления алкоголя", + shortname: "AUDIT", + category: "Психиатрия", + introtext: + "Проверяет на злоупотребление и зависимость от алкоголя.", + description: + "Тест на выявление расстройств, связанных с употреблением алкоголя (AUDIT ) - это вопросник из десяти пунктов, одобренный Всемирной организацией здравоохранения для проверки пациентов на опасное (рискованное) и вредное употребление алкоголя.\n\nОн был разработан на основе многостранового совместного исследования ВОЗ, при этом элементы, выбранные для AUDIT, являются лучшими из примерно 150 пунктов, включенных в исходное исследование.", + }, + }, + }, + { + id: 10, + status: "", + screen: Ascvd, + favorite: false, + content: { + en: { + name: "ASCVD Risk Calculator", + shortname: "ASCVD", + category: "Cardiology", + introtext: + "Estimates 10-year risk of atherosclerotic cardiovascular disease.", + description: + "The Atherosclerotic Cardiovascular Disease (ASCVD) Risk Calculator is used to estimate a person's 10-year risk of developing cardiovascular disease, including heart attack and stroke. The calculation is based on factors such as age, sex, blood pressure, cholesterol levels, and smoking status, and is used to guide treatment decisions and lifestyle modifications to reduce overall risk.", + }, + ru: { + name: "Шкала ASCVD", + shortname: "ASCVD", + category: "Кардиология", + introtext: + "Оценивает 10-летний риск развития атеросклеротических кардиоваскулярных заболеваний.", + description: + "Оценщик риска атеросклеротических кардиоваскулярных заболеваний (ASCVD) - это инструмент, используемый для оценки 10-летнего риска развития сердечно-сосудистых заболеваний, включая инфаркт и инсульт. Расчет основан на таких факторах, как возраст, пол, артериальное давление, уровень холестерина и курение, и используется для принятия решений о лечении и модификации образа жизни с целью снижения общего риска.", + }, + }, + }, + { + id: 11, + status: "", + screen: Phq9, + favorite: false, + content: { + en: { + name: "Patient Health Questionnaire-9", + shortname: "PHQ-9", + category: "Psychiatry", + introtext: + "Assesses the severity of depression symptoms in patients.", + description: + "The Patient Health Questionnaire-9 (PHQ-9) is a widely used tool for assessing the severity of depression symptoms in patients. It consists of nine questions that ask about the frequency and severity of symptoms such as feelings of sadness, loss of interest in activities, and changes in appetite and sleep patterns. The results are used to guide treatment decisions and monitor changes in symptoms over time.", + }, + ru: { + name: "Опросник для самодиагностики депрессии пациента PHQ-9", + shortname: "PHQ-9", + category: "Психиатрия", + introtext: + "Оценивает степень тяжести симптомов депрессии у пациентов.", + description: + "Вопросник о здоровье пациента-9 (PHQ-9) - широко используемый инструмент для оценки степени тяжести симптомов депрессии у пациентов. Он состоит из девяти вопросов, которые спрашивают о частоте и тяжести симптомов, таких как чувства грусти, потеря интереса к деятельности и изменения в аппетите и сна. Результаты используются для принятия решений о лечении и отслеживания изменений симптомов со временем.", + }, + }, + }, + { + id: 23, + status: "", + screen: Findrisk, + favorite: false, + content: { + en: { + name: "Finnish Diabetes Risk Score", + shortname: "FINDRISC", + category: "Endocrinology", + introtext: + "Identifies patients at high risk for type 2 diabetes.", + description: + "The Finnish Diabetes Risk Score (FINDRISC) is a tool used to assess an individual's risk of developing type 2 diabetes. It consists of eight questions that ask about age, BMI, waist circumference, physical activity, diet, and family history of diabetes. The results are used to guide lifestyle changes and preventive measures to reduce the risk of developing diabetes.", + }, + ru: { + name: "Определение риска развития диабета FINDRISC", + shortname: "FINDRISC", + category: "Эндокринология", + introtext: "Оценивает риск развития диабета 2 типа у человека.", + description: + "Шкала оценки риска развития диабета, разработанная Финской Ассоциацией Диабета, которая позволяет оценить 10-летний риск сахарного диабета (СД) 2 типа, включая бессимптомный сахарный диабет и нарушение толерантности к глюкозе (НТГ), с 85 % точностью.\n\nДанная шкала используется у людей старше 25 лет.", + }, + }, + }, + { + id: 25, + status: "", + screen: HEARTScore, + favorite: false, + content: { + en: { + name: "HEART Score for Major Cardiac Events", + shortname: "HEART Score", + category: "Cardiology", + introtext: + "Assesses the risk of major cardiac events in patients presenting with chest pain.", + description: + "The HEART Score is a tool used to assess the risk of major cardiac events in patients presenting with chest pain. It takes into account factors such as age, gender, medical history, and the results of an electrocardiogram (ECG) and cardiac biomarkers. The results are used to guide diagnostic and treatment decisions to reduce the risk of major cardiac events.", + }, + ru: { + name: "Шкала HEART - оценка риска развития сердечных осложнений", + shortname: "Шкала HEART", + category: "Кардиология", + introtext: + "Оценивает риск развития сердечных осложнений у пациентов, предъявляющих жалобы на боль в груди.", + description: + "Шкала HEART (Heart Score) - это инструмент, используемый для оценки риска развития сердечных осложнений у пациентов, предъявляющих жалобы на боль в груди. Учитываются факторы, такие как возраст, пол, медицинская история и результаты электрокардиограммы (ЭКГ) и сердечных биомаркеров. Результаты используются для руководства диагностическими и терапевтическими решениями, направленными на снижение риска серьезных сердечных осложнений.", + }, + }, + }, + { + id: 26, + status: "", + screen: CreatinineClearance, + favorite: false, + content: { + en: { + name: "Creatinine Clearance (Cockcroft-Gault Equation)", + shortname: "Creatinine Clearance", + category: "Nephrology", + introtext: + "Calculates an individual's estimated creatinine clearance.", + description: + "The Cockcroft-Gault equation is used to estimate an individual's creatinine clearance based on their serum creatinine level, age, weight, and gender. The result can be used to adjust medication dosages and assess kidney function.", + }, + ru: { + name: "Клиренс креатинина (уравнение Коккрофта-Гольта)", + shortname: "Клиренс креатинина", + category: "Нефрология", + introtext: "Рассчитывает клиренс креатинина у человека.", + description: + "Уравнение Коккрофта-Гольта используется для оценки клиренса креатинина у человека на основе уровня креатинина в крови, возраста, веса и пола. Результат можно использовать для корректировки дозировок лекарств и оценки функции почек.", + }, + }, + }, + { + id: 29, + status: "", + screen: GlomerularFiltrationRate, + favorite: false, + content: { + en: { + name: "Glomerular Filtration Rate (GFR)", + shortname: "GFR", + category: "Nephrology", + introtext: + "Calculates an individual's estimated glomerular filtration rate.", + description: + "The Glomerular Filtration Rate (GFR) is a measure of how well the kidneys are functioning.\n\nIt estimates the rate at which blood is filtered through the glomeruli, the tiny blood vessels in the kidneys.\n\nGFR is a crucial indicator of kidney health and can be used to diagnose and monitor various kidney conditions.", + }, + ru: { + name: "Скорость клубочковой фильтрации (СКФ)", + shortname: "СКФ", + category: "Нефрология", + introtext: + "Рассчитывает оценочную скорость клубочковой фильтрации у человека.", + description: + "Скорость клубочковой фильтрации (СКФ) является мерой функционирования почек.\n\nОна оценивает скорость фильтрации крови через гломерулы, маленькие кровеносные сосуды в почках.\n\nСКФ - это важный показатель состояния почек и может использоваться для диагностики и мониторинга различных почечных состояний.", + }, + }, + }, + { + id: 27, + status: "", + screen: CURB65, + favorite: false, + content: { + en: { + name: "CURB-65 Score for Pneumonia Severity", + shortname: "CURB-65", + category: "Infections", + introtext: + "Assesses the severity of pneumonia in an individual.", + description: + "Evaluates the mortality risk of pneumonia to help determine the appropriate treatment approach – inpatient or outpatient care.\n\nThe CURB-65 calculator can also be used in emergency departments to stratify a patient's risk for making clinical decisions on the management strategy.", + }, + ru: { + name: "Оценка тяжести пневмонии по шкале CURB-65", + shortname: "CURB-65", + category: "Инфекции", + introtext: "Оценивает тяжесть пневмонии у человека.", + description: + "Оценивает смертность от внебольничной пневмонии, чтобы помочь выбрать правильную тактику лечения пациента – стационарное или амбулаторное лечение.\n\nКалькулятор CURB-65 также можно использовать в отделениях неотложной помощи для стратификации риска пациента для принятия клинических решений по стратегии ведения.", + }, + }, + }, + { + id: 28, + status: "", + screen: CardiacRisk, + favorite: false, + content: { + en: { + name: "Revised Cardiac Risk Index for Pre-Operative Risk", + shortname: "RCRI", + category: "Cardiology", + introtext: + "Calculates an individual's risk of cardiac complications after surgery.", + description: + "The Revised Cardiac Risk Index (RCRI) is a tool used to calculate an individual's risk of cardiac complications after surgery. It takes into account factors such as age, history of heart disease, history of stroke, diabetes, and renal insufficiency. The results are used to guide preventive measures and treatment options to reduce the risk of cardiac complications after surgery.", + }, + ru: { + name: "RCRI - индекс риска развития сердечных осложнений при проведении операций", + shortname: "Сердечный риск", + category: "Кардиология", + introtext: + "Рассчитывает риск сердечных осложнений у человека после операции.", + description: + "Инструмент Revised Cardiac Risk Index (RCRI) используется для расчета риска сердечных осложнений у человека после операции. Учитываются факторы, такие как возраст, наличие сердечных заболеваний, история инсульта, диабет и почечная недостаточность. Результаты используются для рекомендации профилактических мер и методов лечения, направленных на снижение риска сердечных осложнений после операции.", + }, + }, + }, +]; + +export default catalog; diff --git a/src/calcs/calcs_list.txt b/src/calcs/calcs_list.txt new file mode 100644 index 0000000..fb01aed --- /dev/null +++ b/src/calcs/calcs_list.txt @@ -0,0 +1,75 @@ +Cardiology: +CHA2DS2-VASc Score +TIMI Risk Score +GRACE Score +HEART Score + +Endocrinology: +Body Mass Index Calculator +HbA1c Calculator +ASCVD Risk Estimator +QFracture-2019 Cardiovascular Disease Risk Calculator + +Gastroenterology: +MELD Score +Child-Pugh Score +Rockall Score +Blatchford Score + +Hematology: +Wells Criteria for DVT and PE +Geneva Score for PE +HAS-BLED Score +CHADS2 Score + +Neurology: +NIH Stroke Scale +Glasgow Coma Scale +Hunt and Hess Scale +Modified Rankin Scale + +Oncology: +TNM Staging System +Charlson Comorbidity Index +Karnofsky Performance Scale +ASCO Breast Cancer Risk Assessment Tool +AKIN Criteria +RIFLE Criteria +MDRD Equation +Urine Protein-to-Creatinine Ratio Calculator +DAS28 Score +BASDAI Score +Fracture Risk Assessment Tool +Systemic Lupus Erythematosus Disease Activity Index +Bishop Score +Fetal Biometry Calculator +APGAR Score +Revised FIGO Staging System +AUA Symptom Score +R.E.N.A.L. Nephrometry Score +Bladder Cancer Risk Calculator +Prostate Cancer Risk Calculator + +Geriatrics: +Geriatric Depression Scale +Frailty Index +Short Portable Mental Status Questionnaire +Functional Independence Measure + +Infectious Disease: +CURB-65 Score +APACHE II Score +Acute Physiology and Chronic Health Evaluation (APACHE) IV Score +Clinical Pulmonary Infection Score + +Psychiatry: +Hamilton Depression Rating Scale +Generalized Anxiety Disorder 7-Item Scale +Alcohol Use Disorders Identification Test (AUDIT) +Clinical Opiate Withdrawal Scale + +Dermatology: +Body Surface Area Calculator +Psoriasis Area and Severity Index +Scoring Atopic Dermatitis (SCORAD) Index +Melanoma Risk Assessment Tool \ No newline at end of file diff --git a/src/calcs/cc/README.md b/src/calcs/cc/README.md new file mode 100644 index 0000000..a0b76ab --- /dev/null +++ b/src/calcs/cc/README.md @@ -0,0 +1,2 @@ +**Скорость клубочковой фильтрации** +https://evidence-neurology.ru/medical-calculators/hemorrhage/skf-creatinine-clearance/ diff --git a/src/calcs/cc/api.ts b/src/calcs/cc/api.ts new file mode 100644 index 0000000..d60f18e --- /dev/null +++ b/src/calcs/cc/api.ts @@ -0,0 +1,83 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateCreatinineClearanceScore(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + console.log("Input is not sufficient to do calculations, received input:"); + console.log(input); + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + const { gender, age, weight, height, creatinine } = input; + + let score = 0; + if (gender === 1) { + // For males + score = + ((140 - Number(age)) * Number(weight)) / + (0.818 * Number(creatinine)); + } else if (gender === 2) { + // For females + score = + ((140 - Number(age)) * Number(weight) * 0.85) / + (0.818 * Number(creatinine)); + } + + let result = ""; + if (score >= 90) { + result = "Normal"; + } else if (score >= 60) { + result = "Mildly impaired"; + } else if (score >= 30) { + result = "Moderately impaired"; + } else { + result = "Severely impaired"; + } + + const variant = variants[prefs.language][result]; + const title = variant.title; + const description = variant.description; + + let scoreUnit = ""; + switch (prefs.language) { + case "en": + scoreUnit = en.scoreUnit; + break; + case "ru": + scoreUnit = ru.scoreUnit; + break; + default: + scoreUnit = en.scoreUnit; + } + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score: Number(score.toFixed(0)), + scoreUnit, + title, + description, + }; + return output; +} + +export { calculateCreatinineClearanceScore }; diff --git a/src/calcs/cc/domain.ts b/src/calcs/cc/domain.ts new file mode 100644 index 0000000..01d607a --- /dev/null +++ b/src/calcs/cc/domain.ts @@ -0,0 +1,29 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + gender: number | null; + age: number | null; + weight: number | null; + height: number | null; + creatinine: number | null; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/cc/i18n/en.json b/src/calcs/cc/i18n/en.json new file mode 100644 index 0000000..f978afe --- /dev/null +++ b/src/calcs/cc/i18n/en.json @@ -0,0 +1,14 @@ +{ + "age": "Age", + "ageUnit": "years", + "gender": "Gender", + "male": "Male", + "female": "Female", + "height": "Height", + "heightUnit": "cm", + "weight": "Weight", + "weightUnit": "kg", + "creatinine": "Creatinine", + "creatinineUnit": "µmol/L", + "scoreUnit": "mL/min" +} diff --git a/src/calcs/cc/i18n/ru.json b/src/calcs/cc/i18n/ru.json new file mode 100644 index 0000000..ed0bcad --- /dev/null +++ b/src/calcs/cc/i18n/ru.json @@ -0,0 +1,14 @@ +{ + "age": "Возраст", + "ageUnit": "лет", + "gender": "Пол", + "male": "Мужской", + "female": "Женский", + "height": "Рост", + "heightUnit": "см", + "weight": "Вес", + "weightUnit": "кг", + "creatinine": "Креатинин", + "creatinineUnit": "мкмоль/л", + "scoreUnit": "мл/мин" +} diff --git a/src/calcs/cc/ui.tsx b/src/calcs/cc/ui.tsx new file mode 100644 index 0000000..82ae4c3 --- /dev/null +++ b/src/calcs/cc/ui.tsx @@ -0,0 +1,140 @@ +import React, { useEffect, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { View, ScrollView } from "react-native"; + +import { NumericContainer } from "../../components/numericContainer"; +import { SegmentContainer } from "../../components/segmentContainer"; +import i18n from "../../i18n/i18n"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; +import { Input, Result } from "./domain"; +import { calculateCreatinineClearanceScore } from "./api"; + +i18n.addResourceBundle("en", "CreatinineClearance", en); +i18n.addResourceBundle("ru", "CreatinineClearance", ru); + +const CreatinineClearance: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + const { t } = useTranslation("CreatinineClearance"); + + // Initialize empty input state + const emptyInput = () => { + return { + gender: null, + age: null, + height: null, + weight: null, + creatinine: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateCreatinineClearanceScore(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + { + handleInputChange("gender", value); + }} + resetBy="null" + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange("age", value); + }} + type={"absint"} + suffix={t("ageUnit")} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange("weight", value); + }} + type={"absint"} + suffix={t("weightUnit")} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange("height", value); + }} + type={"absint"} + suffix={t("heightUnit")} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange("creatinine", value); + }} + type={"float"} + suffix={t("creatinineUnit")} + /> + + + ); +}; + +export { CreatinineClearance }; diff --git a/src/calcs/cc/variants.ts b/src/calcs/cc/variants.ts new file mode 100644 index 0000000..e9e0b0d --- /dev/null +++ b/src/calcs/cc/variants.ts @@ -0,0 +1,40 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + Normal: { + title: "Normal Creatinine Clearance", + description: "", + }, + "Mildly impaired": { + title: "Mildly Impaired Creatinine Clearance", + description: "", + }, + "Moderately impaired": { + title: "Moderately Impaired Creatinine Clearance", + description: "", + }, + "Severely impaired": { + title: "Severely Impaired Creatinine Clearance", + description: "", + }, + }, + ru: { + Normal: { + title: "Нормальный клиренс креатинина", + description: "", + }, + "Mildly impaired": { + title: "Незначительно нарушенный клиренс креатинина", + description: "", + }, + "Moderately impaired": { + title: "Умеренно нарушенный клиренс креатинина", + description: "", + }, + "Severely impaired": { + title: "Значительно нарушенный клиренс креатинина", + description: "", + }, + }, +}; diff --git a/src/calcs/cow/README.md b/src/calcs/cow/README.md new file mode 100644 index 0000000..7af73cc --- /dev/null +++ b/src/calcs/cow/README.md @@ -0,0 +1,3 @@ +https://nida.nih.gov/sites/default/files/ClinicalOpiateWithdrawalScale.pdf + +https://psychiatr.ru/download/3782?view=1&name=046-071.pdf diff --git a/src/calcs/cow/api.ts b/src/calcs/cow/api.ts new file mode 100644 index 0000000..97946d0 --- /dev/null +++ b/src/calcs/cow/api.ts @@ -0,0 +1,62 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +function calculateCowScore(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + title: "", + description: "", + }; + } + + let score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5) + + Number(input.q6) + + Number(input.q7) + + Number(input.q8) + + Number(input.q9) + + Number(input.q10) + + Number(input.q11); + + let result; + if (score > 4 && score < 13) { + result = "Mild"; + } else if (score < 25) { + result = "Moderate"; + } else if (score < 37) { + result = "Moderately Severe"; + } else { + result = "Severe Withdrawal"; + } + + let variant = variants[prefs.language][result]; + let title = variant.title; + let description = variant.description; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + title, + description, + }; + return output; +} + +export { calculateCowScore }; diff --git a/src/calcs/cow/domain.ts b/src/calcs/cow/domain.ts new file mode 100644 index 0000000..67286ed --- /dev/null +++ b/src/calcs/cow/domain.ts @@ -0,0 +1,48 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; + q6: number | null; + q7: number | null; + q8: number | null; + q9: number | null; + q10: number | null; + q11: number | null; +} + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + score?: string; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + title: string; + description: string; +} diff --git a/src/calcs/cow/questions.ts b/src/calcs/cow/questions.ts new file mode 100644 index 0000000..db665e6 --- /dev/null +++ b/src/calcs/cow/questions.ts @@ -0,0 +1,333 @@ +import { Questions } from "./domain"; + +const questions: Questions = { + en: [ + { + name: "q1", + text: "Resting Pulse Rate (BPM)", + options: [ + { label: "≤80", value: 0 }, + { label: "81-100", value: 1 }, + { label: "101-120", value: 2 }, + { label: ">120", value: 4 }, + ], + }, + { + name: "q2", + text: "Sweating", + options: [ + { label: "No report of chills or flushing", value: 0 }, + { label: "Subjective report of chills or flushing", value: 1 }, + { label: "Flushed or observable moistness on face", value: 2 }, + { label: "Beads of sweat on brow or face", value: 3 }, + { label: "Sweat streaming off face", value: 4 }, + ], + }, + { + name: "q3", + text: "Restlessness observation during assessment", + options: [ + { label: "Able to sit still", value: 0 }, + { + label: "Reports difficulty sitting still, but is able to do so", + value: 1, + }, + { + label: "Frequent shifting or extraneous movements of legs/arms", + value: 3, + }, + { + label: "Unable to sit still for more than a few seconds", + value: 5, + }, + ], + }, + + { + name: "q4", + text: "Pupil size", + options: [ + { + label: "Pupils pinned or normal size for room light", + value: 0, + }, + { + label: "Pupils possibly larger than normal for room light", + value: 1, + }, + { label: "Pupils moderately dilated", value: 2 }, + { + label: "Pupils so dilated that only the rim of the iris is visible", + value: 5, + }, + ], + }, + { + name: "q5", + text: "Bone or joint aches", + options: [ + { label: "Not present", value: 0 }, + { label: "Mild diffuse discomfort", value: 1 }, + { + label: "Patient reports severe diffuse aching of joints/ muscles", + value: 2, + }, + { + label: "Patient is rubbing joints or muscles and is unable to sit still because of discomfort", + value: 4, + }, + ], + }, + { + name: "q6", + text: "Runny nose or tearing", + options: [ + { label: "Not present", value: 0 }, + { label: "Nasal stuffiness or unusually moist eyes", value: 1 }, + { label: "Nose running or tearing", value: 2 }, + { + label: "Nose constantly running or tears streaming down cheeks", + value: 4, + }, + ], + }, + { + name: "q7", + text: "Gastrointestinal (GI) upset", + options: [ + { label: "No GI symptoms", value: 0 }, + { label: "Stomach Cramps", value: 1 }, + { label: "Nausea or loose stool", value: 2 }, + { label: "Vomiting or diarrhea", value: 3 }, + { + label: "Multiple episodes of vomiting or diarrhea", + value: 5, + }, + ], + }, + { + name: "q8", + text: "Tremor observation of outstretched hands", + options: [ + { label: "No tremor", value: 0 }, + { label: "Tremor can be felt, but not observed", value: 1 }, + { label: "Slight tremor observable", value: 2 }, + { label: "Gross tremor or muscle twitching", value: 4 }, + ], + }, + { + name: "q9", + text: "Yawning observation during assessment", + options: [ + { label: "No yawning", value: 0 }, + { label: "Yawning once or twice during assessment", value: 1 }, + { + label: "Yawning three or more times during assessment", + value: 2, + }, + { label: "Yawning several times/minute", value: 4 }, + ], + }, + { + name: "q10", + text: "Anxiety or irritability", + options: [ + { label: "None", value: 0 }, + { + label: "Patient reports increasing irritability or anxiousness", + value: 1, + }, + { label: "Patient obviously irritable/anxious", value: 2 }, + { + label: "Patient so irritable or anxious that participation in the assessment is difficult", + value: 4, + }, + ], + }, + { + name: "q11", + text: "Gooseflesh skin", + options: [ + { label: "Skin is smooth", value: 0 }, + { + label: "Piloerection of skin can be felt or hairs standing up on arms", + value: 3, + }, + { label: "Prominent piloerection", value: 5 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Частота пульса в покое (ударов в минуту)", + options: [ + { label: "≤80", value: 0 }, + { label: "81-100", value: 1 }, + { label: "101-120", value: 2 }, + { label: ">120", value: 4 }, + ], + }, + { + name: "q2", + text: "Потоотделение", + options: [ + { + label: "Отсутствует информация о ознобе или покраснении", + value: 0, + }, + { + label: "Субъективные ощущения озноба или покраснения", + value: 1, + }, + { + label: "Покраснение или наблюдаемая влажность лица", + value: 2, + }, + { label: "Капли пота на лбу или лице", value: 3 }, + { label: "Пот стекает с лица", value: 4 }, + ], + }, + { + name: "q3", + text: "Наблюдение за беспокойством во время оценки", + options: [ + { label: "Может сидеть спокойно", value: 0 }, + { + label: "Сообщает о трудностях в сидении, но способен делать это", + value: 1, + }, + { + label: "Часто меняет положение или делает лишние движения ногами/руками", + value: 3, + }, + { + label: "Не может сидеть спокойно больше нескольких секунд", + value: 5, + }, + ], + }, + + { + name: "q4", + text: "Размер зрачков", + options: [ + { + label: "Зрачки сужены или нормального размера для освещения в помещении", + value: 0, + }, + { + label: "Зрачки, возможно, больше, чем нормально для освещения в помещении", + value: 1, + }, + { label: "Умеренное расширение зрачков", value: 2 }, + { + label: "Зрачки настолько расширены, что виден только ободок радужки", + value: 5, + }, + ], + }, + { + name: "q5", + text: "Боли в костях или суставах", + options: [ + { label: "Отсутствуют", value: 0 }, + { label: "Легкое диффузное неприятное ощущение", value: 1 }, + { + label: "Пациент сообщает о сильных диффузных болях в суставах/мышцах", + value: 2, + }, + { + label: "Пациент трется о суставы или мышцы и не может сидеть спокойно из-за дискомфорта", + value: 4, + }, + ], + }, + { + name: "q6", + text: "Насморк или слезотечение", + options: [ + { label: "Отсутствует", value: 0 }, + { + label: "Заложенность носа или необычно влажные глаза", + value: 1, + }, + { label: "Нос течет или глаза слезятся", value: 2 }, + { + label: "Нос постоянно текет или слезы стекают по щекам", + value: 4, + }, + ], + }, + { + name: "q7", + text: "Повреждение желудочно-кишечного тракта", + options: [ + { label: "Нет симптомов желудочно-кишечного тракта", value: 0 }, + { label: "Боли в животе", value: 1 }, + { label: "Тошнота или расстроенный стул", value: 2 }, + { label: "Рвота или понос", value: 3 }, + { + label: "Многократные эпизоды рвоты или поноса", + value: 5, + }, + ], + }, + { + name: "q8", + text: "Наблюдение за дрожью вытянутых рук", + options: [ + { label: "Отсутствует дрожь", value: 0 }, + { label: "Дрожь ощущается, но не наблюдается", value: 1 }, + { label: "Наблюдается слабая дрожь", value: 2 }, + { + label: "Грубая дрожь или судорожные движения мышц", + value: 4, + }, + ], + }, + { + name: "q9", + text: "Зевота во время оценки", + options: [ + { label: "Нет зевоты", value: 0 }, + { label: "Зевота один или два раза во время оценки", value: 1 }, + { + label: "Зевота три или более раза во время оценки", + value: 2, + }, + { label: "Зевота несколько раз в минуту", value: 4 }, + ], + }, + { + name: "q10", + text: "Тревожность или раздражительность", + options: [ + { label: "Отсутствует", value: 0 }, + { + label: "Пациент сообщает о нарастающей раздражительности или тревожности", + value: 1, + }, + { label: "Пациент явно раздражителен/тревожен", value: 2 }, + { + label: "Пациент настолько раздражителен или тревожен, что участие в оценке затруднительно", + value: 4, + }, + ], + }, + { + name: "q11", + text: "Мурашки по коже", + options: [ + { label: "Кожа гладкая", value: 0 }, + { + label: "Кожу можно потрогать, и волоски поднимаются на руках", + value: 3, + }, + { label: "Заметное поднимание волосков", value: 5 }, + ], + }, + ], +}; + +export default questions; diff --git a/src/calcs/cow/ui.tsx b/src/calcs/cow/ui.tsx new file mode 100644 index 0000000..0022c9c --- /dev/null +++ b/src/calcs/cow/ui.tsx @@ -0,0 +1,87 @@ +import React, { useEffect, useState } from "react"; +import { View, ScrollView } from "react-native"; + +import { SegmentContainer } from "../../components/segmentContainer"; +import questions from "./questions"; +import { calculateCowScore } from "./api"; +import { Input, Question } from "./domain"; + +const CalcScreen: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + q6: null, + q7: null, + q8: null, + q9: null, + q10: null, + q11: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateCowScore(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; +export default CalcScreen; diff --git a/src/calcs/cow/variants.ts b/src/calcs/cow/variants.ts new file mode 100644 index 0000000..0cf69ba --- /dev/null +++ b/src/calcs/cow/variants.ts @@ -0,0 +1,39 @@ +import { Variants } from "./domain"; +export const variants: Variants = { + en: { + Mild: { + title: "Mild Withdrawal", + description: "", + }, + Moderate: { + title: "Moderate Withdrawal", + description: "", + }, + "Moderately Severe": { + title: "Moderately Severe Withdrawal", + description: "", + }, + "Severe Withdrawal": { + title: "Severe Withdrawal", + description: "", + }, + }, + ru: { + Mild: { + title: "Мягкий ОАС", + description: "", + }, + Moderate: { + title: "Умеренный ОАС", + description: "", + }, + "Moderately Severe": { + title: "Умеренно-тяжелый ОАС", + description: "", + }, + "Severe Withdrawal": { + title: "Тяжелый ОАС", + description: "", + }, + }, +}; diff --git a/src/calcs/curb-65/api.ts b/src/calcs/curb-65/api.ts new file mode 100644 index 0000000..462db81 --- /dev/null +++ b/src/calcs/curb-65/api.ts @@ -0,0 +1,99 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateCURB65Score(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let score = 0; + + let data = { + confusion: input.confusion, + bun: input.bun, + respiratoryRate: input.respiratoryRate ? 30 : 0, + systolicBP: input.systolicBP ? 0 : 90, + age65: input.age65, + }; + + if (data.confusion === 1) score++; + if (data.bun === 1) score++; + if (data.respiratoryRate >= 30) score++; + if (data.systolicBP < 90) score++; + if (data.age65 === 1) score++; + + let variantKey = ""; + let severity = ""; + if (score === 0 || score === 1) { + variantKey = "low"; + severity = variants[prefs.language]["low"].title; + } else if (score === 2) { + variantKey = "moderate"; + severity = variants[prefs.language]["moderate"].title; + } else if (score === 3) { + variantKey = "severe"; + severity = variants[prefs.language]["severe"].title; + } else if (score === 4 || score === 5) { + variantKey = "highest"; + severity = variants[prefs.language]["highest"].title; + } + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + let variant = variants[prefs.language][variantKey]; + let title = variant.title; + let description = variant.description; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculateCURB65Score }; diff --git a/src/calcs/curb-65/domain.ts b/src/calcs/curb-65/domain.ts new file mode 100644 index 0000000..cb516fd --- /dev/null +++ b/src/calcs/curb-65/domain.ts @@ -0,0 +1,51 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + confusion: number | null; + bun: number | null; + respiratoryRate: number | null; + systolicBP: number | null; + age65: number | null; +} + +// export interface Input { +// q1: number | null; +// q2: number | null; +// q3: number | null; +// q4: number | null; +// q5: number | null; +// } + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + score?: string; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/curb-65/i18n/en.json b/src/calcs/curb-65/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/curb-65/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/curb-65/i18n/ru.json b/src/calcs/curb-65/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/curb-65/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/curb-65/questions.ts b/src/calcs/curb-65/questions.ts new file mode 100644 index 0000000..a6b82a4 --- /dev/null +++ b/src/calcs/curb-65/questions.ts @@ -0,0 +1,88 @@ +import { Questions } from "./domain"; + +export const questions: Questions = { + en: [ + { + name: "confusion", + text: "Altered Mental Status", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "bun", + text: "Blood Urea Nitrogen (BUN) >7 mmol/L (>19 mg/dL)", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "respiratoryRate", + text: "Respiratory Rate ≥30/min", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "systolicBP", + text: "Systolic BP <90 mmHg or Diastolic BP ≤60 mmHg", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "age65", + text: "Age 65 or Older", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + ], + ru: [ + { + name: "confusion", + text: "Нарушение сознания", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "bun", + text: "Уровень азота мочевины в крови > 7 ммоль/л", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "respiratoryRate", + text: "Частота дыхания ≥ 30/мин", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "systolicBP", + text: "Снижение систалического АД < 90 мм рт.ст.", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "age65", + text: "Возраст 65 лет и старше", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + ], +}; diff --git a/src/calcs/curb-65/ui.tsx b/src/calcs/curb-65/ui.tsx new file mode 100644 index 0000000..a75186c --- /dev/null +++ b/src/calcs/curb-65/ui.tsx @@ -0,0 +1,77 @@ +import React, { useEffect, useState } from "react"; +import { View, ScrollView } from "react-native"; +import { SegmentContainer } from "../../components/segmentContainer"; +import { Input, Question } from "./domain"; +import { calculateCURB65Score } from "./api"; +import { questions } from "./questions"; + +const CURB65: React.FC = ({ handleResult, handleResetClick, lang }: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + confusion: null, + bun: null, + respiratoryRate: null, + systolicBP: null, + age65: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateCURB65Score(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export { CURB65 }; diff --git a/src/calcs/curb-65/variants.ts b/src/calcs/curb-65/variants.ts new file mode 100644 index 0000000..e66ef10 --- /dev/null +++ b/src/calcs/curb-65/variants.ts @@ -0,0 +1,40 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + low: { + title: "Low risk group", + description: "2.7% 30-day mortality", + }, + moderate: { + title: "Moderate risk group", + description: "6.8% 30-day mortality", + }, + severe: { + title: "Severe risk group", + description: "14.0% 30-day mortality", + }, + highest: { + title: "Highest risk group", + description: "27.8% 30-day mortality", + }, + }, + ru: { + low: { + title: "Низкий риск", + description: "Низкий риск смертности", + }, + moderate: { + title: "Умеренный риск", + description: "Умеренный риск смертности", + }, + severe: { + title: "Высокий риск", + description: "Высокий риск смертности", + }, + highest: { + title: "Очень высокий риск", + description: "Очень высокий риск смертности", + }, + }, +}; diff --git a/src/calcs/findrisk/README.md b/src/calcs/findrisk/README.md new file mode 100644 index 0000000..ff4b57a --- /dev/null +++ b/src/calcs/findrisk/README.md @@ -0,0 +1,9 @@ +Пруфы + +https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6249987/ +https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6249987/#sec0120title + +https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9940497/ + +http://ijomeh.eu/Evaluation-of-the-Finnish-Diabetes-Risk-Score-FINDRISC-for-diabetes-screening-in-occupational-health-care,2332,0,2.html +http://ijomeh.eu/pdf-2332-2468?filename=Evaluation%20of%20the%20Finnish.pdf \ No newline at end of file diff --git a/src/calcs/findrisk/api.ts b/src/calcs/findrisk/api.ts new file mode 100644 index 0000000..712349b --- /dev/null +++ b/src/calcs/findrisk/api.ts @@ -0,0 +1,104 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateFindrisk(input: Input, prefs: Prefs): Result { + // The FINDRISK algorithm was originally published in this paper: + // https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2768210/ + // We are using an adapted version of the algorithm that was published in this paper: + // https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3854070/ + + const isEmpty = Object.entries(input).some(([key, value]) => { + if (key === "waist_male" || key === "waist_female") { + return false; + } + return value === null || value === undefined; + }); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let score = 0; + + score += input.age !== null ? input.age : 0; + score += input.bmi !== null ? input.bmi : 0; + score += input.physicalActivity !== null ? input.physicalActivity : 0; + score += + input.dailyFruitsVegetables !== null ? input.dailyFruitsVegetables : 0; + score += + input.bloodPressureMedication !== null + ? input.bloodPressureMedication + : 0; + score += input.familyDiabetes !== null ? input.familyDiabetes : 0; + score += input.highBloodGlucose !== null ? input.highBloodGlucose : 0; + + if (input.gender == 1) { + score += input.waist_female !== null ? input.waist_female : 0; + } else if (input.gender == 2) { + score += input.waist_male !== null ? input.waist_male : 0; + } + + let resultTitle = ""; + let resultDescription = ""; + for (const variant in variants[prefs.language]) { + const range = variant.split(" ")[0]; + const [minScore, maxScore] = range.split("-").map(Number); + if (score >= minScore && score <= maxScore) { + resultTitle = variants[prefs.language][variant].title; + resultDescription = variants[prefs.language][variant].description; + break; + } + } + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score: score, + scoreUnit, + title: resultTitle, + description: resultDescription, + }; + + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculateFindrisk }; diff --git a/src/calcs/findrisk/domain.ts b/src/calcs/findrisk/domain.ts new file mode 100644 index 0000000..a7aedc0 --- /dev/null +++ b/src/calcs/findrisk/domain.ts @@ -0,0 +1,49 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + gender: number | null; + age: number | null; + bmi: number | null; + waist_female: number | null; + waist_male: number | null; + physicalActivity: number | null; + dailyFruitsVegetables: number | null; + bloodPressureMedication: number | null; + highBloodGlucose: number | null; + familyDiabetes: number | null; +} + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + score?: string; + }[]; + forceVertical?: boolean; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/findrisk/i18n/en.json b/src/calcs/findrisk/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/findrisk/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/findrisk/i18n/ru.json b/src/calcs/findrisk/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/findrisk/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/findrisk/questions.ts b/src/calcs/findrisk/questions.ts new file mode 100644 index 0000000..1267034 --- /dev/null +++ b/src/calcs/findrisk/questions.ts @@ -0,0 +1,180 @@ +import { Questions } from "./domain"; + +export const questions: Questions = { + en: [ + { + name: "gender", + text: "Gender", + options: [ + { label: "Female", value: 1 }, + { label: "Male", value: 2 }, + ], + }, + { + name: "age", + text: "Age, years", + options: [ + { label: "≤44", value: 0 }, + { label: "45-54", value: 2 }, + { label: "55-64", value: 3 }, + { label: ">64", value: 4 }, + ], + }, + { + name: "bmi", + text: "BMI, kg/m²", + options: [ + { label: "<25", value: 0 }, + { label: "25-30", value: 1 }, + { label: ">30", value: 3 }, + ], + }, + { + name: "waist_male", + text: "Waist circumference", + options: [ + { label: "<94 cm (37 in)", value: 0 }, + { label: "94 to <102 cm (37 to <40 in)", value: 3 }, + { label: "≥102 cm (≥40 in)", value: 4 }, + ], + }, + { + name: "waist_female", + text: "Waist circumference", + options: [ + { label: "< 80 cm (31 in)", value: 0 }, + { label: "80 to <88 cm (31 to <35 in)", value: 3 }, + { label: "≥88 cm (≥35 in)", value: 4 }, + ], + }, + { + name: "physicalActivity", + text: "Physical activity", + options: [ + { label: "≥4 hr/week", value: 0 }, + { label: "<4 hr/week", value: 2 }, + ], + }, + { + name: "dailyFruitsVegetables", + text: "Daily consumption of vegetables, fruits, or berries", + options: [ + { label: "No", value: 1 }, + { label: "Yes", value: 0 }, + ], + }, + { + name: "bloodPressureMedication", + text: "Use of blood pressure medication", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 2 }, + ], + }, + { + name: "highBloodGlucose", + text: "History of high blood glucose levels", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 5 }, + ], + }, + { + name: "familyDiabetes", + text: "Family history of diabetes", + options: [ + { label: "No", value: 0 }, + { label: "Yes, 2nd degree relative", value: 3 }, + { label: "Yes, 1st degree relative", value: 5 }, + ], + }, + ], + ru: [ + { + name: "gender", + text: "Пол", + options: [ + { label: "Женский", value: 1 }, + { label: "Мужской", value: 2 }, + ], + }, + { + name: "age", + text: "Возраст, лет", + options: [ + { label: "≤44", value: 0 }, + { label: "45-54", value: 2 }, + { label: "55-64", value: 3 }, + { label: ">64", value: 4 }, + ], + }, + { + name: "bmi", + text: "Индекс массы тела кг/м²", + options: [ + { label: "<25 кг/м²", value: 0 }, + { label: "25-29.9 кг/м²", value: 1 }, + { label: "≥30 кг/м²", value: 3 }, + ], + }, + { + name: "waist_male", + text: "Окружность талии", + options: [ + { label: "<94 см", value: 0 }, + { label: "94-102 см", value: 3 }, + { label: ">102 см", value: 4 }, + ], + }, + { + name: "waist_female", + text: "Окружность талии", + options: [ + { label: "<80 см", value: 0 }, + { label: "80-88 см", value: 3 }, + { label: ">88 см", value: 4 }, + ], + }, + { + name: "physicalActivity", + text: "Физическая активность", + options: [ + { label: "от 4 часов в неделю", value: 0 }, + { label: "до 4 часов в неделю", value: 2 }, + ], + }, + { + name: "dailyFruitsVegetables", + text: "Ежедневное употребление фруктов, ягод или овощей", + options: [ + { label: "Нет", value: 1 }, + { label: "Да", value: 0 }, + ], + }, + { + name: "bloodPressureMedication", + text: "Прием препаратов для снижения АД", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 2 }, + ], + }, + { + name: "highBloodGlucose", + text: "Скрининговое повышение глюкозы", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 5 }, + ], + }, + { + name: "familyDiabetes", + text: "Сахарные диабет у родственников", + options: [ + { label: "Нет", value: 0 }, + { label: "Да, 2 степень диабета", value: 3 }, + { label: "Да, 1 степень диабета", value: 5 }, + ], + }, + ], +}; diff --git a/src/calcs/findrisk/ui.tsx b/src/calcs/findrisk/ui.tsx new file mode 100644 index 0000000..5ec0002 --- /dev/null +++ b/src/calcs/findrisk/ui.tsx @@ -0,0 +1,121 @@ +import React, { useEffect, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { View, ScrollView } from "react-native"; + +import { SegmentContainer } from "../../components/segmentContainer"; +import { Input, Question } from "./domain"; +import { calculateFindrisk } from "./api"; +import { questions } from "./questions"; + +const CalcScreen: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + gender: null, + age: null, + bmi: null, + waist_female: null, + waist_male: null, + physicalActivity: null, + dailyFruitsVegetables: null, + bloodPressureMedication: null, + highBloodGlucose: null, + familyDiabetes: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + const [selectedGender, setSelectedGender] = useState(null); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + if (field === "gender") { + setSelectedGender(value); + } + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateFindrisk(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setSelectedGender(null); + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => { + // Check if the question should be displayed based on the selected gender + if ( + (question.name === "waist_male" && + selectedGender === 2) || // "Male" + (question.name === "waist_female" && + selectedGender === 1) // "Female" + ) { + return ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + forceVertical={question.forceVertical} + /> + ); + } else if ( + question.name !== "waist_male" && + question.name !== "waist_female" + ) { + // Render all other questions except waist-related ones + return ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + forceVertical={question.forceVertical} + /> + ); + } + })} + + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/findrisk/variants.ts b/src/calcs/findrisk/variants.ts new file mode 100644 index 0000000..26fe3a8 --- /dev/null +++ b/src/calcs/findrisk/variants.ts @@ -0,0 +1,48 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + "0-4": { + title: "Very low risk", + description: "0.1% of 10-year risk of developing T2DM", + }, + "5-9": { + title: "Low risk", + description: "0.4% of 10-year risk of developing T2DM", + }, + "10-14": { + title: "Moderate risk", + description: "2.2% of 10-year risk of developing T2DM", + }, + "15-20": { + title: "High risk", + description: "14.1% of 10-year risk of developing T2DM", + }, + "21-999": { + title: "Very high risk", + description: "50% of 10-year risk of developing T2DM", + }, + }, + ru: { + "0-4": { + title: "Очень низкий риск", + description: "0,1% 10-летнего риска развития СД 2 типа", + }, + "5-9": { + title: "Низкий риск", + description: "0,4% 10-летнего риска развития СД 2 типа", + }, + "10-14": { + title: "Умеренный риск", + description: "2,2% 10-летнего риска развития СД 2 типа", + }, + "15-20": { + title: "Высокий риск", + description: "14,1% 10-летнего риска развития СД 2 типа", + }, + "21-999": { + title: "Очень высокий риск", + description: "50% 10-летнего риска развития СД 2 типа", + }, + }, +}; diff --git a/src/calcs/gad7/api.ts b/src/calcs/gad7/api.ts new file mode 100644 index 0000000..6160504 --- /dev/null +++ b/src/calcs/gad7/api.ts @@ -0,0 +1,87 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateGAD7Score(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + const score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5) + + Number(input.q6) + + Number(input.q7); + + let result: string; + if (score <= 4) { + result = "No anxiety"; + } else if (score <= 9) { + result = "Mild anxiety"; + } else if (score <= 14) { + result = "Moderate anxiety"; + } else { + result = "Severe anxiety"; + } + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + let variant = variants[prefs.language][result]; + let title = variant.title; + let description = variant.description; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculateGAD7Score }; diff --git a/src/calcs/gad7/domain.ts b/src/calcs/gad7/domain.ts new file mode 100644 index 0000000..8a19a7d --- /dev/null +++ b/src/calcs/gad7/domain.ts @@ -0,0 +1,44 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; + q6: number | null; + q7: number | null; +} + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/gad7/i18n/en.json b/src/calcs/gad7/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/gad7/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/gad7/i18n/ru.json b/src/calcs/gad7/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/gad7/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/gad7/questions.ts b/src/calcs/gad7/questions.ts new file mode 100644 index 0000000..a514294 --- /dev/null +++ b/src/calcs/gad7/questions.ts @@ -0,0 +1,150 @@ +import { Questions } from "./domain"; + +const questions: Questions = { + en: [ + { + name: "q1", + text: "Feeling nervous, anxious or on edge", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q2", + text: "Not being able to stop or control worrying", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q3", + text: "Worrying too much about different things", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q4", + text: "Trouble relaxing", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q5", + text: "Being so restless that it is hard to sit still", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q6", + text: "Becoming easily annoyed or irritable", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q7", + text: "Feeling afraid, as if something awful might happen", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Повышенная нервная возбудимость, беспокойство или раздражительность", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Больше половины дней", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q2", + text: "Неспособность справиться с волнением", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Больше половины дней", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q3", + text: "Чрезмерное беспокойство по разному поводу", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Больше половины дней", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q4", + text: "Неспособность расслабляться", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Больше половины дней", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q5", + text: "Крайняя степень беспокойства: «не могу найти себе места»", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Больше половины дней", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q6", + text: "Легко поддаюсь чувству беспокойства или раздражительности.", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Больше половины дней", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q7", + text: "Опасение чего-то страшного", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколькодней", value: 1 }, + { label: "Больше половины дней", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + ], +}; + +export default questions; diff --git a/src/calcs/gad7/ui.tsx b/src/calcs/gad7/ui.tsx new file mode 100644 index 0000000..4bb0472 --- /dev/null +++ b/src/calcs/gad7/ui.tsx @@ -0,0 +1,86 @@ +import React, { useEffect, useState } from "react"; +import { View, ScrollView } from "react-native"; + +import { SegmentContainer } from "../../components/segmentContainer"; + +import { Input, Question } from "./domain"; +import questions from "./questions"; +import { calculateGAD7Score } from "./api"; + +const CalcScreen: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + // Initialize empty input state + const emptyInput = () => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + q6: null, + q7: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateGAD7Score(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/gad7/variants.ts b/src/calcs/gad7/variants.ts new file mode 100644 index 0000000..db87f6d --- /dev/null +++ b/src/calcs/gad7/variants.ts @@ -0,0 +1,40 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + "No anxiety": { + title: "No anxiety disorder", + description: "", + }, + "Mild anxiety": { + title: "Mild anxiety disorder", + description: "", + }, + "Moderate anxiety": { + title: "Moderate anxiety disorder", + description: "", + }, + "Severe anxiety": { + title: "Severe anxiety disorder", + description: "", + }, + }, + ru: { + "No anxiety": { + title: "Отсутствие тревожного расстройства", + description: "", + }, + "Mild anxiety": { + title: "Легкое тревожное расстройство", + description: "", + }, + "Moderate anxiety": { + title: "Умеренное тревожное расстройство", + description: "", + }, + "Severe anxiety": { + title: "Тяжелое тревожное расстройство", + description: "", + }, + }, +}; diff --git a/src/calcs/gds/README.md b/src/calcs/gds/README.md new file mode 100644 index 0000000..fec8566 --- /dev/null +++ b/src/calcs/gds/README.md @@ -0,0 +1,2 @@ +**Перечень вопросов** +https://sudact.ru/law/klinicheskie-rekomendatsii-starcheskaia-asteniia-utv-minzdravom-rossii/prilozhenie-g/prilozhenie-g19/ diff --git a/src/calcs/gds/api.ts b/src/calcs/gds/api.ts new file mode 100644 index 0000000..13a28b6 --- /dev/null +++ b/src/calcs/gds/api.ts @@ -0,0 +1,92 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateGDSScore(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + // Calculate total score + const score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5) + + Number(input.q6) + + Number(input.q7) + + Number(input.q8) + + Number(input.q9) + + Number(input.q10) + + Number(input.q11) + + Number(input.q12) + + Number(input.q13) + + Number(input.q14) + + Number(input.q15); + + let result: string; + if (score < 6) { + result = "no depression"; + } else { + result = "depression"; + } + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + var variant = variants[prefs.language][result]; + var title = variant.title; + var description = variant.description; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculateGDSScore }; diff --git a/src/calcs/gds/domain.ts b/src/calcs/gds/domain.ts new file mode 100644 index 0000000..34e230c --- /dev/null +++ b/src/calcs/gds/domain.ts @@ -0,0 +1,52 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; + q6: number | null; + q7: number | null; + q8: number | null; + q9: number | null; + q10: number | null; + q11: number | null; + q12: number | null; + q13: number | null; + q14: number | null; + q15: number | null; +} + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/gds/i18n/en.json b/src/calcs/gds/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/gds/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/gds/i18n/ru.json b/src/calcs/gds/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/gds/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/gds/questions.ts b/src/calcs/gds/questions.ts new file mode 100644 index 0000000..9deb3e1 --- /dev/null +++ b/src/calcs/gds/questions.ts @@ -0,0 +1,250 @@ +import { Questions } from "./domain"; + +export const questions: Questions = { + en: [ + { + name: "q1", + text: "Are you satisfied with your life overall?", + options: [ + { label: "No", value: 1 }, + { label: "Yes", value: 0 }, + ], + }, + { + name: "q2", + text: "Have you given up many of your activities and interests?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q3", + text: "Do you feel that your life is empty?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q4", + text: "Do you often feel bored?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q5", + text: "Do you usually have a good mood?", + options: [ + { label: "No", value: 1 }, + { label: "Yes", value: 0 }, + ], + }, + { + name: "q6", + text: "Are you afraid that something bad is going to happen to you?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q7", + text: "Do you feel mostly satisfied with yourself?", + options: [ + { label: "No", value: 1 }, + { label: "Yes", value: 0 }, + ], + }, + { + name: "q8", + text: "Do you often feel helpless?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q9", + text: "Do you prefer to stay at home rather than going out and doing new things?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q10", + text: "Do you think your memory is worse than most people's?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q11", + text: "Do you think life is good right now?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q12", + text: "Do you feel worthless at the moment?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q13", + text: "Do you feel full of energy?", + options: [ + { label: "No", value: 1 }, + { label: "Yes", value: 0 }, + ], + }, + { + name: "q14", + text: "Do you feel that your situation is hopeless?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q15", + text: "Do you think most people have a better life than yours?", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Довольны ли Вы в целом жизнью?", + options: [ + { label: "Нет", value: 1 }, + { label: "Да", value: 0 }, + ], + }, + { + name: "q2", + text: "От многих ли занятий и форм проведения досуга Вы отказались?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q3", + text: "Есть ли у Вас чувство, что Ваша жизнь пуста?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q4", + text: "Вы часто скучаете?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q5", + text: "У Вас обычно хорошее настроение?", + options: [ + { label: "Нет", value: 1 }, + { label: "Да", value: 0 }, + ], + }, + { + name: "q6", + text: "Боитесь ли Вы, что с Вами произойдет что-то плохое?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q7", + text: "Ощущаете ли Вы себя по большей части удовлетворенным человеком?", + options: [ + { label: "Нет", value: 1 }, + { label: "Да", value: 0 }, + ], + }, + { + name: "q8", + text: "Часто ли Вы чувствуете себя беспомощным?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q9", + text: "Предпочитаете ли Вы остаться дома или выйти на прогулку за новыми впечатлениями?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q10", + text: "Считаете ли Вы, что у Вас память хуже, чем у большинства людей?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + + { + name: "q11", + text: "Считаете ли Вы, что сейчас жить хорошо?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + + { + name: "q12", + text: "Чувствуете ли Вы себя в данный момент ненужным?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q13", + text: "Ощущаете ли Вы себя полным энергии?", + options: [ + { label: "Нет", value: 1 }, + { label: "Да", value: 0 }, + ], + }, + { + name: "q14", + text: "Есть ли у Вас ощущение, что Ваше положение безнадежно?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q15", + text: "Считаете ли Вы, что большинству людей живется лучше, чем Вам?", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + ], +}; diff --git a/src/calcs/gds/ui.tsx b/src/calcs/gds/ui.tsx new file mode 100644 index 0000000..421fba3 --- /dev/null +++ b/src/calcs/gds/ui.tsx @@ -0,0 +1,92 @@ +import React, { useEffect, useState } from "react"; +import { View, ScrollView } from "react-native"; + +import { SegmentContainer } from "../../components/segmentContainer"; +import { Input, Question } from "./domain"; +import { questions } from "./questions"; +import { calculateGDSScore } from "./api"; + +const CalcScreen: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + q6: null, + q7: null, + q8: null, + q9: null, + q10: null, + q11: null, + q12: null, + q13: null, + q14: null, + q15: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateGDSScore(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/gds/variants.ts b/src/calcs/gds/variants.ts new file mode 100644 index 0000000..d7acbb1 --- /dev/null +++ b/src/calcs/gds/variants.ts @@ -0,0 +1,23 @@ +import { Variants } from "./domain"; +export const variants: Variants = { + en: { + "no depression": { + title: "Low risk", + description: "", + }, + depression: { + title: "Intermediate risk", + description: "", + }, + }, + ru: { + "no depression": { + title: "Нет признаков депресии", + description: "", + }, + depression: { + title: "Обнаруживаются признаки депресии", + description: "", + }, + }, +}; diff --git a/src/calcs/gfr/README.md b/src/calcs/gfr/README.md new file mode 100644 index 0000000..9be937f --- /dev/null +++ b/src/calcs/gfr/README.md @@ -0,0 +1,73 @@ +**Скорость клубочковой фильтрации** +https://evidence-neurology.ru/medical-calculators/hemorrhage/skf-creatinine-clearance/ + +``` +function Calculator(){ + var error = false; + // Sex + var sex = ''; + $('div.calculator.calc_2 div.item.sex input[name=sex]').each(function(){ + if ($(this).prop('checked')){sex = $(this).attr('value');}; + }); + if (sex == ''){$('div.calculator.calc_2 div.item.sex').addClass('error'); error = true;}; + // Creatinine + var creatinine = parseInt($('div.calculator.calc_2 div.item.creatinine input[name=creatinine]').val()); + var creatinineunits = $('div.calculator.calc_2 div.item.creatinine input[name=creatinineunits]').val(); + if (!creatinine||(creatinineunits == '')){$('div.calculator.calc_2 div.item.creatinine').addClass('error'); error = true;}; + // Age + var age = parseInt($('div.calculator.calc_2 div.item.age input[name=age]').val()); + if (!age||(age == 0)){$('div.calculator.calc_2 div.item.age').addClass('error'); error = true;}; + // Weight + var weight = parseInt($('div.calculator.calc_2 div.item.weight input[name=weight]').val()); + if (!weight||(weight == 0)){$('div.calculator.calc_2 div.item.weight').addClass('error'); error = true;}; + // Height + var height = parseInt($('div.calculator.calc_2 div.item.height input[name=height]').val()); + if (!height||(height == 0)){$('div.calculator.calc_2 div.item.height').addClass('error'); error = true;}; + + if (!error){ + if (sex == 'M'){sex = 1;} else {sex = 0.742;}; + if (creatinine == 0){creatinine = 0.1;}; + if (creatinineunits == 'mkmol-l'){creatinine_1 = creatinine/88.4;} else {creatinine_1 = creatinine; creatinine = creatinine*88.4;}; + var result_mdrd = ''; var result_cg = ''; var result_ckdepi = ''; var result_total = ''; var result_total_color = ''; + // MDRD + var MDRD = 1; + MDRD = 186 * sex * Math.pow(creatinine_1,-1.154); + MDRD = MDRD * Math.pow(age,-0.203); + if (MDRD > 60) {result_mdrd = 'MDRD: > 60 мл/мин / 1,73 кв.м';} else {result_mdrd = 'MDRD: ' + Math.round(MDRD) + ' мл/мин / 1,73 кв.м';}; + // CG and CKDEPI + var CG = (140 - age); + CG = CG * weight / creatinine; + if (sex == 1){ + CG = CG * 1.23; A = 141; B = 0.9; if (creatinine > 80){P = -1.209;} else {P = -0.411;}; + } else { + A = 144; B = 0.7; if (creatinine > 62){P = -1.209;} else {P = -0.329;}; + }; + var CKDEPI = A*Math.pow((creatinine_1/B),P)*Math.pow(0.993,age); + result_cg = 'Кокрофт-Голт: ' + Math.round(CG) + ' мл/мин'; + result_ckdepi = 'CKD-EPI: ' + Math.round(CKDEPI) + ' мл/мин / 1,73 кв.м'; + // normalize CG + // BSA, Dubois + var BSA = 0.007184 * Math.pow(height,0.725) * Math.pow(weight,0.425); + BSA = BSA * 100; + BSA = Math.round(BSA); + BSA = BSA/100; + if (BSA > 0){ + CGn = CG * 1.73 / BSA; + result_cg = 'Кокрофт-Голт: ' + Math.round(CG) + ' мл/мин (' + Math.round(CGn) + ' мл/мин / 1,73 кв.м)'; + }; + // RESULT + if (MDRD > 60){eGFR = CKDEPI;} else {eGFR = MDRD;}; + if (eGFR >= 90){result_total = 'Нормальная или повышенная СКФ.';} + else if (eGFR >= 60){result_total = 'Начальное снижение СКФ.';} + else if (eGFR >= 30){result_total = 'Умеренное снижение СКФ — III стадия ХБП.';} + else if (eGFR >= 15){result_total = 'Выраженное снижение СКФ — IV стадия ХБП.';} + else {result_total = 'Терминальная почечная недостаточность — V стадия ХБП.';}; + + var text = result_ckdepi + '
' + result_mdrd + '
' + result_cg + '
' + result_total + ''; + $('div.calculator.calc_2 div.result div.text').remove(); + if (text != ''){$('div.calculator.calc_2 div.result').prepend('

');}; + $('div.calculator.calc_2 div.result').removeClass('hidden'); + }; + return false; +}; +``` diff --git a/src/calcs/gfr/api.ts b/src/calcs/gfr/api.ts new file mode 100644 index 0000000..e02fbbf --- /dev/null +++ b/src/calcs/gfr/api.ts @@ -0,0 +1,102 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateBodySurfaceArea(weightKg: number, heightCm: number): number { + const heightM = heightCm / 100; // Convert height to meters + return Math.sqrt((weightKg * heightM) / 3600); +} + +function calculateGlomerularFiltrationRate(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + console.log("Input is not sufficient to do calculations, received input:"); + console.log(input); + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + const { age, creatinine, gender, height, weight } = input; + + let alpha, Sex, kappa; + if (gender === 1) { + // Male + Sex = 1; + alpha = -0.411; + kappa = 0.9; + } else { + // Female + Sex = 1.018; + alpha = -0.329; + kappa = 0.7; + } + + const creatinineUMolL = Number(creatinine) * 88.4; + + const eGFR = + 141 * + Math.min(creatinineUMolL / kappa, 1) * + Math.pow(creatinineUMolL / kappa, alpha) * + Math.pow(0.993, Number(age)) * + Sex * + calculateBodySurfaceArea(weight as number, height as number); + + const score = eGFR / 1.73; + + let result = ""; + if (score >= 90) { + result = "Normal"; + } else if (score >= 60) { + result = "Initially impaired"; + } else if (score >= 30) { + result = "Moderately impaired"; + } else if (score >= 15) { + result = "Severely impaired"; + } else { + result = "Terminally impaired"; + } + + const variant = variants[prefs.language][result]; + const title = variant.title; + const description = variant.description; + + let scoreUnit = ""; + switch (prefs.language) { + case "en": + scoreUnit = en.scoreUnit; + break; + case "ru": + scoreUnit = ru.scoreUnit; + break; + default: + scoreUnit = en.scoreUnit; + } + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score: Number(eGFR.toFixed(2)), + scoreUnit, + title, + description, + }; + return output; +} + +export { calculateGlomerularFiltrationRate }; diff --git a/src/calcs/gfr/domain.ts b/src/calcs/gfr/domain.ts new file mode 100644 index 0000000..01d607a --- /dev/null +++ b/src/calcs/gfr/domain.ts @@ -0,0 +1,29 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + gender: number | null; + age: number | null; + weight: number | null; + height: number | null; + creatinine: number | null; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/gfr/i18n/en.json b/src/calcs/gfr/i18n/en.json new file mode 100644 index 0000000..e2e0878 --- /dev/null +++ b/src/calcs/gfr/i18n/en.json @@ -0,0 +1,14 @@ +{ + "age": "Age", + "ageUnit": "years", + "gender": "Gender", + "male": "Male", + "female": "Female", + "height": "Height", + "heightUnit": "cm", + "weight": "Weight", + "weightUnit": "kg", + "creatinine": "Creatinine", + "creatinineUnit": "µmol/L", + "scoreUnit": "mL/min/1.73m2" +} diff --git a/src/calcs/gfr/i18n/ru.json b/src/calcs/gfr/i18n/ru.json new file mode 100644 index 0000000..ed0bcad --- /dev/null +++ b/src/calcs/gfr/i18n/ru.json @@ -0,0 +1,14 @@ +{ + "age": "Возраст", + "ageUnit": "лет", + "gender": "Пол", + "male": "Мужской", + "female": "Женский", + "height": "Рост", + "heightUnit": "см", + "weight": "Вес", + "weightUnit": "кг", + "creatinine": "Креатинин", + "creatinineUnit": "мкмоль/л", + "scoreUnit": "мл/мин" +} diff --git a/src/calcs/gfr/ui.tsx b/src/calcs/gfr/ui.tsx new file mode 100644 index 0000000..5bdbfce --- /dev/null +++ b/src/calcs/gfr/ui.tsx @@ -0,0 +1,140 @@ +import React, { useEffect, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { View, ScrollView } from "react-native"; + +import { NumericContainer } from "../../components/numericContainer"; +import { SegmentContainer } from "../../components/segmentContainer"; +import i18n from "../../i18n/i18n"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; +import { Input, Result } from "./domain"; +import { calculateGlomerularFiltrationRate } from "./api"; + +i18n.addResourceBundle("en", "CreatinineClearance", en); +i18n.addResourceBundle("ru", "CreatinineClearance", ru); + +const GlomerularFiltrationRate: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + const { t } = useTranslation("CreatinineClearance"); + + // Initialize empty input state + const emptyInput = () => { + return { + gender: null, + age: null, + height: null, + weight: null, + creatinine: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateGlomerularFiltrationRate(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + { + handleInputChange("gender", value); + }} + resetBy="null" + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange("age", value); + }} + type={"absint"} + suffix={t("ageUnit")} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange("weight", value); + }} + type={"absint"} + suffix={t("weightUnit")} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange("height", value); + }} + type={"absint"} + suffix={t("heightUnit")} + /> + { + if (parseInt(value) <= 0) { + return; + } + handleInputChange("creatinine", value); + }} + type={"float"} + suffix={t("creatinineUnit")} + /> + + + ); +}; + +export { GlomerularFiltrationRate }; diff --git a/src/calcs/gfr/variants.ts b/src/calcs/gfr/variants.ts new file mode 100644 index 0000000..6da1e51 --- /dev/null +++ b/src/calcs/gfr/variants.ts @@ -0,0 +1,48 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + Normal: { + title: "Normal or Elevated GFR", + description: "", + }, + "Initially impaired": { + title: "Mildly decline in GFR", + description: "", + }, + "Moderately impaired": { + title: "Moderate GFR Decrease", + description: "", + }, + "Severely impaired": { + title: "Severe decline in GFR", + description: "", + }, + "Terminally impaired": { + title: "Terminal Renal Failure", + description: "", + }, + }, + ru: { + Normal: { + title: "Нормальная или повышенная СКФ", + description: "", + }, + "Initially impaired": { + title: "Начальное снижение СКФ", + description: "", + }, + "Moderately impaired": { + title: "Умеренное снижение СКФ — III стадия ХБП", + description: "", + }, + "Severely impaired": { + title: "Выраженное снижение СКФ — IV стадия ХБП", + description: "", + }, + "Terminally impaired": { + title: "Терминальная почечная недостаточность — V стадия ХБП", + description: "", + }, + }, +}; diff --git a/src/calcs/gs-pe/README.md b/src/calcs/gs-pe/README.md new file mode 100644 index 0000000..e69de29 diff --git a/src/calcs/gs-pe/api.ts b/src/calcs/gs-pe/api.ts new file mode 100644 index 0000000..9a46fd8 --- /dev/null +++ b/src/calcs/gs-pe/api.ts @@ -0,0 +1,86 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateGspeScore(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5) + + Number(input.q6) + + Number(input.q7) + + Number(input.q8); + + let result; + if (score < 4) { + result = "Low Probability"; + } else if (score < 11) { + result = "Intermediate probability"; + } else { + result = "High probability"; + } + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + let variant = variants[prefs.language][result]; + let title = variant.title; + let description = variant.description; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculateGspeScore }; diff --git a/src/calcs/gs-pe/domain.ts b/src/calcs/gs-pe/domain.ts new file mode 100644 index 0000000..1e1e825 --- /dev/null +++ b/src/calcs/gs-pe/domain.ts @@ -0,0 +1,46 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; + q6: number | null; + q7: number | null; + q8: number | null; +} + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + score?: string; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/gs-pe/i18n/en.json b/src/calcs/gs-pe/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/gs-pe/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/gs-pe/i18n/ru.json b/src/calcs/gs-pe/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/gs-pe/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/gs-pe/questions.ts b/src/calcs/gs-pe/questions.ts new file mode 100644 index 0000000..fd1e908 --- /dev/null +++ b/src/calcs/gs-pe/questions.ts @@ -0,0 +1,138 @@ +import { Questions } from "./domain"; + +export const questions: Questions = { + en: [ + { + name: "q1", + text: "Age above 65", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q2", + text: "Previous DVT or PE", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 3 }, + ], + }, + { + name: "q3", + text: "Surgery (under general anesthesia) or lower limb fracture in past month", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 2 }, + ], + }, + { + name: "q4", + text: "Active malignant condition", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 2 }, + ], + }, + { + name: "q5", + text: "Unilateral lower limb pain", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 3 }, + ], + }, + { + name: "q6", + text: "Hemoptysis", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 2 }, + ], + }, + { + name: "q7", + text: "Heart rate", + options: [ + { label: "<75", value: 0 }, + { label: "75-94", value: 3 }, + { label: "≥94", value: 5 }, + ], + }, + { + name: "q8", + text: "Pain on lower limb palpation and unilateral edema", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 4 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Возраст >65 лет", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q2", + text: "Предыдущие случаи ТЭЛА или ТГВ", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 3 }, + ], + }, + { + name: "q3", + text: "Хирургическое вмешательство или переломы течение последнего месяца", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 2 }, + ], + }, + { + name: "q4", + text: "Злокачественное новообразование (солидная опухоль или гематологическое злокачественное заболевание, активное или вылеченное в настоящее время <1 года)", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 2 }, + ], + }, + { + name: "q5", + text: "Боль в одной нижней конечности", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 3 }, + ], + }, + { + name: "q6", + text: "Кровохарканье", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 2 }, + ], + }, + { + name: "q7", + text: "Частота сердечных сокращений (уд/мин)", + options: [ + { label: "<75", value: 0 }, + { label: "75-94", value: 3 }, + { label: "≥94", value: 5 }, + ], + }, + { + name: "q8", + text: "Боль при пальпации глубоких вен нижней конечности и отеки одной нижней конечности", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 4 }, + ], + }, + ], +}; diff --git a/src/calcs/gs-pe/ui.tsx b/src/calcs/gs-pe/ui.tsx new file mode 100644 index 0000000..c405684 --- /dev/null +++ b/src/calcs/gs-pe/ui.tsx @@ -0,0 +1,85 @@ +import React, { useEffect, useState } from "react"; +import { View, ScrollView } from "react-native"; + +import { SegmentContainer } from "../../components/segmentContainer"; +import { questions } from "./questions"; +import { calculateGspeScore } from "./api"; +import { Input, Question } from "./domain"; + +const CalcScreen: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + q6: null, + q7: null, + q8: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateGspeScore(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/gs-pe/variants.ts b/src/calcs/gs-pe/variants.ts new file mode 100644 index 0000000..6cab887 --- /dev/null +++ b/src/calcs/gs-pe/variants.ts @@ -0,0 +1,34 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + "Low Probability": { + title: "Low Probability", + description: "The patient is considered low risk (Score 0-3), <10% incidence of PE.", + }, + "Intermediate probability": { + title: "Intermediate probability", + description: "The patient is considered intermediate risk (Score 4-10).\n\nIf d-dimer testing is negative, consider stopping workup.\nIf d-dimer testing is positive, consider CT and US.\nIf CT is inconclusive, consider V/Q scan or angiography.", + }, + "High probability": { + title: "High probability", + description: "If the patient is considered high risk (score 11+, >60% incidence of PE), consider CT and US.\n\nIf imaging is negative consider angiography.", + }, + }, + ru: { + "Low Probability": { + title: "Низкая вероятность", + description: + "Проведите анализ крови на Д-димер:\n\n-если D-димер отрицательный, рассмотрите возможность прекращения исследования,\n-если D-димер положительный, показано проведение КТ-ангиопульмонографии", + }, + "Intermediate probability": { + title: "Промежуточная вероятность", + description: + "Проведите анализ крови на Д-димер:\n-если D-димер отрицательный, рассмотрите возможность прекращения исследования,\n-если D-димер положительный, показано проведение КТ-ангиопульмонографии", + }, + "High probability": { + title: "Высокая вероятность", + description: "Показано проведение КТ-ангиопульмонографии", + }, + }, +}; diff --git a/src/calcs/hba1c/api.ts b/src/calcs/hba1c/api.ts new file mode 100644 index 0000000..6deca5c --- /dev/null +++ b/src/calcs/hba1c/api.ts @@ -0,0 +1,70 @@ +interface Input { + hba1c: number; +} + +interface Variant { + title: string; + description: string; +} + +interface Result { + value: number; + interpretation: Variant; + date: Date; + id: string; +} + +interface Variants { + [key: string]: Variant; +} + +function calculate(input: Input): Result { + const eag = (28.7 * input.hba1c - 46.7).toFixed(0); + const interpretation = getInterpretation(input.hba1c); + + return { + value: parseFloat(eag), + interpretation, + date: new Date(), + id: Math.random().toString(36).substr(2, 9), + }; +} + +function getInterpretation(hba1c: number): Variant { + const variants: Variants = { + normal: { + title: "Normal", + description: "Less than 5.7%", + }, + prediabetes: { + title: "Prediabetes", + description: "5.7% to 6.4%", + }, + diabetes: { + title: "Diabetes", + description: "6.5% or higher", + }, + }; + + if (hba1c < 5.7) { + return variants.normal; + } else if (hba1c >= 5.7 && hba1c < 6.5) { + return variants.prediabetes; + } else { + return variants.diabetes; + } +} + +// Example usage: +const input: Input = { + hba1c: 7.2, +}; + +const result: Result = calculate(input); + +console.log(`Estimated Average Glucose (EAG): ${result.value}`); +console.log( + `Interpretation: ${result.interpretation.title} - ${result.interpretation.description}` +); +console.log(`Date: ${result.date}`); +console.log(`ID: ${result.id}`); diff --git a/src/calcs/hba1c/i18n/en.json b/src/calcs/hba1c/i18n/en.json new file mode 100644 index 0000000..017a18a --- /dev/null +++ b/src/calcs/hba1c/i18n/en.json @@ -0,0 +1,17 @@ +{ + "ageAbove65": "Age > 65", + "gender": "Gender", + "male": "Male", + "female": "Female", + "recentSurgeryOrFracture": "Recent Surgery or Fracture", + "activeCancer": "Active Cancer", + "unilateralLowerLimbPain": "Unilateral Lower Limb Pain", + "unilateralLowerLimbSwelling": "Unilateral Lower Limb Swelling", + "hemoptysis": "Hemoptysis", + "heartRate": "Heart Rate (beats per minute)", + "systolicBloodPressure": "Systolic Blood Pressure (mmHg)", + "painOnDeepPalpationOfLowerLimbVeins": "Pain on Deep Palpation of Lower Limb Veins", + "previousDVTOrPE": "Previous DVT or PE", + "yes": "Yes", + "no": "No" +} diff --git a/src/calcs/hba1c/i18n/ru.json b/src/calcs/hba1c/i18n/ru.json new file mode 100644 index 0000000..12454ae --- /dev/null +++ b/src/calcs/hba1c/i18n/ru.json @@ -0,0 +1,17 @@ +{ + "ageAbove65": "Возраст > 65 лет", + "sex": "Пол", + "male": "Мужской", + "female": "Женский", + "recentSurgeryOrFracture": "Недавняя операция или перелом", + "activeCancer": "Активный рак", + "unilateralLowerLimbPain": "Односторонняя боль в нижних конечностях", + "unilateralLowerLimbSwelling": "Одностороннее отекание нижней конечности", + "hemoptysis": "Кровохарканье", + "heartRate": "Частота сердечных сокращений", + "systolicBloodPressure": "Систолическое давление", + "painOnDeepPalpationOfLowerLimbVeins": "Боль при глубокой пальпации вен нижних конечностей", + "previousDVTOrPE": "Ранее перенесенный ТЭЛА или ЛЖТ", + "yes": "Да", + "no": "Нет" +} diff --git a/src/calcs/hba1c/ui.tsx b/src/calcs/hba1c/ui.tsx new file mode 100644 index 0000000..12446c8 --- /dev/null +++ b/src/calcs/hba1c/ui.tsx @@ -0,0 +1,16 @@ +import React from "react"; +import { ScrollView, View } from "react-native"; + +import { Text } from "react-native-paper"; + +const CalcScreen: React.FC = () => { + return ( + + + Not implemented + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/heart/api.ts b/src/calcs/heart/api.ts new file mode 100644 index 0000000..827615f --- /dev/null +++ b/src/calcs/heart/api.ts @@ -0,0 +1,83 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateHeartScore(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5); + + let result; + if (score < 4) { + result = "low"; + } else if (score < 7) { + result = "moderate"; + } else { + result = "high"; + } + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + const variant = variants[prefs.language][result]; + const title = variant.title; + const description = variant.description; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculateHeartScore }; diff --git a/src/calcs/heart/domain.ts b/src/calcs/heart/domain.ts new file mode 100644 index 0000000..49fb13b --- /dev/null +++ b/src/calcs/heart/domain.ts @@ -0,0 +1,44 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; +} + +export interface Question { + name: string; + text: string; + comment: string; + options: { + label: string; + value: number; + score?: string; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/heart/i18n/en.json b/src/calcs/heart/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/heart/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/heart/i18n/ru.json b/src/calcs/heart/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/heart/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/heart/questions.ts b/src/calcs/heart/questions.ts new file mode 100644 index 0000000..352f9b8 --- /dev/null +++ b/src/calcs/heart/questions.ts @@ -0,0 +1,122 @@ +import { Questions } from "./domain"; + +export const questions: Questions = { + en: [ + { + name: "q1", + text: "History?", + comment: "", + options: [ + { label: "Slightly suspicious", value: 0 }, + { label: "Moderately suspicious", value: 1 }, + { label: "Highly suspicious", value: 2 }, + ], + }, + { + name: "q2", + text: "EKG", + comment: + "1 point: No ST deviation but LBBB, LVH, repolarization changes (e.g. digoxin); 2 points: ST deviation not due to LBBB, LVH, or digoxin", + options: [ + { label: "Normal", value: 0 }, + { label: "Non-specific repolarization disturbance", value: 1 }, + { label: "Significant ST deviation", value: 2 }, + ], + }, + { + name: "q3", + text: "Age", + comment: "", + options: [ + { label: "<45", value: 0 }, + { label: "45-64", value: 1 }, + { label: "≥65", value: 2 }, + ], + }, + { + name: "q4", + text: "Risk factors", + comment: + "Risk factors: HTN, hypercholesterolemia, DM, obesity (BMI >30 kg/m²), smoking (current, or smoking cessation ≤3 mo), positive family history (parent or sibling with CVD before age 65); atherosclerotic disease: prior MI, PCI/CABG, CVA/TIA, or peripheral arterial disease", + options: [ + { label: "No known risk factors", value: 0 }, + { label: "1-2 risk factors", value: 1 }, + { + label: "≥3 risk factors or history of atherosclerotic disease", + value: 2, + }, + ], + }, + { + name: "q5", + text: "Initial troponin", + comment: "", + options: [ + { label: "≤normal limit", value: 0 }, + { label: "1–3× normal limit", value: 1 }, + { label: ">3× normal limit", value: 2 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Анамнез", + comment: + "Например, загрудинная боль, давящие боли, иррадиация в челюсти/левое плечо/руки, продолжительностью 5–15 мин, инициированная физическими нагрузками/холодом/эмоциями, сопровождающаяся потоотделением, тошнотой/рвотой, реакция на нитраты в течение нескольких минут, пациент ощущает симптомы. Признаки боли в груди низкого риска включают: хорошо локализованную, острую, без нагрузки, без потоотделения, без тошноты или рвоты и воспроизводимые при пальпации", + options: [ + { label: "Небольшое подозрение", value: 0 }, + { label: "Умеренное подозрение", value: 1 }, + { label: "Высокое подозрение", value: 2 }, + ], + }, + { + name: "q2", + text: "ЭКГ", + comment: + "1 балл: нет отклонения сегмента ST, но есть БЛНПГ, ГЛЖ, изменения реполяризации (например, дигоксин); 2 балла: отклонение ST не связано с БЛНПГ, ГЛЖ или дигоксином", + options: [ + { label: "Норма", value: 0 }, + { + label: "Неспецифическое нарушение реполяризации", + value: 1, + }, + { label: "Значительное отклонение сегмента ST", value: 2 }, + ], + }, + { + name: "q3", + text: "Возраст", + comment: "", + options: [ + { label: "<45", value: 0 }, + { label: "45-64", value: 1 }, + { label: "≥65", value: 2 }, + ], + }, + { + name: "q4", + text: "Факторы риска", + comment: + "гипертония, гиперхолестеринемия, СД, ожирение (ИМТ >30 кг/м²), курение (в настоящее время или отказ от курения ≤3 мес.), положительный семейный анамнез (родитель, или брат или сестра с ССЗ до 65 лет); атеросклеротическое заболевание: перенесенный ИМ, ЧКВ/АКШ, цереброваскулярное нарушение/ТИА или заболевание периферических артерий", + options: [ + { label: "Нет установленных факторов риска", value: 0 }, + { label: "1-2 фактора риска", value: 1 }, + { + label: "≥3 факторов риска или наличие атеросклеротического заболевания в анамнезе", + value: 2, + }, + ], + }, + { + name: "q5", + text: "Исходный тропонин", + comment: "", + options: [ + { label: "≤нормальных значений", value: 0 }, + { label: "1–3× предела нормальных значений", value: 1 }, + { label: ">3× пределов нормальных значений", value: 2 }, + ], + }, + ], +}; diff --git a/src/calcs/heart/ui.tsx b/src/calcs/heart/ui.tsx new file mode 100644 index 0000000..592d746 --- /dev/null +++ b/src/calcs/heart/ui.tsx @@ -0,0 +1,82 @@ +import React, { useEffect, useState } from "react"; +import { View, ScrollView } from "react-native"; +import { SegmentContainer } from "../../components/segmentContainer"; +import { Input, Question } from "./domain"; +import { questions } from "./questions"; +import { calculateHeartScore } from "./api"; + +const HEARTScore: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + const emptyInput = (): Input => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateHeartScore(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export { HEARTScore }; diff --git a/src/calcs/heart/variants.ts b/src/calcs/heart/variants.ts new file mode 100644 index 0000000..289f50c --- /dev/null +++ b/src/calcs/heart/variants.ts @@ -0,0 +1,35 @@ +import { Variants } from "./domain"; +export const variants: Variants = { + en: { + low: { + title: "Low Score (0-3 points)", + description: "Risk of MACE of 0.9-1.7%.", + }, + moderate: { + title: "Moderate Score (4-6 points)", + description: + "Risk of MACE of 12-16.6%.\n\nIf troponin is positive, many experts recommend further workup and admission even with a low HEART Score.", + }, + high: { + title: "High Score (7-10 points)", + description: "Risk of MACE of 50-65%.", + }, + }, + ru: { + low: { + title: "Риск 0,9–1,7%", + description: + "Риск неблагоприятного кардиального события 0,9–1,7%\n\nВ исследовании оценки HEART эти пациенты были выписаны (0,99% в ретроспективном исследовании, 1,7% в проспективном исследовании)", + }, + moderate: { + title: "Риск 12–16,6%", + description: + "Риск неблагоприятного кардиального события 12–16,6%\n\nВ исследовании оценки HEART эти пациенты были госпитализированы (11,6% ретроспективно, 16,6% проспективно)", + }, + high: { + title: "Риск 50-65%", + description: + "Риск неблагоприятного кардиального события 50-65%\n\nВ исследовании оценки HEART эти пациенты были кандидатами на ранние инвазивные меры (65,2% ретроспективно, 50,1% проспективно)", + }, + }, +}; diff --git a/src/calcs/phq-9/api.ts b/src/calcs/phq-9/api.ts new file mode 100644 index 0000000..ed9b735 --- /dev/null +++ b/src/calcs/phq-9/api.ts @@ -0,0 +1,91 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculatePhq9Score(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5) + + Number(input.q6) + + Number(input.q7) + + Number(input.q8) + + Number(input.q9); + + let result = ""; + if (score <= 4) { + result = "0-4"; + } else if (score <= 9) { + result = "5-9"; + } else if (score <= 14) { + result = "10-14"; + } else if (score <= 19) { + result = "15-19"; + } else { + result = "20-27"; + } + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + let variant = variants[prefs.language][result]; + let title = variant.title; + let description = variant.description; + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculatePhq9Score }; diff --git a/src/calcs/phq-9/domain.ts b/src/calcs/phq-9/domain.ts new file mode 100644 index 0000000..d00cf06 --- /dev/null +++ b/src/calcs/phq-9/domain.ts @@ -0,0 +1,46 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; + q6: number | null; + q7: number | null; + q8: number | null; + q9: number | null; +} + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/phq-9/i18n/en.json b/src/calcs/phq-9/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/phq-9/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/phq-9/i18n/ru.json b/src/calcs/phq-9/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/phq-9/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/phq-9/questions.ts b/src/calcs/phq-9/questions.ts new file mode 100644 index 0000000..158300c --- /dev/null +++ b/src/calcs/phq-9/questions.ts @@ -0,0 +1,188 @@ +import { Questions } from "./domain"; + +export const questions: Questions = { + en: [ + { + name: "q1", + text: "Little interest or pleasure in doing things", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q2", + text: "Feeling down, depressed, or hopeless", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q3", + text: "Trouble falling or staying asleep, or sleeping too much", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q4", + text: "Feeling tired or having little energy", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q5", + text: "Poor appetite or overeating", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q6", + text: "Feeling bad about yourself — or that you are a failure or have let yourself or your family down", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q7", + text: "Trouble concentrating on things, such as reading the newspaper or watching television", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q8", + text: "Moving or speaking so slowly that other people could have noticed? Or the opposite — being so fidgety or restless that you have been moving around a lot more than usual", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + { + name: "q9", + text: "Thoughts that you would be better off dead, or of hurting yourself", + options: [ + { label: "Not at all", value: 0 }, + { label: "Several days", value: 1 }, + { label: "More than half the days", value: 2 }, + { label: "Nearly every day", value: 3 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Вам не хотелось ничего делать", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q2", + text: "У вас было плохое настроение, вы были подавлены или испытывали чувство безысходности", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q3", + text: "Вам было трудно заснуть, у вас был прерывистый сон, или Вы слишком много спали", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q4", + text: "Вы были утомлены, или у вас было мало сил", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q5", + text: "У вас был плохой аппетит, или вы переедали", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q6", + text: "Вы плохо о себе думали: считали себя неудачником(неудачницей), или были в себе разочарованы, или считали, что подвели свою семью", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q7", + text: "Вам было трудно сосредоточиться (например, на чтении газеты или на просмотре телепередач)", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q8", + text: "Вы двигались или говорили настолько медленно, что окружающие это замечали? Или, наоборот, вы были настолько суетливы или взбудоражены, что двигались гораздо больше обычного", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + { + name: "q9", + text: "Вас посещали мысли о том, что Вам лучше было бы умереть, или о том, чтобы причинить себе какой-нибудь вред", + options: [ + { label: "Никогда", value: 0 }, + { label: "Несколько дней", value: 1 }, + { label: "Более недели", value: 2 }, + { label: "Почти каждый день", value: 3 }, + ], + }, + ], +}; diff --git a/src/calcs/phq-9/ui.tsx b/src/calcs/phq-9/ui.tsx new file mode 100644 index 0000000..d42dd22 --- /dev/null +++ b/src/calcs/phq-9/ui.tsx @@ -0,0 +1,86 @@ +import React, { useEffect, useState } from "react"; +import { View, ScrollView } from "react-native"; + +import { SegmentContainer } from "../../components/segmentContainer"; +import { Input, Question } from "./domain"; +import { calculatePhq9Score } from "./api"; +import { questions } from "./questions"; + +const CalcScreen: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + q6: null, + q7: null, + q8: null, + q9: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculatePhq9Score(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/phq-9/variants.ts b/src/calcs/phq-9/variants.ts new file mode 100644 index 0000000..962d01d --- /dev/null +++ b/src/calcs/phq-9/variants.ts @@ -0,0 +1,52 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + "0-4": { + title: "None or minimal depression", + description: "", + }, + "5-9": { + title: "Mild depression", + description: "Repeat PHQ-9 at follow-up", + }, + "10-14": { + title: "Moderate depression", + description: + "Make treatment plan, consider counseling, follow-up, and/or prescription drugs", + }, + "15-19": { + title: "Moderately severe depression", + description: "Prescribe prescription drugs and counseling", + }, + "20-27": { + title: "Severe depression", + description: + "Prescribe prescription drugs. If there are poor responses to treatment, immediately refer the patient to a mental health specialist for counseling.", + }, + }, + ru: { + "0-4": { + title: "Отсутствует-минимальный", + description: "", + }, + "5-9": { + title: "Умеренная депрессия", + description: "Повтор PHQ-9 при последующем наблюдении", + }, + "10-14": { + title: "Умеренная депрессия", + description: + "Составьте план лечения, подумайте о консультировании, последующем наблюдении и/или назначении лекарств", + }, + "15-19": { + title: "Умеренно тяжелая депрессия", + description: "Назначать лекарства по рецепту и консультирование", + }, + "20-27": { + title: "Тяжелая депрессия", + description: + "Назначайте лекарства, отпускаемые по рецепту. При плохой реакции на лечение немедленно направьте пациента к специалисту по психическому здоровью для консультации.", + }, + }, +}; diff --git a/src/calcs/rcri/api.ts b/src/calcs/rcri/api.ts new file mode 100644 index 0000000..a833af5 --- /dev/null +++ b/src/calcs/rcri/api.ts @@ -0,0 +1,86 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateRCRIScore(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5) + + Number(input.q6); + + let result: string; + if (score === 0) { + result = "low"; + } else if (score === 1) { + result = "intermediate"; + } else if (score === 2) { + result = "moderate"; + } else { + result = "high"; + } + + let variant = variants[prefs.language][result]; + let title = variant.title; + let description = variant.description; + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculateRCRIScore }; diff --git a/src/calcs/rcri/domain.ts b/src/calcs/rcri/domain.ts new file mode 100644 index 0000000..6fde568 --- /dev/null +++ b/src/calcs/rcri/domain.ts @@ -0,0 +1,44 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; + q6: number | null; +} + +export interface Question { + name: string; + text: string; + comment: string; + options: { + label: string; + value: number; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/rcri/i18n/en.json b/src/calcs/rcri/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/rcri/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/rcri/i18n/ru.json b/src/calcs/rcri/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/rcri/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/rcri/questions.ts b/src/calcs/rcri/questions.ts new file mode 100644 index 0000000..0ab9f6f --- /dev/null +++ b/src/calcs/rcri/questions.ts @@ -0,0 +1,121 @@ +import { Questions } from "./domain"; + +export const questions: Questions = { + en: [ + { + name: "q1", + text: "Elevated-risk surgery", + comment: "Intraperitoneal; intrathoracic; suprainguinal vascular", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q2", + text: "History of ischemic heart disease", + comment: + "History of myocardial infarction (MI); history of positive exercise test; current chest pain considered due to myocardial ischemia; use of nitrate therapy or ECG with pathological Q waves", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q3", + text: "History of congestive heart failure", + comment: + "Pulmonary edema, bilateral rales or S3 gallop; paroxysmal nocturnal dyspnea; chest x-ray (CXR) showing pulmonary vascular redistribution", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q4", + text: "History of cerebrovascular disease", + comment: "Prior transient ischemic attack (TIA) or stroke", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q5", + text: "Pre-operative treatment with insulin", + comment: "", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q6", + text: "Pre-operative creatinine >2 mg/dL / 176.8 µmol/L", + comment: "", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Хирургия повышенного риска", + comment: "Внутрибрюшная, внутригрудная, супраингвинальная операция", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q2", + text: "Анамнез ишемической болезни сердца", + comment: + "Положительный нагрузочный тест в анамнезе; наличие боли в груди в настоящее время, которая расценивается как следствие ишемии миокарда; применение нитратов или ЭКГ с патологическими зубцами Q", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q3", + text: "Застойная сердечная недостаточность в анамнезе", + comment: + "Отек легких, двусторонние хрипы или ритм галопа S3; пароксизмальная ночная одышка; рентгенограмма грудной клетки (РГК), демонстрирующая перераспределение легочного рисунка", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q4", + text: "Анамнез цереброваскулярных заболеваний", + comment: + "Перенесенная транзиторная ишемическая атака (ТИА) или инсульт в анамнезе", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q5", + text: "Предоперационное лечение инсулином", + comment: "", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q6", + text: "Предоперационный уровень креатинина > 2 мг/дл (> 176,8 мкмоль/л)", + comment: "", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + ], +}; diff --git a/src/calcs/rcri/ui.tsx b/src/calcs/rcri/ui.tsx new file mode 100644 index 0000000..8e1c490 --- /dev/null +++ b/src/calcs/rcri/ui.tsx @@ -0,0 +1,83 @@ +import React, { useEffect, useState } from "react"; +import { View, ScrollView } from "react-native"; +import { SegmentContainer } from "../../components/segmentContainer"; +import { Input, Question } from "./domain"; +import { questions } from "./questions"; +import { calculateRCRIScore } from "./api"; + +const CardiacRisk: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + q6: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateRCRIScore(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export { CardiacRisk }; diff --git a/src/calcs/rcri/variants.ts b/src/calcs/rcri/variants.ts new file mode 100644 index 0000000..59ace6f --- /dev/null +++ b/src/calcs/rcri/variants.ts @@ -0,0 +1,48 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + low: { + title: "3.9% (2.8-5.4%)", + description: + "30-day risk of death, MI, or cardiac arrest: 3.9% (2.8-5.4%)", + }, + intermediate: { + title: "6.0% (4.9-7.4%)", + description: + "30-day risk of death, MI, or cardiac arrest: 6.0% (4.9-7.4%)", + }, + moderate: { + title: "10.1% (8.1-12.6%)", + description: + "30-day risk of death, MI, or cardiac arrest: 10.1% (8.1-12.6%)", + }, + high: { + title: "15% (11.1-20.0%)", + description: + "30-day risk of death, MI, or cardiac arrest: 15% (11.1-20.0%)", + }, + }, + ru: { + low: { + title: "3,9% (2,8-5,4%)", + description: + "Риск большого кардиального события (95% ДИ) (смерть, инфаркт миокарда или остановка сердца через 30 дней после внекардиальной операции): 3,9% (2,8-5,4%)", + }, + intermediate: { + title: "6,0% (4,9-7,4%)", + description: + "Риск большого кардиального события (95% ДИ) (смерть, инфаркт миокарда или остановка сердца через 30 дней после внекардиальной операции): 6,0% (4,9-7,4%)", + }, + moderate: { + title: "10,1% (8,1-12,6%)", + description: + "Риск большого кардиального события (95% ДИ) (смерть, инфаркт миокарда или остановка сердца через 30 дней после внекардиальной операции): 10,1% (8,1-12,6%)", + }, + high: { + title: "15% (11,1-20,0%)", + description: + "Риск большого кардиального события (95% ДИ) (смерть, инфаркт миокарда или остановка сердца через 30 дней после внекардиальной операции): 15% (11,1-20,0%)", + }, + }, +}; diff --git a/src/calcs/wc-pe/api.ts b/src/calcs/wc-pe/api.ts new file mode 100644 index 0000000..2c43132 --- /dev/null +++ b/src/calcs/wc-pe/api.ts @@ -0,0 +1,87 @@ +import { Input, Prefs, Result } from "./domain"; +import { variants } from "./variants"; + +import en from "./i18n/en.json"; +import ru from "./i18n/ru.json"; + +function calculateWellsDvtScore(input: Input, prefs: Prefs): Result { + const isEmpty = Object.values(input).some( + (value) => value === null || value === undefined + ); + + if (isEmpty) { + return { + id: "", + date: "", + score: null, + scoreUnit: "", + title: "", + description: "", + }; + } + + let score = 0.0; + + score = + Number(input.q1) + + Number(input.q2) + + Number(input.q3) + + Number(input.q4) + + Number(input.q5) + + Number(input.q6) + + Number(input.q7); + + let result: string; + if (score < 2) { + result = "low"; + } else if (score < 7) { + result = "medium"; + } else { + result = "high"; + } + + let variant = variants[prefs.language][result]; + let title = variant.title; + let description = variant.description; + + let scoreUnit = ""; + let selectedTranslation = {}; + switch (prefs.language) { + case "en": + selectedTranslation = en; + break; + case "ru": + selectedTranslation = ru; + break; + default: + selectedTranslation = en; + } + scoreUnit = getScoreText(score, selectedTranslation); + + const date = new Date().toISOString(); + const id = + Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); + + const output: Result = { + id, + date, + score, + scoreUnit, + title, + description, + }; + return output; +} + +function getScoreText(score: number, lang: any) { + if (score === 1) { + return `${lang.scoreUnit}`; + } else if (score >= 2 && score <= 4) { + return `${lang.scoreGenitiveSingular}`; + } else { + return `${lang.scoreGenitivePlural}`; + } +} + +export { calculateWellsDvtScore }; diff --git a/src/calcs/wc-pe/domain.ts b/src/calcs/wc-pe/domain.ts new file mode 100644 index 0000000..8a19a7d --- /dev/null +++ b/src/calcs/wc-pe/domain.ts @@ -0,0 +1,44 @@ +export interface Prefs { + language: "en" | "ru"; +} + +export interface Input { + q1: number | null; + q2: number | null; + q3: number | null; + q4: number | null; + q5: number | null; + q6: number | null; + q7: number | null; +} + +export interface Question { + name: string; + text: string; + options: { + label: string; + value: number; + }[]; +} + +export interface Questions { + [language: string]: Question[]; +} + +export interface Variants { + [language: string]: { + [result: string]: { + title: string; + description: string; + }; + }; +} + +export interface Result { + id: string; + date: string; + score: number | null; + scoreUnit: string; + title: string; + description: string; +} diff --git a/src/calcs/wc-pe/i18n/en.json b/src/calcs/wc-pe/i18n/en.json new file mode 100644 index 0000000..62b1bd0 --- /dev/null +++ b/src/calcs/wc-pe/i18n/en.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "point", + "scoreGenitiveSingular": "points", + "scoreGenitivePlural": "points" +} diff --git a/src/calcs/wc-pe/i18n/ru.json b/src/calcs/wc-pe/i18n/ru.json new file mode 100644 index 0000000..098d185 --- /dev/null +++ b/src/calcs/wc-pe/i18n/ru.json @@ -0,0 +1,5 @@ +{ + "scoreUnit": "балл", + "scoreGenitiveSingular": "балла", + "scoreGenitivePlural": "баллов" +} diff --git a/src/calcs/wc-pe/questions.ts b/src/calcs/wc-pe/questions.ts new file mode 100644 index 0000000..3a57ad2 --- /dev/null +++ b/src/calcs/wc-pe/questions.ts @@ -0,0 +1,120 @@ +import { Questions } from "./domain"; + +export const questions: Questions = { + en: [ + { + name: "q1", + text: "Clinical signs and symptoms of DVT", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 3 }, + ], + }, + { + name: "q2", + text: "PE is #1 diagnosis OR equally likely", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 3 }, + ], + }, + { + name: "q3", + text: "Heart rate >100 bmp", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1.5 }, + ], + }, + { + name: "q4", + text: "Immobilization at least 3 days OR surgery in the previous 4 weeks", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1.5 }, + ], + }, + { + name: "q5", + text: "Previous, objectively diagnosed PE or DVT", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1.5 }, + ], + }, + { + name: "q6", + text: "Hemoptysis", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + { + name: "q7", + text: "Malignancy w/ treatment within 6 months or palliative", + options: [ + { label: "No", value: 0 }, + { label: "Yes", value: 1 }, + ], + }, + ], + ru: [ + { + name: "q1", + text: "Клинические признаки ТГВ", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 3 }, + ], + }, + { + name: "q2", + text: "Альтернативный диагноз менее вероятен чем ТЭЛА", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 3 }, + ], + }, + { + name: "q3", + text: "Частота сердечных сокращений ≥100 уд/мин", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1.5 }, + ], + }, + { + name: "q4", + text: "Хирургическое вмешательство или иммобилизация в течение последних 4 недель", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1.5 }, + ], + }, + { + name: "q5", + text: "Предыдущие случаи ТЭЛА или ТГВ", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1.5 }, + ], + }, + { + name: "q6", + text: "Кровохарканье", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + { + name: "q7", + text: "Активно развивающаяся или пролеченная в последние 6 месяцев злокачественная опухоль или паллиативное ведение", + options: [ + { label: "Нет", value: 0 }, + { label: "Да", value: 1 }, + ], + }, + ], +}; diff --git a/src/calcs/wc-pe/ui.tsx b/src/calcs/wc-pe/ui.tsx new file mode 100644 index 0000000..0191db9 --- /dev/null +++ b/src/calcs/wc-pe/ui.tsx @@ -0,0 +1,83 @@ +import React, { useEffect, useState } from "react"; +import { ScrollView, View } from "react-native"; + +import { SegmentContainer } from "../../components/segmentContainer"; +import { calculateWellsDvtScore } from "./api"; +import { Input, Question } from "./domain"; +import { questions } from "./questions"; + +const CalcScreen: React.FC = ({ + handleResult, + handleResetClick, + lang, +}: any) => { + // Initialize empty input state + const emptyInput = () => { + return { + q1: null, + q2: null, + q3: null, + q4: null, + q5: null, + q6: null, + q7: null, + }; + }; + + const [input, setInput] = useState(emptyInput()); + + // Handle input field changes + const handleInputChange = (field: string, value: any) => { + setInput((prevInput) => ({ + ...prevInput, + [field]: value, + })); + }; + + // List of questions + const localQuestions: Question[] = questions[lang]; + + // Calculate and update the result when input changes + const [result, setResult] = useState({}); + useEffect(() => { + setResult( + calculateWellsDvtScore(input, { + language: lang, + }) + ); + }, [input]); + + // Pass the result to the parent component + useEffect(() => { + handleResult(result); + console.log(result); + }, [result]); + + // Reset input when handleResetClick changes + useEffect(() => { + if (handleResetClick) { + setInput(emptyInput()); + } + }, [handleResetClick]); + return ( + + + + {localQuestions.map((question) => ( + { + handleInputChange(question.name, value); + }} + resetBy="null" + /> + ))} + + + + ); +}; + +export default CalcScreen; diff --git a/src/calcs/wc-pe/variants.ts b/src/calcs/wc-pe/variants.ts new file mode 100644 index 0000000..e7ba648 --- /dev/null +++ b/src/calcs/wc-pe/variants.ts @@ -0,0 +1,35 @@ +import { Variants } from "./domain"; + +export const variants: Variants = { + en: { + low: { + title: "Low risk", + description: + "Pulmonary embolism rule-out criteria (PERC) can be considered as well as D-dimer", + }, + medium: { + title: "Moderate risk", + description: "Consider D-dimer or CT pulmonary angiography", + }, + high: { + title: "High risk", + description: "D-dimer not recommended", + }, + }, + ru: { + low: { + title: "Низкая вероятность", + description: + "Проведите анализ крови на Д-димер: -если D-димер отрицательный, рассмотрите возможность прекращения исследования, -если D-димер положительный, показано проведение КТ-ангиопульмонографии", + }, + medium: { + title: "Средняя вероятность", + description: + "Проведите анализ крови на Д-димер: -если D-димер отрицательный, рассмотрите возможность прекращения исследования, -если D-димер положительный, показано проведение КТ-ангиопульмонографии", + }, + high: { + title: "Высокая вероятность", + description: "Показано проведение КТ-ангиопульмонографии", + }, + }, +}; diff --git a/src/components/confirmationDialog.tsx b/src/components/confirmationDialog.tsx new file mode 100644 index 0000000..0161450 --- /dev/null +++ b/src/components/confirmationDialog.tsx @@ -0,0 +1,64 @@ +import React, { useEffect, useState } from "react"; +import { Button, Dialog, Paragraph, Portal } from "react-native-paper"; +import { useTranslation } from "react-i18next"; + +type Props = { + title: string; + message: string; + onConfirm: () => void; + onCancel: () => void; + onDismiss: () => void; + isVisible: boolean; + confirmLabel: string; + cancelLabel: string; +}; + +const ConfirmationDialog = ({ + title, + message = "", + onConfirm, + onCancel, + onDismiss, + isVisible, + confirmLabel, + cancelLabel, +}: Props) => { + const [visible, setVisible] = useState(false); + + useEffect(() => { + setVisible(isVisible); + }, [isVisible]); + + return ( + + + {title} + {message && ( + + {message} + + )} + + + + + + + ); +}; + +export default ConfirmationDialog; diff --git a/src/components/dropdown.tsx b/src/components/dropdown.tsx new file mode 100644 index 0000000..78165fe --- /dev/null +++ b/src/components/dropdown.tsx @@ -0,0 +1,147 @@ +import React, { useEffect, useState } from 'react'; +import { View, StyleSheet, StyleProp, ViewStyle, ActivityIndicator } from 'react-native'; +import DropDownPicker, { ValueType } from 'react-native-dropdown-picker'; +import { useTheme } from 'react-native-paper'; +import i18n from '../i18n/i18n'; +import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; + +interface Item { + label: string; + value: string; +} + +interface Props { + value: ValueType; + items: Item[]; + onChangeValue: (value: ValueType, index: number) => void; + containerStyle?: StyleProp; +} + +const Dropdown: React.FC = ({ value, items, onChangeValue, containerStyle }) => { + const theme = useTheme(); + const [open, setOpen] = useState(false); + const [selectedValue, setSelectedValue] = useState(''); + + const handleOpen = () => setOpen(!open); + + const handleChangeValue = (value: ValueType, index: number) => { + setSelectedValue(value); + onChangeValue(value, index); + setOpen(false); + }; + + const styles = StyleSheet.create({ + inputContainer: { + zIndex: 20, // Set the z-index of the dropdown container to be above other elements on the page + }, + style: { + backgroundColor: theme.colors.elevation.level5, + borderColor: theme.colors.elevation.level3, + borderWidth: 0, + borderRadius: 7, + }, + labelStyle: { + fontSize: 16, + color: theme.colors.secondary, + }, + dropDownContainerStyle: { + backgroundColor: theme.colors.elevation.level1, + borderColor: theme.colors.elevation.level5, + borderWidth: 1, + borderRadius: 7, + }, + textStyle: { + padding: 0, + color: theme.colors.secondary, + }, + selectedItemLabelStyle: { + padding: 0, + margin: 0, + }, + searchContainerStyle: { + padding: 0, + }, + listChildLabelStyle: { + padding: 0, + }, + }); + + const [loading, setLoading] = useState(true); + + useEffect(() => { + setSelectedValue(value); + }, [value]); + + useEffect(() => { + if (selectedValue) { + setLoading(false); + } + }, [selectedValue]); + + return ( + + {loading ? ( + + + + ) : ( + ( + + )} + ArrowDownIconComponent={({ style }) => ( + + )} + TickIconComponent={({ style }) => ( + + )} + /> + )} + + ); +}; + +export { Dropdown }; diff --git a/src/components/dropdownMini.tsx b/src/components/dropdownMini.tsx new file mode 100644 index 0000000..033c129 --- /dev/null +++ b/src/components/dropdownMini.tsx @@ -0,0 +1,133 @@ +import React, { useState } from 'react'; + +import { View, StyleSheet, Dimensions, StyleProp, ViewStyle } from 'react-native'; + +import DropDownPicker, { ValueType } from 'react-native-dropdown-picker'; +import { useTheme } from 'react-native-paper'; +import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; + +// Define the shape of each item in the dropdown list +interface Item { + label: string; + value: string; +} + +interface Props { + value: ValueType; + items: Item[]; + onChangeValue: (value: ValueType, index: number) => void; + containerStyle?: StyleProp; +} + +const DropdownMini: React.FC = ({ value, items, onChangeValue, containerStyle }) => { + const theme = useTheme(); + const [open, setOpen] = useState(false); + const [selectedValue, setSelectedValue] = useState(value); + + const handleOpen = () => setOpen(!open); + + const handleChangeValue = (value: ValueType, index: number) => { + setSelectedValue(value); + onChangeValue(value, index); + setOpen(false); + }; + + const screenWidth = Dimensions.get('window').width; + const longestItem = items.reduce((prev, current) => (prev.label.length > current.label.length ? prev : current)); + const dropdownWidth = longestItem.label.length * 10 + 60; + + const styles = StyleSheet.create({ + inputContainer: { + zIndex: 20, // Set the z-index of the dropdown container to be above other elements on the page + }, + style: { + borderColor: theme.colors.elevation.level5, + backgroundColor: theme.colors.secondary, + borderWidth: 0, + borderRadius: 7, + minHeight: 20, + }, + labelStyle: { + fontSize: 16, + color: theme.colors.background, + }, + dropDownContainerStyle: { + backgroundColor: theme.colors.elevation.level1, + borderColor: theme.colors.elevation.level5, + borderWidth: 0, + borderRadius: 7, + position: 'absolute', + // top: 0, + height: 500, + }, + textStyle: { + padding: 0, + }, + selectedItemLabelStyle: { + padding: 0, + margin: 0, + }, + searchContainerStyle: { + padding: 0, + }, + listChildLabelStyle: { + padding: 0, + }, + }); + + return ( + + screenWidth + // ? screenWidth - 50 + // : dropdownWidth, + } + } + style={styles.style} + labelStyle={styles.labelStyle} + dropDownContainerStyle={styles.dropDownContainerStyle} + listItemLabelStyle={{ color: theme.colors.onBackground }} + textStyle={styles.textStyle} + selectedItemLabelStyle={styles.selectedItemLabelStyle} + searchContainerStyle={styles.searchContainerStyle} + listChildLabelStyle={styles.listChildLabelStyle} + listMode="SCROLLVIEW" + scrollViewProps={{ + nestedScrollEnabled: true, + }} + ArrowUpIconComponent={({ style }) => ( + + )} + ArrowDownIconComponent={({ style }) => ( + + )} + TickIconComponent={({ style }) => ( + + )} + /> + + ); +}; + +export { DropdownMini }; diff --git a/src/components/numericContainer.tsx b/src/components/numericContainer.tsx new file mode 100644 index 0000000..5d61dfa --- /dev/null +++ b/src/components/numericContainer.tsx @@ -0,0 +1,51 @@ +import { StyleSheet, Text, View } from 'react-native'; +import { Divider, useTheme } from 'react-native-paper'; +import { NumericInput } from './numericInput'; + +const NumericContainer = ({ title, subtitle, value, placeholder = '', onChangeValue, type = 'int', suffix = '', from, to }: any) => { + const styles = StyleSheet.create({ + inputContainer: { + flexDirection: 'row', + marginLeft: 'auto', + marginRight: 'auto', + alignItems: 'center', + padding: 13, + paddingLeft: 17, + }, + title: { color: useTheme().colors.secondary }, + subtitle: { + color: useTheme().colors.secondary, + opacity: 0.6, + paddingTop: 2, + }, + }); + + return ( + + + + {title} + {subtitle && {subtitle}} + + + + + + + + ); +}; + +export { NumericContainer }; diff --git a/src/components/numericInput.tsx b/src/components/numericInput.tsx new file mode 100644 index 0000000..f0f383f --- /dev/null +++ b/src/components/numericInput.tsx @@ -0,0 +1,139 @@ +import React, { useEffect, useState } from 'react'; +import { StyleSheet, View, TextInput, Text } from 'react-native'; +import { HelperText, useTheme } from 'react-native-paper'; + +const NumericInput = ({ value, placeholder = '', onChangeValue, error = '', type, suffix = '', from, to }: any) => { + const theme = useTheme(); + const [inputValue, setInputValue] = useState(value ? value.toString() : ''); + const [isFocused, setIsFocused] = useState(false); + const [isValid, setIsValid] = useState(true); + + useEffect(() => { + if (value || value === 0) { + setInputValue(value.toString()); + } else if (value === null) { + setInputValue(null); + } + }, [value]); + + const handleInputChange = (text: string) => { + const regexMap: any = { + string: /^.*$/, + int: /^[0-9][0-9]*$/, // only allow digits + absint: /^[0-9][0-9]*$/, // only allow digits + float: /^[+-]?([0-9]+[.]?[0-9]*|[.][0-9]+)$/, // allow digits and a decimal point + absfloat: /^([0-9]+[.]?[0-9]*|[.][0-9]+)$/, // allow digits and a decimal point + }; + + const regex = regexMap[type]; + let processedText = text.replace(regex, (match) => match); + let parsedValue; + + switch (type) { + case 'int': + parsedValue = parseInt(processedText, 10); + break; + case 'absint': + parsedValue = Math.abs(parseInt(processedText, 10)); + break; + case 'float': + if (processedText.indexOf('.') !== processedText.length - 1 && regex.test(processedText)) { + parsedValue = parseFloat(processedText); + } else { + parsedValue = processedText; + } + break; + case 'absfloat': + if (processedText.indexOf('.') !== processedText.length - 1 && regex.test(processedText)) { + parsedValue = Math.abs(parseFloat(processedText)); + } else { + parsedValue = processedText; + } + break; + default: + parsedValue = text; + break; + } + + if (isNaN(parsedValue)) { + parsedValue = type === 'string' ? text : ''; + } + + if (from !== undefined && to !== undefined) { + if (typeof parsedValue === 'number') { + if (from !== undefined && parsedValue < from) { + parsedValue = from; + } else if (to !== undefined && parsedValue > to) { + parsedValue = to; + } + } + } + + setInputValue(parsedValue.toString()); + onChangeValue(parsedValue); + }; + const keyboardType = (() => { + switch (type) { + case 'int': + case 'absint': + return 'numeric'; + case 'float': + case 'absfloat': + return 'numeric'; + default: + return 'default'; + } + })(); + + const styles = StyleSheet.create({ + inputContainer: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-around', + borderRadius: 7, + overflow: 'hidden', + backgroundColor: useTheme().colors.elevation.level3, + borderWidth: 1, + borderColor: useTheme().colors.backdrop, + ...(isFocused && { + borderColor: theme.colors.primary, + }), + }, + input: { + flex: 1, + paddingVertical: 5, + paddingHorizontal: 10, + marginLeft: 0, + marginRight: 0, + }, + suffix: { + flex: 0, + color: theme.colors.secondary, + backgroundColor: theme.colors.surfaceDisabled, + paddingHorizontal: 10, + marginLeft: 'auto', + marginTop: 'auto', + marginBottom: 'auto', + height: '100%', + verticalAlign: 'middle', + }, + }); + + return ( + + setIsFocused(true)} + onBlur={() => setIsFocused(false)} + /> + {suffix && {suffix}} + {/* {error && {error}} */} + + ); +}; + +export { NumericInput }; diff --git a/src/components/segmentContainer.tsx b/src/components/segmentContainer.tsx new file mode 100644 index 0000000..ff9454e --- /dev/null +++ b/src/components/segmentContainer.tsx @@ -0,0 +1,63 @@ +import React, { FC } from 'react'; +import { StyleSheet, Text, View } from 'react-native'; +import { Divider, useTheme } from 'react-native-paper'; +import { SegmentGroup, Option } from './segmentGroup'; + +interface Props { + title: string; + subtitle?: string; + value: any | null; + options: Option[]; + onChangeValue?: (value: any) => void; + forceVertical?: boolean; + resetBy: 'null' | 'undefined' | 'number'; +} + +const SegmentContainer: FC = ({ title, subtitle, value, options, onChangeValue, forceVertical = false, resetBy = 'undefined' }) => { + const isVertical = forceVertical || options.length > 2; + const styles = StyleSheet.create({ + inputContainer: { + flexDirection: 'row', + marginBottom: 12, + marginLeft: 'auto', + marginRight: 'auto', + alignItems: 'center', + padding: 13, + paddingLeft: 17, + }, + title: { color: useTheme().colors.secondary }, + subtitle: { + color: useTheme().colors.secondary, + opacity: 0.6, + paddingTop: 2, + }, + }); + + return ( + + + + {title} + {subtitle && {subtitle}} + + + + + + + + ); +}; + +export { SegmentContainer }; diff --git a/src/components/segmentGroup.tsx b/src/components/segmentGroup.tsx new file mode 100644 index 0000000..d440769 --- /dev/null +++ b/src/components/segmentGroup.tsx @@ -0,0 +1,100 @@ +import React, { FC, useEffect, useState } from 'react'; +import { View, StyleSheet, TouchableOpacity, Text } from 'react-native'; +import { useTheme } from 'react-native-paper'; + +export interface Option { + label: string; + value: string | number | boolean | null | undefined; + point?: string; +} + +interface Props { + value: string | null; + options: Option[]; + onChangeValue?: (value: any) => void; + forceVertical?: boolean; + resetBy: 'null' | 'undefined' | 'number'; +} + +const SegmentGroup: FC = ({ value, options, onChangeValue, forceVertical = false, resetBy = 'undefined' }) => { + const [selectedValue, setSelectedValue] = useState(value); + + useEffect(() => { + switch (resetBy) { + case 'null': + if (value === null) { + setSelectedValue(null); + } + break; + + case 'undefined': { + if (value === undefined) { + setSelectedValue(undefined); + } + break; + } + case 'number': { + if (Number(value) == 0) { + setSelectedValue(0); + } + break; + } + } + }, [value]); + + const handlePress = (option: Option) => { + setSelectedValue(option.value); + onChangeValue && onChangeValue(option.value); + }; + + const isVertical = forceVertical || options.length > 2; + + const styles = StyleSheet.create({ + container: { + flexDirection: 'row', + borderRadius: 7, + overflow: 'hidden', + backgroundColor: useTheme().colors.elevation.level3, + }, + vertical: { + flexDirection: 'column', + }, + button: { + flex: 1, + paddingVertical: 10, + alignItems: 'center', + flexDirection: 'row', + justifyContent: 'center', + }, + verticalButton: { + paddingHorizontal: 10, + flexDirection: 'row', + justifyContent: 'space-between', + }, + selected: { + backgroundColor: useTheme().colors.primary, + }, + label: { + color: useTheme().colors.onSecondaryContainer, + }, + selectedLabel: { + color: useTheme().colors.onPrimary, + }, + }); + + return ( + + {options.map((option: Option) => ( + handlePress(option)} + > + {option.label} + {option.point && {option.point}} + + ))} + + ); +}; +export { SegmentGroup }; diff --git a/src/i18n/en.json b/src/i18n/en.json new file mode 100644 index 0000000..a0b87d9 --- /dev/null +++ b/src/i18n/en.json @@ -0,0 +1,81 @@ +{ + "appName": "AnyCalc", + "appLongname": "Medical scores & calculators", + "main": { + "title": "Home" + }, + "favorites": { + "title": "Favorites" + }, + "recent": { + "title": "Recent", + "clearRecent": "Clear recent history" + }, + "all": { + "title": "Catalog" + }, + "settings": { + "title": "Settings", + "selectLanguage": "Select language", + "language": { + "system": "Based on system preference", + "english": "English", + "russian": "Russian" + }, + "recent": "Recent history", + "clearRecent": "Clear", + "recentCleared": "Cleared", + "favorites": "Favorites", + "clearFavorites": "Clear", + "favoritesCleared": "Cleared", + "favoritesConfirm": { + "title": "Are you sure?", + "confirm": "Yes", + "cancel": "Cancel" + }, + "formatTitle": "Display format", + "formatExample": "EXAMPLE PREVIEW", + "formatItems": { + "longAndCategory": "Long title, category", + "shortAndCategory": "Short title, category", + "longShortAndCategory": "Long & short titles, category", + "shortLongAndCategory": "Short & long titles, category", + "shortAndLong": "Short title, long title" + } + }, + "legal": { + "title": "Legal Information", + "longtitle": "Official Legal Disclaimer" + }, + "about": { + "title": "About", + "paragraph_1": "AnyCheck is an up-to-date set of calculators, questionnaires and scales, both for medical professionals - in the case of making clinical decisions, and for patients for the purpose of self-testing.\n\nWe plan to update the list of tools and the calculators themselves in accordance with feedback from the medical community and patients.\n\nWe do not currently include all medical calculators in the app because there is a certain quality threshold based on the strength of the evidence and validation testing.\n\nWe know how important it is that our users can trust AnyCheck's tools.\n\nOur clinical team evaluates factors such as evidence (the quality and quantity of data underlying the tool, including the level of external validation), usefulness (how easy the tool is to use at the bedside and how useful the result is from a clinical perspective), and popularity ( how often the tool is used, according to our analytics).", + "paragraph_2": "This app is not a medical instrument. Consult with a doctor", + "paragraph_3": "If you have any questions or feedback, please let us know!", + "feedbackButton": "Feedback", + "feedback": { + "title": "Share your ideas", + "content": "Please let us know how we can improve our app:", + "submitButton": "Submit Feedback", + "wait": "Please wait..", + "success": "Message sent successfully", + "fail": "Error sending message", + "dismiss": "Dismiss", + "agreement": "By submitting this form you agree to share the following about your device.", + "learnMore": "Learn More.." + }, + "techinfo": { + "title": "Technical Information", + "content": "We collect technical information about your device to help us diagnose issues and improve our app. This information includes your device model, operating system version, and IP address.", + "close": "Close" + } + }, + "search": { + "title": "Search.." + }, + "opencalc": { + "enterValues": "Please fill-in all required fields.", + "clear": "Clear", + "close": "Close" + } +} diff --git a/src/i18n/i18n.ts b/src/i18n/i18n.ts new file mode 100644 index 0000000..64ecafb --- /dev/null +++ b/src/i18n/i18n.ts @@ -0,0 +1,62 @@ +import AsyncStorage from "@react-native-async-storage/async-storage"; +import i18n, { Resource } from "i18next"; +import { initReactI18next } from "react-i18next"; +import * as RNLocalize from "react-native-localize"; +import en from "./en.json"; +import ru from "./ru.json"; + +const resources: Record = { + en: { + translation: en, + }, + ru: { + translation: ru, + }, +}; + +export const fallbackLanguage = "en"; + +const initializeI18n = async (): Promise => { + let selectedLanguage = fallbackLanguage; + const systemLanguage = RNLocalize.getLocales()[0]?.languageCode; + + if (systemLanguage in resources) { + selectedLanguage = systemLanguage; + } + + i18n.use(initReactI18next).init({ + resources, // Use the resources defined above + lng: selectedLanguage, // Use the selected language, or fallback to the default + fallbackLng: fallbackLanguage, // Fallback to the default language if a translation key is not found in the selected language + compatibilityJSON: "v3", + keySeparator: ":", + interpolation: { + escapeValue: false, + }, + react: { + useSuspense: false, + }, + }); +}; + +initializeI18n(); + +const changeLanguage = async (language: string): Promise => { + let selectedLanguage = fallbackLanguage; + + if (language === "system") { + const systemLanguage = RNLocalize.getLocales()[0]?.languageCode; + if (systemLanguage in resources) { + selectedLanguage = systemLanguage; + } + } else { + selectedLanguage = language; + } + + await AsyncStorage.setItem("language", selectedLanguage).then(() => { + i18n.changeLanguage(selectedLanguage); + }); +}; + +export default i18n; +export { changeLanguage }; diff --git a/src/i18n/ru.json b/src/i18n/ru.json new file mode 100644 index 0000000..6ea99b7 --- /dev/null +++ b/src/i18n/ru.json @@ -0,0 +1,81 @@ +{ + "appName": "AnyCalc", + "appLongname": "Медицинские калькуляторы и шкалы", + "main": { + "title": "Главная" + }, + "favorites": { + "title": "Избранное" + }, + "recent": { + "title": "Недавние", + "clearRecent": "Очистить историю" + }, + "all": { + "title": "Каталог" + }, + "settings": { + "title": "Настройки", + "selectLanguage": "Выберите язык", + "language": { + "system": "На основе настроек системы", + "english": "Английский", + "russian": "Русский" + }, + "recent": "Недавняя история", + "clearRecent": "Очистить", + "recentCleared": "Готово, перезапустите приложение", + "favorites": "Список избранного", + "clearFavorites": "Очистить", + "favoritesCleared": "Готово", + "favoritesConfirm": { + "title": "Вы уверены?", + "confirm": "Да", + "cancel": "Отмена" + }, + "formatTitle": "Формат отображения", + "formatExample": "Пример", + "formatItems": { + "longAndCategory": "Длинный заголовок, категория", + "shortAndCategory": "Краткий заголовок, категория", + "longShortAndCategory": "Длинный и краткий заголовки, категория", + "shortLongAndCategory": "Краткий и длинный заголовки, категория", + "shortAndLong": "Краткий заголовок, длинный заголовок" + } + }, + "legal": { + "title": "Соглашения", + "longtitle": "Официальное юридическое заявление об отказе от ответственности" + }, + "about": { + "title": "О приложении", + "paragraph_1": "AnyCheck — это актуальный набор калькуляторов, опросников и шкал, как для медицинских работников – в случае принятия клинических решений, так и для пациентов с целью самотестирования.\n\nМы планируем обновлять список инструментов и сами калькуляторы в соответствии с обратной связью от медицинского сообщества и пациентов. В настоящий момент мы не размещаем в приложении все медицинские калькуляторы, поскольку существует определенный порог качества, основанный на надежности доказательств и проверочных испытаний.\n\nМы знаем, насколько важно, чтобы наши пользователи могли доверять инструментам AnyCheck.\n\nНаша команда врачей оценивает такие факторы как: доказательность (качество и количество данных, лежащих в основе инструмента, включая уровень внешней проверки), полезность (насколько легко использовать инструмент в у постели больного и насколько полезен результат с клинической точки зрения), а также популярность (как часто используется инструмент, согласно нашей аналитике).", + "paragraph_2": "Не является медицинским инструментом. Проконсультруйтесь с врачом", + "paragraph_3": "Если у вас есть какие-либо вопросы или отзывы, пожалуйста, сообщите нам!", + "feedbackButton": "Обратная связь", + "feedback": { + "title": "Поделитесь своим мнением", + "content": "Пожалуйста, дайте обратную связь, чтобы мы сделали приложение лучше:", + "submitButton": "Отправить", + "wait": "Пожалуйста, подождите..", + "success": "Сообщение успешно отправлено", + "fail": "Возникла ошибка при отправке", + "dismiss": "Закрыть", + "agreement": "Отправляя эту форму, вы соглашаетесь на передачу технической информации о вашем устройстве.", + "learnMore": "Узнать больше.." + }, + "techinfo": { + "title": "Техническая информация", + "content": "Мы собираем техническую информацию о вашем устройстве, чтобы помочь нам диагностировать проблемы и улучшить наше приложение. Эта информация включает модель вашего устройства, версию операционной системы и IP-адрес.", + "close": "Закрыть" + } + }, + "search": { + "title": "Поиск.." + }, + "opencalc": { + "enterValues": "Пожалуйста, заполните поля.", + "clear": "Очистить", + "close": "Закрыть" + } +} diff --git a/src/screens/about/AboutScreen.tsx b/src/screens/about/AboutScreen.tsx new file mode 100644 index 0000000..0af665a --- /dev/null +++ b/src/screens/about/AboutScreen.tsx @@ -0,0 +1,373 @@ +import React, { useState } from 'react'; + +import { View, StyleSheet, ScrollView, useWindowDimensions, Image, TouchableOpacity } from 'react-native'; + +import { Text, Title, Paragraph, Card, Divider, Button, Portal, Modal, TextInput, Snackbar, useTheme, ActivityIndicator, Dialog } from 'react-native-paper'; + +import { useTranslation } from 'react-i18next'; +import MaterialIcon from 'react-native-vector-icons/MaterialIcons'; +import DeviceInfo from 'react-native-device-info'; + +const BOT_TOKEN = 'xxxxxxx:xxxxxxxxxxxxxxxxx'; +const CHAT_ID = 'xxxxxxxxx'; + +/** + * Sends a formatted message to a Telegram chat using the Telegram Bot API. + * @param message - The message to send to the chat + * @returns A boolean indicating whether the message was successfully sent + */ +async function sendTelegramMessage(message: string): Promise { + try { + // Get device information using DeviceInfo library + const deviceModel = DeviceInfo.getModel(); + const deviceBrand = DeviceInfo.getBrand(); + const deviceId = await DeviceInfo.getUniqueId(); + const ipAddress = await DeviceInfo.getIpAddress(); + const fontScale = await DeviceInfo.getFontScale(); + const systemVersion = DeviceInfo.getSystemVersion(); + const isEmulator = await DeviceInfo.isEmulator(); + const isTablet = DeviceInfo.isTablet(); + + // Remove special characters from the message to prevent HTML injection + message = message.replace(/[|&;$%@"<>()+,]/g, ''); + + // Format the message to include device and OS information + const formattedMessage = ` + New Feedback Received: + Device Information + ID: ${deviceId} + Model: ${deviceModel} + Brand: ${deviceBrand} + Is Emulator: ${isEmulator} + Is Tablet: ${isTablet} + + OS Information + Version: ${systemVersion} + Font Scale: ${fontScale} + IP Address: ${ipAddress} + + User Message + ${message} + `; + + // Send the message using the Telegram Bot API + const response = await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + chat_id: CHAT_ID, + text: formattedMessage, + parse_mode: 'HTML', + }), + }); + + // Log the response and return true if the message was sent successfully + const data = await response.json(); + console.log('Telegram message sent:', data); + return true; + } catch (error: any) { + // Log the error and return false if an error occurs + console.error('Error sending Telegram message:', error.message); + return false; + } +} + +/** + *Renders a screen that allows users to send feedback to the developers. + *@returns JSX.Element + */ +function AboutScreen(): JSX.Element { + // Localization + const { t } = useTranslation(); + + // Theme + const theme = useTheme(); + + // Modal window + const [visible, setVisible] = useState(false); + + // Open modal window + const showModal = () => setVisible(true); + + // Close modal window + const hideModal = () => setVisible(false); + + // Input message + const MAX_CHARACTERS = 1000; + const [message, setMessage] = useState(''); + + // Handle input change + const handleInputChange = (text: string) => { + if (text.length > 3) { + setButtonDisabled(false); + } else { + setButtonDisabled(true); + } + setMessage(text); + }; + + // Submit button + const [isLoading, setIsLoading] = useState(false); + const [buttonDisabled, setButtonDisabled] = useState(true); + + // Handle submit button press + const handleSubmit = async () => { + if (!message) { + return; + } + + setIsLoading(true); + setButtonDisabled(true); + + // Send the message to the server + let success = await sendTelegramMessage(message); + + if (success) { + setSnackbarMessage(String(t('about:feedback:success'))); + hideModal(); + setMessage(''); + } else { + setSnackbarMessage(String(t('about:feedback:fail'))); + } + + setIsLoading(false); + setIsSnackbarVisible(true); + setButtonDisabled(false); + }; + + // Snack message + const [snackbarMessage, setSnackbarMessage] = useState(''); + const [isSnackbarVisible, setIsSnackbarVisible] = useState(false); + + // Handle snack message dismissal + const handleSnackbarDismiss = () => { + setIsSnackbarVisible(false); + setSnackbarMessage(''); + }; + + const [learMoreDialogVisible, setLearMoreDialogVisible] = useState(false); + + // Calculate image size based on window width and aspect ratio + const { width } = useWindowDimensions(); + const imageAspectRatio = 1.59; // assuming a 4:3 aspect ratio for the image + const imageWidth = width - 30; + const imageHeight = imageWidth / imageAspectRatio; + + const buildDate = '04-07-2023 18-05'; + + // Load logo image based on theme + const logo = theme.dark ? require('../../../assets/logo_bg_dark.jpg') : require('../../../assets/logo_bg_light.jpg'); + + return ( + + + + + + + {t('appLongname')} + + + + {t('about:paragraph_1')} + + + + + + + {t('about:paragraph_2')} + + + + + + + + {t('about:paragraph_3')} + + + + + + + {t('about:feedback:title')} + + {t('about:feedback:content')} + {`${message.length}/${MAX_CHARACTERS}`} + + setLearMoreDialogVisible(true)} + style={{ marginBottom: 20 }} + > + + {t('about:feedback:agreement')}{' '} + + {t('about:feedback:learnMore')} + {' '} + + + + + + + + {snackbarMessage} + + setLearMoreDialogVisible(false)} + > + {t('about:techinfo:title')} + + {t('about:techinfo:content')} + + + + + + + + + + Build date: {buildDate} + + + + ); +} + +const styles = StyleSheet.create({ + card: { + margin: 15, + }, + feedbackCard: { + margin: 10, + padding: 5, + }, + divider: { + marginVertical: 10, + }, + paragraph: { + marginBottom: 10, + }, + iconContainer: { + justifyContent: 'center', + alignItems: 'center', + marginVertical: 15, + }, + feedbackInput: { + marginBottom: 16, + }, + button: { + marginTop: 16, + }, + + container: { + padding: 16, + }, + title: { + fontSize: 24, + fontWeight: 'bold', + marginBottom: 16, + }, + searchBar: { + marginBottom: 4, + }, + rightContainer: { + flexDirection: 'row', + }, + iconButton: { + marginHorizontal: 0, + }, +}); + +export default AboutScreen; diff --git a/src/screens/catalog/CatalogScreen.tsx b/src/screens/catalog/CatalogScreen.tsx new file mode 100644 index 0000000..2b4ae41 --- /dev/null +++ b/src/screens/catalog/CatalogScreen.tsx @@ -0,0 +1,419 @@ +import AsyncStorage from '@react-native-async-storage/async-storage'; +import { useNavigation, useIsFocused } from '@react-navigation/native'; +import { useState, useEffect, useContext, SetStateAction, useRef } from 'react'; +import { View, TouchableOpacity, Text, FlatList, ScrollView } from 'react-native'; +import { useTheme, List, Divider } from 'react-native-paper'; +import Icon from 'react-native-vector-icons/MaterialIcons'; + +import { CatalogItem, getCatalogItems, getCatalogCategories } from '../../calcs/calcs'; + +import { DropdownMini } from '../../components/dropdownMini'; +import { SearchContext } from '../../../App'; +import i18n from '../../i18n/i18n'; + +interface CatalogScreenProps { + props: { + title: string; + showOnly: 'favorites' | 'recent' | 'all'; + }; +} + +/** + * Catalog screen component. + * + * @param {Object} props - Component props. + * @param {string} props.title - The title of the catalog screen. + * @param {string} props.showOnly - Specifies which items to show in the catalog (e.g., "favorites", "recent", "all"). + * @returns {JSX.Element} - The JSX element representing the catalog screen. + */ +function CatalogScreen({ props: { title, showOnly } }: CatalogScreenProps): JSX.Element { + // Selected langauge + const [language, setLanguage] = useState(i18n.resolvedLanguage); + + // Retrieve the current theme from the context + const theme = useTheme(); + + // Get the navigation object from the React Navigation hooks + const navigation = useNavigation(); + + // Initialize the state for catalog items + const [favoritesItems, setFavoritesItems] = useState([]); + const [noFavs, setNoFavs] = useState(false); + const [recentItems, setRecentItems] = useState([]); + const [allItems, setAllItems] = useState([]); + + // Initialize the state for stored IDs + const [storedIds, setStoredIds] = useState([]); + + // Create a new state for the selected format + const [format, setFormat] = useState(''); + + // https://stackoverflow.com/questions/52805879/re-render-component-when-navigating-the-stack-with-react-navigation + // Determine if the screen is currently focused + const isFocused = useIsFocused(); + + /** + * useEffect hook to handle catalog screen updates when the screen is focused. + */ + useEffect(() => { + // Only perform the following logic if the screen is focused + // Set current language + setLanguage(i18n.resolvedLanguage); + + const getFormat = async () => { + // Retrieve the format from AsyncStorage + await AsyncStorage.getItem('format').then((result) => { + if (result) { + // Update the format state with the retrieved value + setFormat(result); + } + }); + }; + getFormat(); + + // Handle different showOnly options + if (showOnly === 'favorites') { + const getFavorite = async () => { + // Retrieve favorite item ids from AsyncStorage + const result = await AsyncStorage.getItem('favoriteIds'); + const resultArr = JSON.parse(String(result)); + + if (resultArr || resultArr.length) { + // Retrieve the catalog items + const catalogItems = getCatalogItems(); + // const catalogItems = allItems; + + // Create a new array based on catalogItems + const newItems = catalogItems.map((item) => ({ ...item })); + + // Mark catalog items as favorites based on parsedIds + for (let i = 0; i < resultArr.length; i++) { + const foundIndex = newItems.findIndex((x) => x.id === resultArr[i]); + if (foundIndex !== -1) { + newItems[foundIndex].favorite = true; + } + } + + // Filter catalog items to include only favorites + const filteredItems = newItems.filter((elem) => elem.favorite === true); + + // Format catalog items using the preferred format + const formattedItems = filteredItems.map((item) => ({ + ...item, + title: getFormattedTitle(item, format, language), + description: getFormattedDescription(item, format, language), + })); + + if (!formattedItems.length) { + setNoFavs(true); + } else { + setNoFavs(false); + } + + // Update the state with the new catalog items + setFavoritesItems(formattedItems); + } + }; + + getFavorite(); + } else if (showOnly === 'recent') { + const getRecent = async () => { + // Retrieve recent item ids from AsyncStorage + const result = await AsyncStorage.getItem('recentIds'); + const resultArr = JSON.parse(String(result)); + + if (resultArr.length) { + // Retrieve the catalog items + const catalogItems = getCatalogItems(); + + // Filter catalogItems to include only items with ids in parsedIds + const newItems = catalogItems + .filter((item) => resultArr.includes(item.id)) + .sort((a, b) => resultArr.indexOf(b.id) - resultArr.indexOf(a.id)) + .map((item) => ({ ...item })); + + // Format catalog items using the preferred format + const formattedItems = newItems.map((item) => ({ + ...item, + title: getFormattedTitle(item, format, language), + description: getFormattedDescription(item, format, language), + })); + + // Update the state with the new catalog items + setRecentItems(formattedItems); + } + }; + + getRecent(); + } else if (showOnly === 'all') { + // Retrieve the catalog items + const catalogItems = getCatalogItems(); + + // Format catalog items using the preferred format + const formattedItems = catalogItems.map((item) => ({ + ...item, + title: getFormattedTitle(item, format, language), + description: getFormattedDescription(item, format, language), + })); + + // Update the state with the new catalog items + setAllItems(formattedItems); + } + + // Log a message to indicate that the screen is focused + // console.log("Screen is focused"); + }, [isFocused, showOnly, format]); + + /** + * Handles the click event when a calculator item is pressed. + * Navigates to the calculator screen with the provided item ID. + * + * @param {CatalogItem} item - The catalog item being clicked. + */ + const handleCalculatorPress = (item: CatalogItem) => { + // console.log(`Go to OpenedScreen and pass selected calc ID: ${item.id}`); + + // Navigate to the calculator screen passing necessary data + navigation.navigate('OpenedScreen', { + id: item.id, + name: item.content[language].name, + shortname: item.content[language].shortname, + screen: item.screen, + }); + }; + + /** + * Handles the click event when the favorite button is pressed. + * Updates the stored favorite IDs and AsyncStorage accordingly. + * + * @param {number} itemId - The ID of the item being favorited/unfavorited. + */ + const handleFavoritePress = async (itemId: number) => { + // Create a new array to avoid mutating the state directly + const newIds = [...storedIds]; + + // Find the index of the item in the array + const index = newIds.indexOf(itemId); + + // Toggle the favorite status based on whether the item ID is present + if (index > -1) { + // Item found in the array, remove it + newIds.splice(index, 1); + } else { + // Item not found, add it + newIds.push(itemId); + } + + // Update the stored favorite IDs + setStoredIds(newIds); + + // Update the AsyncStorage with the updated favorite IDs + await AsyncStorage.setItem('favoriteIds', JSON.stringify(newIds)); + }; + + const renderItem = ({ item }: { item: CatalogItem }) => ( + + handleCalculatorPress(item) : undefined} + /> + + + ); + + // Search query from the SearchContext + const searchQuery = useContext(SearchContext); + + // Filter the formatted catalog items based on the search query + const filterCatalogItems = (item: CatalogItem) => { + const localizedContent = item.content[language]; + const fieldsToSearch = [localizedContent.name, localizedContent.shortname, localizedContent.category, localizedContent.introtext, localizedContent.description]; + + return fieldsToSearch.some((field) => field.toLowerCase().includes(searchQuery.toLowerCase())); + }; + + let filteredCatalog: CatalogItem[]; + + if (showOnly === 'favorites') { + filteredCatalog = favoritesItems.filter(filterCatalogItems); + } else if (showOnly === 'recent') { + filteredCatalog = recentItems.filter(filterCatalogItems); + } else { + filteredCatalog = allItems.filter(filterCatalogItems); + } + + // Create a state for the catalog item categories + const [itemsCategory, setItemsCategory] = useState(getCatalogCategories()); + + // Create a state for the selected category value + const [valueCategory, setValueCategory] = useState(itemsCategory[0].value); + + return ( + + + {showOnly !== 'all' ? ( + + {title} + + ) : ( + + + + {title} + + + + { + setAllItems(getCatalogItems(category)); + }} + /> + + + )} + + + + item.id.toString()} + contentContainerStyle={[ + { + // borderWidth: 1, + // borderColor: "red", + // marginLeft: -15, + }, + allItems.length === 0 && { flex: 1 }, + ]} + ListEmptyComponent={() => ( + + + + )} + /> + + + + ); +} + +/** + * Get the formatted title based on the specified format. + * @param {CatalogItem} item - The catalog item. + * @param {string} format - The format to use for formatting the title. + * @returns {string} The formatted title. + */ +function getFormattedTitle(item: CatalogItem, format: string, language: string): string { + const { name, shortname } = item.content[language]; + + switch (format) { + case 'longAndCategory': + return name; + case 'shortAndCategory': + return shortname; + case 'longShortAndCategory': + return `${name} (${shortname})`; + case 'shortLongAndCategory': + return `${shortname} - ${name}`; + case 'shortAndLong': + return shortname; + default: + return name; + } +} + +/** + * Get the formatted description based on the specified format. + * @param {CatalogItem} item - The catalog item. + * @param {string} format - The format to use for formatting the description. + * @returns {string} The formatted description. + */ +function getFormattedDescription(item: CatalogItem, format: string, language: string): string { + const { category, name } = item.content[language]; + + switch (format) { + case 'longAndCategory': + case 'shortAndCategory': + case 'longShortAndCategory': + case 'shortLongAndCategory': + return category; + case 'shortAndLong': + return name; + default: + return category; + } +} + +export { CatalogScreen }; diff --git a/src/screens/debug/DebugScreen.tsx b/src/screens/debug/DebugScreen.tsx new file mode 100644 index 0000000..90a2e4b --- /dev/null +++ b/src/screens/debug/DebugScreen.tsx @@ -0,0 +1,176 @@ +import AsyncStorage from '@react-native-async-storage/async-storage'; +import React, { useEffect, useState } from 'react'; +import { View, StyleSheet, ScrollView } from 'react-native'; +import { Card, Text, useTheme } from 'react-native-paper'; +import * as RNLocalize from 'react-native-localize'; +import i18n, { fallbackLanguage } from '../../i18n/i18n'; +import { useIsFocused } from '@react-navigation/native'; + +const DebugScreen: React.FC = () => { + const theme = useTheme(); + + const [favorites, setFavorites] = useState(''); + const [recent, setRecent] = useState(''); + const [language, setLanguage] = useState(''); + const [format, setFormat] = useState(''); + + const [systemLanguage, setSystemLanguage] = useState(RNLocalize.getLocales()[0]?.languageCode); + const [fallbackLang, setFallbackLanguage] = useState(fallbackLanguage); + + const [resolvedLang, setResolvedLang] = useState(i18n.resolvedLanguage); + const [allkeys, setAllkeys] = useState(''); + + useEffect(() => { + const getAllKeys = async () => { + try { + let resp = await AsyncStorage.getAllKeys(); + console.log('All keys:', resp); + setAllkeys(JSON.stringify(resp)); + } catch (error) { + console.log('Error retrieving keys:', error); + } + }; + getAllKeys(); + + const getFavorites = async () => { + try { + let resp = await AsyncStorage.getItem('favoriteIds'); + console.log('Favorite IDs:', resp); + setFavorites(String(resp)); + } catch (error) { + console.log('Error retrieving favoriteIds:', error); + } + }; + getFavorites(); + + const getRecent = async () => { + try { + let resp = await AsyncStorage.getItem('recentIds'); + console.log('Recent IDs:', resp); + setRecent(String(resp)); + } catch (error) { + console.log('Error retrieving recentIds:', error); + } + }; + getRecent(); + + const getFormat = async () => { + try { + let resp = await AsyncStorage.getItem('format'); + console.log('Format:', resp); + setFormat(String(resp)); + } catch (error) { + console.log('Error retrieving format:', error); + } + }; + getFormat(); + + const getLanguage = async () => { + try { + let resp = await AsyncStorage.getItem('language'); + console.log('Language:', resp); + setLanguage(String(resp)); + } catch (error) { + console.log('Error retrieving language:', error); + } + }; + getLanguage(); + + setResolvedLang(i18n.resolvedLanguage); + + setFallbackLanguage(fallbackLanguage); + + setSystemLanguage(RNLocalize.getLocales()[0]?.languageCode); + }, [useIsFocused()]); + + return ( + + + + + + {allkeys} + + + + + + {favorites} + + + + + + {recent} + + + + + + {format} + + + + + + {language} + + + + + + {resolvedLang} + + + + + + {fallbackLang} + + + + + + {systemLanguage} + + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, // Use flex: 1 to take up the entire screen + }, + card: { + marginHorizontal: 10, // Add some margin to the card to separate it from the edges of the screen + marginVertical: 10, + }, +}); + +export { DebugScreen }; diff --git a/src/screens/legal/LegalScreen.tsx b/src/screens/legal/LegalScreen.tsx new file mode 100644 index 0000000..01e58b1 --- /dev/null +++ b/src/screens/legal/LegalScreen.tsx @@ -0,0 +1,53 @@ +import React from 'react'; +import { View, StyleSheet, ScrollView } from 'react-native'; +import { Card, Text, useTheme } from 'react-native-paper'; +import i18n from '../../i18n/i18n'; +import ru from './ru'; +import en from './en'; +import { useTranslation } from 'react-i18next'; + +const LegalScreen: React.FC = () => { + // Localization + const { t } = useTranslation(); + + const theme = useTheme(); + const lang = i18n.resolvedLanguage; + let legal = ''; + switch (lang) { + // Check the current language and set the legal text accordingly + case 'ru': + legal = ru; + break; + case 'en': + default: + legal = en; + break; + } + + return ( + + + + + {t('legal:longtitle')} + {legal} + + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, // Use flex: 1 to take up the entire screen + }, + card: { + margin: 15, // Add some margin to the card to separate it from the edges of the screen + }, +}); + +export default LegalScreen; diff --git a/src/screens/legal/en.ts b/src/screens/legal/en.ts new file mode 100644 index 0000000..0146bc2 --- /dev/null +++ b/src/screens/legal/en.ts @@ -0,0 +1,13 @@ +export default ` +AnyCheck includes clinical tools and content designed for use by healthcare professionals. These tools do not provide professional advice; physicians and other health care professionals using these tools or databases must exercise their own clinical judgment regarding the information they provide. Consumers (non-medical professionals) using the tools or databases do so at their own risk. People with any medical conditions are particularly advised to seek professional medical advice before undertaking any treatment. Non-healthcare users should always consult their physician or other qualified health care provider with regard to medical matters, including decisions about medications and other treatments. + +The developers of AnyCheck content have taken great care to create its content in accordance with the standards of professional practice prevailing at the time of its development. However, standards and practices in medicine change as new evidence becomes available, and each health care professional should consult a variety of sources. + +The contents of the AnyCheck website and applications, such as text, graphics and images, are for informational purposes only. AnyCheck does not recommend or endorse any specific tests, doctors, products, procedures, opinions or other information that may be mentioned on the site. + +Although the information on this site and app has been obtained from sources believed to be reliable, neither we nor our content providers guarantee the accuracy of the information contained on this site. + +We do not provide medical advice or provide medical or diagnostic services. Medical information is changing rapidly. Neither we nor our content providers guarantee that the content covers all possible uses, directions, precautions, drug interactions or side effects that may be associated with any therapeutic treatment. + +Any reliance you place on the information and content you obtain on or through this site is entirely at your own risk. Neither we nor our content providers accept any liability for damage or injury (including death) to you, other persons or property resulting from any use of any product, information, idea or instructions contained in the content or services provided to you. +`; diff --git a/src/screens/legal/ru.ts b/src/screens/legal/ru.ts new file mode 100644 index 0000000..f21d7b0 --- /dev/null +++ b/src/screens/legal/ru.ts @@ -0,0 +1,13 @@ +export default ` +AnyCheck включает клинические инструменты и контент, предназначенные для использования медицинскими работниками. Эти инструменты не дают профессиональных советов; врачи и другие медицинские работники, использующие эти инструменты или базы данных, должны выносить собственное клиническое суждение относительно предоставляемой ими информации. Потребители (немедицинские специалисты), использующие инструменты или базы данных, делают это на свой страх и риск. Людям с любыми заболеваниями особенно рекомендуется обратиться за профессиональной медицинской консультацией, прежде чем начинать какое-либо лечение. По медицинским вопросам, включая решения о приеме лекарств и других методах лечения, пользователи, не являющиеся медицинскими работниками, всегда должны консультироваться со своим врачом или другим квалифицированным медицинским работником. + +Разработчики контента AnyCheck тщательно постарались создать его контент в соответствии со стандартами профессиональной практики, преобладавшими на момент разработки. Однако стандарты и практика в медицине меняются по мере появления новых данных, и каждому медицинскому работнику следует обращаться к различным источникам. + +Содержимое сайта и приложений AnyCheck, такое как текст, графика и изображения, предназначено только для информационных целей. AnyCheck не рекомендует и не одобряет какие-либо конкретные тесты, врачей, продукты, процедуры, мнения или другую информацию, которая может быть упомянута на сайте. + +Хотя информация на этом сайте и в приложении была получена из источников, которые считаются надежными, ни мы, ни наши поставщики контента не гарантируем точность информации, содержащейся на этом сайте. + +Мы не даем медицинских консультаций и не предоставляем медицинские или диагностические услуги. Медицинская информация быстро меняется. Ни мы, ни наши поставщики контента не гарантируем, что контент охватывает все возможные варианты использования, направления, меры предосторожности, взаимодействия с лекарствами или побочные эффекты, которые могут быть связаны с любым терапевтическим лечением. + +Вы полагаетесь на информацию и контент, полученные вами на этом сайте или через него, исключительно на свой страх и риск. Ни мы, ни наши поставщики контента не несем никакой ответственности за ущерб или травмы (включая смерть) вам, другим лицам или имуществу, возникшие в результате любого использования любого продукта, информации, идеи или инструкций, содержащихся в контенте или услугах, предоставленных вам. +`; diff --git a/src/screens/opened/OpenedScreen.tsx b/src/screens/opened/OpenedScreen.tsx new file mode 100644 index 0000000..6c8ca3b --- /dev/null +++ b/src/screens/opened/OpenedScreen.tsx @@ -0,0 +1,390 @@ +import AsyncStorage from '@react-native-async-storage/async-storage'; +import { useIsFocused, useNavigation } from '@react-navigation/native'; +import { ReactNode, useEffect, useRef, useState } from 'react'; +import { useTranslation } from 'react-i18next'; + +import { StyleSheet, SafeAreaView, View, KeyboardAvoidingView, Text, TouchableOpacity, Share, Alert } from 'react-native'; + +import { Modalize } from 'react-native-modalize'; +import { useTheme, Appbar, Button, Card, Portal, Title, Modal } from 'react-native-paper'; +import Icon from 'react-native-vector-icons/MaterialIcons'; +import { GestureHandlerRootView, ScrollView } from 'react-native-gesture-handler'; + +import i18n from '../../i18n/i18n'; + +import { getCatalogItemByID } from '../../calcs/calcs'; +import { addUniqueIem, removeItemAll } from '../../utils'; +import React from 'react'; + +function OpenedScreen({ route }: any) { + const theme = useTheme(); + const { t } = useTranslation(); + const navigation = useNavigation(); + + const selectedLang = i18n.resolvedLanguage; + + const { id } = route.params; + const { shortname } = route.params; + let Screen = route.params.screen; + + // Recent + useEffect(() => { + const updateRecent = async () => { + await AsyncStorage.getItem('recentIds').then((result) => { + const resultArr = JSON.parse(String(result)); + if (!resultArr.length) { + // Add to empty recent + resultArr.push(id); + AsyncStorage.setItem('recentIds', JSON.stringify(resultArr)); + } else { + // Add to existing recent + const ArrWithUniqueID = addUniqueIem(resultArr, id); + AsyncStorage.setItem('recentIds', JSON.stringify(ArrWithUniqueID)); + } + }); + }; + updateRecent(); + }, []); + + // Favorite status state + const [isFavorite, setIsFavorite] = useState(false); + + // Retrieve Favorites list from storage + useEffect(() => { + const isInFavoriteList = async () => { + AsyncStorage.getItem('favoriteIds').then((result) => { + const resultArr = JSON.parse(String(result)); + if (resultArr.length) { + const foundID = resultArr.filter((item: number) => { + return item == id; + }); + foundID.length ? setIsFavorite(true) : setIsFavorite(false); + } + }); + }; + isInFavoriteList(); + }, []); + + // Add / Remove to Favorites + const handleFavorite = async () => { + const updateInFavoriteList = async () => { + await AsyncStorage.getItem('favoriteIds').then((result) => { + // console.log("get before favoriteIds"); + const resultArr = JSON.parse(String(result)); + // console.log(resultArr); + + let found = resultArr.find((item: number) => { + return item == id; + }); + + if (!found || found === undefined) { + // Add to favorites + resultArr.push(id); + AsyncStorage.setItem('favoriteIds', JSON.stringify(resultArr)).then(() => { + setIsFavorite(true); + }); + } else { + // Remove from favorites + const ArrtWithoutID = removeItemAll(resultArr, id); + AsyncStorage.setItem('favoriteIds', JSON.stringify(ArrtWithoutID)).then(() => { + setIsFavorite(false); + }); + } + }); + }; + updateInFavoriteList(); + }; + + // Bottom sheet + const modalizeRef = useRef(null); + modalizeRef.current?.open(); + const [modalizeHeight, setModalizeHeight] = useState(40); + + const [snapPointIndex, setSnapPointIndex] = useState(2); + const [expandedHeight, setExpandedHeight] = useState(200); + function handleExpandPress() { + snapPointIndex === 1 ? setModalizeHeight(110) : setModalizeHeight(expandedHeight); + const newSnapPointIndex = snapPointIndex === 1 ? 2 : 1; + setSnapPointIndex(newSnapPointIndex); + } + + interface Result { + score: number | null; + scoreUnit: string; + title: string; + description: string; + } + const [result, setResult] = useState({ + score: null, + scoreUnit: '', + title: '', + description: '', + }); + + const handleResult = (result: Result) => { + setResult(result); + }; + + const onLayout = (event: any) => { + const { height } = event.nativeEvent.layout; + setModalizeHeight(height); // Update the modalize height based on the layout height + }; + + useEffect(() => { + if (result.score != null) { + // Use the computed height from onLayout + setModalizeHeight(modalizeHeight); + } else { + // Use a different height for the modal when result.score is null + setModalizeHeight(40); + } + }, [result.score, modalizeHeight]); + + useEffect(() => { + modalizeRef.current?.open(); + }, [useIsFocused()]); + + const handleShare = async () => { + try { + const res = await Share.share({ + message: JSON.stringify(result), + }); + if (res.action === Share.sharedAction) { + if (res.activityType) { + // shared with activity type of result.activityType + } else { + // shared + } + } else if (res.action === Share.dismissedAction) { + // dismissed + } + } catch (error: any) { + Alert.alert(error.message); + } + }; + + // Reset click + const [reset, setReset] = useState(false); + const handleResetClick = () => { + setReset(true); + }; + useEffect(() => { + setReset(false); + }, [handleResetClick]); + + // Modal window + const [visible, setVisible] = useState(false); + const showModal = () => setVisible(true); + const hideModal = () => setVisible(false); + + const [title, setTitle] = useState(getCatalogItemByID(id)?.content[selectedLang].name); + const [description, setDescription] = useState(getCatalogItemByID(id)?.content[selectedLang].description); + + // Style + const styles = StyleSheet.create({ + container: { + flex: 1, + paddingTop: 200, + }, + resultContainer: { paddingLeft: 20, paddingRight: 20 }, + resultTitle: { + fontWeight: 'bold', + fontSize: 16, + color: theme.colors.secondary, + textAlign: result.score ? 'left' : 'center', + }, + resultScore: { + fontSize: 36, + fontWeight: 'bold', + }, + resultUnit: { + fontSize: 36, + fontWeight: 'bold', + lineHeight: 36, + }, + expandButton: { + padding: 0, + borderColor: theme.colors.primary, + color: theme.colors.primary, + borderWidth: 3, + borderRadius: 100, + height: 36, + width: 36, + marginTop: 20, + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + }, + + resultDescription: { + fontSize: 14, + color: theme.colors.secondary, + marginTop: 10, + }, + + infoCard: { + margin: 16, + elevation: 4, + padding: 16, + }, + infoText: { + marginTop: 8, + }, + infoButton: { + marginTop: 32, + }, + }); + + return ( + + + + navigation.goBack()} /> + + + + + + + + + + + + {title} + {description} + + + + + + + + + + {/* There is a bug with synthetic event: https://github.com/jeremybarbet/react-native-modalize/issues/451*/} + + {result.score != null ? ( + + + + {result?.title} + + {result?.score}  + + {result?.scoreUnit} + + + {result?.description} + + + + + + + ) : ( + <> + {t('opencalc:enterValues')} + + )} + + + + + ); +} + +export { OpenedScreen }; diff --git a/src/screens/settings/SettingsScreen.tsx b/src/screens/settings/SettingsScreen.tsx new file mode 100644 index 0000000..c506951 --- /dev/null +++ b/src/screens/settings/SettingsScreen.tsx @@ -0,0 +1,208 @@ +import React, { useEffect, useState } from 'react'; +import { ScrollView, View } from 'react-native'; +import { Text, useTheme, Divider, List, Button } from 'react-native-paper'; +import AsyncStorage from '@react-native-async-storage/async-storage'; +import Icon from 'react-native-vector-icons/MaterialIcons'; +import { useTranslation } from 'react-i18next'; + +import { changeLanguage } from '../../i18n/i18n'; +import { styles } from './styles'; +import { Dropdown } from '../../components/dropdown'; +import ConfirmationDialog from '../../components/confirmationDialog'; + +interface SettingsScreenProps {} + +const SettingsScreen: React.FC = () => { + const theme = useTheme(); + const s = styles(theme); + const { t } = useTranslation(); + + const [language, setLanguage] = useState('en'); + const [isDialogVisible, setIsDialogVisible] = useState(false); + const [favoritesCleared, setFavoritesCleared] = useState(false); + const [recentCleared, setRecentCleared] = useState(false); + const [previewTitle, setPreviewTitle] = useState('Body Mass Index'); + const [previewSubtitle, setPreviewSubtitle] = useState('Endocrinology'); + const [formatValue, setFormatValue] = useState(''); + + const [items, setItems] = useState([ + { label: t('settings:language:system'), value: 'system' }, + { label: t('settings:language:english'), value: 'en' }, + { label: t('settings:language:russian'), value: 'ru' }, + ]); + + const [formatItems, setFormatItems] = useState([ + { + label: t('settings:formatItems:longAndCategory'), + value: 'longAndCategory', + }, + { + label: t('settings:formatItems:shortAndCategory'), + value: 'shortAndCategory', + }, + { + label: t('settings:formatItems:longShortAndCategory'), + value: 'longShortAndCategory', + }, + { + label: t('settings:formatItems:shortLongAndCategory'), + value: 'shortLongAndCategory', + }, + { + label: t('settings:formatItems:shortAndLong'), + value: 'shortAndLong', + }, + ]); + + const handleClearFavorites = async () => { + await AsyncStorage.setItem('favoriteIds', JSON.stringify([])); + setFavoritesCleared(true); + }; + + const handleClearRecent = async () => { + await AsyncStorage.setItem('recentIds', JSON.stringify([])); + setRecentCleared(true); + }; + + const changeFormatItem = async (val: string) => { + console.log('from changeFormatItem:'); + console.log(val); + switch (val) { + case 'longAndCategory': + setPreviewTitle('Body Mass Index'); + setPreviewSubtitle('Endocrinology'); + break; + case 'shortAndCategory': + setPreviewTitle('BMI'); + setPreviewSubtitle('Endocrinology'); + break; + case 'longShortAndCategory': + setPreviewTitle('Body Mass Index (BMI)'); + setPreviewSubtitle('Endocrinology'); + break; + case 'shortLongAndCategory': + setPreviewTitle('BMI - Body Mass Index'); + setPreviewSubtitle('Endocrinology'); + break; + case 'shortAndLong': + setPreviewTitle('BMI'); + setPreviewSubtitle('Body Mass Index'); + break; + default: + setPreviewTitle('Body Mass Index'); + setPreviewSubtitle('Endocrinology'); + } + + await AsyncStorage.setItem('format', val); + }; + + useEffect(() => { + const getFormat = async () => { + const result = await AsyncStorage.getItem('format'); + console.log('format from db: ' + result); + if (result) { + setFormatValue(result); + changeFormatItem(result); + } + }; + getFormat(); + + const getLanguage = async () => { + const result = await AsyncStorage.getItem('language'); + console.log('language from db: ' + result); + if (result) { + setLanguage(String(result)); + } + }; + getLanguage(); + }, []); + + return ( + + + + {t('settings:formatTitle')} + + + {t('settings:formatExample')} + + ( + + + + )} + /> + + + + { + changeFormatItem(String(value)); + }} + /> + + + + {t('settings:selectLanguage')} + { + changeLanguage(String(value)); + }} + /> + + + + {t('settings:favorites')} + + setIsDialogVisible(false)} + onDismiss={() => setIsDialogVisible(false)} + isVisible={isDialogVisible} + confirmLabel={t('settings:favoritesConfirm:confirm')} + cancelLabel={t('settings:favoritesConfirm:cancel')} + /> + + + + {t('settings:recent')} + + + + + ); +}; + +export default SettingsScreen; diff --git a/src/screens/settings/styles.ts b/src/screens/settings/styles.ts new file mode 100644 index 0000000..c405731 --- /dev/null +++ b/src/screens/settings/styles.ts @@ -0,0 +1,82 @@ +import { StyleSheet } from "react-native"; +import { MD3Theme } from "react-native-paper"; + +export const styles = (theme: MD3Theme) => + StyleSheet.create({ + container: { + flex: 1, + }, + formatTitle: { + color: theme.colors.secondary, + fontWeight: "600", + padding: 20, + }, + formatExample: { + marginTop: 0, + marginLeft: 40, + backgroundColor: theme.colors.elevation.level5, + alignSelf: "flex-start", + padding: 5, + color: theme.colors.secondary, + fontSize: 12, + fontWeight: "700", + borderRadius: theme.roundness, + }, + previewContainer: { + marginHorizontal: 40, + marginTop: 4, + borderWidth: 2, + borderColor: theme.colors.elevation.level5, + borderRadius: theme.roundness, + backgroundColor: theme.colors.elevation.level1, + }, + formatContainer: { + zIndex: 3, + padding: 20, + paddingBottom: 25, + }, + languageContainer: { + display: "flex", + alignItems: "flex-start", + justifyContent: "space-between", + zIndex: 2, + padding: 20, + }, + favoritesContainer: { + display: "flex", + alignItems: "flex-start", + justifyContent: "space-between", + zIndex: 1, + padding: 20, + }, + recentContainer: { + display: "flex", + alignItems: "flex-start", + justifyContent: "space-between", + zIndex: 1, + padding: 20, + }, + formatTitleText: { + color: theme.colors.secondary, + fontWeight: "600", + }, + starIcon: { + marginLeft: "auto", + marginTop: "auto", + }, + languageTitle: { + paddingBottom: 12, + color: theme.colors.secondary, + fontWeight: "600", + }, + favoritesTitle: { + paddingBottom: 12, + color: theme.colors.secondary, + fontWeight: "600", + }, + recentTitle: { + paddingBottom: 12, + color: theme.colors.secondary, + fontWeight: "600", + }, + }); diff --git a/src/themes.ts b/src/themes.ts new file mode 100644 index 0000000..0f9cbba --- /dev/null +++ b/src/themes.ts @@ -0,0 +1,20 @@ +// Import the default and dark themes from React Navigation +import { DarkTheme as NavigationDarkTheme, DefaultTheme as NavigationDefaultTheme } from '@react-navigation/native'; + +// Import the light and dark themes from react-native-paper +import { MD3DarkTheme, MD3LightTheme, adaptNavigationTheme } from 'react-native-paper'; + +// Import the deepmerge library to combine the themes +import merge from 'deepmerge'; + +// Create light and dark themes adapted for React Navigation +const { LightTheme, DarkTheme } = adaptNavigationTheme({ + reactNavigationLight: NavigationDefaultTheme, + reactNavigationDark: NavigationDarkTheme, +}); + +// Combine the light theme from react-native-paper with the adapted light theme from React Navigation +export const CombinedDefaultTheme = merge(MD3LightTheme, LightTheme); + +// Combine the dark theme from react-native-paper with the adapted dark theme from React Navigation +export const CombinedDarkTheme = merge(MD3DarkTheme, DarkTheme); diff --git a/src/utils.js b/src/utils.js new file mode 100644 index 0000000..21d3347 --- /dev/null +++ b/src/utils.js @@ -0,0 +1,36 @@ +// Working with arrays + +export function removeItemOnce(arr, value) { + var index = arr.indexOf(value); + if (index > -1) { + arr.splice(index, 1); + } + return arr; +} + +export function removeItemAll(arr, value) { + var i = 0; + while (i < arr.length) { + if (arr[i] === value) { + arr.splice(i, 1); + } else { + ++i; + } + } + return arr; +} + +export function addUniqueIem(arr, value) { + let index = arr.indexOf(value); + + if (index !== -1) { + arr.splice(index, 1); + } + + arr.push(value); + + if (arr.length > 10) { + arr.shift(); + } + return arr; +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..dbd21b1 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "@tsconfig/react-native/tsconfig.json", + "compilerOptions": { + "allowJs": false, + "moduleResolution": "NodeNext", + "module": "NodeNext" + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..41057b4 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,7510 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + "integrity" "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==" + "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": + "integrity" "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz" + "version" "7.21.4" + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": + "integrity" "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz" + "version" "7.21.7" + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.20.0", "@babel/core@^7.21.8", "@babel/core@^7.4.0-0", "@babel/core@^7.8.0", "@babel/core@>=7.11.0": + "integrity" "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz" + "version" "7.21.8" + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helpers" "^7.21.5" + "@babel/parser" "^7.21.8" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.2.2" + "semver" "^6.3.0" + +"@babel/eslint-parser@^7.12.0", "@babel/eslint-parser@^7.18.2": + "integrity" "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==" + "resolved" "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz" + "version" "7.21.3" + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + "eslint-visitor-keys" "^2.1.0" + "semver" "^6.3.0" + +"@babel/generator@^7.20.0", "@babel/generator@^7.21.5", "@babel/generator@^7.7.2": + "integrity" "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/types" "^7.21.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + "jsesc" "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + "integrity" "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==" + "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + "integrity" "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==" + "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": + "integrity" "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "browserslist" "^4.21.3" + "lru-cache" "^5.1.1" + "semver" "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": + "integrity" "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + "integrity" "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "regexpu-core" "^5.3.1" + +"@babel/helper-define-polyfill-provider@^0.3.3": + "integrity" "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==" + "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "debug" "^4.1.1" + "lodash.debounce" "^4.0.8" + "resolve" "^1.14.2" + "semver" "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": + "integrity" "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz" + "version" "7.21.5" + +"@babel/helper-explode-assignable-expression@^7.18.6": + "integrity" "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==" + "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": + "integrity" "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + +"@babel/helper-hoist-variables@^7.18.6": + "integrity" "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": + "integrity" "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/types" "^7.21.0" + +"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": + "integrity" "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz" + "version" "7.21.4" + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": + "integrity" "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helper-optimise-call-expression@^7.18.6": + "integrity" "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==" + "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + "integrity" "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==" + "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz" + "version" "7.21.5" + +"@babel/helper-remap-async-to-generator@^7.18.9": + "integrity" "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==" + "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": + "integrity" "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==" + "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/helper-simple-access@^7.21.5": + "integrity" "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==" + "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + "integrity" "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==" + "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz" + "version" "7.20.0" + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + "integrity" "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==" + "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.21.5": + "integrity" "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==" + "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz" + "version" "7.21.5" + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + "integrity" "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" + "version" "7.19.1" + +"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": + "integrity" "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz" + "version" "7.21.0" + +"@babel/helper-wrap-function@^7.18.9": + "integrity" "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz" + "version" "7.20.5" + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/helpers@^7.21.5": + "integrity" "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/highlight@^7.18.6": + "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8": + "integrity" "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz" + "version" "7.21.8" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + "integrity" "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": + "integrity" "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.7" + +"@babel/plugin-proposal-async-generator-functions@^7.0.0", "@babel/plugin-proposal-async-generator-functions@^7.20.7": + "integrity" "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.6": + "integrity" "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.21.0": + "integrity" "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + "integrity" "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-default-from@^7.0.0": + "integrity" "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz" + "version" "7.18.10" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-default-from" "^7.18.6" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + "integrity" "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + "integrity" "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": + "integrity" "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0-0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + "integrity" "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": + "integrity" "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.20.7": + "integrity" "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-optional-catch-binding@^7.0.0", "@babel/plugin-proposal-optional-catch-binding@^7.18.6": + "integrity" "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.0.0-0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": + "integrity" "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.18.6": + "integrity" "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.21.0": + "integrity" "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + "integrity" "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + "version" "7.8.4" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + "integrity" "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + "version" "7.12.13" + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + "version" "7.14.5" + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.18.6": + "integrity" "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.18.6": + "integrity" "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-import-assertions@^7.20.0": + "integrity" "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz" + "version" "7.20.0" + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": + "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + "version" "7.10.4" + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.7.2": + "integrity" "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + "version" "7.10.4" + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + "version" "7.10.4" + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + "version" "7.14.5" + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + "version" "7.14.5" + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": + "integrity" "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz" + "version" "7.20.0" + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.0.0-0", "@babel/plugin-transform-arrow-functions@^7.21.5": + "integrity" "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.20.7": + "integrity" "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.18.6": + "integrity" "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.21.0": + "integrity" "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.21.0": + "integrity" "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + "globals" "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.21.5": + "integrity" "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.21.3": + "integrity" "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz" + "version" "7.21.3" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + "integrity" "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + "integrity" "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + "integrity" "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.18.6": + "integrity" "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-flow" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.21.5": + "integrity" "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.18.9": + "integrity" "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.18.9": + "integrity" "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.18.6": + "integrity" "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.20.11": + "integrity" "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz" + "version" "7.20.11" + dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.21.5": + "integrity" "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-simple-access" "^7.21.5" + +"@babel/plugin-transform-modules-systemjs@^7.20.11": + "integrity" "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz" + "version" "7.20.11" + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-identifier" "^7.19.1" + +"@babel/plugin-transform-modules-umd@^7.18.6": + "integrity" "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": + "integrity" "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz" + "version" "7.20.5" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-new-target@^7.18.6": + "integrity" "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-assign@^7.16.7": + "integrity" "sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.18.6": + "integrity" "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": + "integrity" "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz" + "version" "7.21.3" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.18.6": + "integrity" "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-display-name@^7.0.0": + "integrity" "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + "integrity" "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + "integrity" "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz" + "version" "7.19.6" + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + "integrity" "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-jsx" "^7.18.6" + "@babel/types" "^7.21.0" + +"@babel/plugin-transform-regenerator@^7.21.5": + "integrity" "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "regenerator-transform" "^0.15.1" + +"@babel/plugin-transform-reserved-words@^7.18.6": + "integrity" "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-runtime@^7.0.0": + "integrity" "sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "babel-plugin-polyfill-corejs2" "^0.3.3" + "babel-plugin-polyfill-corejs3" "^0.6.0" + "babel-plugin-polyfill-regenerator" "^0.4.1" + "semver" "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.0.0-0", "@babel/plugin-transform-shorthand-properties@^7.18.6": + "integrity" "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.20.7": + "integrity" "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.18.6": + "integrity" "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.0.0-0", "@babel/plugin-transform-template-literals@^7.18.9": + "integrity" "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + "integrity" "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typescript@^7.21.0", "@babel/plugin-transform-typescript@^7.5.0": + "integrity" "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz" + "version" "7.21.3" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-typescript" "^7.20.0" + +"@babel/plugin-transform-unicode-escapes@^7.21.5": + "integrity" "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.18.6": + "integrity" "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@^7.1.6", "@babel/preset-env@^7.21.5": + "integrity" "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==" + "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" + "@babel/plugin-proposal-async-generator-functions" "^7.20.7" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.21.0" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.21.0" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-to-generator" "^7.20.7" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.21.5" + "@babel/plugin-transform-destructuring" "^7.21.3" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.21.5" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-modules-systemjs" "^7.20.11" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.21.3" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.21.5" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.20.7" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.21.5" + "babel-plugin-polyfill-corejs2" "^0.3.3" + "babel-plugin-polyfill-corejs3" "^0.6.0" + "babel-plugin-polyfill-regenerator" "^0.4.1" + "core-js-compat" "^3.25.1" + "semver" "^6.3.0" + +"@babel/preset-flow@^7.13.13": + "integrity" "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==" + "resolved" "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-flow-strip-types" "^7.18.6" + +"@babel/preset-modules@^0.1.5": + "integrity" "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==" + "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + "version" "0.1.5" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + "esutils" "^2.0.2" + +"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.7": + "integrity" "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==" + "resolved" "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-transform-typescript" "^7.21.0" + +"@babel/register@^7.13.16": + "integrity" "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==" + "resolved" "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz" + "version" "7.21.0" + dependencies: + "clone-deep" "^4.0.1" + "find-cache-dir" "^2.0.0" + "make-dir" "^2.1.0" + "pirates" "^4.0.5" + "source-map-support" "^0.5.16" + +"@babel/regjsgen@^0.8.0": + "integrity" "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + "resolved" "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" + "version" "0.8.0" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.5", "@babel/runtime@^7.8.4": + "integrity" "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "regenerator-runtime" "^0.13.11" + +"@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": + "integrity" "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.20.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.5", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4": + "integrity" "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.5" + "@babel/types" "^7.21.5" + "debug" "^4.1.0" + "globals" "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + "integrity" "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz" + "version" "7.21.5" + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + "to-fast-properties" "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + "integrity" "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + "resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + "version" "0.2.3" + +"@callstack/react-theme-provider@^3.0.8": + "integrity" "sha512-5U231sYY2sqQOaELX0WBCn+iluV8bFaXIS7em03k4W5Xz0AhGvKlnpLIhDGFP8im/SvNW7/2XoR0BsClhn9t6Q==" + "resolved" "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.8.tgz" + "version" "3.0.8" + dependencies: + "deepmerge" "^3.2.0" + "hoist-non-react-statics" "^3.3.0" + +"@egjs/hammerjs@^2.0.17": + "integrity" "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==" + "resolved" "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz" + "version" "2.0.17" + dependencies: + "@types/hammerjs" "^2.0.36" + +"@eslint-community/eslint-utils@^4.2.0": + "integrity" "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==" + "resolved" "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "eslint-visitor-keys" "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + "integrity" "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==" + "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz" + "version" "4.4.0" + +"@eslint/eslintrc@^2.0.3": + "integrity" "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==" + "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz" + "version" "2.0.3" + dependencies: + "ajv" "^6.12.4" + "debug" "^4.3.2" + "espree" "^9.5.2" + "globals" "^13.19.0" + "ignore" "^5.2.0" + "import-fresh" "^3.2.1" + "js-yaml" "^4.1.0" + "minimatch" "^3.1.2" + "strip-json-comments" "^3.1.1" + +"@eslint/js@8.40.0": + "integrity" "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==" + "resolved" "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz" + "version" "8.40.0" + +"@hapi/hoek@^9.0.0": + "integrity" "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "resolved" "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" + "version" "9.3.0" + +"@hapi/topo@^5.0.0": + "integrity" "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==" + "resolved" "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "@hapi/hoek" "^9.0.0" + +"@humanwhocodes/config-array@^0.11.8": + "integrity" "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz" + "version" "0.11.8" + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + "debug" "^4.1.1" + "minimatch" "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + "integrity" "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + "version" "1.0.1" + +"@humanwhocodes/object-schema@^1.2.1": + "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + "version" "1.2.1" + +"@istanbuljs/load-nyc-config@^1.0.0": + "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" + "resolved" "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "camelcase" "^5.3.1" + "find-up" "^4.1.0" + "get-package-type" "^0.1.0" + "js-yaml" "^3.13.1" + "resolve-from" "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + "integrity" "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + "resolved" "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + "version" "0.1.3" + +"@jest/console@^29.5.0": + "integrity" "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==" + "resolved" "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + "chalk" "^4.0.0" + "jest-message-util" "^29.5.0" + "jest-util" "^29.5.0" + "slash" "^3.0.0" + +"@jest/core@^29.5.0": + "integrity" "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==" + "resolved" "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/console" "^29.5.0" + "@jest/reporters" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/node" "*" + "ansi-escapes" "^4.2.1" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "exit" "^0.1.2" + "graceful-fs" "^4.2.9" + "jest-changed-files" "^29.5.0" + "jest-config" "^29.5.0" + "jest-haste-map" "^29.5.0" + "jest-message-util" "^29.5.0" + "jest-regex-util" "^29.4.3" + "jest-resolve" "^29.5.0" + "jest-resolve-dependencies" "^29.5.0" + "jest-runner" "^29.5.0" + "jest-runtime" "^29.5.0" + "jest-snapshot" "^29.5.0" + "jest-util" "^29.5.0" + "jest-validate" "^29.5.0" + "jest-watcher" "^29.5.0" + "micromatch" "^4.0.4" + "pretty-format" "^29.5.0" + "slash" "^3.0.0" + "strip-ansi" "^6.0.0" + +"@jest/create-cache-key-function@^29.2.1": + "integrity" "sha512-LIDZyZgnZss7uikvBKBB/USWwG+GO8+GnwRWT+YkCGDGsqLQlhm9BC3z6+7+eMs1kUlvXQIWEzBR8Q2Pnvx6lg==" + "resolved" "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/types" "^29.5.0" + +"@jest/environment@^29.5.0": + "integrity" "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==" + "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/node" "*" + "jest-mock" "^29.5.0" + +"@jest/expect-utils@^29.5.0": + "integrity" "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==" + "resolved" "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "jest-get-type" "^29.4.3" + +"@jest/expect@^29.5.0": + "integrity" "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==" + "resolved" "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "expect" "^29.5.0" + "jest-snapshot" "^29.5.0" + +"@jest/fake-timers@^29.5.0": + "integrity" "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==" + "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/types" "^29.5.0" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + "jest-message-util" "^29.5.0" + "jest-mock" "^29.5.0" + "jest-util" "^29.5.0" + +"@jest/globals@^29.5.0": + "integrity" "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==" + "resolved" "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/types" "^29.5.0" + "jest-mock" "^29.5.0" + +"@jest/reporters@^29.5.0": + "integrity" "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==" + "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" + "@jridgewell/trace-mapping" "^0.3.15" + "@types/node" "*" + "chalk" "^4.0.0" + "collect-v8-coverage" "^1.0.0" + "exit" "^0.1.2" + "glob" "^7.1.3" + "graceful-fs" "^4.2.9" + "istanbul-lib-coverage" "^3.0.0" + "istanbul-lib-instrument" "^5.1.0" + "istanbul-lib-report" "^3.0.0" + "istanbul-lib-source-maps" "^4.0.0" + "istanbul-reports" "^3.1.3" + "jest-message-util" "^29.5.0" + "jest-util" "^29.5.0" + "jest-worker" "^29.5.0" + "slash" "^3.0.0" + "string-length" "^4.0.1" + "strip-ansi" "^6.0.0" + "v8-to-istanbul" "^9.0.1" + +"@jest/schemas@^29.4.3": + "integrity" "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==" + "resolved" "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz" + "version" "29.4.3" + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/source-map@^29.4.3": + "integrity" "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==" + "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz" + "version" "29.4.3" + dependencies: + "@jridgewell/trace-mapping" "^0.3.15" + "callsites" "^3.0.0" + "graceful-fs" "^4.2.9" + +"@jest/test-result@^29.5.0": + "integrity" "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==" + "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/console" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "collect-v8-coverage" "^1.0.0" + +"@jest/test-sequencer@^29.5.0": + "integrity" "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==" + "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/test-result" "^29.5.0" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^29.5.0" + "slash" "^3.0.0" + +"@jest/transform@^29.5.0": + "integrity" "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==" + "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.5.0" + "@jridgewell/trace-mapping" "^0.3.15" + "babel-plugin-istanbul" "^6.1.1" + "chalk" "^4.0.0" + "convert-source-map" "^2.0.0" + "fast-json-stable-stringify" "^2.1.0" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^29.5.0" + "jest-regex-util" "^29.4.3" + "jest-util" "^29.5.0" + "micromatch" "^4.0.4" + "pirates" "^4.0.4" + "slash" "^3.0.0" + "write-file-atomic" "^4.0.2" + +"@jest/types@^26.6.2": + "integrity" "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" + "version" "26.6.2" + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + "chalk" "^4.0.0" + +"@jest/types@^27.5.1": + "integrity" "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + "chalk" "^4.0.0" + +"@jest/types@^29.5.0": + "integrity" "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/schemas" "^29.4.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + "chalk" "^4.0.0" + +"@jridgewell/gen-mapping@^0.1.0": + "integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + "integrity" "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + "version" "3.1.0" + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + "version" "1.1.2" + +"@jridgewell/source-map@^0.3.2": + "integrity" "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==" + "resolved" "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14": + "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + "version" "1.4.14" + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + "integrity" "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" + "version" "0.3.17" + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + "integrity" "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==" + "resolved" "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz" + "version" "5.1.1-v1" + dependencies: + "eslint-scope" "5.1.1" + +"@nodelib/fs.scandir@2.1.5": + "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "version" "2.1.5" + dependencies: + "@nodelib/fs.stat" "2.0.5" + "run-parallel" "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + "version" "1.2.8" + dependencies: + "@nodelib/fs.scandir" "2.1.5" + "fastq" "^1.6.0" + +"@react-native-async-storage/async-storage@^1.18.1": + "integrity" "sha512-70aFW8fVCKl+oA1AKPFDpE6s4t9pulj2QeLX+MabEmzfT3urd/3cckv45WJvtocdoIH/oXA3Y+YcCRJCcNa8mA==" + "resolved" "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.18.1.tgz" + "version" "1.18.1" + dependencies: + "merge-options" "^3.0.4" + +"@react-native-community/cli-clean@^10.1.1": + "integrity" "sha512-iNsrjzjIRv9yb5y309SWJ8NDHdwYtnCpmxZouQDyOljUdC9MwdZ4ChbtA4rwQyAwgOVfS9F/j56ML3Cslmvrxg==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz" + "version" "10.1.1" + dependencies: + "@react-native-community/cli-tools" "^10.1.1" + "chalk" "^4.1.2" + "execa" "^1.0.0" + "prompts" "^2.4.0" + +"@react-native-community/cli-config@^10.1.1": + "integrity" "sha512-p4mHrjC+s/ayiNVG6T35GdEGdP6TuyBUg5plVGRJfTl8WT6LBfLYLk+fz/iETrEZ/YkhQIsQcEUQC47MqLNHog==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-10.1.1.tgz" + "version" "10.1.1" + dependencies: + "@react-native-community/cli-tools" "^10.1.1" + "chalk" "^4.1.2" + "cosmiconfig" "^5.1.0" + "deepmerge" "^3.2.0" + "glob" "^7.1.3" + "joi" "^17.2.1" + +"@react-native-community/cli-debugger-ui@^10.0.0": + "integrity" "sha512-8UKLcvpSNxnUTRy8CkCl27GGLqZunQ9ncGYhSrWyKrU9SWBJJGeZwi2k2KaoJi5FvF2+cD0t8z8cU6lsq2ZZmA==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz" + "version" "10.0.0" + dependencies: + "serve-static" "^1.13.1" + +"@react-native-community/cli-doctor@^10.2.2": + "integrity" "sha512-49Ep2aQOF0PkbAR/TcyMjOm9XwBa8VQr+/Zzf4SJeYwiYLCT1NZRAVAVjYRXl0xqvq5S5mAGZZShS4AQl4WsZw==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-10.2.2.tgz" + "version" "10.2.2" + dependencies: + "@react-native-community/cli-config" "^10.1.1" + "@react-native-community/cli-platform-ios" "^10.2.1" + "@react-native-community/cli-tools" "^10.1.1" + "chalk" "^4.1.2" + "command-exists" "^1.2.8" + "envinfo" "^7.7.2" + "execa" "^1.0.0" + "hermes-profile-transformer" "^0.0.6" + "ip" "^1.1.5" + "node-stream-zip" "^1.9.1" + "ora" "^5.4.1" + "prompts" "^2.4.0" + "semver" "^6.3.0" + "strip-ansi" "^5.2.0" + "sudo-prompt" "^9.0.0" + "wcwidth" "^1.0.1" + +"@react-native-community/cli-hermes@^10.2.0": + "integrity" "sha512-urfmvNeR8IiO/Sd92UU3xPO+/qI2lwCWQnxOkWaU/i2EITFekE47MD6MZrfVulRVYRi5cuaFqKZO/ccOdOB/vQ==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz" + "version" "10.2.0" + dependencies: + "@react-native-community/cli-platform-android" "^10.2.0" + "@react-native-community/cli-tools" "^10.1.1" + "chalk" "^4.1.2" + "hermes-profile-transformer" "^0.0.6" + "ip" "^1.1.5" + +"@react-native-community/cli-platform-android@^10.2.0", "@react-native-community/cli-platform-android@10.2.0": + "integrity" "sha512-CBenYwGxwFdObZTn1lgxWtMGA5ms2G/ALQhkS+XTAD7KHDrCxFF9yT/fnAjFZKM6vX/1TqGI1RflruXih3kAhw==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.2.0.tgz" + "version" "10.2.0" + dependencies: + "@react-native-community/cli-tools" "^10.1.1" + "chalk" "^4.1.2" + "execa" "^1.0.0" + "glob" "^7.1.3" + "logkitty" "^0.7.1" + +"@react-native-community/cli-platform-ios@^10.2.1", "@react-native-community/cli-platform-ios@10.2.1": + "integrity" "sha512-hz4zu4Y6eyj7D0lnZx8Mf2c2si8y+zh/zUTgCTaPPLzQD8jSZNNBtUUiA1cARm2razpe8marCZ1QbTMAGbf3mg==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz" + "version" "10.2.1" + dependencies: + "@react-native-community/cli-tools" "^10.1.1" + "chalk" "^4.1.2" + "execa" "^1.0.0" + "fast-xml-parser" "^4.0.12" + "glob" "^7.1.3" + "ora" "^5.4.1" + +"@react-native-community/cli-plugin-metro@^10.2.2": + "integrity" "sha512-sTGjZlD3OGqbF9v1ajwUIXhGmjw9NyJ/14Lo0sg7xH8Pv4qUd5ZvQ6+DWYrQn3IKFUMfGFWYyL81ovLuPylrpw==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.2.tgz" + "version" "10.2.2" + dependencies: + "@react-native-community/cli-server-api" "^10.1.1" + "@react-native-community/cli-tools" "^10.1.1" + "chalk" "^4.1.2" + "execa" "^1.0.0" + "metro" "0.73.9" + "metro-config" "0.73.9" + "metro-core" "0.73.9" + "metro-react-native-babel-transformer" "0.73.9" + "metro-resolver" "0.73.9" + "metro-runtime" "0.73.9" + "readline" "^1.3.0" + +"@react-native-community/cli-server-api@^10.1.1": + "integrity" "sha512-NZDo/wh4zlm8as31UEBno2bui8+ufzsZV+KN7QjEJWEM0levzBtxaD+4je0OpfhRIIkhaRm2gl/vVf7OYAzg4g==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz" + "version" "10.1.1" + dependencies: + "@react-native-community/cli-debugger-ui" "^10.0.0" + "@react-native-community/cli-tools" "^10.1.1" + "compression" "^1.7.1" + "connect" "^3.6.5" + "errorhandler" "^1.5.0" + "nocache" "^3.0.1" + "pretty-format" "^26.6.2" + "serve-static" "^1.13.1" + "ws" "^7.5.1" + +"@react-native-community/cli-tools@^10.1.1": + "integrity" "sha512-+FlwOnZBV+ailEzXjcD8afY2ogFEBeHOw/8+XXzMgPaquU2Zly9B+8W089tnnohO3yfiQiZqkQlElP423MY74g==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz" + "version" "10.1.1" + dependencies: + "appdirsjs" "^1.2.4" + "chalk" "^4.1.2" + "find-up" "^5.0.0" + "mime" "^2.4.1" + "node-fetch" "^2.6.0" + "open" "^6.2.0" + "ora" "^5.4.1" + "semver" "^6.3.0" + "shell-quote" "^1.7.3" + +"@react-native-community/cli-types@^10.0.0": + "integrity" "sha512-31oUM6/rFBZQfSmDQsT1DX/5fjqfxg7sf2u8kTPJK7rXVya5SRpAMaCXsPAG0omsmJxXt+J9HxUi3Ic+5Ux5Iw==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-10.0.0.tgz" + "version" "10.0.0" + dependencies: + "joi" "^17.2.1" + +"@react-native-community/cli@10.2.2": + "integrity" "sha512-aZVcVIqj+OG6CrliR/Yn8wHxrvyzbFBY9cj7n0MvRw/P54QUru2nNqUTSSbqv0Qaa297yHJbe6kFDojDMSTM8Q==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.2.2.tgz" + "version" "10.2.2" + dependencies: + "@react-native-community/cli-clean" "^10.1.1" + "@react-native-community/cli-config" "^10.1.1" + "@react-native-community/cli-debugger-ui" "^10.0.0" + "@react-native-community/cli-doctor" "^10.2.2" + "@react-native-community/cli-hermes" "^10.2.0" + "@react-native-community/cli-plugin-metro" "^10.2.2" + "@react-native-community/cli-server-api" "^10.1.1" + "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-types" "^10.0.0" + "chalk" "^4.1.2" + "commander" "^9.4.1" + "execa" "^1.0.0" + "find-up" "^4.1.0" + "fs-extra" "^8.1.0" + "graceful-fs" "^4.1.3" + "prompts" "^2.4.0" + "semver" "^6.3.0" + +"@react-native-community/eslint-config@^3.2.0": + "integrity" "sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ==" + "resolved" "https://registry.npmjs.org/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "@babel/core" "^7.14.0" + "@babel/eslint-parser" "^7.18.2" + "@react-native-community/eslint-plugin" "^1.1.0" + "@typescript-eslint/eslint-plugin" "^5.30.5" + "@typescript-eslint/parser" "^5.30.5" + "eslint-config-prettier" "^8.5.0" + "eslint-plugin-eslint-comments" "^3.2.0" + "eslint-plugin-ft-flow" "^2.0.1" + "eslint-plugin-jest" "^26.5.3" + "eslint-plugin-prettier" "^4.2.1" + "eslint-plugin-react" "^7.30.1" + "eslint-plugin-react-hooks" "^4.6.0" + "eslint-plugin-react-native" "^4.0.0" + +"@react-native-community/eslint-plugin@^1.1.0": + "integrity" "sha512-+zDZ20NUnSWghj7Ku5aFphMzuM9JulqCW+aPXT6IfIXFbb8tzYTTOSeRFOtuekJ99ibW2fUCSsjuKNlwDIbHFg==" + "resolved" "https://registry.npmjs.org/@react-native-community/eslint-plugin/-/eslint-plugin-1.3.0.tgz" + "version" "1.3.0" + +"@react-native/assets@1.0.0": + "integrity" "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==" + "resolved" "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz" + "version" "1.0.0" + +"@react-native/normalize-color@*", "@react-native/normalize-color@2.1.0": + "integrity" "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==" + "resolved" "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz" + "version" "2.1.0" + +"@react-native/polyfills@2.0.0": + "integrity" "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==" + "resolved" "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz" + "version" "2.0.0" + +"@react-native/virtualized-lists@^0.72.4": + "integrity" "sha512-2t8WBVACkKEadtsiGYJaYTix575J/5VQJyqnyL7iDIsd3iG7ODjfMDsTGsVyAA2Av/xeVIuVQRUX0ZzV3cucug==" + "resolved" "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.72.4.tgz" + "version" "0.72.4" + dependencies: + "invariant" "^2.2.4" + "nullthrows" "^1.1.1" + +"@react-navigation/bottom-tabs@^6.5.7": + "integrity" "sha512-9oZYyRu2z7+1pr2dX5V54rHFPmlj4ztwQxFe85zwpnGcPtGIsXj7VCIdlHnjRHJBBFCszvJGQpYY6/G2+DfD+A==" + "resolved" "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.7.tgz" + "version" "6.5.7" + dependencies: + "@react-navigation/elements" "^1.3.17" + "color" "^4.2.3" + "warn-once" "^0.1.0" + +"@react-navigation/core@^6.4.8": + "integrity" "sha512-klZ9Mcf/P2j+5cHMoGyIeurEzyBM2Uq9+NoSFrF6sdV5iCWHLFhrCXuhbBiQ5wVLCKf4lavlkd/DDs47PXs9RQ==" + "resolved" "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz" + "version" "6.4.8" + dependencies: + "@react-navigation/routers" "^6.1.8" + "escape-string-regexp" "^4.0.0" + "nanoid" "^3.1.23" + "query-string" "^7.1.3" + "react-is" "^16.13.0" + "use-latest-callback" "^0.1.5" + +"@react-navigation/drawer@^6.6.2": + "integrity" "sha512-6qt4guBdz7bkdo/8BLSCcFNdQdSPYyNn05D9cD+VCY3mGThSiD8bRiP9ju+64im7LsSU+bNWXaP8RxA/FtTVQg==" + "resolved" "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.2.tgz" + "version" "6.6.2" + dependencies: + "@react-navigation/elements" "^1.3.17" + "color" "^4.2.3" + "warn-once" "^0.1.0" + +"@react-navigation/elements@^1.3.17": + "integrity" "sha512-sui8AzHm6TxeEvWT/NEXlz3egYvCUog4tlXA4Xlb2Vxvy3purVXDq/XsM56lJl344U5Aj/jDzkVanOTMWyk4UA==" + "resolved" "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.17.tgz" + "version" "1.3.17" + +"@react-navigation/native-stack@^6.9.12": + "integrity" "sha512-kS2zXCWP0Rgt7uWaCUKrRl7U2U1Gp19rM1kyRY2YzBPXhWGVPjQ2ygBp88CTQzjgy8M07H/79jvGiZ0mlEJI+g==" + "resolved" "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.12.tgz" + "version" "6.9.12" + dependencies: + "@react-navigation/elements" "^1.3.17" + "warn-once" "^0.1.0" + +"@react-navigation/native@^6.0.0", "@react-navigation/native@^6.1.6": + "integrity" "sha512-14PmSy4JR8HHEk04QkxQ0ZLuqtiQfb4BV9kkMXD2/jI4TZ+yc43OnO6fQ2o9wm+Bq8pY3DxyerC2AjNUz+oH7Q==" + "resolved" "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.6.tgz" + "version" "6.1.6" + dependencies: + "@react-navigation/core" "^6.4.8" + "escape-string-regexp" "^4.0.0" + "fast-deep-equal" "^3.1.3" + "nanoid" "^3.1.23" + +"@react-navigation/routers@^6.1.8": + "integrity" "sha512-CEge+ZLhb1HBrSvv4RwOol7EKLW1QoqVIQlE9TN5MpxS/+VoQvP+cLbuz0Op53/iJfYhtXRFd1ZAd3RTRqto9w==" + "resolved" "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.8.tgz" + "version" "6.1.8" + dependencies: + "nanoid" "^3.1.23" + +"@react-navigation/stack@^6.3.16": + "integrity" "sha512-KTOn9cNuZ6p154Htbl2DiR95Wl+c7niLPRiGs7gjOkyVDGiaGQF9ODNQTYBDE1OxZGHe/EyYc6T2CbmiItLWDg==" + "resolved" "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.16.tgz" + "version" "6.3.16" + dependencies: + "@react-navigation/elements" "^1.3.17" + "color" "^4.2.3" + "warn-once" "^0.1.0" + +"@sideway/address@^4.1.3": + "integrity" "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==" + "resolved" "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz" + "version" "4.1.4" + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + "integrity" "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "resolved" "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz" + "version" "3.0.1" + +"@sideway/pinpoint@^2.0.0": + "integrity" "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "resolved" "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" + "version" "2.0.0" + +"@sinclair/typebox@^0.25.16": + "integrity" "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==" + "resolved" "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz" + "version" "0.25.24" + +"@sinonjs/commons@^2.0.0": + "integrity" "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==" + "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "type-detect" "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + "integrity" "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==" + "resolved" "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz" + "version" "10.0.2" + dependencies: + "@sinonjs/commons" "^2.0.0" + +"@tsconfig/react-native@^3.0.1": + "integrity" "sha512-7C4WVvuKjATN8DU4+l9nuauakWFwNks4ZDNzM00asa3SBdywzqpVrXbN5nwlneivs3Y+98Nk//HNRlIzSMWEBw==" + "resolved" "https://registry.npmjs.org/@tsconfig/react-native/-/react-native-3.0.1.tgz" + "version" "3.0.1" + +"@types/babel__core@^7.1.14": + "integrity" "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==" + "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz" + "version" "7.20.0" + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + "integrity" "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==" + "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" + "version" "7.6.4" + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + "integrity" "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==" + "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + "version" "7.4.1" + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + "integrity" "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==" + "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz" + "version" "7.18.3" + dependencies: + "@babel/types" "^7.3.0" + +"@types/graceful-fs@^4.1.3": + "integrity" "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==" + "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz" + "version" "4.1.6" + dependencies: + "@types/node" "*" + +"@types/hammerjs@^2.0.36": + "integrity" "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==" + "resolved" "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz" + "version" "2.0.41" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + "version" "2.0.4" + +"@types/istanbul-lib-report@*": + "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.1": + "integrity" "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==" + "resolved" "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz" + "version" "29.5.1" + dependencies: + "expect" "^29.0.0" + "pretty-format" "^29.0.0" + +"@types/json-schema@^7.0.9": + "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + "version" "7.0.11" + +"@types/node@*": + "integrity" "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz" + "version" "18.15.3" + +"@types/prettier@^2.1.5": + "integrity" "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" + "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz" + "version" "2.7.2" + +"@types/prop-types@*": + "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" + "version" "15.7.5" + +"@types/react-native-vector-icons@^6.4.13": + "integrity" "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==" + "resolved" "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz" + "version" "6.4.13" + dependencies: + "@types/react" "*" + "@types/react-native" "^0.70" + +"@types/react-native@^0.70": + "integrity" "sha512-VnC/ny8Eynk3fvY4cnNKXpo/0zUhA2gO64RX51yzVofblOP6TR6jciga0kIjI4c+2eUyWNGrahmiolNm+QU6Cw==" + "resolved" "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.13.tgz" + "version" "0.70.13" + dependencies: + "@types/react" "*" + +"@types/react-native@^0.72.0": + "integrity" "sha512-g1PJXUQ0SnYTimfTeN9dRqj8VfzvgJjt/eakEH7+tlm/ZiEPiL9xCool4iKmqalthwtM0/BkGhjwrKnJyg1JDA==" + "resolved" "https://registry.npmjs.org/@types/react-native/-/react-native-0.72.0.tgz" + "version" "0.72.0" + dependencies: + "@react-native/virtualized-lists" "^0.72.4" + "@types/react" "*" + +"@types/react-test-renderer@^18.0.0": + "integrity" "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ==" + "resolved" "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz" + "version" "18.0.0" + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.2.6": + "integrity" "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==" + "resolved" "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz" + "version" "18.2.6" + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + "csstype" "^3.0.2" + +"@types/scheduler@*": + "integrity" "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" + "version" "0.16.2" + +"@types/semver@^7.3.12": + "integrity" "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" + "version" "7.3.13" + +"@types/stack-utils@^2.0.0": + "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" + "version" "2.0.1" + +"@types/yargs-parser@*": + "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + "version" "21.0.0" + +"@types/yargs@^15.0.0": + "integrity" "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz" + "version" "15.0.15" + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^16.0.0": + "integrity" "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz" + "version" "16.0.5" + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^17.0.8": + "integrity" "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz" + "version" "17.0.22" + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^5.0.0", "@typescript-eslint/eslint-plugin@^5.30.5": + "integrity" "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz" + "version" "5.55.0" + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/type-utils" "5.55.0" + "@typescript-eslint/utils" "5.55.0" + "debug" "^4.3.4" + "grapheme-splitter" "^1.0.4" + "ignore" "^5.2.0" + "natural-compare-lite" "^1.4.0" + "semver" "^7.3.7" + "tsutils" "^3.21.0" + +"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.30.5": + "integrity" "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz" + "version" "5.55.0" + dependencies: + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/typescript-estree" "5.55.0" + "debug" "^4.3.4" + +"@typescript-eslint/scope-manager@5.55.0": + "integrity" "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz" + "version" "5.55.0" + dependencies: + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/visitor-keys" "5.55.0" + +"@typescript-eslint/type-utils@5.55.0": + "integrity" "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz" + "version" "5.55.0" + dependencies: + "@typescript-eslint/typescript-estree" "5.55.0" + "@typescript-eslint/utils" "5.55.0" + "debug" "^4.3.4" + "tsutils" "^3.21.0" + +"@typescript-eslint/types@5.55.0": + "integrity" "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz" + "version" "5.55.0" + +"@typescript-eslint/typescript-estree@5.55.0": + "integrity" "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz" + "version" "5.55.0" + dependencies: + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/visitor-keys" "5.55.0" + "debug" "^4.3.4" + "globby" "^11.1.0" + "is-glob" "^4.0.3" + "semver" "^7.3.7" + "tsutils" "^3.21.0" + +"@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@5.55.0": + "integrity" "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz" + "version" "5.55.0" + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.55.0" + "@typescript-eslint/types" "5.55.0" + "@typescript-eslint/typescript-estree" "5.55.0" + "eslint-scope" "^5.1.1" + "semver" "^7.3.7" + +"@typescript-eslint/visitor-keys@5.55.0": + "integrity" "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz" + "version" "5.55.0" + dependencies: + "@typescript-eslint/types" "5.55.0" + "eslint-visitor-keys" "^3.3.0" + +"abort-controller@^3.0.0": + "integrity" "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==" + "resolved" "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "event-target-shim" "^5.0.0" + +"absolute-path@^0.0.0": + "integrity" "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==" + "resolved" "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz" + "version" "0.0.0" + +"accepts@^1.3.7", "accepts@~1.3.5", "accepts@~1.3.7": + "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" + "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + "version" "1.3.8" + dependencies: + "mime-types" "~2.1.34" + "negotiator" "0.6.3" + +"acorn-jsx@^5.3.2": + "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + "version" "5.3.2" + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.5.0", "acorn@^8.8.0": + "integrity" "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" + "version" "8.8.2" + +"ajv@^6.10.0", "ajv@^6.12.4": + "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + "version" "6.12.6" + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"anser@^1.4.9": + "integrity" "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==" + "resolved" "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz" + "version" "1.4.10" + +"ansi-escapes@^4.2.1": + "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" + "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "type-fest" "^0.21.3" + +"ansi-fragments@^0.2.1": + "integrity" "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==" + "resolved" "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz" + "version" "0.2.1" + dependencies: + "colorette" "^1.0.7" + "slice-ansi" "^2.0.0" + "strip-ansi" "^5.0.0" + +"ansi-regex@^4.1.0": + "integrity" "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" + "version" "4.1.1" + +"ansi-regex@^5.0.0", "ansi-regex@^5.0.1": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" + +"ansi-styles@^3.2.0": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"ansi-styles@^5.0.0": + "integrity" "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + "version" "5.2.0" + +"anymatch@^3.0.3": + "integrity" "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"appdirsjs@^1.2.4": + "integrity" "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==" + "resolved" "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz" + "version" "1.2.7" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"argparse@^2.0.1": + "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + "version" "2.0.1" + +"arr-diff@^4.0.0": + "integrity" "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==" + "resolved" "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + "version" "4.0.0" + +"arr-flatten@^1.1.0": + "integrity" "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "resolved" "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + "version" "1.1.0" + +"arr-union@^3.1.0": + "integrity" "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" + "resolved" "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + "version" "3.1.0" + +"array-buffer-byte-length@^1.0.0": + "integrity" "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==" + "resolved" "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "is-array-buffer" "^3.0.1" + +"array-includes@^3.1.5", "array-includes@^3.1.6": + "integrity" "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==" + "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz" + "version" "3.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "get-intrinsic" "^1.1.3" + "is-string" "^1.0.7" + +"array-union@^2.1.0": + "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + "version" "2.1.0" + +"array-unique@^0.3.2": + "integrity" "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" + "resolved" "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + "version" "0.3.2" + +"array.prototype.flatmap@^1.3.1": + "integrity" "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==" + "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "es-shim-unscopables" "^1.0.0" + +"array.prototype.tosorted@^1.1.1": + "integrity" "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==" + "resolved" "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "es-shim-unscopables" "^1.0.0" + "get-intrinsic" "^1.1.3" + +"asap@~2.0.6": + "integrity" "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + "version" "2.0.6" + +"assign-symbols@^1.0.0": + "integrity" "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" + "resolved" "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + "version" "1.0.0" + +"ast-types@0.14.2": + "integrity" "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==" + "resolved" "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz" + "version" "0.14.2" + dependencies: + "tslib" "^2.0.1" + +"astral-regex@^1.0.0": + "integrity" "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + "resolved" "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + "version" "1.0.0" + +"async-limiter@~1.0.0": + "integrity" "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "resolved" "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + "version" "1.0.1" + +"async@^3.2.2": + "integrity" "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "resolved" "https://registry.npmjs.org/async/-/async-3.2.4.tgz" + "version" "3.2.4" + +"atob@^2.1.2": + "integrity" "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + "version" "2.1.2" + +"available-typed-arrays@^1.0.5": + "integrity" "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + "resolved" "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + "version" "1.0.5" + +"babel-core@^7.0.0-bridge.0": + "integrity" "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==" + "resolved" "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz" + "version" "7.0.0-bridge.0" + +"babel-jest@^29.2.1", "babel-jest@^29.5.0": + "integrity" "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==" + "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/transform" "^29.5.0" + "@types/babel__core" "^7.1.14" + "babel-plugin-istanbul" "^6.1.1" + "babel-preset-jest" "^29.5.0" + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "slash" "^3.0.0" + +"babel-plugin-istanbul@^6.1.1": + "integrity" "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==" + "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + "version" "6.1.1" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + "istanbul-lib-instrument" "^5.0.4" + "test-exclude" "^6.0.0" + +"babel-plugin-jest-hoist@^29.5.0": + "integrity" "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==" + "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +"babel-plugin-polyfill-corejs2@^0.3.3": + "integrity" "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + "semver" "^6.1.1" + +"babel-plugin-polyfill-corejs3@^0.6.0": + "integrity" "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + "core-js-compat" "^3.25.1" + +"babel-plugin-polyfill-regenerator@^0.4.1": + "integrity" "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + +"babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0": + "integrity" "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz" + "version" "7.0.0-beta.0" + +"babel-plugin-transform-flow-enums@^0.0.2": + "integrity" "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz" + "version" "0.0.2" + dependencies: + "@babel/plugin-syntax-flow" "^7.12.1" + +"babel-preset-current-node-syntax@^1.0.0": + "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==" + "resolved" "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +"babel-preset-fbjs@^3.4.0": + "integrity" "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==" + "resolved" "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz" + "version" "3.4.0" + dependencies: + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-block-scoped-functions" "^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-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-member-expression-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-property-literals" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "babel-plugin-syntax-trailing-function-commas" "^7.0.0-beta.0" + +"babel-preset-jest@^29.5.0": + "integrity" "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==" + "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "babel-plugin-jest-hoist" "^29.5.0" + "babel-preset-current-node-syntax" "^1.0.0" + +"balanced-match@^1.0.0": + "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + "version" "1.0.2" + +"base@^0.11.1": + "integrity" "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==" + "resolved" "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + "version" "0.11.2" + dependencies: + "cache-base" "^1.0.1" + "class-utils" "^0.3.5" + "component-emitter" "^1.2.1" + "define-property" "^1.0.0" + "isobject" "^3.0.1" + "mixin-deep" "^1.2.0" + "pascalcase" "^0.1.1" + +"base64-js@^1.1.2", "base64-js@^1.3.1": + "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + "version" "1.5.1" + +"bl@^4.1.0": + "integrity" "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==" + "resolved" "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "buffer" "^5.5.0" + "inherits" "^2.0.4" + "readable-stream" "^3.4.0" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"braces@^2.3.1": + "integrity" "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==" + "resolved" "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + "version" "2.3.2" + dependencies: + "arr-flatten" "^1.1.0" + "array-unique" "^0.3.2" + "extend-shallow" "^2.0.1" + "fill-range" "^4.0.0" + "isobject" "^3.0.1" + "repeat-element" "^1.1.2" + "snapdragon" "^0.8.1" + "snapdragon-node" "^2.0.1" + "split-string" "^3.0.2" + "to-regex" "^3.0.1" + +"braces@^3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"browserslist@^4.21.3", "browserslist@^4.21.5", "browserslist@>= 4.21.0": + "integrity" "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" + "version" "4.21.5" + dependencies: + "caniuse-lite" "^1.0.30001449" + "electron-to-chromium" "^1.4.284" + "node-releases" "^2.0.8" + "update-browserslist-db" "^1.0.10" + +"bser@2.1.1": + "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" + "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "node-int64" "^0.4.0" + +"buffer-from@^1.0.0": + "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + "version" "1.1.2" + +"buffer@^5.5.0": + "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + "version" "5.7.1" + dependencies: + "base64-js" "^1.3.1" + "ieee754" "^1.1.13" + +"bytes@3.0.0": + "integrity" "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + "version" "3.0.0" + +"cache-base@^1.0.1": + "integrity" "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==" + "resolved" "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "collection-visit" "^1.0.0" + "component-emitter" "^1.2.1" + "get-value" "^2.0.6" + "has-value" "^1.0.0" + "isobject" "^3.0.1" + "set-value" "^2.0.0" + "to-object-path" "^0.3.0" + "union-value" "^1.0.0" + "unset-value" "^1.0.0" + +"call-bind@^1.0.0", "call-bind@^1.0.2": + "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" + "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "function-bind" "^1.1.1" + "get-intrinsic" "^1.0.2" + +"caller-callsite@^2.0.0": + "integrity" "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==" + "resolved" "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "callsites" "^2.0.0" + +"caller-path@^2.0.0": + "integrity" "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==" + "resolved" "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "caller-callsite" "^2.0.0" + +"callsites@^2.0.0": + "integrity" "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + "version" "2.0.0" + +"callsites@^3.0.0": + "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + "version" "3.1.0" + +"camelcase@^5.0.0", "camelcase@^5.3.1": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"camelcase@^6.0.0": + "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + "version" "6.3.0" + +"camelcase@^6.2.0": + "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + "version" "6.3.0" + +"caniuse-lite@^1.0.30001449": + "integrity" "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz" + "version" "1.0.30001466" + +"chalk@^2.0.0": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^4.0.0", "chalk@^4.1.0", "chalk@^4.1.2": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"char-regex@^1.0.2": + "integrity" "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + "resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + "version" "1.0.2" + +"ci-info@^2.0.0": + "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + "version" "2.0.0" + +"ci-info@^3.2.0": + "integrity" "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz" + "version" "3.8.0" + +"cjs-module-lexer@^1.0.0": + "integrity" "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "resolved" "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + "version" "1.2.2" + +"class-utils@^0.3.5": + "integrity" "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==" + "resolved" "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + "version" "0.3.6" + dependencies: + "arr-union" "^3.1.0" + "define-property" "^0.2.5" + "isobject" "^3.0.0" + "static-extend" "^0.1.1" + +"cli-cursor@^3.1.0": + "integrity" "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "restore-cursor" "^3.1.0" + +"cli-spinners@^2.5.0": + "integrity" "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==" + "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz" + "version" "2.9.0" + +"cliui@^6.0.0": + "integrity" "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^6.2.0" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"cliui@^8.0.1": + "integrity" "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + "version" "8.0.1" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.1" + "wrap-ansi" "^7.0.0" + +"clone-deep@^4.0.1": + "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==" + "resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-plain-object" "^2.0.4" + "kind-of" "^6.0.2" + "shallow-clone" "^3.0.0" + +"clone@^1.0.2": + "integrity" "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" + "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + "version" "1.0.4" + +"co@^4.6.0": + "integrity" "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" + "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + "version" "4.6.0" + +"collect-v8-coverage@^1.0.0": + "integrity" "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" + "version" "1.0.1" + +"collection-visit@^1.0.0": + "integrity" "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==" + "resolved" "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "map-visit" "^1.0.0" + "object-visit" "^1.0.0" + +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^1.9.3": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@^1.0.0", "color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"color-string@^1.6.0", "color-string@^1.9.0": + "integrity" "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==" + "resolved" "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" + "version" "1.9.1" + dependencies: + "color-name" "^1.0.0" + "simple-swizzle" "^0.2.2" + +"color@^3.1.2": + "integrity" "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==" + "resolved" "https://registry.npmjs.org/color/-/color-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.3" + "color-string" "^1.6.0" + +"color@^4.2.3": + "integrity" "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==" + "resolved" "https://registry.npmjs.org/color/-/color-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "color-convert" "^2.0.1" + "color-string" "^1.9.0" + +"colorette@^1.0.7": + "integrity" "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "resolved" "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" + "version" "1.4.0" + +"command-exists@^1.2.8": + "integrity" "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + "resolved" "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" + "version" "1.2.9" + +"commander@^2.20.0": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^9.4.1": + "integrity" "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" + "version" "9.5.0" + +"commander@~2.13.0": + "integrity" "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz" + "version" "2.13.0" + +"commondir@^1.0.1": + "integrity" "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + "version" "1.0.1" + +"component-emitter@^1.2.1": + "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + "version" "1.3.0" + +"compressible@~2.0.16": + "integrity" "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==" + "resolved" "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + "version" "2.0.18" + dependencies: + "mime-db" ">= 1.43.0 < 2" + +"compression@^1.7.1": + "integrity" "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==" + "resolved" "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + "version" "1.7.4" + dependencies: + "accepts" "~1.3.5" + "bytes" "3.0.0" + "compressible" "~2.0.16" + "debug" "2.6.9" + "on-headers" "~1.0.2" + "safe-buffer" "5.1.2" + "vary" "~1.1.2" + +"concat-map@0.0.1": + "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"connect@^3.6.5": + "integrity" "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==" + "resolved" "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" + "version" "3.7.0" + dependencies: + "debug" "2.6.9" + "finalhandler" "1.1.2" + "parseurl" "~1.3.3" + "utils-merge" "1.0.1" + +"convert-source-map@^1.6.0", "convert-source-map@^1.7.0": + "integrity" "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + "version" "1.9.0" + +"convert-source-map@^2.0.0": + "integrity" "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + "version" "2.0.0" + +"copy-descriptor@^0.1.0": + "integrity" "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" + "resolved" "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + "version" "0.1.1" + +"core-js-compat@^3.25.1": + "integrity" "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==" + "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz" + "version" "3.29.1" + dependencies: + "browserslist" "^4.21.5" + +"core-util-is@~1.0.0": + "integrity" "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + "version" "1.0.3" + +"cosmiconfig@^5.0.5", "cosmiconfig@^5.1.0": + "integrity" "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==" + "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + "version" "5.2.1" + dependencies: + "import-fresh" "^2.0.0" + "is-directory" "^0.3.1" + "js-yaml" "^3.13.1" + "parse-json" "^4.0.0" + +"cross-spawn@^6.0.0": + "integrity" "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + "version" "6.0.5" + dependencies: + "nice-try" "^1.0.4" + "path-key" "^2.0.1" + "semver" "^5.5.0" + "shebang-command" "^1.2.0" + "which" "^1.2.9" + +"cross-spawn@^7.0.2", "cross-spawn@^7.0.3": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + +"csstype@^3.0.2": + "integrity" "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz" + "version" "3.1.1" + +"dayjs@^1.8.15": + "integrity" "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + "resolved" "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz" + "version" "1.11.7" + +"debug@^2.2.0": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^2.3.3": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"debug@2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"decamelize@^1.2.0": + "integrity" "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + "version" "1.2.0" + +"decode-uri-component@^0.2.0", "decode-uri-component@^0.2.2": + "integrity" "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + "resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" + "version" "0.2.2" + +"dedent@^0.7.0": + "integrity" "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + "version" "0.7.0" + +"deep-is@^0.1.3": + "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + "version" "0.1.4" + +"deepmerge@^3.2.0": + "integrity" "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==" + "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz" + "version" "3.3.0" + +"deepmerge@^4.2.2", "deepmerge@^4.3.1": + "integrity" "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" + "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + "version" "4.3.1" + +"defaults@^1.0.3": + "integrity" "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==" + "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "clone" "^1.0.2" + +"define-properties@^1.1.3", "define-properties@^1.1.4": + "integrity" "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "has-property-descriptors" "^1.0.0" + "object-keys" "^1.1.1" + +"define-property@^0.2.5": + "integrity" "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + "version" "0.2.5" + dependencies: + "is-descriptor" "^0.1.0" + +"define-property@^1.0.0": + "integrity" "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-descriptor" "^1.0.0" + +"define-property@^2.0.2": + "integrity" "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "is-descriptor" "^1.0.2" + "isobject" "^3.0.1" + +"denodeify@^1.2.1": + "integrity" "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==" + "resolved" "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz" + "version" "1.2.1" + +"depd@2.0.0": + "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + "version" "2.0.0" + +"deprecated-react-native-prop-types@^3.0.1": + "integrity" "sha512-J0jCJcsk4hMlIb7xwOZKLfMpuJn6l8UtrPEzzQV5ewz5gvKNYakhBuq9h2rWX7YwHHJZFhU5W8ye7dB9oN8VcQ==" + "resolved" "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "@react-native/normalize-color" "*" + "invariant" "*" + "prop-types" "*" + +"destroy@1.2.0": + "integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + "version" "1.2.0" + +"detect-newline@^3.0.0": + "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + "version" "3.1.0" + +"diff-sequences@^29.4.3": + "integrity" "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==" + "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz" + "version" "29.4.3" + +"dir-glob@^3.0.1": + "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" + "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "path-type" "^4.0.0" + +"doctrine@^2.1.0": + "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==" + "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "esutils" "^2.0.2" + +"doctrine@^3.0.0": + "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" + "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "esutils" "^2.0.2" + +"ee-first@1.1.1": + "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "version" "1.1.1" + +"electron-to-chromium@^1.4.284": + "integrity" "sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz" + "version" "1.4.330" + +"emittery@^0.13.1": + "integrity" "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==" + "resolved" "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz" + "version" "0.13.1" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + +"encodeurl@~1.0.2": + "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + +"end-of-stream@^1.1.0": + "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" + "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + "version" "1.4.4" + dependencies: + "once" "^1.4.0" + +"envinfo@^7.7.2": + "integrity" "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" + "resolved" "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" + "version" "7.8.1" + +"error-ex@^1.3.1": + "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "is-arrayish" "^0.2.1" + +"error-stack-parser@^2.0.6": + "integrity" "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==" + "resolved" "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz" + "version" "2.1.4" + dependencies: + "stackframe" "^1.3.4" + +"errorhandler@^1.5.0": + "integrity" "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==" + "resolved" "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz" + "version" "1.5.1" + dependencies: + "accepts" "~1.3.7" + "escape-html" "~1.0.3" + +"es-abstract@^1.19.0", "es-abstract@^1.20.4": + "integrity" "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==" + "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz" + "version" "1.21.2" + dependencies: + "array-buffer-byte-length" "^1.0.0" + "available-typed-arrays" "^1.0.5" + "call-bind" "^1.0.2" + "es-set-tostringtag" "^2.0.1" + "es-to-primitive" "^1.2.1" + "function.prototype.name" "^1.1.5" + "get-intrinsic" "^1.2.0" + "get-symbol-description" "^1.0.0" + "globalthis" "^1.0.3" + "gopd" "^1.0.1" + "has" "^1.0.3" + "has-property-descriptors" "^1.0.0" + "has-proto" "^1.0.1" + "has-symbols" "^1.0.3" + "internal-slot" "^1.0.5" + "is-array-buffer" "^3.0.2" + "is-callable" "^1.2.7" + "is-negative-zero" "^2.0.2" + "is-regex" "^1.1.4" + "is-shared-array-buffer" "^1.0.2" + "is-string" "^1.0.7" + "is-typed-array" "^1.1.10" + "is-weakref" "^1.0.2" + "object-inspect" "^1.12.3" + "object-keys" "^1.1.1" + "object.assign" "^4.1.4" + "regexp.prototype.flags" "^1.4.3" + "safe-regex-test" "^1.0.0" + "string.prototype.trim" "^1.2.7" + "string.prototype.trimend" "^1.0.6" + "string.prototype.trimstart" "^1.0.6" + "typed-array-length" "^1.0.4" + "unbox-primitive" "^1.0.2" + "which-typed-array" "^1.1.9" + +"es-set-tostringtag@^2.0.1": + "integrity" "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==" + "resolved" "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "get-intrinsic" "^1.1.3" + "has" "^1.0.3" + "has-tostringtag" "^1.0.0" + +"es-shim-unscopables@^1.0.0": + "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==" + "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has" "^1.0.3" + +"es-to-primitive@^1.2.1": + "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" + "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "is-callable" "^1.1.4" + "is-date-object" "^1.0.1" + "is-symbol" "^1.0.2" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-html@~1.0.3": + "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + "version" "1.0.3" + +"escape-string-regexp@^1.0.5": + "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^2.0.0": + "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + "version" "2.0.0" + +"escape-string-regexp@^4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + +"eslint-config-prettier@^8.5.0", "eslint-config-prettier@^8.8.0": + "integrity" "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==" + "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz" + "version" "8.8.0" + +"eslint-plugin-eslint-comments@^3.2.0": + "integrity" "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "escape-string-regexp" "^1.0.5" + "ignore" "^5.0.5" + +"eslint-plugin-ft-flow@^2.0.1": + "integrity" "sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==" + "resolved" "https://registry.npmjs.org/eslint-plugin-ft-flow/-/eslint-plugin-ft-flow-2.0.3.tgz" + "version" "2.0.3" + dependencies: + "lodash" "^4.17.21" + "string-natural-compare" "^3.0.1" + +"eslint-plugin-jest@^26.5.3": + "integrity" "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==" + "resolved" "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz" + "version" "26.9.0" + dependencies: + "@typescript-eslint/utils" "^5.10.0" + +"eslint-plugin-prettier@^4.2.1": + "integrity" "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "prettier-linter-helpers" "^1.0.0" + +"eslint-plugin-react-hooks@^4.6.0": + "integrity" "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==" + "resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz" + "version" "4.6.0" + +"eslint-plugin-react-native-globals@^0.1.1": + "integrity" "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==" + "resolved" "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz" + "version" "0.1.2" + +"eslint-plugin-react-native@^4.0.0": + "integrity" "sha512-kMmdxrSY7A1WgdqaGC+rY/28rh7kBGNBRsk48ovqkQmdg5j4K+DaFmegENDzMrdLkoufKGRNkKX6bgSwQTCAxQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "@babel/traverse" "^7.7.4" + "eslint-plugin-react-native-globals" "^0.1.1" + +"eslint-plugin-react@^7.30.1": + "integrity" "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==" + "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz" + "version" "7.32.2" + dependencies: + "array-includes" "^3.1.6" + "array.prototype.flatmap" "^1.3.1" + "array.prototype.tosorted" "^1.1.1" + "doctrine" "^2.1.0" + "estraverse" "^5.3.0" + "jsx-ast-utils" "^2.4.1 || ^3.0.0" + "minimatch" "^3.1.2" + "object.entries" "^1.1.6" + "object.fromentries" "^2.0.6" + "object.hasown" "^1.1.2" + "object.values" "^1.1.6" + "prop-types" "^15.8.1" + "resolve" "^2.0.0-next.4" + "semver" "^6.3.0" + "string.prototype.matchall" "^4.0.8" + +"eslint-scope@^5.1.1", "eslint-scope@5.1.1": + "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^4.1.1" + +"eslint-scope@^7.2.0": + "integrity" "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^5.2.0" + +"eslint-visitor-keys@^2.1.0": + "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + "version" "2.1.0" + +"eslint-visitor-keys@^3.3.0", "eslint-visitor-keys@^3.4.1": + "integrity" "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz" + "version" "3.4.1" + +"eslint@*", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.5.0 || ^8.0.0", "eslint@^8.1.0", "eslint@^8.40.0", "eslint@>=4.19.1", "eslint@>=7.0.0", "eslint@>=7.28.0", "eslint@>=8": + "integrity" "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==" + "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz" + "version" "8.40.0" + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.40.0" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "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.2.0" + "eslint-visitor-keys" "^3.4.1" + "espree" "^9.5.2" + "esquery" "^1.4.2" + "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.2" + "globals" "^13.19.0" + "grapheme-splitter" "^1.0.4" + "ignore" "^5.2.0" + "import-fresh" "^3.0.0" + "imurmurhash" "^0.1.4" + "is-glob" "^4.0.0" + "is-path-inside" "^3.0.3" + "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" + "strip-ansi" "^6.0.1" + "strip-json-comments" "^3.1.0" + "text-table" "^0.2.0" + +"espree@^9.5.2": + "integrity" "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==" + "resolved" "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz" + "version" "9.5.2" + dependencies: + "acorn" "^8.8.0" + "acorn-jsx" "^5.3.2" + "eslint-visitor-keys" "^3.4.1" + +"esprima@^4.0.0", "esprima@~4.0.0": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"esquery@^1.4.2": + "integrity" "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==" + "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "estraverse" "^5.1.0" + +"esrecurse@^4.3.0": + "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" + "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "estraverse" "^5.2.0" + +"estraverse@^4.1.1": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"estraverse@^5.1.0", "estraverse@^5.2.0", "estraverse@^5.3.0": + "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + "version" "5.3.0" + +"esutils@^2.0.2": + "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + "version" "2.0.3" + +"etag@~1.8.1": + "integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + "version" "1.8.1" + +"event-target-shim@^5.0.0", "event-target-shim@^5.0.1": + "integrity" "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + "resolved" "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + "version" "5.0.1" + +"execa@^1.0.0": + "integrity" "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==" + "resolved" "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "cross-spawn" "^6.0.0" + "get-stream" "^4.0.0" + "is-stream" "^1.1.0" + "npm-run-path" "^2.0.0" + "p-finally" "^1.0.0" + "signal-exit" "^3.0.0" + "strip-eof" "^1.0.0" + +"execa@^5.0.0": + "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" + "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "cross-spawn" "^7.0.3" + "get-stream" "^6.0.0" + "human-signals" "^2.1.0" + "is-stream" "^2.0.0" + "merge-stream" "^2.0.0" + "npm-run-path" "^4.0.1" + "onetime" "^5.1.2" + "signal-exit" "^3.0.3" + "strip-final-newline" "^2.0.0" + +"exit@^0.1.2": + "integrity" "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" + "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + "version" "0.1.2" + +"expand-brackets@^2.1.4": + "integrity" "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==" + "resolved" "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + "version" "2.1.4" + dependencies: + "debug" "^2.3.3" + "define-property" "^0.2.5" + "extend-shallow" "^2.0.1" + "posix-character-classes" "^0.1.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"expect@^29.0.0", "expect@^29.5.0": + "integrity" "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==" + "resolved" "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/expect-utils" "^29.5.0" + "jest-get-type" "^29.4.3" + "jest-matcher-utils" "^29.5.0" + "jest-message-util" "^29.5.0" + "jest-util" "^29.5.0" + +"extend-shallow@^2.0.1": + "integrity" "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==" + "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "is-extendable" "^0.1.0" + +"extend-shallow@^3.0.0": + "integrity" "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==" + "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "assign-symbols" "^1.0.0" + "is-extendable" "^1.0.1" + +"extend-shallow@^3.0.2": + "integrity" "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==" + "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "assign-symbols" "^1.0.0" + "is-extendable" "^1.0.1" + +"extglob@^2.0.4": + "integrity" "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==" + "resolved" "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "array-unique" "^0.3.2" + "define-property" "^1.0.0" + "expand-brackets" "^2.1.4" + "extend-shallow" "^2.0.1" + "fragment-cache" "^0.2.1" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-diff@^1.1.2": + "integrity" "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + "version" "1.2.0" + +"fast-glob@^3.2.9": + "integrity" "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" + "version" "3.2.12" + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + "glob-parent" "^5.1.2" + "merge2" "^1.3.0" + "micromatch" "^4.0.4" + +"fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@^2.1.0": + "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + "version" "2.1.0" + +"fast-levenshtein@^2.0.6": + "integrity" "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + "version" "2.0.6" + +"fast-xml-parser@^4.0.12": + "integrity" "sha512-DLzIPtQqmvmdq3VUKR7T6omPK/VCRNqgFlGtbESfyhcH2R4I8EzK1/K6E8PkRCK2EabWrUHK32NjYRbEFnnz0Q==" + "resolved" "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "strnum" "^1.0.5" + +"fastq@^1.6.0": + "integrity" "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==" + "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" + "version" "1.15.0" + dependencies: + "reusify" "^1.0.4" + +"fb-watchman@^2.0.0": + "integrity" "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==" + "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "bser" "2.1.1" + +"file-entry-cache@^6.0.1": + "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" + "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "flat-cache" "^3.0.4" + +"fill-range@^4.0.0": + "integrity" "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "extend-shallow" "^2.0.1" + "is-number" "^3.0.0" + "repeat-string" "^1.6.1" + "to-regex-range" "^2.1.0" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"filter-obj@^1.1.0": + "integrity" "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" + "resolved" "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz" + "version" "1.1.0" + +"finalhandler@1.1.2": + "integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==" + "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "debug" "2.6.9" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "on-finished" "~2.3.0" + "parseurl" "~1.3.3" + "statuses" "~1.5.0" + "unpipe" "~1.0.0" + +"find-cache-dir@^2.0.0": + "integrity" "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==" + "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "commondir" "^1.0.1" + "make-dir" "^2.0.0" + "pkg-dir" "^3.0.0" + +"find-up@^3.0.0": + "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "locate-path" "^3.0.0" + +"find-up@^4.0.0", "find-up@^4.1.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^5.0.0": + "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "locate-path" "^6.0.0" + "path-exists" "^4.0.0" + +"flat-cache@^3.0.4": + "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" + "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "flatted" "^3.1.0" + "rimraf" "^3.0.2" + +"flatted@^3.1.0": + "integrity" "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" + "version" "3.2.7" + +"flow-parser@^0.185.0": + "integrity" "sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ==" + "resolved" "https://registry.npmjs.org/flow-parser/-/flow-parser-0.185.2.tgz" + "version" "0.185.2" + +"flow-parser@0.*": + "integrity" "sha512-G4oeDNpNGyIrweF9EnoHatncAihMT0tQgV6NMdyM5I7fhrz9Pr13PJ2KLQ673O4wj9KooTdBpeeYHdDNAQoyyw==" + "resolved" "https://registry.npmjs.org/flow-parser/-/flow-parser-0.201.0.tgz" + "version" "0.201.0" + +"for-each@^0.3.3": + "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" + "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "is-callable" "^1.1.3" + +"for-in@^1.0.2": + "integrity" "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" + "resolved" "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + "version" "1.0.2" + +"fragment-cache@^0.2.1": + "integrity" "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==" + "resolved" "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + "version" "0.2.1" + dependencies: + "map-cache" "^0.2.2" + +"fresh@0.5.2": + "integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + "version" "0.5.2" + +"fs-extra@^8.1.0": + "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs.realpath@^1.0.0": + "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"function.prototype.name@^1.1.5": + "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==" + "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "es-abstract" "^1.19.0" + "functions-have-names" "^1.2.2" + +"functions-have-names@^1.2.2": + "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + "version" "1.2.3" + +"gensync@^1.0.0-beta.2": + "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + "version" "1.0.0-beta.2" + +"get-caller-file@^2.0.1", "get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0": + "integrity" "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==" + "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "function-bind" "^1.1.1" + "has" "^1.0.3" + "has-symbols" "^1.0.3" + +"get-package-type@^0.1.0": + "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + "version" "0.1.0" + +"get-stream@^4.0.0": + "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "pump" "^3.0.0" + +"get-stream@^6.0.0": + "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + "version" "6.0.1" + +"get-symbol-description@^1.0.0": + "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" + "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.1" + +"get-value@^2.0.3", "get-value@^2.0.6": + "integrity" "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" + "resolved" "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + "version" "2.0.6" + +"glob-parent@^5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob-parent@^6.0.2": + "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "is-glob" "^4.0.3" + +"glob@^7.1.3", "glob@^7.1.4": + "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + "version" "7.2.3" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.1.1" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"globals@^11.1.0": + "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + "version" "11.12.0" + +"globals@^13.19.0": + "integrity" "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" + "version" "13.20.0" + dependencies: + "type-fest" "^0.20.2" + +"globalthis@^1.0.3": + "integrity" "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==" + "resolved" "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "define-properties" "^1.1.3" + +"globby@^11.1.0": + "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==" + "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + "version" "11.1.0" + dependencies: + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.2.9" + "ignore" "^5.2.0" + "merge2" "^1.4.1" + "slash" "^3.0.0" + +"gopd@^1.0.1": + "integrity" "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==" + "resolved" "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "get-intrinsic" "^1.1.3" + +"graceful-fs@^4.1.11", "graceful-fs@^4.1.3", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.4", "graceful-fs@^4.2.9": + "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + "version" "4.2.10" + +"grapheme-splitter@^1.0.4": + "integrity" "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "resolved" "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" + "version" "1.0.4" + +"growly@^1.3.0": + "integrity" "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==" + "resolved" "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" + "version" "1.3.0" + +"has-bigints@^1.0.1", "has-bigints@^1.0.2": + "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + "version" "1.0.2" + +"has-flag@^3.0.0": + "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has-property-descriptors@^1.0.0": + "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" + "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "get-intrinsic" "^1.1.1" + +"has-proto@^1.0.1": + "integrity" "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + "resolved" "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" + "version" "1.0.1" + +"has-symbols@^1.0.2", "has-symbols@^1.0.3": + "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + "version" "1.0.3" + +"has-tostringtag@^1.0.0": + "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" + "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has-symbols" "^1.0.2" + +"has-value@^0.3.1": + "integrity" "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==" + "resolved" "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + "version" "0.3.1" + dependencies: + "get-value" "^2.0.3" + "has-values" "^0.1.4" + "isobject" "^2.0.0" + +"has-value@^1.0.0": + "integrity" "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==" + "resolved" "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "get-value" "^2.0.6" + "has-values" "^1.0.0" + "isobject" "^3.0.0" + +"has-values@^0.1.4": + "integrity" "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==" + "resolved" "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + "version" "0.1.4" + +"has-values@^1.0.0": + "integrity" "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==" + "resolved" "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-number" "^3.0.0" + "kind-of" "^4.0.0" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"hermes-estree@0.8.0": + "integrity" "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q==" + "resolved" "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz" + "version" "0.8.0" + +"hermes-parser@0.8.0": + "integrity" "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==" + "resolved" "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz" + "version" "0.8.0" + dependencies: + "hermes-estree" "0.8.0" + +"hermes-profile-transformer@^0.0.6": + "integrity" "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==" + "resolved" "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz" + "version" "0.0.6" + dependencies: + "source-map" "^0.7.3" + +"hoist-non-react-statics@^3.3.0": + "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==" + "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + "version" "3.3.2" + dependencies: + "react-is" "^16.7.0" + +"html-escaper@^2.0.0": + "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + "version" "2.0.2" + +"html-parse-stringify@^3.0.1": + "integrity" "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==" + "resolved" "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "void-elements" "3.1.0" + +"http-errors@2.0.0": + "integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==" + "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "depd" "2.0.0" + "inherits" "2.0.4" + "setprototypeof" "1.2.0" + "statuses" "2.0.1" + "toidentifier" "1.0.1" + +"human-signals@^2.1.0": + "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + "version" "2.1.0" + +"i18next@^22.4.15", "i18next@>= 19.0.0": + "integrity" "sha512-yYudtbFrrmWKLEhl6jvKUYyYunj4bTBCe2qIUYAxbXoPusY7YmdwPvOE6fx6UIfWvmlbCWDItr7wIs8KEBZ5Zg==" + "resolved" "https://registry.npmjs.org/i18next/-/i18next-22.4.15.tgz" + "version" "22.4.15" + dependencies: + "@babel/runtime" "^7.20.6" + +"ieee754@^1.1.13": + "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + "version" "1.2.1" + +"ignore@^5.0.5", "ignore@^5.2.0": + "integrity" "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" + "version" "5.2.4" + +"image-size@^0.6.0": + "integrity" "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" + "resolved" "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz" + "version" "0.6.3" + +"import-fresh@^2.0.0": + "integrity" "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "caller-path" "^2.0.0" + "resolve-from" "^3.0.0" + +"import-fresh@^3.0.0", "import-fresh@^3.2.1": + "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "parent-module" "^1.0.0" + "resolve-from" "^4.0.0" + +"import-local@^3.0.2": + "integrity" "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==" + "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "pkg-dir" "^4.2.0" + "resolve-cwd" "^3.0.0" + +"imurmurhash@^0.1.4": + "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + +"inflight@^1.0.4": + "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.3", "inherits@2", "inherits@2.0.4": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"internal-slot@^1.0.3", "internal-slot@^1.0.5": + "integrity" "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==" + "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "get-intrinsic" "^1.2.0" + "has" "^1.0.3" + "side-channel" "^1.0.4" + +"invariant@*", "invariant@^2.2.4": + "integrity" "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==" + "resolved" "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + "version" "2.2.4" + dependencies: + "loose-envify" "^1.0.0" + +"ip@^1.1.5": + "integrity" "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + "resolved" "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz" + "version" "1.1.8" + +"is-accessor-descriptor@^0.1.6": + "integrity" "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==" + "resolved" "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + "version" "0.1.6" + dependencies: + "kind-of" "^3.0.2" + +"is-accessor-descriptor@^1.0.0": + "integrity" "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==" + "resolved" "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "kind-of" "^6.0.0" + +"is-array-buffer@^3.0.1", "is-array-buffer@^3.0.2": + "integrity" "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==" + "resolved" "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.2.0" + "is-typed-array" "^1.1.10" + +"is-arrayish@^0.2.1": + "integrity" "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + +"is-arrayish@^0.3.1": + "integrity" "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + "version" "0.3.2" + +"is-bigint@^1.0.1": + "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" + "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-bigints" "^1.0.1" + +"is-boolean-object@^1.1.0": + "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" + "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +"is-buffer@^1.1.5": + "integrity" "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "version" "1.1.6" + +"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.7": + "integrity" "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + "version" "1.2.7" + +"is-core-module@^2.9.0": + "integrity" "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" + "version" "2.11.0" + dependencies: + "has" "^1.0.3" + +"is-data-descriptor@^0.1.4": + "integrity" "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==" + "resolved" "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + "version" "0.1.4" + dependencies: + "kind-of" "^3.0.2" + +"is-data-descriptor@^1.0.0": + "integrity" "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==" + "resolved" "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "kind-of" "^6.0.0" + +"is-date-object@^1.0.1": + "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" + "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-descriptor@^0.1.0": + "integrity" "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==" + "resolved" "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + "version" "0.1.6" + dependencies: + "is-accessor-descriptor" "^0.1.6" + "is-data-descriptor" "^0.1.4" + "kind-of" "^5.0.0" + +"is-descriptor@^1.0.0", "is-descriptor@^1.0.2": + "integrity" "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==" + "resolved" "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-accessor-descriptor" "^1.0.0" + "is-data-descriptor" "^1.0.0" + "kind-of" "^6.0.2" + +"is-directory@^0.3.1": + "integrity" "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==" + "resolved" "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + "version" "0.3.1" + +"is-docker@^2.0.0": + "integrity" "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "resolved" "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + "version" "2.2.1" + +"is-extendable@^0.1.0", "is-extendable@^0.1.1": + "integrity" "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + "version" "0.1.1" + +"is-extendable@^1.0.1": + "integrity" "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "is-plain-object" "^2.0.4" + +"is-extglob@^2.1.1": + "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-fullwidth-code-point@^2.0.0": + "integrity" "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + "version" "2.0.0" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-generator-fn@^2.0.0": + "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + "version" "2.1.0" + +"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3": + "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-extglob" "^2.1.1" + +"is-interactive@^1.0.0": + "integrity" "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + "resolved" "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + "version" "1.0.0" + +"is-negative-zero@^2.0.2": + "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + "version" "2.0.2" + +"is-number-object@^1.0.4": + "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==" + "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-number@^3.0.0": + "integrity" "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "kind-of" "^3.0.2" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-path-inside@^3.0.3": + "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + "version" "3.0.3" + +"is-plain-obj@^2.1.0": + "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + "version" "2.1.0" + +"is-plain-object@^2.0.3", "is-plain-object@^2.0.4": + "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" + "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "isobject" "^3.0.1" + +"is-regex@^1.1.4": + "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" + "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +"is-shared-array-buffer@^1.0.2": + "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==" + "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + +"is-stream@^1.1.0": + "integrity" "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + "version" "1.1.0" + +"is-stream@^2.0.0": + "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + "version" "2.0.1" + +"is-string@^1.0.5", "is-string@^1.0.7": + "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" + "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-symbol@^1.0.2", "is-symbol@^1.0.3": + "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" + "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-symbols" "^1.0.2" + +"is-typed-array@^1.1.10", "is-typed-array@^1.1.9": + "integrity" "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==" + "resolved" "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" + "version" "1.1.10" + dependencies: + "available-typed-arrays" "^1.0.5" + "call-bind" "^1.0.2" + "for-each" "^0.3.3" + "gopd" "^1.0.1" + "has-tostringtag" "^1.0.0" + +"is-unicode-supported@^0.1.0": + "integrity" "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "resolved" "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + "version" "0.1.0" + +"is-weakref@^1.0.2": + "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==" + "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + +"is-windows@^1.0.2": + "integrity" "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "resolved" "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + "version" "1.0.2" + +"is-wsl@^1.1.0": + "integrity" "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + "version" "1.1.0" + +"is-wsl@^2.2.0": + "integrity" "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "is-docker" "^2.0.0" + +"isarray@~1.0.0", "isarray@1.0.0": + "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isexe@^2.0.0": + "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"isobject@^2.0.0": + "integrity" "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==" + "resolved" "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "isarray" "1.0.0" + +"isobject@^3.0.0", "isobject@^3.0.1": + "integrity" "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + "version" "3.0.1" + +"istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0": + "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" + "version" "3.2.0" + +"istanbul-lib-instrument@^5.0.4", "istanbul-lib-instrument@^5.1.0": + "integrity" "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==" + "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" + "version" "5.2.1" + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + "istanbul-lib-coverage" "^3.2.0" + "semver" "^6.3.0" + +"istanbul-lib-report@^3.0.0": + "integrity" "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "istanbul-lib-coverage" "^3.0.0" + "make-dir" "^3.0.0" + "supports-color" "^7.1.0" + +"istanbul-lib-source-maps@^4.0.0": + "integrity" "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "debug" "^4.1.1" + "istanbul-lib-coverage" "^3.0.0" + "source-map" "^0.6.1" + +"istanbul-reports@^3.1.3": + "integrity" "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==" + "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "html-escaper" "^2.0.0" + "istanbul-lib-report" "^3.0.0" + +"jest-changed-files@^29.5.0": + "integrity" "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==" + "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "execa" "^5.0.0" + "p-limit" "^3.1.0" + +"jest-circus@^29.5.0": + "integrity" "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==" + "resolved" "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/node" "*" + "chalk" "^4.0.0" + "co" "^4.6.0" + "dedent" "^0.7.0" + "is-generator-fn" "^2.0.0" + "jest-each" "^29.5.0" + "jest-matcher-utils" "^29.5.0" + "jest-message-util" "^29.5.0" + "jest-runtime" "^29.5.0" + "jest-snapshot" "^29.5.0" + "jest-util" "^29.5.0" + "p-limit" "^3.1.0" + "pretty-format" "^29.5.0" + "pure-rand" "^6.0.0" + "slash" "^3.0.0" + "stack-utils" "^2.0.3" + +"jest-cli@^29.5.0": + "integrity" "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==" + "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/core" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" + "chalk" "^4.0.0" + "exit" "^0.1.2" + "graceful-fs" "^4.2.9" + "import-local" "^3.0.2" + "jest-config" "^29.5.0" + "jest-util" "^29.5.0" + "jest-validate" "^29.5.0" + "prompts" "^2.0.1" + "yargs" "^17.3.1" + +"jest-config@^29.5.0": + "integrity" "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==" + "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.5.0" + "@jest/types" "^29.5.0" + "babel-jest" "^29.5.0" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "deepmerge" "^4.2.2" + "glob" "^7.1.3" + "graceful-fs" "^4.2.9" + "jest-circus" "^29.5.0" + "jest-environment-node" "^29.5.0" + "jest-get-type" "^29.4.3" + "jest-regex-util" "^29.4.3" + "jest-resolve" "^29.5.0" + "jest-runner" "^29.5.0" + "jest-util" "^29.5.0" + "jest-validate" "^29.5.0" + "micromatch" "^4.0.4" + "parse-json" "^5.2.0" + "pretty-format" "^29.5.0" + "slash" "^3.0.0" + "strip-json-comments" "^3.1.1" + +"jest-diff@^29.5.0": + "integrity" "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==" + "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "chalk" "^4.0.0" + "diff-sequences" "^29.4.3" + "jest-get-type" "^29.4.3" + "pretty-format" "^29.5.0" + +"jest-docblock@^29.4.3": + "integrity" "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==" + "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz" + "version" "29.4.3" + dependencies: + "detect-newline" "^3.0.0" + +"jest-each@^29.5.0": + "integrity" "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==" + "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/types" "^29.5.0" + "chalk" "^4.0.0" + "jest-get-type" "^29.4.3" + "jest-util" "^29.5.0" + "pretty-format" "^29.5.0" + +"jest-environment-node@^29.2.1", "jest-environment-node@^29.5.0": + "integrity" "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==" + "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/node" "*" + "jest-mock" "^29.5.0" + "jest-util" "^29.5.0" + +"jest-get-type@^26.3.0": + "integrity" "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" + "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" + "version" "26.3.0" + +"jest-get-type@^29.4.3": + "integrity" "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==" + "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz" + "version" "29.4.3" + +"jest-haste-map@^29.5.0": + "integrity" "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==" + "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/types" "^29.5.0" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + "anymatch" "^3.0.3" + "fb-watchman" "^2.0.0" + "graceful-fs" "^4.2.9" + "jest-regex-util" "^29.4.3" + "jest-util" "^29.5.0" + "jest-worker" "^29.5.0" + "micromatch" "^4.0.4" + "walker" "^1.0.8" + optionalDependencies: + "fsevents" "^2.3.2" + +"jest-leak-detector@^29.5.0": + "integrity" "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==" + "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "jest-get-type" "^29.4.3" + "pretty-format" "^29.5.0" + +"jest-matcher-utils@^29.5.0": + "integrity" "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==" + "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "chalk" "^4.0.0" + "jest-diff" "^29.5.0" + "jest-get-type" "^29.4.3" + "pretty-format" "^29.5.0" + +"jest-message-util@^29.5.0": + "integrity" "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==" + "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.5.0" + "@types/stack-utils" "^2.0.0" + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "micromatch" "^4.0.4" + "pretty-format" "^29.5.0" + "slash" "^3.0.0" + "stack-utils" "^2.0.3" + +"jest-mock@^29.5.0": + "integrity" "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==" + "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + "jest-util" "^29.5.0" + +"jest-pnp-resolver@^1.2.2": + "integrity" "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==" + "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" + "version" "1.2.3" + +"jest-regex-util@^27.0.6": + "integrity" "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" + "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" + "version" "27.5.1" + +"jest-regex-util@^29.4.3": + "integrity" "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==" + "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz" + "version" "29.4.3" + +"jest-resolve-dependencies@^29.5.0": + "integrity" "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==" + "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "jest-regex-util" "^29.4.3" + "jest-snapshot" "^29.5.0" + +"jest-resolve@*", "jest-resolve@^29.5.0": + "integrity" "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==" + "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^29.5.0" + "jest-pnp-resolver" "^1.2.2" + "jest-util" "^29.5.0" + "jest-validate" "^29.5.0" + "resolve" "^1.20.0" + "resolve.exports" "^2.0.0" + "slash" "^3.0.0" + +"jest-runner@^29.5.0": + "integrity" "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==" + "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/console" "^29.5.0" + "@jest/environment" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/node" "*" + "chalk" "^4.0.0" + "emittery" "^0.13.1" + "graceful-fs" "^4.2.9" + "jest-docblock" "^29.4.3" + "jest-environment-node" "^29.5.0" + "jest-haste-map" "^29.5.0" + "jest-leak-detector" "^29.5.0" + "jest-message-util" "^29.5.0" + "jest-resolve" "^29.5.0" + "jest-runtime" "^29.5.0" + "jest-util" "^29.5.0" + "jest-watcher" "^29.5.0" + "jest-worker" "^29.5.0" + "p-limit" "^3.1.0" + "source-map-support" "0.5.13" + +"jest-runtime@^29.5.0": + "integrity" "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==" + "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/globals" "^29.5.0" + "@jest/source-map" "^29.4.3" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/node" "*" + "chalk" "^4.0.0" + "cjs-module-lexer" "^1.0.0" + "collect-v8-coverage" "^1.0.0" + "glob" "^7.1.3" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^29.5.0" + "jest-message-util" "^29.5.0" + "jest-mock" "^29.5.0" + "jest-regex-util" "^29.4.3" + "jest-resolve" "^29.5.0" + "jest-snapshot" "^29.5.0" + "jest-util" "^29.5.0" + "slash" "^3.0.0" + "strip-bom" "^4.0.0" + +"jest-serializer@^27.0.6": + "integrity" "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==" + "resolved" "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@types/node" "*" + "graceful-fs" "^4.2.9" + +"jest-snapshot@^29.5.0": + "integrity" "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==" + "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/babel__traverse" "^7.0.6" + "@types/prettier" "^2.1.5" + "babel-preset-current-node-syntax" "^1.0.0" + "chalk" "^4.0.0" + "expect" "^29.5.0" + "graceful-fs" "^4.2.9" + "jest-diff" "^29.5.0" + "jest-get-type" "^29.4.3" + "jest-matcher-utils" "^29.5.0" + "jest-message-util" "^29.5.0" + "jest-util" "^29.5.0" + "natural-compare" "^1.4.0" + "pretty-format" "^29.5.0" + "semver" "^7.3.5" + +"jest-util@^27.2.0": + "integrity" "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==" + "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@jest/types" "^27.5.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": + "integrity" "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==" + "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "graceful-fs" "^4.2.9" + "picomatch" "^2.2.3" + +"jest-validate@^26.5.2": + "integrity" "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==" + "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz" + "version" "26.6.2" + dependencies: + "@jest/types" "^26.6.2" + "camelcase" "^6.0.0" + "chalk" "^4.0.0" + "jest-get-type" "^26.3.0" + "leven" "^3.1.0" + "pretty-format" "^26.6.2" + +"jest-validate@^29.5.0": + "integrity" "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==" + "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/types" "^29.5.0" + "camelcase" "^6.2.0" + "chalk" "^4.0.0" + "jest-get-type" "^29.4.3" + "leven" "^3.1.0" + "pretty-format" "^29.5.0" + +"jest-watcher@^29.5.0": + "integrity" "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==" + "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" + "@types/node" "*" + "ansi-escapes" "^4.2.1" + "chalk" "^4.0.0" + "emittery" "^0.13.1" + "jest-util" "^29.5.0" + "string-length" "^4.0.1" + +"jest-worker@^27.2.0": + "integrity" "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@types/node" "*" + "merge-stream" "^2.0.0" + "supports-color" "^8.0.0" + +"jest-worker@^29.5.0": + "integrity" "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@types/node" "*" + "jest-util" "^29.5.0" + "merge-stream" "^2.0.0" + "supports-color" "^8.0.0" + +"jest@^29.2.1": + "integrity" "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==" + "resolved" "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/core" "^29.5.0" + "@jest/types" "^29.5.0" + "import-local" "^3.0.2" + "jest-cli" "^29.5.0" + +"joi@^17.2.1": + "integrity" "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==" + "resolved" "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz" + "version" "17.9.2" + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +"js-sdsl@^4.1.4": + "integrity" "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==" + "resolved" "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" + "version" "4.3.0" + +"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.13.1": + "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + "version" "3.14.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"js-yaml@^4.1.0": + "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "argparse" "^2.0.1" + +"jsc-android@^250231.0.0": + "integrity" "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==" + "resolved" "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz" + "version" "250231.0.0" + +"jscodeshift@^0.13.1": + "integrity" "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==" + "resolved" "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz" + "version" "0.13.1" + dependencies: + "@babel/core" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/preset-flow" "^7.13.13" + "@babel/preset-typescript" "^7.13.0" + "@babel/register" "^7.13.16" + "babel-core" "^7.0.0-bridge.0" + "chalk" "^4.1.2" + "flow-parser" "0.*" + "graceful-fs" "^4.2.4" + "micromatch" "^3.1.10" + "neo-async" "^2.5.0" + "node-dir" "^0.1.17" + "recast" "^0.20.4" + "temp" "^0.8.4" + "write-file-atomic" "^2.3.0" + +"jsesc@^2.5.1": + "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + "version" "2.5.2" + +"jsesc@~0.5.0": + "integrity" "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + "version" "0.5.0" + +"json-parse-better-errors@^1.0.1": + "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "resolved" "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + "version" "1.0.2" + +"json-parse-even-better-errors@^2.3.0": + "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + "version" "2.3.1" + +"json-schema-traverse@^0.4.1": + "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json-stable-stringify-without-jsonify@^1.0.1": + "integrity" "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + "version" "1.0.1" + +"json5@^2.2.2": + "integrity" "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + "version" "2.2.3" + +"jsonfile@^4.0.0": + "integrity" "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + "version" "4.0.0" + optionalDependencies: + "graceful-fs" "^4.1.6" + +"jsx-ast-utils@^2.4.1 || ^3.0.0": + "integrity" "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==" + "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz" + "version" "3.3.3" + dependencies: + "array-includes" "^3.1.5" + "object.assign" "^4.1.3" + +"kind-of@^3.0.2": + "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "is-buffer" "^1.1.5" + +"kind-of@^3.0.3": + "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "is-buffer" "^1.1.5" + +"kind-of@^3.2.0": + "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "is-buffer" "^1.1.5" + +"kind-of@^4.0.0": + "integrity" "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "is-buffer" "^1.1.5" + +"kind-of@^5.0.0": + "integrity" "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + "version" "5.1.0" + +"kind-of@^6.0.0", "kind-of@^6.0.2": + "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + "version" "6.0.3" + +"kleur@^3.0.3": + "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + "version" "3.0.3" + +"leven@^3.1.0": + "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + "version" "3.1.0" + +"levn@^0.4.1": + "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "prelude-ls" "^1.2.1" + "type-check" "~0.4.0" + +"lines-and-columns@^1.1.6": + "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + "version" "1.2.4" + +"locate-path@^3.0.0": + "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" + +"locate-path@^5.0.0": + "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-locate" "^4.1.0" + +"locate-path@^6.0.0": + "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "p-locate" "^5.0.0" + +"lodash.debounce@^4.0.8": + "integrity" "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + "version" "4.0.8" + +"lodash.merge@^4.6.2": + "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + "version" "4.6.2" + +"lodash.throttle@^4.1.1": + "integrity" "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + "resolved" "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + "version" "4.1.1" + +"lodash@^4.17.21": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"log-symbols@^4.1.0": + "integrity" "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "chalk" "^4.1.0" + "is-unicode-supported" "^0.1.0" + +"logkitty@^0.7.1": + "integrity" "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==" + "resolved" "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz" + "version" "0.7.1" + dependencies: + "ansi-fragments" "^0.2.1" + "dayjs" "^1.8.15" + "yargs" "^15.1.0" + +"loose-envify@^1.0.0", "loose-envify@^1.1.0", "loose-envify@^1.4.0": + "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" + "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "js-tokens" "^3.0.0 || ^4.0.0" + +"lru-cache@^5.1.1": + "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "yallist" "^3.0.2" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + +"make-dir@^2.0.0", "make-dir@^2.1.0": + "integrity" "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "pify" "^4.0.1" + "semver" "^5.6.0" + +"make-dir@^3.0.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "semver" "^6.0.0" + +"makeerror@1.0.12": + "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==" + "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + "version" "1.0.12" + dependencies: + "tmpl" "1.0.5" + +"map-cache@^0.2.2": + "integrity" "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + "resolved" "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + "version" "0.2.2" + +"map-visit@^1.0.0": + "integrity" "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==" + "resolved" "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "object-visit" "^1.0.0" + +"memoize-one@^5.0.0": + "integrity" "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + "resolved" "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz" + "version" "5.2.1" + +"merge-options@^3.0.4": + "integrity" "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==" + "resolved" "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "is-plain-obj" "^2.1.0" + +"merge-stream@^2.0.0": + "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + "version" "2.0.0" + +"merge2@^1.3.0", "merge2@^1.4.1": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"metro-babel-transformer@0.73.9": + "integrity" "sha512-DlYwg9wwYIZTHtic7dyD4BP0SDftoltZ3clma76nHu43blMWsCnrImHeHsAVne3XsQ+RJaSRxhN5nkG2VyVHwA==" + "resolved" "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "@babel/core" "^7.20.0" + "hermes-parser" "0.8.0" + "metro-source-map" "0.73.9" + "nullthrows" "^1.1.1" + +"metro-cache-key@0.73.9": + "integrity" "sha512-uJg+6Al7UoGIuGfoxqPBy6y1Ewq7Y8/YapGYIDh6sohInwt/kYKnPZgLDYHIPvY2deORnQ/2CYo4tOeBTnhCXQ==" + "resolved" "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.73.9.tgz" + "version" "0.73.9" + +"metro-cache@0.73.9": + "integrity" "sha512-upiRxY8rrQkUWj7ieACD6tna7xXuXdu2ZqrheksT79ePI0aN/t0memf6WcyUtJUMHZetke3j+ppELNvlmp3tOw==" + "resolved" "https://registry.npmjs.org/metro-cache/-/metro-cache-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "metro-core" "0.73.9" + "rimraf" "^3.0.2" + +"metro-config@0.73.9": + "integrity" "sha512-NiWl1nkYtjqecDmw77tbRbXnzIAwdO6DXGZTuKSkH+H/c1NKq1eizO8Fe+NQyFtwR9YLqn8Q0WN1nmkwM1j8CA==" + "resolved" "https://registry.npmjs.org/metro-config/-/metro-config-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "cosmiconfig" "^5.0.5" + "jest-validate" "^26.5.2" + "metro" "0.73.9" + "metro-cache" "0.73.9" + "metro-core" "0.73.9" + "metro-runtime" "0.73.9" + +"metro-core@0.73.9": + "integrity" "sha512-1NTs0IErlKcFTfYyRT3ljdgrISWpl1nys+gaHkXapzTSpvtX9F1NQNn5cgAuE+XIuTJhbsCdfIJiM2JXbrJQaQ==" + "resolved" "https://registry.npmjs.org/metro-core/-/metro-core-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "lodash.throttle" "^4.1.1" + "metro-resolver" "0.73.9" + +"metro-file-map@0.73.9": + "integrity" "sha512-R/Wg3HYeQhYY3ehWtfedw8V0ne4lpufG7a21L3GWer8tafnC9pmjoCKEbJz9XZkVj9i1FtxE7UTbrtZNeIILxQ==" + "resolved" "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "abort-controller" "^3.0.0" + "anymatch" "^3.0.3" + "debug" "^2.2.0" + "fb-watchman" "^2.0.0" + "graceful-fs" "^4.2.4" + "invariant" "^2.2.4" + "jest-regex-util" "^27.0.6" + "jest-serializer" "^27.0.6" + "jest-util" "^27.2.0" + "jest-worker" "^27.2.0" + "micromatch" "^4.0.4" + "nullthrows" "^1.1.1" + "walker" "^1.0.7" + optionalDependencies: + "fsevents" "^2.3.2" + +"metro-hermes-compiler@0.73.9": + "integrity" "sha512-5B3vXIwQkZMSh3DQQY23XpTCpX9kPLqZbA3rDuAcbGW0tzC3f8dCenkyBb0GcCzyTDncJeot/A7oVCVK6zapwg==" + "resolved" "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.73.9.tgz" + "version" "0.73.9" + +"metro-inspector-proxy@0.73.9": + "integrity" "sha512-B3WrWZnlYhtTrv0IaX3aUAhi2qVILPAZQzb5paO1e+xrz4YZHk9c7dXv7qe7B/IQ132e3w46y3AL7rFo90qVjA==" + "resolved" "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "connect" "^3.6.5" + "debug" "^2.2.0" + "ws" "^7.5.1" + "yargs" "^17.5.1" + +"metro-minify-terser@0.73.9": + "integrity" "sha512-MTGPu2qV5qtzPJ2SqH6s58awHDtZ4jd7lmmLR+7TXDwtZDjIBA0YVfI0Zak2Haby2SqoNKrhhUns/b4dPAQAVg==" + "resolved" "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "terser" "^5.15.0" + +"metro-minify-uglify@0.73.9": + "integrity" "sha512-gzxD/7WjYcnCNGiFJaA26z34rjOp+c/Ft++194Wg91lYep3TeWQ0CnH8t2HRS7AYDHU81SGWgvD3U7WV0g4LGA==" + "resolved" "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "uglify-es" "^3.1.9" + +"metro-react-native-babel-preset@^0.76.4": + "integrity" "sha512-BKyfPz7mn3ncgRjqi8Z9nYLbzuuiBWns2AAEIGctQdz9OMMAisPlZmWscv09UjhPXkQc/XtToFETVN7fmHMfug==" + "resolved" "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.4.tgz" + "version" "0.76.4" + 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.73.9": + "integrity" "sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw==" + "resolved" "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz" + "version" "0.73.9" + 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-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-template-literals" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + "react-refresh" "^0.4.0" + +"metro-react-native-babel-transformer@0.73.9": + "integrity" "sha512-DSdrEHuQ22ixY7DyipyKkIcqhOJrt5s6h6X7BYJCP9AMUfXOwLe2biY3BcgJz5GOXv8/Akry4vTCvQscVS1otQ==" + "resolved" "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "@babel/core" "^7.20.0" + "babel-preset-fbjs" "^3.4.0" + "hermes-parser" "0.8.0" + "metro-babel-transformer" "0.73.9" + "metro-react-native-babel-preset" "0.73.9" + "metro-source-map" "0.73.9" + "nullthrows" "^1.1.1" + +"metro-resolver@0.73.9": + "integrity" "sha512-Ej3wAPOeNRPDnJmkK0zk7vJ33iU07n+oPhpcf5L0NFkWneMmSM2bflMPibI86UjzZGmRfn0AhGhs8yGeBwQ/Xg==" + "resolved" "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "absolute-path" "^0.0.0" + +"metro-runtime@0.73.9": + "integrity" "sha512-d5Hs83FpKB9r8q8Vb95+fa6ESpwysmPr4lL1I2rM2qXAFiO7OAPT9Bc23WmXgidkBtD0uUFdB2lG+H1ATz8rZg==" + "resolved" "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "@babel/runtime" "^7.0.0" + "react-refresh" "^0.4.0" + +"metro-source-map@0.73.9": + "integrity" "sha512-l4VZKzdqafipriETYR6lsrwtavCF1+CMhCOY9XbyWeTrpGSNgJQgdeJpttzEZTHQQTLR0csQo0nD1ef3zEP6IQ==" + "resolved" "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + "invariant" "^2.2.4" + "metro-symbolicate" "0.73.9" + "nullthrows" "^1.1.1" + "ob1" "0.73.9" + "source-map" "^0.5.6" + "vlq" "^1.0.0" + +"metro-symbolicate@0.73.9": + "integrity" "sha512-4TUOwxRHHqbEHxRqRJ3wZY5TA8xq7AHMtXrXcjegMH9FscgYztsrIG9aNBUBS+VLB6g1qc6BYbfIgoAnLjCDyw==" + "resolved" "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "invariant" "^2.2.4" + "metro-source-map" "0.73.9" + "nullthrows" "^1.1.1" + "source-map" "^0.5.6" + "through2" "^2.0.1" + "vlq" "^1.0.0" + +"metro-transform-plugins@0.73.9": + "integrity" "sha512-r9NeiqMngmooX2VOKLJVQrMuV7PAydbqst5bFhdVBPcFpZkxxqyzjzo+kzrszGy2UpSQBZr2P1L6OMjLHwQwfQ==" + "resolved" "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + "nullthrows" "^1.1.1" + +"metro-transform-worker@0.73.9": + "integrity" "sha512-Rq4b489sIaTUENA+WCvtu9yvlT/C6zFMWhU4sq+97W29Zj0mPBjdk+qGT5n1ZBgtBIJzZWt1KxeYuc17f4aYtQ==" + "resolved" "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.73.9.tgz" + "version" "0.73.9" + 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.73.9" + "metro-babel-transformer" "0.73.9" + "metro-cache" "0.73.9" + "metro-cache-key" "0.73.9" + "metro-hermes-compiler" "0.73.9" + "metro-source-map" "0.73.9" + "metro-transform-plugins" "0.73.9" + "nullthrows" "^1.1.1" + +"metro@0.73.9": + "integrity" "sha512-BlYbPmTF60hpetyNdKhdvi57dSqutb+/oK0u3ni4emIh78PiI0axGo7RfdsZ/mn3saASXc94tDbpC5yn7+NpEg==" + "resolved" "https://registry.npmjs.org/metro/-/metro-0.73.9.tgz" + "version" "0.73.9" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/parser" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + "absolute-path" "^0.0.0" + "accepts" "^1.3.7" + "async" "^3.2.2" + "chalk" "^4.0.0" + "ci-info" "^2.0.0" + "connect" "^3.6.5" + "debug" "^2.2.0" + "denodeify" "^1.2.1" + "error-stack-parser" "^2.0.6" + "graceful-fs" "^4.2.4" + "hermes-parser" "0.8.0" + "image-size" "^0.6.0" + "invariant" "^2.2.4" + "jest-worker" "^27.2.0" + "lodash.throttle" "^4.1.1" + "metro-babel-transformer" "0.73.9" + "metro-cache" "0.73.9" + "metro-cache-key" "0.73.9" + "metro-config" "0.73.9" + "metro-core" "0.73.9" + "metro-file-map" "0.73.9" + "metro-hermes-compiler" "0.73.9" + "metro-inspector-proxy" "0.73.9" + "metro-minify-terser" "0.73.9" + "metro-minify-uglify" "0.73.9" + "metro-react-native-babel-preset" "0.73.9" + "metro-resolver" "0.73.9" + "metro-runtime" "0.73.9" + "metro-source-map" "0.73.9" + "metro-symbolicate" "0.73.9" + "metro-transform-plugins" "0.73.9" + "metro-transform-worker" "0.73.9" + "mime-types" "^2.1.27" + "node-fetch" "^2.2.0" + "nullthrows" "^1.1.1" + "rimraf" "^3.0.2" + "serialize-error" "^2.1.0" + "source-map" "^0.5.6" + "strip-ansi" "^6.0.0" + "temp" "0.8.3" + "throat" "^5.0.0" + "ws" "^7.5.1" + "yargs" "^17.5.1" + +"micromatch@^3.1.10": + "integrity" "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + "version" "3.1.10" + dependencies: + "arr-diff" "^4.0.0" + "array-unique" "^0.3.2" + "braces" "^2.3.1" + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "extglob" "^2.0.4" + "fragment-cache" "^0.2.1" + "kind-of" "^6.0.2" + "nanomatch" "^1.2.9" + "object.pick" "^1.3.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.2" + +"micromatch@^4.0.4": + "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + "version" "4.0.5" + dependencies: + "braces" "^3.0.2" + "picomatch" "^2.3.1" + +"mime-db@>= 1.43.0 < 2", "mime-db@1.52.0": + "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + "version" "1.52.0" + +"mime-types@^2.1.27", "mime-types@~2.1.34": + "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + "version" "2.1.35" + dependencies: + "mime-db" "1.52.0" + +"mime@^2.4.1": + "integrity" "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + "version" "2.6.0" + +"mime@1.6.0": + "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + "version" "1.6.0" + +"mimic-fn@^2.1.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"minimatch@^3.0.2", "minimatch@^3.0.4", "minimatch@^3.0.5", "minimatch@^3.1.1", "minimatch@^3.1.2": + "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist@^1.2.6": + "integrity" "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + "version" "1.2.8" + +"mixin-deep@^1.2.0": + "integrity" "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==" + "resolved" "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "for-in" "^1.0.2" + "is-extendable" "^1.0.1" + +"mkdirp@^0.5.1": + "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + "version" "0.5.6" + dependencies: + "minimist" "^1.2.6" + +"ms@2.0.0": + "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.1.3": + "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + "version" "2.1.3" + +"nanoid@^3.1.23": + "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" + "version" "3.3.4" + +"nanomatch@^1.2.9": + "integrity" "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==" + "resolved" "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + "version" "1.2.13" + dependencies: + "arr-diff" "^4.0.0" + "array-unique" "^0.3.2" + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "fragment-cache" "^0.2.1" + "is-windows" "^1.0.2" + "kind-of" "^6.0.2" + "object.pick" "^1.3.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"natural-compare-lite@^1.4.0": + "integrity" "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + "resolved" "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + "version" "1.4.0" + +"natural-compare@^1.4.0": + "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + "version" "1.4.0" + +"negotiator@0.6.3": + "integrity" "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + "version" "0.6.3" + +"neo-async@^2.5.0": + "integrity" "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "resolved" "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + "version" "2.6.2" + +"nice-try@^1.0.4": + "integrity" "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "resolved" "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + "version" "1.0.5" + +"nocache@^3.0.1": + "integrity" "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==" + "resolved" "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz" + "version" "3.0.4" + +"node-dir@^0.1.17": + "integrity" "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==" + "resolved" "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz" + "version" "0.1.17" + dependencies: + "minimatch" "^3.0.2" + +"node-fetch@^2.2.0", "node-fetch@^2.6.0": + "integrity" "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz" + "version" "2.6.11" + dependencies: + "whatwg-url" "^5.0.0" + +"node-int64@^0.4.0": + "integrity" "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + "version" "0.4.0" + +"node-notifier@^8.0.1 || ^9.0.0 || ^10.0.0": + "integrity" "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==" + "resolved" "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz" + "version" "10.0.1" + dependencies: + "growly" "^1.3.0" + "is-wsl" "^2.2.0" + "semver" "^7.3.5" + "shellwords" "^0.1.1" + "uuid" "^8.3.2" + "which" "^2.0.2" + +"node-releases@^2.0.8": + "integrity" "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz" + "version" "2.0.10" + +"node-stream-zip@^1.9.1": + "integrity" "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==" + "resolved" "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz" + "version" "1.15.0" + +"normalize-path@^3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"npm-run-path@^2.0.0": + "integrity" "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "path-key" "^2.0.0" + +"npm-run-path@^4.0.1": + "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "path-key" "^3.0.0" + +"nullthrows@^1.1.1": + "integrity" "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + "resolved" "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" + "version" "1.1.1" + +"ob1@0.73.9": + "integrity" "sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw==" + "resolved" "https://registry.npmjs.org/ob1/-/ob1-0.73.9.tgz" + "version" "0.73.9" + +"object-assign@^4.1.1": + "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-copy@^0.1.0": + "integrity" "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==" + "resolved" "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + "version" "0.1.0" + dependencies: + "copy-descriptor" "^0.1.0" + "define-property" "^0.2.5" + "kind-of" "^3.0.3" + +"object-inspect@^1.12.3", "object-inspect@^1.9.0": + "integrity" "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" + "version" "1.12.3" + +"object-keys@^1.1.1": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"object-visit@^1.0.0": + "integrity" "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==" + "resolved" "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "isobject" "^3.0.0" + +"object.assign@^4.1.3", "object.assign@^4.1.4": + "integrity" "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" + "version" "4.1.4" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "has-symbols" "^1.0.3" + "object-keys" "^1.1.1" + +"object.entries@^1.1.6": + "integrity" "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==" + "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz" + "version" "1.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"object.fromentries@^2.0.6": + "integrity" "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==" + "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz" + "version" "2.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"object.hasown@^1.1.2": + "integrity" "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==" + "resolved" "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"object.pick@^1.3.0": + "integrity" "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==" + "resolved" "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "isobject" "^3.0.1" + +"object.values@^1.1.6": + "integrity" "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==" + "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz" + "version" "1.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"on-finished@~2.3.0": + "integrity" "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ee-first" "1.1.1" + +"on-finished@2.4.1": + "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + "version" "2.4.1" + dependencies: + "ee-first" "1.1.1" + +"on-headers@~1.0.2": + "integrity" "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "resolved" "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + "version" "1.0.2" + +"once@^1.3.0", "once@^1.3.1", "once@^1.4.0": + "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^5.1.0", "onetime@^5.1.2": + "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "mimic-fn" "^2.1.0" + +"open@^6.2.0": + "integrity" "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==" + "resolved" "https://registry.npmjs.org/open/-/open-6.4.0.tgz" + "version" "6.4.0" + dependencies: + "is-wsl" "^1.1.0" + +"optionator@^0.9.1": + "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + "version" "0.9.1" + dependencies: + "deep-is" "^0.1.3" + "fast-levenshtein" "^2.0.6" + "levn" "^0.4.1" + "prelude-ls" "^1.2.1" + "type-check" "^0.4.0" + "word-wrap" "^1.2.3" + +"ora@^5.4.1": + "integrity" "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==" + "resolved" "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" + "version" "5.4.1" + dependencies: + "bl" "^4.1.0" + "chalk" "^4.1.0" + "cli-cursor" "^3.1.0" + "cli-spinners" "^2.5.0" + "is-interactive" "^1.0.0" + "is-unicode-supported" "^0.1.0" + "log-symbols" "^4.1.0" + "strip-ansi" "^6.0.0" + "wcwidth" "^1.0.1" + +"os-tmpdir@^1.0.0": + "integrity" "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" + "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "version" "1.0.2" + +"p-finally@^1.0.0": + "integrity" "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" + "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + "version" "1.0.0" + +"p-limit@^2.0.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" + +"p-limit@^2.2.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" + +"p-limit@^3.0.2", "p-limit@^3.1.0": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" + +"p-locate@^3.0.0": + "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-limit" "^2.0.0" + +"p-locate@^4.1.0": + "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "p-limit" "^2.2.0" + +"p-locate@^5.0.0": + "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-limit" "^3.0.2" + +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" + +"parent-module@^1.0.0": + "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" + "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "callsites" "^3.0.0" + +"parse-json@^4.0.0": + "integrity" "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "error-ex" "^1.3.1" + "json-parse-better-errors" "^1.0.1" + +"parse-json@^5.2.0": + "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "@babel/code-frame" "^7.0.0" + "error-ex" "^1.3.1" + "json-parse-even-better-errors" "^2.3.0" + "lines-and-columns" "^1.1.6" + +"parseurl@~1.3.3": + "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + "version" "1.3.3" + +"pascalcase@^0.1.1": + "integrity" "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" + "resolved" "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + "version" "0.1.1" + +"path-exists@^3.0.0": + "integrity" "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-key@^2.0.0", "path-key@^2.0.1": + "integrity" "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + "version" "2.0.1" + +"path-key@^3.0.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-parse@^1.0.7": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"path-type@^4.0.0": + "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + "version" "4.0.0" + +"picocolors@^1.0.0": + "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + "version" "1.0.0" + +"picomatch@^2.0.4", "picomatch@^2.2.3", "picomatch@^2.3.1": + "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + "version" "2.3.1" + +"pify@^4.0.1": + "integrity" "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "resolved" "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + "version" "4.0.1" + +"pirates@^4.0.4", "pirates@^4.0.5": + "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + "version" "4.0.5" + +"pkg-dir@^3.0.0": + "integrity" "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "find-up" "^3.0.0" + +"pkg-dir@^4.2.0": + "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "find-up" "^4.0.0" + +"posix-character-classes@^0.1.0": + "integrity" "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" + "resolved" "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + "version" "0.1.1" + +"prelude-ls@^1.2.1": + "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + "version" "1.2.1" + +"prettier-linter-helpers@^1.0.0": + "integrity" "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==" + "resolved" "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "fast-diff" "^1.1.2" + +"prettier@^2.8.8", "prettier@>=2", "prettier@>=2.0.0": + "integrity" "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + "version" "2.8.8" + +"pretty-format@^26.5.2": + "integrity" "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==" + "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" + "version" "26.6.2" + dependencies: + "@jest/types" "^26.6.2" + "ansi-regex" "^5.0.0" + "ansi-styles" "^4.0.0" + "react-is" "^17.0.1" + +"pretty-format@^26.6.2": + "integrity" "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==" + "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" + "version" "26.6.2" + dependencies: + "@jest/types" "^26.6.2" + "ansi-regex" "^5.0.0" + "ansi-styles" "^4.0.0" + "react-is" "^17.0.1" + +"pretty-format@^29.0.0", "pretty-format@^29.5.0": + "integrity" "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==" + "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz" + "version" "29.5.0" + dependencies: + "@jest/schemas" "^29.4.3" + "ansi-styles" "^5.0.0" + "react-is" "^18.0.0" + +"process-nextick-args@~2.0.0": + "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + "version" "2.0.1" + +"promise@^8.3.0": + "integrity" "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==" + "resolved" "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" + "version" "8.3.0" + dependencies: + "asap" "~2.0.6" + +"prompts@^2.0.1", "prompts@^2.4.0": + "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==" + "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "kleur" "^3.0.3" + "sisteransi" "^1.0.5" + +"prop-types@*", "prop-types@^15.7.2", "prop-types@^15.8.1": + "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" + "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + "version" "15.8.1" + dependencies: + "loose-envify" "^1.4.0" + "object-assign" "^4.1.1" + "react-is" "^16.13.1" + +"pump@^3.0.0": + "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" + "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + +"punycode@^2.1.0": + "integrity" "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" + "version" "2.3.0" + +"pure-rand@^6.0.0": + "integrity" "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==" + "resolved" "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz" + "version" "6.0.1" + +"query-string@^7.1.3": + "integrity" "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==" + "resolved" "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz" + "version" "7.1.3" + dependencies: + "decode-uri-component" "^0.2.2" + "filter-obj" "^1.1.0" + "split-on-first" "^1.0.0" + "strict-uri-encode" "^2.0.0" + +"queue-microtask@^1.2.2": + "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + "version" "1.2.3" + +"range-parser@~1.2.1": + "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + "version" "1.2.1" + +"react-devtools-core@^4.26.1": + "integrity" "sha512-8SzmIkpO87alD7Xr6gWIEa1jHkMjawOZ+6egjazlnjB4UUcbnzGDf/vBJ4BzGuWWEM+pzrxuzsPpcMqlQkYK2g==" + "resolved" "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.2.tgz" + "version" "4.27.2" + dependencies: + "shell-quote" "^1.6.1" + "ws" "^7" + +"react-freeze@^1.0.0": + "integrity" "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==" + "resolved" "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz" + "version" "1.0.3" + +"react-hook-form@^7.43.9": + "integrity" "sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ==" + "resolved" "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.43.9.tgz" + "version" "7.43.9" + +"react-i18next@^12.2.2": + "integrity" "sha512-KBB6buBmVKXUWNxXHdnthp+38gPyBT46hJCAIQ8rX19NFL/m2ahte2KARfIDf2tMnSAL7wwck6eDOd/9zn6aFg==" + "resolved" "https://registry.npmjs.org/react-i18next/-/react-i18next-12.2.2.tgz" + "version" "12.2.2" + dependencies: + "@babel/runtime" "^7.20.6" + "html-parse-stringify" "^3.0.1" + +"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", "react-is@^18.0.0", "react-is@^18.2.0": + "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" + "version" "18.2.0" + +"react-is@^16.13.0": + "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + "version" "16.13.1" + +"react-is@^16.13.1": + "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + "version" "16.13.1" + +"react-is@^16.7.0": + "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + "version" "16.13.1" + +"react-is@^17.0.1": + "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + "version" "17.0.2" + +"react-native-codegen@^0.71.5": + "integrity" "sha512-rfsuc0zkuUuMjFnrT55I1mDZ+pBRp2zAiRwxck3m6qeGJBGK5OV5JH66eDQ4aa+3m0of316CqrJDRzVlYufzIg==" + "resolved" "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.71.5.tgz" + "version" "0.71.5" + dependencies: + "@babel/parser" "^7.14.0" + "flow-parser" "^0.185.0" + "jscodeshift" "^0.13.1" + "nullthrows" "^1.1.1" + +"react-native-config@^1.5.1": + "integrity" "sha512-g1xNgt1tV95FCX+iWz6YJonxXkQX0GdD3fB8xQtR1GUBEqweB9zMROW77gi2TygmYmUkBI7LU4pES+zcTyK4HA==" + "resolved" "https://registry.npmjs.org/react-native-config/-/react-native-config-1.5.1.tgz" + "version" "1.5.1" + +"react-native-device-info@^10.6.0": + "integrity" "sha512-/MmINdojWdw2/9rwYpH/dX+1gFP0o78p8yYPjwxiPhoySSL2rZaNi+Mq9VwC+zFi/yQmJUvHntkKSw2KUc7rFw==" + "resolved" "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.6.0.tgz" + "version" "10.6.0" + +"react-native-dropdown-picker@^5.4.6": + "integrity" "sha512-T1XBHbE++M6aRU3wFYw3MvcOuabhWZ29RK/Ivdls2r1ZkZ62iEBZknLUPeVLMX3x6iUxj4Zgr3X2DGlEGXeHsA==" + "resolved" "https://registry.npmjs.org/react-native-dropdown-picker/-/react-native-dropdown-picker-5.4.6.tgz" + "version" "5.4.6" + +"react-native-gesture-handler@^2.10.0", "react-native-gesture-handler@> 1.0.0", "react-native-gesture-handler@>= 1.0.0": + "integrity" "sha512-vuNupfa8+6MAUMgbZMk5jSxrmqWyNnR/gR77/iuhdx6cPg1z2MJeeJNmqEtKQcF0InvHp45dOoyRK62peqTJ3Q==" + "resolved" "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.10.0.tgz" + "version" "2.10.0" + dependencies: + "@egjs/hammerjs" "^2.0.17" + "hoist-non-react-statics" "^3.3.0" + "invariant" "^2.2.4" + "lodash" "^4.17.21" + "prop-types" "^15.7.2" + +"react-native-gradle-plugin@^0.71.18": + "integrity" "sha512-7F6bD7B8Xsn3JllxcwHhFcsl9aHIig47+3eN4IHFNqfLhZr++3ElDrcqfMzugM+niWbaMi7bJ0kAkAL8eCpdWg==" + "resolved" "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.18.tgz" + "version" "0.71.18" + +"react-native-localize@^3.0.0": + "integrity" "sha512-B8taYRLuLIYDzBTKIglA3K6ntjaEwbk6mwQ72ogZYl5ovM00NnpbiZ3sRq8KRVe/V1NGczxT33uVqG6BUWGWhg==" + "resolved" "https://registry.npmjs.org/react-native-localize/-/react-native-localize-3.0.0.tgz" + "version" "3.0.0" + +"react-native-modalize@^2.1.1": + "integrity" "sha512-4/7EZWsrUqAAkkAVEnOsSdpAPQaEBewX7TvwFuzgvGDzxKpq3O58I9SnSeU8QtG/r91XYHJNaU5dAuDrcLjUaQ==" + "resolved" "https://registry.npmjs.org/react-native-modalize/-/react-native-modalize-2.1.1.tgz" + "version" "2.1.1" + +"react-native-paper@^5.7.2": + "integrity" "sha512-v4py1Zx2OuZ85Pk4K0+0vOIi/VcfkufbXofiXsxVN/HMGd+YeShTITq8aK3p/zuq9qm5OlzxoHga7xA7D51CIQ==" + "resolved" "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.7.2.tgz" + "version" "5.7.2" + dependencies: + "@callstack/react-theme-provider" "^3.0.8" + "color" "^3.1.2" + "use-latest-callback" "^0.1.5" + +"react-native-reanimated@^3.1.0", "react-native-reanimated@>= 1.0.0": + "integrity" "sha512-8YJR7yHnrqK6yKWzkGLVEawi1WZqJ9bGIehKEnE8zG58yLrSwUZe1T220XTbftpkA3r37Sy0kJJ/HOOiaIU+HQ==" + "resolved" "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "@babel/plugin-transform-object-assign" "^7.16.7" + "@babel/preset-typescript" "^7.16.7" + "convert-source-map" "^2.0.0" + "invariant" "^2.2.4" + +"react-native-safe-area-context@*", "react-native-safe-area-context@^4.5.2", "react-native-safe-area-context@>= 3.0.0": + "integrity" "sha512-oH4/Dm7/PWOOZtFRiA4HE08lsfA948BRq8Fn7TEndYjoDXFoNdbjQRahXzCV8JGP/tv3qrVNeaDE8rmdRRUOlA==" + "resolved" "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.2.tgz" + "version" "4.5.2" + +"react-native-screens@*", "react-native-screens@>= 3.0.0": + "integrity" "sha512-joWUKWAVHxymP3mL9gYApFHAsbd9L6ZcmpoZa6Sl3W/82bvvNVMqcfP7MeNqVCg73qZ8yL4fW+J/syusHleUgg==" + "resolved" "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.20.0.tgz" + "version" "3.20.0" + dependencies: + "react-freeze" "^1.0.0" + "warn-once" "^0.1.0" + +"react-native-vector-icons@*", "react-native-vector-icons@^9.2.0": + "integrity" "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==" + "resolved" "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz" + "version" "9.2.0" + dependencies: + "prop-types" "^15.7.2" + "yargs" "^16.1.1" + +"react-native@*", "react-native@^0.0.0-0 || 0.60 - 0.72 || 1000.0.0", "react-native@^0.71.8", "react-native@> 0.50.0", "react-native@>=0.70.0": + "integrity" "sha512-ftMAuhpgTkbHU9brrqsEyxcNrpYvXKeATY+if22Nfhhg1zW+6wn95w9otwTnA3xHkljPCbng8mUhmmERjGEl7g==" + "resolved" "https://registry.npmjs.org/react-native/-/react-native-0.71.8.tgz" + "version" "0.71.8" + dependencies: + "@jest/create-cache-key-function" "^29.2.1" + "@react-native-community/cli" "10.2.2" + "@react-native-community/cli-platform-android" "10.2.0" + "@react-native-community/cli-platform-ios" "10.2.1" + "@react-native/assets" "1.0.0" + "@react-native/normalize-color" "2.1.0" + "@react-native/polyfills" "2.0.0" + "abort-controller" "^3.0.0" + "anser" "^1.4.9" + "base64-js" "^1.1.2" + "deprecated-react-native-prop-types" "^3.0.1" + "event-target-shim" "^5.0.1" + "invariant" "^2.2.4" + "jest-environment-node" "^29.2.1" + "jsc-android" "^250231.0.0" + "memoize-one" "^5.0.0" + "metro-react-native-babel-transformer" "0.73.9" + "metro-runtime" "0.73.9" + "metro-source-map" "0.73.9" + "mkdirp" "^0.5.1" + "nullthrows" "^1.1.1" + "pretty-format" "^26.5.2" + "promise" "^8.3.0" + "react-devtools-core" "^4.26.1" + "react-native-codegen" "^0.71.5" + "react-native-gradle-plugin" "^0.71.18" + "react-refresh" "^0.4.0" + "react-shallow-renderer" "^16.15.0" + "regenerator-runtime" "^0.13.2" + "scheduler" "^0.23.0" + "stacktrace-parser" "^0.1.3" + "use-sync-external-store" "^1.0.0" + "whatwg-fetch" "^3.0.0" + "ws" "^6.2.2" + +"react-refresh@^0.4.0": + "integrity" "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==" + "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz" + "version" "0.4.3" + +"react-shallow-renderer@^16.15.0": + "integrity" "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==" + "resolved" "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz" + "version" "16.15.0" + dependencies: + "object-assign" "^4.1.1" + "react-is" "^16.12.0 || ^17.0.0 || ^18.0.0" + +"react-test-renderer@18.2.0": + "integrity" "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==" + "resolved" "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz" + "version" "18.2.0" + dependencies: + "react-is" "^18.2.0" + "react-shallow-renderer" "^16.15.0" + "scheduler" "^0.23.0" + +"react@*", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17 || ^18", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^18.2.0", "react@> 15.0.0", "react@>= 16.8.0", "react@>=16.3.0", "react@>=17.0.0", "react@>=18.1.0", "react@18.2.0": + "integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==" + "resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz" + "version" "18.2.0" + dependencies: + "loose-envify" "^1.1.0" + +"readable-stream@^3.4.0": + "integrity" "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + "version" "3.6.2" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@~2.3.6": + "integrity" "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + "version" "2.3.8" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"readline@^1.3.0": + "integrity" "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==" + "resolved" "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz" + "version" "1.3.0" + +"recast@^0.20.4": + "integrity" "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==" + "resolved" "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz" + "version" "0.20.5" + dependencies: + "ast-types" "0.14.2" + "esprima" "~4.0.0" + "source-map" "~0.6.1" + "tslib" "^2.0.1" + +"regenerate-unicode-properties@^10.1.0": + "integrity" "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==" + "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz" + "version" "10.1.0" + dependencies: + "regenerate" "^1.4.2" + +"regenerate@^1.4.2": + "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + "version" "1.4.2" + +"regenerator-runtime@^0.13.11", "regenerator-runtime@^0.13.2": + "integrity" "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + "version" "0.13.11" + +"regenerator-transform@^0.15.1": + "integrity" "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==" + "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz" + "version" "0.15.1" + dependencies: + "@babel/runtime" "^7.8.4" + +"regex-not@^1.0.0", "regex-not@^1.0.2": + "integrity" "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==" + "resolved" "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "extend-shallow" "^3.0.2" + "safe-regex" "^1.1.0" + +"regexp.prototype.flags@^1.4.3": + "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==" + "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + "version" "1.4.3" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "functions-have-names" "^1.2.2" + +"regexpu-core@^5.3.1": + "integrity" "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==" + "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" + "version" "5.3.2" + dependencies: + "@babel/regjsgen" "^0.8.0" + "regenerate" "^1.4.2" + "regenerate-unicode-properties" "^10.1.0" + "regjsparser" "^0.9.1" + "unicode-match-property-ecmascript" "^2.0.0" + "unicode-match-property-value-ecmascript" "^2.1.0" + +"regjsparser@^0.9.1": + "integrity" "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==" + "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + "version" "0.9.1" + dependencies: + "jsesc" "~0.5.0" + +"repeat-element@^1.1.2": + "integrity" "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + "resolved" "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" + "version" "1.1.4" + +"repeat-string@^1.6.1": + "integrity" "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + "resolved" "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + "version" "1.6.1" + +"require-directory@^2.1.1": + "integrity" "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-main-filename@^2.0.0": + "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + "version" "2.0.0" + +"resolve-cwd@^3.0.0": + "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" + "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "resolve-from" "^5.0.0" + +"resolve-from@^3.0.0": + "integrity" "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + "version" "3.0.0" + +"resolve-from@^4.0.0": + "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + "version" "4.0.0" + +"resolve-from@^5.0.0": + "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + "version" "5.0.0" + +"resolve-url@^0.2.1": + "integrity" "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" + "resolved" "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + "version" "0.2.1" + +"resolve.exports@^2.0.0": + "integrity" "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==" + "resolved" "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz" + "version" "2.0.1" + +"resolve@^1.14.2", "resolve@^1.20.0": + "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + "version" "1.22.1" + dependencies: + "is-core-module" "^2.9.0" + "path-parse" "^1.0.7" + "supports-preserve-symlinks-flag" "^1.0.0" + +"resolve@^2.0.0-next.4": + "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" + "version" "2.0.0-next.4" + dependencies: + "is-core-module" "^2.9.0" + "path-parse" "^1.0.7" + "supports-preserve-symlinks-flag" "^1.0.0" + +"restore-cursor@^3.1.0": + "integrity" "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "onetime" "^5.1.0" + "signal-exit" "^3.0.2" + +"ret@~0.1.10": + "integrity" "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "resolved" "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + "version" "0.1.15" + +"reusify@^1.0.4": + "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + "version" "1.0.4" + +"rimraf@^3.0.2": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" + +"rimraf@~2.2.6": + "integrity" "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + "version" "2.2.8" + +"rimraf@~2.6.2": + "integrity" "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + "version" "2.6.3" + dependencies: + "glob" "^7.1.3" + +"run-parallel@^1.1.9": + "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "queue-microtask" "^1.2.2" + +"safe-buffer@~5.1.0", "safe-buffer@~5.1.1", "safe-buffer@5.1.2": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-buffer@~5.2.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safe-regex-test@^1.0.0": + "integrity" "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==" + "resolved" "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.3" + "is-regex" "^1.1.4" + +"safe-regex@^1.1.0": + "integrity" "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==" + "resolved" "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "ret" "~0.1.10" + +"scheduler@^0.23.0": + "integrity" "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==" + "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" + "version" "0.23.0" + dependencies: + "loose-envify" "^1.1.0" + +"semver@^5.5.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^5.6.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^6.0.0", "semver@^6.1.1", "semver@^6.1.2", "semver@^6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.3.5": + "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + "version" "7.3.8" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.7": + "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + "version" "7.3.8" + dependencies: + "lru-cache" "^6.0.0" + +"send@0.18.0": + "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" + "resolved" "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + "version" "0.18.0" + dependencies: + "debug" "2.6.9" + "depd" "2.0.0" + "destroy" "1.2.0" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "fresh" "0.5.2" + "http-errors" "2.0.0" + "mime" "1.6.0" + "ms" "2.1.3" + "on-finished" "2.4.1" + "range-parser" "~1.2.1" + "statuses" "2.0.1" + +"serialize-error@^2.1.0": + "integrity" "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==" + "resolved" "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz" + "version" "2.1.0" + +"serve-static@^1.13.1": + "integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==" + "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + "version" "1.15.0" + dependencies: + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "parseurl" "~1.3.3" + "send" "0.18.0" + +"set-blocking@^2.0.0": + "integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + +"set-value@^2.0.0", "set-value@^2.0.1": + "integrity" "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==" + "resolved" "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "extend-shallow" "^2.0.1" + "is-extendable" "^0.1.1" + "is-plain-object" "^2.0.3" + "split-string" "^3.0.1" + +"setprototypeof@1.2.0": + "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + "version" "1.2.0" + +"shallow-clone@^3.0.0": + "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==" + "resolved" "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "kind-of" "^6.0.2" + +"shebang-command@^1.2.0": + "integrity" "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "shebang-regex" "^1.0.0" + +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^1.0.0": + "integrity" "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + "version" "1.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"shell-quote@^1.6.1", "shell-quote@^1.7.3": + "integrity" "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==" + "resolved" "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz" + "version" "1.8.0" + +"shellwords@^0.1.1": + "integrity" "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + "resolved" "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" + "version" "0.1.1" + +"side-channel@^1.0.4": + "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" + "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.0" + "get-intrinsic" "^1.0.2" + "object-inspect" "^1.9.0" + +"signal-exit@^3.0.0", "signal-exit@^3.0.2", "signal-exit@^3.0.3", "signal-exit@^3.0.7": + "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + "version" "3.0.7" + +"simple-swizzle@^0.2.2": + "integrity" "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==" + "resolved" "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + "version" "0.2.2" + dependencies: + "is-arrayish" "^0.3.1" + +"sisteransi@^1.0.5": + "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + "version" "1.0.5" + +"slash@^3.0.0": + "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + "version" "3.0.0" + +"slice-ansi@^2.0.0": + "integrity" "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==" + "resolved" "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "ansi-styles" "^3.2.0" + "astral-regex" "^1.0.0" + "is-fullwidth-code-point" "^2.0.0" + +"snapdragon-node@^2.0.1": + "integrity" "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==" + "resolved" "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "define-property" "^1.0.0" + "isobject" "^3.0.0" + "snapdragon-util" "^3.0.1" + +"snapdragon-util@^3.0.1": + "integrity" "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==" + "resolved" "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "kind-of" "^3.2.0" + +"snapdragon@^0.8.1": + "integrity" "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==" + "resolved" "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + "version" "0.8.2" + dependencies: + "base" "^0.11.1" + "debug" "^2.2.0" + "define-property" "^0.2.5" + "extend-shallow" "^2.0.1" + "map-cache" "^0.2.2" + "source-map" "^0.5.6" + "source-map-resolve" "^0.5.0" + "use" "^3.1.0" + +"source-map-resolve@^0.5.0": + "integrity" "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==" + "resolved" "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + "version" "0.5.3" + dependencies: + "atob" "^2.1.2" + "decode-uri-component" "^0.2.0" + "resolve-url" "^0.2.1" + "source-map-url" "^0.4.0" + "urix" "^0.1.0" + +"source-map-support@^0.5.16", "source-map-support@~0.5.20": + "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + "version" "0.5.21" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map-support@0.5.13": + "integrity" "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + "version" "0.5.13" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map-url@^0.4.0": + "integrity" "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "resolved" "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" + "version" "0.4.1" + +"source-map@^0.5.6": + "integrity" "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + "version" "0.5.7" + +"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.7.3": + "integrity" "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + "version" "0.7.4" + +"split-on-first@^1.0.0": + "integrity" "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + "resolved" "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" + "version" "1.1.0" + +"split-string@^3.0.1", "split-string@^3.0.2": + "integrity" "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==" + "resolved" "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "extend-shallow" "^3.0.0" + +"sprintf-js@~1.0.2": + "integrity" "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"stack-utils@^2.0.3": + "integrity" "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==" + "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" + "version" "2.0.6" + dependencies: + "escape-string-regexp" "^2.0.0" + +"stackframe@^1.3.4": + "integrity" "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + "resolved" "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" + "version" "1.3.4" + +"stacktrace-parser@^0.1.3": + "integrity" "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==" + "resolved" "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" + "version" "0.1.10" + dependencies: + "type-fest" "^0.7.1" + +"static-extend@^0.1.1": + "integrity" "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==" + "resolved" "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + "version" "0.1.2" + dependencies: + "define-property" "^0.2.5" + "object-copy" "^0.1.0" + +"statuses@~1.5.0": + "integrity" "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + "version" "1.5.0" + +"statuses@2.0.1": + "integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + "version" "2.0.1" + +"strict-uri-encode@^2.0.0": + "integrity" "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" + "resolved" "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" + "version" "2.0.0" + +"string_decoder@^1.1.1": + "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "safe-buffer" "~5.2.0" + +"string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + +"string-length@^4.0.1": + "integrity" "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==" + "resolved" "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "char-regex" "^1.0.2" + "strip-ansi" "^6.0.0" + +"string-natural-compare@^3.0.1": + "integrity" "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + "resolved" "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz" + "version" "3.0.1" + +"string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.3": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"string.prototype.matchall@^4.0.8": + "integrity" "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==" + "resolved" "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz" + "version" "4.0.8" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "get-intrinsic" "^1.1.3" + "has-symbols" "^1.0.3" + "internal-slot" "^1.0.3" + "regexp.prototype.flags" "^1.4.3" + "side-channel" "^1.0.4" + +"string.prototype.trim@^1.2.7": + "integrity" "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==" + "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz" + "version" "1.2.7" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"string.prototype.trimend@^1.0.6": + "integrity" "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==" + "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"string.prototype.trimstart@^1.0.6": + "integrity" "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==" + "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"strip-ansi@^5.0.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^5.2.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": + "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "ansi-regex" "^5.0.1" + +"strip-bom@^4.0.0": + "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + "version" "4.0.0" + +"strip-eof@^1.0.0": + "integrity" "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==" + "resolved" "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + "version" "1.0.0" + +"strip-final-newline@^2.0.0": + "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + "version" "2.0.0" + +"strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" + +"strnum@^1.0.5": + "integrity" "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + "resolved" "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" + "version" "1.0.5" + +"sudo-prompt@^9.0.0": + "integrity" "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" + "resolved" "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz" + "version" "9.2.1" + +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + +"supports-color@^8.0.0": + "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + "version" "8.1.1" + dependencies: + "has-flag" "^4.0.0" + +"supports-preserve-symlinks-flag@^1.0.0": + "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + "version" "1.0.0" + +"temp@^0.8.4": + "integrity" "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==" + "resolved" "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz" + "version" "0.8.4" + dependencies: + "rimraf" "~2.6.2" + +"temp@0.8.3": + "integrity" "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==" + "resolved" "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz" + "version" "0.8.3" + dependencies: + "os-tmpdir" "^1.0.0" + "rimraf" "~2.2.6" + +"terser@^5.15.0": + "integrity" "sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg==" + "resolved" "https://registry.npmjs.org/terser/-/terser-5.17.3.tgz" + "version" "5.17.3" + dependencies: + "@jridgewell/source-map" "^0.3.2" + "acorn" "^8.5.0" + "commander" "^2.20.0" + "source-map-support" "~0.5.20" + +"test-exclude@^6.0.0": + "integrity" "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==" + "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "@istanbuljs/schema" "^0.1.2" + "glob" "^7.1.4" + "minimatch" "^3.0.4" + +"text-table@^0.2.0": + "integrity" "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + "version" "0.2.0" + +"throat@^5.0.0": + "integrity" "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + "resolved" "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" + "version" "5.0.0" + +"through2@^2.0.1": + "integrity" "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==" + "resolved" "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "readable-stream" "~2.3.6" + "xtend" "~4.0.1" + +"tmpl@1.0.5": + "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + "version" "1.0.5" + +"to-fast-properties@^2.0.0": + "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" + +"to-object-path@^0.3.0": + "integrity" "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==" + "resolved" "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "kind-of" "^3.0.2" + +"to-regex-range@^2.1.0": + "integrity" "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "is-number" "^3.0.0" + "repeat-string" "^1.6.1" + +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "is-number" "^7.0.0" + +"to-regex@^3.0.1", "to-regex@^3.0.2": + "integrity" "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==" + "resolved" "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "regex-not" "^1.0.2" + "safe-regex" "^1.1.0" + +"toidentifier@1.0.1": + "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + "version" "1.0.1" + +"tr46@~0.0.3": + "integrity" "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + "version" "0.0.3" + +"tslib@^1.8.1": + "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + "version" "1.14.1" + +"tslib@^2.0.1": + "integrity" "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz" + "version" "2.5.0" + +"tsutils@^3.21.0": + "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" + "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + "version" "3.21.0" + dependencies: + "tslib" "^1.8.1" + +"type-check@^0.4.0", "type-check@~0.4.0": + "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + "version" "0.4.0" + dependencies: + "prelude-ls" "^1.2.1" + +"type-detect@4.0.8": + "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + "version" "4.0.8" + +"type-fest@^0.20.2": + "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + "version" "0.20.2" + +"type-fest@^0.21.3": + "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + "version" "0.21.3" + +"type-fest@^0.7.1": + "integrity" "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" + "version" "0.7.1" + +"typed-array-length@^1.0.4": + "integrity" "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==" + "resolved" "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.2" + "for-each" "^0.3.3" + "is-typed-array" "^1.1.9" + +"typescript@^5.0.4", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": + "integrity" "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz" + "version" "5.0.4" + +"uglify-es@^3.1.9": + "integrity" "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==" + "resolved" "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz" + "version" "3.3.9" + dependencies: + "commander" "~2.13.0" + "source-map" "~0.6.1" + +"unbox-primitive@^1.0.2": + "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" + "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + "has-bigints" "^1.0.2" + "has-symbols" "^1.0.3" + "which-boxed-primitive" "^1.0.2" + +"unicode-canonical-property-names-ecmascript@^2.0.0": + "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-match-property-ecmascript@^2.0.0": + "integrity" "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==" + "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "unicode-canonical-property-names-ecmascript" "^2.0.0" + "unicode-property-aliases-ecmascript" "^2.0.0" + +"unicode-match-property-value-ecmascript@^2.1.0": + "integrity" "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" + "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" + "version" "2.1.0" + +"unicode-property-aliases-ecmascript@^2.0.0": + "integrity" "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + "version" "2.1.0" + +"union-value@^1.0.0": + "integrity" "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==" + "resolved" "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "arr-union" "^3.1.0" + "get-value" "^2.0.6" + "is-extendable" "^0.1.1" + "set-value" "^2.0.1" + +"universalify@^0.1.0": + "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"unpipe@~1.0.0": + "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "version" "1.0.0" + +"unset-value@^1.0.0": + "integrity" "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==" + "resolved" "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has-value" "^0.3.1" + "isobject" "^3.0.0" + +"update-browserslist-db@^1.0.10": + "integrity" "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==" + "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "escalade" "^3.1.1" + "picocolors" "^1.0.0" + +"uri-js@^4.2.2": + "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + "version" "4.4.1" + dependencies: + "punycode" "^2.1.0" + +"urix@^0.1.0": + "integrity" "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" + "resolved" "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + "version" "0.1.0" + +"use-latest-callback@^0.1.5": + "integrity" "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ==" + "resolved" "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz" + "version" "0.1.5" + +"use-sync-external-store@^1.0.0": + "integrity" "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" + "resolved" "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz" + "version" "1.2.0" + +"use@^3.1.0": + "integrity" "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "resolved" "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + "version" "3.1.1" + +"util-deprecate@^1.0.1", "util-deprecate@~1.0.1": + "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"utils-merge@1.0.1": + "integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + "version" "1.0.1" + +"uuid@^8.3.2": + "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + "version" "8.3.2" + +"v8-to-istanbul@^9.0.1": + "integrity" "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==" + "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz" + "version" "9.1.0" + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + "convert-source-map" "^1.6.0" + +"vary@~1.1.2": + "integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + "version" "1.1.2" + +"vlq@^1.0.0": + "integrity" "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + "resolved" "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz" + "version" "1.0.1" + +"void-elements@3.1.0": + "integrity" "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==" + "resolved" "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz" + "version" "3.1.0" + +"walker@^1.0.7", "walker@^1.0.8": + "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==" + "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "makeerror" "1.0.12" + +"warn-once@^0.1.0": + "integrity" "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==" + "resolved" "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz" + "version" "0.1.1" + +"wcwidth@^1.0.1": + "integrity" "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==" + "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "defaults" "^1.0.3" + +"webidl-conversions@^3.0.0": + "integrity" "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + "version" "3.0.1" + +"whatwg-fetch@^3.0.0": + "integrity" "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + "resolved" "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz" + "version" "3.6.2" + +"whatwg-url@^5.0.0": + "integrity" "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "tr46" "~0.0.3" + "webidl-conversions" "^3.0.0" + +"which-boxed-primitive@^1.0.2": + "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" + "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-bigint" "^1.0.1" + "is-boolean-object" "^1.1.0" + "is-number-object" "^1.0.4" + "is-string" "^1.0.5" + "is-symbol" "^1.0.3" + +"which-module@^2.0.0": + "integrity" "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz" + "version" "2.0.1" + +"which-typed-array@^1.1.9": + "integrity" "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==" + "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" + "version" "1.1.9" + dependencies: + "available-typed-arrays" "^1.0.5" + "call-bind" "^1.0.2" + "for-each" "^0.3.3" + "gopd" "^1.0.1" + "has-tostringtag" "^1.0.0" + "is-typed-array" "^1.1.10" + +"which@^1.2.9": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"which@^2.0.1", "which@^2.0.2": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"word-wrap@^1.2.3": + "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + "version" "1.2.3" + +"wrap-ansi@^6.2.0": + "integrity" "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + "version" "6.2.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"write-file-atomic@^2.3.0": + "integrity" "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" + "version" "2.4.3" + dependencies: + "graceful-fs" "^4.1.11" + "imurmurhash" "^0.1.4" + "signal-exit" "^3.0.2" + +"write-file-atomic@^4.0.2": + "integrity" "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "imurmurhash" "^0.1.4" + "signal-exit" "^3.0.7" + +"ws@^6.2.2": + "integrity" "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==" + "resolved" "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" + "version" "6.2.2" + dependencies: + "async-limiter" "~1.0.0" + +"ws@^7", "ws@^7.5.1": + "integrity" "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" + "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + "version" "7.5.9" + +"xtend@~4.0.1": + "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + "version" "4.0.2" + +"y18n@^4.0.0": + "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + "version" "4.0.3" + +"y18n@^5.0.5": + "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + "version" "5.0.8" + +"yallist@^3.0.2": + "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + "version" "3.1.1" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yargs-parser@^18.1.2": + "integrity" "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + "version" "18.1.3" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs-parser@^20.2.2": + "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + "version" "20.2.9" + +"yargs-parser@^21.1.1": + "integrity" "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + "version" "21.1.1" + +"yargs@^15.1.0": + "integrity" "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + "version" "15.4.1" + dependencies: + "cliui" "^6.0.0" + "decamelize" "^1.2.0" + "find-up" "^4.1.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^4.2.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^18.1.2" + +"yargs@^16.1.1": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yargs@^17.3.1", "yargs@^17.5.1": + "integrity" "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz" + "version" "17.7.1" + 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" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0"